@brilo/base-blocks 0.1.44 → 0.1.46

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 (160) hide show
  1. package/build/.tsbuildinfo +1 -1
  2. package/build/blocks/compare/compare-item/index.js +1 -1
  3. package/build/blocks/faq/faq-group/edit.d.ts.map +1 -1
  4. package/build/blocks/faq/faq-group/edit.js +4 -2
  5. package/build/blocks/faq/faq-group/factory.d.ts.map +1 -1
  6. package/build/blocks/faq/faq-group/factory.js +2 -0
  7. package/build/blocks/faq/faq-group/types.d.ts +1 -0
  8. package/build/blocks/faq/faq-group/types.d.ts.map +1 -1
  9. package/build/blocks/gallery/gallery-group/edit.d.ts.map +1 -1
  10. package/build/blocks/gallery/gallery-group/edit.js +4 -2
  11. package/build/blocks/gallery/gallery-group/factory.d.ts.map +1 -1
  12. package/build/blocks/gallery/gallery-group/factory.js +2 -0
  13. package/build/blocks/gallery/gallery-group/types.d.ts +1 -0
  14. package/build/blocks/gallery/gallery-group/types.d.ts.map +1 -1
  15. package/build/blocks/groups/text-and-media-group/index.d.ts.map +1 -1
  16. package/build/blocks/groups/text-and-media-group/index.js +1 -0
  17. package/build/blocks/list/list-group/constants.d.ts +21 -0
  18. package/build/blocks/list/list-group/constants.d.ts.map +1 -0
  19. package/build/blocks/list/list-group/constants.js +12 -0
  20. package/build/blocks/list/list-group/edit.d.ts +6 -0
  21. package/build/blocks/list/list-group/edit.d.ts.map +1 -0
  22. package/build/blocks/list/list-group/edit.js +30 -0
  23. package/build/blocks/list/list-group/factory.d.ts +7 -0
  24. package/build/blocks/list/list-group/factory.d.ts.map +1 -0
  25. package/build/blocks/list/list-group/factory.js +29 -0
  26. package/build/blocks/list/list-group/icon.d.ts +2 -0
  27. package/build/blocks/list/list-group/icon.d.ts.map +1 -0
  28. package/build/blocks/list/list-group/icon.js +2 -0
  29. package/build/blocks/list/list-group/index.d.ts +5 -0
  30. package/build/blocks/list/list-group/index.d.ts.map +1 -0
  31. package/build/blocks/list/list-group/index.js +11 -0
  32. package/build/blocks/list/list-group/types.d.ts +22 -0
  33. package/build/blocks/list/list-group/types.d.ts.map +1 -0
  34. package/build/blocks/list/list-group/types.js +1 -0
  35. package/build/blocks/list/list-item/buildPreviewStyle.d.ts +20 -0
  36. package/build/blocks/list/list-item/buildPreviewStyle.d.ts.map +1 -0
  37. package/build/blocks/list/list-item/buildPreviewStyle.js +18 -0
  38. package/build/blocks/list/list-item/constants.d.ts +36 -0
  39. package/build/blocks/list/list-item/constants.d.ts.map +1 -0
  40. package/build/blocks/list/list-item/constants.js +16 -0
  41. package/build/blocks/list/list-item/edit.d.ts +11 -0
  42. package/build/blocks/list/list-item/edit.d.ts.map +1 -0
  43. package/build/blocks/list/list-item/edit.js +18 -0
  44. package/build/blocks/list/list-item/factory.d.ts +5 -0
  45. package/build/blocks/list/list-item/factory.d.ts.map +1 -0
  46. package/build/blocks/list/list-item/factory.js +29 -0
  47. package/build/blocks/list/list-item/index.d.ts +5 -0
  48. package/build/blocks/list/list-item/index.d.ts.map +1 -0
  49. package/build/blocks/list/list-item/index.js +7 -0
  50. package/build/blocks/list/list-item/types.d.ts +21 -0
  51. package/build/blocks/list/list-item/types.d.ts.map +1 -0
  52. package/build/blocks/list/list-item/types.js +1 -0
  53. package/build/blocks/priceplan/priceplan-group/edit.d.ts +5 -2
  54. package/build/blocks/priceplan/priceplan-group/edit.d.ts.map +1 -1
  55. package/build/blocks/priceplan/priceplan-group/edit.js +7 -3
  56. package/build/blocks/priceplan/priceplan-group/factory.d.ts.map +1 -1
  57. package/build/blocks/priceplan/priceplan-group/factory.js +2 -1
  58. package/build/blocks/priceplan/priceplan-group/types.d.ts +1 -0
  59. package/build/blocks/priceplan/priceplan-group/types.d.ts.map +1 -1
  60. package/build/blocks/review/review-group/edit.d.ts.map +1 -1
  61. package/build/blocks/review/review-group/edit.js +4 -3
  62. package/build/blocks/review/review-group/factory.d.ts.map +1 -1
  63. package/build/blocks/review/review-group/factory.js +2 -0
  64. package/build/blocks/review/review-group/types.d.ts +1 -0
  65. package/build/blocks/review/review-group/types.d.ts.map +1 -1
  66. package/build/blocks/sections/base-section/constants.d.ts +35 -0
  67. package/build/blocks/sections/base-section/constants.d.ts.map +1 -1
  68. package/build/blocks/sections/base-section/constants.js +10 -0
  69. package/build/blocks/sections/base-section/controls.d.ts.map +1 -1
  70. package/build/blocks/sections/base-section/controls.js +26 -12
  71. package/build/blocks/sections/base-section/edit.d.ts.map +1 -1
  72. package/build/blocks/sections/base-section/edit.js +12 -4
  73. package/build/blocks/sections/base-section/types.d.ts +9 -1
  74. package/build/blocks/sections/base-section/types.d.ts.map +1 -1
  75. package/build/blocks/signpost/signpost-group/edit.d.ts.map +1 -1
  76. package/build/blocks/signpost/signpost-group/edit.js +4 -2
  77. package/build/blocks/signpost/signpost-group/factory.d.ts.map +1 -1
  78. package/build/blocks/signpost/signpost-group/factory.js +2 -0
  79. package/build/blocks/signpost/signpost-group/types.d.ts +1 -0
  80. package/build/blocks/signpost/signpost-group/types.d.ts.map +1 -1
  81. package/build/blocks/step/step-group/edit.d.ts.map +1 -1
  82. package/build/blocks/step/step-group/edit.js +4 -3
  83. package/build/blocks/step/step-group/factory.d.ts.map +1 -1
  84. package/build/blocks/step/step-group/factory.js +2 -0
  85. package/build/blocks/step/step-group/types.d.ts +1 -0
  86. package/build/blocks/step/step-group/types.d.ts.map +1 -1
  87. package/build/blocks/text-and-form/text-and-form-text-column/index.d.ts.map +1 -1
  88. package/build/blocks/text-and-form/text-and-form-text-column/index.js +1 -0
  89. package/build/blocks/usp/usp-group/edit.d.ts.map +1 -1
  90. package/build/blocks/usp/usp-group/edit.js +4 -3
  91. package/build/blocks/usp/usp-group/factory.d.ts.map +1 -1
  92. package/build/blocks/usp/usp-group/factory.js +2 -0
  93. package/build/blocks/usp/usp-group/types.d.ts +1 -0
  94. package/build/blocks/usp/usp-group/types.d.ts.map +1 -1
  95. package/build/blocks/video/video-group/constants.d.ts +1 -0
  96. package/build/blocks/video/video-group/constants.d.ts.map +1 -1
  97. package/build/blocks/video/video-group/constants.js +1 -0
  98. package/build/blocks/video/video-group/edit.d.ts.map +1 -1
  99. package/build/blocks/video/video-group/edit.js +7 -5
  100. package/build/blocks/video/video-group/factory.d.ts.map +1 -1
  101. package/build/blocks/video/video-group/factory.js +5 -1
  102. package/build/blocks/video/video-group/types.d.ts +1 -0
  103. package/build/blocks/video/video-group/types.d.ts.map +1 -1
  104. package/build/components/ItemSpacingControl/index.d.ts +23 -0
  105. package/build/components/ItemSpacingControl/index.d.ts.map +1 -0
  106. package/build/components/ItemSpacingControl/index.js +32 -0
  107. package/build/index.d.ts +4 -0
  108. package/build/index.d.ts.map +1 -1
  109. package/build/index.js +2 -0
  110. package/package.json +1 -1
  111. package/src/blocks/compare/compare-item/index.ts +1 -1
  112. package/src/blocks/faq/faq-group/edit.tsx +4 -1
  113. package/src/blocks/faq/faq-group/factory.tsx +2 -0
  114. package/src/blocks/faq/faq-group/types.ts +1 -0
  115. package/src/blocks/gallery/gallery-group/edit.tsx +4 -1
  116. package/src/blocks/gallery/gallery-group/factory.tsx +2 -0
  117. package/src/blocks/gallery/gallery-group/types.ts +1 -0
  118. package/src/blocks/groups/text-and-media-group/index.ts +1 -0
  119. package/src/blocks/list/list-group/constants.ts +15 -0
  120. package/src/blocks/list/list-group/edit.tsx +102 -0
  121. package/src/blocks/list/list-group/editor.scss +14 -0
  122. package/src/blocks/list/list-group/factory.tsx +35 -0
  123. package/src/blocks/list/list-group/icon.tsx +11 -0
  124. package/src/blocks/list/list-group/index.ts +15 -0
  125. package/src/blocks/list/list-group/types.ts +21 -0
  126. package/src/blocks/list/list-item/buildPreviewStyle.ts +52 -0
  127. package/src/blocks/list/list-item/constants.ts +18 -0
  128. package/src/blocks/list/list-item/edit.tsx +108 -0
  129. package/src/blocks/list/list-item/editor.scss +108 -0
  130. package/src/blocks/list/list-item/factory.tsx +33 -0
  131. package/src/blocks/list/list-item/index.ts +11 -0
  132. package/src/blocks/list/list-item/types.ts +23 -0
  133. package/src/blocks/priceplan/priceplan-group/edit.tsx +21 -5
  134. package/src/blocks/priceplan/priceplan-group/factory.tsx +2 -1
  135. package/src/blocks/priceplan/priceplan-group/types.ts +3 -1
  136. package/src/blocks/review/review-group/edit.tsx +4 -2
  137. package/src/blocks/review/review-group/factory.tsx +2 -0
  138. package/src/blocks/review/review-group/types.ts +1 -0
  139. package/src/blocks/sections/base-section/constants.ts +14 -0
  140. package/src/blocks/sections/base-section/controls.tsx +93 -9
  141. package/src/blocks/sections/base-section/edit.tsx +10 -2
  142. package/src/blocks/sections/base-section/types.ts +14 -1
  143. package/src/blocks/signpost/signpost-group/edit.tsx +4 -1
  144. package/src/blocks/signpost/signpost-group/factory.tsx +2 -0
  145. package/src/blocks/signpost/signpost-group/types.ts +1 -0
  146. package/src/blocks/step/step-group/edit.tsx +4 -2
  147. package/src/blocks/step/step-group/factory.tsx +2 -0
  148. package/src/blocks/step/step-group/types.ts +1 -0
  149. package/src/blocks/text-and-form/text-and-form-text-column/index.ts +1 -0
  150. package/src/blocks/usp/usp-group/edit.tsx +4 -2
  151. package/src/blocks/usp/usp-group/factory.tsx +2 -0
  152. package/src/blocks/usp/usp-group/types.ts +1 -0
  153. package/src/blocks/video/video-group/constants.ts +2 -0
  154. package/src/blocks/video/video-group/edit.tsx +26 -2
  155. package/src/blocks/video/video-group/editor.scss +6 -1
  156. package/src/blocks/video/video-group/factory.tsx +5 -1
  157. package/src/blocks/video/video-group/types.ts +1 -0
  158. package/src/components/ItemSpacingControl/index.tsx +59 -0
  159. package/src/editor.scss +2 -0
  160. package/src/index.ts +4 -0
@@ -0,0 +1,21 @@
1
+ import type { BriloBlockType, Icon } from '../../../types';
2
+ import type { IconType } from '../../../components/IconControl';
3
+ import type { DEFAULT_BULLET_SHAPES, ICON_TYPES } from './constants';
4
+ export type ListIconType = (typeof ICON_TYPES)[number]['value'];
5
+ export type ListBulletShape = (typeof DEFAULT_BULLET_SHAPES)[number]['value'];
6
+ export interface ListItemAttributes extends Record<string, unknown> {
7
+ text: string;
8
+ icon: Icon;
9
+ bulletStyle: {
10
+ color: string;
11
+ background: string;
12
+ backgroundShape: string;
13
+ borderColor: string;
14
+ borderWidth: number;
15
+ };
16
+ }
17
+ export interface ListItemOptions extends BriloBlockType {
18
+ icons: IconType[];
19
+ iconsSrc: string;
20
+ }
21
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/blocks/list/list-item/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,cAAc,EAAE,IAAI,EAAC,MAAM,SAAS,CAAA;AACjD,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,0BAA0B,CAAA;AACtD,OAAO,KAAK,EAAC,qBAAqB,EAAE,UAAU,EAAC,MAAM,aAAa,CAAA;AAElE,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAA;AAC/D,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAA;AAE7E,MAAM,WAAW,kBAAmB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACjE,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,IAAI,CAAA;IACV,WAAW,EAAE;QACX,KAAK,EAAE,MAAM,CAAA;QACb,UAAU,EAAE,MAAM,CAAA;QAClB,eAAe,EAAE,MAAM,CAAA;QACvB,WAAW,EAAE,MAAM,CAAA;QACnB,WAAW,EAAE,MAAM,CAAA;KACpB,CAAA;CACF;AAED,MAAM,WAAW,eAAgB,SAAQ,cAAc;IACrD,KAAK,EAAE,QAAQ,EAAE,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;CACjB"}
@@ -0,0 +1 @@
1
+ export {};
@@ -1,3 +1,6 @@
1
- import type { PriceplanGroupOptions } from './types';
2
- export declare function createPriceplanGroupEdit(options: PriceplanGroupOptions): () => import("react").JSX.Element;
1
+ import type { PriceplanGroupAttributes, PriceplanGroupOptions } from './types';
2
+ export declare function createPriceplanGroupEdit(options: PriceplanGroupOptions): ({ attributes, setAttributes, }: {
3
+ attributes: PriceplanGroupAttributes;
4
+ setAttributes: (a: Partial<PriceplanGroupAttributes>) => void;
5
+ }) => import("react").JSX.Element;
3
6
  //# sourceMappingURL=edit.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"edit.d.ts","sourceRoot":"","sources":["../../../../src/blocks/priceplan/priceplan-group/edit.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,SAAS,CAAA;AAElD,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,qBAAqB,qCAiBtE"}
1
+ {"version":3,"file":"edit.d.ts","sourceRoot":"","sources":["../../../../src/blocks/priceplan/priceplan-group/edit.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,wBAAwB,EAAE,qBAAqB,EAAC,MAAM,SAAS,CAAA;AAE5E,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,qBAAqB,oCAIlE;IACD,UAAU,EAAE,wBAAwB,CAAA;IACpC,aAAa,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,wBAAwB,CAAC,KAAK,IAAI,CAAA;CAC9D,iCAwBF"}
@@ -1,16 +1,20 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
1
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { InspectorControls } from '@wordpress/block-editor';
3
+ import { ItemSpacingPanel, itemSpacingStyle } from '../../../components/ItemSpacingControl';
2
4
  import { useGroupBlock } from '../../../hooks/useGroupBlock';
3
5
  export function createPriceplanGroupEdit(options) {
4
- return function Edit() {
6
+ return function Edit({ attributes, setAttributes, }) {
5
7
  var _a, _b;
8
+ const { spacing } = attributes;
6
9
  const { blockProps, innerBlocksProps } = useGroupBlock({
7
10
  blockClassName: (_a = options.blockClassName) !== null && _a !== void 0 ? _a : 'g-priceplan wp-block-section',
8
11
  containerClassName: [(_b = options.containerClassName) !== null && _b !== void 0 ? _b : 'u-grid-responsive-blocks-list --cols-3'],
12
+ containerStyle: itemSpacingStyle(spacing),
9
13
  allowedBlocks: options.allowedBlocks,
10
14
  orientation: 'horizontal',
11
15
  template: options.template,
12
16
  layout: { type: 'default' },
13
17
  });
14
- return (_jsx("div", { ...blockProps, children: _jsx("div", { ...innerBlocksProps }) }));
18
+ return (_jsxs(_Fragment, { children: [_jsx(InspectorControls, { children: _jsx(ItemSpacingPanel, { spacing: spacing, onChange: (v) => setAttributes({ spacing: v }), initialOpen: true }) }), _jsx("div", { ...blockProps, children: _jsx("div", { ...innerBlocksProps }) })] }));
15
19
  };
16
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/blocks/priceplan/priceplan-group/factory.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,mBAAmB,CAAA;AAIzD,OAAO,KAAK,EAAC,wBAAwB,EAAE,qBAAqB,EAAC,MAAM,SAAS,CAAA;AAE5E,YAAY,EAAC,wBAAwB,EAAE,qBAAqB,EAAC,CAAA;AAE7D,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,qBAAqB,GAAG,kBAAkB,CAAC,wBAAwB,CAAC,CAatH"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/blocks/priceplan/priceplan-group/factory.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,mBAAmB,CAAA;AAKzD,OAAO,KAAK,EAAC,wBAAwB,EAAE,qBAAqB,EAAC,MAAM,SAAS,CAAA;AAE5E,YAAY,EAAC,wBAAwB,EAAE,qBAAqB,EAAC,CAAA;AAE7D,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,qBAAqB,GAAG,kBAAkB,CAAC,wBAAwB,CAAC,CAatH"}
@@ -1,6 +1,7 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { InnerBlocks } from '@wordpress/block-editor';
3
3
  import { __ } from '@wordpress/i18n';
4
+ import { ITEM_SPACING_ATTRIBUTE } from '../../../components/ItemSpacingControl';
4
5
  import { createPriceplanGroupEdit } from './edit';
5
6
  import { icon as defaultIcon } from './icon';
6
7
  export function createPriceplanGroupBlock(options) {
@@ -13,7 +14,7 @@ export function createPriceplanGroupBlock(options) {
13
14
  ...(options.parent && { parent: options.parent }),
14
15
  icon: (_d = options.icon) !== null && _d !== void 0 ? _d : { src: defaultIcon },
15
16
  supports: { html: false, customClassName: false },
16
- attributes: {},
17
+ attributes: { ...ITEM_SPACING_ATTRIBUTE },
17
18
  edit: createPriceplanGroupEdit(options),
18
19
  save: () => _jsx(InnerBlocks.Content, {}),
19
20
  };
@@ -1,5 +1,6 @@
1
1
  import type { BriloBlockType } from '../../../types';
2
2
  export interface PriceplanGroupAttributes extends Record<string, unknown> {
3
+ spacing?: number;
3
4
  }
4
5
  export interface PriceplanGroupOptions extends BriloBlockType {
5
6
  allowedBlocks?: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/blocks/priceplan/priceplan-group/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,SAAS,CAAA;AAE3C,MAAM,WAAW,wBAAyB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAAG;AAE5E,MAAM,WAAW,qBAAsB,SAAQ,cAAc;IAC3D,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;CACzB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/blocks/priceplan/priceplan-group/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,SAAS,CAAA;AAE3C,MAAM,WAAW,wBAAyB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACvE,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,qBAAsB,SAAQ,cAAc;IAC3D,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;CACzB"}
@@ -1 +1 @@
1
- {"version":3,"file":"edit.d.ts","sourceRoot":"","sources":["../../../../src/blocks/review/review-group/edit.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,mBAAmB,CAAA;AAerD,OAAO,KAAK,EAAgB,qBAAqB,EAAE,kBAAkB,EAAyC,MAAM,SAAS,CAAA;AAE7H,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,kBAAkB,mCAIF,cAAc,CAAC,qBAAqB,CAAC,iCA6FnG"}
1
+ {"version":3,"file":"edit.d.ts","sourceRoot":"","sources":["../../../../src/blocks/review/review-group/edit.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,mBAAmB,CAAA;AAgBrD,OAAO,KAAK,EAAgB,qBAAqB,EAAE,kBAAkB,EAAyC,MAAM,SAAS,CAAA;AAE7H,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,kBAAkB,mCAIF,cAAc,CAAC,qBAAqB,CAAC,iCA8FnG"}
@@ -3,6 +3,7 @@ import { InspectorControls } from '@wordpress/block-editor';
3
3
  import { BaseControl, ColorPalette, PanelBody, SelectControl, ToggleControl, __experimentalToggleGroupControl as ToggleGroupControl, __experimentalToggleGroupControlOption as ToggleGroupControlOption, } from '@wordpress/components';
4
4
  import { __ } from '@wordpress/i18n';
5
5
  import clsx from 'clsx';
6
+ import { ItemSpacingPanel, itemSpacingStyle } from '../../../components/ItemSpacingControl';
6
7
  import { useGroupBlock } from '../../../hooks/useGroupBlock';
7
8
  import { useTenantColorPalette } from '../../../hooks/useTenantColorPalette';
8
9
  import { COLUMNS, DEFAULT_SHADOWS, VARIANTS } from './constants';
@@ -12,12 +13,12 @@ export function createReviewGroupEdit(options) {
12
13
  const exclude = (_b = options.exclude) !== null && _b !== void 0 ? _b : [];
13
14
  return function ReviewGroupEdit({ attributes, setAttributes }) {
14
15
  var _a, _b, _c, _d;
15
- const { columns, image, variant, style } = attributes;
16
+ const { columns, image, variant, style, spacing } = attributes;
16
17
  const { paletteColors } = useTenantColorPalette();
17
18
  const { blockProps, innerBlocksProps } = useGroupBlock({
18
19
  blockClassName: clsx((_a = options.blockClassName) !== null && _a !== void 0 ? _a : 'g-review wp-block-section', `--variant-${variant}`, image === 'none' && '--image-none'),
19
20
  containerClassName: [(_b = options.containerClassName) !== null && _b !== void 0 ? _b : 'u-grid-responsive-blocks-list', `--col-${columns}`],
20
- containerStyle: { '--grid-max-col-count': columns },
21
+ containerStyle: { '--grid-max-col-count': columns, ...itemSpacingStyle(spacing) },
21
22
  allowedBlocks: (_c = options.allowedBlocks) !== null && _c !== void 0 ? _c : ['brilo/review-item'],
22
23
  template: (_d = options.template) !== null && _d !== void 0 ? _d : [
23
24
  ['brilo/review-item', {}],
@@ -26,6 +27,6 @@ export function createReviewGroupEdit(options) {
26
27
  ],
27
28
  layout: { type: 'default' },
28
29
  });
29
- return (_jsxs(_Fragment, { children: [_jsxs(InspectorControls, { children: [_jsxs(PanelBody, { title: __('Rozložení', 'brilo-blocks'), children: [_jsx(ToggleGroupControl, { isBlock: true, label: __('Varianta', 'brilo-blocks'), value: variant, onChange: (v) => setAttributes({ variant: v }), children: VARIANTS_OPTIONS.map((v) => (_jsx(ToggleGroupControlOption, { value: v.value, label: v.label }, v.value))) }), _jsx(SelectControl, { label: __('Počet sloupců', 'brilo-blocks'), value: String(columns), options: COLUMNS.map((c) => ({ value: String(c), label: String(c) })), onChange: (value) => setAttributes({ columns: Number(value) }) }), _jsx(ToggleControl, { label: __('Zobrazit foto autora', 'brilo-blocks'), checked: image === 'avatar', onChange: (checked) => setAttributes({ image: (checked ? 'avatar' : 'none') }) })] }), !exclude.includes('colors') && style && (_jsxs(PanelBody, { title: __('Styl', 'brilo-blocks'), children: [_jsx(ToggleGroupControl, { isBlock: true, label: __('Stín', 'brilo-blocks'), value: style.shadow, onChange: (v) => setAttributes({ style: { ...style, shadow: v } }), children: DEFAULT_SHADOWS.map((s) => (_jsx(ToggleGroupControlOption, { value: s.value, label: s.label }, s.value))) }), _jsx(BaseControl, { label: __('Barva okraje', 'brilo-blocks'), help: __('Bez vybrané barvy se okraj nevykreslí.', 'brilo-blocks'), id: "review-group-border-color", children: _jsx(ColorPalette, { colors: paletteColors, value: style.borderColor || undefined, onChange: (value) => setAttributes({ style: { ...style, borderColor: value !== null && value !== void 0 ? value : '' } }) }) }), _jsx(BaseControl, { label: __('Barva pozadí', 'brilo-blocks'), id: "review-group-background-color", children: _jsx(ColorPalette, { colors: paletteColors, value: style.backgroundColor || undefined, onChange: (value) => setAttributes({ style: { ...style, backgroundColor: value !== null && value !== void 0 ? value : '' } }) }) }), _jsx(BaseControl, { label: __('Barva textu', 'brilo-blocks'), id: "review-group-text-color", children: _jsx(ColorPalette, { colors: paletteColors, value: style.textColor || undefined, onChange: (value) => setAttributes({ style: { ...style, textColor: value !== null && value !== void 0 ? value : '' } }) }) })] }))] }), _jsx("div", { ...blockProps, children: _jsx("div", { ...innerBlocksProps }) })] }));
30
+ return (_jsxs(_Fragment, { children: [_jsxs(InspectorControls, { children: [_jsxs(PanelBody, { title: __('Rozložení', 'brilo-blocks'), children: [_jsx(ToggleGroupControl, { isBlock: true, label: __('Varianta', 'brilo-blocks'), value: variant, onChange: (v) => setAttributes({ variant: v }), children: VARIANTS_OPTIONS.map((v) => (_jsx(ToggleGroupControlOption, { value: v.value, label: v.label }, v.value))) }), _jsx(SelectControl, { label: __('Počet sloupců', 'brilo-blocks'), value: String(columns), options: COLUMNS.map((c) => ({ value: String(c), label: String(c) })), onChange: (value) => setAttributes({ columns: Number(value) }) }), _jsx(ToggleControl, { label: __('Zobrazit foto autora', 'brilo-blocks'), checked: image === 'avatar', onChange: (checked) => setAttributes({ image: (checked ? 'avatar' : 'none') }) })] }), !exclude.includes('colors') && style && (_jsxs(PanelBody, { title: __('Styl', 'brilo-blocks'), children: [_jsx(ToggleGroupControl, { isBlock: true, label: __('Stín', 'brilo-blocks'), value: style.shadow, onChange: (v) => setAttributes({ style: { ...style, shadow: v } }), children: DEFAULT_SHADOWS.map((s) => (_jsx(ToggleGroupControlOption, { value: s.value, label: s.label }, s.value))) }), _jsx(BaseControl, { label: __('Barva okraje', 'brilo-blocks'), help: __('Bez vybrané barvy se okraj nevykreslí.', 'brilo-blocks'), id: "review-group-border-color", children: _jsx(ColorPalette, { colors: paletteColors, value: style.borderColor || undefined, onChange: (value) => setAttributes({ style: { ...style, borderColor: value !== null && value !== void 0 ? value : '' } }) }) }), _jsx(BaseControl, { label: __('Barva pozadí', 'brilo-blocks'), id: "review-group-background-color", children: _jsx(ColorPalette, { colors: paletteColors, value: style.backgroundColor || undefined, onChange: (value) => setAttributes({ style: { ...style, backgroundColor: value !== null && value !== void 0 ? value : '' } }) }) }), _jsx(BaseControl, { label: __('Barva textu', 'brilo-blocks'), id: "review-group-text-color", children: _jsx(ColorPalette, { colors: paletteColors, value: style.textColor || undefined, onChange: (value) => setAttributes({ style: { ...style, textColor: value !== null && value !== void 0 ? value : '' } }) }) })] })), _jsx(ItemSpacingPanel, { spacing: spacing, onChange: (v) => setAttributes({ spacing: v }) })] }), _jsx("div", { ...blockProps, children: _jsx("div", { ...innerBlocksProps }) })] }));
30
31
  };
31
32
  }
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/blocks/review/review-group/factory.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,mBAAmB,CAAA;AAEzD,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,SAAS,CAAA;AACxC,OAAO,EAA2B,QAAQ,EAAC,MAAM,aAAa,CAAA;AAG9D,OAAO,KAAK,EAAC,qBAAqB,EAAE,kBAAkB,EAAC,MAAM,SAAS,CAAA;AAEtE,YAAY,EAAC,qBAAqB,EAAE,kBAAkB,EAAC,CAAA;AAEvD,wBAAgB,sBAAsB,CAAC,SAAS,SAAS,WAAW,GAAG,OAAO,QAAQ,EACpF,OAAO,EAAE,kBAAkB,CAAC,SAAS,CAAC,GACrC,kBAAkB,CAAC,qBAAqB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CA4CvE"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/blocks/review/review-group/factory.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,mBAAmB,CAAA;AAGzD,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,SAAS,CAAA;AACxC,OAAO,EAA2B,QAAQ,EAAC,MAAM,aAAa,CAAA;AAG9D,OAAO,KAAK,EAAC,qBAAqB,EAAE,kBAAkB,EAAC,MAAM,SAAS,CAAA;AAEtE,YAAY,EAAC,qBAAqB,EAAE,kBAAkB,EAAC,CAAA;AAEvD,wBAAgB,sBAAsB,CAAC,SAAS,SAAS,WAAW,GAAG,OAAO,QAAQ,EACpF,OAAO,EAAE,kBAAkB,CAAC,SAAS,CAAC,GACrC,kBAAkB,CAAC,qBAAqB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CA6CvE"}
@@ -1,6 +1,7 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { InnerBlocks } from '@wordpress/block-editor';
3
3
  import { __ } from '@wordpress/i18n';
4
+ import { ITEM_SPACING_ATTRIBUTE } from '../../../components/ItemSpacingControl';
4
5
  import { COLUMNS, DEFAULT_SHADOWS, VARIANTS } from './constants';
5
6
  import { createReviewGroupEdit } from './edit';
6
7
  import { icon as defaultIcon } from './icon';
@@ -22,6 +23,7 @@ export function createReviewGroupBlock(options) {
22
23
  type: 'string',
23
24
  default: 'none',
24
25
  },
26
+ ...ITEM_SPACING_ATTRIBUTE,
25
27
  };
26
28
  if (!exclude.includes('colors')) {
27
29
  attributes.style = {
@@ -16,6 +16,7 @@ export interface ReviewGroupAttributes<TVariant extends string = Variant> extend
16
16
  backgroundColor: string;
17
17
  textColor: string;
18
18
  };
19
+ spacing?: number;
19
20
  }
20
21
  export interface ReviewGroupOptions<TVariants extends OptionArray = typeof VARIANTS> extends BriloBlockType {
21
22
  variants?: TVariants;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/blocks/review/review-group/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,cAAc,EAAE,WAAW,EAAC,MAAM,SAAS,CAAA;AACxD,OAAO,KAAK,EAAC,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,QAAQ,EAAC,MAAM,aAAa,CAAA;AAEhF,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAA;AACxD,MAAM,MAAM,aAAa,GAAG,OAAO,CAAA;AACnC,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,CAAC,CAAA;AACpD,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAA;AACnE,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAA;AAEpE,MAAM,MAAM,oBAAoB,GAAG,QAAQ,CAAA;AAE3C,MAAM,WAAW,qBAAqB,CAAC,QAAQ,SAAS,MAAM,GAAG,OAAO,CAAE,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACvG,OAAO,EAAE,QAAQ,CAAA;IACjB,OAAO,EAAE,aAAa,CAAA;IACtB,KAAK,EAAE,eAAe,CAAA;IACtB,KAAK,EAAE;QACL,MAAM,EAAE,YAAY,CAAA;QACpB,WAAW,EAAE,MAAM,CAAA;QACnB,eAAe,EAAE,MAAM,CAAA;QACvB,SAAS,EAAE,MAAM,CAAA;KAClB,CAAA;CACF;AAED,MAAM,WAAW,kBAAkB,CAAC,SAAS,SAAS,WAAW,GAAG,OAAO,QAAQ,CAAE,SAAQ,cAAc;IACzG,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,OAAO,CAAC,EAAE,oBAAoB,EAAE,CAAA;CACjC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/blocks/review/review-group/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,cAAc,EAAE,WAAW,EAAC,MAAM,SAAS,CAAA;AACxD,OAAO,KAAK,EAAC,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,QAAQ,EAAC,MAAM,aAAa,CAAA;AAEhF,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAA;AACxD,MAAM,MAAM,aAAa,GAAG,OAAO,CAAA;AACnC,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,CAAC,CAAA;AACpD,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAA;AACnE,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAA;AAEpE,MAAM,MAAM,oBAAoB,GAAG,QAAQ,CAAA;AAE3C,MAAM,WAAW,qBAAqB,CAAC,QAAQ,SAAS,MAAM,GAAG,OAAO,CAAE,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACvG,OAAO,EAAE,QAAQ,CAAA;IACjB,OAAO,EAAE,aAAa,CAAA;IACtB,KAAK,EAAE,eAAe,CAAA;IACtB,KAAK,EAAE;QACL,MAAM,EAAE,YAAY,CAAA;QACpB,WAAW,EAAE,MAAM,CAAA;QACnB,eAAe,EAAE,MAAM,CAAA;QACvB,SAAS,EAAE,MAAM,CAAA;KAClB,CAAA;IACD,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,kBAAkB,CAAC,SAAS,SAAS,WAAW,GAAG,OAAO,QAAQ,CAAE,SAAQ,cAAc;IACzG,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,OAAO,CAAC,EAAE,oBAAoB,EAAE,CAAA;CACjC"}
@@ -73,6 +73,41 @@ export declare const BACKGROUND_IMAGE_FITS: readonly [{
73
73
  }, {
74
74
  readonly value: 'contain';
75
75
  readonly label: import("@wordpress/i18n").TransformedText<"Celý obrázek (contain)">;
76
+ }, {
77
+ readonly value: 'custom';
78
+ readonly label: import("@wordpress/i18n").TransformedText<"Vlastní (px)">;
79
+ }];
80
+ export declare const FLUID_DECORATION_FITS: readonly [{
81
+ readonly value: 'auto';
82
+ readonly label: import("@wordpress/i18n").TransformedText<"Automaticky (výška)">;
83
+ }, {
84
+ readonly value: 'cover';
85
+ readonly label: import("@wordpress/i18n").TransformedText<"Vyplnit (cover)">;
86
+ }, {
87
+ readonly value: 'contain';
88
+ readonly label: import("@wordpress/i18n").TransformedText<"Celý obrázek (contain)">;
89
+ }, {
90
+ readonly value: 'custom';
91
+ readonly label: import("@wordpress/i18n").TransformedText<"Vlastní (px)">;
92
+ }];
93
+ export declare const BACKGROUND_IMAGE_SIZE_VALUE_DEFAULT = "32px";
94
+ export declare const BACKGROUND_IMAGE_SIZE_UNITS: {
95
+ value: string;
96
+ label: string;
97
+ default: number;
98
+ }[];
99
+ export declare const BACKGROUND_IMAGE_REPEATS: readonly [{
100
+ readonly value: 'no-repeat';
101
+ readonly label: import("@wordpress/i18n").TransformedText<"Žádné">;
102
+ }, {
103
+ readonly value: 'repeat-x';
104
+ readonly label: import("@wordpress/i18n").TransformedText<"Vodorovně (X)">;
105
+ }, {
106
+ readonly value: 'repeat-y';
107
+ readonly label: import("@wordpress/i18n").TransformedText<"Svisle (Y)">;
108
+ }, {
109
+ readonly value: 'repeat';
110
+ readonly label: import("@wordpress/i18n").TransformedText<"Obojí">;
76
111
  }];
77
112
  export declare const BACKGROUND_IMAGE_POSITIONS: readonly [{
78
113
  readonly value: 'left top';
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/blocks/sections/base-section/constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB;aAC3B,KAAK,EAAE,SAAS;aAAE,KAAK;;aACvB,KAAK,EAAE,MAAM;aAAE,KAAK;;aACpB,KAAK,EAAE,UAAU;aAAE,KAAK;;aACxB,KAAK,EAAE,OAAO;aAAE,KAAK;EACd,CAAA;AAEV,eAAO,MAAM,aAAa,YAAI,SAAS,EAAE,IAAI,EAAE,IAAI,CAAU,CAAA;AAE7D,eAAO,MAAM,+BAA+B,YAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAU,CAAA;AAEzE,eAAO,MAAM,+BAA+B,SAAS,CAAA;AAErD,eAAO,MAAM,sBAAsB;;;;GAIlC,CAAA;AAED,eAAO,MAAM,oBAAoB;aAC9B,KAAK,EAAE,UAAU;aAAE,KAAK;;aACxB,KAAK,EAAE,WAAW;aAAE,KAAK;;aACzB,KAAK,EAAE,aAAa;aAAE,KAAK;;aAC3B,KAAK,EAAE,cAAc;aAAE,KAAK;;aAC5B,KAAK,EAAE,aAAa;aAAE,KAAK;;aAC3B,KAAK,EAAE,cAAc;aAAE,KAAK;EACrB,CAAA;AAEV,eAAO,MAAM,iBAAiB;aAC3B,KAAK,EAAE,OAAO;aAAE,KAAK;;aACrB,KAAK,EAAE,OAAO;aAAE,KAAK;EACd,CAAA;AAEV,eAAO,MAAM,qBAAqB;aAC/B,KAAK,EAAE,IAAI;aAAE,KAAK;;aAClB,KAAK,EAAE,QAAQ;aAAE,KAAK;;aACtB,KAAK,EAAE,KAAK;aAAE,KAAK;EACZ,CAAA;AAEV,eAAO,MAAM,4BAA4B,UAAU,CAAA;AAEnD,eAAO,MAAM,0BAA0B;;;;GAItC,CAAA;AAED,eAAO,MAAM,yBAAyB,QAAQ,CAAA;AAE9C,eAAO,MAAM,uBAAuB;;;;GAInC,CAAA;AAED,eAAO,MAAM,qBAAqB;aAC/B,KAAK,EAAE,OAAO;aAAE,KAAK;;aACrB,KAAK,EAAE,SAAS;aAAE,KAAK;EAChB,CAAA;AAEV,eAAO,MAAM,0BAA0B;aACpC,KAAK,EAAE,UAAU;aAAE,KAAK;;aACxB,KAAK,EAAE,YAAY;aAAE,KAAK;;aAC1B,KAAK,EAAE,WAAW;aAAE,KAAK;;aACzB,KAAK,EAAE,aAAa;aAAE,KAAK;;aAC3B,KAAK,EAAE,eAAe;aAAE,KAAK;;aAC7B,KAAK,EAAE,cAAc;aAAE,KAAK;;aAC5B,KAAK,EAAE,aAAa;aAAE,KAAK;;aAC3B,KAAK,EAAE,eAAe;aAAE,KAAK;;aAC7B,KAAK,EAAE,cAAc;aAAE,KAAK;EACrB,CAAA;AAEV,eAAO,MAAM,wCAAwC,KAAK,CAAA"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/blocks/sections/base-section/constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB;aAC3B,KAAK,EAAE,SAAS;aAAE,KAAK;;aACvB,KAAK,EAAE,MAAM;aAAE,KAAK;;aACpB,KAAK,EAAE,UAAU;aAAE,KAAK;;aACxB,KAAK,EAAE,OAAO;aAAE,KAAK;EACd,CAAA;AAEV,eAAO,MAAM,aAAa,YAAI,SAAS,EAAE,IAAI,EAAE,IAAI,CAAU,CAAA;AAE7D,eAAO,MAAM,+BAA+B,YAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAU,CAAA;AAEzE,eAAO,MAAM,+BAA+B,SAAS,CAAA;AAErD,eAAO,MAAM,sBAAsB;;;;GAIlC,CAAA;AAED,eAAO,MAAM,oBAAoB;aAC9B,KAAK,EAAE,UAAU;aAAE,KAAK;;aACxB,KAAK,EAAE,WAAW;aAAE,KAAK;;aACzB,KAAK,EAAE,aAAa;aAAE,KAAK;;aAC3B,KAAK,EAAE,cAAc;aAAE,KAAK;;aAC5B,KAAK,EAAE,aAAa;aAAE,KAAK;;aAC3B,KAAK,EAAE,cAAc;aAAE,KAAK;EACrB,CAAA;AAEV,eAAO,MAAM,iBAAiB;aAC3B,KAAK,EAAE,OAAO;aAAE,KAAK;;aACrB,KAAK,EAAE,OAAO;aAAE,KAAK;EACd,CAAA;AAEV,eAAO,MAAM,qBAAqB;aAC/B,KAAK,EAAE,IAAI;aAAE,KAAK;;aAClB,KAAK,EAAE,QAAQ;aAAE,KAAK;;aACtB,KAAK,EAAE,KAAK;aAAE,KAAK;EACZ,CAAA;AAEV,eAAO,MAAM,4BAA4B,UAAU,CAAA;AAEnD,eAAO,MAAM,0BAA0B;;;;GAItC,CAAA;AAED,eAAO,MAAM,yBAAyB,QAAQ,CAAA;AAE9C,eAAO,MAAM,uBAAuB;;;;GAInC,CAAA;AAED,eAAO,MAAM,qBAAqB;aAC/B,KAAK,EAAE,OAAO;aAAE,KAAK;;aACrB,KAAK,EAAE,SAAS;aAAE,KAAK;;aACvB,KAAK,EAAE,QAAQ;aAAE,KAAK;EACf,CAAA;AAEV,eAAO,MAAM,qBAAqB;oBAAY,MAAM;;;oBAL1C,OAAO;;;oBACP,SAAS;;;oBACT,QAAQ;;EAGyH,CAAA;AAE3I,eAAO,MAAM,mCAAmC,SAAS,CAAA;AAEzD,eAAO,MAAM,2BAA2B;;;;GAA4C,CAAA;AAEpF,eAAO,MAAM,wBAAwB;aAClC,KAAK,EAAE,WAAW;aAAE,KAAK;;aACzB,KAAK,EAAE,UAAU;aAAE,KAAK;;aACxB,KAAK,EAAE,UAAU;aAAE,KAAK;;aACxB,KAAK,EAAE,QAAQ;aAAE,KAAK;EACf,CAAA;AAEV,eAAO,MAAM,0BAA0B;aACpC,KAAK,EAAE,UAAU;aAAE,KAAK;;aACxB,KAAK,EAAE,YAAY;aAAE,KAAK;;aAC1B,KAAK,EAAE,WAAW;aAAE,KAAK;;aACzB,KAAK,EAAE,aAAa;aAAE,KAAK;;aAC3B,KAAK,EAAE,eAAe;aAAE,KAAK;;aAC7B,KAAK,EAAE,cAAc;aAAE,KAAK;;aAC5B,KAAK,EAAE,aAAa;aAAE,KAAK;;aAC3B,KAAK,EAAE,eAAe;aAAE,KAAK;;aAC7B,KAAK,EAAE,cAAc;aAAE,KAAK;EACrB,CAAA;AAEV,eAAO,MAAM,wCAAwC,KAAK,CAAA"}
@@ -45,6 +45,16 @@ export const DECORATION_OFFSET_UNITS = [
45
45
  export const BACKGROUND_IMAGE_FITS = [
46
46
  { value: 'cover', label: __('Vyplnit (cover)', 'brilo-blocks') },
47
47
  { value: 'contain', label: __('Celý obrázek (contain)', 'brilo-blocks') },
48
+ { value: 'custom', label: __('Vlastní (px)', 'brilo-blocks') },
49
+ ];
50
+ export const FLUID_DECORATION_FITS = [{ value: 'auto', label: __('Automaticky (výška)', 'brilo-blocks') }, ...BACKGROUND_IMAGE_FITS];
51
+ export const BACKGROUND_IMAGE_SIZE_VALUE_DEFAULT = '32px';
52
+ export const BACKGROUND_IMAGE_SIZE_UNITS = [{ value: 'px', label: 'px', default: 32 }];
53
+ export const BACKGROUND_IMAGE_REPEATS = [
54
+ { value: 'no-repeat', label: __('Žádné', 'brilo-blocks') },
55
+ { value: 'repeat-x', label: __('Vodorovně (X)', 'brilo-blocks') },
56
+ { value: 'repeat-y', label: __('Svisle (Y)', 'brilo-blocks') },
57
+ { value: 'repeat', label: __('Obojí', 'brilo-blocks') },
48
58
  ];
49
59
  export const BACKGROUND_IMAGE_POSITIONS = [
50
60
  { value: 'left top', label: __('Vlevo nahoře', 'brilo-blocks') },
@@ -1 +1 @@
1
- {"version":3,"file":"controls.d.ts","sourceRoot":"","sources":["../../../../src/blocks/sections/base-section/controls.tsx"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAIV,mBAAmB,EAOnB,kBAAkB,EAGnB,MAAM,SAAS,CAAA;AA4WhB,UAAU,iBAAiB;IACzB,UAAU,EAAE,mBAAmB,CAAA;IAC/B,aAAa,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,mBAAmB,CAAC,KAAK,IAAI,CAAA;IAC5D,OAAO,EAAE,kBAAkB,EAAE,CAAA;CAC9B;AAED,wBAAgB,YAAY,CAAC,EAAC,UAAU,EAAE,aAAa,EAAE,OAAO,EAAC,EAAE,iBAAiB,+BAwGnF"}
1
+ {"version":3,"file":"controls.d.ts","sourceRoot":"","sources":["../../../../src/blocks/sections/base-section/controls.tsx"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAKV,mBAAmB,EAOnB,kBAAkB,EAInB,MAAM,SAAS,CAAA;AAobhB,UAAU,iBAAiB;IACzB,UAAU,EAAE,mBAAmB,CAAA;IAC/B,aAAa,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,mBAAmB,CAAC,KAAK,IAAI,CAAA;IAC5D,OAAO,EAAE,kBAAkB,EAAE,CAAA;CAC9B;AAED,wBAAgB,YAAY,CAAC,EAAC,UAAU,EAAE,aAAa,EAAE,OAAO,EAAC,EAAE,iBAAiB,+BAkHnF"}
@@ -3,18 +3,30 @@ import { ColorPalette, ContrastChecker, MediaUpload, MediaUploadCheck } from '@w
3
3
  import { BaseControl, Button, ButtonGroup, PanelBody, PanelRow, RangeControl, SelectControl, TextControl, __experimentalToggleGroupControl as ToggleGroupControl, __experimentalToggleGroupControlOption as ToggleGroupControlOption, __experimentalUnitControl as UnitControl, } from '@wordpress/components';
4
4
  import { __ } from '@wordpress/i18n';
5
5
  import { useTenantColorPalette } from '../../../hooks/useTenantColorPalette';
6
- import { BACKGROUND_IMAGE_FITS, BACKGROUND_IMAGE_OVERLAY_OPACITY_DEFAULT, BACKGROUND_IMAGE_POSITIONS, DECORATION_DEPTHS, DECORATION_MAX_WIDTH_DEFAULT, DECORATION_MAX_WIDTH_UNITS, DECORATION_OFFSET_DEFAULT, DECORATION_OFFSET_UNITS, DECORATION_POSITIONS, DECORATION_TRANSLATES, FLUID_DECORATION_DEFAULT_HEIGHT, FLUID_DECORATION_HEIGHT_PRESETS, FLUID_DECORATION_UNITS, SPACING_POSITIONS, SPACING_SIZES, } from './constants';
7
- function FluidDecorationControl({ label, value, onChange }) {
8
- var _a;
6
+ import { BACKGROUND_IMAGE_FITS, BACKGROUND_IMAGE_OVERLAY_OPACITY_DEFAULT, BACKGROUND_IMAGE_POSITIONS, BACKGROUND_IMAGE_REPEATS, BACKGROUND_IMAGE_SIZE_UNITS, BACKGROUND_IMAGE_SIZE_VALUE_DEFAULT, DECORATION_DEPTHS, DECORATION_MAX_WIDTH_DEFAULT, DECORATION_MAX_WIDTH_UNITS, DECORATION_OFFSET_DEFAULT, DECORATION_OFFSET_UNITS, DECORATION_POSITIONS, DECORATION_TRANSLATES, FLUID_DECORATION_DEFAULT_HEIGHT, FLUID_DECORATION_FITS, FLUID_DECORATION_HEIGHT_PRESETS, FLUID_DECORATION_UNITS, SPACING_POSITIONS, SPACING_SIZES, } from './constants';
7
+ // Shared shape behind every control's `update(patch)`: fill in defaults, layer the current
8
+ // value on top, then the patch — so a patch only needs to name the field(s) actually changing.
9
+ function mergeUpdate(defaults, value, patch) {
10
+ return { ...defaults, ...value, ...patch };
11
+ }
12
+ function FluidDecorationControl({ label, placement, value, onChange }) {
13
+ var _a, _b, _c, _d, _e;
9
14
  const img = value === null || value === void 0 ? void 0 : value.img;
10
15
  const height = (_a = value === null || value === void 0 ? void 0 : value.height) !== null && _a !== void 0 ? _a : FLUID_DECORATION_DEFAULT_HEIGHT;
16
+ const fit = (_b = value === null || value === void 0 ? void 0 : value.fit) !== null && _b !== void 0 ? _b : 'auto';
17
+ const sizeValue = (_c = value === null || value === void 0 ? void 0 : value.sizeValue) !== null && _c !== void 0 ? _c : BACKGROUND_IMAGE_SIZE_VALUE_DEFAULT;
18
+ // Matches the twig template's per-side default (top/bottom left) so the field only starts
19
+ // overriding the frontend once the editor actually writes an explicit value.
20
+ const bgPosition = (_d = value === null || value === void 0 ? void 0 : value.bgPosition) !== null && _d !== void 0 ? _d : (placement === 'bottom' ? 'left bottom' : 'left top');
21
+ const repeat = (_e = value === null || value === void 0 ? void 0 : value.repeat) !== null && _e !== void 0 ? _e : 'repeat-x';
22
+ const update = (patch) => onChange(mergeUpdate({ img, height, fit, bgPosition, repeat }, value, patch));
11
23
  const handleSelect = (media) => {
12
24
  var _a;
13
25
  const nextImg = { id: media.id, src: media.url, alt: (_a = media.alt) !== null && _a !== void 0 ? _a : '', width: media.width, height: media.height };
14
- onChange({ img: nextImg, height });
26
+ update({ img: nextImg });
15
27
  };
16
28
  const handleRemove = () => onChange(undefined);
17
- return (_jsxs(BaseControl, { label: label, __nextHasNoMarginBottom: true, children: [_jsx(MediaUploadCheck, { children: _jsx(MediaUpload, { onSelect: handleSelect, allowedTypes: ['image'], value: (img === null || img === void 0 ? void 0 : img.id) || 0, render: ({ open }) => (_jsxs(PanelRow, { children: [(img === null || img === void 0 ? void 0 : img.src) && _jsx("img", { src: img.src, alt: img.alt, style: { maxWidth: 48, maxHeight: 48, objectFit: 'contain' } }), _jsx(Button, { onClick: open, variant: "secondary", size: "small", children: (img === null || img === void 0 ? void 0 : img.src) ? __('Změnit', 'brilo-blocks') : __('Vybrat obrázek', 'brilo-blocks') }), !!(img === null || img === void 0 ? void 0 : img.src) && (_jsx(Button, { onClick: handleRemove, variant: "tertiary", size: "small", isDestructive: true, children: __('Odebrat', 'brilo-blocks') }))] })) }) }), !!(img === null || img === void 0 ? void 0 : img.src) && (_jsxs(_Fragment, { children: [_jsx(UnitControl, { label: __('Výška', 'brilo-blocks'), value: height, units: FLUID_DECORATION_UNITS, onChange: (next) => { var _a; return onChange({ img, height: (_a = next) !== null && _a !== void 0 ? _a : FLUID_DECORATION_DEFAULT_HEIGHT }); } }), _jsx(ButtonGroup, { children: FLUID_DECORATION_HEIGHT_PRESETS.map((preset) => (_jsx(Button, { variant: "secondary", size: "small", onClick: () => onChange({ img, height: `${preset}px` }), children: preset }, preset))) })] }))] }));
29
+ return (_jsxs(BaseControl, { label: label, __nextHasNoMarginBottom: true, children: [_jsx(MediaUploadCheck, { children: _jsx(MediaUpload, { onSelect: handleSelect, allowedTypes: ['image'], value: (img === null || img === void 0 ? void 0 : img.id) || 0, render: ({ open }) => (_jsxs(PanelRow, { children: [(img === null || img === void 0 ? void 0 : img.src) && _jsx("img", { src: img.src, alt: img.alt, style: { maxWidth: 48, maxHeight: 48, objectFit: 'contain' } }), _jsx(Button, { onClick: open, variant: "secondary", size: "small", children: (img === null || img === void 0 ? void 0 : img.src) ? __('Změnit', 'brilo-blocks') : __('Vybrat obrázek', 'brilo-blocks') }), !!(img === null || img === void 0 ? void 0 : img.src) && (_jsx(Button, { onClick: handleRemove, variant: "tertiary", size: "small", isDestructive: true, children: __('Odebrat', 'brilo-blocks') }))] })) }) }), !!(img === null || img === void 0 ? void 0 : img.src) && (_jsxs(_Fragment, { children: [_jsx(UnitControl, { label: __('Výška', 'brilo-blocks'), value: height, units: FLUID_DECORATION_UNITS, onChange: (next) => { var _a; return update({ height: (_a = next) !== null && _a !== void 0 ? _a : FLUID_DECORATION_DEFAULT_HEIGHT }); } }), _jsx(ButtonGroup, { children: FLUID_DECORATION_HEIGHT_PRESETS.map((preset) => (_jsx(Button, { variant: "secondary", size: "small", onClick: () => update({ height: `${preset}px` }), children: preset }, preset))) }), _jsx(ToggleGroupControl, { label: __('Přizpůsobení', 'brilo-blocks'), value: fit, onChange: (next) => update({ fit: next }), isBlock: true, children: FLUID_DECORATION_FITS.map((f) => (_jsx(ToggleGroupControlOption, { value: f.value, label: f.label }, f.value))) }), fit === 'custom' && (_jsx(UnitControl, { label: __('Velikost', 'brilo-blocks'), value: sizeValue, units: BACKGROUND_IMAGE_SIZE_UNITS, onChange: (next) => { var _a; return update({ sizeValue: (_a = next) !== null && _a !== void 0 ? _a : BACKGROUND_IMAGE_SIZE_VALUE_DEFAULT }); } })), _jsx(SelectControl, { label: __('Pozice obrázku', 'brilo-blocks'), value: bgPosition, options: [...BACKGROUND_IMAGE_POSITIONS], onChange: (next) => update({ bgPosition: next }) }), _jsx(SelectControl, { label: __('Opakování', 'brilo-blocks'), value: repeat, options: [...BACKGROUND_IMAGE_REPEATS], onChange: (next) => update({ repeat: next }) })] }))] }));
18
30
  }
19
31
  function DecorationControl({ value, onChange }) {
20
32
  var _a, _b, _c, _d, _e, _f;
@@ -25,7 +37,7 @@ function DecorationControl({ value, onChange }) {
25
37
  const maxWidth = (_d = value === null || value === void 0 ? void 0 : value.maxWidth) !== null && _d !== void 0 ? _d : DECORATION_MAX_WIDTH_DEFAULT;
26
38
  const offsetX = (_e = value === null || value === void 0 ? void 0 : value.offsetX) !== null && _e !== void 0 ? _e : DECORATION_OFFSET_DEFAULT;
27
39
  const offsetY = (_f = value === null || value === void 0 ? void 0 : value.offsetY) !== null && _f !== void 0 ? _f : DECORATION_OFFSET_DEFAULT;
28
- const update = (patch) => onChange({ img, position, depth, translate, maxWidth, offsetX, offsetY, ...value, ...patch });
40
+ const update = (patch) => onChange(mergeUpdate({ img, position, depth, translate, maxWidth, offsetX, offsetY }, value, patch));
29
41
  const handleSelect = (media) => {
30
42
  var _a;
31
43
  const nextImg = { id: media.id, src: media.url, alt: (_a = media.alt) !== null && _a !== void 0 ? _a : '', width: media.width, height: media.height };
@@ -36,21 +48,23 @@ function DecorationControl({ value, onChange }) {
36
48
  }
37
49
  function BackgroundImageControl({ value, onChange }) {
38
50
  var _a, _b;
39
- var _c, _d, _e;
51
+ var _c, _d, _e, _f, _g;
40
52
  const { paletteColors } = useTenantColorPalette();
41
53
  const img = value === null || value === void 0 ? void 0 : value.img;
42
54
  const fit = (_c = value === null || value === void 0 ? void 0 : value.fit) !== null && _c !== void 0 ? _c : 'cover';
43
- const position = (_d = value === null || value === void 0 ? void 0 : value.position) !== null && _d !== void 0 ? _d : 'center center';
55
+ const sizeValue = (_d = value === null || value === void 0 ? void 0 : value.sizeValue) !== null && _d !== void 0 ? _d : BACKGROUND_IMAGE_SIZE_VALUE_DEFAULT;
56
+ const position = (_e = value === null || value === void 0 ? void 0 : value.position) !== null && _e !== void 0 ? _e : 'center center';
57
+ const repeat = (_f = value === null || value === void 0 ? void 0 : value.repeat) !== null && _f !== void 0 ? _f : 'no-repeat';
44
58
  const overlayColor = (_a = value === null || value === void 0 ? void 0 : value.overlay) === null || _a === void 0 ? void 0 : _a.color;
45
- const overlayOpacity = (_e = (_b = value === null || value === void 0 ? void 0 : value.overlay) === null || _b === void 0 ? void 0 : _b.opacity) !== null && _e !== void 0 ? _e : BACKGROUND_IMAGE_OVERLAY_OPACITY_DEFAULT;
46
- const update = (patch) => onChange({ img, fit, position, overlay: value === null || value === void 0 ? void 0 : value.overlay, ...value, ...patch });
59
+ const overlayOpacity = (_g = (_b = value === null || value === void 0 ? void 0 : value.overlay) === null || _b === void 0 ? void 0 : _b.opacity) !== null && _g !== void 0 ? _g : BACKGROUND_IMAGE_OVERLAY_OPACITY_DEFAULT;
60
+ const update = (patch) => onChange(mergeUpdate({ img, fit, position, repeat, overlay: value === null || value === void 0 ? void 0 : value.overlay }, value, patch));
47
61
  const handleSelect = (media) => {
48
62
  var _a;
49
63
  const nextImg = { id: media.id, src: media.url, alt: (_a = media.alt) !== null && _a !== void 0 ? _a : '', width: media.width, height: media.height };
50
64
  update({ img: nextImg });
51
65
  };
52
66
  const handleRemove = () => onChange(undefined);
53
- return (_jsxs(BaseControl, { label: __('Obrázek pozadí', 'brilo-blocks'), __nextHasNoMarginBottom: true, children: [_jsx(MediaUploadCheck, { children: _jsx(MediaUpload, { onSelect: handleSelect, allowedTypes: ['image'], value: (img === null || img === void 0 ? void 0 : img.id) || 0, render: ({ open }) => (_jsxs(PanelRow, { children: [(img === null || img === void 0 ? void 0 : img.src) && _jsx("img", { src: img.src, alt: img.alt, style: { maxWidth: 48, maxHeight: 48, objectFit: 'contain' } }), _jsx(Button, { onClick: open, variant: "secondary", size: "small", children: (img === null || img === void 0 ? void 0 : img.src) ? __('Změnit', 'brilo-blocks') : __('Vybrat obrázek', 'brilo-blocks') }), !!(img === null || img === void 0 ? void 0 : img.src) && (_jsx(Button, { onClick: handleRemove, variant: "tertiary", size: "small", isDestructive: true, children: __('Odebrat', 'brilo-blocks') }))] })) }) }), !!(img === null || img === void 0 ? void 0 : img.src) && (_jsxs(_Fragment, { children: [_jsx(ToggleGroupControl, { label: __('Přizpůsobení', 'brilo-blocks'), value: fit, onChange: (next) => update({ fit: next }), isBlock: true, children: BACKGROUND_IMAGE_FITS.map((f) => (_jsx(ToggleGroupControlOption, { value: f.value, label: f.label }, f.value))) }), _jsx(SelectControl, { label: __('Pozice', 'brilo-blocks'), value: position, options: [...BACKGROUND_IMAGE_POSITIONS], onChange: (next) => update({ position: next }) }), _jsxs(BaseControl, { label: __('Překryv barvou', 'brilo-blocks'), __nextHasNoMarginBottom: true, help: __('Ztmavení/zabarvení obrázku pro lepší čitelnost textu.', 'brilo-blocks'), children: [_jsx(ColorPalette, { colors: paletteColors, value: overlayColor || undefined, onChange: (next) => update({ overlay: { color: next !== null && next !== void 0 ? next : undefined, opacity: overlayOpacity } }) }), !!overlayColor && (_jsx(RangeControl, { label: __('Krytí překryvu', 'brilo-blocks'), value: overlayOpacity, min: 0, max: 100, onChange: (next) => update({ overlay: { color: overlayColor, opacity: next !== null && next !== void 0 ? next : BACKGROUND_IMAGE_OVERLAY_OPACITY_DEFAULT } }) }))] })] }))] }));
67
+ return (_jsxs(BaseControl, { label: __('Obrázek pozadí', 'brilo-blocks'), __nextHasNoMarginBottom: true, children: [_jsx(MediaUploadCheck, { children: _jsx(MediaUpload, { onSelect: handleSelect, allowedTypes: ['image'], value: (img === null || img === void 0 ? void 0 : img.id) || 0, render: ({ open }) => (_jsxs(PanelRow, { children: [(img === null || img === void 0 ? void 0 : img.src) && _jsx("img", { src: img.src, alt: img.alt, style: { maxWidth: 48, maxHeight: 48, objectFit: 'contain' } }), _jsx(Button, { onClick: open, variant: "secondary", size: "small", children: (img === null || img === void 0 ? void 0 : img.src) ? __('Změnit', 'brilo-blocks') : __('Vybrat obrázek', 'brilo-blocks') }), !!(img === null || img === void 0 ? void 0 : img.src) && (_jsx(Button, { onClick: handleRemove, variant: "tertiary", size: "small", isDestructive: true, children: __('Odebrat', 'brilo-blocks') }))] })) }) }), !!(img === null || img === void 0 ? void 0 : img.src) && (_jsxs(_Fragment, { children: [_jsx(ToggleGroupControl, { label: __('Přizpůsobení', 'brilo-blocks'), value: fit, onChange: (next) => update({ fit: next }), isBlock: true, children: BACKGROUND_IMAGE_FITS.map((f) => (_jsx(ToggleGroupControlOption, { value: f.value, label: f.label }, f.value))) }), fit === 'custom' && (_jsx(UnitControl, { label: __('Velikost', 'brilo-blocks'), value: sizeValue, units: BACKGROUND_IMAGE_SIZE_UNITS, onChange: (next) => { var _a; return update({ sizeValue: (_a = next) !== null && _a !== void 0 ? _a : BACKGROUND_IMAGE_SIZE_VALUE_DEFAULT }); } })), _jsx(SelectControl, { label: __('Pozice', 'brilo-blocks'), value: position, options: [...BACKGROUND_IMAGE_POSITIONS], onChange: (next) => update({ position: next }) }), _jsx(SelectControl, { label: __('Opakování', 'brilo-blocks'), value: repeat, options: [...BACKGROUND_IMAGE_REPEATS], onChange: (next) => update({ repeat: next }) }), _jsxs(BaseControl, { label: __('Překryv barvou', 'brilo-blocks'), help: __('Ztmavení/zabarvení obrázku pro lepší čitelnost textu.', 'brilo-blocks'), children: [_jsx(ColorPalette, { colors: paletteColors, value: overlayColor || undefined, onChange: (next) => update({ overlay: { color: next !== null && next !== void 0 ? next : undefined, opacity: overlayOpacity } }) }), !!overlayColor && (_jsx(RangeControl, { label: __('Krytí překryvu', 'brilo-blocks'), value: overlayOpacity, min: 0, max: 100, onChange: (next) => update({ overlay: { color: overlayColor, opacity: next !== null && next !== void 0 ? next : BACKGROUND_IMAGE_OVERLAY_OPACITY_DEFAULT } }) }))] })] }))] }));
54
68
  }
55
69
  const BORDER_STYLES = [
56
70
  { value: 'none', label: __('Žádný', 'brilo-blocks') },
@@ -94,7 +108,7 @@ export function BaseControls({ attributes, setAttributes, exclude }) {
94
108
  const nextFluid = { ...fluid, [position]: value };
95
109
  setAttributes({ decorations: { ...decorations, fluid: nextFluid } });
96
110
  };
97
- return (_jsxs(_Fragment, { children: [!exclude.includes('spacing') && (_jsxs(PanelBody, { title: __('Rozestupy', 'brilo-blocks'), children: [_jsx(SelectControl, { label: __('Pozice', 'brilo-blocks'), value: spacing.position, options: [...SPACING_POSITIONS], onChange: (value) => setAttributes({ spacing: { ...spacing, position: value } }) }), _jsx(ToggleGroupControl, { label: __('Velikost', 'brilo-blocks'), value: spacing.size, onChange: (value) => setAttributes({ spacing: { ...spacing, size: value } }), isBlock: true, children: SPACING_SIZES.map((s) => (_jsx(ToggleGroupControlOption, { value: s, label: s === 'default' ? __('Výchozí', 'brilo-blocks') : s.toUpperCase() }, s))) })] })), !exclude.includes('background') && (_jsxs(PanelBody, { title: __('Barvy', 'brilo-blocks'), children: [_jsx("p", { children: __('Pozadí', 'brilo-blocks') }), _jsx(ColorPalette, { colors: paletteColors, value: background || undefined, onChange: (value) => setAttributes({ background: value !== null && value !== void 0 ? value : '' }) }), _jsx("p", { children: __('Barva textu', 'brilo-blocks') }), _jsx(ColorPalette, { colors: paletteColors, value: textColor || undefined, onChange: (value) => setAttributes({ textColor: value !== null && value !== void 0 ? value : '' }) }), !!background && !!textColor && _jsx(ContrastChecker, { backgroundColor: resolveHex(background), textColor: resolveHex(textColor) })] })), !exclude.includes('backgroundImage') && (_jsx(PanelBody, { title: __('Obrázek pozadí', 'brilo-blocks'), initialOpen: false, children: _jsx(BackgroundImageControl, { value: backgroundImage, onChange: (value) => setAttributes({ backgroundImage: value !== null && value !== void 0 ? value : {} }) }) })), !exclude.includes('decoration') && (_jsx(PanelBody, { title: __('Dekorace', 'brilo-blocks'), initialOpen: false, children: _jsx(DecorationControl, { value: decoration, onChange: (value) => setAttributes({ decoration: value !== null && value !== void 0 ? value : {} }) }) })), !exclude.includes('decorations') && (_jsxs(PanelBody, { title: __('Fluidní dekorace', 'brilo-blocks'), initialOpen: false, children: [_jsx(FluidDecorationControl, { label: __('Nahoře', 'brilo-blocks'), value: fluid.top, onChange: (value) => setFluid('top', value) }), _jsx(FluidDecorationControl, { label: __('Dole', 'brilo-blocks'), value: fluid.bottom, onChange: (value) => setFluid('bottom', value) })] })), !exclude.includes('border') && (_jsx(PanelBody, { title: __('Ohraničení', 'brilo-blocks'), initialOpen: false, children: _jsx(BorderControl, { value: border, onChange: (value) => setAttributes({
111
+ return (_jsxs(_Fragment, { children: [!exclude.includes('spacing') && (_jsxs(PanelBody, { title: __('Rozestupy', 'brilo-blocks'), children: [_jsx(SelectControl, { label: __('Pozice', 'brilo-blocks'), value: spacing.position, options: [...SPACING_POSITIONS], onChange: (value) => setAttributes({ spacing: { ...spacing, position: value } }) }), _jsx(ToggleGroupControl, { label: __('Velikost', 'brilo-blocks'), value: spacing.size, onChange: (value) => setAttributes({ spacing: { ...spacing, size: value } }), isBlock: true, children: SPACING_SIZES.map((s) => (_jsx(ToggleGroupControlOption, { value: s, label: s === 'default' ? __('Výchozí', 'brilo-blocks') : s.toUpperCase() }, s))) })] })), !exclude.includes('background') && (_jsxs(PanelBody, { title: __('Barvy', 'brilo-blocks'), children: [_jsx("p", { children: __('Pozadí', 'brilo-blocks') }), _jsx(ColorPalette, { colors: paletteColors, value: background || undefined, onChange: (value) => setAttributes({ background: value !== null && value !== void 0 ? value : '' }) }), _jsx("p", { children: __('Barva textu', 'brilo-blocks') }), _jsx(ColorPalette, { colors: paletteColors, value: textColor || undefined, onChange: (value) => setAttributes({ textColor: value !== null && value !== void 0 ? value : '' }) }), !!background && !!textColor && _jsx(ContrastChecker, { backgroundColor: resolveHex(background), textColor: resolveHex(textColor) })] })), !exclude.includes('backgroundImage') && (_jsx(PanelBody, { title: __('Obrázek pozadí', 'brilo-blocks'), initialOpen: false, children: _jsx(BackgroundImageControl, { value: backgroundImage, onChange: (value) => setAttributes({ backgroundImage: value !== null && value !== void 0 ? value : {} }) }) })), !exclude.includes('decoration') && (_jsx(PanelBody, { title: __('Dekorace', 'brilo-blocks'), initialOpen: false, children: _jsx(DecorationControl, { value: decoration, onChange: (value) => setAttributes({ decoration: value !== null && value !== void 0 ? value : {} }) }) })), !exclude.includes('decorations') && (_jsxs(PanelBody, { title: __('Fluidní dekorace', 'brilo-blocks'), initialOpen: false, children: [_jsx(FluidDecorationControl, { label: __('Nahoře', 'brilo-blocks'), placement: "top", value: fluid.top, onChange: (value) => setFluid('top', value) }), _jsx(FluidDecorationControl, { label: __('Dole', 'brilo-blocks'), placement: "bottom", value: fluid.bottom, onChange: (value) => setFluid('bottom', value) })] })), !exclude.includes('border') && (_jsx(PanelBody, { title: __('Ohraničení', 'brilo-blocks'), initialOpen: false, children: _jsx(BorderControl, { value: border, onChange: (value) => setAttributes({
98
112
  border: value !== null && value !== void 0 ? value : {
99
113
  top: {
100
114
  width: 0,
@@ -1 +1 @@
1
- {"version":3,"file":"edit.d.ts","sourceRoot":"","sources":["../../../../src/blocks/sections/base-section/edit.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,mBAAmB,CAAA;AAErD,OAAO,KAAK,EAAC,mBAAmB,EAAE,kBAAkB,EAAC,MAAM,SAAS,CAAA;AAGpE,wBAAgB,qBAAqB,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,kBAAkB,CAAC,MAAM,CAAC,WAG3G,cAAc,CAAC,mBAAmB,GAAG,MAAM,CAAC,iCAkDzE"}
1
+ {"version":3,"file":"edit.d.ts","sourceRoot":"","sources":["../../../../src/blocks/sections/base-section/edit.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,mBAAmB,CAAA;AAErD,OAAO,KAAK,EAAC,mBAAmB,EAAE,kBAAkB,EAAC,MAAM,SAAS,CAAA;AAIpE,wBAAgB,qBAAqB,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,kBAAkB,CAAC,MAAM,CAAC,WAG3G,cAAc,CAAC,mBAAmB,GAAG,MAAM,CAAC,iCAyDzE"}
@@ -1,12 +1,13 @@
1
1
  import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { InspectorControls, useBlockProps, useInnerBlocksProps } from '@wordpress/block-editor';
3
3
  import { BaseControls } from './controls';
4
+ import { BACKGROUND_IMAGE_SIZE_VALUE_DEFAULT } from './constants';
4
5
  export function createBaseSectionEdit(options) {
5
6
  var _a;
6
7
  const EXCLUDE = (_a = options.exclude) !== null && _a !== void 0 ? _a : [];
7
8
  return function Edit(props) {
8
9
  var _a, _b;
9
- var _c, _d;
10
+ var _c, _d, _e, _f;
10
11
  const { attributes, setAttributes } = props;
11
12
  const { background, textColor, gradient, backgroundImage } = attributes;
12
13
  const bgImageSrc = (_a = backgroundImage === null || backgroundImage === void 0 ? void 0 : backgroundImage.img) === null || _a === void 0 ? void 0 : _a.src;
@@ -24,11 +25,18 @@ export function createBaseSectionEdit(options) {
24
25
  ...(bgImageSrc
25
26
  ? {
26
27
  backgroundImage: [tintLayer, `url(${bgImageSrc})`].filter(Boolean).join(', '),
27
- backgroundSize: [tintLayer ? '100% 100%' : null, (_c = backgroundImage === null || backgroundImage === void 0 ? void 0 : backgroundImage.fit) !== null && _c !== void 0 ? _c : 'cover'].filter(Boolean).join(', '),
28
- backgroundPosition: [tintLayer ? 'center center' : null, (_d = backgroundImage === null || backgroundImage === void 0 ? void 0 : backgroundImage.position) !== null && _d !== void 0 ? _d : 'center center']
28
+ backgroundSize: [
29
+ tintLayer ? '100% 100%' : null,
30
+ (backgroundImage === null || backgroundImage === void 0 ? void 0 : backgroundImage.fit) === 'custom'
31
+ ? ((_c = backgroundImage === null || backgroundImage === void 0 ? void 0 : backgroundImage.sizeValue) !== null && _c !== void 0 ? _c : BACKGROUND_IMAGE_SIZE_VALUE_DEFAULT)
32
+ : ((_d = backgroundImage === null || backgroundImage === void 0 ? void 0 : backgroundImage.fit) !== null && _d !== void 0 ? _d : 'cover'),
33
+ ]
29
34
  .filter(Boolean)
30
35
  .join(', '),
31
- backgroundRepeat: 'no-repeat',
36
+ backgroundPosition: [tintLayer ? 'center center' : null, (_e = backgroundImage === null || backgroundImage === void 0 ? void 0 : backgroundImage.position) !== null && _e !== void 0 ? _e : 'center center']
37
+ .filter(Boolean)
38
+ .join(', '),
39
+ backgroundRepeat: [tintLayer ? 'no-repeat' : null, (_f = backgroundImage === null || backgroundImage === void 0 ? void 0 : backgroundImage.repeat) !== null && _f !== void 0 ? _f : 'no-repeat'].filter(Boolean).join(', '),
32
40
  padding: '16px',
33
41
  }
34
42
  : {}),
@@ -11,6 +11,10 @@ export interface FluidDecorationImage {
11
11
  export interface FluidDecoration {
12
12
  img?: FluidDecorationImage;
13
13
  height: string;
14
+ fit?: FluidDecorationFit;
15
+ sizeValue?: string;
16
+ bgPosition?: BackgroundImagePosition;
17
+ repeat?: BackgroundImageRepeat;
14
18
  }
15
19
  export type DecorationImage = FluidDecorationImage;
16
20
  export type DecorationPosition = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' | 'center-left' | 'center-right';
@@ -25,7 +29,9 @@ export interface Decoration {
25
29
  offsetX?: string;
26
30
  offsetY?: string;
27
31
  }
28
- export type BackgroundImageFit = 'cover' | 'contain';
32
+ export type BackgroundImageFit = 'cover' | 'contain' | 'custom';
33
+ export type FluidDecorationFit = BackgroundImageFit | 'auto';
34
+ export type BackgroundImageRepeat = 'no-repeat' | 'repeat' | 'repeat-x' | 'repeat-y';
29
35
  export type BackgroundImagePosition = 'left top' | 'center top' | 'right top' | 'left center' | 'center center' | 'right center' | 'left bottom' | 'center bottom' | 'right bottom';
30
36
  export interface BackgroundImageOverlay {
31
37
  color?: string;
@@ -34,7 +40,9 @@ export interface BackgroundImageOverlay {
34
40
  export interface BackgroundImage {
35
41
  img?: FluidDecorationImage;
36
42
  fit?: BackgroundImageFit;
43
+ sizeValue?: string;
37
44
  position?: BackgroundImagePosition;
45
+ repeat?: BackgroundImageRepeat;
38
46
  overlay?: BackgroundImageOverlay;
39
47
  }
40
48
  export interface Border {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/blocks/sections/base-section/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/blocks/sections/base-section/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"edit.d.ts","sourceRoot":"","sources":["../../../../src/blocks/signpost/signpost-group/edit.tsx"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAC,uBAAuB,EAAE,oBAAoB,EAA2D,MAAM,SAAS,CAAA;AAEpI,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,oBAAoB,oCAMhE;IACD,UAAU,EAAE,uBAAuB,CAAA;IACnC,aAAa,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,KAAK,IAAI,CAAA;CAC7D,iCAwIF"}
1
+ {"version":3,"file":"edit.d.ts","sourceRoot":"","sources":["../../../../src/blocks/signpost/signpost-group/edit.tsx"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAC,uBAAuB,EAAE,oBAAoB,EAA2D,MAAM,SAAS,CAAA;AAEpI,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,oBAAoB,oCAMhE;IACD,UAAU,EAAE,uBAAuB,CAAA;IACnC,aAAa,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,KAAK,IAAI,CAAA;CAC7D,iCA0IF"}
@@ -3,6 +3,7 @@ import { InspectorControls } from '@wordpress/block-editor';
3
3
  import { BaseControl, ColorPalette, PanelBody, RangeControl, SelectControl, __experimentalToggleGroupControl as ToggleGroupControl, __experimentalToggleGroupControlOption as ToggleGroupControlOption, } from '@wordpress/components';
4
4
  import { __ } from '@wordpress/i18n';
5
5
  import clsx from 'clsx';
6
+ import { ItemSpacingPanel, itemSpacingStyle } from '../../../components/ItemSpacingControl';
6
7
  import { useGroupBlock } from '../../../hooks/useGroupBlock';
7
8
  import { useTenantColorPalette } from '../../../hooks/useTenantColorPalette';
8
9
  import { COLUMNS, DEFAULT_IMAGE_CLIP_PATHS, DEFAULT_SHADOWS, HEADING_LEVELS, IMAGE_CLIP_PATH_VALUES, PADDING_MARKS, RATIOS, TEXT_ALIGNS, } from './constants';
@@ -11,7 +12,7 @@ export function createSignpostGroupEdit(options) {
11
12
  const exclude = (_a = options.exclude) !== null && _a !== void 0 ? _a : [];
12
13
  return function Edit({ attributes, setAttributes, }) {
13
14
  var _a, _b, _c;
14
- const { columns, headingLevel, ratio, img, style, padding } = attributes;
15
+ const { columns, headingLevel, ratio, img, style, padding, spacing } = attributes;
15
16
  const clipPath = (_a = img === null || img === void 0 ? void 0 : img.clipPath) !== null && _a !== void 0 ? _a : 'none';
16
17
  const { paletteColors } = useTenantColorPalette();
17
18
  const { blockProps, innerBlocksProps } = useGroupBlock({
@@ -21,12 +22,13 @@ export function createSignpostGroupEdit(options) {
21
22
  '--grid-max-col-count': columns,
22
23
  // Inherited by every signpost item inside the container.
23
24
  ...(IMAGE_CLIP_PATH_VALUES[clipPath] && { '--signpost-image-clip-path': IMAGE_CLIP_PATH_VALUES[clipPath] }),
25
+ ...itemSpacingStyle(spacing),
24
26
  },
25
27
  allowedBlocks: options.allowedBlocks,
26
28
  orientation: 'horizontal',
27
29
  template: options.template,
28
30
  layout: { type: 'default' },
29
31
  });
30
- return (_jsxs(_Fragment, { children: [_jsxs(InspectorControls, { children: [_jsxs(PanelBody, { title: __('Rozložení', 'brilo-blocks'), children: [_jsx(ToggleGroupControl, { isBlock: true, label: __('Počet sloupců', 'brilo-blocks'), value: String(columns), onChange: (v) => setAttributes({ columns: Number(v) }), children: COLUMNS.map((c) => (_jsx(ToggleGroupControlOption, { value: String(c), label: String(c) }, c))) }), _jsx(ToggleGroupControl, { isBlock: true, label: __('Poměr stran', 'brilo-blocks'), value: ratio, onChange: (v) => setAttributes({ ratio: v }), children: RATIOS.map((r) => (_jsx(ToggleGroupControlOption, { value: r, label: r }, r))) }), _jsx(SelectControl, { label: __('Tvar výřezu obrázku', 'brilo-blocks'), value: clipPath, options: [...DEFAULT_IMAGE_CLIP_PATHS], onChange: (v) => setAttributes({ img: { ...img, clipPath: v } }) }), _jsx(ToggleGroupControl, { isBlock: true, label: __('Úroveň nadpisu položek', 'brilo-blocks'), value: String(headingLevel), onChange: (v) => setAttributes({ headingLevel: Number(v) }), children: HEADING_LEVELS.map((l) => (_jsx(ToggleGroupControlOption, { value: String(l), label: `H${l}` }, l))) })] }), !exclude.includes('colors') && style && (_jsxs(PanelBody, { title: __('Styl', 'brilo-blocks'), children: [_jsx(ToggleGroupControl, { isBlock: true, label: __('Stín', 'brilo-blocks'), value: style.shadow, onChange: (v) => setAttributes({ style: { ...style, shadow: v } }), children: DEFAULT_SHADOWS.map((s) => (_jsx(ToggleGroupControlOption, { value: s.value, label: s.label }, s.value))) }), _jsx(BaseControl, { label: __('Barva okraje', 'brilo-blocks'), help: __('Bez vybrané barvy se okraj nevykreslí.', 'brilo-blocks'), id: "signpost-group-border-color", children: _jsx(ColorPalette, { colors: paletteColors, value: style.borderColor || undefined, onChange: (value) => setAttributes({ style: { ...style, borderColor: value !== null && value !== void 0 ? value : '' } }) }) }), _jsx(BaseControl, { label: __('Barva pozadí', 'brilo-blocks'), id: "signpost-group-background-color", children: _jsx(ColorPalette, { colors: paletteColors, value: style.backgroundColor || undefined, onChange: (value) => setAttributes({ style: { ...style, backgroundColor: value !== null && value !== void 0 ? value : '' } }) }) }), _jsx(BaseControl, { label: __('Barva textu', 'brilo-blocks'), id: "signpost-group-text-color", children: _jsx(ColorPalette, { colors: paletteColors, value: style.textColor || undefined, onChange: (value) => setAttributes({ style: { ...style, textColor: value !== null && value !== void 0 ? value : '' } }) }) }), _jsx(BaseControl, { label: __('Barva nadpisu', 'brilo-blocks'), id: "signpost-group-heading-color", children: _jsx(ColorPalette, { colors: paletteColors, value: style.headingColor || undefined, onChange: (value) => setAttributes({ style: { ...style, headingColor: value !== null && value !== void 0 ? value : '' } }) }) }), _jsx(ToggleGroupControl, { isBlock: true, label: __('Zarovnání textu', 'brilo-blocks'), value: style.textAlign, onChange: (v) => setAttributes({ style: { ...style, textAlign: v } }), children: TEXT_ALIGNS.map((a) => (_jsx(ToggleGroupControlOption, { value: a.value, label: a.label }, a.value))) })] })), !exclude.includes('padding') && padding && (_jsx(PanelBody, { title: __('Padding', 'brilo-blocks'), children: _jsx(RangeControl, { label: __('Vnitřní odsazení (rem)', 'brilo-blocks'), value: padding.value, onChange: (v) => setAttributes({ padding: { value: v !== null && v !== void 0 ? v : 0 } }), min: 0, max: 2, step: 0.5, marks: [...PADDING_MARKS] }) }))] }), _jsx("div", { ...blockProps, children: _jsx("div", { ...innerBlocksProps }) })] }));
32
+ return (_jsxs(_Fragment, { children: [_jsxs(InspectorControls, { children: [_jsxs(PanelBody, { title: __('Rozložení', 'brilo-blocks'), children: [_jsx(ToggleGroupControl, { isBlock: true, label: __('Počet sloupců', 'brilo-blocks'), value: String(columns), onChange: (v) => setAttributes({ columns: Number(v) }), children: COLUMNS.map((c) => (_jsx(ToggleGroupControlOption, { value: String(c), label: String(c) }, c))) }), _jsx(ToggleGroupControl, { isBlock: true, label: __('Poměr stran', 'brilo-blocks'), value: ratio, onChange: (v) => setAttributes({ ratio: v }), children: RATIOS.map((r) => (_jsx(ToggleGroupControlOption, { value: r, label: r }, r))) }), _jsx(SelectControl, { label: __('Tvar výřezu obrázku', 'brilo-blocks'), value: clipPath, options: [...DEFAULT_IMAGE_CLIP_PATHS], onChange: (v) => setAttributes({ img: { ...img, clipPath: v } }) }), _jsx(ToggleGroupControl, { isBlock: true, label: __('Úroveň nadpisu položek', 'brilo-blocks'), value: String(headingLevel), onChange: (v) => setAttributes({ headingLevel: Number(v) }), children: HEADING_LEVELS.map((l) => (_jsx(ToggleGroupControlOption, { value: String(l), label: `H${l}` }, l))) })] }), !exclude.includes('colors') && style && (_jsxs(PanelBody, { title: __('Styl', 'brilo-blocks'), children: [_jsx(ToggleGroupControl, { isBlock: true, label: __('Stín', 'brilo-blocks'), value: style.shadow, onChange: (v) => setAttributes({ style: { ...style, shadow: v } }), children: DEFAULT_SHADOWS.map((s) => (_jsx(ToggleGroupControlOption, { value: s.value, label: s.label }, s.value))) }), _jsx(BaseControl, { label: __('Barva okraje', 'brilo-blocks'), help: __('Bez vybrané barvy se okraj nevykreslí.', 'brilo-blocks'), id: "signpost-group-border-color", children: _jsx(ColorPalette, { colors: paletteColors, value: style.borderColor || undefined, onChange: (value) => setAttributes({ style: { ...style, borderColor: value !== null && value !== void 0 ? value : '' } }) }) }), _jsx(BaseControl, { label: __('Barva pozadí', 'brilo-blocks'), id: "signpost-group-background-color", children: _jsx(ColorPalette, { colors: paletteColors, value: style.backgroundColor || undefined, onChange: (value) => setAttributes({ style: { ...style, backgroundColor: value !== null && value !== void 0 ? value : '' } }) }) }), _jsx(BaseControl, { label: __('Barva textu', 'brilo-blocks'), id: "signpost-group-text-color", children: _jsx(ColorPalette, { colors: paletteColors, value: style.textColor || undefined, onChange: (value) => setAttributes({ style: { ...style, textColor: value !== null && value !== void 0 ? value : '' } }) }) }), _jsx(BaseControl, { label: __('Barva nadpisu', 'brilo-blocks'), id: "signpost-group-heading-color", children: _jsx(ColorPalette, { colors: paletteColors, value: style.headingColor || undefined, onChange: (value) => setAttributes({ style: { ...style, headingColor: value !== null && value !== void 0 ? value : '' } }) }) }), _jsx(ToggleGroupControl, { isBlock: true, label: __('Zarovnání textu', 'brilo-blocks'), value: style.textAlign, onChange: (v) => setAttributes({ style: { ...style, textAlign: v } }), children: TEXT_ALIGNS.map((a) => (_jsx(ToggleGroupControlOption, { value: a.value, label: a.label }, a.value))) })] })), !exclude.includes('padding') && padding && (_jsx(PanelBody, { title: __('Padding', 'brilo-blocks'), children: _jsx(RangeControl, { label: __('Vnitřní odsazení (rem)', 'brilo-blocks'), value: padding.value, onChange: (v) => setAttributes({ padding: { value: v !== null && v !== void 0 ? v : 0 } }), min: 0, max: 2, step: 0.5, marks: [...PADDING_MARKS] }) })), _jsx(ItemSpacingPanel, { spacing: spacing, onChange: (v) => setAttributes({ spacing: v }) })] }), _jsx("div", { ...blockProps, children: _jsx("div", { ...innerBlocksProps }) })] }));
31
33
  };
32
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/blocks/signpost/signpost-group/factory.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,mBAAmB,CAAA;AAKzD,OAAO,KAAK,EAAC,uBAAuB,EAAE,oBAAoB,EAAC,MAAM,SAAS,CAAA;AAE1E,YAAY,EAAC,uBAAuB,EAAE,oBAAoB,EAAC,CAAA;AAE3D,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,oBAAoB,GAAG,kBAAkB,CAAC,uBAAuB,CAAC,CA0DnH"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/blocks/signpost/signpost-group/factory.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,mBAAmB,CAAA;AAMzD,OAAO,KAAK,EAAC,uBAAuB,EAAE,oBAAoB,EAAC,MAAM,SAAS,CAAA;AAE1E,YAAY,EAAC,uBAAuB,EAAE,oBAAoB,EAAC,CAAA;AAE3D,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,oBAAoB,GAAG,kBAAkB,CAAC,uBAAuB,CAAC,CA2DnH"}
@@ -1,6 +1,7 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { InnerBlocks } from '@wordpress/block-editor';
3
3
  import { __ } from '@wordpress/i18n';
4
+ import { ITEM_SPACING_ATTRIBUTE } from '../../../components/ItemSpacingControl';
4
5
  import { COLUMNS, DEFAULT_IMAGE_CLIP_PATHS, DEFAULT_SHADOWS, HEADING_LEVELS, RATIOS, TEXT_ALIGNS } from './constants';
5
6
  import { createSignpostGroupEdit } from './edit';
6
7
  import { icon as defaultIcon } from './icon';
@@ -27,6 +28,7 @@ export function createSignpostGroupBlock(options) {
27
28
  type: 'object',
28
29
  default: { clipPath: DEFAULT_IMAGE_CLIP_PATHS[0].value },
29
30
  },
31
+ ...ITEM_SPACING_ATTRIBUTE,
30
32
  };
31
33
  if (!exclude.includes('colors')) {
32
34
  attributes.style = {
@@ -22,6 +22,7 @@ export interface SignpostGroupAttributes extends Record<string, unknown> {
22
22
  padding: {
23
23
  value: number;
24
24
  };
25
+ spacing?: number;
25
26
  }
26
27
  export interface SignpostGroupOptions extends BriloBlockType {
27
28
  exclude?: ExcludableSignpostAttr[];
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/blocks/signpost/signpost-group/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,SAAS,CAAA;AAC3C,OAAO,KAAK,EAAC,wBAAwB,EAAE,eAAe,EAAE,WAAW,EAAC,MAAM,aAAa,CAAA;AAEvF,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAA;AAEtE,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAA;AAEtF,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAA;AAErE,MAAM,MAAM,sBAAsB,GAAG,QAAQ,GAAG,SAAS,CAAA;AAEzD,MAAM,WAAW,uBAAwB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACtE,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE;QAAC,QAAQ,EAAE,qBAAqB,CAAA;KAAC,CAAA;IACtC,KAAK,EAAE;QACL,MAAM,EAAE,cAAc,CAAA;QACtB,WAAW,EAAE,MAAM,CAAA;QACnB,eAAe,EAAE,MAAM,CAAA;QACvB,SAAS,EAAE,MAAM,CAAA;QACjB,YAAY,EAAE,MAAM,CAAA;QACpB,SAAS,EAAE,iBAAiB,CAAA;KAC7B,CAAA;IACD,OAAO,EAAE;QAAC,KAAK,EAAE,MAAM,CAAA;KAAC,CAAA;CACzB;AAED,MAAM,WAAW,oBAAqB,SAAQ,cAAc;IAC1D,OAAO,CAAC,EAAE,sBAAsB,EAAE,CAAA;CACnC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/blocks/signpost/signpost-group/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,SAAS,CAAA;AAC3C,OAAO,KAAK,EAAC,wBAAwB,EAAE,eAAe,EAAE,WAAW,EAAC,MAAM,aAAa,CAAA;AAEvF,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAA;AAEtE,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAA;AAEtF,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAA;AAErE,MAAM,MAAM,sBAAsB,GAAG,QAAQ,GAAG,SAAS,CAAA;AAEzD,MAAM,WAAW,uBAAwB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACtE,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE;QAAC,QAAQ,EAAE,qBAAqB,CAAA;KAAC,CAAA;IACtC,KAAK,EAAE;QACL,MAAM,EAAE,cAAc,CAAA;QACtB,WAAW,EAAE,MAAM,CAAA;QACnB,eAAe,EAAE,MAAM,CAAA;QACvB,SAAS,EAAE,MAAM,CAAA;QACjB,YAAY,EAAE,MAAM,CAAA;QACpB,SAAS,EAAE,iBAAiB,CAAA;KAC7B,CAAA;IACD,OAAO,EAAE;QAAC,KAAK,EAAE,MAAM,CAAA;KAAC,CAAA;IACxB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,oBAAqB,SAAQ,cAAc;IAC1D,OAAO,CAAC,EAAE,sBAAsB,EAAE,CAAA;CACnC"}
@@ -1 +1 @@
1
- {"version":3,"file":"edit.d.ts","sourceRoot":"","sources":["../../../../src/blocks/step/step-group/edit.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,SAAS,CAAA;AACxC,OAAO,KAAK,EAAC,mBAAmB,EAAE,gBAAgB,EAAc,MAAM,SAAS,CAAA;AAC/E,OAAO,EAAC,gBAAgB,EAAC,MAAM,aAAa,CAAA;AAE5C,wBAAgB,mBAAmB,CAAC,SAAS,SAAS,WAAW,GAAG,OAAO,gBAAgB,EAAE,OAAO,EAAE,gBAAgB,CAAC,SAAS,CAAC,oCAM5H;IACD,UAAU,EAAE,mBAAmB,CAAA;IAC/B,aAAa,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,KAAK,IAAI,CAAA;CACzD,iCAwCF"}
1
+ {"version":3,"file":"edit.d.ts","sourceRoot":"","sources":["../../../../src/blocks/step/step-group/edit.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,SAAS,CAAA;AACxC,OAAO,KAAK,EAAC,mBAAmB,EAAE,gBAAgB,EAAc,MAAM,SAAS,CAAA;AAC/E,OAAO,EAAC,gBAAgB,EAAC,MAAM,aAAa,CAAA;AAE5C,wBAAgB,mBAAmB,CAAC,SAAS,SAAS,WAAW,GAAG,OAAO,gBAAgB,EAAE,OAAO,EAAE,gBAAgB,CAAC,SAAS,CAAC,oCAM5H;IACD,UAAU,EAAE,mBAAmB,CAAA;IAC/B,aAAa,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,KAAK,IAAI,CAAA;CACzD,iCAyCF"}