Plugin Directory

Changeset 3394378


Ignore:
Timestamp:
11/12/2025 01:49:14 PM (5 months ago)
Author:
levelsdev
Message:

Deploy from GitLab to trunk

Location:
ready-made-oxygen-integration/trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • ready-made-oxygen-integration/trunk/README.md

    r3394213 r3394378  
    11# Ready-Made Oxygen Integration
    22
    3 [![Version](https://img.shields.io/badge/version-1.3.1-blue.svg)](https://levels.dev)
     3[![Version](https://img.shields.io/badge/version-1.3.2-blue.svg)](https://levels.dev)
    44[![WordPress](https://img.shields.io/badge/wordpress-5.0%2B-green.svg)](https://wordpress.org)
    55[![Oxygen](https://img.shields.io/badge/oxygen-4.0%2B-purple.svg)](https://oxygenbuilder.com)
  • ready-made-oxygen-integration/trunk/includes/js/addPasteButton-modular.js

    r3394213 r3394378  
    33 * Modular structure for better maintainability
    44 *
    5  * Version: 1.3.1
    6  */
    7 
    8 console.log("READOXIN: ✅ Plugin loaded v1.3.1");
     5 * Version: 1.3.2
     6 */
     7
     8console.log("READOXIN: ✅ Plugin loaded v1.3.2");
    99
    1010// Verify modules are loaded
  • ready-made-oxygen-integration/trunk/includes/js/modules/classProcessor.js

    r3394213 r3394378  
    158158          styles: classDef.original || {},
    159159          parent: classDef.parent || -1,
    160           set_name: classDef.set_name || ''
     160          set_name: classDef.set_name || '',
     161          media: classDef.media || {}
    161162        });
    162163      } else {
     
    168169            styles: classDef.original || {},
    169170            parent: classDef.parent || -1,
    170             set_name: classDef.set_name || ''
     171            set_name: classDef.set_name || '',
     172            media: classDef.media || {}
    171173          });
    172174        }
     
    175177
    176178    if (this.settings.debug) {
     179      // Count classes with media queries
     180      const createWithMedia = toCreate.filter(c => c.media && Object.keys(c.media).length > 0);
     181      const updateWithMedia = toUpdate.filter(c => c.media && Object.keys(c.media).length > 0);
     182
    177183      console.log('READOXIN: Class sync analysis:', {
    178184        toCreate: toCreate.length,
    179185        toUpdate: toUpdate.length,
    180         mode: this.settings.classSyncMode
     186        mode: this.settings.classSyncMode,
     187        withMediaQueries: {
     188          create: createWithMedia.length,
     189          update: updateWithMedia.length
     190        }
    181191      });
     192
     193      // Log classes with media queries
     194      if (createWithMedia.length > 0) {
     195        console.log('READOXIN: 📱 Classes with media queries (create):', createWithMedia.map(c => ({
     196          name: c.className,
     197          breakpoints: Object.keys(c.media)
     198        })));
     199      }
     200      if (updateWithMedia.length > 0) {
     201        console.log('READOXIN: 📱 Classes with media queries (update):', updateWithMedia.map(c => ({
     202          name: c.className,
     203          breakpoints: Object.keys(c.media)
     204        })));
     205      }
    182206    }
    183207
     
    322346      }
    323347
     348      // Include media queries if present
     349      if (item.media && Object.keys(item.media).length > 0) {
     350        classObj.media = item.media;
     351      }
     352
    324353      updatedClasses[item.className] = classObj;
    325354      changedClasses[item.className] = classObj; // Track only changed classes
     
    380409      }
    381410
     411      // Include media queries if present
     412      if (item.media && Object.keys(item.media).length > 0) {
     413        classObj.media = item.media;
     414      }
     415
    382416      updatedClasses[item.className] = classObj;
    383417      changedClasses[item.className] = classObj; // Track only changed classes
     
    426460      updatedClasses[item.className].original = item.styles;
    427461
     462      // Update media queries if provided
     463      if (item.media !== undefined) {
     464        if (Object.keys(item.media).length > 0) {
     465          updatedClasses[item.className].media = item.media;
     466        } else {
     467          // Remove media property if empty object
     468          delete updatedClasses[item.className].media;
     469        }
     470      }
     471
    428472      // Track only changed classes
    429473      changedClasses[item.className] = updatedClasses[item.className];
     
    478522      if (item.set_name !== undefined) {
    479523        updatedClasses[item.className].set_name = item.set_name;
     524      }
     525
     526      // Update media queries if provided
     527      if (item.media !== undefined) {
     528        if (Object.keys(item.media).length > 0) {
     529          updatedClasses[item.className].media = item.media;
     530        } else {
     531          // Remove media property if empty object
     532          delete updatedClasses[item.className].media;
     533        }
    480534      }
    481535
     
    560614            if (item.set_name !== undefined) {
    561615              scope.classes[item.className].set_name = item.set_name;
     616            }
     617
     618            // Update media queries if provided
     619            if (item.media !== undefined) {
     620              if (Object.keys(item.media).length > 0) {
     621                scope.classes[item.className].media = item.media;
     622              } else {
     623                // Remove media property if empty object
     624                delete scope.classes[item.className].media;
     625              }
    562626            }
    563627          }
     
    573637          if (item.set_name && item.set_name !== '' && !(Array.isArray(item.set_name) && item.set_name.length === 0)) {
    574638            classObj.set_name = item.set_name;
     639          }
     640
     641          // Include media queries if present
     642          if (item.media && Object.keys(item.media).length > 0) {
     643            classObj.media = item.media;
    575644          }
    576645
  • ready-made-oxygen-integration/trunk/readme.txt

    r3394213 r3394378  
    55Requires at least: 5.0
    66Tested up to: 6.8
    7 Stable tag: 1.3.1
     7Stable tag: 1.3.2
    88Requires PHP: 7.2
    99License: GPLv2 or later
     
    7676== Changelog ==
    7777
     78= 1.3.2 =
     79* NEW: Full media query support - Figma responsive breakpoints now sync to Oxygen
     80* Supports all Oxygen breakpoints: page-width, phone-landscape, phone-portrait, tablet
     81* Classes preserve responsive styles: base + tablet + mobile variations
     82* Debug logging shows classes with media queries and breakpoint names
     83
    7884= 1.3.1 =
    7985* Performance: Incremental class saving - only sends changed classes instead of entire database (1 class = <1s instead of 7s)
  • ready-made-oxygen-integration/trunk/ready-made-oxygen-integration.php

    r3394213 r3394378  
    77 * Plugin URI: https://levels.dev/automatic-webdevelopment-from-figma-via-copy-paste
    88 * Description: Essential integration for the Ready-Made Figma plugin to enable copy-paste functionality with Oxygen 4.
    9  * Version: 1.3.1
     9 * Version: 1.3.2
    1010 * Author: levels.dev
    1111 * Author URI: https://levels.dev
     
    2626
    2727// Define plugin version
    28 define('READOXIN_JS_VERSION', '1.3.1');
     28define('READOXIN_JS_VERSION', '1.3.2');
    2929
    3030// Use global namespace for WordPress hooks
     
    396396    if (!empty($set_name)) {
    397397      $class_obj['set_name'] = $set_name;
     398    }
     399
     400    // Include media queries if present
     401    if (isset($class_data['media']) && is_array($class_data['media']) && !empty($class_data['media'])) {
     402      $class_obj['media'] = $class_data['media'];
    398403    }
    399404
Note: See TracChangeset for help on using the changeset viewer.