@webikon/webentor-core 0.9.13 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/CHANGELOG.md +24 -1
  2. package/README.md +41 -0
  3. package/core-js/_alpine.ts +6 -0
  4. package/core-js/_slider.ts +22 -11
  5. package/core-js/blocks-components/button.tsx +50 -33
  6. package/core-js/blocks-components/custom-image-sizes-panel.tsx +3 -1
  7. package/core-js/blocks-components/typography-picker-select.tsx +16 -1
  8. package/core-js/blocks-filters/_filter-core-typography.tsx +11 -1
  9. package/core-js/blocks-filters/_slider-settings.tsx +1 -1
  10. package/core-js/blocks-filters/_wrap-with-container.tsx +104 -0
  11. package/core-js/blocks-filters/responsive-settings/AGENTS.md +255 -0
  12. package/core-js/blocks-filters/responsive-settings/components/AppliedClassesViewer.tsx +189 -0
  13. package/core-js/blocks-filters/responsive-settings/components/BoxModelControl.tsx +346 -0
  14. package/core-js/blocks-filters/responsive-settings/components/BreakpointResetButton.tsx +94 -0
  15. package/core-js/blocks-filters/responsive-settings/components/DebugPanel.tsx +67 -0
  16. package/core-js/blocks-filters/responsive-settings/components/InheritedIndicator.tsx +32 -0
  17. package/core-js/blocks-filters/responsive-settings/components/LinkedValuesControl.tsx +55 -0
  18. package/core-js/blocks-filters/responsive-settings/components/ResponsiveSelectGroup.tsx +185 -0
  19. package/core-js/blocks-filters/responsive-settings/components/ResponsiveTabPanel.tsx +106 -0
  20. package/core-js/blocks-filters/responsive-settings/index.tsx +97 -148
  21. package/core-js/blocks-filters/responsive-settings/migration.ts +86 -0
  22. package/core-js/blocks-filters/responsive-settings/panels/BlockLinkPanel.tsx +38 -0
  23. package/core-js/blocks-filters/responsive-settings/panels/BorderPanel.tsx +61 -0
  24. package/core-js/blocks-filters/responsive-settings/panels/DisplayLayoutPanel.tsx +92 -0
  25. package/core-js/blocks-filters/responsive-settings/panels/SpacingPanel.tsx +63 -0
  26. package/core-js/blocks-filters/responsive-settings/panels/index.ts +4 -0
  27. package/core-js/blocks-filters/responsive-settings/registry.ts +88 -0
  28. package/core-js/blocks-filters/responsive-settings/settings/block-link/index.ts +3 -0
  29. package/core-js/blocks-filters/responsive-settings/settings/block-link/panel.tsx +6 -6
  30. package/core-js/blocks-filters/responsive-settings/settings/block-link/registration.ts +35 -0
  31. package/core-js/blocks-filters/responsive-settings/settings/border/border/properties.ts +1 -2
  32. package/core-js/blocks-filters/responsive-settings/settings/border/border/settings.tsx +21 -3
  33. package/core-js/blocks-filters/responsive-settings/settings/border/border-radius/index.tsx +2 -1
  34. package/core-js/blocks-filters/responsive-settings/settings/border/border-radius/properties.ts +6 -29
  35. package/core-js/blocks-filters/responsive-settings/settings/border/border-radius/settings.tsx +79 -6
  36. package/core-js/blocks-filters/responsive-settings/settings/border/index.ts +5 -1
  37. package/core-js/blocks-filters/responsive-settings/settings/border/panel.tsx +5 -54
  38. package/core-js/blocks-filters/responsive-settings/settings/border/registration.ts +84 -0
  39. package/core-js/blocks-filters/responsive-settings/settings/border/settings.tsx +21 -0
  40. package/core-js/blocks-filters/responsive-settings/settings/flex-item/index.ts +4 -0
  41. package/core-js/blocks-filters/responsive-settings/settings/flex-item/properties.ts +60 -0
  42. package/core-js/blocks-filters/responsive-settings/settings/flex-item/registration.ts +78 -0
  43. package/core-js/blocks-filters/responsive-settings/settings/flex-item/settings.tsx +90 -0
  44. package/core-js/blocks-filters/responsive-settings/settings/flexbox/index.ts +4 -0
  45. package/core-js/blocks-filters/responsive-settings/settings/flexbox/properties.ts +80 -0
  46. package/core-js/blocks-filters/responsive-settings/settings/flexbox/registration.ts +66 -0
  47. package/core-js/blocks-filters/responsive-settings/settings/flexbox/settings.tsx +78 -0
  48. package/core-js/blocks-filters/responsive-settings/settings/grid/index.ts +4 -0
  49. package/core-js/blocks-filters/responsive-settings/settings/grid/properties.ts +72 -0
  50. package/core-js/blocks-filters/responsive-settings/settings/grid/registration.ts +66 -0
  51. package/core-js/blocks-filters/responsive-settings/settings/grid/settings.tsx +78 -0
  52. package/core-js/blocks-filters/responsive-settings/settings/grid-item/index.ts +4 -0
  53. package/core-js/blocks-filters/responsive-settings/settings/grid-item/properties.ts +44 -0
  54. package/core-js/blocks-filters/responsive-settings/settings/grid-item/registration.ts +74 -0
  55. package/core-js/blocks-filters/responsive-settings/settings/grid-item/settings.tsx +87 -0
  56. package/core-js/blocks-filters/responsive-settings/settings/layout/index.ts +4 -0
  57. package/core-js/blocks-filters/responsive-settings/settings/layout/properties.ts +51 -0
  58. package/core-js/blocks-filters/responsive-settings/settings/layout/registration.ts +96 -0
  59. package/core-js/blocks-filters/responsive-settings/settings/layout/settings.tsx +64 -0
  60. package/core-js/blocks-filters/responsive-settings/settings/presets/index.ts +4 -0
  61. package/core-js/blocks-filters/responsive-settings/settings/presets/presets.ts +52 -0
  62. package/core-js/blocks-filters/responsive-settings/settings/presets/registration.ts +53 -0
  63. package/core-js/blocks-filters/responsive-settings/settings/presets/settings.tsx +100 -0
  64. package/core-js/blocks-filters/responsive-settings/settings/shared/gap-values.ts +16 -0
  65. package/core-js/blocks-filters/responsive-settings/settings/shared/layout-values.ts +56 -0
  66. package/core-js/blocks-filters/responsive-settings/settings/shared/tw-values.ts +107 -0
  67. package/core-js/blocks-filters/responsive-settings/settings/sizing/index.ts +4 -0
  68. package/core-js/blocks-filters/responsive-settings/settings/sizing/properties.ts +71 -0
  69. package/core-js/blocks-filters/responsive-settings/settings/sizing/registration.ts +52 -0
  70. package/core-js/blocks-filters/responsive-settings/settings/sizing/settings.tsx +96 -0
  71. package/core-js/blocks-filters/responsive-settings/settings/spacing/index.ts +7 -2
  72. package/core-js/blocks-filters/responsive-settings/settings/spacing/panel.tsx +5 -45
  73. package/core-js/blocks-filters/responsive-settings/settings/spacing/properties.ts +51 -29
  74. package/core-js/blocks-filters/responsive-settings/settings/spacing/registration.ts +53 -0
  75. package/core-js/blocks-filters/responsive-settings/settings/spacing/settings.tsx +26 -55
  76. package/core-js/blocks-filters/responsive-settings/types/index.ts +174 -28
  77. package/core-js/blocks-filters/responsive-settings/utils.ts +247 -216
  78. package/core-js/config/index.ts +6 -0
  79. package/core-js/config/webentor-config.ts +44 -2
  80. package/core-js/index.ts +8 -10
  81. package/core-js/types/index.ts +6 -0
  82. package/package.json +116 -6
  83. package/public/build/assets/_utils-CzK6Vfiv.js +2 -0
  84. package/public/build/assets/{_utils-PDaZ1Dn1.js.map → _utils-CzK6Vfiv.js.map} +1 -1
  85. package/public/build/assets/coreAppStyles-Bvp3emQy.css +1 -0
  86. package/public/build/assets/coreEditorJs-DYd3ZopL.js +366 -0
  87. package/public/build/assets/coreEditorJs-DYd3ZopL.js.map +1 -0
  88. package/public/build/assets/coreEditorStyles-BzlB6eA_.css +1 -0
  89. package/public/build/assets/resources/blocks/e-table/{script-BIchbcPK.js → script-C_Z50hjm.js} +2 -2
  90. package/public/build/assets/resources/blocks/e-table/{script-BIchbcPK.js.map → script-C_Z50hjm.js.map} +1 -1
  91. package/public/build/assets/{sliderJs-Ch69_tVA.js → sliderJs-CyGnrv0Q.js} +3 -3
  92. package/public/build/assets/{sliderJs-Ch69_tVA.js.map → sliderJs-CyGnrv0Q.js.map} +1 -1
  93. package/public/build/manifest.json +10 -10
  94. package/resources/blocks/e-accordion-group/block.json +6 -4
  95. package/resources/blocks/e-gallery/block.json +2 -2
  96. package/resources/blocks/e-gallery/e-gallery.block.tsx +4 -0
  97. package/resources/blocks/e-image/e-image.block.tsx +4 -0
  98. package/resources/blocks/e-slider/block.json +3 -2
  99. package/resources/blocks/e-tab-container/block.json +2 -1
  100. package/resources/blocks/e-tabs/block.json +2 -1
  101. package/resources/blocks/l-flexible-container/block.json +3 -2
  102. package/resources/blocks/l-mobile-nav/block.json +2 -1
  103. package/resources/blocks/l-nav-menu/block.json +2 -1
  104. package/resources/blocks/l-nav-menu/l-nav-menu.block.tsx +2 -0
  105. package/resources/blocks/l-section/block.json +7 -5
  106. package/resources/blocks/l-section/l-section.block.tsx +40 -31
  107. package/resources/scripts/editor.ts +2 -0
  108. package/resources/styles/common/_editor.css +22 -0
  109. package/resources/styles/common/_utilities.css +210 -0
  110. package/core-js/blocks-filters/responsive-settings/constants.ts +0 -11
  111. package/core-js/blocks-filters/responsive-settings/settings/container/display/index.ts +0 -2
  112. package/core-js/blocks-filters/responsive-settings/settings/container/display/properties.ts +0 -167
  113. package/core-js/blocks-filters/responsive-settings/settings/container/display/settings.tsx +0 -73
  114. package/core-js/blocks-filters/responsive-settings/settings/container/flexbox/index.ts +0 -2
  115. package/core-js/blocks-filters/responsive-settings/settings/container/flexbox/properties.ts +0 -187
  116. package/core-js/blocks-filters/responsive-settings/settings/container/flexbox/settings.tsx +0 -131
  117. package/core-js/blocks-filters/responsive-settings/settings/container/grid/index.ts +0 -2
  118. package/core-js/blocks-filters/responsive-settings/settings/container/grid/properties.ts +0 -187
  119. package/core-js/blocks-filters/responsive-settings/settings/container/grid/settings.tsx +0 -132
  120. package/core-js/blocks-filters/responsive-settings/settings/container/index.ts +0 -4
  121. package/core-js/blocks-filters/responsive-settings/settings/container/panel.tsx +0 -92
  122. package/public/build/assets/_utils-PDaZ1Dn1.js +0 -2
  123. package/public/build/assets/coreAppStyles-Dp0WYk4N.css +0 -1
  124. package/public/build/assets/coreEditorJs-Cyc87wTo.js +0 -366
  125. package/public/build/assets/coreEditorJs-Cyc87wTo.js.map +0 -1
  126. package/public/build/assets/coreEditorStyles-D8-nNpQG.css +0 -1
@@ -1,6 +1,6 @@
1
1
  {
2
- "__utils-PDaZ1Dn1.js": {
3
- "file": "assets/_utils-PDaZ1Dn1.js",
2
+ "__utils-CzK6Vfiv.js": {
3
+ "file": "assets/_utils-CzK6Vfiv.js",
4
4
  "name": "_utils"
5
5
  },
6
6
  "resources/blocks/e-accordion/script.ts": {
@@ -28,12 +28,12 @@
28
28
  ]
29
29
  },
30
30
  "resources/blocks/e-table/script.ts": {
31
- "file": "assets/resources/blocks/e-table/script-BIchbcPK.js",
31
+ "file": "assets/resources/blocks/e-table/script-C_Z50hjm.js",
32
32
  "name": "resources/blocks/e-table/script",
33
33
  "src": "resources/blocks/e-table/script.ts",
34
34
  "isEntry": true,
35
35
  "imports": [
36
- "__utils-PDaZ1Dn1.js"
36
+ "__utils-CzK6Vfiv.js"
37
37
  ]
38
38
  },
39
39
  "resources/blocks/l-mobile-nav/style.css": {
@@ -55,12 +55,12 @@
55
55
  ]
56
56
  },
57
57
  "resources/core-components/slider/slider.script.ts": {
58
- "file": "assets/sliderJs-Ch69_tVA.js",
58
+ "file": "assets/sliderJs-CyGnrv0Q.js",
59
59
  "name": "sliderJs",
60
60
  "src": "resources/core-components/slider/slider.script.ts",
61
61
  "isEntry": true,
62
62
  "imports": [
63
- "__utils-PDaZ1Dn1.js"
63
+ "__utils-CzK6Vfiv.js"
64
64
  ]
65
65
  },
66
66
  "resources/core-components/slider/slider.style.css": {
@@ -73,16 +73,16 @@
73
73
  ]
74
74
  },
75
75
  "resources/scripts/editor.ts": {
76
- "file": "assets/coreEditorJs-Cyc87wTo.js",
76
+ "file": "assets/coreEditorJs-DYd3ZopL.js",
77
77
  "name": "coreEditorJs",
78
78
  "src": "resources/scripts/editor.ts",
79
79
  "isEntry": true,
80
80
  "imports": [
81
- "__utils-PDaZ1Dn1.js"
81
+ "__utils-CzK6Vfiv.js"
82
82
  ]
83
83
  },
84
84
  "resources/styles/app.css": {
85
- "file": "assets/coreAppStyles-Dp0WYk4N.css",
85
+ "file": "assets/coreAppStyles-Bvp3emQy.css",
86
86
  "src": "resources/styles/app.css",
87
87
  "isEntry": true,
88
88
  "name": "coreAppStyles",
@@ -91,7 +91,7 @@
91
91
  ]
92
92
  },
93
93
  "resources/styles/editor.css": {
94
- "file": "assets/coreEditorStyles-D8-nNpQG.css",
94
+ "file": "assets/coreEditorStyles-BzlB6eA_.css",
95
95
  "src": "resources/styles/editor.css",
96
96
  "isEntry": true,
97
97
  "name": "coreEditorStyles",
@@ -12,7 +12,7 @@
12
12
  "type": "array",
13
13
  "default": null
14
14
  },
15
- "display": {
15
+ "sizing": {
16
16
  "type": "object",
17
17
  "default": {
18
18
  "width": {
@@ -41,15 +41,17 @@
41
41
  "supports": {
42
42
  "anchor": true,
43
43
  "webentor": {
44
- "display": {
45
- "display": true,
44
+ "layout": {
45
+ "display": true
46
+ },
47
+ "sizing": {
46
48
  "minHeight": true,
47
49
  "width": true
48
50
  },
49
51
  "grid": true,
50
52
  "gridItem": true,
51
53
  "flexbox": true,
52
- "flexboxItem": true,
54
+ "flexItem": true,
53
55
  "spacing": true
54
56
  }
55
57
  }
@@ -44,7 +44,7 @@
44
44
  "type": "object",
45
45
  "default": {}
46
46
  },
47
- "display": {
47
+ "layout": {
48
48
  "type": "object",
49
49
  "default": {
50
50
  "display": {
@@ -80,7 +80,7 @@
80
80
  "supports": {
81
81
  "webentor": {
82
82
  "spacing": true,
83
- "display": {
83
+ "layout": {
84
84
  "display": true
85
85
  },
86
86
  "flexbox": true,
@@ -191,6 +191,7 @@ const BlockEdit: React.FC<BlockEditProps<AttributesType>> = (props) => {
191
191
  <SelectControl
192
192
  label={__('Aspect Ratio', 'webentor')}
193
193
  value={attributes.aspectRatio}
194
+ __nextHasNoMarginBottom
194
195
  options={[
195
196
  { label: 'Auto', value: 'auto' },
196
197
  { label: 'Square', value: 'square' },
@@ -205,6 +206,7 @@ const BlockEdit: React.FC<BlockEditProps<AttributesType>> = (props) => {
205
206
  <SelectControl
206
207
  label={__('Object Fit', 'webentor')}
207
208
  value={attributes.objectFit}
209
+ __nextHasNoMarginBottom
208
210
  options={[
209
211
  { label: 'None', value: 'none' },
210
212
  { label: 'Fill', value: 'fill' },
@@ -222,6 +224,7 @@ const BlockEdit: React.FC<BlockEditProps<AttributesType>> = (props) => {
222
224
  <SelectControl
223
225
  label={__('Object Position', 'webentor')}
224
226
  value={attributes.objectPosition}
227
+ __nextHasNoMarginBottom
225
228
  options={[
226
229
  { label: 'Top', value: 'top' },
227
230
  { label: 'Right Top', value: 'right-top' },
@@ -243,6 +246,7 @@ const BlockEdit: React.FC<BlockEditProps<AttributesType>> = (props) => {
243
246
  <SelectControl
244
247
  label={__('Image Size', 'webentor')}
245
248
  value={attributes.imageSize}
249
+ __nextHasNoMarginBottom
246
250
  options={imageSizeOptions}
247
251
  onChange={(imageSize) => setAttributes({ imageSize })}
248
252
  help={__(
@@ -212,6 +212,7 @@ const BlockEdit: React.FC<BlockEditProps<AttributesType>> = (props) => {
212
212
  <SelectControl
213
213
  label={__('Aspect Ratio', 'webentor')}
214
214
  value={attributes.aspectRatio}
215
+ __nextHasNoMarginBottom
215
216
  options={[
216
217
  { label: 'Auto', value: 'auto' },
217
218
  { label: 'Square', value: 'square' },
@@ -226,6 +227,7 @@ const BlockEdit: React.FC<BlockEditProps<AttributesType>> = (props) => {
226
227
  <SelectControl
227
228
  label={__('Object Fit', 'webentor')}
228
229
  value={attributes.objectFit}
230
+ __nextHasNoMarginBottom
229
231
  options={[
230
232
  { label: 'None', value: 'none' },
231
233
  { label: 'Fill', value: 'fill' },
@@ -243,6 +245,7 @@ const BlockEdit: React.FC<BlockEditProps<AttributesType>> = (props) => {
243
245
  <SelectControl
244
246
  label={__('Object Position', 'webentor')}
245
247
  value={attributes.objectPosition}
248
+ __nextHasNoMarginBottom
246
249
  options={[
247
250
  { label: 'Top', value: 'top' },
248
251
  { label: 'Right Top', value: 'right-top' },
@@ -264,6 +267,7 @@ const BlockEdit: React.FC<BlockEditProps<AttributesType>> = (props) => {
264
267
  <SelectControl
265
268
  label={__('Image Size', 'webentor')}
266
269
  value={attributes.imageSize}
270
+ __nextHasNoMarginBottom
267
271
  options={imageSizeOptions}
268
272
  onChange={(imageSize) => setAttributes({ imageSize })}
269
273
  help={__(
@@ -32,11 +32,12 @@
32
32
  },
33
33
  "webentor": {
34
34
  "spacing": true,
35
- "display": true,
35
+ "layout": true,
36
+ "sizing": true,
36
37
  "grid": true,
37
38
  "gridItem": true,
38
39
  "flexbox": true,
39
- "flexboxItem": true
40
+ "flexItem": true
40
41
  }
41
42
  }
42
43
  }
@@ -43,7 +43,8 @@
43
43
  },
44
44
  "supports": {
45
45
  "webentor": {
46
- "display": true
46
+ "layout": true,
47
+ "sizing": true
47
48
  }
48
49
  }
49
50
  }
@@ -20,7 +20,8 @@
20
20
  "supports": {
21
21
  "anchor": true,
22
22
  "webentor": {
23
- "display": true,
23
+ "layout": true,
24
+ "sizing": true,
24
25
  "spacing": true
25
26
  }
26
27
  }
@@ -21,11 +21,12 @@
21
21
  },
22
22
  "webentor": {
23
23
  "spacing": true,
24
- "display": true,
24
+ "layout": true,
25
+ "sizing": true,
25
26
  "grid": true,
26
27
  "gridItem": true,
27
28
  "flexbox": true,
28
- "flexboxItem": true,
29
+ "flexItem": true,
29
30
  "blockLink": true,
30
31
  "border": true,
31
32
  "borderRadius": true
@@ -9,7 +9,8 @@
9
9
  "attributes": {},
10
10
  "supports": {
11
11
  "webentor": {
12
- "display": true
12
+ "layout": true,
13
+ "sizing": true
13
14
  }
14
15
  }
15
16
  }
@@ -21,7 +21,8 @@
21
21
  },
22
22
  "supports": {
23
23
  "webentor": {
24
- "display": true
24
+ "layout": true,
25
+ "sizing": true
25
26
  }
26
27
  }
27
28
  }
@@ -60,6 +60,7 @@ const BlockEdit: React.FC<BlockEditProps<AttributesType>> = (props) => {
60
60
  <SelectControl
61
61
  label={__('Nav Menu', 'webentor')}
62
62
  value={attributes.menuId}
63
+ __nextHasNoMarginBottom
63
64
  options={menuOptions}
64
65
  onChange={(menuId) => setAttributes({ menuId })}
65
66
  />
@@ -69,6 +70,7 @@ const BlockEdit: React.FC<BlockEditProps<AttributesType>> = (props) => {
69
70
  <SelectControl
70
71
  label={__('Direction', 'webentor')}
71
72
  value={attributes.direction}
73
+ __nextHasNoMarginBottom
72
74
  options={[
73
75
  { label: 'Row', value: 'direction-row' },
74
76
  { label: 'Column', value: 'direction-col' },
@@ -41,7 +41,7 @@
41
41
  }
42
42
  }
43
43
  },
44
- "display": {
44
+ "layout": {
45
45
  "type": "object",
46
46
  "default": {
47
47
  "display": {
@@ -74,13 +74,15 @@
74
74
  },
75
75
  "webentor": {
76
76
  "spacing": true,
77
- "display": {
78
- "height": true,
79
- "minHeight": true,
77
+ "layout": {
80
78
  "display": true
81
79
  },
80
+ "sizing": {
81
+ "height": true,
82
+ "minHeight": true
83
+ },
82
84
  "flexbox": true,
83
- "flexboxItem": true,
85
+ "flexItem": true,
84
86
  "grid": true,
85
87
  "border": true,
86
88
  "borderRadius": true
@@ -262,40 +262,49 @@ const BlockEdit: React.FC<BlockEditProps<AttributesType>> = (props) => {
262
262
  </PanelBody>
263
263
  </InspectorControls>
264
264
 
265
- <div {...blockProps} className={`w-section ${blockProps.className}`}>
266
- <div
267
- {...innerBlocksProps}
268
- className={`${innerBlocksProps.className} container wbtr:relative wbtr:z-[2] wbtr:flex wbtr:flex-col`}
269
- >
270
- {children}
265
+ {
266
+ applyFilters(
267
+ 'webentor.core.l-section.output',
268
+ <div {...blockProps} className={`w-section ${blockProps.className}`}>
269
+ <div
270
+ {...innerBlocksProps}
271
+ className={`${innerBlocksProps.className} container wbtr:relative wbtr:z-[2] wbtr:flex wbtr:flex-col`}
272
+ >
273
+ {children}
271
274
 
272
- {/* Only show appender if no inner blocks or if the block is selected */}
273
- {(!hasInnerBlocks || isSelected) && (
274
- <div className="wbtr:my-2 wbtr:flex wbtr:items-center wbtr:justify-center">
275
- <WebentorBlockAppender
276
- rootClientId={props.clientId}
277
- text={__('Add Section Content', 'webentor')}
278
- />
275
+ {/* Only show appender if no inner blocks or if the block is selected */}
276
+ {(!hasInnerBlocks || isSelected) && (
277
+ <div className="wbtr:my-2 wbtr:flex wbtr:items-center wbtr:justify-center">
278
+ <WebentorBlockAppender
279
+ rootClientId={props.clientId}
280
+ text={__('Add Section Content', 'webentor')}
281
+ />
282
+ </div>
283
+ )}
279
284
  </div>
280
- )}
281
- </div>
282
285
 
283
- {attributes?.img?.id && (
284
- <>
285
- <div className="wbtr:absolute wbtr:inset-0 wbtr:z-[1] wbtr:bg-black wbtr:opacity-20"></div>
286
- <img
287
- src={attributes.img.url}
288
- alt="banner-img"
289
- className="wbtr:absolute wbtr:top-0 wbtr:left-0 wbtr:hidden wbtr:!h-full wbtr:!w-full wbtr:object-cover wbtr:md:block"
290
- />
291
- <img
292
- src={attributes.mobileImg?.url || attributes.img.url}
293
- alt="banner-img"
294
- className="wbtr:absolute wbtr:top-0 wbtr:left-0 wbtr:block wbtr:!h-full wbtr:!w-full wbtr:object-cover wbtr:md:hidden"
295
- />
296
- </>
297
- )}
298
- </div>
286
+ {attributes?.img?.id && (
287
+ <>
288
+ <div className="wbtr:absolute wbtr:inset-0 wbtr:z-[1] wbtr:bg-black wbtr:opacity-20"></div>
289
+ <img
290
+ src={attributes.img.url}
291
+ alt="banner-img"
292
+ className="wbtr:absolute wbtr:top-0 wbtr:left-0 wbtr:hidden wbtr:!h-full wbtr:!w-full wbtr:object-cover wbtr:md:block"
293
+ />
294
+ <img
295
+ src={attributes.mobileImg?.url || attributes.img.url}
296
+ alt="banner-img"
297
+ className="wbtr:absolute wbtr:top-0 wbtr:left-0 wbtr:block wbtr:!h-full wbtr:!w-full wbtr:object-cover wbtr:md:hidden"
298
+ />
299
+ </>
300
+ )}
301
+ </div>,
302
+ props,
303
+ blockProps,
304
+ innerBlocksProps,
305
+ children,
306
+ ) as React.ReactNode
307
+ }
299
308
  </>
300
309
  );
301
310
  };
@@ -1,3 +1,5 @@
1
+ // Core block-editor filters (self-registering on import)
2
+ import '@webentorCore/blocks-filters/_wrap-with-container';
1
3
  // Import all core blocks
2
4
  // TODO: maybe add filter to customize this list
3
5
  import '@blocks/e-accordion/e-accordion.block';
@@ -78,9 +78,31 @@
78
78
  .components-tab-panel__tabs-item {
79
79
  padding: 0 6px;
80
80
  flex-shrink: 0;
81
+ /* Override WP icon-button min-width so tabs stay compact */
82
+ min-width: unset;
81
83
 
82
84
  &.is-active {
83
85
  font-weight: bold;
84
86
  }
87
+
88
+ /* Let SVG text inherit bold weight from .is-active */
89
+ svg text {
90
+ font-weight: inherit;
91
+ }
92
+ }
93
+ }
94
+
95
+ /* Cascade indicator: style selects showing inherited (not explicit) values */
96
+ .wbtr-inherited-value select {
97
+ font-style: italic;
98
+ color: #757575;
99
+ opacity: 0.7;
100
+ }
101
+
102
+ /* Extend width of Gutenberg sidebar */
103
+ .interface-complementary-area__fill,
104
+ .interface-complementary-area {
105
+ @media (min-width: 768px) {
106
+ width: 350px !important;
85
107
  }
86
108
  }
@@ -31,3 +31,213 @@
31
31
  @utility border-l-* {
32
32
  border-left-style: --value('none', 'solid', 'dashed', 'dotted', 'double');
33
33
  }
34
+
35
+ /*
36
+ * Flex-wrap + gap + equal columns utilities.
37
+ *
38
+ * Solves the problem where pure Tailwind can't create a flex-wrap layout
39
+ * with N equal columns that account for gap in their width calc.
40
+ * Each .w-flex-cols-N sets --w-cols and child width via calc().
41
+ * The .w-gap-* classes set both gap and --w-col-gap CSS var.
42
+ *
43
+ * Usage: class="w-flex-cols w-flex-cols-3 w-gap-4"
44
+ * Responsive: class="md:w-flex-cols-3 md:w-gap-4"
45
+ */
46
+ @utility w-flex-cols {
47
+ display: flex;
48
+ flex-wrap: wrap;
49
+ }
50
+
51
+ @utility w-flex-cols-2 {
52
+ --w-cols: 2;
53
+
54
+ > * {
55
+ width: calc(50% - var(--w-col-gap, 0px));
56
+ }
57
+ }
58
+
59
+ @utility w-flex-cols-3 {
60
+ --w-cols: 3;
61
+
62
+ > * {
63
+ width: calc(33.333% - var(--w-col-gap, 0px));
64
+ }
65
+ }
66
+
67
+ @utility w-flex-cols-4 {
68
+ --w-cols: 4;
69
+
70
+ > * {
71
+ width: calc(25% - var(--w-col-gap, 0px));
72
+ }
73
+ }
74
+
75
+ @utility w-flex-cols-5 {
76
+ --w-cols: 5;
77
+
78
+ > * {
79
+ width: calc(20% - var(--w-col-gap, 0px));
80
+ }
81
+ }
82
+
83
+ @utility w-flex-cols-6 {
84
+ --w-cols: 6;
85
+
86
+ > * {
87
+ width: calc(16.666% - var(--w-col-gap, 0px));
88
+ }
89
+ }
90
+
91
+ @utility w-flex-cols-7 {
92
+ --w-cols: 7;
93
+
94
+ > * {
95
+ width: calc(14.285714% - var(--w-col-gap, 0px));
96
+ }
97
+ }
98
+
99
+ @utility w-flex-cols-8 {
100
+ --w-cols: 8;
101
+
102
+ > * {
103
+ width: calc(12.5% - var(--w-col-gap, 0px));
104
+ }
105
+ }
106
+
107
+ @utility w-flex-cols-9 {
108
+ --w-cols: 9;
109
+
110
+ > * {
111
+ width: calc(11.111111% - var(--w-col-gap, 0px));
112
+ }
113
+ }
114
+
115
+ @utility w-flex-cols-10 {
116
+ --w-cols: 10;
117
+
118
+ > * {
119
+ width: calc(10% - var(--w-col-gap, 0px));
120
+ }
121
+ }
122
+
123
+ @utility w-flex-cols-11 {
124
+ --w-cols: 11;
125
+
126
+ > * {
127
+ width: calc(9.090909% - var(--w-col-gap, 0px));
128
+ }
129
+ }
130
+
131
+ @utility w-flex-cols-12 {
132
+ --w-cols: 12;
133
+
134
+ > * {
135
+ width: calc(8.333333% - var(--w-col-gap, 0px));
136
+ }
137
+ }
138
+
139
+ /* Gap utilities that also set --w-col-gap for flex-cols width calculation */
140
+ @utility w-gap-0 {
141
+ gap: 0;
142
+ --w-col-gap: 0px;
143
+ }
144
+
145
+ @utility w-gap-0.5 {
146
+ gap: 0.125rem;
147
+ --w-col-gap: calc(0.125rem * (var(--w-cols, 1) - 1) / var(--w-cols, 1));
148
+ }
149
+
150
+ @utility w-gap-1 {
151
+ gap: 0.25rem;
152
+ --w-col-gap: calc(0.25rem * (var(--w-cols, 1) - 1) / var(--w-cols, 1));
153
+ }
154
+
155
+ @utility w-gap-1.5 {
156
+ gap: 0.375rem;
157
+ --w-col-gap: calc(0.375rem * (var(--w-cols, 1) - 1) / var(--w-cols, 1));
158
+ }
159
+
160
+ @utility w-gap-2 {
161
+ gap: 0.5rem;
162
+ --w-col-gap: calc(0.5rem * (var(--w-cols, 1) - 1) / var(--w-cols, 1));
163
+ }
164
+
165
+ @utility w-gap-2.5 {
166
+ gap: 0.625rem;
167
+ --w-col-gap: calc(0.625rem * (var(--w-cols, 1) - 1) / var(--w-cols, 1));
168
+ }
169
+
170
+ @utility w-gap-3 {
171
+ gap: 0.75rem;
172
+ --w-col-gap: calc(0.75rem * (var(--w-cols, 1) - 1) / var(--w-cols, 1));
173
+ }
174
+
175
+ @utility w-gap-3.5 {
176
+ gap: 0.875rem;
177
+ --w-col-gap: calc(0.875rem * (var(--w-cols, 1) - 1) / var(--w-cols, 1));
178
+ }
179
+
180
+ @utility w-gap-4 {
181
+ gap: 1rem;
182
+ --w-col-gap: calc(1rem * (var(--w-cols, 1) - 1) / var(--w-cols, 1));
183
+ }
184
+
185
+ @utility w-gap-5 {
186
+ gap: 1.25rem;
187
+ --w-col-gap: calc(1.25rem * (var(--w-cols, 1) - 1) / var(--w-cols, 1));
188
+ }
189
+
190
+ @utility w-gap-6 {
191
+ gap: 1.5rem;
192
+ --w-col-gap: calc(1.5rem * (var(--w-cols, 1) - 1) / var(--w-cols, 1));
193
+ }
194
+
195
+ @utility w-gap-7 {
196
+ gap: 1.75rem;
197
+ --w-col-gap: calc(1.75rem * (var(--w-cols, 1) - 1) / var(--w-cols, 1));
198
+ }
199
+
200
+ @utility w-gap-8 {
201
+ gap: 2rem;
202
+ --w-col-gap: calc(2rem * (var(--w-cols, 1) - 1) / var(--w-cols, 1));
203
+ }
204
+
205
+ @utility w-gap-9 {
206
+ gap: 2.25rem;
207
+ --w-col-gap: calc(2.25rem * (var(--w-cols, 1) - 1) / var(--w-cols, 1));
208
+ }
209
+
210
+ @utility w-gap-10 {
211
+ gap: 2.5rem;
212
+ --w-col-gap: calc(2.5rem * (var(--w-cols, 1) - 1) / var(--w-cols, 1));
213
+ }
214
+
215
+ @utility w-gap-11 {
216
+ gap: 2.75rem;
217
+ --w-col-gap: calc(2.75rem * (var(--w-cols, 1) - 1) / var(--w-cols, 1));
218
+ }
219
+
220
+ @utility w-gap-12 {
221
+ gap: 3rem;
222
+ --w-col-gap: calc(3rem * (var(--w-cols, 1) - 1) / var(--w-cols, 1));
223
+ }
224
+
225
+ @utility w-gap-14 {
226
+ gap: 3.5rem;
227
+ --w-col-gap: calc(3.5rem * (var(--w-cols, 1) - 1) / var(--w-cols, 1));
228
+ }
229
+
230
+ @utility w-gap-15 {
231
+ gap: 3.75rem;
232
+ --w-col-gap: calc(3.75rem * (var(--w-cols, 1) - 1) / var(--w-cols, 1));
233
+ }
234
+
235
+ @utility w-gap-16 {
236
+ gap: 4rem;
237
+ --w-col-gap: calc(4rem * (var(--w-cols, 1) - 1) / var(--w-cols, 1));
238
+ }
239
+
240
+ @utility w-gap-20 {
241
+ gap: 5rem;
242
+ --w-col-gap: calc(5rem * (var(--w-cols, 1) - 1) / var(--w-cols, 1));
243
+ }
@@ -1,11 +0,0 @@
1
- export const includedBlocks = {
2
- blockLink: [],
3
- spacing: [],
4
- display: [],
5
- grid: [],
6
- gridItem: [],
7
- flexbox: [],
8
- flexboxItem: [],
9
- border: [],
10
- borderRadius: [],
11
- };
@@ -1,2 +0,0 @@
1
- export { DisplaySettings } from './settings';
2
- export { getDisplayProperties } from './properties';