@brilo/base-blocks 0.1.6 → 0.1.8

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 (103) hide show
  1. package/build/blocks/groups/content-group/constants.d.ts +2 -0
  2. package/build/blocks/groups/content-group/constants.d.ts.map +1 -0
  3. package/build/blocks/groups/content-group/constants.js +1 -0
  4. package/build/blocks/groups/content-group/edit.d.ts +6 -0
  5. package/build/blocks/groups/content-group/edit.d.ts.map +1 -0
  6. package/build/blocks/groups/content-group/edit.js +20 -0
  7. package/build/blocks/groups/content-group/factory.d.ts +4 -0
  8. package/build/blocks/groups/content-group/factory.d.ts.map +1 -0
  9. package/build/blocks/groups/content-group/factory.js +25 -0
  10. package/build/blocks/groups/content-group/icon.d.ts +2 -0
  11. package/build/blocks/groups/content-group/icon.d.ts.map +1 -0
  12. package/build/blocks/groups/content-group/icon.js +2 -0
  13. package/build/blocks/groups/content-group/index.d.ts +5 -0
  14. package/build/blocks/groups/content-group/index.d.ts.map +1 -0
  15. package/build/blocks/groups/content-group/index.js +21 -0
  16. package/build/blocks/groups/content-group/types.d.ts +9 -0
  17. package/build/blocks/groups/content-group/types.d.ts.map +1 -0
  18. package/build/blocks/groups/content-group/types.js +1 -0
  19. package/build/blocks/link/link-item/constants.d.ts +11 -0
  20. package/build/blocks/link/link-item/constants.d.ts.map +1 -0
  21. package/build/blocks/link/link-item/constants.js +6 -0
  22. package/build/blocks/link/link-item/edit.d.ts +6 -0
  23. package/build/blocks/link/link-item/edit.d.ts.map +1 -0
  24. package/build/blocks/link/link-item/edit.js +25 -0
  25. package/build/blocks/link/link-item/factory.d.ts +4 -0
  26. package/build/blocks/link/link-item/factory.d.ts.map +1 -0
  27. package/build/blocks/link/link-item/factory.js +27 -0
  28. package/build/blocks/link/link-item/icon.d.ts +2 -0
  29. package/build/blocks/link/link-item/icon.d.ts.map +1 -0
  30. package/build/blocks/link/link-item/icon.js +2 -0
  31. package/build/blocks/link/link-item/index.d.ts +5 -0
  32. package/build/blocks/link/link-item/index.d.ts.map +1 -0
  33. package/build/blocks/link/link-item/index.js +6 -0
  34. package/build/blocks/link/link-item/types.d.ts +25 -0
  35. package/build/blocks/link/link-item/types.d.ts.map +1 -0
  36. package/build/blocks/link/link-item/types.js +1 -0
  37. package/build/blocks/map/map-group/constants.d.ts +1 -0
  38. package/build/blocks/map/map-group/constants.d.ts.map +1 -1
  39. package/build/blocks/map/map-group/constants.js +2 -0
  40. package/build/blocks/map/map-group/edit.d.ts.map +1 -1
  41. package/build/blocks/map/map-group/edit.js +19 -11
  42. package/build/blocks/map/map-group/factory.d.ts +3 -1
  43. package/build/blocks/map/map-group/factory.d.ts.map +1 -1
  44. package/build/blocks/map/map-group/factory.js +24 -5
  45. package/build/blocks/map/map-group/index.d.ts.map +1 -1
  46. package/build/blocks/map/map-group/index.js +1 -0
  47. package/build/blocks/map/map-group/types.d.ts +18 -4
  48. package/build/blocks/map/map-group/types.d.ts.map +1 -1
  49. package/build/blocks/sections/base-section/attributes.d.ts +5 -1
  50. package/build/blocks/sections/base-section/attributes.d.ts.map +1 -1
  51. package/build/blocks/sections/base-section/attributes.js +5 -1
  52. package/build/blocks/sections/base-section/constants.d.ts +0 -16
  53. package/build/blocks/sections/base-section/constants.d.ts.map +1 -1
  54. package/build/blocks/sections/base-section/constants.js +0 -7
  55. package/build/blocks/sections/base-section/controls.d.ts.map +1 -1
  56. package/build/blocks/sections/base-section/controls.js +6 -3
  57. package/build/blocks/sections/base-section/edit.d.ts.map +1 -1
  58. package/build/blocks/sections/base-section/edit.js +8 -1
  59. package/build/blocks/sections/base-section/factory.d.ts.map +1 -1
  60. package/build/blocks/sections/base-section/factory.js +3 -8
  61. package/build/blocks/sections/base-section/index.d.ts +1 -1
  62. package/build/blocks/sections/base-section/index.d.ts.map +1 -1
  63. package/build/blocks/sections/base-section/index.js +1 -1
  64. package/build/blocks/sections/base-section/types.d.ts +1 -0
  65. package/build/blocks/sections/base-section/types.d.ts.map +1 -1
  66. package/build/hooks/useTenantColorPalette.d.ts +9 -0
  67. package/build/hooks/useTenantColorPalette.d.ts.map +1 -0
  68. package/build/hooks/useTenantColorPalette.js +12 -0
  69. package/build/index.d.ts +5 -1
  70. package/build/index.d.ts.map +1 -1
  71. package/build/index.js +3 -1
  72. package/package.json +2 -1
  73. package/src/blocks/groups/content-group/constants.ts +1 -0
  74. package/src/blocks/groups/content-group/edit.tsx +51 -0
  75. package/src/blocks/groups/content-group/editor.scss +10 -0
  76. package/src/blocks/groups/content-group/factory.tsx +26 -0
  77. package/src/blocks/groups/content-group/icon.tsx +23 -0
  78. package/src/blocks/groups/content-group/index.ts +25 -0
  79. package/src/blocks/groups/content-group/types.ts +10 -0
  80. package/src/blocks/link/link-item/constants.ts +7 -0
  81. package/src/blocks/link/link-item/edit.tsx +116 -0
  82. package/src/blocks/link/link-item/editor.scss +11 -0
  83. package/src/blocks/link/link-item/factory.tsx +29 -0
  84. package/src/blocks/link/link-item/icon.tsx +6 -0
  85. package/src/blocks/link/link-item/index.ts +10 -0
  86. package/src/blocks/link/link-item/types.ts +24 -0
  87. package/src/blocks/map/map-group/constants.ts +3 -0
  88. package/src/blocks/map/map-group/edit.tsx +74 -8
  89. package/src/blocks/map/map-group/editor.scss +7 -0
  90. package/src/blocks/map/map-group/factory.tsx +26 -4
  91. package/src/blocks/map/map-group/index.ts +1 -0
  92. package/src/blocks/map/map-group/types.ts +18 -4
  93. package/src/blocks/responsive-grid/responsive-grid-item/editor.scss +9 -0
  94. package/src/blocks/sections/base-section/attributes.ts +5 -1
  95. package/src/blocks/sections/base-section/constants.ts +0 -8
  96. package/src/blocks/sections/base-section/controls.tsx +18 -8
  97. package/src/blocks/sections/base-section/edit.tsx +8 -1
  98. package/src/blocks/sections/base-section/factory.tsx +3 -7
  99. package/src/blocks/sections/base-section/index.ts +1 -1
  100. package/src/blocks/sections/base-section/types.ts +1 -0
  101. package/src/editor.scss +2 -0
  102. package/src/hooks/useTenantColorPalette.ts +21 -0
  103. package/src/index.ts +4 -1
@@ -1 +1 @@
1
- {"version":3,"file":"controls.d.ts","sourceRoot":"","sources":["../../../../src/blocks/sections/base-section/controls.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAC,mBAAmB,EAAE,kBAAkB,EAAC,MAAM,SAAS,CAAA;AAMpE,UAAU,iBAAiB;IACzB,UAAU,EAAE,mBAAmB,CAAA;IAC/B,aAAa,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,mBAAmB,CAAC,KAAK,IAAI,CAAA;IAC5D,OAAO,EAAE,kBAAkB,EAAE,CAAA;CAC9B;AAED,wBAAgB,YAAY,CAAC,EAAC,UAAU,EAAE,aAAa,EAAE,OAAO,EAAC,EAAE,iBAAiB,+BAiDnF"}
1
+ {"version":3,"file":"controls.d.ts","sourceRoot":"","sources":["../../../../src/blocks/sections/base-section/controls.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAC,mBAAmB,EAAE,kBAAkB,EAAC,MAAM,SAAS,CAAA;AAMpE,UAAU,iBAAiB;IACzB,UAAU,EAAE,mBAAmB,CAAA;IAC/B,aAAa,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,mBAAmB,CAAC,KAAK,IAAI,CAAA;IAC5D,OAAO,EAAE,kBAAkB,EAAE,CAAA;CAC9B;AAED,wBAAgB,YAAY,CAAC,EAAC,UAAU,EAAE,aAAa,EAAE,OAAO,EAAC,EAAE,iBAAiB,+BAyDnF"}
@@ -1,8 +1,11 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { ColorPalette, ContrastChecker } from '@wordpress/block-editor';
2
3
  import { PanelBody, SelectControl, TextControl, __experimentalToggleGroupControl as ToggleGroupControl, __experimentalToggleGroupControlOption as ToggleGroupControlOption, } from '@wordpress/components';
3
4
  import { __ } from '@wordpress/i18n';
4
- import { BACKGROUNDS, SPACING_POSITIONS, SPACING_SIZES } from './constants';
5
+ import { useTenantColorPalette } from '../../../hooks/useTenantColorPalette';
6
+ import { SPACING_POSITIONS, SPACING_SIZES } from './constants';
5
7
  export function BaseControls({ attributes, setAttributes, exclude }) {
6
- const { id, spacing, background } = attributes;
7
- return (_jsxs(_Fragment, { children: [!exclude.includes('spacing') && (_jsxs(PanelBody, { title: __('Rozestupy', 'brilo-blocks'), children: [_jsx(SelectControl, { label: __('Pozice', 'brilo-blocks'), value: spacing.position, options: [...SPACING_POSITIONS], onChange: (value) => setAttributes({ spacing: { ...spacing, position: value } }) }), _jsx(ToggleGroupControl, { label: __('Velikost', 'brilo-blocks'), value: spacing.size, onChange: (value) => setAttributes({ spacing: { ...spacing, size: value } }), isBlock: true, children: SPACING_SIZES.map((s) => (_jsx(ToggleGroupControlOption, { value: s, label: s === 'default' ? __('Výchozí', 'brilo-blocks') : s.toUpperCase() }, s))) })] })), !exclude.includes('background') && (_jsx(PanelBody, { title: __('Pozadí', 'brilo-blocks'), children: _jsx(SelectControl, { label: __('Pozadí', 'brilo-blocks'), value: background, options: [...BACKGROUNDS], onChange: (value) => setAttributes({ background: value }) }) })), !exclude.includes('id') && (_jsx(PanelBody, { title: __('Kotva', 'brilo-blocks'), initialOpen: false, children: _jsx(TextControl, { label: __('ID sekce', 'brilo-blocks'), value: id !== null && id !== void 0 ? id : '', onChange: (value) => setAttributes({ id: value }), help: __('Použije se jako HTML atribut id pro kotevní odkaz.', 'brilo-blocks') }) }))] }));
8
+ const { id, spacing, background, textColor } = attributes;
9
+ const { paletteColors, resolveHex } = useTenantColorPalette();
10
+ return (_jsxs(_Fragment, { children: [!exclude.includes('spacing') && (_jsxs(PanelBody, { title: __('Rozestupy', 'brilo-blocks'), children: [_jsx(SelectControl, { label: __('Pozice', 'brilo-blocks'), value: spacing.position, options: [...SPACING_POSITIONS], onChange: (value) => setAttributes({ spacing: { ...spacing, position: value } }) }), _jsx(ToggleGroupControl, { label: __('Velikost', 'brilo-blocks'), value: spacing.size, onChange: (value) => setAttributes({ spacing: { ...spacing, size: value } }), isBlock: true, children: SPACING_SIZES.map((s) => (_jsx(ToggleGroupControlOption, { value: s, label: s === 'default' ? __('Výchozí', 'brilo-blocks') : s.toUpperCase() }, s))) })] })), !exclude.includes('background') && (_jsxs(PanelBody, { title: __('Barvy', 'brilo-blocks'), children: [_jsx("p", { children: __('Pozadí', 'brilo-blocks') }), _jsx(ColorPalette, { colors: paletteColors, value: background || undefined, onChange: (value) => setAttributes({ background: value !== null && value !== void 0 ? value : '' }) }), _jsx("p", { children: __('Barva textu', 'brilo-blocks') }), _jsx(ColorPalette, { colors: paletteColors, value: textColor || undefined, onChange: (value) => setAttributes({ textColor: value !== null && value !== void 0 ? value : '' }) }), !!background && !!textColor && _jsx(ContrastChecker, { backgroundColor: resolveHex(background), textColor: resolveHex(textColor) })] })), !exclude.includes('id') && (_jsx(PanelBody, { title: __('Kotva', 'brilo-blocks'), initialOpen: false, children: _jsx(TextControl, { label: __('ID sekce', 'brilo-blocks'), value: id !== null && id !== void 0 ? id : '', onChange: (value) => setAttributes({ id: value }), help: __('Použije se jako HTML atribut id pro kotevní odkaz.', 'brilo-blocks') }) }))] }));
8
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"edit.d.ts","sourceRoot":"","sources":["../../../../src/blocks/sections/base-section/edit.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,mBAAmB,CAAA;AACrD,OAAO,KAAK,EAAC,mBAAmB,EAAE,kBAAkB,EAAC,MAAM,SAAS,CAAA;AAGpE,wBAAgB,qBAAqB,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,kBAAkB,CAAC,MAAM,CAAC,IAGlH,OAAO,cAAc,CAAC,mBAAmB,GAAG,MAAM,CAAC,iCAyBzE"}
1
+ {"version":3,"file":"edit.d.ts","sourceRoot":"","sources":["../../../../src/blocks/sections/base-section/edit.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,mBAAmB,CAAA;AACrD,OAAO,KAAK,EAAC,mBAAmB,EAAE,kBAAkB,EAAC,MAAM,SAAS,CAAA;AAGpE,wBAAgB,qBAAqB,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,kBAAkB,CAAC,MAAM,CAAC,IAGlH,OAAO,cAAc,CAAC,mBAAmB,GAAG,MAAM,CAAC,iCAgCzE"}
@@ -7,7 +7,14 @@ export function createBaseSectionEdit(options) {
7
7
  return function Edit(props) {
8
8
  var _a;
9
9
  const { attributes, setAttributes } = props;
10
- const blockProps = useBlockProps({ className: options.blockClassName });
10
+ const { background, textColor } = attributes;
11
+ const blockProps = useBlockProps({
12
+ className: options.blockClassName,
13
+ style: {
14
+ ...(background ? { backgroundColor: background, padding: '16px' } : {}),
15
+ ...(textColor ? { color: textColor } : {}),
16
+ },
17
+ });
11
18
  const innerBlocksProps = useInnerBlocksProps({ className: options.containerClassName }, {
12
19
  allowedBlocks: options.allowedBlocks,
13
20
  orientation: 'vertical',
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/blocks/sections/base-section/factory.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,mBAAmB,CAAA;AAMzD,OAAO,KAAK,EAAC,mBAAmB,EAAE,kBAAkB,EAAE,kBAAkB,EAAC,MAAM,SAAS,CAAA;AAExF,YAAY,EAAC,mBAAmB,EAAE,kBAAkB,EAAE,kBAAkB,EAAC,CAAA;AAEzE,wBAAgB,sBAAsB,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACnG,OAAO,EAAE,kBAAkB,CAAC,MAAM,CAAC,GAClC,kBAAkB,CAAC,mBAAmB,GAAG,MAAM,CAAC,CAiClD"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/blocks/sections/base-section/factory.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,mBAAmB,CAAA;AAKzD,OAAO,KAAK,EAAC,mBAAmB,EAAE,kBAAkB,EAAE,kBAAkB,EAAC,MAAM,SAAS,CAAA;AAExF,YAAY,EAAC,mBAAmB,EAAE,kBAAkB,EAAE,kBAAkB,EAAC,CAAA;AAEzE,wBAAgB,sBAAsB,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACnG,OAAO,EAAE,kBAAkB,CAAC,MAAM,CAAC,GAClC,kBAAkB,CAAC,mBAAmB,GAAG,MAAM,CAAC,CA8BlD"}
@@ -2,7 +2,6 @@ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { InnerBlocks } from '@wordpress/block-editor';
3
3
  import { __ } from '@wordpress/i18n';
4
4
  import { baseAttributes } from './attributes';
5
- import { BACKGROUNDS } from './constants';
6
5
  import { createBaseSectionEdit } from './edit';
7
6
  import { icon as defaultIcon } from './icon';
8
7
  export function createBaseSectionBlock(options) {
@@ -10,13 +9,9 @@ export function createBaseSectionBlock(options) {
10
9
  const exclude = (_a = options.exclude) !== null && _a !== void 0 ? _a : [];
11
10
  const attributes = {};
12
11
  for (const [key, value] of Object.entries(baseAttributes)) {
13
- if (!exclude.includes(key)) {
14
- if (key === 'background') {
15
- attributes[key] = { ...value, enum: BACKGROUNDS.map((b) => b.value) };
16
- }
17
- else {
18
- attributes[key] = value;
19
- }
12
+ const excludeKey = key === 'textColor' ? 'background' : key;
13
+ if (!exclude.includes(excludeKey)) {
14
+ attributes[key] = value;
20
15
  }
21
16
  }
22
17
  if (options.extraAttributes) {
@@ -1,6 +1,6 @@
1
1
  export type { BaseBlockAttributes, BaseSectionOptions, ExcludableBaseAttr } from './types';
2
2
  export { baseAttributes } from './attributes';
3
- export { BACKGROUNDS, SPACING_POSITIONS, SPACING_SIZES } from './constants';
3
+ export { SPACING_POSITIONS, SPACING_SIZES } from './constants';
4
4
  export { createBaseSectionEdit } from './edit';
5
5
  export { createBaseSectionBlock } from './factory';
6
6
  import type { BaseSectionOptions } from './types';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/blocks/sections/base-section/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAC,mBAAmB,EAAE,kBAAkB,EAAE,kBAAkB,EAAC,MAAM,SAAS,CAAA;AACxF,OAAO,EAAC,cAAc,EAAC,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAC,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAC,MAAM,aAAa,CAAA;AACzE,OAAO,EAAC,qBAAqB,EAAC,MAAM,QAAQ,CAAA;AAC5C,OAAO,EAAC,sBAAsB,EAAC,MAAM,WAAW,CAAA;AAEhD,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,SAAS,CAAA;AAE/C,eAAO,MAAM,mBAAmB,EAAE,kBAKjC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/blocks/sections/base-section/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAC,mBAAmB,EAAE,kBAAkB,EAAE,kBAAkB,EAAC,MAAM,SAAS,CAAA;AACxF,OAAO,EAAC,cAAc,EAAC,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAC,iBAAiB,EAAE,aAAa,EAAC,MAAM,aAAa,CAAA;AAC5D,OAAO,EAAC,qBAAqB,EAAC,MAAM,QAAQ,CAAA;AAC5C,OAAO,EAAC,sBAAsB,EAAC,MAAM,WAAW,CAAA;AAEhD,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,SAAS,CAAA;AAE/C,eAAO,MAAM,mBAAmB,EAAE,kBAKjC,CAAA"}
@@ -1,5 +1,5 @@
1
1
  export { baseAttributes } from './attributes';
2
- export { BACKGROUNDS, SPACING_POSITIONS, SPACING_SIZES } from './constants';
2
+ export { SPACING_POSITIONS, SPACING_SIZES } from './constants';
3
3
  export { createBaseSectionEdit } from './edit';
4
4
  export { createBaseSectionBlock } from './factory';
5
5
  export const baseSectionDefaults = {
@@ -8,6 +8,7 @@ export interface BaseBlockAttributes extends Record<string, unknown> {
8
8
  size: string;
9
9
  };
10
10
  background: string;
11
+ textColor: string;
11
12
  }
12
13
  export type ExcludableBaseAttr = 'spacing' | 'background' | 'id';
13
14
  export interface BaseSectionOptions<TExtra extends Record<string, unknown> = Record<string, never>> extends BriloBlockType {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/blocks/sections/base-section/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,kBAAkB,EAAE,cAAc,EAAC,MAAM,mBAAmB,CAAA;AACzE,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,OAAO,CAAA;AACpC,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,SAAS,CAAA;AAE3C,MAAM,WAAW,mBAAoB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAClE,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE;QACP,QAAQ,EAAE,MAAM,CAAA;QAChB,IAAI,EAAE,MAAM,CAAA;KACb,CAAA;IACD,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,YAAY,GAAG,IAAI,CAAA;AAEhE,MAAM,WAAW,kBAAkB,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAE,SAAQ,cAAc;IACxH,QAAQ,CAAC,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAA;IACzC,eAAe,CAAC,EAAE;SACf,CAAC,IAAI,MAAM,MAAM,GAAG;YACnB,IAAI,EAAE,MAAM,CAAA;YACZ,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;SACnB;KACF,CAAA;IACD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,CAAC,mBAAmB,GAAG,MAAM,CAAC,KAAK,SAAS,CAAA;IAClF,OAAO,CAAC,EAAE,kBAAkB,EAAE,CAAA;CAC/B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/blocks/sections/base-section/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,kBAAkB,EAAE,cAAc,EAAC,MAAM,mBAAmB,CAAA;AACzE,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,OAAO,CAAA;AACpC,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,SAAS,CAAA;AAE3C,MAAM,WAAW,mBAAoB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAClE,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE;QACP,QAAQ,EAAE,MAAM,CAAA;QAChB,IAAI,EAAE,MAAM,CAAA;KACb,CAAA;IACD,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,YAAY,GAAG,IAAI,CAAA;AAEhE,MAAM,WAAW,kBAAkB,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAE,SAAQ,cAAc;IACxH,QAAQ,CAAC,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAA;IACzC,eAAe,CAAC,EAAE;SACf,CAAC,IAAI,MAAM,MAAM,GAAG;YACnB,IAAI,EAAE,MAAM,CAAA;YACZ,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;SACnB;KACF,CAAA;IACD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,CAAC,mBAAmB,GAAG,MAAM,CAAC,KAAK,SAAS,CAAA;IAClF,OAAO,CAAC,EAAE,kBAAkB,EAAE,CAAA;CAC/B"}
@@ -0,0 +1,9 @@
1
+ export declare function useTenantColorPalette(): {
2
+ paletteColors: {
3
+ color: string;
4
+ name: string;
5
+ slug: string;
6
+ }[];
7
+ resolveHex: (value: string) => string;
8
+ };
9
+ //# sourceMappingURL=useTenantColorPalette.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,12 @@
1
+ import { useSettings } from '@wordpress/block-editor';
2
+ import { useMemo } from '@wordpress/element';
3
+ export function useTenantColorPalette() {
4
+ const [rawColors] = useSettings('color.palette');
5
+ const colors = (rawColors !== null && rawColors !== void 0 ? rawColors : []);
6
+ return useMemo(() => {
7
+ const paletteColors = colors.map((c) => ({ ...c, color: `var(--${c.slug})` }));
8
+ const hexByValue = new Map(colors.map((c) => [`var(--${c.slug})`, c.color]));
9
+ const resolveHex = (value) => { var _a; return (_a = hexByValue.get(value)) !== null && _a !== void 0 ? _a : value; };
10
+ return { paletteColors, resolveHex };
11
+ }, [colors]);
12
+ }
package/build/index.d.ts CHANGED
@@ -24,6 +24,8 @@ export type { ButtonGroupAttributes, ButtonGroupOptions } from './blocks/groups/
24
24
  export { buttonGroupDefaults, createButtonGroupBlock } from './blocks/groups/button-group';
25
25
  export type { BannerGroupAttributes, BannerGroupOptions } from './blocks/groups/banner-group';
26
26
  export { createBannerGroupBlock, bannerGroupDefaults } from './blocks/groups/banner-group';
27
+ export type { ContentGroupAttributes, ContentGroupOptions, ContentGroupSize } from './blocks/groups/content-group';
28
+ export { createContentGroupBlock, contentGroupDefaults } from './blocks/groups/content-group';
27
29
  export type { TextAndMediaGroupAttributes, TextAndMediaGroupOptions } from './blocks/groups/text-and-media-group';
28
30
  export { createTextAndMediaGroupBlock, textAndMediaGroupDefaults } from './blocks/groups/text-and-media-group';
29
31
  export type { TextAndFormGroupAttributes, TextAndFormGroupOptions } from './blocks/text-and-form/text-and-form-group';
@@ -59,7 +61,7 @@ export { createColumnGroupBlock, columnGroupDefaults } from './blocks/column/col
59
61
  export type { ColumnItemAttributes, ColumnItemOptions } from './blocks/column/column-item';
60
62
  export { createColumnItemBlock, columnItemDefaults } from './blocks/column/column-item';
61
63
  export type { BaseBlockAttributes, BaseSectionOptions, ExcludableBaseAttr } from './blocks/sections/base-section';
62
- export { BACKGROUNDS, baseAttributes, baseSectionDefaults, createBaseSectionBlock, createBaseSectionEdit, SPACING_POSITIONS, SPACING_SIZES, } from './blocks/sections/base-section';
64
+ export { baseAttributes, baseSectionDefaults, createBaseSectionBlock, createBaseSectionEdit, SPACING_POSITIONS, SPACING_SIZES, } from './blocks/sections/base-section';
63
65
  export type { IconType } from './components/IconControl';
64
66
  export { IconControl } from './components/IconControl';
65
67
  export type { ImageLabels, ImageValue } from './components/ImagePicker';
@@ -80,4 +82,6 @@ export type { ResponsiveGridItemAttributes, ResponsiveGridItemOptions } from './
80
82
  export { createResponsiveGridItemBlock, responsiveGridItemDefaults } from './blocks/responsive-grid/responsive-grid-item';
81
83
  export type { PostSliderGroupAttributes, PostSliderGroupOptions } from './blocks/post/post-slider-group';
82
84
  export { createPostSliderGroupBlock, postSliderGroupDefaults } from './blocks/post/post-slider-group';
85
+ export type { LinkItemAttributes, LinkItemIcon, LinkItemOptions } from './blocks/link/link-item';
86
+ export { createLinkItemBlock, linkItemDefaults } from './blocks/link/link-item';
83
87
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/build/index.js CHANGED
@@ -11,6 +11,7 @@ export { createMapGroupBlock, mapGroupDefaults } from './blocks/map/map-group';
11
11
  export { basicHeaderGroupDefaults, createBasicHeaderGroupBlock } from './blocks/groups/basic-header-group';
12
12
  export { buttonGroupDefaults, createButtonGroupBlock } from './blocks/groups/button-group';
13
13
  export { createBannerGroupBlock, bannerGroupDefaults } from './blocks/groups/banner-group';
14
+ export { createContentGroupBlock, contentGroupDefaults } from './blocks/groups/content-group';
14
15
  export { createTextAndMediaGroupBlock, textAndMediaGroupDefaults } from './blocks/groups/text-and-media-group';
15
16
  export { createTextAndFormGroupBlock, textAndFormGroupDefaults } from './blocks/text-and-form/text-and-form-group';
16
17
  export { createTextAndFormTextColumnBlock, textAndFormTextColumnDefaults } from './blocks/text-and-form/text-and-form-text-column';
@@ -28,7 +29,7 @@ export { createStepGroupBlock, stepGroupDefaults } from './blocks/step/step-grou
28
29
  export { createNewsletterFormBlock, newsletterFormDefaults } from './blocks/newsletter/newsletter-form';
29
30
  export { createColumnGroupBlock, columnGroupDefaults } from './blocks/column/column-group';
30
31
  export { createColumnItemBlock, columnItemDefaults } from './blocks/column/column-item';
31
- export { BACKGROUNDS, baseAttributes, baseSectionDefaults, createBaseSectionBlock, createBaseSectionEdit, SPACING_POSITIONS, SPACING_SIZES, } from './blocks/sections/base-section';
32
+ export { baseAttributes, baseSectionDefaults, createBaseSectionBlock, createBaseSectionEdit, SPACING_POSITIONS, SPACING_SIZES, } from './blocks/sections/base-section';
32
33
  export { IconControl } from './components/IconControl';
33
34
  export { ImagePickerBody, ImagePickerControl, useMediaUrl } from './components/ImagePicker';
34
35
  export { useGroupBlock } from './hooks/useGroupBlock';
@@ -39,3 +40,4 @@ export { createFormFieldBlock, formFieldDefaults, FIELD_TYPES, FIELD_COLUMNS_RAN
39
40
  export { createResponsiveGridGroupBlock, responsiveGridGroupDefaults } from './blocks/responsive-grid/responsive-grid-group';
40
41
  export { createResponsiveGridItemBlock, responsiveGridItemDefaults } from './blocks/responsive-grid/responsive-grid-item';
41
42
  export { createPostSliderGroupBlock, postSliderGroupDefaults } from './blocks/post/post-slider-group';
43
+ export { createLinkItemBlock, linkItemDefaults } from './blocks/link/link-item';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@brilo/base-blocks",
3
- "version": "0.1.6",
3
+ "version": "0.1.8",
4
4
  "author": "Brilo",
5
5
  "main": "./build/index.js",
6
6
  "types": "./build/index.d.ts",
@@ -9,6 +9,7 @@
9
9
  "watch": "tsc --watch",
10
10
  "lint": "biome lint ./src",
11
11
  "format": "biome format --write ./src && prettier --write \"./src/**/*.scss\"",
12
+ "lint:fix": "biome format --write ./src && prettier --write \"./src/**/*.scss\"",
12
13
  "check": "biome check --write ./src"
13
14
  },
14
15
  "peerDependencies": {
@@ -0,0 +1 @@
1
+ export const SIZES = ['8', '12'] as const
@@ -0,0 +1,51 @@
1
+ import {InspectorControls} from '@wordpress/block-editor'
2
+ import {
3
+ PanelBody,
4
+ __experimentalToggleGroupControl as ToggleGroupControl,
5
+ __experimentalToggleGroupControlOption as ToggleGroupControlOption,
6
+ } from '@wordpress/components'
7
+ import {__} from '@wordpress/i18n'
8
+ import clsx from 'clsx'
9
+ import {useGroupBlock} from '~/hooks/useGroupBlock'
10
+ import {SIZES} from './constants'
11
+ import type {ContentGroupAttributes, ContentGroupOptions, ContentGroupSize} from './types'
12
+
13
+ export function createContentGroupEdit(options: ContentGroupOptions) {
14
+ return function Edit({
15
+ attributes,
16
+ setAttributes,
17
+ }: {
18
+ attributes: ContentGroupAttributes
19
+ setAttributes: (a: Partial<ContentGroupAttributes>) => void
20
+ }) {
21
+ const {size} = attributes
22
+ const {blockProps, innerBlocksProps} = useGroupBlock({
23
+ blockClassName: clsx(options.blockClassName ?? 'g-content-group', `--columns-${size}`),
24
+ containerClassName: options.containerClassName ?? 'g-content-group__inner',
25
+ allowedBlocks: options.allowedBlocks,
26
+ template: options.template,
27
+ })
28
+
29
+ return (
30
+ <>
31
+ <InspectorControls>
32
+ <PanelBody title={__('Nastavení', 'brilo-blocks')}>
33
+ <ToggleGroupControl
34
+ label={__('Počet sloupců', 'brilo-blocks')}
35
+ value={size}
36
+ onChange={(value) => setAttributes({size: value as ContentGroupSize})}
37
+ isBlock
38
+ >
39
+ {SIZES.map((s) => (
40
+ <ToggleGroupControlOption key={s} value={s} label={`${s} ${__('sloupců', 'brilo-blocks')}`} />
41
+ ))}
42
+ </ToggleGroupControl>
43
+ </PanelBody>
44
+ </InspectorControls>
45
+ <div {...blockProps}>
46
+ <div {...innerBlocksProps} />
47
+ </div>
48
+ </>
49
+ )
50
+ }
51
+ }
@@ -0,0 +1,10 @@
1
+ @layer base {
2
+ .g-content-group {
3
+ min-height: 44px;
4
+
5
+ &.--columns-8 {
6
+ max-width: 640px;
7
+ margin-inline: auto !important;
8
+ }
9
+ }
10
+ }
@@ -0,0 +1,26 @@
1
+ import {InnerBlocks} from '@wordpress/block-editor'
2
+ import type {BlockConfiguration} from '@wordpress/blocks'
3
+ import {__} from '@wordpress/i18n'
4
+ import {createContentGroupEdit} from './edit'
5
+ import type {ContentGroupAttributes, ContentGroupOptions} from './types'
6
+ import {icon as defaultIcon} from './icon'
7
+
8
+ export function createContentGroupBlock(options: ContentGroupOptions): BlockConfiguration<ContentGroupAttributes> {
9
+ return {
10
+ name: options.name,
11
+ title: options.title ?? __('Obsahová skupina', 'brilo-blocks'),
12
+ description: options.description,
13
+ category: options.category ?? 'layout',
14
+ icon: options.icon ?? {src: defaultIcon},
15
+ ...(options.parent && {parent: options.parent}),
16
+ supports: {html: false, customClassName: false},
17
+ attributes: {
18
+ size: {
19
+ type: 'string',
20
+ default: '8',
21
+ },
22
+ },
23
+ edit: createContentGroupEdit(options),
24
+ save: () => <InnerBlocks.Content />,
25
+ } as BlockConfiguration<ContentGroupAttributes>
26
+ }
@@ -0,0 +1,23 @@
1
+ export const icon = (
2
+ <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
3
+ <rect x="1.5" y="12.5" width="17" height="7" stroke="black" fill="none" />
4
+ <path fillRule="evenodd" clipRule="evenodd" d="M8.5 15L6 18L11 18L8.5 15Z" fill="black" />
5
+ <path
6
+ d="M13 15C13 15.5523 12.5523 16 12 16C11.4477 16 11 15.5523 11 15C11 14.4477 11.4477 14 12 14C12.5523 14 13 14.4477 13 15Z"
7
+ fill="black"
8
+ />
9
+ <path d="M1 3H9V4H1V3Z" fill="black" />
10
+ <path d="M10 3H18V4H10V3Z" fill="black" />
11
+ <path d="M1 5H4V6H1V5Z" fill="black" />
12
+ <path d="M6 5H15V6H6V5Z" fill="black" />
13
+ <path d="M1 8H2V9H1V8Z" fill="black" />
14
+ <path d="M3 8H8V9H3V8Z" fill="black" />
15
+ <path d="M1 10H2V11H1V10Z" fill="black" />
16
+ <path d="M3 10H10V11H3V10Z" fill="black" />
17
+ <path
18
+ d="M8 1C8 0.447715 8.44772 0 9 0H10C10.5523 0 11 0.447715 11 1C11 1.55228 10.5523 2 10 2H9C8.44772 2 8 1.55228 8 1Z"
19
+ fill="black"
20
+ />
21
+ <path d="M1 1C1 0.447715 1.44772 0 2 0H6C6.55228 0 7 0.447715 7 1C7 1.55228 6.55228 2 6 2H2C1.44772 2 1 1.55228 1 1Z" fill="black" />
22
+ </svg>
23
+ )
@@ -0,0 +1,25 @@
1
+ export type {ContentGroupAttributes, ContentGroupOptions, ContentGroupSize} from './types'
2
+ export {createContentGroupBlock} from './factory'
3
+
4
+ import type {ContentGroupOptions} from './types'
5
+
6
+ export const contentGroupDefaults: ContentGroupOptions = {
7
+ name: 'brilo/content-group',
8
+ parent: ['brilo/base-section'],
9
+ blockClassName: 'g-content-group',
10
+ containerClassName: 'g-content-group__inner',
11
+ allowedBlocks: [
12
+ 'core/paragraph',
13
+ 'core/image',
14
+ 'core/heading',
15
+ 'core/list',
16
+ 'core/list-item',
17
+ 'core/quote',
18
+ 'core/table',
19
+ 'core/gallery',
20
+ 'core/embed',
21
+ 'core/video',
22
+ 'core/file',
23
+ 'brilo/link',
24
+ ],
25
+ }
@@ -0,0 +1,10 @@
1
+ import type {BriloBlockType} from '~/types'
2
+ import type {SIZES} from './constants'
3
+
4
+ export type ContentGroupSize = (typeof SIZES)[number]
5
+
6
+ export interface ContentGroupAttributes extends Record<string, unknown> {
7
+ size: ContentGroupSize
8
+ }
9
+
10
+ export interface ContentGroupOptions extends BriloBlockType {}
@@ -0,0 +1,7 @@
1
+ import {__} from '@wordpress/i18n'
2
+
3
+ export const ICON_TYPES = [
4
+ {value: 'none', label: __('Žádná', 'brilo-blocks')},
5
+ {value: 'preselected', label: __('Předdefinovaná', 'brilo-blocks')},
6
+ {value: 'media', label: __('Médium', 'brilo-blocks')},
7
+ ] as const
@@ -0,0 +1,116 @@
1
+ import {ColorPalette, InspectorControls, RichText, useBlockProps} from '@wordpress/block-editor'
2
+ import {
3
+ PanelBody,
4
+ RangeControl,
5
+ TextControl,
6
+ ToggleControl,
7
+ __experimentalToggleGroupControl as ToggleGroupControl,
8
+ __experimentalToggleGroupControlOption as ToggleGroupControlOption,
9
+ } from '@wordpress/components'
10
+ import {__} from '@wordpress/i18n'
11
+ import clsx from 'clsx'
12
+ import {ItemIconControl, ItemIconPreview} from '~/components/ItemIconControl'
13
+ import {useTenantColorPalette} from '~/hooks/useTenantColorPalette'
14
+ import {ICON_TYPES} from './constants'
15
+ import type {LinkItemAttributes, LinkItemOptions} from './types'
16
+
17
+ export function createLinkItemEdit(options: LinkItemOptions) {
18
+ return function Edit({
19
+ attributes,
20
+ setAttributes,
21
+ }: {
22
+ attributes: LinkItemAttributes
23
+ setAttributes: (a: Partial<LinkItemAttributes>) => void
24
+ }) {
25
+ const {title, url, icon, color, underline_initial} = attributes
26
+ const {paletteColors} = useTenantColorPalette()
27
+ const hasIcon = icon.type !== 'none' && (icon.src || icon.media?.id)
28
+
29
+ const setIconBase = (attrs: {icon: import('~/types').Icon}) => {
30
+ setAttributes({icon: {...icon, ...attrs.icon} as typeof icon})
31
+ }
32
+
33
+ const blockProps = useBlockProps({
34
+ className: clsx('link-item', underline_initial && '--underline-initial'),
35
+ style: color ? {color} : undefined,
36
+ })
37
+
38
+ const iconPreviewStyle = {maxWidth: icon.size, flex: `0 0 ${icon.size}px`} as React.CSSProperties
39
+
40
+ return (
41
+ <>
42
+ <InspectorControls>
43
+ <PanelBody title={__('Odkaz', 'brilo-blocks')}>
44
+ <TextControl label={__('URL', 'brilo-blocks')} value={url.src} onChange={(v) => setAttributes({url: {...url, src: v}})} />
45
+ <ToggleControl
46
+ label={__('Otevřít v nové záložce', 'brilo-blocks')}
47
+ checked={url.blank}
48
+ onChange={(v) => setAttributes({url: {...url, blank: v}})}
49
+ />
50
+ </PanelBody>
51
+
52
+ <PanelBody title={__('Ikona', 'brilo-blocks')} initialOpen={false}>
53
+ <ItemIconControl
54
+ icon={icon as unknown as import('~/types').Icon}
55
+ setAttributes={setIconBase}
56
+ iconTypes={ICON_TYPES}
57
+ options={options}
58
+ />
59
+ {hasIcon && (
60
+ <>
61
+ <ToggleGroupControl
62
+ isBlock
63
+ label={__('Pozice', 'brilo-blocks')}
64
+ value={icon.position}
65
+ onChange={(v) => setAttributes({icon: {...icon, position: String(v) as 'before' | 'after'}})}
66
+ >
67
+ <ToggleGroupControlOption value="before" label={__('Před', 'brilo-blocks')} />
68
+ <ToggleGroupControlOption value="after" label={__('Za', 'brilo-blocks')} />
69
+ </ToggleGroupControl>
70
+ <RangeControl
71
+ label={__('Velikost (px)', 'brilo-blocks')}
72
+ value={icon.size}
73
+ onChange={(v) => setAttributes({icon: {...icon, size: v ?? 24}})}
74
+ min={8}
75
+ max={80}
76
+ step={1}
77
+ />
78
+ </>
79
+ )}
80
+ </PanelBody>
81
+
82
+ <PanelBody title={__('Styl', 'brilo-blocks')} initialOpen={false}>
83
+ <p>{__('Barva', 'brilo-blocks')}</p>
84
+ <ColorPalette colors={paletteColors} value={color || undefined} onChange={(v) => setAttributes({color: v ?? ''})} />
85
+ <ToggleControl
86
+ label={__('Podtržení výchozí', 'brilo-blocks')}
87
+ checked={underline_initial}
88
+ onChange={(v) => setAttributes({underline_initial: v})}
89
+ />
90
+ </PanelBody>
91
+ </InspectorControls>
92
+
93
+ <div {...blockProps}>
94
+ {hasIcon && icon.position === 'before' && (
95
+ <span className="link-item__icon" style={iconPreviewStyle}>
96
+ <ItemIconPreview icon={icon as unknown as import('~/types').Icon} setAttributes={setIconBase} options={options} />
97
+ </span>
98
+ )}
99
+ <RichText
100
+ tagName="span"
101
+ className="link-item__title"
102
+ value={title}
103
+ onChange={(v) => setAttributes({title: v})}
104
+ placeholder={__('Text odkazu...', 'brilo-blocks')}
105
+ allowedFormats={['core/bold', 'core/italic']}
106
+ />
107
+ {hasIcon && icon.position === 'after' && (
108
+ <span className="link-item__icon" style={iconPreviewStyle}>
109
+ <ItemIconPreview icon={icon as unknown as import('~/types').Icon} setAttributes={setIconBase} options={options} />
110
+ </span>
111
+ )}
112
+ </div>
113
+ </>
114
+ )
115
+ }
116
+ }
@@ -0,0 +1,11 @@
1
+ .link-item {
2
+ display: flex;
3
+ gap: 4px;
4
+ }
5
+
6
+ .link-item__icon {
7
+ .i-item-icon {
8
+ height: auto;
9
+ width: auto;
10
+ }
11
+ }
@@ -0,0 +1,29 @@
1
+ import {type BlockConfiguration} from '@wordpress/blocks'
2
+ import {__} from '@wordpress/i18n'
3
+ import {createLinkItemEdit} from './edit'
4
+ import {icon as defaultIcon} from './icon'
5
+ import type {LinkItemAttributes, LinkItemOptions} from './types'
6
+
7
+ export function createLinkItemBlock(options: LinkItemOptions): BlockConfiguration<LinkItemAttributes> {
8
+ return {
9
+ name: options.name,
10
+ title: options.title ?? __('Odkaz', 'brilo-blocks'),
11
+ description: options.description,
12
+ category: options.category ?? 'text',
13
+ ...(options.parent && {parent: options.parent}),
14
+ icon: options.icon ?? {src: defaultIcon},
15
+ supports: {html: false, customClassName: false},
16
+ attributes: {
17
+ title: {type: 'string', default: ''},
18
+ url: {type: 'object', default: {src: '', blank: false}},
19
+ icon: {
20
+ type: 'object',
21
+ default: {type: 'none', src: '', media: {}, position: 'after', size: 24},
22
+ },
23
+ color: {type: 'string', default: ''},
24
+ underline_initial: {type: 'boolean', default: false},
25
+ },
26
+ edit: createLinkItemEdit(options),
27
+ save: () => null,
28
+ } as BlockConfiguration<LinkItemAttributes>
29
+ }
@@ -0,0 +1,6 @@
1
+ export const icon = (
2
+ <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
3
+ <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" />
4
+ <path d="M12 2h6v6M18 2L10 10" stroke="black" strokeWidth="1.5" strokeLinecap="round" />
5
+ </svg>
6
+ )
@@ -0,0 +1,10 @@
1
+ export type {LinkItemAttributes, LinkItemIcon, LinkItemOptions} from './types'
2
+ export {createLinkItemBlock} from './factory'
3
+
4
+ import type {LinkItemOptions} from './types'
5
+
6
+ export const linkItemDefaults: LinkItemOptions = {
7
+ name: 'brilo/link-item',
8
+ icons: [],
9
+ iconsSrc: '',
10
+ }
@@ -0,0 +1,24 @@
1
+ import type {Media} from '~/types'
2
+ import type {BriloBlockType} from '~/types'
3
+ import type {IconType} from '~/components/IconControl'
4
+
5
+ export interface LinkItemIcon {
6
+ type: 'preselected' | 'media' | 'none'
7
+ src: string
8
+ media: Media
9
+ position: 'before' | 'after'
10
+ size: number
11
+ }
12
+
13
+ export interface LinkItemAttributes extends Record<string, unknown> {
14
+ title: string
15
+ url: {src: string; blank: boolean}
16
+ icon: LinkItemIcon
17
+ color: string
18
+ underline_initial: boolean
19
+ }
20
+
21
+ export interface LinkItemOptions extends BriloBlockType {
22
+ icons: IconType[]
23
+ iconsSrc: string
24
+ }
@@ -1,4 +1,7 @@
1
1
  import {__} from '@wordpress/i18n'
2
+ import {HEADING_STYLES} from "~/constants";
3
+
4
+ export const DEFAULT_HEADING_STYLES = HEADING_STYLES
2
5
 
3
6
  export const MAP_TYPES = [
4
7
  {