Changeset 2045515
- Timestamp:
- 03/06/2019 08:42:23 PM (7 years ago)
- Location:
- gecko-section/trunk
- Files:
-
- 5 edited
-
dist/editor-styles.css (modified) (2 diffs)
-
dist/editor.bundle.js (modified) (1 diff)
-
dist/style.css (modified) (1 diff)
-
gecko-section.php (modified) (4 diffs)
-
readme.txt (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
gecko-section/trunk/dist/editor-styles.css
r2039731 r2045515 1 .gecko-section-editor { 2 --background-color:transparent; 3 --opacity: 0.7; 1 .gecko-section { 4 2 position: relative; 5 background-color: var(--background-color);6 background-size: cover;7 background-position: center;8 3 padding: 1rem; 9 4 border: dashed 1px pink; 10 5 } 11 .gecko-section-editor--image:before { 12 content: ""; 13 background-color: inherit; 14 opacity: var(--opacity); 15 position: absolute; 16 height: 100%; 17 width: 100%; 18 top: 0; 19 left: 0; 20 } 21 .gecko-section-editor.is-style-lg .gecko-section-editor__content { 6 .gecko-section.is-size-lg .gecko-section__inner { 22 7 max-width: 71.5rem; 23 8 } 24 .gecko-section -editor.is-style-md .gecko-section-editor__content{9 .gecko-section.is-size-md .gecko-section__inner { 25 10 max-width: 61.5rem; 26 11 } 27 .gecko-section -editor.is-style-sm .gecko-section-editor__content{12 .gecko-section.is-size-sm .gecko-section__inner { 28 13 max-width: 51.5rem; 29 14 } 30 .gecko-section -editor__content{15 .gecko-section__inner { 31 16 padding: 1rem; 32 17 border: dashed 1px pink; … … 35 20 } 36 21 37 .editor-block-preview__content .gecko-section-editor { 38 border: none; 39 background-color: #F0F0F0; 40 padding: 1rem 5px; 41 } 42 .editor-block-preview__content .gecko-section-editor__content { 43 border: none; 44 background-color: #FFFFFF; 45 max-width: 100%; 46 } 47 .editor-block-preview__content .gecko-section-editor.is-style-lg .gecko-section-editor__content { 48 max-width: 90%; 49 } 50 .editor-block-preview__content .gecko-section-editor.is-style-md .gecko-section-editor__content { 51 max-width: 80%; 52 } 53 .editor-block-preview__content .gecko-section-editor.is-style-sm .gecko-section-editor__content { 54 max-width: 70%; 55 } 22 /*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vZWRpdG9yLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxrQkFBa0I7RUFDbEIsYUFBYTtFQUNiLHVCQUF1QjtBQUN6QjtBQUNBO0VBQ0Usa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRSxrQkFBa0I7QUFDcEI7QUFDQTtFQUNFLGtCQUFrQjtBQUNwQjtBQUNBO0VBQ0UsYUFBYTtFQUNiLHVCQUF1QjtFQUN2QixlQUFlO0VBQ2YsZ0JBQWdCO0FBQ2xCLEMiLCJmaWxlIjoiZWRpdG9yLXN0eWxlcy5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuZ2Vja28tc2VjdGlvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogMXJlbTtcbiAgYm9yZGVyOiBkYXNoZWQgMXB4IHBpbms7XG59XG4uZ2Vja28tc2VjdGlvbi5pcy1zaXplLWxnIC5nZWNrby1zZWN0aW9uX19pbm5lciB7XG4gIG1heC13aWR0aDogNzEuNXJlbTtcbn1cbi5nZWNrby1zZWN0aW9uLmlzLXNpemUtbWQgLmdlY2tvLXNlY3Rpb25fX2lubmVyIHtcbiAgbWF4LXdpZHRoOiA2MS41cmVtO1xufVxuLmdlY2tvLXNlY3Rpb24uaXMtc2l6ZS1zbSAuZ2Vja28tc2VjdGlvbl9faW5uZXIge1xuICBtYXgtd2lkdGg6IDUxLjVyZW07XG59XG4uZ2Vja28tc2VjdGlvbl9faW5uZXIge1xuICBwYWRkaW5nOiAxcmVtO1xuICBib3JkZXI6IGRhc2hlZCAxcHggcGluaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDBweCBhdXRvO1xufSJdLCJzb3VyY2VSb290IjoiIn0=*/ -
gecko-section/trunk/dist/editor.bundle.js
r2039731 r2045515 1 !function(e){var t={};function n(a){if(t[a])return t[a].exports;var o=t[a]={i:a,l:!1,exports:{}};return e[a].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,a){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:a})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var a=Object.create(null);if(n.r(a),Object.defineProperty(a,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(a,o,function(t){return e[t]}.bind(null,o));return a},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/wp-content/plugins/gecko-section/dist/",n(n.s=7)}([function(e,t){e.exports=window.wp.components},function(e,t){e.exports=window.wp.i18n},function(e,t){e.exports=React},function(e,t){e.exports=window.wp.editor},function(e,t){e.exports=window.wp.blocks},,,function(e,t,n){"use strict";n.r(t);var a=n(4),o=n(2),c=n.n(o),l=n(1),r=function(e){var t=e.value,n=e.onSelect,a=[{slug:"solid",name:"Solid",icon:c.a.createElement("span",{class:"dashicons dashicons-admin-appearance"})},{slug:"image",name:"Image",icon:c.a.createElement("span",{class:"dashicons dashicons-format-image"})}];return c.a.createElement("div",{className:"wp-block-gecko-grid-layout-type-select"},c.a.createElement("p",null,"Choose a background type."),a.map(function(e){var a="";return e.slug===t&&(a="wp-block-gecko-grid-layout-type-select__item--selected"),c.a.createElement("div",{className:"wp-block-gecko-grid-layout-type-select__item ".concat(a),onClick:function(){return function(e){return n(e)}(e.slug)}},e.icon,e.name)}))},i=n(0),u=n(3),s={title:Object(l.__)("Section"),icon:React.createElement(i.SVG,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},React.createElement(i.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),React.createElement(i.G,null,React.createElement(i.Path,{d:"M4,18 L20,18 L20,7 L4,7 L4,16 L20,16 L20,18 L4,18 Z M2,5.125 C2,3.95139491 2.8954305,3 4,3 L20,3 C21.1045695,3 22,3.95139491 22,5.125 L22,17.875 C22,19.0486051 21.1045695,20 20,20 L4,20 C2.93492401,20 2.06429899,19.1154224 2.00340277,18 L2,5.125 Z"}))),category:"layout",description:Object(l.__)("Full width sections wrappers for themes that support them."),supports:{align:["wide","full"],html:!1},deprecated:[],attributes:{type:{type:"string",default:"solid"},bgMedia:{type:"object"},opacity:{type:"number",default:.7},bgColor:{type:"string"}},styles:[{name:"full",label:Object(l.__)("Full"),isDefault:!0},{name:"lg",label:Object(l.__)("Large")},{name:"md",label:Object(l.__)("Medium")},{name:"sm",label:Object(l.__)("Small")}],edit:function(e){var t,n=e.attributes,a=e.setAttributes,o=e.insertBlocksAfter,c=n.bgMedia,l=n.opacity,s=n.bgColor,m=n.type,d=n.className;c&&"image"===c.type&&(t='url("'.concat(c.url,'")'));var p={"--background-color":s,"--opacity":l};return"image"!==m&&"video"!==m||(p.backgroundImage=t),[React.createElement(u.InspectorControls,null,React.createElement(i.PanelBody,{title:"Background Settings"},React.createElement(r,{onSelect:function(e){a({type:e})},value:m}),React.createElement("hr",null),"image"===m&&React.createElement(u.MediaUpload,{onSelect:function(e){a({bgMedia:e})},type:["image"],value:c?c.id:null,render:function(e){var t=e.open;return[React.createElement("div",null,React.createElement(i.Button,{className:c?"image-button":"button button-large",onClick:t},"Choose Background"),c&&React.createElement(i.Button,{className:"button button-small",onClick:function(){a({bgMedia:null})}},"Remove Background"))]}}),"image"===m&&React.createElement(i.RangeControl,{label:"Overlay Opacity",value:l,onChange:function(e){a({opacity:e})},min:"0",max:"0.9",step:"0.1"}),React.createElement("p",null),React.createElement("div",null,React.createElement(u.ColorPalette,{label:"Background Color",value:s||void 0,onChange:function(e){a({bgColor:e})}})),React.createElement("p",null))),React.createElement("div",{className:"gecko-section-editor ".concat(d," gecko-section-editor--").concat(m),style:p},React.createElement("div",{className:"gecko-section-editor__content"},void 0!==o&&React.createElement(u.InnerBlocks,null)))]},save:function(){return React.createElement("div",null,React.createElement(u.InnerBlocks.Content,null))}};Object(a.registerBlockType)("gecko/section",s)}]); 1 /******/ (function(modules) { // webpackBootstrap 2 /******/ // The module cache 3 /******/ var installedModules = {}; 4 /******/ 5 /******/ // The require function 6 /******/ function __webpack_require__(moduleId) { 7 /******/ 8 /******/ // Check if module is in cache 9 /******/ if(installedModules[moduleId]) { 10 /******/ return installedModules[moduleId].exports; 11 /******/ } 12 /******/ // Create a new module (and put it into the cache) 13 /******/ var module = installedModules[moduleId] = { 14 /******/ i: moduleId, 15 /******/ l: false, 16 /******/ exports: {} 17 /******/ }; 18 /******/ 19 /******/ // Execute the module function 20 /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); 21 /******/ 22 /******/ // Flag the module as loaded 23 /******/ module.l = true; 24 /******/ 25 /******/ // Return the exports of the module 26 /******/ return module.exports; 27 /******/ } 28 /******/ 29 /******/ 30 /******/ // expose the modules object (__webpack_modules__) 31 /******/ __webpack_require__.m = modules; 32 /******/ 33 /******/ // expose the module cache 34 /******/ __webpack_require__.c = installedModules; 35 /******/ 36 /******/ // define getter function for harmony exports 37 /******/ __webpack_require__.d = function(exports, name, getter) { 38 /******/ if(!__webpack_require__.o(exports, name)) { 39 /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); 40 /******/ } 41 /******/ }; 42 /******/ 43 /******/ // define __esModule on exports 44 /******/ __webpack_require__.r = function(exports) { 45 /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { 46 /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); 47 /******/ } 48 /******/ Object.defineProperty(exports, '__esModule', { value: true }); 49 /******/ }; 50 /******/ 51 /******/ // create a fake namespace object 52 /******/ // mode & 1: value is a module id, require it 53 /******/ // mode & 2: merge all properties of value into the ns 54 /******/ // mode & 4: return value when already ns object 55 /******/ // mode & 8|1: behave like require 56 /******/ __webpack_require__.t = function(value, mode) { 57 /******/ if(mode & 1) value = __webpack_require__(value); 58 /******/ if(mode & 8) return value; 59 /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; 60 /******/ var ns = Object.create(null); 61 /******/ __webpack_require__.r(ns); 62 /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); 63 /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); 64 /******/ return ns; 65 /******/ }; 66 /******/ 67 /******/ // getDefaultExport function for compatibility with non-harmony modules 68 /******/ __webpack_require__.n = function(module) { 69 /******/ var getter = module && module.__esModule ? 70 /******/ function getDefault() { return module['default']; } : 71 /******/ function getModuleExports() { return module; }; 72 /******/ __webpack_require__.d(getter, 'a', getter); 73 /******/ return getter; 74 /******/ }; 75 /******/ 76 /******/ // Object.prototype.hasOwnProperty.call 77 /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; 78 /******/ 79 /******/ // __webpack_public_path__ 80 /******/ __webpack_require__.p = "/wp-content/plugins/gecko-section/dist/"; 81 /******/ 82 /******/ 83 /******/ // Load entry module and return exports 84 /******/ return __webpack_require__(__webpack_require__.s = "./src/index.js"); 85 /******/ }) 86 /************************************************************************/ 87 /******/ ({ 88 89 /***/ "./node_modules/@babel/runtime/helpers/defineProperty.js": 90 /*!***************************************************************!*\ 91 !*** ./node_modules/@babel/runtime/helpers/defineProperty.js ***! 92 \***************************************************************/ 93 /*! no static exports found */ 94 /***/ (function(module, exports) { 95 96 function _defineProperty(obj, key, value) { 97 if (key in obj) { 98 Object.defineProperty(obj, key, { 99 value: value, 100 enumerable: true, 101 configurable: true, 102 writable: true 103 }); 104 } else { 105 obj[key] = value; 106 } 107 108 return obj; 109 } 110 111 module.exports = _defineProperty; 112 113 /***/ }), 114 115 /***/ "./src/index.js": 116 /*!**********************!*\ 117 !*** ./src/index.js ***! 118 \**********************/ 119 /*! no exports provided */ 120 /***/ (function(module, __webpack_exports__, __webpack_require__) { 121 122 "use strict"; 123 __webpack_require__.r(__webpack_exports__); 124 /* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); 125 /* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_0__); 126 /* harmony import */ var _section__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./section */ "./src/section.js"); 127 /** 128 * WordPress dependencies 129 */ 130 131 /** 132 * Internal dependencies 133 */ 134 135 136 Object(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_0__["registerBlockType"])(_section__WEBPACK_IMPORTED_MODULE_1__["name"], _section__WEBPACK_IMPORTED_MODULE_1__["settings"]); 137 138 /***/ }), 139 140 /***/ "./src/section.js": 141 /*!************************!*\ 142 !*** ./src/section.js ***! 143 \************************/ 144 /*! exports provided: name, settings */ 145 /***/ (function(module, __webpack_exports__, __webpack_require__) { 146 147 "use strict"; 148 __webpack_require__.r(__webpack_exports__); 149 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "name", function() { return name; }); 150 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "settings", function() { return settings; }); 151 /* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/defineProperty.js"); 152 /* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__); 153 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"); 154 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__); 155 /* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); 156 /* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__); 157 /* harmony import */ var _wordpress_editor__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/editor */ "@wordpress/editor"); 158 /* harmony import */ var _wordpress_editor__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_editor__WEBPACK_IMPORTED_MODULE_3__); 159 160 161 var _settings; 162 163 /** 164 * WordPress dependencies 165 */ 166 167 168 169 /** 170 * Allowed blocks constant is passed to InnerBlocks precisely as specified here. 171 * The contents of the array should never change. 172 * The array should contain the name of each block that is allowed. 173 * In columns block, the only block we allow is 'dmp/grid-item'. 174 * 175 * @constant 176 * @type {string[]} 177 */ 178 179 var name = 'gecko/section'; 180 var settings = (_settings = { 181 title: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__["__"])('Section'), 182 icon: React.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__["SVG"], { 183 viewBox: "0 0 24 24", 184 xmlns: "http://www.w3.org/2000/svg" 185 }, React.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__["Path"], { 186 fill: "none", 187 d: "M0 0h24v24H0V0z" 188 }), React.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__["G"], null, React.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__["Path"], { 189 d: "M4,18 L20,18 L20,7 L4,7 L4,16 L20,16 L20,18 L4,18 Z M2,5.125 C2,3.95139491 2.8954305,3 4,3 L20,3 C21.1045695,3 22,3.95139491 22,5.125 L22,17.875 C22,19.0486051 21.1045695,20 20,20 L4,20 C2.93492401,20 2.06429899,19.1154224 2.00340277,18 L2,5.125 Z" 190 }))), 191 category: 'layout', 192 description: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__["__"])('Full width sections wrappers for themes that support them.'), 193 supports: { 194 align: ['wide', 'full'], 195 html: false 196 }, 197 deprecated: [], 198 attributes: { 199 size: { 200 type: 'string' //solid, image, ?video? 201 202 } 203 }, 204 styles: [{ 205 name: 'default', 206 label: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__["__"])('Default'), 207 isDefault: true 208 }] 209 }, _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()(_settings, "deprecated", [{ 210 migrate: function migrate() {}, 211 save: function save() { 212 return React.createElement(_wordpress_editor__WEBPACK_IMPORTED_MODULE_3__["InnerBlocks"].Content, null); 213 } 214 }]), _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()(_settings, "edit", function edit(_ref) { 215 var attributes = _ref.attributes, 216 setAttributes = _ref.setAttributes, 217 insertBlocksAfter = _ref.insertBlocksAfter, 218 className = _ref.className; 219 var size = attributes.size; 220 return [React.createElement(_wordpress_editor__WEBPACK_IMPORTED_MODULE_3__["InspectorControls"], null, React.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__["PanelBody"], { 221 title: "Settings" 222 }, React.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__["SelectControl"], { 223 label: "Row Width", 224 value: size, 225 options: [{ 226 value: 'full', 227 label: 'Full' 228 }, { 229 value: 'lg', 230 label: 'Large' 231 }, { 232 value: 'md', 233 label: 'Medium' 234 }, { 235 value: 'sm', 236 label: 'Small' 237 }], 238 onChange: function onChange(size) { 239 setAttributes({ 240 size: size 241 }); 242 } 243 }))), React.createElement("div", { 244 className: "gecko-section ".concat(className, " is-size-").concat(size) 245 }, React.createElement("div", { 246 className: "gecko-section__inner" 247 }, 'undefined' !== typeof insertBlocksAfter && React.createElement(_wordpress_editor__WEBPACK_IMPORTED_MODULE_3__["InnerBlocks"], null)))]; 248 }), _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()(_settings, "save", function save() { 249 return React.createElement("div", null, React.createElement(_wordpress_editor__WEBPACK_IMPORTED_MODULE_3__["InnerBlocks"].Content, null)); 250 }), _settings); 251 252 /***/ }), 253 254 /***/ "@wordpress/blocks": 255 /*!***********************************!*\ 256 !*** external "window.wp.blocks" ***! 257 \***********************************/ 258 /*! no static exports found */ 259 /***/ (function(module, exports) { 260 261 module.exports = window.wp.blocks; 262 263 /***/ }), 264 265 /***/ "@wordpress/components": 266 /*!***************************************!*\ 267 !*** external "window.wp.components" ***! 268 \***************************************/ 269 /*! no static exports found */ 270 /***/ (function(module, exports) { 271 272 module.exports = window.wp.components; 273 274 /***/ }), 275 276 /***/ "@wordpress/editor": 277 /*!***********************************!*\ 278 !*** external "window.wp.editor" ***! 279 \***********************************/ 280 /*! no static exports found */ 281 /***/ (function(module, exports) { 282 283 module.exports = window.wp.editor; 284 285 /***/ }), 286 287 /***/ "@wordpress/i18n": 288 /*!*********************************!*\ 289 !*** external "window.wp.i18n" ***! 290 \*********************************/ 291 /*! no static exports found */ 292 /***/ (function(module, exports) { 293 294 module.exports = window.wp.i18n; 295 296 /***/ }) 297 298 /******/ }); 299 //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZGVmaW5lUHJvcGVydHkuanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2luZGV4LmpzIiwid2VicGFjazovLy8uL3NyYy9zZWN0aW9uLmpzIiwid2VicGFjazovLy9leHRlcm5hbCBcIndpbmRvdy53cC5ibG9ja3NcIiIsIndlYnBhY2s6Ly8vZXh0ZXJuYWwgXCJ3aW5kb3cud3AuY29tcG9uZW50c1wiIiwid2VicGFjazovLy9leHRlcm5hbCBcIndpbmRvdy53cC5lZGl0b3JcIiIsIndlYnBhY2s6Ly8vZXh0ZXJuYWwgXCJ3aW5kb3cud3AuaTE4blwiIl0sIm5hbWVzIjpbInJlZ2lzdGVyQmxvY2tUeXBlIiwic2VjdGlvbiIsIm5hbWUiLCJzZXR0aW5ncyIsInRpdGxlIiwiX18iLCJpY29uIiwiY2F0ZWdvcnkiLCJkZXNjcmlwdGlvbiIsInN1cHBvcnRzIiwiYWxpZ24iLCJodG1sIiwiZGVwcmVjYXRlZCIsImF0dHJpYnV0ZXMiLCJzaXplIiwidHlwZSIsInN0eWxlcyIsImxhYmVsIiwiaXNEZWZhdWx0IiwibWlncmF0ZSIsInNhdmUiLCJzZXRBdHRyaWJ1dGVzIiwiaW5zZXJ0QmxvY2tzQWZ0ZXIiLCJjbGFzc05hbWUiLCJ2YWx1ZSJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOzs7QUFHQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0Esa0RBQTBDLGdDQUFnQztBQUMxRTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGdFQUF3RCxrQkFBa0I7QUFDMUU7QUFDQSx5REFBaUQsY0FBYztBQUMvRDs7QUFFQTtBQUNBO0FBQ0E7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Q0gsSUFBRCxFQUFVO0FBQ1RPLG1CQUFhLENBQUM7QUFDYlAsWUFBSSxFQUFFQTtBQURPLE9BQUQsQ0FBYjtBQUdBO0FBZEgsSUFERCxDQURELENBRE8sRUFzQlA7QUFBSyxhQUFTLDBCQUFtQlMsU0FBbkIsc0JBQXdDVCxJQUF4QztBQUFkLEtBQ0M7QUFBSyxhQUFTLEVBQUM7QUFBZixLQUVHLGdCQUFnQixPQUFPUSxpQkFBeEIsSUFDQSxvQkFBQyw2REFBRCxPQUhGLENBREQsQ0F0Qk8sQ0FBUjtBQStCQSxDQXBFbUIsbUdBc0VkLGdCQUFNO0FBQ1gsU0FBTyxpQ0FBSyxvQkFBQyw2REFBRCxDQUFhLE9BQWIsT0FBTCxDQUFQO0FBQ0EsQ0F4RW1CLGFBQWQsQzs7Ozs7Ozs7Ozs7QUM1QlAsa0M7Ozs7Ozs7Ozs7O0FDQUEsc0M7Ozs7Ozs7Ozs7O0FDQUEsa0M7Ozs7Ozs7Ozs7O0FDQUEsZ0MiLCJmaWxlIjoiZWRpdG9yLmJ1bmRsZS5qcyIsInNvdXJjZXNDb250ZW50IjpbIiBcdC8vIFRoZSBtb2R1bGUgY2FjaGVcbiBcdHZhciBpbnN0YWxsZWRNb2R1bGVzID0ge307XG5cbiBcdC8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG4gXHRmdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cbiBcdFx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG4gXHRcdGlmKGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdKSB7XG4gXHRcdFx0cmV0dXJuIGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdLmV4cG9ydHM7XG4gXHRcdH1cbiBcdFx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcbiBcdFx0dmFyIG1vZHVsZSA9IGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdID0ge1xuIFx0XHRcdGk6IG1vZHVsZUlkLFxuIFx0XHRcdGw6IGZhbHNlLFxuIFx0XHRcdGV4cG9ydHM6IHt9XG4gXHRcdH07XG5cbiBcdFx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG4gXHRcdG1vZHVsZXNbbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG4gXHRcdC8vIEZsYWcgdGhlIG1vZHVsZSBhcyBsb2FkZWRcbiBcdFx0bW9kdWxlLmwgPSB0cnVlO1xuXG4gXHRcdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG4gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbiBcdH1cblxuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tID0gbW9kdWxlcztcblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGUgY2FjaGVcbiBcdF9fd2VicGFja19yZXF1aXJlX18uYyA9IGluc3RhbGxlZE1vZHVsZXM7XG5cbiBcdC8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb24gZm9yIGhhcm1vbnkgZXhwb3J0c1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kID0gZnVuY3Rpb24oZXhwb3J0cywgbmFtZSwgZ2V0dGVyKSB7XG4gXHRcdGlmKCFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywgbmFtZSkpIHtcbiBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgbmFtZSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGdldHRlciB9KTtcbiBcdFx0fVxuIFx0fTtcblxuIFx0Ly8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0c1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5yID0gZnVuY3Rpb24oZXhwb3J0cykge1xuIFx0XHRpZih0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyAmJiBTeW1ib2wudG9TdHJpbmdUYWcpIHtcbiBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgU3ltYm9sLnRvU3RyaW5nVGFnLCB7IHZhbHVlOiAnTW9kdWxlJyB9KTtcbiBcdFx0fVxuIFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuIFx0fTtcblxuIFx0Ly8gY3JlYXRlIGEgZmFrZSBuYW1lc3BhY2Ugb2JqZWN0XG4gXHQvLyBtb2RlICYgMTogdmFsdWUgaXMgYSBtb2R1bGUgaWQsIHJlcXVpcmUgaXRcbiBcdC8vIG1vZGUgJiAyOiBtZXJnZSBhbGwgcHJvcGVydGllcyBvZiB2YWx1ZSBpbnRvIHRoZSBuc1xuIFx0Ly8gbW9kZSAmIDQ6IHJldHVybiB2YWx1ZSB3aGVuIGFscmVhZHkgbnMgb2JqZWN0XG4gXHQvLyBtb2RlICYgOHwxOiBiZWhhdmUgbGlrZSByZXF1aXJlXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnQgPSBmdW5jdGlvbih2YWx1ZSwgbW9kZSkge1xuIFx0XHRpZihtb2RlICYgMSkgdmFsdWUgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKHZhbHVlKTtcbiBcdFx0aWYobW9kZSAmIDgpIHJldHVybiB2YWx1ZTtcbiBcdFx0aWYoKG1vZGUgJiA0KSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICYmIHZhbHVlLl9fZXNNb2R1bGUpIHJldHVybiB2YWx1ZTtcbiBcdFx0dmFyIG5zID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5yKG5zKTtcbiBcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KG5zLCAnZGVmYXVsdCcsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHZhbHVlIH0pO1xuIFx0XHRpZihtb2RlICYgMiAmJiB0eXBlb2YgdmFsdWUgIT0gJ3N0cmluZycpIGZvcih2YXIga2V5IGluIHZhbHVlKSBfX3dlYnBhY2tfcmVxdWlyZV9fLmQobnMsIGtleSwgZnVuY3Rpb24oa2V5KSB7IHJldHVybiB2YWx1ZVtrZXldOyB9LmJpbmQobnVsbCwga2V5KSk7XG4gXHRcdHJldHVybiBucztcbiBcdH07XG5cbiBcdC8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSBmdW5jdGlvbihtb2R1bGUpIHtcbiBcdFx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0RGVmYXVsdCgpIHsgcmV0dXJuIG1vZHVsZVsnZGVmYXVsdCddOyB9IDpcbiBcdFx0XHRmdW5jdGlvbiBnZXRNb2R1bGVFeHBvcnRzKCkgeyByZXR1cm4gbW9kdWxlOyB9O1xuIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCAnYScsIGdldHRlcik7XG4gXHRcdHJldHVybiBnZXR0ZXI7XG4gXHR9O1xuXG4gXHQvLyBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGxcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubyA9IGZ1bmN0aW9uKG9iamVjdCwgcHJvcGVydHkpIHsgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIHByb3BlcnR5KTsgfTtcblxuIFx0Ly8gX193ZWJwYWNrX3B1YmxpY19wYXRoX19cbiBcdF9fd2VicGFja19yZXF1aXJlX18ucCA9IFwiL3dwLWNvbnRlbnQvcGx1Z2lucy9nZWNrby1zZWN0aW9uL2Rpc3QvXCI7XG5cblxuIFx0Ly8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzXG4gXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXyhfX3dlYnBhY2tfcmVxdWlyZV9fLnMgPSBcIi4vc3JjL2luZGV4LmpzXCIpO1xuIiwiZnVuY3Rpb24gX2RlZmluZVByb3BlcnR5KG9iaiwga2V5LCB2YWx1ZSkge1xuICBpZiAoa2V5IGluIG9iaikge1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwge1xuICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgIHdyaXRhYmxlOiB0cnVlXG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgb2JqW2tleV0gPSB2YWx1ZTtcbiAgfVxuXG4gIHJldHVybiBvYmo7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gX2RlZmluZVByb3BlcnR5OyIsIi8qKlxuICogV29yZFByZXNzIGRlcGVuZGVuY2llc1xuICovXG5pbXBvcnQge3JlZ2lzdGVyQmxvY2tUeXBlfSBmcm9tICdAd29yZHByZXNzL2Jsb2Nrcyc7XG5cbi8qKlxuICogSW50ZXJuYWwgZGVwZW5kZW5jaWVzXG4gKi9cbmltcG9ydCAqIGFzIHNlY3Rpb24gZnJvbSAnLi9zZWN0aW9uJztcblxucmVnaXN0ZXJCbG9ja1R5cGUoc2VjdGlvbi5uYW1lLCBzZWN0aW9uLnNldHRpbmdzKTtcbiIsIi8qKlxuICogV29yZFByZXNzIGRlcGVuZGVuY2llc1xuICovXG5pbXBvcnQgeyBfXyB9IGZyb20gJ0B3b3JkcHJlc3MvaTE4bic7XG5pbXBvcnQge1xuXHRQYW5lbEJvZHksXG5cdEcsXG5cdFNWRyxcblx0UGF0aCxcblx0U2VsZWN0Q29udHJvbFxufSBmcm9tICdAd29yZHByZXNzL2NvbXBvbmVudHMnO1xuaW1wb3J0IHtcblx0SW5uZXJCbG9ja3MsXG5cdEluc3BlY3RvckNvbnRyb2xzLFxufSBmcm9tICdAd29yZHByZXNzL2VkaXRvcic7XG5cblxuLyoqXG4gKiBBbGxvd2VkIGJsb2NrcyBjb25zdGFudCBpcyBwYXNzZWQgdG8gSW5uZXJCbG9ja3MgcHJlY2lzZWx5IGFzIHNwZWNpZmllZCBoZXJlLlxuICogVGhlIGNvbnRlbnRzIG9mIHRoZSBhcnJheSBzaG91bGQgbmV2ZXIgY2hhbmdlLlxuICogVGhlIGFycmF5IHNob3VsZCBjb250YWluIHRoZSBuYW1lIG9mIGVhY2ggYmxvY2sgdGhhdCBpcyBhbGxvd2VkLlxuICogSW4gY29sdW1ucyBibG9jaywgdGhlIG9ubHkgYmxvY2sgd2UgYWxsb3cgaXMgJ2RtcC9ncmlkLWl0ZW0nLlxuICpcbiAqIEBjb25zdGFudFxuICogQHR5cGUge3N0cmluZ1tdfVxuKi9cbmV4cG9ydCBjb25zdCBuYW1lID0gJ2dlY2tvL3NlY3Rpb24nO1xuXG5leHBvcnQgY29uc3Qgc2V0dGluZ3MgPSB7XG5cdHRpdGxlOiBfXyggJ1NlY3Rpb24nICksXG5cblx0aWNvbjogPFNWRyB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxQYXRoIGZpbGw9XCJub25lXCIgZD1cIk0wIDBoMjR2MjRIMFYwelwiIC8+PEc+PFBhdGggZD1cIk00LDE4IEwyMCwxOCBMMjAsNyBMNCw3IEw0LDE2IEwyMCwxNiBMMjAsMTggTDQsMTggWiBNMiw1LjEyNSBDMiwzLjk1MTM5NDkxIDIuODk1NDMwNSwzIDQsMyBMMjAsMyBDMjEuMTA0NTY5NSwzIDIyLDMuOTUxMzk0OTEgMjIsNS4xMjUgTDIyLDE3Ljg3NSBDMjIsMTkuMDQ4NjA1MSAyMS4xMDQ1Njk1LDIwIDIwLDIwIEw0LDIwIEMyLjkzNDkyNDAxLDIwIDIuMDY0Mjk4OTksMTkuMTE1NDIyNCAyLjAwMzQwMjc3LDE4IEwyLDUuMTI1IFpcIiAvPjwvRz48L1NWRz4sXG5cblx0Y2F0ZWdvcnk6ICdsYXlvdXQnLFxuXG5cdGRlc2NyaXB0aW9uOiBfXyggJ0Z1bGwgd2lkdGggc2VjdGlvbnMgd3JhcHBlcnMgZm9yIHRoZW1lcyB0aGF0IHN1cHBvcnQgdGhlbS4nICksXG5cblx0c3VwcG9ydHM6IHtcblx0XHRhbGlnbjogWyAnd2lkZScsICdmdWxsJyBdLFxuXHRcdGh0bWw6IGZhbHNlLFxuXHR9LFxuXG5cdGRlcHJlY2F0ZWQ6IFtdLFxuXG5cdGF0dHJpYnV0ZXM6IHtcblx0XHRzaXplOiB7XG5cdFx0XHR0eXBlOiAnc3RyaW5nJywgLy9zb2xpZCwgaW1hZ2UsID92aWRlbz9cblx0XHR9LFxuXHR9LFxuXG5cdHN0eWxlczogW1xuXHRcdHsgbmFtZTogJ2RlZmF1bHQnLCBsYWJlbDogX18oICdEZWZhdWx0JyksIGlzRGVmYXVsdDogdHJ1ZSB9LFxuXHRdLFxuXG5cdGRlcHJlY2F0ZWQ6IFtcblx0XHR7XG5cdFx0XHRtaWdyYXRlKCl7fSxcblx0XHRcdHNhdmUoKSB7XG5cdFx0XHRcdHJldHVybiA8SW5uZXJCbG9ja3MuQ29udGVudCAvPjtcblx0XHRcdH0sXG5cdFx0fVxuXHRdLFxuXG5cdGVkaXQ6ICh7YXR0cmlidXRlcywgc2V0QXR0cmlidXRlcywgaW5zZXJ0QmxvY2tzQWZ0ZXIsIGNsYXNzTmFtZX0pID0+IHtcblx0XHRjb25zdCB7c2l6ZX0gPSBhdHRyaWJ1dGVzO1xuXHRcdHJldHVybiAoW1xuXHRcdFx0PEluc3BlY3RvckNvbnRyb2xzPlxuXHRcdFx0XHQ8UGFuZWxCb2R5IHRpdGxlPVwiU2V0dGluZ3NcIj5cblx0XHRcdFx0XHQ8U2VsZWN0Q29udHJvbFxuXHRcdFx0XHRcdFx0bGFiZWw9XCJSb3cgV2lkdGhcIlxuXHRcdFx0XHRcdFx0dmFsdWU9eyBzaXplIH1cblx0XHRcdFx0XHRcdG9wdGlvbnM9eyBbXG5cdFx0XHRcdFx0XHRcdHsgdmFsdWU6ICdmdWxsJywgbGFiZWw6ICdGdWxsJyB9LFxuXHRcdFx0XHRcdFx0XHR7IHZhbHVlOiAnbGcnLCBsYWJlbDogJ0xhcmdlJyB9LFxuXHRcdFx0XHRcdFx0XHR7IHZhbHVlOiAnbWQnLCBsYWJlbDogJ01lZGl1bScgfSxcblx0XHRcdFx0XHRcdFx0eyB2YWx1ZTogJ3NtJywgbGFiZWw6ICdTbWFsbCcgfSxcblx0XHRcdFx0XHRcdF0gfVxuXHRcdFx0XHRcdFx0b25DaGFuZ2UgPSB7XG5cdFx0XHRcdFx0XHRcdChzaXplKSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0c2V0QXR0cmlidXRlcyh7XG5cdFx0XHRcdFx0XHRcdFx0XHRzaXplOiBzaXplLFxuXHRcdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHQvPlxuXHRcdFx0XHQ8L1BhbmVsQm9keT5cblx0XHRcdDwvSW5zcGVjdG9yQ29udHJvbHM+LFxuXHRcdFx0PGRpdiBjbGFzc05hbWU9e2BnZWNrby1zZWN0aW9uICR7Y2xhc3NOYW1lfSBpcy1zaXplLSR7c2l6ZX1gfSA+XG5cdFx0XHRcdDxkaXYgY2xhc3NOYW1lPVwiZ2Vja28tc2VjdGlvbl9faW5uZXJcIj5cblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHQoJ3VuZGVmaW5lZCcgIT09IHR5cGVvZiBpbnNlcnRCbG9ja3NBZnRlcikgJiZcblx0XHRcdFx0XHRcdDxJbm5lckJsb2NrcyAvPlxuXHRcdFx0XHRcdH1cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHQ8L2Rpdj5cblx0XHRdKTtcblx0fSxcblxuXHRzYXZlOiAoKSA9PiB7XG5cdFx0cmV0dXJuKDxkaXY+PElubmVyQmxvY2tzLkNvbnRlbnQgLz48L2Rpdj4pO1xuXHR9XG59O1xuIiwibW9kdWxlLmV4cG9ydHMgPSB3aW5kb3cud3AuYmxvY2tzOyIsIm1vZHVsZS5leHBvcnRzID0gd2luZG93LndwLmNvbXBvbmVudHM7IiwibW9kdWxlLmV4cG9ydHMgPSB3aW5kb3cud3AuZWRpdG9yOyIsIm1vZHVsZS5leHBvcnRzID0gd2luZG93LndwLmkxOG47Il0sInNvdXJjZVJvb3QiOiIifQ== -
gecko-section/trunk/dist/style.css
r2039731 r2045515 1 1 .gecko-section { 2 --background-color: transparent;3 --opacity: 0.7;4 2 position: relative; 5 background-color: var(--background-color);6 background-size: cover;7 background-position: center;8 padding: 1rem;9 3 } 10 .gecko-section .wp-block-gecko-section{4 .gecko-section__inner { 11 5 padding: 1rem; 12 6 max-width: 100%; 13 7 margin: 0px auto; 14 8 } 15 .gecko-section--image:before { 16 content: ""; 17 background-color: inherit; 18 opacity: var(--opacity); 19 position: absolute; 20 height: 100%; 21 width: 100%; 22 top: 0; 23 left: 0; 24 } 25 .gecko-section--is-style-lg .wp-block-gecko-section { 9 .gecko-section.is-size-lg .gecko-section__inner { 26 10 max-width: 71.5rem; 27 11 } 28 .gecko-section --is-style-md .wp-block-gecko-section{12 .gecko-section.is-size-md .gecko-section__inner { 29 13 max-width: 61.5rem; 30 14 } 31 .gecko-section --is-style-sm .wp-block-gecko-section{15 .gecko-section.is-size-sm .gecko-section__inner { 32 16 max-width: 51.5rem; 33 17 } 18 19 /*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3R5bGUuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGtCQUFrQjtBQUNwQjtBQUNBO0VBQ0UsYUFBYTtFQUNiLGVBQWU7RUFDZixnQkFBZ0I7QUFDbEI7QUFDQTtFQUNFLGtCQUFrQjtBQUNwQjtBQUNBO0VBQ0Usa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRSxrQkFBa0I7QUFDcEIsQyIsImZpbGUiOiJzdHlsZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuZ2Vja28tc2VjdGlvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5nZWNrby1zZWN0aW9uX19pbm5lciB7XG4gIHBhZGRpbmc6IDFyZW07XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAwcHggYXV0bztcbn1cbi5nZWNrby1zZWN0aW9uLmlzLXNpemUtbGcgLmdlY2tvLXNlY3Rpb25fX2lubmVyIHtcbiAgbWF4LXdpZHRoOiA3MS41cmVtO1xufVxuLmdlY2tvLXNlY3Rpb24uaXMtc2l6ZS1tZCAuZ2Vja28tc2VjdGlvbl9faW5uZXIge1xuICBtYXgtd2lkdGg6IDYxLjVyZW07XG59XG4uZ2Vja28tc2VjdGlvbi5pcy1zaXplLXNtIC5nZWNrby1zZWN0aW9uX19pbm5lciB7XG4gIG1heC13aWR0aDogNTEuNXJlbTtcbn0iXSwic291cmNlUm9vdCI6IiJ9*/ -
gecko-section/trunk/gecko-section.php
r2039731 r2045515 4 4 * Plugin URI: https://github.com/gecko-designs/gecko-section 5 5 * Description: Section block for full row layouts in themes that support gutenberg full-width blocks. 6 * Version: 1.0. 06 * Version: 1.0.1 7 7 * Author: Gecko Designs 8 8 * Author URI: https://geckodesigns.com … … 48 48 filemtime( plugin_dir_path(__FILE__) . "dist/style.css" ) 49 49 ); 50 // If Post has block then enqueue script 51 add_action( 'the_post', function($post){ 52 if(has_block( 'gecko/section', $post )){ 53 wp_enqueue_style('gecko-section'); 54 } 55 } ); 50 56 // Initialize custom blocks 51 57 // Dynamically import blocks in blocks folder … … 54 60 [ 55 61 "render_callback" => [$this, "render_callback"], 56 "style" => "gecko-section",62 // "style" => "gecko-section", 57 63 "script" => "", 58 64 "editor_style" => "gecko-section-editor", … … 65 71 */ 66 72 public function render_callback( $attributes, $content ) { 67 // Sort of a hack at the moment. 68 // $image = wp_get_attachment_image_url($attributes[bgMedia],'full'); 69 $bgMedia = (isset($attributes['bgMedia']['url'])) ? "background-image: url(".$attributes['bgMedia']['url'].");": ""; 70 $bgColor = (isset($attributes['bgColor'])) ? "--background-color: ".$attributes['bgColor'].";" : ""; 71 $opacity = (isset($attributes['opacity'])) ? "--opacity: ".$attributes['opacity'].";" : ""; 72 $type = isset($attributes['type'])? $attributes['type']: false; 73 $styles = $bgColor; 74 $styles .= ($type === 'image') ? $bgMedia : ''; 75 $styles .= ($type === 'image') ? $opacity : ''; 76 $class = 'gecko-section'; 77 $class .= (isset($attributes['className']))? ' gecko-section--'.$attributes['className'] : ''; 78 $class .= ($type)? ' gecko-section--'.$attributes['type'] : ''; 79 // $encoded = json_encode($attributes, JSON_HEX_APOS|JSON_HEX_QUOT); 80 return sprintf('<div class="%s" style="%s">%s</div>', 81 $class, $styles, $content); 73 // Defaults and attributes 74 // Setting to false unless needed because all styles do not need to be inlined 75 $defaults = array( 76 'size' => false, 77 'className' => false, 78 ); 79 // Add a filter to hook into the default args 80 $defaults = apply_filters( 'gecko/section/defaults', $defaults, $attributes ); 81 $atts = wp_parse_args( $attributes, $defaults ); 82 83 $classNames = array('gecko-section'); 84 if($atts['className']) $classNames[] = $atts['className']; 85 if($atts['size']) $classNames[] = 'is-size-'.$atts['size']; 86 // Add a filter to hook into classNames 87 $classNames = apply_filters( 'gecko/section/class', $classNames, $attributes ); 88 89 // $styles = array(); 90 // // Add a filter to hook into the inine styles $args = ($styles, $atts) 91 // $styles = apply_filters( 'gecko/section/style', $styles, $attributes ); 92 93 // $styleString = ''; 94 // foreach ($styles as $key => $value) { 95 // if($value) $styleString .= $key.':'.$value.';'; 96 // } 97 98 return sprintf('<div class="%s"><div class="gecko-section__inner">%s</div></div>', implode(' ', $classNames), $content); 82 99 } 83 100 -
gecko-section/trunk/readme.txt
r2039731 r2045515 5 5 Requires at least: 5.0 6 6 Tested up to: 5.0.3 7 Stable tag: 1.0 7 Stable tag: 1.0.1 8 8 Requires PHP: 5.6 9 9 License: GPLv2 or later … … 23 23 24 24 == Changelog == 25 = 1.0 = 25 = 1.0.1 = 26 * Simplified overall block as it's designed for themes 27 = 1.0.0 = 26 28 * Initial release 27 29
Note: See TracChangeset
for help on using the changeset viewer.