@brilo/base-blocks 0.1.7 → 0.1.9

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 (213) hide show
  1. package/build/blocks/column/column-item/constants.d.ts +13 -0
  2. package/build/blocks/column/column-item/constants.d.ts.map +1 -1
  3. package/build/blocks/column/column-item/constants.js +19 -0
  4. package/build/blocks/column/column-item/edit.d.ts.map +1 -1
  5. package/build/blocks/column/column-item/edit.js +6 -6
  6. package/build/blocks/column/column-item/factory.d.ts.map +1 -1
  7. package/build/blocks/column/column-item/factory.js +5 -0
  8. package/build/blocks/column/column-item/index.d.ts.map +1 -1
  9. package/build/blocks/column/column-item/index.js +11 -1
  10. package/build/blocks/column/column-item/types.d.ts +1 -0
  11. package/build/blocks/column/column-item/types.d.ts.map +1 -1
  12. package/build/blocks/contact/contact-item/factory.d.ts +7 -2
  13. package/build/blocks/contact/contact-item/factory.d.ts.map +1 -1
  14. package/build/blocks/contact/contact-item/factory.js +2 -2
  15. package/build/blocks/core/basic-button/edit.d.ts.map +1 -1
  16. package/build/blocks/core/basic-button/edit.js +12 -5
  17. package/build/blocks/core/basic-button/factory.d.ts.map +1 -1
  18. package/build/blocks/core/basic-button/factory.js +4 -0
  19. package/build/blocks/core/basic-button/index.d.ts.map +1 -1
  20. package/build/blocks/core/basic-button/index.js +2 -0
  21. package/build/blocks/core/basic-button/types.d.ts +12 -1
  22. package/build/blocks/core/basic-button/types.d.ts.map +1 -1
  23. package/build/blocks/gallery/gallery-group/constants.d.ts +21 -0
  24. package/build/blocks/gallery/gallery-group/constants.d.ts.map +1 -0
  25. package/build/blocks/gallery/gallery-group/constants.js +9 -0
  26. package/build/blocks/gallery/gallery-group/edit.d.ts +7 -0
  27. package/build/blocks/gallery/gallery-group/edit.d.ts.map +1 -0
  28. package/build/blocks/gallery/gallery-group/edit.js +46 -0
  29. package/build/blocks/gallery/gallery-group/factory.d.ts +5 -0
  30. package/build/blocks/gallery/gallery-group/factory.d.ts.map +1 -0
  31. package/build/blocks/gallery/gallery-group/factory.js +33 -0
  32. package/build/blocks/gallery/gallery-group/index.d.ts +5 -0
  33. package/build/blocks/gallery/gallery-group/index.d.ts.map +1 -0
  34. package/build/blocks/gallery/gallery-group/index.js +7 -0
  35. package/build/blocks/gallery/gallery-group/types.d.ts +15 -0
  36. package/build/blocks/gallery/gallery-group/types.d.ts.map +1 -0
  37. package/build/blocks/gallery/gallery-group/types.js +1 -0
  38. package/build/blocks/gallery/gallery-item/edit.d.ts +6 -0
  39. package/build/blocks/gallery/gallery-item/edit.d.ts.map +1 -0
  40. package/build/blocks/gallery/gallery-item/edit.js +13 -0
  41. package/build/blocks/gallery/gallery-item/factory.d.ts +5 -0
  42. package/build/blocks/gallery/gallery-item/factory.d.ts.map +1 -0
  43. package/build/blocks/gallery/gallery-item/factory.js +22 -0
  44. package/build/blocks/gallery/gallery-item/index.d.ts +5 -0
  45. package/build/blocks/gallery/gallery-item/index.d.ts.map +1 -0
  46. package/build/blocks/gallery/gallery-item/index.js +6 -0
  47. package/build/blocks/gallery/gallery-item/types.d.ts +7 -0
  48. package/build/blocks/gallery/gallery-item/types.d.ts.map +1 -0
  49. package/build/blocks/gallery/gallery-item/types.js +1 -0
  50. package/build/blocks/groups/content-group/factory.d.ts +2 -2
  51. package/build/blocks/groups/content-group/factory.d.ts.map +1 -1
  52. package/build/blocks/groups/content-group/factory.js +8 -8
  53. package/build/blocks/groups/content-group/icon.d.ts.map +1 -1
  54. package/build/blocks/link/link-item/constants.d.ts +11 -0
  55. package/build/blocks/link/link-item/constants.d.ts.map +1 -0
  56. package/build/blocks/link/link-item/constants.js +6 -0
  57. package/build/blocks/link/link-item/edit.d.ts +6 -0
  58. package/build/blocks/link/link-item/edit.d.ts.map +1 -0
  59. package/build/blocks/link/link-item/edit.js +25 -0
  60. package/build/blocks/link/link-item/factory.d.ts +4 -0
  61. package/build/blocks/link/link-item/factory.d.ts.map +1 -0
  62. package/build/blocks/link/link-item/factory.js +28 -0
  63. package/build/blocks/link/link-item/icon.d.ts +2 -0
  64. package/build/blocks/link/link-item/icon.d.ts.map +1 -0
  65. package/build/blocks/link/link-item/icon.js +2 -0
  66. package/build/blocks/link/link-item/index.d.ts +5 -0
  67. package/build/blocks/link/link-item/index.d.ts.map +1 -0
  68. package/build/blocks/link/link-item/index.js +6 -0
  69. package/build/blocks/link/link-item/types.d.ts +26 -0
  70. package/build/blocks/link/link-item/types.d.ts.map +1 -0
  71. package/build/blocks/link/link-item/types.js +1 -0
  72. package/build/blocks/map/map-group/constants.d.ts +1 -0
  73. package/build/blocks/map/map-group/constants.d.ts.map +1 -1
  74. package/build/blocks/map/map-group/constants.js +2 -0
  75. package/build/blocks/map/map-group/edit.d.ts.map +1 -1
  76. package/build/blocks/map/map-group/edit.js +19 -11
  77. package/build/blocks/map/map-group/factory.d.ts +3 -1
  78. package/build/blocks/map/map-group/factory.d.ts.map +1 -1
  79. package/build/blocks/map/map-group/factory.js +24 -5
  80. package/build/blocks/map/map-group/index.d.ts.map +1 -1
  81. package/build/blocks/map/map-group/index.js +1 -0
  82. package/build/blocks/map/map-group/types.d.ts +18 -4
  83. package/build/blocks/map/map-group/types.d.ts.map +1 -1
  84. package/build/blocks/person/person-group/constants.d.ts +3 -0
  85. package/build/blocks/person/person-group/constants.d.ts.map +1 -0
  86. package/build/blocks/person/person-group/constants.js +2 -0
  87. package/build/blocks/person/person-group/edit.d.ts +6 -0
  88. package/build/blocks/person/person-group/edit.d.ts.map +1 -0
  89. package/build/blocks/person/person-group/edit.js +23 -0
  90. package/build/blocks/person/person-group/factory.d.ts +5 -0
  91. package/build/blocks/person/person-group/factory.d.ts.map +1 -0
  92. package/build/blocks/person/person-group/factory.js +32 -0
  93. package/build/blocks/person/person-group/icon.d.ts +2 -0
  94. package/build/blocks/person/person-group/icon.d.ts.map +1 -0
  95. package/build/blocks/person/person-group/icon.js +2 -0
  96. package/build/blocks/person/person-group/index.d.ts +5 -0
  97. package/build/blocks/person/person-group/index.d.ts.map +1 -0
  98. package/build/blocks/person/person-group/index.js +11 -0
  99. package/build/blocks/person/person-group/types.d.ts +8 -0
  100. package/build/blocks/person/person-group/types.d.ts.map +1 -0
  101. package/build/blocks/person/person-group/types.js +1 -0
  102. package/build/blocks/person/person-item/constants.d.ts +2 -0
  103. package/build/blocks/person/person-item/constants.d.ts.map +1 -0
  104. package/build/blocks/person/person-item/constants.js +1 -0
  105. package/build/blocks/person/person-item/edit.d.ts +6 -0
  106. package/build/blocks/person/person-item/edit.d.ts.map +1 -0
  107. package/build/blocks/person/person-item/edit.js +23 -0
  108. package/build/blocks/person/person-item/factory.d.ts +5 -0
  109. package/build/blocks/person/person-item/factory.d.ts.map +1 -0
  110. package/build/blocks/person/person-item/factory.js +26 -0
  111. package/build/blocks/person/person-item/icon.d.ts +2 -0
  112. package/build/blocks/person/person-item/icon.d.ts.map +1 -0
  113. package/build/blocks/person/person-item/icon.js +3 -0
  114. package/build/blocks/person/person-item/index.d.ts +5 -0
  115. package/build/blocks/person/person-item/index.d.ts.map +1 -0
  116. package/build/blocks/person/person-item/index.js +6 -0
  117. package/build/blocks/person/person-item/types.d.ts +12 -0
  118. package/build/blocks/person/person-item/types.d.ts.map +1 -0
  119. package/build/blocks/person/person-item/types.js +1 -0
  120. package/build/blocks/sections/base-section/attributes.d.ts +5 -1
  121. package/build/blocks/sections/base-section/attributes.d.ts.map +1 -1
  122. package/build/blocks/sections/base-section/attributes.js +5 -1
  123. package/build/blocks/sections/base-section/constants.d.ts +0 -16
  124. package/build/blocks/sections/base-section/constants.d.ts.map +1 -1
  125. package/build/blocks/sections/base-section/constants.js +0 -7
  126. package/build/blocks/sections/base-section/controls.d.ts.map +1 -1
  127. package/build/blocks/sections/base-section/controls.js +6 -3
  128. package/build/blocks/sections/base-section/edit.d.ts.map +1 -1
  129. package/build/blocks/sections/base-section/edit.js +8 -1
  130. package/build/blocks/sections/base-section/factory.d.ts.map +1 -1
  131. package/build/blocks/sections/base-section/factory.js +3 -8
  132. package/build/blocks/sections/base-section/index.d.ts +1 -1
  133. package/build/blocks/sections/base-section/index.d.ts.map +1 -1
  134. package/build/blocks/sections/base-section/index.js +1 -1
  135. package/build/blocks/sections/base-section/types.d.ts +1 -0
  136. package/build/blocks/sections/base-section/types.d.ts.map +1 -1
  137. package/build/components/ImagePicker/ImagePicker.d.ts +5 -0
  138. package/build/components/ImagePicker/ImagePicker.d.ts.map +1 -1
  139. package/build/components/ImagePicker/ImagePicker.js +18 -11
  140. package/build/hooks/useTenantColorPalette.d.ts +9 -0
  141. package/build/hooks/useTenantColorPalette.d.ts.map +1 -0
  142. package/build/hooks/useTenantColorPalette.js +12 -0
  143. package/build/index.d.ts +11 -1
  144. package/build/index.d.ts.map +1 -1
  145. package/build/index.js +6 -1
  146. package/build/types.d.ts +2 -0
  147. package/build/types.d.ts.map +1 -1
  148. package/package.json +2 -1
  149. package/src/blocks/column/column-item/constants.ts +20 -0
  150. package/src/blocks/column/column-item/edit.tsx +20 -4
  151. package/src/blocks/column/column-item/factory.tsx +5 -0
  152. package/src/blocks/column/column-item/index.ts +11 -1
  153. package/src/blocks/column/column-item/types.ts +1 -0
  154. package/src/blocks/contact/contact-item/editor.scss +4 -0
  155. package/src/blocks/contact/contact-item/factory.tsx +13 -5
  156. package/src/blocks/core/basic-button/edit.tsx +50 -1
  157. package/src/blocks/core/basic-button/factory.tsx +4 -0
  158. package/src/blocks/core/basic-button/index.ts +2 -0
  159. package/src/blocks/core/basic-button/types.ts +13 -1
  160. package/src/blocks/gallery/gallery-group/constants.ts +10 -0
  161. package/src/blocks/gallery/gallery-group/edit.tsx +117 -0
  162. package/src/blocks/gallery/gallery-group/editor.scss +18 -0
  163. package/src/blocks/gallery/gallery-group/factory.tsx +36 -0
  164. package/src/blocks/gallery/gallery-group/index.ts +11 -0
  165. package/src/blocks/gallery/gallery-group/types.ts +21 -0
  166. package/src/blocks/gallery/gallery-item/edit.tsx +46 -0
  167. package/src/blocks/gallery/gallery-item/editor.scss +8 -0
  168. package/src/blocks/gallery/gallery-item/factory.tsx +26 -0
  169. package/src/blocks/gallery/gallery-item/index.ts +10 -0
  170. package/src/blocks/gallery/gallery-item/types.ts +7 -0
  171. package/src/blocks/groups/content-group/factory.tsx +11 -11
  172. package/src/blocks/groups/content-group/icon.tsx +1 -1
  173. package/src/blocks/link/link-item/constants.ts +7 -0
  174. package/src/blocks/link/link-item/edit.tsx +124 -0
  175. package/src/blocks/link/link-item/editor.scss +11 -0
  176. package/src/blocks/link/link-item/factory.tsx +30 -0
  177. package/src/blocks/link/link-item/icon.tsx +6 -0
  178. package/src/blocks/link/link-item/index.ts +10 -0
  179. package/src/blocks/link/link-item/types.ts +25 -0
  180. package/src/blocks/map/map-group/constants.ts +3 -0
  181. package/src/blocks/map/map-group/edit.tsx +75 -5
  182. package/src/blocks/map/map-group/editor.scss +7 -0
  183. package/src/blocks/map/map-group/factory.tsx +26 -4
  184. package/src/blocks/map/map-group/index.ts +1 -0
  185. package/src/blocks/map/map-group/types.ts +16 -4
  186. package/src/blocks/person/person-group/constants.ts +2 -0
  187. package/src/blocks/person/person-group/edit.tsx +65 -0
  188. package/src/blocks/person/person-group/editor.scss +0 -0
  189. package/src/blocks/person/person-group/factory.tsx +35 -0
  190. package/src/blocks/person/person-group/icon.tsx +14 -0
  191. package/src/blocks/person/person-group/index.ts +15 -0
  192. package/src/blocks/person/person-group/types.ts +8 -0
  193. package/src/blocks/person/person-item/constants.ts +4 -0
  194. package/src/blocks/person/person-item/edit.tsx +103 -0
  195. package/src/blocks/person/person-item/editor.scss +35 -0
  196. package/src/blocks/person/person-item/factory.tsx +29 -0
  197. package/src/blocks/person/person-item/icon.tsx +7 -0
  198. package/src/blocks/person/person-item/index.ts +10 -0
  199. package/src/blocks/person/person-item/types.ts +12 -0
  200. package/src/blocks/responsive-grid/responsive-grid-item/editor.scss +9 -0
  201. package/src/blocks/sections/base-section/attributes.ts +5 -1
  202. package/src/blocks/sections/base-section/constants.ts +0 -8
  203. package/src/blocks/sections/base-section/controls.tsx +18 -8
  204. package/src/blocks/sections/base-section/edit.tsx +8 -1
  205. package/src/blocks/sections/base-section/factory.tsx +3 -7
  206. package/src/blocks/sections/base-section/index.ts +1 -1
  207. package/src/blocks/sections/base-section/types.ts +1 -0
  208. package/src/components/ImagePicker/ImagePicker.tsx +22 -10
  209. package/src/components/ImagePicker/editor.scss +2 -2
  210. package/src/editor.scss +6 -0
  211. package/src/hooks/useTenantColorPalette.ts +21 -0
  212. package/src/index.ts +10 -1
  213. package/src/types.ts +3 -0
@@ -1,4 +1,4 @@
1
- import type { BlockConfiguration } from "@wordpress/blocks";
2
- import type { ContentGroupAttributes, ContentGroupOptions } from "./types";
1
+ import type { BlockConfiguration } from '@wordpress/blocks';
2
+ import type { ContentGroupAttributes, ContentGroupOptions } from './types';
3
3
  export declare function createContentGroupBlock(options: ContentGroupOptions): BlockConfiguration<ContentGroupAttributes>;
4
4
  //# sourceMappingURL=factory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/blocks/groups/content-group/factory.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,mBAAmB,CAAC;AAG1D,OAAO,KAAK,EAAC,sBAAsB,EAAE,mBAAmB,EAAC,MAAM,SAAS,CAAC;AAGzE,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,mBAAmB,GAAG,kBAAkB,CAAC,sBAAsB,CAAC,CAkBhH"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/blocks/groups/content-group/factory.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,mBAAmB,CAAA;AAGzD,OAAO,KAAK,EAAC,sBAAsB,EAAE,mBAAmB,EAAC,MAAM,SAAS,CAAA;AAGxE,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,mBAAmB,GAAG,kBAAkB,CAAC,sBAAsB,CAAC,CAkBhH"}
@@ -1,22 +1,22 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { InnerBlocks } from "@wordpress/block-editor";
3
- import { __ } from "@wordpress/i18n";
4
- import { createContentGroupEdit } from "./edit";
5
- import { icon as defaultIcon } from "./icon";
2
+ import { InnerBlocks } from '@wordpress/block-editor';
3
+ import { __ } from '@wordpress/i18n';
4
+ import { createContentGroupEdit } from './edit';
5
+ import { icon as defaultIcon } from './icon';
6
6
  export function createContentGroupBlock(options) {
7
7
  var _a, _b, _c;
8
8
  return {
9
9
  name: options.name,
10
- title: (_a = options.title) !== null && _a !== void 0 ? _a : __("Obsahová skupina", "brilo-blocks"),
10
+ title: (_a = options.title) !== null && _a !== void 0 ? _a : __('Obsahová skupina', 'brilo-blocks'),
11
11
  description: options.description,
12
- category: (_b = options.category) !== null && _b !== void 0 ? _b : "layout",
12
+ category: (_b = options.category) !== null && _b !== void 0 ? _b : 'layout',
13
13
  icon: (_c = options.icon) !== null && _c !== void 0 ? _c : { src: defaultIcon },
14
14
  ...(options.parent && { parent: options.parent }),
15
15
  supports: { html: false, customClassName: false },
16
16
  attributes: {
17
17
  size: {
18
- type: "string",
19
- default: "8",
18
+ type: 'string',
19
+ default: '8',
20
20
  },
21
21
  },
22
22
  edit: createContentGroupEdit(options),
@@ -1 +1 @@
1
- {"version":3,"file":"icon.d.ts","sourceRoot":"","sources":["../../../../src/blocks/groups/content-group/icon.tsx"],"names":[],"mappings":"AAAA,eAAO,MAAM,IAAI,6BAsBhB,CAAC"}
1
+ {"version":3,"file":"icon.d.ts","sourceRoot":"","sources":["../../../../src/blocks/groups/content-group/icon.tsx"],"names":[],"mappings":"AAAA,eAAO,MAAM,IAAI,6BAsBhB,CAAA"}
@@ -0,0 +1,11 @@
1
+ export declare const ICON_TYPES: readonly [{
2
+ readonly value: "none";
3
+ readonly label: import("@wordpress/i18n").TransformedText<"Žádná">;
4
+ }, {
5
+ readonly value: "preselected";
6
+ readonly label: import("@wordpress/i18n").TransformedText<"Předdefinovaná">;
7
+ }, {
8
+ readonly value: "media";
9
+ readonly label: import("@wordpress/i18n").TransformedText<"Médium">;
10
+ }];
11
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/blocks/link/link-item/constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,UAAU;;;;;;;;;EAIb,CAAA"}
@@ -0,0 +1,6 @@
1
+ import { __ } from '@wordpress/i18n';
2
+ export const ICON_TYPES = [
3
+ { value: 'none', label: __('Žádná', 'brilo-blocks') },
4
+ { value: 'preselected', label: __('Předdefinovaná', 'brilo-blocks') },
5
+ { value: 'media', label: __('Médium', 'brilo-blocks') },
6
+ ];
@@ -0,0 +1,6 @@
1
+ import type { LinkItemAttributes, LinkItemOptions } from './types';
2
+ export declare function createLinkItemEdit(options: LinkItemOptions): ({ attributes, setAttributes, }: {
3
+ attributes: LinkItemAttributes;
4
+ setAttributes: (a: Partial<LinkItemAttributes>) => void;
5
+ }) => import("react").JSX.Element;
6
+ //# sourceMappingURL=edit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edit.d.ts","sourceRoot":"","sources":["../../../../src/blocks/link/link-item/edit.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAC,kBAAkB,EAAE,eAAe,EAAC,MAAM,SAAS,CAAA;AAEhE,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,eAAe,IACpC,gCAGlB;IACD,UAAU,EAAE,kBAAkB,CAAA;IAC9B,aAAa,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,KAAK,IAAI,CAAA;CACxD,iCAoGF"}
@@ -0,0 +1,25 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { ColorPalette, InspectorControls, RichText, useBlockProps } from '@wordpress/block-editor';
3
+ import { PanelBody, RangeControl, TextControl, ToggleControl, __experimentalToggleGroupControl as ToggleGroupControl, __experimentalToggleGroupControlOption as ToggleGroupControlOption, } from '@wordpress/components';
4
+ import { __ } from '@wordpress/i18n';
5
+ import clsx from 'clsx';
6
+ import { ItemIconControl, ItemIconPreview } from '../../../components/ItemIconControl';
7
+ import { useTenantColorPalette } from '../../../hooks/useTenantColorPalette';
8
+ import { ICON_TYPES } from './constants';
9
+ export function createLinkItemEdit(options) {
10
+ return function Edit({ attributes, setAttributes, }) {
11
+ var _a;
12
+ const { title, url, icon, color, underline_initial, size } = attributes;
13
+ const { paletteColors } = useTenantColorPalette();
14
+ const hasIcon = icon.type !== 'none' && (icon.src || ((_a = icon.media) === null || _a === void 0 ? void 0 : _a.id));
15
+ const setIconBase = (attrs) => {
16
+ setAttributes({ icon: { ...icon, ...attrs.icon } });
17
+ };
18
+ const blockProps = useBlockProps({
19
+ className: clsx('link-item', underline_initial && '--underline-initial'),
20
+ style: color ? { color } : undefined,
21
+ });
22
+ const iconPreviewStyle = { maxWidth: icon.size, flex: `0 0 ${icon.size}px` };
23
+ return (_jsxs(_Fragment, { children: [_jsxs(InspectorControls, { children: [_jsxs(PanelBody, { title: __('Odkaz', 'brilo-blocks'), children: [_jsx(TextControl, { label: __('URL', 'brilo-blocks'), value: url.src, onChange: (v) => setAttributes({ url: { ...url, src: v } }) }), _jsx(ToggleControl, { label: __('Otevřít v nové záložce', 'brilo-blocks'), checked: url.blank, onChange: (v) => setAttributes({ url: { ...url, blank: v } }) })] }), _jsxs(PanelBody, { title: __('Ikona', 'brilo-blocks'), initialOpen: false, children: [_jsx(ItemIconControl, { icon: icon, setAttributes: setIconBase, iconTypes: ICON_TYPES, options: options }), hasIcon && (_jsxs(_Fragment, { children: [_jsxs(ToggleGroupControl, { isBlock: true, label: __('Pozice', 'brilo-blocks'), value: icon.position, onChange: (v) => setAttributes({ icon: { ...icon, position: String(v) } }), children: [_jsx(ToggleGroupControlOption, { value: "before", label: __('Před', 'brilo-blocks') }), _jsx(ToggleGroupControlOption, { value: "after", label: __('Za', 'brilo-blocks') })] }), _jsx(RangeControl, { label: __('Velikost (px)', 'brilo-blocks'), value: icon.size, onChange: (v) => setAttributes({ icon: { ...icon, size: v !== null && v !== void 0 ? v : 24 } }), min: 8, max: 80, step: 1 })] }))] }), _jsxs(PanelBody, { title: __('Styl', 'brilo-blocks'), initialOpen: false, children: [_jsx("p", { children: __('Barva', 'brilo-blocks') }), _jsx(ColorPalette, { colors: paletteColors, value: color || undefined, onChange: (v) => setAttributes({ color: v !== null && v !== void 0 ? v : '' }) }), _jsx(ToggleControl, { label: __('Podtržení výchozí', 'brilo-blocks'), checked: underline_initial, onChange: (v) => setAttributes({ underline_initial: v }) }), _jsx(RangeControl, { label: __('Velikost textu (px)', 'brilo-blocks'), value: size, onChange: (v) => setAttributes({ size: v !== null && v !== void 0 ? v : 16 }), min: 8, max: 80, step: 1 })] })] }), _jsxs("div", { ...blockProps, children: [hasIcon && icon.position === 'before' && (_jsx("span", { className: "link-item__icon", style: iconPreviewStyle, children: _jsx(ItemIconPreview, { icon: icon, setAttributes: setIconBase, options: options }) })), _jsx(RichText, { tagName: "span", className: "link-item__title", value: title, onChange: (v) => setAttributes({ title: v }), placeholder: __('Text odkazu...', 'brilo-blocks'), allowedFormats: ['core/bold', 'core/italic'] }), hasIcon && icon.position === 'after' && (_jsx("span", { className: "link-item__icon", style: iconPreviewStyle, children: _jsx(ItemIconPreview, { icon: icon, setAttributes: setIconBase, options: options }) }))] })] }));
24
+ };
25
+ }
@@ -0,0 +1,4 @@
1
+ import { type BlockConfiguration } from '@wordpress/blocks';
2
+ import type { LinkItemAttributes, LinkItemOptions } from './types';
3
+ export declare function createLinkItemBlock(options: LinkItemOptions): BlockConfiguration<LinkItemAttributes>;
4
+ //# sourceMappingURL=factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/blocks/link/link-item/factory.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,kBAAkB,EAAC,MAAM,mBAAmB,CAAA;AAIzD,OAAO,KAAK,EAAC,kBAAkB,EAAE,eAAe,EAAC,MAAM,SAAS,CAAA;AAEhE,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,eAAe,GAAG,kBAAkB,CAAC,kBAAkB,CAAC,CAuBpG"}
@@ -0,0 +1,28 @@
1
+ import { __ } from '@wordpress/i18n';
2
+ import { createLinkItemEdit } from './edit';
3
+ import { icon as defaultIcon } from './icon';
4
+ export function createLinkItemBlock(options) {
5
+ var _a, _b, _c;
6
+ return {
7
+ name: options.name,
8
+ title: (_a = options.title) !== null && _a !== void 0 ? _a : __('Odkaz', 'brilo-blocks'),
9
+ description: options.description,
10
+ category: (_b = options.category) !== null && _b !== void 0 ? _b : 'text',
11
+ ...(options.parent && { parent: options.parent }),
12
+ icon: (_c = options.icon) !== null && _c !== void 0 ? _c : { src: defaultIcon },
13
+ supports: { html: false, customClassName: false },
14
+ attributes: {
15
+ title: { type: 'string', default: '' },
16
+ url: { type: 'object', default: { src: '', blank: false } },
17
+ icon: {
18
+ type: 'object',
19
+ default: { type: 'none', src: '', media: {}, position: 'after', size: 24 },
20
+ },
21
+ color: { type: 'string', default: '' },
22
+ size: { type: 'number', default: 16 },
23
+ underline_initial: { type: 'boolean', default: false },
24
+ },
25
+ edit: createLinkItemEdit(options),
26
+ save: () => null,
27
+ };
28
+ }
@@ -0,0 +1,2 @@
1
+ export declare const icon: import("react").JSX.Element;
2
+ //# sourceMappingURL=icon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon.d.ts","sourceRoot":"","sources":["../../../../src/blocks/link/link-item/icon.tsx"],"names":[],"mappings":"AAAA,eAAO,MAAM,IAAI,6BAKhB,CAAA"}
@@ -0,0 +1,2 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ export const icon = (_jsxs("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [_jsx("path", { d: "M8 4H4C2.895 4 2 4.895 2 6v10c0 1.105.895 2 2 2h10c1.105 0 2-.895 2-2v-4", stroke: "black", strokeWidth: "1.5", fill: "none" }), _jsx("path", { d: "M12 2h6v6M18 2L10 10", stroke: "black", strokeWidth: "1.5", strokeLinecap: "round" })] }));
@@ -0,0 +1,5 @@
1
+ export type { LinkItemAttributes, LinkItemIcon, LinkItemOptions } from './types';
2
+ export { createLinkItemBlock } from './factory';
3
+ import type { LinkItemOptions } from './types';
4
+ export declare const linkItemDefaults: LinkItemOptions;
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/blocks/link/link-item/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAC,kBAAkB,EAAE,YAAY,EAAE,eAAe,EAAC,MAAM,SAAS,CAAA;AAC9E,OAAO,EAAC,mBAAmB,EAAC,MAAM,WAAW,CAAA;AAE7C,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,SAAS,CAAA;AAE5C,eAAO,MAAM,gBAAgB,EAAE,eAI9B,CAAA"}
@@ -0,0 +1,6 @@
1
+ export { createLinkItemBlock } from './factory';
2
+ export const linkItemDefaults = {
3
+ name: 'brilo/link-item',
4
+ icons: [],
5
+ iconsSrc: '',
6
+ };
@@ -0,0 +1,26 @@
1
+ import type { Media } from '../../../types';
2
+ import type { BriloBlockType } from '../../../types';
3
+ import type { IconType } from '../../../components/IconControl';
4
+ export interface LinkItemIcon {
5
+ type: 'preselected' | 'media' | 'none';
6
+ src: string;
7
+ media: Media;
8
+ position: 'before' | 'after';
9
+ size: number;
10
+ }
11
+ export interface LinkItemAttributes extends Record<string, unknown> {
12
+ title: string;
13
+ url: {
14
+ src: string;
15
+ blank: boolean;
16
+ };
17
+ icon: LinkItemIcon;
18
+ color: string;
19
+ size: number;
20
+ underline_initial: boolean;
21
+ }
22
+ export interface LinkItemOptions extends BriloBlockType {
23
+ icons: IconType[];
24
+ iconsSrc: string;
25
+ }
26
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/blocks/link/link-item/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,KAAK,EAAC,MAAM,SAAS,CAAA;AAClC,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,SAAS,CAAA;AAC3C,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,0BAA0B,CAAA;AAEtD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,aAAa,GAAG,OAAO,GAAG,MAAM,CAAA;IACtC,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,KAAK,CAAA;IACZ,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAA;IAC5B,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,kBAAmB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACjE,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAC,CAAA;IAClC,IAAI,EAAE,YAAY,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,iBAAiB,EAAE,OAAO,CAAA;CAC3B;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,4 @@
1
+ export declare const DEFAULT_HEADING_STYLES: readonly ["h1", "h2", "h3", "h4"];
1
2
  export declare const MAP_TYPES: readonly [{
2
3
  readonly value: "gps";
3
4
  readonly label: import("@wordpress/i18n").TransformedText<"GPS">;
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/blocks/map/map-group/constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS;;;;;;;;;;;;EAiBZ,CAAA"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/blocks/map/map-group/constants.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,sBAAsB,mCAAiB,CAAA;AAEpD,eAAO,MAAM,SAAS;;;;;;;;;;;;EAiBZ,CAAA"}
@@ -1,4 +1,6 @@
1
1
  import { __ } from '@wordpress/i18n';
2
+ import { HEADING_STYLES } from '../../../constants';
3
+ export const DEFAULT_HEADING_STYLES = HEADING_STYLES;
2
4
  export const MAP_TYPES = [
3
5
  {
4
6
  value: 'gps',
@@ -1 +1 @@
1
- {"version":3,"file":"edit.d.ts","sourceRoot":"","sources":["../../../../src/blocks/map/map-group/edit.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,kBAAkB,EAAE,eAAe,EAAC,MAAM,SAAS,CAAA;AAGhE,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,eAAe,IACpC,gCAGlB;IACD,UAAU,EAAE,kBAAkB,CAAA;IAC9B,aAAa,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,KAAK,IAAI,CAAA;CACxD,iCA4FF"}
1
+ {"version":3,"file":"edit.d.ts","sourceRoot":"","sources":["../../../../src/blocks/map/map-group/edit.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAC,kBAAkB,EAAE,eAAe,EAAC,MAAM,SAAS,CAAA;AAOhE,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,eAAe,IACpC,gCAGlB;IACD,UAAU,EAAE,kBAAkB,CAAA;IAC9B,aAAa,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,KAAK,IAAI,CAAA;CACxD,iCAsJF"}
@@ -1,21 +1,29 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { InspectorControls, useBlockProps } from '@wordpress/block-editor';
3
- import { PanelBody, BaseControl, TextControl, SelectControl, TextareaControl } from '@wordpress/components';
2
+ import { InspectorControls, RichText } from '@wordpress/block-editor';
3
+ import { PanelBody, BaseControl, TextControl, SelectControl, TextareaControl, __experimentalToggleGroupControl as ToggleGroupControl, __experimentalToggleGroupControlOption as ToggleGroupControlOption, } from '@wordpress/components';
4
4
  import { __ } from '@wordpress/i18n';
5
5
  import { ImagePickerControl } from '../../../components/ImagePicker';
6
6
  import { MAP_TYPES } from './constants';
7
7
  import { Icon, mapMarker } from '@wordpress/icons';
8
+ import { useGroupBlock } from '../../../hooks/useGroupBlock';
9
+ import clsx from 'clsx';
10
+ import { HEADING_LEVELS, HEADING_STYLES } from '../../../constants';
8
11
  export function createMapGroupEdit(options) {
9
12
  return function Edit({ attributes, setAttributes, }) {
10
- var _a;
11
- const { mapType, iframeSrc, iframeElement, img, url, lat, long } = attributes;
12
- const blockProps = useBlockProps({
13
- className: (_a = options.blockClassName) !== null && _a !== void 0 ? _a : 'g-map wp-block-section',
13
+ var _a, _b;
14
+ const { mapType, iframeSrc, iframeElement, img, url, address, lat, long, description, header } = attributes;
15
+ const { blockProps, innerBlocksProps } = useGroupBlock({
16
+ blockClassName: clsx((_a = options.blockClassName) !== null && _a !== void 0 ? _a : 'g-map wp-block-section'),
17
+ containerClassName: [(_b = options.containerClassName) !== null && _b !== void 0 ? _b : 'g-map__button-wraper wp-block-inner-content'],
18
+ allowedBlocks: options.allowedBlocks,
19
+ orientation: 'vertical',
20
+ template: options.template,
21
+ layout: { type: 'default' },
14
22
  });
15
- return (_jsxs(_Fragment, { children: [_jsx(InspectorControls, { children: _jsxs(PanelBody, { title: __('Nastavení mapy', 'brilo-blocks'), children: [_jsx(SelectControl, { label: __('Typ mapy', 'brilo-blocks'), value: mapType, options: [...MAP_TYPES], onChange: (v) => setAttributes({ mapType: v }) }), mapType === 'gps' && (_jsxs(BaseControl, { label: __('GPS', 'brilo-blocks'), children: [_jsx(TextControl, { label: __('Zeměpisná šířka:', 'brilo-blocks'), value: lat || '', onChange: (value) => setAttributes({ lat: value }) }), _jsx(TextControl, { label: __('Zeměpisná délka:', 'brilo-blocks'), value: long || '', onChange: (value) => setAttributes({ long: value }) })] })), mapType === 'url' && (_jsx(BaseControl, { label: __('Iframe', 'brilo-blocks'), children: _jsx(TextControl, { label: __('URL:', 'brilo-blocks'), value: iframeSrc || '', onChange: (value) => setAttributes({ iframeSrc: value }) }) })), mapType === 'element' && (_jsx(BaseControl, { label: __('Iframe', 'brilo-blocks'), children: _jsx(TextareaControl, { label: __('Zdrojový kód:', 'brilo-blocks'), value: iframeElement || '', onChange: (value) => setAttributes({ iframeElement: value }) }) })), mapType === 'image' && (_jsxs(_Fragment, { children: [_jsx(ImagePickerControl, { value: img, onChange: (v) => setAttributes({ img: v }) }), _jsx(TextControl, { label: __('URL:', 'brilo-blocks'), value: url || '', onChange: (value) => setAttributes({ url: value }) })] }))] }) }), _jsx("div", { ...blockProps, children: _jsxs("div", { className: "g-map__map", children: [mapType === 'gps' && (lat || long) && (_jsxs("div", { children: [_jsx(Icon, { icon: mapMarker }), _jsx("p", { children: [lat, long].filter(Boolean).join(', ') })] })), mapType === 'url' && iframeSrc && _jsx("iframe", { src: iframeSrc, width: 640, height: 320 }), mapType === 'element' && iframeElement && _jsx("div", { dangerouslySetInnerHTML: { __html: iframeElement } }), mapType === 'image' && img && _jsx(ImagePickerControl, { value: img, onChange: (v) => setAttributes({ img: v }), size: [640, 320] }), (!mapType ||
16
- (mapType === 'gps' && !lat && !long) ||
17
- (mapType === 'url' && !iframeSrc) ||
18
- (mapType === 'element' && !iframeElement) ||
19
- (mapType === 'image' && !img)) && (_jsxs(_Fragment, { children: [_jsx(Icon, { icon: mapMarker }), __('Zde je prostor pro vaši mapu.', 'brilo-blocks')] }))] }) })] }));
23
+ return (_jsxs(_Fragment, { children: [_jsxs(InspectorControls, { children: [_jsxs(PanelBody, { title: __('Nadpis', 'brilo-blocks'), initialOpen: false, children: [_jsx(ToggleGroupControl, { label: __('Úroveň nadpisu', 'brilo-blocks'), value: String(header.heading.level), onChange: (value) => setAttributes({ header: { ...header, heading: { ...header.heading, level: Number(value) } } }), isBlock: true, children: HEADING_LEVELS.map((l) => (_jsx(ToggleGroupControlOption, { value: String(l), label: `H${l}` }, l))) }), _jsx(ToggleGroupControl, { label: __('Styl nadpisu', 'brilo-blocks'), value: header.heading.style, onChange: (value) => setAttributes({ header: { ...header, heading: { ...header.heading, style: value } } }), isBlock: true, children: HEADING_STYLES.map((s) => (_jsx(ToggleGroupControlOption, { value: s, label: s }, s))) })] }), _jsxs(PanelBody, { title: __('Nastavení mapy', 'brilo-blocks'), children: [_jsx(SelectControl, { label: __('Typ mapy', 'brilo-blocks'), value: mapType, options: [...MAP_TYPES], onChange: (v) => setAttributes({ mapType: v }) }), mapType === 'gps' && (_jsxs(BaseControl, { label: __('GPS', 'brilo-blocks'), children: [_jsx(TextControl, { label: __('Zeměpisná šířka:', 'brilo-blocks'), value: lat || '', onChange: (value) => setAttributes({ lat: value }) }), _jsx(TextControl, { label: __('Zeměpisná délka:', 'brilo-blocks'), value: long || '', onChange: (value) => setAttributes({ long: value }) })] })), mapType === 'url' && (_jsx(BaseControl, { label: __('Iframe', 'brilo-blocks'), children: _jsx(TextControl, { label: __('URL:', 'brilo-blocks'), value: iframeSrc || '', onChange: (value) => setAttributes({ iframeSrc: value }) }) })), mapType === 'element' && (_jsx(BaseControl, { label: __('Iframe', 'brilo-blocks'), children: _jsx(TextareaControl, { label: __('Zdrojový kód:', 'brilo-blocks'), value: iframeElement || '', onChange: (value) => setAttributes({ iframeElement: value }) }) })), mapType === 'image' && (_jsxs(_Fragment, { children: [_jsx(ImagePickerControl, { value: img, onChange: (v) => setAttributes({ img: v }) }), _jsx(TextControl, { label: __('URL:', 'brilo-blocks'), value: url || '', onChange: (value) => setAttributes({ url: value }) }), _jsx(TextControl, { label: __('Adresa:', 'brilo-blocks'), value: address || '', onChange: (value) => setAttributes({ address: value }) })] }))] })] }), _jsxs("div", { ...blockProps, children: [_jsxs("div", { className: "g-map__banner", children: [_jsxs("div", { className: "g-map__content", children: [_jsx(RichText, { tagName: `h${header.heading.level}`, className: clsx('g-map__heading', `--heading-style-${header.heading.style}`, 'u-text-editable'), value: header.heading.title, onChange: (value) => setAttributes({ header: { ...header, heading: { ...header.heading, title: value } } }), placeholder: __('Nadpis...', 'brilo-blocks'), allowedFormats: ['core/bold', 'core/italic'] }), _jsx(RichText, { tagName: "div", className: "g-map__description u-text-editable", value: description, onChange: (value) => setAttributes({ description: value }), placeholder: __('Popis...', 'brilo-blocks') })] }), _jsx("div", { ...innerBlocksProps })] }), _jsxs("div", { className: "g-map__map", children: [mapType === 'gps' && (lat || long) && (_jsxs("div", { children: [_jsx(Icon, { icon: mapMarker }), _jsx("p", { children: [lat, long].filter(Boolean).join(', ') })] })), mapType === 'url' && iframeSrc && _jsx("iframe", { src: iframeSrc, width: 640, height: 320 }), mapType === 'element' && iframeElement && _jsx("div", { dangerouslySetInnerHTML: { __html: iframeElement } }), mapType === 'image' && img && _jsx(ImagePickerControl, { value: img, onChange: (v) => setAttributes({ img: v }), size: [640, 320] }), (!mapType ||
24
+ (mapType === 'gps' && !lat && !long) ||
25
+ (mapType === 'url' && !iframeSrc) ||
26
+ (mapType === 'element' && !iframeElement) ||
27
+ (mapType === 'image' && !img)) && (_jsxs(_Fragment, { children: [_jsx(Icon, { icon: mapMarker }), __('Zde je prostor pro vaši mapu.', 'brilo-blocks')] }))] })] })] }));
20
28
  };
21
29
  }
@@ -1,5 +1,7 @@
1
1
  import type { BlockConfiguration } from '@wordpress/blocks';
2
2
  import type { MapGroupAttributes, MapGroupOptions } from './types';
3
+ import type { StringArray } from '../../../types';
4
+ import { DEFAULT_HEADING_STYLES } from '../../../blocks/groups/banner-group/constants';
3
5
  export type { MapGroupAttributes, MapGroupOptions };
4
- export declare function createMapGroupBlock(options: MapGroupOptions): BlockConfiguration<MapGroupAttributes>;
6
+ export declare function createMapGroupBlock<THeadingStyles extends StringArray = typeof DEFAULT_HEADING_STYLES>(options: MapGroupOptions<THeadingStyles>): BlockConfiguration<MapGroupAttributes<THeadingStyles[number]>>;
5
7
  //# sourceMappingURL=factory.d.ts.map
@@ -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;AAGhE,YAAY,EAAC,kBAAkB,EAAE,eAAe,EAAC,CAAA;AAEjD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,eAAe,GAAG,kBAAkB,CAAC,kBAAkB,CAAC,CA0CpG"}
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,17 +1,32 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
1
2
  import { __ } from '@wordpress/i18n';
2
3
  import { createMapGroupEdit } from './edit';
3
4
  import { MAP_TYPES } from './constants';
5
+ import { DEFAULT_HEADING_STYLES } from '../../../blocks/groups/banner-group/constants';
6
+ import { InnerBlocks } from '@wordpress/block-editor';
7
+ import { HEADING_LEVELS } from '../../../constants';
4
8
  export function createMapGroupBlock(options) {
5
- var _a, _b, _c;
9
+ var _a, _b, _c, _d, _e;
10
+ const headingStyles = (_a = options.headingStyles) !== null && _a !== void 0 ? _a : DEFAULT_HEADING_STYLES;
6
11
  return {
7
12
  name: options.name,
8
- title: (_a = options.title) !== null && _a !== void 0 ? _a : __('Mapa', 'brilo-blocks'),
13
+ title: (_b = options.title) !== null && _b !== void 0 ? _b : __('Mapa', 'brilo-blocks'),
9
14
  description: options.description,
10
- category: (_b = options.category) !== null && _b !== void 0 ? _b : 'layout',
15
+ category: (_c = options.category) !== null && _c !== void 0 ? _c : 'layout',
11
16
  ...(options.parent && { parent: options.parent }),
12
- icon: (_c = options.icon) !== null && _c !== void 0 ? _c : 'location-alt',
17
+ icon: (_d = options.icon) !== null && _d !== void 0 ? _d : 'location-alt',
13
18
  supports: { html: false, customClassName: false },
14
19
  attributes: {
20
+ header: {
21
+ type: 'object',
22
+ default: {
23
+ heading: { title: '', level: HEADING_LEVELS[1], style: (_e = headingStyles[1]) !== null && _e !== void 0 ? _e : headingStyles[0] },
24
+ },
25
+ },
26
+ description: {
27
+ type: 'string',
28
+ default: '',
29
+ },
15
30
  mapType: {
16
31
  type: 'string',
17
32
  default: MAP_TYPES[0].value,
@@ -28,6 +43,10 @@ export function createMapGroupBlock(options) {
28
43
  type: 'object',
29
44
  default: { id: 0, url: '', alt: '' },
30
45
  },
46
+ address: {
47
+ type: 'string',
48
+ default: '',
49
+ },
31
50
  url: {
32
51
  type: 'string',
33
52
  default: '',
@@ -42,6 +61,6 @@ export function createMapGroupBlock(options) {
42
61
  },
43
62
  },
44
63
  edit: createMapGroupEdit(options),
45
- save: () => null,
64
+ save: () => _jsx(InnerBlocks.Content, {}),
46
65
  };
47
66
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/blocks/map/map-group/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAC,kBAAkB,EAAE,eAAe,EAAC,MAAM,SAAS,CAAA;AAChE,OAAO,EAAC,mBAAmB,EAAC,MAAM,WAAW,CAAA;AAE7C,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,SAAS,CAAA;AAE5C,eAAO,MAAM,gBAAgB,EAAE,eAG9B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/blocks/map/map-group/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAC,kBAAkB,EAAE,eAAe,EAAC,MAAM,SAAS,CAAA;AAChE,OAAO,EAAC,mBAAmB,EAAC,MAAM,WAAW,CAAA;AAE7C,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,SAAS,CAAA;AAE5C,eAAO,MAAM,gBAAgB,EAAE,eAI9B,CAAA"}
@@ -2,4 +2,5 @@ export { createMapGroupBlock } from './factory';
2
2
  export const mapGroupDefaults = {
3
3
  name: 'brilo/map-group',
4
4
  parent: ['brilo/base-section'],
5
+ allowedBlocks: ['brilo/button-group', 'brilo/basic-button'],
5
6
  };
@@ -1,15 +1,29 @@
1
- import { BriloBlockType, Media } from '../../../types';
2
- import { MAP_TYPES } from './constants';
1
+ import { BriloBlockType, Media, type StringArray } from '../../../types';
2
+ import { DEFAULT_HEADING_STYLES, MAP_TYPES } from './constants';
3
+ import { HEADING_LEVELS } from '../../../constants';
3
4
  export type MapType = (typeof MAP_TYPES)[number]['value'];
4
- export interface MapGroupAttributes extends Record<string, unknown> {
5
+ export type HeadingLevels = (typeof HEADING_LEVELS)[number];
6
+ export type HeadingStyles = (typeof DEFAULT_HEADING_STYLES)[number];
7
+ export interface MapGroupAttributes<THeadingStyle extends string = HeadingStyles> extends Record<string, unknown> {
8
+ header: {
9
+ heading: {
10
+ title: string;
11
+ level: HeadingLevels;
12
+ style: THeadingStyle;
13
+ };
14
+ };
15
+ description: string;
5
16
  mapType: MapType;
6
17
  iframeSrc: string;
7
18
  iframeElement: string;
8
19
  img: Media;
20
+ address: string;
9
21
  url: string;
10
22
  lat: string;
11
23
  long: string;
12
24
  }
13
- export interface MapGroupOptions extends BriloBlockType {
25
+ export interface MapGroupOptions<THeadingStyles extends StringArray = typeof DEFAULT_HEADING_STYLES> extends BriloBlockType {
26
+ headingStyles?: THeadingStyles;
27
+ headingLevels?: HeadingLevels;
14
28
  }
15
29
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/blocks/map/map-group/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAE,KAAK,EAAC,MAAM,SAAS,CAAA;AAC7C,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAA;AAErC,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAA;AAEzD,MAAM,WAAW,kBAAmB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACjE,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;IACrB,GAAG,EAAE,KAAK,CAAA;IACV,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,eAAgB,SAAQ,cAAc;CAAG"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/blocks/map/map-group/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAE,KAAK,EAAoB,KAAK,WAAW,EAAC,MAAM,SAAS,CAAA;AACjF,OAAO,EAAC,sBAAsB,EAAE,SAAS,EAAC,MAAM,aAAa,CAAA;AAC7D,OAAO,EAAC,cAAc,EAAC,MAAM,aAAa,CAAA;AAE1C,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAA;AAEzD,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAA;AAC3D,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAA;AAEnE,MAAM,WAAW,kBAAkB,CAAC,aAAa,SAAS,MAAM,GAAG,aAAa,CAAE,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC/G,MAAM,EAAE;QACN,OAAO,EAAE;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,aAAa,CAAC;YAAC,KAAK,EAAE,aAAa,CAAA;SAAC,CAAA;KACrE,CAAA;IACD,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;IACrB,GAAG,EAAE,KAAK,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IACf,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,eAAe,CAAC,cAAc,SAAS,WAAW,GAAG,OAAO,sBAAsB,CAAE,SAAQ,cAAc;IACzH,aAAa,CAAC,EAAE,cAAc,CAAA;IAC9B,aAAa,CAAC,EAAE,aAAa,CAAA;CAC9B"}
@@ -0,0 +1,3 @@
1
+ export declare const COLUMNS: readonly [4, 3, 2];
2
+ export declare const HEADING_LEVELS: readonly [2, 3, 4];
3
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/blocks/person/person-group/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,oBAAqB,CAAA;AACzC,eAAO,MAAM,cAAc,oBAAqB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export const COLUMNS = [4, 3, 2];
2
+ export const HEADING_LEVELS = [2, 3, 4];
@@ -0,0 +1,6 @@
1
+ import type { PersonGroupAttributes, PersonGroupOptions } from './types';
2
+ export declare function createPersonGroupEdit(options: PersonGroupOptions): ({ attributes, setAttributes, }: {
3
+ attributes: PersonGroupAttributes;
4
+ setAttributes: (a: Partial<PersonGroupAttributes>) => void;
5
+ }) => import("react").JSX.Element;
6
+ //# sourceMappingURL=edit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edit.d.ts","sourceRoot":"","sources":["../../../../src/blocks/person/person-group/edit.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAC,qBAAqB,EAAE,kBAAkB,EAAC,MAAM,SAAS,CAAA;AAEtE,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,kBAAkB,IAC1C,gCAGlB;IACD,UAAU,EAAE,qBAAqB,CAAA;IACjC,aAAa,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,KAAK,IAAI,CAAA;CAC3D,iCA6CF"}
@@ -0,0 +1,23 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { InspectorControls } from '@wordpress/block-editor';
3
+ import { PanelBody, __experimentalToggleGroupControl as ToggleGroupControl, __experimentalToggleGroupControlOption as ToggleGroupControlOption, } from '@wordpress/components';
4
+ import { __ } from '@wordpress/i18n';
5
+ import clsx from 'clsx';
6
+ import { useGroupBlock } from '../../../hooks/useGroupBlock';
7
+ import { COLUMNS, HEADING_LEVELS } from './constants';
8
+ export function createPersonGroupEdit(options) {
9
+ return function Edit({ attributes, setAttributes, }) {
10
+ var _a, _b;
11
+ const { columns, headingLevel } = attributes;
12
+ const { blockProps, innerBlocksProps } = useGroupBlock({
13
+ blockClassName: clsx((_a = options.blockClassName) !== null && _a !== void 0 ? _a : 'g-person wp-block-section'),
14
+ containerClassName: [(_b = options.containerClassName) !== null && _b !== void 0 ? _b : 'u-grid-responsive', `--cols-${columns}`],
15
+ containerStyle: { '--grid-max-col-count': columns },
16
+ allowedBlocks: options.allowedBlocks,
17
+ orientation: 'horizontal',
18
+ template: options.template,
19
+ layout: { type: 'default' },
20
+ });
21
+ return (_jsxs(_Fragment, { children: [_jsx(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: __('Ú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))) })] }) }), _jsx("div", { ...blockProps, children: _jsx("div", { ...innerBlocksProps }) })] }));
22
+ };
23
+ }
@@ -0,0 +1,5 @@
1
+ import type { BlockConfiguration } from '@wordpress/blocks';
2
+ import type { PersonGroupAttributes, PersonGroupOptions } from './types';
3
+ export type { PersonGroupAttributes, PersonGroupOptions };
4
+ export declare function createPersonGroupBlock(options: PersonGroupOptions): BlockConfiguration<PersonGroupAttributes>;
5
+ //# sourceMappingURL=factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/blocks/person/person-group/factory.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,mBAAmB,CAAA;AAKzD,OAAO,KAAK,EAAC,qBAAqB,EAAE,kBAAkB,EAAC,MAAM,SAAS,CAAA;AAEtE,YAAY,EAAC,qBAAqB,EAAE,kBAAkB,EAAC,CAAA;AAEvD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,kBAAkB,GAAG,kBAAkB,CAAC,qBAAqB,CAAC,CAwB7G"}
@@ -0,0 +1,32 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { InnerBlocks } from '@wordpress/block-editor';
3
+ import { __ } from '@wordpress/i18n';
4
+ import { COLUMNS, HEADING_LEVELS } from './constants';
5
+ import { createPersonGroupEdit } from './edit';
6
+ import { icon as defaultIcon } from './icon';
7
+ export function createPersonGroupBlock(options) {
8
+ var _a, _b, _c;
9
+ return {
10
+ name: options.name,
11
+ title: (_a = options.title) !== null && _a !== void 0 ? _a : __('Osoby', 'brilo-blocks'),
12
+ description: options.description,
13
+ category: (_b = options.category) !== null && _b !== void 0 ? _b : 'layout',
14
+ ...(options.parent && { parent: options.parent }),
15
+ icon: (_c = options.icon) !== null && _c !== void 0 ? _c : { src: defaultIcon },
16
+ supports: { html: false, customClassName: false },
17
+ attributes: {
18
+ columns: {
19
+ type: 'number',
20
+ default: COLUMNS[1],
21
+ enum: [...COLUMNS],
22
+ },
23
+ headingLevel: {
24
+ type: 'number',
25
+ default: HEADING_LEVELS[0],
26
+ enum: [...HEADING_LEVELS],
27
+ },
28
+ },
29
+ edit: createPersonGroupEdit(options),
30
+ save: () => _jsx(InnerBlocks.Content, {}),
31
+ };
32
+ }
@@ -0,0 +1,2 @@
1
+ export declare const icon: import("react").JSX.Element;
2
+ //# sourceMappingURL=icon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon.d.ts","sourceRoot":"","sources":["../../../../src/blocks/person/person-group/icon.tsx"],"names":[],"mappings":"AAAA,eAAO,MAAM,IAAI,6BAahB,CAAA"}
@@ -0,0 +1,2 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ export const icon = (_jsxs("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [_jsx("rect", { x: "2.5", y: "1.5", width: "15", height: "17", stroke: "black", fill: "none" }), _jsx("path", { d: "M7 13H13V14H7V13Z", fill: "black" }), _jsx("path", { d: "M6 15H14V16H6V15Z", fill: "black" }), _jsx("path", { d: "M8 6C8 4.89543 8.89543 4 10 4C11.1046 4 12 4.89543 12 6C12 7.10457 11.1046 8 10 8C8.89543 8 8 7.10457 8 6Z", fill: "#357AB5" }), _jsx("path", { "fill-rule": "evenodd", "clip-rule": "evenodd", d: "M6.99664 11H13.0009C12.9997 9.34295 11.6561 8 9.99875 8C8.34144 8 6.99778 9.34295 6.99664 11Z", fill: "#357AB5" })] }));
@@ -0,0 +1,5 @@
1
+ export type { PersonGroupAttributes, PersonGroupOptions } from './types';
2
+ export { createPersonGroupBlock } from './factory';
3
+ import type { PersonGroupOptions } from './types';
4
+ export declare const personGroupDefaults: PersonGroupOptions;
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/blocks/person/person-group/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAC,qBAAqB,EAAE,kBAAkB,EAAC,MAAM,SAAS,CAAA;AACtE,OAAO,EAAC,sBAAsB,EAAC,MAAM,WAAW,CAAA;AAEhD,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,SAAS,CAAA;AAE/C,eAAO,MAAM,mBAAmB,EAAE,kBASjC,CAAA"}
@@ -0,0 +1,11 @@
1
+ export { createPersonGroupBlock } from './factory';
2
+ export const personGroupDefaults = {
3
+ name: 'brilo/person-group',
4
+ parent: ['brilo/base-section'],
5
+ allowedBlocks: ['brilo/person-item'],
6
+ template: [
7
+ ['brilo/person-item', {}],
8
+ ['brilo/person-item', {}],
9
+ ['brilo/person-item', {}],
10
+ ],
11
+ };
@@ -0,0 +1,8 @@
1
+ import { BriloBlockType } from '../../../types';
2
+ export interface PersonGroupAttributes extends Record<string, unknown> {
3
+ columns: number;
4
+ headingLevel: number;
5
+ }
6
+ export interface PersonGroupOptions extends BriloBlockType {
7
+ }
8
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/blocks/person/person-group/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,SAAS,CAAA;AAEtC,MAAM,WAAW,qBAAsB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACpE,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,kBAAmB,SAAQ,cAAc;CAAG"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/blocks/person/person-item/constants.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAA"}
@@ -0,0 +1 @@
1
+ export {};