@brilo/base-blocks 0.1.54 → 0.1.56

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 (59) hide show
  1. package/build/.tsbuildinfo +1 -1
  2. package/build/blocks/accordion/accordion-item/edit.d.ts.map +1 -1
  3. package/build/blocks/accordion/accordion-item/edit.js +4 -4
  4. package/build/blocks/accordion/accordion-item/factory.d.ts.map +1 -1
  5. package/build/blocks/accordion/accordion-item/factory.js +1 -0
  6. package/build/blocks/accordion/accordion-item/types.d.ts +1 -0
  7. package/build/blocks/accordion/accordion-item/types.d.ts.map +1 -1
  8. package/build/blocks/core/basic-icon/factory.d.ts.map +1 -1
  9. package/build/blocks/core/basic-icon/factory.js +2 -1
  10. package/build/blocks/faq/faq-group/factory.d.ts.map +1 -1
  11. package/build/blocks/faq/faq-group/factory.js +2 -1
  12. package/build/blocks/groups/banner-group/factory.d.ts.map +1 -1
  13. package/build/blocks/groups/banner-group/factory.js +2 -1
  14. package/build/blocks/groups/basic-header-group/factory.d.ts.map +1 -1
  15. package/build/blocks/groups/basic-header-group/factory.js +2 -1
  16. package/build/blocks/groups/content-group/index.js +1 -1
  17. package/build/blocks/groups/text-and-media-group/factory.d.ts.map +1 -1
  18. package/build/blocks/groups/text-and-media-group/factory.js +2 -1
  19. package/build/blocks/hero/hero-item/edit.d.ts +2 -4
  20. package/build/blocks/hero/hero-item/edit.d.ts.map +1 -1
  21. package/build/blocks/hero/hero-item/edit.js +7 -6
  22. package/build/blocks/hero/hero-item/factory.d.ts +1 -1
  23. package/build/blocks/hero/hero-item/factory.d.ts.map +1 -1
  24. package/build/blocks/hero/hero-item/factory.js +1 -0
  25. package/build/blocks/hero/hero-item/types.d.ts +10 -1
  26. package/build/blocks/hero/hero-item/types.d.ts.map +1 -1
  27. package/build/blocks/map/map-group/factory.d.ts.map +1 -1
  28. package/build/blocks/map/map-group/factory.js +2 -1
  29. package/build/blocks/newsletter/newsletter-form/factory.d.ts.map +1 -1
  30. package/build/blocks/newsletter/newsletter-form/factory.js +2 -1
  31. package/build/blocks/testimonial/testimonial-item/factory.d.ts.map +1 -1
  32. package/build/blocks/testimonial/testimonial-item/factory.js +2 -1
  33. package/build/blocks/text-and-form/text-and-form-text-column/factory.d.ts.map +1 -1
  34. package/build/blocks/text-and-form/text-and-form-text-column/factory.js +2 -1
  35. package/build/blocks/usp/usp-group/factory.d.ts.map +1 -1
  36. package/build/blocks/usp/usp-group/factory.js +2 -1
  37. package/build/utils/withObjectDefaults.d.ts +12 -0
  38. package/build/utils/withObjectDefaults.d.ts.map +1 -0
  39. package/build/utils/withObjectDefaults.js +37 -0
  40. package/package.json +1 -1
  41. package/src/blocks/accordion/accordion-item/edit.tsx +12 -3
  42. package/src/blocks/accordion/accordion-item/factory.tsx +1 -0
  43. package/src/blocks/accordion/accordion-item/types.ts +1 -0
  44. package/src/blocks/core/basic-button/editor.scss +11 -0
  45. package/src/blocks/core/basic-icon/factory.tsx +2 -1
  46. package/src/blocks/faq/faq-group/factory.tsx +2 -1
  47. package/src/blocks/groups/banner-group/factory.tsx +2 -1
  48. package/src/blocks/groups/basic-header-group/factory.tsx +2 -1
  49. package/src/blocks/groups/content-group/index.ts +1 -1
  50. package/src/blocks/groups/text-and-media-group/factory.tsx +2 -1
  51. package/src/blocks/hero/hero-item/edit.tsx +4 -7
  52. package/src/blocks/hero/hero-item/factory.tsx +6 -3
  53. package/src/blocks/hero/hero-item/types.ts +10 -1
  54. package/src/blocks/map/map-group/factory.tsx +2 -1
  55. package/src/blocks/newsletter/newsletter-form/factory.tsx +2 -1
  56. package/src/blocks/testimonial/testimonial-item/factory.tsx +2 -1
  57. package/src/blocks/text-and-form/text-and-form-text-column/factory.tsx +2 -1
  58. package/src/blocks/usp/usp-group/factory.tsx +2 -1
  59. package/src/utils/withObjectDefaults.tsx +37 -0
@@ -1 +1 @@
1
- {"version":3,"file":"edit.d.ts","sourceRoot":"","sources":["../../../../src/blocks/accordion/accordion-item/edit.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,uBAAuB,EAAE,oBAAoB,EAAC,MAAM,SAAS,CAAA;AAE1E,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,oBAAoB,oCAIjE;IACD,UAAU,EAAE,uBAAuB,CAAA;IACnC,aAAa,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,KAAK,IAAI,CAAA;CAC7D,iCAgCF"}
1
+ {"version":3,"file":"edit.d.ts","sourceRoot":"","sources":["../../../../src/blocks/accordion/accordion-item/edit.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,uBAAuB,EAAE,oBAAoB,EAAC,MAAM,SAAS,CAAA;AAE1E,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,oBAAoB,oCAIjE;IACD,UAAU,EAAE,uBAAuB,CAAA;IACnC,aAAa,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,KAAK,IAAI,CAAA;CAC7D,iCAyCF"}
@@ -1,14 +1,14 @@
1
1
  import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { RichText, useBlockProps, useInnerBlocksProps } from '@wordpress/block-editor';
3
- import { BaseControl } from '@wordpress/components';
2
+ import { InspectorControls, RichText, useBlockProps, useInnerBlocksProps } from '@wordpress/block-editor';
3
+ import { BaseControl, PanelBody, ToggleControl } from '@wordpress/components';
4
4
  import { Icon, chevronDown } from '@wordpress/icons';
5
5
  import { __ } from '@wordpress/i18n';
6
6
  import clsx from 'clsx';
7
7
  export function createAccordionItemEdit(_options) {
8
8
  return function Edit({ attributes, setAttributes, }) {
9
- const { title } = attributes;
9
+ const { title, open } = attributes;
10
10
  const blockProps = useBlockProps({ className: clsx('accordion-item') });
11
11
  const innerBlocksProps = useInnerBlocksProps({});
12
- return (_jsx(_Fragment, { children: _jsxs("div", { ...blockProps, children: [_jsxs("header", { className: "accordion-item__header flex gap-2", children: [_jsx(RichText, { identifier: "title", className: "title u-text-editable grow", tagName: "h3", value: title, allowedFormats: [], onChange: (value) => setAttributes({ title: value }), placeholder: __('Nadpis prvku', 'brilo-blocks'), "data-custom-placeholder": true }), _jsxs("label", { className: "accordion-item__dropdown flex items-center justify-center cursor-pointer", children: [_jsx(Icon, { icon: chevronDown, size: 32, className: "accordion-item__dropdown-icon", color: "white" }), _jsx("input", { type: "checkbox", defaultChecked: true })] })] }), _jsx(BaseControl, { label: __('Obsah:', 'brilo-blocks'), className: "accordion-item__content", children: _jsx("div", { ...innerBlocksProps }) })] }) }));
12
+ return (_jsxs(_Fragment, { children: [_jsx(InspectorControls, { children: _jsx(PanelBody, { title: __('Nastavení', 'brilo-blocks'), children: _jsx(ToggleControl, { label: __('Otevřeno ve výchozím stavu', 'brilo-blocks'), checked: open, onChange: (v) => setAttributes({ open: v }) }) }) }), _jsxs("div", { ...blockProps, children: [_jsxs("header", { className: "accordion-item__header flex gap-2", children: [_jsx(RichText, { identifier: "title", className: "title u-text-editable grow", tagName: "h3", value: title, allowedFormats: [], onChange: (value) => setAttributes({ title: value }), placeholder: __('Nadpis prvku', 'brilo-blocks'), "data-custom-placeholder": true }), _jsxs("label", { className: "accordion-item__dropdown flex items-center justify-center cursor-pointer", children: [_jsx(Icon, { icon: chevronDown, size: 32, className: "accordion-item__dropdown-icon", color: "white" }), _jsx("input", { type: "checkbox", defaultChecked: true })] })] }), _jsx(BaseControl, { label: __('Obsah:', 'brilo-blocks'), className: "accordion-item__content", children: _jsx("div", { ...innerBlocksProps }) })] })] }));
13
13
  };
14
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/blocks/accordion/accordion-item/factory.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,mBAAmB,CAAA;AAGzD,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,CAenH"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/blocks/accordion/accordion-item/factory.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,mBAAmB,CAAA;AAGzD,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,CAgBnH"}
@@ -14,6 +14,7 @@ export function createAccordionItemBlock(options) {
14
14
  supports: { html: false, customClassName: false },
15
15
  attributes: {
16
16
  title: { type: 'string', default: '' },
17
+ open: { type: 'boolean', default: false },
17
18
  },
18
19
  edit: createAccordionItemEdit(options),
19
20
  save: () => _jsx(InnerBlocks.Content, {}),
@@ -1,6 +1,7 @@
1
1
  import type { BriloBlockType } from '../../../types';
2
2
  export interface AccordionItemAttributes extends Record<string, unknown> {
3
3
  title: string;
4
+ open: boolean;
4
5
  }
5
6
  export interface AccordionItemOptions extends BriloBlockType {
6
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/blocks/accordion/accordion-item/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,SAAS,CAAA;AAE3C,MAAM,WAAW,uBAAwB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACtE,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,oBAAqB,SAAQ,cAAc;CAAG"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/blocks/accordion/accordion-item/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,SAAS,CAAA;AAE3C,MAAM,WAAW,uBAAwB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACtE,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,OAAO,CAAA;CACd;AAED,MAAM,WAAW,oBAAqB,SAAQ,cAAc;CAAG"}
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/blocks/core/basic-icon/factory.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,mBAAmB,CAAA;AAIzD,OAAO,KAAK,EAAC,mBAAmB,EAAE,gBAAgB,EAAC,MAAM,SAAS,CAAA;AAElE,YAAY,EAAC,mBAAmB,EAAE,gBAAgB,EAAC,CAAA;AAEnD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,gBAAgB,GAAG,kBAAkB,CAAC,mBAAmB,CAAC,CAiCvG"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/blocks/core/basic-icon/factory.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,mBAAmB,CAAA;AAKzD,OAAO,KAAK,EAAC,mBAAmB,EAAE,gBAAgB,EAAC,MAAM,SAAS,CAAA;AAElE,YAAY,EAAC,mBAAmB,EAAE,gBAAgB,EAAC,CAAA;AAEnD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,gBAAgB,GAAG,kBAAkB,CAAC,mBAAmB,CAAC,CAiCvG"}
@@ -1,3 +1,4 @@
1
+ import { withObjectDefaults } from '../../../utils/withObjectDefaults';
1
2
  import { __ } from '@wordpress/i18n';
2
3
  import { DEFAULT_ALIGNMENTS, DEFAULT_ICON_BACKGROUND_SHAPES, DEFAULT_ICON_BACKGROUND_SIZE, DEFAULT_ICON_SIZE, ICON_TYPES } from './constants';
3
4
  import { createBasicIconEdit } from './edit';
@@ -32,7 +33,7 @@ export function createBasicIconBlock(options) {
32
33
  },
33
34
  },
34
35
  },
35
- edit: createBasicIconEdit(options),
36
+ edit: withObjectDefaults(createBasicIconEdit(options)),
36
37
  save: () => null,
37
38
  };
38
39
  }
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/blocks/faq/faq-group/factory.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,mBAAmB,CAAA;AAGzD,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,SAAS,CAAA;AAExC,OAAO,EAAoB,qBAAqB,EAAqB,MAAM,aAAa,CAAA;AAExF,OAAO,KAAK,EAAC,kBAAkB,EAAE,eAAe,EAAC,MAAM,SAAS,CAAA;AAEhE,YAAY,EAAC,kBAAkB,EAAE,eAAe,EAAC,CAAA;AAEjD,wBAAgB,mBAAmB,CAAC,aAAa,SAAS,WAAW,GAAG,OAAO,qBAAqB,EAClG,OAAO,EAAE,eAAe,CAAC,aAAa,CAAC,GACtC,kBAAkB,CAAC,kBAAkB,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CA8CxE"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/blocks/faq/faq-group/factory.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,mBAAmB,CAAA;AAGzD,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,SAAS,CAAA;AAExC,OAAO,EAAoB,qBAAqB,EAAqB,MAAM,aAAa,CAAA;AAExF,OAAO,KAAK,EAAC,kBAAkB,EAAE,eAAe,EAAC,MAAM,SAAS,CAAA;AAEhE,YAAY,EAAC,kBAAkB,EAAE,eAAe,EAAC,CAAA;AAEjD,wBAAgB,mBAAmB,CAAC,aAAa,SAAS,WAAW,GAAG,OAAO,qBAAqB,EAClG,OAAO,EAAE,eAAe,CAAC,aAAa,CAAC,GACtC,kBAAkB,CAAC,kBAAkB,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CA8CxE"}
@@ -1,5 +1,6 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { InnerBlocks } from '@wordpress/block-editor';
3
+ import { withObjectDefaults } from '../../../utils/withObjectDefaults';
3
4
  import { __ } from '@wordpress/i18n';
4
5
  import { ITEM_SPACING_ATTRIBUTE } from '../../../components/ItemSpacingControl';
5
6
  import { DEFAULT_SURFACE_SHADOWS, surfaceStyleAttribute } from '../../../components/SurfaceStyleControl';
@@ -46,7 +47,7 @@ export function createFaqGroupBlock(options) {
46
47
  icon: (_h = options.icon) !== null && _h !== void 0 ? _h : 'editor-help',
47
48
  supports: { html: false, customClassName: false },
48
49
  attributes,
49
- edit: createFaqGroupEdit(options),
50
+ edit: withObjectDefaults(createFaqGroupEdit(options)),
50
51
  save: () => _jsx(InnerBlocks.Content, {}),
51
52
  };
52
53
  }
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/blocks/groups/banner-group/factory.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,mBAAmB,CAAA;AAEzD,OAAO,KAAK,EAAC,WAAW,EAAE,WAAW,EAAC,MAAM,SAAS,CAAA;AACrD,OAAO,EAAC,gBAAgB,EAAE,sBAAsB,EAAC,MAAM,aAAa,CAAA;AAEpE,OAAO,KAAK,EAAC,qBAAqB,EAAE,kBAAkB,EAAC,MAAM,SAAS,CAAA;AAItE,YAAY,EAAC,qBAAqB,EAAE,kBAAkB,EAAC,CAAA;AAEvD,wBAAgB,sBAAsB,CACpC,SAAS,SAAS,WAAW,GAAG,OAAO,gBAAgB,EACvD,cAAc,SAAS,WAAW,GAAG,OAAO,sBAAsB,EAElE,OAAO,EAAE,kBAAkB,CAAC,SAAS,EAAE,cAAc,CAAC,GACrD,kBAAkB,CAAC,qBAAqB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CA8C/F"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/blocks/groups/banner-group/factory.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,mBAAmB,CAAA;AAEzD,OAAO,KAAK,EAAC,WAAW,EAAE,WAAW,EAAC,MAAM,SAAS,CAAA;AACrD,OAAO,EAAC,gBAAgB,EAAE,sBAAsB,EAAC,MAAM,aAAa,CAAA;AAEpE,OAAO,KAAK,EAAC,qBAAqB,EAAE,kBAAkB,EAAC,MAAM,SAAS,CAAA;AAItE,YAAY,EAAC,qBAAqB,EAAE,kBAAkB,EAAC,CAAA;AAEvD,wBAAgB,sBAAsB,CACpC,SAAS,SAAS,WAAW,GAAG,OAAO,gBAAgB,EACvD,cAAc,SAAS,WAAW,GAAG,OAAO,sBAAsB,EAElE,OAAO,EAAE,kBAAkB,CAAC,SAAS,EAAE,cAAc,CAAC,GACrD,kBAAkB,CAAC,qBAAqB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CA8C/F"}
@@ -1,5 +1,6 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { InnerBlocks } from '@wordpress/block-editor';
3
+ import { withObjectDefaults } from '../../../utils/withObjectDefaults';
3
4
  import { __ } from '@wordpress/i18n';
4
5
  import { DEFAULT_VARIANTS, DEFAULT_HEADING_STYLES } from './constants';
5
6
  import { createBannerGroupEdit } from './edit';
@@ -48,7 +49,7 @@ export function createBannerGroupBlock(options) {
48
49
  backgroundColor: { type: 'string', default: '' },
49
50
  textColor: { type: 'string', default: '' },
50
51
  },
51
- edit: createBannerGroupEdit(options),
52
+ edit: withObjectDefaults(createBannerGroupEdit(options)),
52
53
  save: () => _jsx(InnerBlocks.Content, {}),
53
54
  };
54
55
  }
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/blocks/groups/basic-header-group/factory.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,mBAAmB,CAAA;AAEzD,OAAO,KAAK,EAAC,WAAW,EAAE,WAAW,EAAE,WAAW,EAAC,MAAM,SAAS,CAAA;AAClE,OAAO,EAAC,kBAAkB,EAAE,cAAc,EAAE,cAAc,EAAC,MAAM,aAAa,CAAA;AAG9E,OAAO,KAAK,EAAC,0BAA0B,EAAE,uBAAuB,EAAC,MAAM,SAAS,CAAA;AAEhF,YAAY,EAAC,0BAA0B,EAAE,uBAAuB,EAAC,CAAA;AAEjE,wBAAgB,2BAA2B,CACzC,OAAO,SAAS,WAAW,GAAG,OAAO,cAAc,EACnD,OAAO,SAAS,WAAW,GAAG,OAAO,cAAc,EACnD,WAAW,SAAS,WAAW,GAAG,OAAO,kBAAkB,EAE3D,OAAO,EAAE,uBAAuB,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,GAC9D,kBAAkB,CAAC,0BAA0B,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CA6BhH"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/blocks/groups/basic-header-group/factory.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,mBAAmB,CAAA;AAGzD,OAAO,KAAK,EAAC,WAAW,EAAE,WAAW,EAAE,WAAW,EAAC,MAAM,SAAS,CAAA;AAClE,OAAO,EAAC,kBAAkB,EAAE,cAAc,EAAE,cAAc,EAAC,MAAM,aAAa,CAAA;AAG9E,OAAO,KAAK,EAAC,0BAA0B,EAAE,uBAAuB,EAAC,MAAM,SAAS,CAAA;AAEhF,YAAY,EAAC,0BAA0B,EAAE,uBAAuB,EAAC,CAAA;AAEjE,wBAAgB,2BAA2B,CACzC,OAAO,SAAS,WAAW,GAAG,OAAO,cAAc,EACnD,OAAO,SAAS,WAAW,GAAG,OAAO,cAAc,EACnD,WAAW,SAAS,WAAW,GAAG,OAAO,kBAAkB,EAE3D,OAAO,EAAE,uBAAuB,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,GAC9D,kBAAkB,CAAC,0BAA0B,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CA6BhH"}
@@ -1,3 +1,4 @@
1
+ import { withObjectDefaults } from '../../../utils/withObjectDefaults';
1
2
  import { __ } from '@wordpress/i18n';
2
3
  import { DEFAULT_ALIGNMENTS, DEFAULT_LEVELS, DEFAULT_STYLES } from './constants';
3
4
  import { createBasicHeaderGroupEdit } from './edit';
@@ -29,7 +30,7 @@ export function createBasicHeaderGroupBlock(options) {
29
30
  enum: alignments.map((a) => a.value),
30
31
  },
31
32
  },
32
- edit: createBasicHeaderGroupEdit(options),
33
+ edit: withObjectDefaults(createBasicHeaderGroupEdit(options)),
33
34
  save: () => null,
34
35
  };
35
36
  }
@@ -16,6 +16,6 @@ export const contentGroupDefaults = {
16
16
  'core/embed',
17
17
  'core/video',
18
18
  'core/file',
19
- 'brilo/link',
19
+ 'brilo/link-item',
20
20
  ],
21
21
  };
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/blocks/groups/text-and-media-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,EACL,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,EACtB,wBAAwB,EACxB,uBAAuB,EACvB,cAAc,EAEf,MAAM,aAAa,CAAA;AAGpB,OAAO,KAAK,EAAC,2BAA2B,EAAE,wBAAwB,EAAC,MAAM,SAAS,CAAA;AAElF,YAAY,EAAC,2BAA2B,EAAE,wBAAwB,EAAC,CAAA;AAEnE,wBAAgB,4BAA4B,CAC1C,OAAO,SAAS,WAAW,GAAG,OAAO,cAAc,EACnD,eAAe,SAAS,WAAW,GAAG,OAAO,uBAAuB,EACpE,WAAW,SAAS,WAAW,GAAG,OAAO,mBAAmB,EAC5D,cAAc,SAAS,WAAW,GAAG,OAAO,sBAAsB,EAClE,aAAa,SAAS,WAAW,GAAG,OAAO,qBAAqB,EAChE,aAAa,SAAS,WAAW,GAAG,OAAO,qBAAqB,EAChE,eAAe,SAAS,WAAW,GAAG,OAAO,wBAAwB,EAErE,OAAO,EAAE,wBAAwB,CAAC,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,CAAC,GACtI,kBAAkB,CACnB,2BAA2B,CACzB,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EACxB,eAAe,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAChC,WAAW,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAC5B,cAAc,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAC/B,aAAa,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAC9B,aAAa,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAC9B,eAAe,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CACjC,CACF,CAiEA"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/blocks/groups/text-and-media-group/factory.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,mBAAmB,CAAA;AAEzD,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,SAAS,CAAA;AACxC,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,EACtB,wBAAwB,EACxB,uBAAuB,EACvB,cAAc,EAEf,MAAM,aAAa,CAAA;AAGpB,OAAO,KAAK,EAAC,2BAA2B,EAAE,wBAAwB,EAAC,MAAM,SAAS,CAAA;AAElF,YAAY,EAAC,2BAA2B,EAAE,wBAAwB,EAAC,CAAA;AAEnE,wBAAgB,4BAA4B,CAC1C,OAAO,SAAS,WAAW,GAAG,OAAO,cAAc,EACnD,eAAe,SAAS,WAAW,GAAG,OAAO,uBAAuB,EACpE,WAAW,SAAS,WAAW,GAAG,OAAO,mBAAmB,EAC5D,cAAc,SAAS,WAAW,GAAG,OAAO,sBAAsB,EAClE,aAAa,SAAS,WAAW,GAAG,OAAO,qBAAqB,EAChE,aAAa,SAAS,WAAW,GAAG,OAAO,qBAAqB,EAChE,eAAe,SAAS,WAAW,GAAG,OAAO,wBAAwB,EAErE,OAAO,EAAE,wBAAwB,CAAC,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,CAAC,GACtI,kBAAkB,CACnB,2BAA2B,CACzB,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EACxB,eAAe,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAChC,WAAW,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAC5B,cAAc,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAC/B,aAAa,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAC9B,aAAa,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAC9B,eAAe,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CACjC,CACF,CAiEA"}
@@ -1,5 +1,6 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { InnerBlocks } from '@wordpress/block-editor';
3
+ import { withObjectDefaults } from '../../../utils/withObjectDefaults';
3
4
  import { __ } from '@wordpress/i18n';
4
5
  import { DEFAULT_CHIP_VARIANTS, DEFAULT_CONTENT_SIZES, DEFAULT_GRID_STYLES, DEFAULT_HEADING_STYLES, DEFAULT_IMAGE_CLIP_PATHS, DEFAULT_MEDIA_POSITIONS, DEFAULT_RATIOS, HEADING_LEVELS, } from './constants';
5
6
  import { createTextAndMediaGroupEdit } from './edit';
@@ -57,7 +58,7 @@ export function createTextAndMediaGroupBlock(options) {
57
58
  },
58
59
  content: { type: 'object', default: { size: (_t = (_d = contentSizes[1]) === null || _d === void 0 ? void 0 : _d.value) !== null && _t !== void 0 ? _t : contentSizes[0].value } },
59
60
  },
60
- edit: createTextAndMediaGroupEdit(options),
61
+ edit: withObjectDefaults(createTextAndMediaGroupEdit(options)),
61
62
  save: () => _jsx(InnerBlocks.Content, {}),
62
63
  };
63
64
  }
@@ -1,6 +1,4 @@
1
+ import type { BlockEditProps } from '@wordpress/blocks';
1
2
  import type { HeroItemAttributes, HeroItemOptions } from './types';
2
- export declare function createHeroItemEdit(options: HeroItemOptions): ({ attributes, setAttributes, }: {
3
- attributes: HeroItemAttributes;
4
- setAttributes: (a: Partial<HeroItemAttributes>) => void;
5
- }) => import("react").JSX.Element;
3
+ export declare function createHeroItemEdit(options: HeroItemOptions): (props: BlockEditProps<HeroItemAttributes>) => import("react").JSX.Element;
6
4
  //# sourceMappingURL=edit.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"edit.d.ts","sourceRoot":"","sources":["../../../../src/blocks/hero/hero-item/edit.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAkB,kBAAkB,EAAE,eAAe,EAAC,MAAM,SAAS,CAAA;AAKjF,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,eAAe,oCAItD;IACD,UAAU,EAAE,kBAAkB,CAAA;IAC9B,aAAa,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,KAAK,IAAI,CAAA;CACxD,iCAgIF"}
1
+ {"version":3,"file":"edit.d.ts","sourceRoot":"","sources":["../../../../src/blocks/hero/hero-item/edit.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,mBAAmB,CAAA;AAcrD,OAAO,KAAK,EAAkB,kBAAkB,EAAE,eAAe,EAAC,MAAM,SAAS,CAAA;AAKjF,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,eAAe,WAC7B,cAAc,CAAC,kBAAkB,CAAC,iCAkI/D"}
@@ -8,20 +8,21 @@ import { useGroupBlock } from '../../../hooks/useGroupBlock';
8
8
  import { useTenantColorPalette } from '../../../hooks/useTenantColorPalette';
9
9
  import clsx from 'clsx';
10
10
  export function createHeroItemEdit(options) {
11
- return function Edit({ attributes, setAttributes, }) {
12
- var _a;
13
- var _b, _c, _d;
11
+ return function Edit(props) {
12
+ var _a, _b;
13
+ var _c, _d, _e;
14
+ const { attributes, setAttributes } = props;
14
15
  const { title, titleColor, img, headingLevel, contentPosition, url, focalPoint, overline } = attributes;
15
16
  const { paletteColors } = useTenantColorPalette();
16
17
  const { blockProps, innerBlocksProps } = useGroupBlock({
17
- blockClassName: clsx((_b = options.blockClassName) !== null && _b !== void 0 ? _b : 'i-hero'),
18
- containerClassName: [(_c = options.containerClassName) !== null && _c !== void 0 ? _c : 'i-hero__content wp-block-inner-content'],
18
+ blockClassName: clsx((_c = options.blockClassName) !== null && _c !== void 0 ? _c : 'i-hero'),
19
+ containerClassName: [(_d = options.containerClassName) !== null && _d !== void 0 ? _d : 'i-hero__content wp-block-inner-content'],
19
20
  allowedBlocks: options.allowedBlocks,
20
21
  orientation: 'vertical',
21
22
  template: options.template,
22
23
  layout: { type: 'default' },
23
24
  });
24
- return (_jsxs(_Fragment, { children: [_jsxs(InspectorControls, { children: [_jsxs(PanelBody, { title: __('Obrázek', 'brilo-blocks'), children: [_jsx(ImagePickerControl, { value: { id: img.id, alt: img.alt }, onChange: (v) => setAttributes({ img: { ...img, ...v } }) }), _jsx(BaseControl, { label: __('Focal point (desktop)', 'brilo-blocks'), children: _jsx(AlignmentMatrixControl, { value: focalPoint.point, onChange: (v) => setAttributes({ focalPoint: { ...focalPoint, point: (v !== null && v !== void 0 ? v : 'center center') } }) }) }), _jsx(BaseControl, { label: __('Focal point (mobil)', 'brilo-blocks'), children: _jsx(AlignmentMatrixControl, { value: ((_d = (_a = focalPoint.sm) === null || _a === void 0 ? void 0 : _a.point) !== null && _d !== void 0 ? _d : 'center center'), onChange: (v) => setAttributes({ focalPoint: { ...focalPoint, sm: { point: (v !== null && v !== void 0 ? v : 'center center') } } }) }) })] }), _jsxs(PanelBody, { title: __('Overline', 'brilo-blocks'), children: [_jsx(BaseControl, { label: __('Barva overline pozadí', 'brilo-blocks'), children: _jsx(ColorPalette, { colors: paletteColors, value: overline.background || undefined, onChange: (value) => setAttributes({ overline: { ...overline, background: value !== null && value !== void 0 ? value : '' } }) }) }), _jsx(BaseControl, { label: __('Barva overline textu', 'brilo-blocks'), children: _jsx(ColorPalette, { colors: paletteColors, value: overline.color || undefined, onChange: (value) => setAttributes({ overline: { ...overline, color: value !== null && value !== void 0 ? value : '' } }) }) })] }), _jsxs(PanelBody, { title: __('Nadpis', 'brilo-blocks'), children: [_jsx(BaseControl, { label: __('Barva nadpisu', 'brilo-blocks'), children: _jsx(ColorPalette, { colors: paletteColors, value: titleColor || undefined, onChange: (v) => setAttributes({ titleColor: v !== null && v !== void 0 ? v : '' }) }) }), _jsx(ToggleGroupControl, { isBlock: true, label: __('Úroveň nadpisu položek', 'brilo-blocks'), value: String(headingLevel), onChange: (v) => setAttributes({ headingLevel: Number(v !== null && v !== void 0 ? v : HEADING_LEVELS[1]) }), children: HEADING_LEVELS.map((l) => (_jsx(ToggleGroupControlOption, { value: String(l), label: `H${l}` }, l))) })] }), _jsx(PanelBody, { title: __('Rozložení', 'brilo-blocks'), children: _jsx(BaseControl, { label: __('Pozice obsahu', 'brilo-blocks'), children: _jsx(AlignmentMatrixControl, { value: contentPosition, onChange: (v) => setAttributes({ contentPosition: v }) }) }) }), _jsxs(PanelBody, { title: __('Odkaz', 'brilo-blocks'), children: [_jsx(TextControl, { label: __('URL odkazu', 'brilo-blocks'), value: url.src, onChange: (v) => setAttributes({ url: { ...url, src: v } }) }), _jsx(ToggleControl, { label: __('Otevřít v novém okně', 'brilo-blocks'), checked: url.blank, onChange: (v) => setAttributes({ url: { ...url, blank: v } }) })] })] }), _jsxs("div", { ...blockProps, children: [_jsx("div", { className: "i-hero__image-wrap", children: _jsx(ImagePickerBody, { value: { id: img.id, alt: img.alt }, onChange: (v) => setAttributes({ img: { ...img, ...v } }), placeholder: __('Vyberte obrázek', 'brilo-blocks') }) }), _jsxs("div", { className: `i-hero__overlay --${contentPosition.replace(' ', '-')}`, children: [_jsx(RichText, { tagName: "span", className: "i-hero__overline u-text-editable", style: overline.color || overline.background
25
+ return (_jsxs(_Fragment, { children: [_jsxs(InspectorControls, { children: [_jsxs(PanelBody, { title: __('Obrázek', 'brilo-blocks'), children: [_jsx(ImagePickerControl, { value: { id: img.id, alt: img.alt }, onChange: (v) => setAttributes({ img: { ...img, ...v } }) }), _jsx(BaseControl, { label: __('Focal point (desktop)', 'brilo-blocks'), children: _jsx(AlignmentMatrixControl, { value: focalPoint.point, onChange: (v) => setAttributes({ focalPoint: { ...focalPoint, point: (v !== null && v !== void 0 ? v : 'center center') } }) }) }), _jsx(BaseControl, { label: __('Focal point (mobil)', 'brilo-blocks'), children: _jsx(AlignmentMatrixControl, { value: ((_e = (_a = focalPoint.sm) === null || _a === void 0 ? void 0 : _a.point) !== null && _e !== void 0 ? _e : 'center center'), onChange: (v) => setAttributes({ focalPoint: { ...focalPoint, sm: { point: (v !== null && v !== void 0 ? v : 'center center') } } }) }) })] }), _jsxs(PanelBody, { title: __('Overline', 'brilo-blocks'), children: [_jsx(BaseControl, { label: __('Barva overline pozadí', 'brilo-blocks'), children: _jsx(ColorPalette, { colors: paletteColors, value: overline.background || undefined, onChange: (value) => setAttributes({ overline: { ...overline, background: value !== null && value !== void 0 ? value : '' } }) }) }), _jsx(BaseControl, { label: __('Barva overline textu', 'brilo-blocks'), children: _jsx(ColorPalette, { colors: paletteColors, value: overline.color || undefined, onChange: (value) => setAttributes({ overline: { ...overline, color: value !== null && value !== void 0 ? value : '' } }) }) })] }), _jsxs(PanelBody, { title: __('Nadpis', 'brilo-blocks'), children: [_jsx(BaseControl, { label: __('Barva nadpisu', 'brilo-blocks'), children: _jsx(ColorPalette, { colors: paletteColors, value: titleColor || undefined, onChange: (v) => setAttributes({ titleColor: v !== null && v !== void 0 ? v : '' }) }) }), _jsx(ToggleGroupControl, { isBlock: true, label: __('Úroveň nadpisu položek', 'brilo-blocks'), value: String(headingLevel), onChange: (v) => setAttributes({ headingLevel: Number(v !== null && v !== void 0 ? v : HEADING_LEVELS[1]) }), children: HEADING_LEVELS.map((l) => (_jsx(ToggleGroupControlOption, { value: String(l), label: `H${l}` }, l))) })] }), _jsx(PanelBody, { title: __('Rozložení', 'brilo-blocks'), children: _jsx(BaseControl, { label: __('Pozice obsahu', 'brilo-blocks'), children: _jsx(AlignmentMatrixControl, { value: contentPosition, onChange: (v) => setAttributes({ contentPosition: v }) }) }) }), _jsxs(PanelBody, { title: __('Odkaz', 'brilo-blocks'), children: [_jsx(TextControl, { label: __('URL odkazu', 'brilo-blocks'), value: url.src, onChange: (v) => setAttributes({ url: { ...url, src: v } }) }), _jsx(ToggleControl, { label: __('Otevřít v novém okně', 'brilo-blocks'), checked: url.blank, onChange: (v) => setAttributes({ url: { ...url, blank: v } }) })] }), (_b = options.extraControls) === null || _b === void 0 ? void 0 : _b.call(options, props)] }), _jsxs("div", { ...blockProps, children: [_jsx("div", { className: "i-hero__image-wrap", children: _jsx(ImagePickerBody, { value: { id: img.id, alt: img.alt }, onChange: (v) => setAttributes({ img: { ...img, ...v } }), placeholder: __('Vyberte obrázek', 'brilo-blocks') }) }), _jsxs("div", { className: `i-hero__overlay --${contentPosition.replace(' ', '-')}`, children: [_jsx(RichText, { tagName: "span", className: "i-hero__overline u-text-editable", style: overline.color || overline.background
25
26
  ? {
26
27
  ...(overline.color ? { color: overline.color } : {}),
27
28
  ...(overline.background ? { backgroundColor: overline.background } : {}),
@@ -1,5 +1,5 @@
1
1
  import type { BlockConfiguration } from '@wordpress/blocks';
2
2
  import type { HeroItemAttributes, HeroItemOptions } from './types';
3
3
  export type { HeroItemAttributes, HeroItemOptions };
4
- export declare function createHeroItemBlock(options: HeroItemOptions): BlockConfiguration<HeroItemAttributes>;
4
+ export declare function createHeroItemBlock<TExtra extends Record<string, unknown> = Record<string, never>>(options: HeroItemOptions<TExtra>): BlockConfiguration<HeroItemAttributes & TExtra>;
5
5
  //# sourceMappingURL=factory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/blocks/hero/hero-item/factory.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,mBAAmB,CAAA;AAIzD,OAAO,KAAK,EAAC,kBAAkB,EAAE,eAAe,EAAC,MAAM,SAAS,CAAA;AAGhE,YAAY,EAAC,kBAAkB,EAAE,eAAe,EAAC,CAAA;AAEjD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,eAAe,GAAG,kBAAkB,CAAC,kBAAkB,CAAC,CAyCpG"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/blocks/hero/hero-item/factory.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,mBAAmB,CAAA;AAIzD,OAAO,KAAK,EAAC,kBAAkB,EAAE,eAAe,EAAC,MAAM,SAAS,CAAA;AAGhE,YAAY,EAAC,kBAAkB,EAAE,eAAe,EAAC,CAAA;AAEjD,wBAAgB,mBAAmB,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAChG,OAAO,EAAE,eAAe,CAAC,MAAM,CAAC,GAC/B,kBAAkB,CAAC,kBAAkB,GAAG,MAAM,CAAC,CA0CjD"}
@@ -40,6 +40,7 @@ export function createHeroItemBlock(options) {
40
40
  type: 'object',
41
41
  default: { point: 'center center', sm: { point: 'center center' } },
42
42
  },
43
+ ...options.extraAttributes,
43
44
  },
44
45
  edit: createHeroItemEdit(options),
45
46
  save: () => _jsx(InnerBlocks.Content, {}),
@@ -1,3 +1,5 @@
1
+ import type { BlockEditProps } from '@wordpress/blocks';
2
+ import type { ReactNode } from 'react';
1
3
  import type { BriloBlockType, Media, OptionArray } from '../../../types';
2
4
  import type { CONTENT_POSITIONS, HEADING_LEVELS } from './constants';
3
5
  export type ContentPosition = (typeof CONTENT_POSITIONS)[number]['value'];
@@ -38,7 +40,14 @@ export interface HeroItemAttributes extends Record<string, unknown> {
38
40
  url: HeroItemUrl;
39
41
  focalPoint: HeroItemFocalPoint;
40
42
  }
41
- export interface HeroItemOptions extends BriloBlockType {
43
+ export interface HeroItemOptions<TExtra extends Record<string, unknown> = Record<string, never>> extends BriloBlockType {
42
44
  contentPositions?: OptionArray;
45
+ extraAttributes?: {
46
+ [K in keyof TExtra]: {
47
+ type: string;
48
+ default: TExtra[K];
49
+ };
50
+ };
51
+ extraControls?: (props: BlockEditProps<HeroItemAttributes & TExtra>) => ReactNode;
43
52
  }
44
53
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/blocks/hero/hero-item/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,cAAc,EAAE,KAAK,EAAE,WAAW,EAAC,MAAM,SAAS,CAAA;AAC/D,OAAO,KAAK,EAAC,iBAAiB,EAAE,cAAc,EAAC,MAAM,aAAa,CAAA;AAElE,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAA;AACzE,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAA;AAE1D,MAAM,MAAM,WAAW,GAAG;IACxB,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,OAAO,CAAA;CACf,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAC,CAAA;IAC9D,GAAG,EAAE,KAAK,CAAA;IACV,YAAY,EAAE,MAAM,CAAA;IACpB,eAAe,EAAE,eAAe,CAAA;IAChC,GAAG,EAAE,WAAW,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,eAAe,CAAA;IACtB,EAAE,CAAC,EAAE;QACH,KAAK,EAAE,eAAe,CAAA;KACvB,CAAA;CACF,CAAA;AAED,MAAM,WAAW,kBAAmB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACjE,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAC,CAAA;IAC9D,GAAG,EAAE,KAAK,CAAA;IACV,YAAY,EAAE,MAAM,CAAA;IACpB,eAAe,EAAE,eAAe,CAAA;IAChC,GAAG,EAAE,WAAW,CAAA;IAChB,UAAU,EAAE,kBAAkB,CAAA;CAC/B;AAED,MAAM,WAAW,eAAgB,SAAQ,cAAc;IACrD,gBAAgB,CAAC,EAAE,WAAW,CAAA;CAC/B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/blocks/hero/hero-item/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,mBAAmB,CAAA;AACrD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,OAAO,CAAA;AACpC,OAAO,KAAK,EAAC,cAAc,EAAE,KAAK,EAAE,WAAW,EAAC,MAAM,SAAS,CAAA;AAC/D,OAAO,KAAK,EAAC,iBAAiB,EAAE,cAAc,EAAC,MAAM,aAAa,CAAA;AAElE,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAA;AACzE,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAA;AAE1D,MAAM,MAAM,WAAW,GAAG;IACxB,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,OAAO,CAAA;CACf,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAC,CAAA;IAC9D,GAAG,EAAE,KAAK,CAAA;IACV,YAAY,EAAE,MAAM,CAAA;IACpB,eAAe,EAAE,eAAe,CAAA;IAChC,GAAG,EAAE,WAAW,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,eAAe,CAAA;IACtB,EAAE,CAAC,EAAE;QACH,KAAK,EAAE,eAAe,CAAA;KACvB,CAAA;CACF,CAAA;AAED,MAAM,WAAW,kBAAmB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACjE,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAC,CAAA;IAC9D,GAAG,EAAE,KAAK,CAAA;IACV,YAAY,EAAE,MAAM,CAAA;IACpB,eAAe,EAAE,eAAe,CAAA;IAChC,GAAG,EAAE,WAAW,CAAA;IAChB,UAAU,EAAE,kBAAkB,CAAA;CAC/B;AAED,MAAM,WAAW,eAAe,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAE,SAAQ,cAAc;IACrH,gBAAgB,CAAC,EAAE,WAAW,CAAA;IAC9B,eAAe,CAAC,EAAE;SACf,CAAC,IAAI,MAAM,MAAM,GAAG;YACnB,IAAI,EAAE,MAAM,CAAA;YACZ,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;SACnB;KACF,CAAA;IACD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,CAAC,kBAAkB,GAAG,MAAM,CAAC,KAAK,SAAS,CAAA;CAClF"}
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/blocks/map/map-group/factory.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,mBAAmB,CAAA;AAGzD,OAAO,KAAK,EAAC,kBAAkB,EAAE,eAAe,EAAC,MAAM,SAAS,CAAA;AAEhE,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,SAAS,CAAA;AACxC,OAAO,EAAC,sBAAsB,EAAmB,MAAM,wCAAwC,CAAA;AAI/F,YAAY,EAAC,kBAAkB,EAAE,eAAe,EAAC,CAAA;AAEjD,wBAAgB,mBAAmB,CAAC,cAAc,SAAS,WAAW,GAAG,OAAO,sBAAsB,EACpG,OAAO,EAAE,eAAe,CAAC,cAAc,CAAC,GACvC,kBAAkB,CAAC,kBAAkB,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CA0DhE"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/blocks/map/map-group/factory.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,mBAAmB,CAAA;AAIzD,OAAO,KAAK,EAAC,kBAAkB,EAAE,eAAe,EAAC,MAAM,SAAS,CAAA;AAEhE,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,SAAS,CAAA;AACxC,OAAO,EAAC,sBAAsB,EAAmB,MAAM,wCAAwC,CAAA;AAI/F,YAAY,EAAC,kBAAkB,EAAE,eAAe,EAAC,CAAA;AAEjD,wBAAgB,mBAAmB,CAAC,cAAc,SAAS,WAAW,GAAG,OAAO,sBAAsB,EACpG,OAAO,EAAE,eAAe,CAAC,cAAc,CAAC,GACvC,kBAAkB,CAAC,kBAAkB,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CA0DhE"}
@@ -1,4 +1,5 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { withObjectDefaults } from '../../../utils/withObjectDefaults';
2
3
  import { __ } from '@wordpress/i18n';
3
4
  import { createMapGroupEdit } from './edit';
4
5
  import { MAP_TYPES } from './constants';
@@ -60,7 +61,7 @@ export function createMapGroupBlock(options) {
60
61
  default: '',
61
62
  },
62
63
  },
63
- edit: createMapGroupEdit(options),
64
+ edit: withObjectDefaults(createMapGroupEdit(options)),
64
65
  save: () => _jsx(InnerBlocks.Content, {}),
65
66
  };
66
67
  }
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/blocks/newsletter/newsletter-form/factory.tsx"],"names":[],"mappings":"AAAA,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,CAkDtH"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/blocks/newsletter/newsletter-form/factory.tsx"],"names":[],"mappings":"AAAA,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,CAkDtH"}
@@ -1,3 +1,4 @@
1
+ import { withObjectDefaults } from '../../../utils/withObjectDefaults';
1
2
  import { __ } from '@wordpress/i18n';
2
3
  import { DEFAULT_HEADING_STYLES, NEWSLETTER_LEVELS } from './constants';
3
4
  import { createNewsletterFormEdit } from './edit';
@@ -48,7 +49,7 @@ export function createNewsletterFormBlock(options) {
48
49
  },
49
50
  },
50
51
  },
51
- edit: createNewsletterFormEdit(options),
52
+ edit: withObjectDefaults(createNewsletterFormEdit(options)),
52
53
  save: () => null,
53
54
  };
54
55
  }
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/blocks/testimonial/testimonial-item/factory.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,mBAAmB,CAAA;AAGzD,OAAO,KAAK,EAAC,yBAAyB,EAAE,sBAAsB,EAAC,MAAM,SAAS,CAAA;AAE9E,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,sBAAsB,GAAG;IAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAAC,GACpD,kBAAkB,CAAC,yBAAyB,CAAC,CA2B/C"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/blocks/testimonial/testimonial-item/factory.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,mBAAmB,CAAA;AAGzD,OAAO,KAAK,EAAC,yBAAyB,EAAE,sBAAsB,EAAC,MAAM,SAAS,CAAA;AAE9E,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,sBAAsB,GAAG;IAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAAC,GACpD,kBAAkB,CAAC,yBAAyB,CAAC,CA4B/C"}
@@ -5,7 +5,8 @@ export function createTestimonialItemBlock(options) {
5
5
  return {
6
6
  name: options.name,
7
7
  title: (_a = options.title) !== null && _a !== void 0 ? _a : __('Reference - položka', 'brilo-blocks'),
8
- category: (_b = options.category) !== null && _b !== void 0 ? _b : 'brilo',
8
+ category: (_b = options.category) !== null && _b !== void 0 ? _b : 'layout',
9
+ ...(options.parent && { parent: options.parent }),
9
10
  supports: { html: false, customClassName: false },
10
11
  attributes: {
11
12
  title: {
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/blocks/text-and-form/text-and-form-text-column/factory.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,mBAAmB,CAAA;AAEzD,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,SAAS,CAAA;AACxC,OAAO,EAAC,qBAAqB,EAAE,sBAAsB,EAAiB,MAAM,aAAa,CAAA;AAEzF,OAAO,KAAK,EAAC,+BAA+B,EAAE,4BAA4B,EAAC,MAAM,SAAS,CAAA;AAE1F,YAAY,EAAC,+BAA+B,EAAE,4BAA4B,EAAC,CAAA;AAE3E,wBAAgB,gCAAgC,CAC9C,cAAc,SAAS,WAAW,GAAG,OAAO,sBAAsB,EAClE,aAAa,SAAS,WAAW,GAAG,OAAO,qBAAqB,EAEhE,OAAO,EAAE,4BAA4B,CAAC,cAAc,EAAE,aAAa,CAAC,GACnE,kBAAkB,CAAC,+BAA+B,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAyBtH"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/blocks/text-and-form/text-and-form-text-column/factory.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,mBAAmB,CAAA;AAEzD,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,SAAS,CAAA;AACxC,OAAO,EAAC,qBAAqB,EAAE,sBAAsB,EAAiB,MAAM,aAAa,CAAA;AAEzF,OAAO,KAAK,EAAC,+BAA+B,EAAE,4BAA4B,EAAC,MAAM,SAAS,CAAA;AAE1F,YAAY,EAAC,+BAA+B,EAAE,4BAA4B,EAAC,CAAA;AAE3E,wBAAgB,gCAAgC,CAC9C,cAAc,SAAS,WAAW,GAAG,OAAO,sBAAsB,EAClE,aAAa,SAAS,WAAW,GAAG,OAAO,qBAAqB,EAEhE,OAAO,EAAE,4BAA4B,CAAC,cAAc,EAAE,aAAa,CAAC,GACnE,kBAAkB,CAAC,+BAA+B,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAyBtH"}
@@ -1,5 +1,6 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { InnerBlocks } from '@wordpress/block-editor';
3
+ import { withObjectDefaults } from '../../../utils/withObjectDefaults';
3
4
  import { __ } from '@wordpress/i18n';
4
5
  import { DEFAULT_CONTENT_SIZES, DEFAULT_HEADING_STYLES, HEADING_LEVELS } from './constants';
5
6
  import { createTextAndFormTextColumnEdit } from './edit';
@@ -26,7 +27,7 @@ export function createTextAndFormTextColumnBlock(options) {
26
27
  },
27
28
  content: { type: 'object', default: { size: (_j = (_b = contentSizes[1]) === null || _b === void 0 ? void 0 : _b.value) !== null && _j !== void 0 ? _j : contentSizes[0].value } },
28
29
  },
29
- edit: createTextAndFormTextColumnEdit(options),
30
+ edit: withObjectDefaults(createTextAndFormTextColumnEdit(options)),
30
31
  save: () => _jsx(InnerBlocks.Content, {}),
31
32
  };
32
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/blocks/usp/usp-group/factory.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,mBAAmB,CAAA;AAGzD,OAAO,KAAK,EAAC,WAAW,EAAE,WAAW,EAAC,MAAM,SAAS,CAAA;AACrD,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,8BAA8B,EAG9B,eAAe,EAEhB,MAAM,aAAa,CAAA;AAGpB,OAAO,KAAK,EAAC,kBAAkB,EAAE,eAAe,EAAC,MAAM,SAAS,CAAA;AAEhE,YAAY,EAAC,kBAAkB,EAAE,eAAe,EAAC,CAAA;AAEjD,wBAAgB,mBAAmB,CACjC,QAAQ,SAAS,WAAW,GAAG,OAAO,eAAe,EACrD,WAAW,SAAS,WAAW,GAAG,OAAO,kBAAkB,EAC3D,cAAc,SAAS,WAAW,GAAG,OAAO,sBAAsB,EAClE,QAAQ,SAAS,WAAW,GAAG,OAAO,eAAe,EACrD,qBAAqB,SAAS,WAAW,GAAG,OAAO,8BAA8B,EACjF,WAAW,SAAS,WAAW,GAAG,OAAO,kBAAkB,EAC3D,aAAa,SAAS,WAAW,GAAG,OAAO,qBAAqB,EAEhE,OAAO,EAAE,eAAe,CAAC,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,qBAAqB,EAAE,WAAW,EAAE,aAAa,CAAC,GAC3H,kBAAkB,CACnB,kBAAkB,CAChB,QAAQ,CAAC,MAAM,CAAC,EAChB,WAAW,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAC5B,cAAc,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAC/B,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EACzB,qBAAqB,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EACtC,WAAW,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAC5B,aAAa,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAC/B,CACF,CAkEA"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/blocks/usp/usp-group/factory.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,mBAAmB,CAAA;AAGzD,OAAO,KAAK,EAAC,WAAW,EAAE,WAAW,EAAC,MAAM,SAAS,CAAA;AACrD,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,8BAA8B,EAG9B,eAAe,EAEhB,MAAM,aAAa,CAAA;AAGpB,OAAO,KAAK,EAAC,kBAAkB,EAAE,eAAe,EAAC,MAAM,SAAS,CAAA;AAEhE,YAAY,EAAC,kBAAkB,EAAE,eAAe,EAAC,CAAA;AAEjD,wBAAgB,mBAAmB,CACjC,QAAQ,SAAS,WAAW,GAAG,OAAO,eAAe,EACrD,WAAW,SAAS,WAAW,GAAG,OAAO,kBAAkB,EAC3D,cAAc,SAAS,WAAW,GAAG,OAAO,sBAAsB,EAClE,QAAQ,SAAS,WAAW,GAAG,OAAO,eAAe,EACrD,qBAAqB,SAAS,WAAW,GAAG,OAAO,8BAA8B,EACjF,WAAW,SAAS,WAAW,GAAG,OAAO,kBAAkB,EAC3D,aAAa,SAAS,WAAW,GAAG,OAAO,qBAAqB,EAEhE,OAAO,EAAE,eAAe,CAAC,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,qBAAqB,EAAE,WAAW,EAAE,aAAa,CAAC,GAC3H,kBAAkB,CACnB,kBAAkB,CAChB,QAAQ,CAAC,MAAM,CAAC,EAChB,WAAW,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAC5B,cAAc,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAC/B,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EACzB,qBAAqB,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EACtC,WAAW,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAC5B,aAAa,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAC/B,CACF,CAkEA"}
@@ -1,5 +1,6 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { InnerBlocks } from '@wordpress/block-editor';
3
+ import { withObjectDefaults } from '../../../utils/withObjectDefaults';
3
4
  import { __ } from '@wordpress/i18n';
4
5
  import { ITEM_SPACING_ATTRIBUTE } from '../../../components/ItemSpacingControl';
5
6
  import { DEFAULT_ALIGNMENTS, DEFAULT_COLUMNS, DEFAULT_CONTENT_SIZES, DEFAULT_DIRECTIONS, DEFAULT_HEADING_STYLES, DEFAULT_ICON_BACKGROUND_SHAPES, DEFAULT_ICON_BACKGROUND_SIZE, DEFAULT_ICON_SIZE, DEFAULT_SHADOWS, HEADING_LEVELS, } from './constants';
@@ -59,7 +60,7 @@ export function createUspGroupBlock(options) {
59
60
  },
60
61
  ...ITEM_SPACING_ATTRIBUTE,
61
62
  },
62
- edit: createUspGroupEdit(options),
63
+ edit: withObjectDefaults(createUspGroupEdit(options)),
63
64
  save: () => _jsx(InnerBlocks.Content, {}),
64
65
  };
65
66
  }
@@ -0,0 +1,12 @@
1
+ import type { ComponentType } from 'react';
2
+ type PlainObject = Record<string, unknown>;
3
+ /**
4
+ * Block markup can carry partial object attributes (e.g. generated content) and WP does not deep-merge
5
+ * them with the attribute default, so edit code reading nested keys would crash. Fills the missing
6
+ * nested keys from the registered defaults before the edit component reads them.
7
+ */
8
+ export declare function withObjectDefaults<Props extends {
9
+ attributes: PlainObject;
10
+ }>(Edit: ComponentType<Props>): (props: Props) => import("react").JSX.Element;
11
+ export {};
12
+ //# sourceMappingURL=withObjectDefaults.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"withObjectDefaults.d.ts","sourceRoot":"","sources":["../../src/utils/withObjectDefaults.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,OAAO,CAAA;AAExC,KAAK,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAa1C;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,SAAS;IAAC,UAAU,EAAE,WAAW,CAAA;CAAC,EAAE,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,WACtD,KAAK,iCAapD"}
@@ -0,0 +1,37 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { getBlockType } from '@wordpress/blocks';
3
+ import { useMemo } from '@wordpress/element';
4
+ const isPlainObject = (value) => typeof value === 'object' && value !== null && !Array.isArray(value);
5
+ // keys present in the value win, missing ones are taken from the fallback (recursively)
6
+ function mergeMissing(fallback, value) {
7
+ if (value === undefined)
8
+ return fallback;
9
+ if (!isPlainObject(fallback) || !isPlainObject(value))
10
+ return value;
11
+ const merged = { ...value };
12
+ for (const [key, fallbackValue] of Object.entries(fallback))
13
+ merged[key] = mergeMissing(fallbackValue, value[key]);
14
+ return merged;
15
+ }
16
+ /**
17
+ * Block markup can carry partial object attributes (e.g. generated content) and WP does not deep-merge
18
+ * them with the attribute default, so edit code reading nested keys would crash. Fills the missing
19
+ * nested keys from the registered defaults before the edit component reads them.
20
+ */
21
+ export function withObjectDefaults(Edit) {
22
+ return function EditWithObjectDefaults(props) {
23
+ const { name } = props;
24
+ const attributes = useMemo(() => {
25
+ var _a;
26
+ var _b;
27
+ const definitions = (_b = (name ? (_a = getBlockType(name)) === null || _a === void 0 ? void 0 : _a.attributes : undefined)) !== null && _b !== void 0 ? _b : {};
28
+ const filled = { ...props.attributes };
29
+ for (const [key, definition] of Object.entries(definitions)) {
30
+ if (definition.type === 'object' && isPlainObject(definition.default))
31
+ filled[key] = mergeMissing(definition.default, filled[key]);
32
+ }
33
+ return filled;
34
+ }, [name, props.attributes]);
35
+ return _jsx(Edit, { ...props, attributes: attributes });
36
+ };
37
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@brilo/base-blocks",
3
- "version": "0.1.54",
3
+ "version": "0.1.56",
4
4
  "author": "Brilo",
5
5
  "main": "./build/index.js",
6
6
  "types": "./build/index.d.ts",
@@ -1,5 +1,5 @@
1
- import {RichText, useBlockProps, useInnerBlocksProps} from '@wordpress/block-editor'
2
- import {BaseControl} from '@wordpress/components'
1
+ import {InspectorControls, RichText, useBlockProps, useInnerBlocksProps} from '@wordpress/block-editor'
2
+ import {BaseControl, PanelBody, ToggleControl} from '@wordpress/components'
3
3
  import {Icon, chevronDown} from '@wordpress/icons'
4
4
  import {__} from '@wordpress/i18n'
5
5
  import clsx from 'clsx'
@@ -13,13 +13,22 @@ export function createAccordionItemEdit(_options: AccordionItemOptions) {
13
13
  attributes: AccordionItemAttributes
14
14
  setAttributes: (a: Partial<AccordionItemAttributes>) => void
15
15
  }) {
16
- const {title} = attributes
16
+ const {title, open} = attributes
17
17
 
18
18
  const blockProps = useBlockProps({className: clsx('accordion-item')})
19
19
  const innerBlocksProps = useInnerBlocksProps({})
20
20
 
21
21
  return (
22
22
  <>
23
+ <InspectorControls>
24
+ <PanelBody title={__('Nastavení', 'brilo-blocks')}>
25
+ <ToggleControl
26
+ label={__('Otevřeno ve výchozím stavu', 'brilo-blocks')}
27
+ checked={open}
28
+ onChange={(v) => setAttributes({open: v})}
29
+ />
30
+ </PanelBody>
31
+ </InspectorControls>
23
32
  <div {...blockProps}>
24
33
  <header className="accordion-item__header flex gap-2">
25
34
  <RichText
@@ -17,6 +17,7 @@ export function createAccordionItemBlock(options: AccordionItemOptions): BlockCo
17
17
  supports: {html: false, customClassName: false},
18
18
  attributes: {
19
19
  title: {type: 'string', default: ''},
20
+ open: {type: 'boolean', default: false},
20
21
  },
21
22
  edit: createAccordionItemEdit(options),
22
23
  save: () => <InnerBlocks.Content />,
@@ -2,6 +2,7 @@ import type {BriloBlockType} from '~/types'
2
2
 
3
3
  export interface AccordionItemAttributes extends Record<string, unknown> {
4
4
  title: string
5
+ open: boolean
5
6
  }
6
7
 
7
8
  export interface AccordionItemOptions extends BriloBlockType {}
@@ -77,4 +77,15 @@
77
77
  .i-button__label {
78
78
  pointer-events: auto;
79
79
  }
80
+
81
+ .i-button__icon .i-item-icon {
82
+ width: 100%;
83
+ height: auto;
84
+ background: none;
85
+
86
+ img {
87
+ width: 100%;
88
+ height: auto;
89
+ }
90
+ }
80
91
  }
@@ -1,4 +1,5 @@
1
1
  import type {BlockConfiguration} from '@wordpress/blocks'
2
+ import {withObjectDefaults} from '~/utils/withObjectDefaults'
2
3
  import {__} from '@wordpress/i18n'
3
4
  import {DEFAULT_ALIGNMENTS, DEFAULT_ICON_BACKGROUND_SHAPES, DEFAULT_ICON_BACKGROUND_SIZE, DEFAULT_ICON_SIZE, ICON_TYPES} from './constants'
4
5
  import {createBasicIconEdit} from './edit'
@@ -36,7 +37,7 @@ export function createBasicIconBlock(options: BasicIconOptions): BlockConfigurat
36
37
  },
37
38
  },
38
39
  },
39
- edit: createBasicIconEdit(options),
40
+ edit: withObjectDefaults(createBasicIconEdit(options)),
40
41
  save: () => null,
41
42
  } as unknown as BlockConfiguration<BasicIconAttributes>
42
43
  }
@@ -1,4 +1,5 @@
1
1
  import {InnerBlocks} from '@wordpress/block-editor'
2
+ import {withObjectDefaults} from '~/utils/withObjectDefaults'
2
3
  import type {BlockConfiguration} from '@wordpress/blocks'
3
4
  import {__} from '@wordpress/i18n'
4
5
  import {ITEM_SPACING_ATTRIBUTE} from '~/components/ItemSpacingControl'
@@ -55,7 +56,7 @@ export function createFaqGroupBlock<TIconVariants extends OptionArray = typeof D
55
56
  icon: options.icon ?? 'editor-help',
56
57
  supports: {html: false, customClassName: false},
57
58
  attributes,
58
- edit: createFaqGroupEdit(options as unknown as FaqGroupOptions),
59
+ edit: withObjectDefaults(createFaqGroupEdit(options as unknown as FaqGroupOptions)),
59
60
  save: () => <InnerBlocks.Content />,
60
61
  } as unknown as BlockConfiguration<FaqGroupAttributes<TIconVariants[number]['value']>>
61
62
  }
@@ -1,4 +1,5 @@
1
1
  import {InnerBlocks} from '@wordpress/block-editor'
2
+ import {withObjectDefaults} from '~/utils/withObjectDefaults'
2
3
  import type {BlockConfiguration} from '@wordpress/blocks'
3
4
  import {__} from '@wordpress/i18n'
4
5
  import type {OptionArray, StringArray} from '~/types'
@@ -58,7 +59,7 @@ export function createBannerGroupBlock<
58
59
  backgroundColor: {type: 'string', default: ''},
59
60
  textColor: {type: 'string', default: ''},
60
61
  },
61
- edit: createBannerGroupEdit(options as unknown as BannerGroupOptions),
62
+ edit: withObjectDefaults(createBannerGroupEdit(options as unknown as BannerGroupOptions)),
62
63
  save: () => <InnerBlocks.Content />,
63
64
  } as unknown as BlockConfiguration<BannerGroupAttributes<TVariants[number]['value'], THeadingStyles[number]>>
64
65
  }