@brilo/base-blocks 0.1.14 → 0.1.15

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 (192) hide show
  1. package/build/.tsbuildinfo +1 -0
  2. package/build/blocks/column/column-group/edit.d.ts.map +1 -1
  3. package/build/blocks/column/column-group/edit.js +1 -1
  4. package/build/blocks/column/column-item/edit.d.ts.map +1 -1
  5. package/build/blocks/column/column-item/edit.js +1 -1
  6. package/build/blocks/column/column-item/factory.js +1 -1
  7. package/build/blocks/compare/compare-group/constants.d.ts.map +1 -1
  8. package/build/blocks/compare/compare-group/edit.d.ts.map +1 -1
  9. package/build/blocks/compare/compare-group/edit.js +1 -1
  10. package/build/blocks/compare/compare-item/edit.d.ts.map +1 -1
  11. package/build/blocks/compare/compare-option/constants.d.ts +3 -3
  12. package/build/blocks/compare/compare-option/constants.d.ts.map +1 -1
  13. package/build/blocks/compare/compare-option/edit.d.ts.map +1 -1
  14. package/build/blocks/compare/compare-option/edit.js +1 -1
  15. package/build/blocks/contact/contact-group/constants.d.ts.map +1 -1
  16. package/build/blocks/contact/contact-group/edit.d.ts.map +1 -1
  17. package/build/blocks/contact/contact-group/edit.js +1 -1
  18. package/build/blocks/contact/contact-item/constants.d.ts +6 -6
  19. package/build/blocks/contact/contact-item/constants.d.ts.map +1 -1
  20. package/build/blocks/contact/contact-item/edit.d.ts.map +1 -1
  21. package/build/blocks/contact/contact-item/edit.js +1 -1
  22. package/build/blocks/core/basic-button/constants.d.ts +7 -7
  23. package/build/blocks/core/basic-button/constants.d.ts.map +1 -1
  24. package/build/blocks/core/basic-button/edit.d.ts.map +1 -1
  25. package/build/blocks/core/basic-button/edit.js +3 -2
  26. package/build/blocks/core/basic-heading/edit.d.ts.map +1 -1
  27. package/build/blocks/core/basic-heading/edit.js +1 -1
  28. package/build/blocks/core/basic-overline/edit.d.ts.map +1 -1
  29. package/build/blocks/faq/faq-group/constants.d.ts +6 -6
  30. package/build/blocks/faq/faq-group/constants.d.ts.map +1 -1
  31. package/build/blocks/faq/faq-group/edit.d.ts.map +1 -1
  32. package/build/blocks/faq/faq-group/edit.js +1 -1
  33. package/build/blocks/faq/faq-group/factory.js +7 -6
  34. package/build/blocks/faq/faq-item/edit.d.ts.map +1 -1
  35. package/build/blocks/faq/faq-item/edit.js +1 -1
  36. package/build/blocks/form/form-field/constants.d.ts +2 -2
  37. package/build/blocks/form/form-field/constants.d.ts.map +1 -1
  38. package/build/blocks/form/form-field/edit.d.ts.map +1 -1
  39. package/build/blocks/form/form-field/edit.js +1 -1
  40. package/build/blocks/form/form-group/constants.d.ts +8 -8
  41. package/build/blocks/form/form-group/constants.d.ts.map +1 -1
  42. package/build/blocks/form/form-group/edit.d.ts.map +1 -1
  43. package/build/blocks/form/form-group/edit.js +10 -9
  44. package/build/blocks/gallery/gallery-group/constants.d.ts +12 -12
  45. package/build/blocks/gallery/gallery-group/constants.d.ts.map +1 -1
  46. package/build/blocks/gallery/gallery-group/edit.d.ts.map +1 -1
  47. package/build/blocks/gallery/gallery-group/edit.js +1 -1
  48. package/build/blocks/gallery/gallery-item/edit.d.ts.map +1 -1
  49. package/build/blocks/gallery/gallery-item/edit.js +1 -1
  50. package/build/blocks/groups/banner-group/constants.d.ts +2 -2
  51. package/build/blocks/groups/banner-group/constants.d.ts.map +1 -1
  52. package/build/blocks/groups/banner-group/edit.d.ts.map +1 -1
  53. package/build/blocks/groups/banner-group/edit.js +1 -1
  54. package/build/blocks/groups/banner-group/icon.d.ts.map +1 -1
  55. package/build/blocks/groups/basic-header-group/constants.d.ts +3 -3
  56. package/build/blocks/groups/basic-header-group/constants.d.ts.map +1 -1
  57. package/build/blocks/groups/basic-header-group/edit.d.ts.map +1 -1
  58. package/build/blocks/groups/basic-header-group/edit.js +1 -1
  59. package/build/blocks/groups/basic-header-group/factory.js +10 -9
  60. package/build/blocks/groups/button-group/constants.d.ts +6 -6
  61. package/build/blocks/groups/button-group/constants.d.ts.map +1 -1
  62. package/build/blocks/groups/button-group/edit.d.ts.map +1 -1
  63. package/build/blocks/groups/button-group/edit.js +1 -1
  64. package/build/blocks/groups/button-group/factory.js +7 -6
  65. package/build/blocks/groups/content-group/constants.d.ts +1 -1
  66. package/build/blocks/groups/content-group/constants.d.ts.map +1 -1
  67. package/build/blocks/groups/content-group/edit.d.ts.map +1 -1
  68. package/build/blocks/groups/content-group/edit.js +1 -1
  69. package/build/blocks/groups/text-and-media-group/constants.d.ts +33 -33
  70. package/build/blocks/groups/text-and-media-group/constants.d.ts.map +1 -1
  71. package/build/blocks/groups/text-and-media-group/edit.d.ts.map +1 -1
  72. package/build/blocks/groups/text-and-media-group/edit.js +1 -1
  73. package/build/blocks/groups/text-and-media-group/factory.js +15 -14
  74. package/build/blocks/hero/hero-group/constants.d.ts +4 -4
  75. package/build/blocks/hero/hero-group/constants.d.ts.map +1 -1
  76. package/build/blocks/hero/hero-group/edit.d.ts.map +1 -1
  77. package/build/blocks/hero/hero-group/edit.js +6 -5
  78. package/build/blocks/hero/hero-group/icon.d.ts.map +1 -1
  79. package/build/blocks/hero/hero-item/constants.d.ts +9 -9
  80. package/build/blocks/hero/hero-item/constants.d.ts.map +1 -1
  81. package/build/blocks/hero/hero-item/edit.d.ts.map +1 -1
  82. package/build/blocks/hero/hero-item/edit.js +6 -5
  83. package/build/blocks/link/link-item/constants.d.ts +3 -3
  84. package/build/blocks/link/link-item/constants.d.ts.map +1 -1
  85. package/build/blocks/link/link-item/edit.d.ts.map +1 -1
  86. package/build/blocks/link/link-item/edit.js +1 -1
  87. package/build/blocks/map/map-group/constants.d.ts +4 -4
  88. package/build/blocks/map/map-group/constants.d.ts.map +1 -1
  89. package/build/blocks/map/map-group/edit.d.ts.map +1 -1
  90. package/build/blocks/map/map-group/edit.js +1 -1
  91. package/build/blocks/newsletter/newsletter-form/constants.d.ts.map +1 -1
  92. package/build/blocks/newsletter/newsletter-form/edit.d.ts.map +1 -1
  93. package/build/blocks/newsletter/newsletter-form/edit.js +1 -1
  94. package/build/blocks/person/person-group/constants.d.ts.map +1 -1
  95. package/build/blocks/person/person-group/edit.d.ts.map +1 -1
  96. package/build/blocks/person/person-group/edit.js +1 -1
  97. package/build/blocks/person/person-group/icon.d.ts.map +1 -1
  98. package/build/blocks/person/person-item/edit.d.ts.map +1 -1
  99. package/build/blocks/person/person-item/edit.js +1 -1
  100. package/build/blocks/post/post-slider-group/edit.d.ts.map +1 -1
  101. package/build/blocks/post/post-slider-group/edit.js +1 -1
  102. package/build/blocks/responsive-grid/responsive-grid-group/edit.d.ts.map +1 -1
  103. package/build/blocks/responsive-grid/responsive-grid-group/edit.js +1 -1
  104. package/build/blocks/responsive-grid/responsive-grid-item/edit.d.ts.map +1 -1
  105. package/build/blocks/sections/base-section/attributes.d.ts +9 -9
  106. package/build/blocks/sections/base-section/attributes.d.ts.map +1 -1
  107. package/build/blocks/sections/base-section/constants.d.ts +5 -5
  108. package/build/blocks/sections/base-section/constants.d.ts.map +1 -1
  109. package/build/blocks/sections/base-section/controls.js +1 -1
  110. package/build/blocks/sections/base-section/edit.d.ts.map +1 -1
  111. package/build/blocks/sections/base-section/edit.js +1 -1
  112. package/build/blocks/signpost/signpost-group/constants.d.ts +27 -1
  113. package/build/blocks/signpost/signpost-group/constants.d.ts.map +1 -1
  114. package/build/blocks/signpost/signpost-group/constants.js +13 -0
  115. package/build/blocks/signpost/signpost-group/edit.d.ts.map +1 -1
  116. package/build/blocks/signpost/signpost-group/edit.js +9 -5
  117. package/build/blocks/signpost/signpost-group/factory.d.ts.map +1 -1
  118. package/build/blocks/signpost/signpost-group/factory.js +36 -22
  119. package/build/blocks/signpost/signpost-group/index.d.ts +1 -1
  120. package/build/blocks/signpost/signpost-group/index.d.ts.map +1 -1
  121. package/build/blocks/signpost/signpost-group/types.d.ts +14 -1
  122. package/build/blocks/signpost/signpost-group/types.d.ts.map +1 -1
  123. package/build/blocks/signpost/signpost-item/constants.d.ts +2 -1
  124. package/build/blocks/signpost/signpost-item/constants.d.ts.map +1 -1
  125. package/build/blocks/signpost/signpost-item/constants.js +2 -1
  126. package/build/blocks/signpost/signpost-item/edit.d.ts.map +1 -1
  127. package/build/blocks/signpost/signpost-item/edit.js +16 -8
  128. package/build/blocks/signpost/signpost-item/factory.d.ts.map +1 -1
  129. package/build/blocks/signpost/signpost-item/factory.js +2 -1
  130. package/build/blocks/signpost/signpost-item/types.d.ts +9 -2
  131. package/build/blocks/signpost/signpost-item/types.d.ts.map +1 -1
  132. package/build/blocks/step/step-group/constants.d.ts +2 -2
  133. package/build/blocks/step/step-group/constants.d.ts.map +1 -1
  134. package/build/blocks/step/step-group/edit.d.ts.map +1 -1
  135. package/build/blocks/step/step-group/edit.js +1 -1
  136. package/build/blocks/step/step-item/constants.d.ts +2 -2
  137. package/build/blocks/step/step-item/constants.d.ts.map +1 -1
  138. package/build/blocks/step/step-item/edit.d.ts.map +1 -1
  139. package/build/blocks/step/step-item/edit.js +1 -1
  140. package/build/blocks/testimonial/testimonial-group/constants.d.ts +5 -5
  141. package/build/blocks/testimonial/testimonial-group/constants.d.ts.map +1 -1
  142. package/build/blocks/testimonial/testimonial-group/edit.d.ts.map +1 -1
  143. package/build/blocks/testimonial/testimonial-group/edit.js +1 -1
  144. package/build/blocks/testimonial/testimonial-item/edit.d.ts.map +1 -1
  145. package/build/blocks/testimonial/testimonial-item/edit.js +1 -1
  146. package/build/blocks/text-and-form/text-and-form-group/constants.d.ts +2 -2
  147. package/build/blocks/text-and-form/text-and-form-group/constants.d.ts.map +1 -1
  148. package/build/blocks/text-and-form/text-and-form-group/edit.d.ts.map +1 -1
  149. package/build/blocks/text-and-form/text-and-form-group/edit.js +3 -2
  150. package/build/blocks/text-and-form/text-and-form-text-column/constants.d.ts +4 -4
  151. package/build/blocks/text-and-form/text-and-form-text-column/constants.d.ts.map +1 -1
  152. package/build/blocks/text-and-form/text-and-form-text-column/edit.d.ts.map +1 -1
  153. package/build/blocks/text-and-form/text-and-form-text-column/edit.js +1 -1
  154. package/build/blocks/text-and-form/text-and-form-text-column/factory.js +9 -8
  155. package/build/blocks/usp/usp-group/constants.d.ts +31 -31
  156. package/build/blocks/usp/usp-group/constants.d.ts.map +1 -1
  157. package/build/blocks/usp/usp-group/edit.d.ts.map +1 -1
  158. package/build/blocks/usp/usp-group/edit.js +5 -3
  159. package/build/blocks/usp/usp-group/factory.d.ts.map +1 -1
  160. package/build/blocks/usp/usp-group/factory.js +21 -17
  161. package/build/blocks/usp/usp-group/types.d.ts +3 -0
  162. package/build/blocks/usp/usp-group/types.d.ts.map +1 -1
  163. package/build/blocks/usp/usp-item/constants.d.ts +3 -3
  164. package/build/blocks/usp/usp-item/constants.d.ts.map +1 -1
  165. package/build/blocks/usp/usp-item/edit.d.ts.map +1 -1
  166. package/build/blocks/usp/usp-item/edit.js +1 -1
  167. package/build/components/ItemIconControl/ItemIconControl.js +3 -2
  168. package/build/components/ItemIconControl/ItemIconPreview.js +6 -3
  169. package/build/constants.d.ts +12 -12
  170. package/build/constants.d.ts.map +1 -1
  171. package/build/hooks/useTenantColorPalette.d.ts +1 -1
  172. package/build/hooks/useTenantColorPalette.d.ts.map +1 -1
  173. package/package.json +15 -15
  174. package/src/blocks/column/column-item/factory.tsx +1 -1
  175. package/src/blocks/core/basic-button/edit.tsx +4 -4
  176. package/src/blocks/groups/banner-group/icon.tsx +1 -1
  177. package/src/blocks/hero/hero-group/icon.tsx +1 -1
  178. package/src/blocks/person/person-group/icon.tsx +1 -1
  179. package/src/blocks/signpost/signpost-group/constants.ts +16 -0
  180. package/src/blocks/signpost/signpost-group/edit.tsx +62 -3
  181. package/src/blocks/signpost/signpost-group/factory.tsx +36 -18
  182. package/src/blocks/signpost/signpost-group/index.ts +1 -1
  183. package/src/blocks/signpost/signpost-group/types.ts +16 -2
  184. package/src/blocks/signpost/signpost-item/constants.ts +2 -4
  185. package/src/blocks/signpost/signpost-item/edit.tsx +57 -4
  186. package/src/blocks/signpost/signpost-item/factory.tsx +2 -1
  187. package/src/blocks/signpost/signpost-item/types.ts +13 -3
  188. package/src/blocks/usp/usp-group/edit.tsx +40 -17
  189. package/src/blocks/usp/usp-group/factory.tsx +3 -0
  190. package/src/blocks/usp/usp-group/types.ts +3 -0
  191. package/src/components/ItemIconControl/ItemIconControl.tsx +1 -1
  192. package/src/components/ItemIconControl/ItemIconPreview.tsx +2 -2
@@ -1,13 +1,16 @@
1
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import clsx from 'clsx';
3
3
  import { useState } from '@wordpress/element';
4
4
  import { useMediaUrl } from '../../components/ImagePicker';
5
5
  import { ItemIconModal } from './ItemIconModal';
6
6
  export function ItemIconPreview({ icon, className, options, setAttributes }) {
7
+ var _a;
8
+ var _b;
7
9
  const [isModalOpen, setModalOpen] = useState(false);
8
- const mediaIconUrl = useMediaUrl(icon.media.id);
10
+ const mediaIconUrl = useMediaUrl((_b = (_a = icon.media) === null || _a === void 0 ? void 0 : _a.id) !== null && _b !== void 0 ? _b : 0);
9
11
  const preselectedIconUrl = icon.type === 'preselected' && icon.src ? `${options.iconsSrc}${icon.src}.svg` : '';
10
12
  const renderContent = () => {
13
+ var _a;
11
14
  if (icon.type === 'preselected') {
12
15
  if (preselectedIconUrl) {
13
16
  return (_jsx("div", { className: clsx('i-item-icon', className), children: _jsx("img", { src: preselectedIconUrl, alt: "", className: clsx(className ? `${className}-img` : 'i-item-icon__img'), width: 40, height: 40 }) }));
@@ -15,7 +18,7 @@ export function ItemIconPreview({ icon, className, options, setAttributes }) {
15
18
  return (_jsx("button", { type: "button", className: clsx('i-item-icon', className ? `${className}-placeholder` : null, 'i-item-icon__placeholder', !isModalOpen && '--clickable'), onClick: () => setModalOpen(true), children: _jsx("span", { children: "\u2606" }) }));
16
19
  }
17
20
  if (icon.type === 'media') {
18
- if (icon.media.id && mediaIconUrl) {
21
+ if (((_a = icon.media) === null || _a === void 0 ? void 0 : _a.id) && mediaIconUrl) {
19
22
  return (_jsx("div", { className: clsx('i-item-icon', className), children: _jsx("img", { src: mediaIconUrl, alt: icon.media.alt, className: clsx(className ? `${className}-img` : null, 'i-item-icon__img') }) }));
20
23
  }
21
24
  return (_jsx("div", { className: clsx('i-item-icon', className ? `${className}-placeholder` : 'i-item-icon__placeholder'), children: _jsx("span", { children: "\u2606" }) }));
@@ -1,27 +1,27 @@
1
1
  export declare const HEADING_LEVELS: readonly [1, 2, 3, 4];
2
- export declare const HEADING_STYLES: readonly ["h1", "h2", "h3", "h4"];
2
+ export declare const HEADING_STYLES: readonly ['h1', 'h2', 'h3', 'h4'];
3
3
  export declare const HEADING_STYLE_OPTIONS: readonly [{
4
- readonly value: "h1";
5
- readonly label: "H1 styl";
4
+ readonly value: 'h1';
5
+ readonly label: 'H1 styl';
6
6
  }, {
7
- readonly value: "h2";
8
- readonly label: "H2 styl";
7
+ readonly value: 'h2';
8
+ readonly label: 'H2 styl';
9
9
  }, {
10
- readonly value: "h3";
11
- readonly label: "H3 styl";
10
+ readonly value: 'h3';
11
+ readonly label: 'H3 styl';
12
12
  }, {
13
- readonly value: "h4";
14
- readonly label: "H4 styl";
13
+ readonly value: 'h4';
14
+ readonly label: 'H4 styl';
15
15
  }];
16
16
  export type HeadingStyleOption = (typeof HEADING_STYLE_OPTIONS)[number]['value'];
17
17
  export declare const CONTENT_SIZES: readonly [{
18
- readonly value: "sm";
18
+ readonly value: 'sm';
19
19
  readonly label: import("@wordpress/i18n").TransformedText<"Malá">;
20
20
  }, {
21
- readonly value: "default";
21
+ readonly value: 'default';
22
22
  readonly label: import("@wordpress/i18n").TransformedText<"Výchozí">;
23
23
  }, {
24
- readonly value: "lg";
24
+ readonly value: 'lg';
25
25
  readonly label: import("@wordpress/i18n").TransformedText<"Velká">;
26
26
  }];
27
27
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc,uBAAwB,CAAA;AAEnD,eAAO,MAAM,cAAc,mCAAoC,CAAA;AAE/D,eAAO,MAAM,qBAAqB;;;;;;;;;;;;EAKxB,CAAA;AAEV,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAA;AAEhF,eAAO,MAAM,aAAa;;;;;;;;;EAIhB,CAAA"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc,YAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAU,CAAA;AAEnD,eAAO,MAAM,cAAc,YAAI,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAU,CAAA;AAE/D,eAAO,MAAM,qBAAqB;aAC/B,KAAK,EAAE,IAAI;aAAE,KAAK,EAAE,SAAS;;aAC7B,KAAK,EAAE,IAAI;aAAE,KAAK,EAAE,SAAS;;aAC7B,KAAK,EAAE,IAAI;aAAE,KAAK,EAAE,SAAS;;aAC7B,KAAK,EAAE,IAAI;aAAE,KAAK,EAAE,SAAS;EACtB,CAAA;AAEV,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAA;AAEhF,eAAO,MAAM,aAAa;aACvB,KAAK,EAAE,IAAI;aAAE,KAAK;;aAClB,KAAK,EAAE,SAAS;aAAE,KAAK;;aACvB,KAAK,EAAE,IAAI;aAAE,KAAK;EACX,CAAA"}
@@ -1,8 +1,8 @@
1
1
  export declare function useTenantColorPalette(): {
2
2
  paletteColors: {
3
- color: string;
4
3
  name: string;
5
4
  slug: string;
5
+ color: string;
6
6
  }[];
7
7
  resolveHex: (value: string) => string;
8
8
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useTenantColorPalette.d.ts","sourceRoot":"","sources":["../../src/hooks/useTenantColorPalette.ts"],"names":[],"mappings":"AASA,wBAAgB,qBAAqB;;;cAL7B,MAAM;cACN,MAAM;;wBAWiB,MAAM;EAIpC"}
1
+ {"version":3,"file":"useTenantColorPalette.d.ts","sourceRoot":"","sources":["../../src/hooks/useTenantColorPalette.ts"],"names":[],"mappings":"AASA,wBAAgB,qBAAqB;;cAL7B,MAAM;cACN,MAAM;;;wBAWiB,MAAM;EAIpC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@brilo/base-blocks",
3
- "version": "0.1.14",
3
+ "version": "0.1.15",
4
4
  "author": "Brilo",
5
5
  "main": "./build/index.js",
6
6
  "types": "./build/index.d.ts",
@@ -13,25 +13,25 @@
13
13
  "check": "biome check --write ./src"
14
14
  },
15
15
  "peerDependencies": {
16
- "@wordpress/block-editor": "15.21.0",
17
- "@wordpress/blocks": "15.21.0",
18
- "@wordpress/components": "35.0.0",
19
- "@wordpress/i18n": "6.21.0",
16
+ "@wordpress/block-editor": "16.1.0",
17
+ "@wordpress/blocks": "15.25.0",
18
+ "@wordpress/components": "38.0.0",
19
+ "@wordpress/i18n": "6.25.0",
20
20
  "react": "*"
21
21
  },
22
22
  "devDependencies": {
23
- "@biomejs/biome": "2.4.16",
23
+ "@biomejs/biome": "2.5.6",
24
24
  "@types/react": "^18.3.12",
25
25
  "@types/wordpress__block-editor": "^15.0.6",
26
- "@wordpress/block-editor": "^15.21.0",
27
- "@wordpress/blocks": "^15.21.0",
28
- "@wordpress/components": "^35.0.0",
29
- "@wordpress/data": "^10.48.0",
30
- "@wordpress/element": "^8.0.0",
31
- "@wordpress/i18n": "^6.21.0",
32
- "prettier": "^3.0.0",
33
- "tsc-alias": "^1.8.17",
34
- "typescript": "^5.0.0"
26
+ "@wordpress/block-editor": "^16.1.0",
27
+ "@wordpress/blocks": "^15.25.0",
28
+ "@wordpress/components": "^38.0.0",
29
+ "@wordpress/data": "^10.52.0",
30
+ "@wordpress/element": "^8.4.0",
31
+ "@wordpress/i18n": "^6.25.0",
32
+ "prettier": "^3.9.6",
33
+ "tsc-alias": "^1.9.1",
34
+ "typescript": "^7.0.2"
35
35
  },
36
36
  "dependencies": {
37
37
  "clsx": "^2.1.1"
@@ -26,7 +26,7 @@ export function createColumnItemBlock(options: ColumnItemOptions): BlockConfigur
26
26
  justify: {
27
27
  type: 'string',
28
28
  default: 'stretch',
29
- }
29
+ },
30
30
  },
31
31
  edit: createColumnItemEdit(options),
32
32
  save: () => <InnerBlocks.Content />,
@@ -132,8 +132,8 @@ export function createBasicButtonEdit(options: BasicButtonOptions) {
132
132
  <div className="i-button__inner">
133
133
  {hasIcon && icon.position === 'before' && (
134
134
  <span className="i-button__icon" style={iconPreviewStyle}>
135
- <ItemIconPreview icon={icon as unknown as import('~/types').Icon} setAttributes={setIconBase} options={options} />
136
- </span>
135
+ <ItemIconPreview icon={icon as unknown as import('~/types').Icon} setAttributes={setIconBase} options={options} />
136
+ </span>
137
137
  )}
138
138
  <RichText
139
139
  tagName="span"
@@ -145,8 +145,8 @@ export function createBasicButtonEdit(options: BasicButtonOptions) {
145
145
  />
146
146
  {hasIcon && icon.position === 'after' && (
147
147
  <span className="i-button__icon" style={iconPreviewStyle}>
148
- <ItemIconPreview icon={icon as unknown as import('~/types').Icon} setAttributes={setIconBase} options={options} />
149
- </span>
148
+ <ItemIconPreview icon={icon as unknown as import('~/types').Icon} setAttributes={setIconBase} options={options} />
149
+ </span>
150
150
  )}
151
151
  </div>
152
152
  </div>
@@ -10,4 +10,4 @@ export const icon = (
10
10
  fill="#357AB5"
11
11
  />
12
12
  </svg>
13
- );
13
+ )
@@ -25,4 +25,4 @@ export const icon = (
25
25
  fill="#357AB5"
26
26
  />
27
27
  </svg>
28
- );
28
+ )
@@ -11,4 +11,4 @@ export const icon = (
11
11
  fill="#357AB5"
12
12
  />
13
13
  </svg>
14
- );
14
+ )
@@ -1,3 +1,19 @@
1
+ import {__} from '@wordpress/i18n'
2
+
1
3
  export const COLUMNS = [5, 4, 3, 2] as const
2
4
  export const RATIOS = ['4:3', '3:2', '16:9', '1:1', '2:1', '3:4'] as const
3
5
  export const HEADING_LEVELS = [2, 3, 4] as const
6
+
7
+ export const DEFAULT_SHADOWS = [
8
+ {value: 'none', label: __('Žádný', 'brilo-blocks')},
9
+ {value: 'sm', label: __('Malý', 'brilo-blocks')},
10
+ {value: 'md', label: __('Střední', 'brilo-blocks')},
11
+ ] as const
12
+
13
+ export const PADDING_MARKS = [
14
+ {value: 0, label: '0'},
15
+ {value: 0.5, label: '0.5'},
16
+ {value: 1, label: '1'},
17
+ {value: 1.5, label: '1.5'},
18
+ {value: 2, label: '2'},
19
+ ] as const
@@ -1,16 +1,22 @@
1
1
  import {InspectorControls} from '@wordpress/block-editor'
2
2
  import {
3
+ BaseControl,
4
+ ColorPalette,
3
5
  PanelBody,
6
+ RangeControl,
4
7
  __experimentalToggleGroupControl as ToggleGroupControl,
5
8
  __experimentalToggleGroupControlOption as ToggleGroupControlOption,
6
9
  } from '@wordpress/components'
7
10
  import {__} from '@wordpress/i18n'
8
11
  import clsx from 'clsx'
9
12
  import {useGroupBlock} from '~/hooks/useGroupBlock'
10
- import {COLUMNS, HEADING_LEVELS, RATIOS} from './constants'
11
- import type {SignpostGroupAttributes, SignpostGroupOptions} from './types'
13
+ import {useTenantColorPalette} from '~/hooks/useTenantColorPalette'
14
+ import {COLUMNS, DEFAULT_SHADOWS, HEADING_LEVELS, PADDING_MARKS, RATIOS} from './constants'
15
+ import type {SignpostGroupAttributes, SignpostGroupOptions, SignpostShadow} from './types'
12
16
 
13
17
  export function createSignpostGroupEdit(options: SignpostGroupOptions) {
18
+ const exclude = options.exclude ?? []
19
+
14
20
  return function Edit({
15
21
  attributes,
16
22
  setAttributes,
@@ -18,7 +24,8 @@ export function createSignpostGroupEdit(options: SignpostGroupOptions) {
18
24
  attributes: SignpostGroupAttributes
19
25
  setAttributes: (a: Partial<SignpostGroupAttributes>) => void
20
26
  }) {
21
- const {columns, headingLevel, ratio} = attributes
27
+ const {columns, headingLevel, ratio, style, padding} = attributes
28
+ const {paletteColors} = useTenantColorPalette()
22
29
 
23
30
  const {blockProps, innerBlocksProps} = useGroupBlock({
24
31
  blockClassName: clsx(options.blockClassName ?? 'g-signpost wp-block-section'),
@@ -65,6 +72,58 @@ export function createSignpostGroupEdit(options: SignpostGroupOptions) {
65
72
  ))}
66
73
  </ToggleGroupControl>
67
74
  </PanelBody>
75
+ {!exclude.includes('colors') && style && (
76
+ <PanelBody title={__('Styl', 'brilo-blocks')}>
77
+ <ToggleGroupControl
78
+ isBlock
79
+ label={__('Stín', 'brilo-blocks')}
80
+ value={style.shadow}
81
+ onChange={(v) => setAttributes({style: {...style, shadow: v as SignpostShadow}})}
82
+ >
83
+ {DEFAULT_SHADOWS.map((s) => (
84
+ <ToggleGroupControlOption key={s.value} value={s.value} label={s.label} />
85
+ ))}
86
+ </ToggleGroupControl>
87
+ <BaseControl
88
+ label={__('Barva okraje', 'brilo-blocks')}
89
+ help={__('Bez vybrané barvy se okraj nevykreslí.', 'brilo-blocks')}
90
+ id="signpost-group-border-color"
91
+ >
92
+ <ColorPalette
93
+ colors={paletteColors}
94
+ value={style.borderColor || undefined}
95
+ onChange={(value) => setAttributes({style: {...style, borderColor: value ?? ''}})}
96
+ />
97
+ </BaseControl>
98
+ <BaseControl label={__('Barva pozadí', 'brilo-blocks')} id="signpost-group-background-color">
99
+ <ColorPalette
100
+ colors={paletteColors}
101
+ value={style.backgroundColor || undefined}
102
+ onChange={(value) => setAttributes({style: {...style, backgroundColor: value ?? ''}})}
103
+ />
104
+ </BaseControl>
105
+ <BaseControl label={__('Barva textu', 'brilo-blocks')} id="signpost-group-text-color">
106
+ <ColorPalette
107
+ colors={paletteColors}
108
+ value={style.textColor || undefined}
109
+ onChange={(value) => setAttributes({style: {...style, textColor: value ?? ''}})}
110
+ />
111
+ </BaseControl>
112
+ </PanelBody>
113
+ )}
114
+ {!exclude.includes('padding') && padding && (
115
+ <PanelBody title={__('Padding', 'brilo-blocks')}>
116
+ <RangeControl
117
+ label={__('Vnitřní odsazení (rem)', 'brilo-blocks')}
118
+ value={padding.value}
119
+ onChange={(v) => setAttributes({padding: {value: v ?? 0}})}
120
+ min={0}
121
+ max={2}
122
+ step={0.5}
123
+ marks={[...PADDING_MARKS]}
124
+ />
125
+ </PanelBody>
126
+ )}
68
127
  </InspectorControls>
69
128
  <div {...blockProps}>
70
129
  <div {...innerBlocksProps} />
@@ -1,7 +1,7 @@
1
1
  import {InnerBlocks} from '@wordpress/block-editor'
2
2
  import type {BlockConfiguration} from '@wordpress/blocks'
3
3
  import {__} from '@wordpress/i18n'
4
- import {COLUMNS, HEADING_LEVELS, RATIOS} from './constants'
4
+ import {COLUMNS, DEFAULT_SHADOWS, HEADING_LEVELS, RATIOS} from './constants'
5
5
  import {createSignpostGroupEdit} from './edit'
6
6
  import {icon as defaultIcon} from './icon'
7
7
  import type {SignpostGroupAttributes, SignpostGroupOptions} from './types'
@@ -9,6 +9,40 @@ import type {SignpostGroupAttributes, SignpostGroupOptions} from './types'
9
9
  export type {SignpostGroupAttributes, SignpostGroupOptions}
10
10
 
11
11
  export function createSignpostGroupBlock(options: SignpostGroupOptions): BlockConfiguration<SignpostGroupAttributes> {
12
+ const exclude = options.exclude ?? []
13
+
14
+ const attributes: Record<string, unknown> = {
15
+ columns: {
16
+ type: 'number',
17
+ default: COLUMNS[1],
18
+ enum: [...COLUMNS],
19
+ },
20
+ ratio: {
21
+ type: 'string',
22
+ default: RATIOS[0],
23
+ enum: [...RATIOS],
24
+ },
25
+ headingLevel: {
26
+ type: 'number',
27
+ default: HEADING_LEVELS[0],
28
+ enum: [...HEADING_LEVELS],
29
+ },
30
+ }
31
+
32
+ if (!exclude.includes('colors')) {
33
+ attributes.style = {
34
+ type: 'object',
35
+ default: {shadow: DEFAULT_SHADOWS[0].value, borderColor: '', backgroundColor: '', textColor: ''},
36
+ }
37
+ }
38
+
39
+ if (!exclude.includes('padding')) {
40
+ attributes.padding = {
41
+ type: 'object',
42
+ default: {value: 1},
43
+ }
44
+ }
45
+
12
46
  return {
13
47
  name: options.name,
14
48
  title: options.title ?? __('Rozcestník', 'brilo-blocks'),
@@ -17,23 +51,7 @@ export function createSignpostGroupBlock(options: SignpostGroupOptions): BlockCo
17
51
  ...(options.parent && {parent: options.parent}),
18
52
  icon: options.icon ?? {src: defaultIcon},
19
53
  supports: {html: false, customClassName: false},
20
- attributes: {
21
- columns: {
22
- type: 'number',
23
- default: COLUMNS[1],
24
- enum: [...COLUMNS],
25
- },
26
- ratio: {
27
- type: 'string',
28
- default: RATIOS[0],
29
- enum: [...RATIOS],
30
- },
31
- headingLevel: {
32
- type: 'number',
33
- default: HEADING_LEVELS[0],
34
- enum: [...HEADING_LEVELS],
35
- },
36
- },
54
+ attributes,
37
55
  edit: createSignpostGroupEdit(options),
38
56
  save: () => <InnerBlocks.Content />,
39
57
  } as unknown as BlockConfiguration<SignpostGroupAttributes>
@@ -1,5 +1,5 @@
1
- export type {SignpostGroupAttributes, SignpostGroupOptions} from './types'
2
1
  export {createSignpostGroupBlock} from './factory'
2
+ export type {SignpostGroupAttributes, SignpostGroupOptions} from './types'
3
3
 
4
4
  import type {SignpostGroupOptions} from './types'
5
5
 
@@ -1,9 +1,23 @@
1
- import {BriloBlockType} from '~/types'
1
+ import type {BriloBlockType} from '~/types'
2
+ import type {DEFAULT_SHADOWS} from './constants'
3
+
4
+ export type SignpostShadow = (typeof DEFAULT_SHADOWS)[number]['value']
5
+
6
+ export type ExcludableSignpostAttr = 'colors' | 'padding'
2
7
 
3
8
  export interface SignpostGroupAttributes extends Record<string, unknown> {
4
9
  columns: number
5
10
  headingLevel: number
6
11
  ratio: string
12
+ style: {
13
+ shadow: SignpostShadow
14
+ borderColor: string
15
+ backgroundColor: string
16
+ textColor: string
17
+ }
18
+ padding: {value: number}
7
19
  }
8
20
 
9
- export interface SignpostGroupOptions extends BriloBlockType {}
21
+ export interface SignpostGroupOptions extends BriloBlockType {
22
+ exclude?: ExcludableSignpostAttr[]
23
+ }
@@ -1,4 +1,2 @@
1
- import {__} from '@wordpress/i18n'
2
-
3
- // No item-specific constants yet, but file is required by anatomy
4
- export {}
1
+ export const BUTTON_TYPES = ['button', 'link'] as const
2
+ export const BUTTON_VARIANTS = ['primary', 'secondary'] as const
@@ -1,9 +1,18 @@
1
- import {InspectorControls, RichText, useBlockProps} from '@wordpress/block-editor'
2
- import {Button, PanelBody, TextControl, ToggleControl} from '@wordpress/components'
1
+ import {ColorPalette, InspectorControls, RichText} from '@wordpress/block-editor'
2
+ import {
3
+ Button,
4
+ PanelBody,
5
+ TextControl,
6
+ ToggleControl,
7
+ __experimentalToggleGroupControl as ToggleGroupControl,
8
+ __experimentalToggleGroupControlOption as ToggleGroupControlOption,
9
+ } from '@wordpress/components'
3
10
  import {__} from '@wordpress/i18n'
4
11
  import {ImagePickerControl} from '~/components/ImagePicker'
5
- import type {SignpostItemAttributes, SignpostItemOptions} from './types'
12
+ import type {SignpostItemAttributes, SignpostItemOptions, ButtonType, ButtonVariant} from './types'
13
+ import {BUTTON_TYPES, BUTTON_VARIANTS} from './constants'
6
14
  import {useGroupBlock} from '~/hooks/useGroupBlock'
15
+ import {useTenantColorPalette} from '~/hooks/useTenantColorPalette'
7
16
  import clsx from 'clsx'
8
17
 
9
18
  export function createSignpostItemEdit(options: SignpostItemOptions) {
@@ -14,7 +23,13 @@ export function createSignpostItemEdit(options: SignpostItemOptions) {
14
23
  attributes: SignpostItemAttributes
15
24
  setAttributes: (a: Partial<SignpostItemAttributes>) => void
16
25
  }) {
17
- const {title, img, button, url} = attributes
26
+ const {title, img, url} = attributes
27
+ const button = {
28
+ ...attributes.button,
29
+ type: attributes.button.type ?? BUTTON_TYPES[0],
30
+ variant: attributes.button.variant ?? BUTTON_VARIANTS[0],
31
+ }
32
+ const {paletteColors} = useTenantColorPalette()
18
33
 
19
34
  const {blockProps, innerBlocksProps} = useGroupBlock({
20
35
  blockClassName: clsx(options.blockClassName ?? 'i-signpost'),
@@ -37,6 +52,44 @@ export function createSignpostItemEdit(options: SignpostItemOptions) {
37
52
  value={button.title}
38
53
  onChange={(v) => setAttributes({button: {...button, title: v}})}
39
54
  />
55
+ <ToggleGroupControl
56
+ label={__('Typ tlačítka', 'brilo-blocks')}
57
+ value={button.type}
58
+ onChange={(v) => setAttributes({button: {...button, type: v as ButtonType}})}
59
+ isBlock
60
+ >
61
+ {BUTTON_TYPES.map((type) => (
62
+ <ToggleGroupControlOption key={type} value={type} label={type} />
63
+ ))}
64
+ </ToggleGroupControl>
65
+ {button.type === 'button' ? (
66
+ <>
67
+ <ToggleGroupControl
68
+ label={__('Varianta', 'brilo-blocks')}
69
+ value={button.variant}
70
+ onChange={(v) => setAttributes({button: {...button, variant: v as ButtonVariant}})}
71
+ isBlock
72
+ >
73
+ {BUTTON_VARIANTS.map((variant) => (
74
+ <ToggleGroupControlOption key={variant} value={variant} label={variant} />
75
+ ))}
76
+ </ToggleGroupControl>
77
+ <ToggleControl
78
+ label={__('Outline', 'brilo-blocks')}
79
+ checked={button.outline}
80
+ onChange={(v) => setAttributes({button: {...button, outline: v}})}
81
+ />
82
+ </>
83
+ ) : (
84
+ <>
85
+ <p>{__('Barva textu', 'brilo-blocks')}</p>
86
+ <ColorPalette
87
+ colors={paletteColors}
88
+ value={button.color || undefined}
89
+ onChange={(v) => setAttributes({button: {...button, color: v ?? ''}})}
90
+ />
91
+ </>
92
+ )}
40
93
  </PanelBody>
41
94
  <PanelBody title={__('Odkaz', 'brilo-blocks')} initialOpen={false}>
42
95
  <TextControl label={__('URL', 'brilo-blocks')} value={url.src} onChange={(v) => setAttributes({url: {...url, src: v}})} />
@@ -3,6 +3,7 @@ import {__} from '@wordpress/i18n'
3
3
  import {createSignpostItemEdit} from './edit'
4
4
  import {icon as defaultIcon} from './icon'
5
5
  import type {SignpostItemAttributes, SignpostItemOptions} from './types'
6
+ import {BUTTON_TYPES} from './constants'
6
7
  import {InnerBlocks} from '@wordpress/block-editor'
7
8
 
8
9
  export type {SignpostItemAttributes, SignpostItemOptions}
@@ -19,7 +20,7 @@ export function createSignpostItemBlock(options: SignpostItemOptions): BlockConf
19
20
  attributes: {
20
21
  title: {type: 'string', default: ''},
21
22
  img: {type: 'object', default: {id: 0, alt: ''}},
22
- button: {type: 'object', default: {title: ''}},
23
+ button: {type: 'object', default: {title: '', type: BUTTON_TYPES[0], variant: 'primary', outline: false, color: ''}},
23
24
  url: {type: 'object', default: {src: '', blank: false}},
24
25
  },
25
26
  edit: createSignpostItemEdit(options),
@@ -1,10 +1,20 @@
1
- import {BriloBlockType} from '~/types'
2
- import {ImageValue} from '~/components/ImagePicker/ImagePicker'
1
+ import type {ImageValue} from '~/components/ImagePicker/ImagePicker'
2
+ import type {BriloBlockType} from '~/types'
3
+ import type {BUTTON_TYPES, BUTTON_VARIANTS} from './constants'
4
+
5
+ export type ButtonType = (typeof BUTTON_TYPES)[number]
6
+ export type ButtonVariant = (typeof BUTTON_VARIANTS)[number]
3
7
 
4
8
  export interface SignpostItemAttributes extends Record<string, unknown> {
5
9
  title: string
6
10
  img: ImageValue
7
- button: {title: string}
11
+ button: {
12
+ title: string
13
+ type: ButtonType
14
+ variant: ButtonVariant
15
+ outline: boolean
16
+ color: string
17
+ }
8
18
  url: {src: string; blank: boolean}
9
19
  }
10
20
 
@@ -3,12 +3,15 @@ import {
3
3
  PanelBody,
4
4
  SelectControl,
5
5
  ToggleControl,
6
+ BaseControl,
7
+ ColorPalette,
6
8
  __experimentalToggleGroupControl as ToggleGroupControl,
7
9
  __experimentalToggleGroupControlOption as ToggleGroupControlOption,
8
10
  } from '@wordpress/components'
9
11
  import {__} from '@wordpress/i18n'
10
12
  import clsx from 'clsx'
11
13
  import {useGroupBlock} from '~/hooks/useGroupBlock'
14
+ import {useTenantColorPalette} from '~/hooks/useTenantColorPalette'
12
15
  import {
13
16
  DEFAULT_ALIGNMENTS,
14
17
  DEFAULT_COLUMNS,
@@ -54,6 +57,7 @@ export function createUspGroupEdit(options: UspGroupOptions) {
54
57
  setAttributes: (a: Partial<UspGroupAttributes>) => void
55
58
  }) {
56
59
  const {columns, headingSettings, content, style} = attributes
60
+ const {paletteColors} = useTenantColorPalette()
57
61
 
58
62
  const {blockProps, innerBlocksProps} = useGroupBlock({
59
63
  blockClassName: clsx(
@@ -138,23 +142,42 @@ export function createUspGroupEdit(options: UspGroupOptions) {
138
142
  </ToggleGroupControl>
139
143
  </PanelBody>
140
144
  <PanelBody title={__('Styl', 'brilo-blocks')}>
141
- <ToggleControl
142
- label={__('Karta', 'brilo-blocks')}
143
- checked={style.card}
144
- onChange={(v) => setAttributes({style: {...style, card: v}})}
145
- />
146
- {style.card && (
147
- <ToggleGroupControl
148
- isBlock
149
- label={__('Stín', 'brilo-blocks')}
150
- value={style.shadow}
151
- onChange={(v) => setAttributes({style: {...style, shadow: v as UspShadow}})}
152
- >
153
- {SHADOWS.map((s) => (
154
- <ToggleGroupControlOption key={s.value} value={s.value} label={s.label} />
155
- ))}
156
- </ToggleGroupControl>
157
- )}
145
+ <ToggleGroupControl
146
+ isBlock
147
+ label={__('Stín', 'brilo-blocks')}
148
+ value={style.shadow}
149
+ onChange={(v) => setAttributes({style: {...style, shadow: v as UspShadow}})}
150
+ >
151
+ {SHADOWS.map((s) => (
152
+ <ToggleGroupControlOption key={s.value} value={s.value} label={s.label} />
153
+ ))}
154
+ </ToggleGroupControl>
155
+
156
+ <BaseControl
157
+ label={__('Barva okraje', 'brilo-blocks')}
158
+ help={__('Bez vybrané barvy se okraj nevykreslí.', 'brilo-blocks')}
159
+ id="usp-group-border-color"
160
+ >
161
+ <ColorPalette
162
+ colors={paletteColors}
163
+ value={style.borderColor || undefined}
164
+ onChange={(value) => setAttributes({style: {...style, borderColor: value ?? ''}})}
165
+ />
166
+ </BaseControl>
167
+ <BaseControl label={__('Barva pozadí', 'brilo-blocks')} id="usp-group-background-color">
168
+ <ColorPalette
169
+ colors={paletteColors}
170
+ value={style.backgroundColor || undefined}
171
+ onChange={(value) => setAttributes({style: {...style, backgroundColor: value ?? ''}})}
172
+ />
173
+ </BaseControl>
174
+ <BaseControl label={__('Barva textu', 'brilo-blocks')} id="usp-group-text-color">
175
+ <ColorPalette
176
+ colors={paletteColors}
177
+ value={style.textColor || undefined}
178
+ onChange={(value) => setAttributes({style: {...style, textColor: value ?? ''}})}
179
+ />
180
+ </BaseControl>
158
181
  </PanelBody>
159
182
  <PanelBody title={__('Ikona', 'brilo-blocks')} initialOpen={false}>
160
183
  <ToggleGroupControl
@@ -91,6 +91,9 @@ export function createUspGroupBlock<
91
91
  card: false,
92
92
  direction: directions[0].value,
93
93
  align: alignments[0].value,
94
+ borderColor: '',
95
+ backgroundColor: '',
96
+ textColor: '',
94
97
  icon: {size: iconSizes[2]?.value ?? iconSizes[0].value, color: iconColors[0].value, background: iconBackgrounds[0].value},
95
98
  },
96
99
  },