@brilo/base-blocks 0.1.50 → 0.1.53

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 (73) hide show
  1. package/build/.tsbuildinfo +1 -1
  2. package/build/blocks/accordion/accordion-group/edit.d.ts.map +1 -1
  3. package/build/blocks/accordion/accordion-group/edit.js +8 -2
  4. package/build/blocks/accordion/accordion-group/factory.d.ts.map +1 -1
  5. package/build/blocks/accordion/accordion-group/factory.js +20 -11
  6. package/build/blocks/accordion/accordion-group/index.d.ts +2 -1
  7. package/build/blocks/accordion/accordion-group/index.d.ts.map +1 -1
  8. package/build/blocks/accordion/accordion-group/index.js +1 -0
  9. package/build/blocks/accordion/accordion-group/types.d.ts +8 -0
  10. package/build/blocks/accordion/accordion-group/types.d.ts.map +1 -1
  11. package/build/blocks/contact/contact-group/factory.d.ts.map +1 -1
  12. package/build/blocks/contact/contact-group/types.d.ts.map +1 -1
  13. package/build/blocks/contact/contact-item/edit.d.ts.map +1 -1
  14. package/build/blocks/faq/faq-group/constants.d.ts +0 -10
  15. package/build/blocks/faq/faq-group/constants.d.ts.map +1 -1
  16. package/build/blocks/faq/faq-group/constants.js +0 -5
  17. package/build/blocks/faq/faq-group/edit.d.ts.map +1 -1
  18. package/build/blocks/faq/faq-group/edit.js +6 -4
  19. package/build/blocks/faq/faq-group/factory.d.ts.map +1 -1
  20. package/build/blocks/faq/faq-group/factory.js +9 -10
  21. package/build/blocks/faq/faq-group/types.d.ts +6 -7
  22. package/build/blocks/faq/faq-group/types.d.ts.map +1 -1
  23. package/build/blocks/layout/box/constants.d.ts +12 -0
  24. package/build/blocks/layout/box/constants.d.ts.map +1 -0
  25. package/build/blocks/layout/box/constants.js +15 -0
  26. package/build/blocks/layout/box/controls.d.ts.map +1 -1
  27. package/build/blocks/layout/box/controls.js +6 -5
  28. package/build/blocks/layout/box/deprecated.d.ts +71 -0
  29. package/build/blocks/layout/box/deprecated.d.ts.map +1 -0
  30. package/build/blocks/layout/box/deprecated.js +100 -0
  31. package/build/blocks/layout/box/edit.d.ts.map +1 -1
  32. package/build/blocks/layout/box/edit.js +14 -18
  33. package/build/blocks/layout/box/factory.d.ts.map +1 -1
  34. package/build/blocks/layout/box/factory.js +4 -2
  35. package/build/blocks/layout/box/index.d.ts +1 -1
  36. package/build/blocks/layout/box/index.d.ts.map +1 -1
  37. package/build/blocks/layout/box/types.d.ts +5 -14
  38. package/build/blocks/layout/box/types.d.ts.map +1 -1
  39. package/build/blocks/sections/base-section/controls.d.ts.map +1 -1
  40. package/build/blocks/sections/base-section/controls.js +4 -3
  41. package/build/blocks/sections/base-section/types.d.ts +1 -0
  42. package/build/blocks/sections/base-section/types.d.ts.map +1 -1
  43. package/build/blocks/step/step-group/edit.d.ts.map +1 -1
  44. package/build/components/SurfaceStyleControl/index.d.ts +53 -0
  45. package/build/components/SurfaceStyleControl/index.d.ts.map +1 -0
  46. package/build/components/SurfaceStyleControl/index.js +36 -0
  47. package/build/index.d.ts +5 -3
  48. package/build/index.d.ts.map +1 -1
  49. package/build/index.js +2 -1
  50. package/package.json +1 -1
  51. package/src/blocks/accordion/accordion-group/edit.tsx +16 -1
  52. package/src/blocks/accordion/accordion-group/factory.tsx +19 -7
  53. package/src/blocks/accordion/accordion-group/index.ts +8 -1
  54. package/src/blocks/accordion/accordion-group/types.ts +11 -1
  55. package/src/blocks/contact/contact-group/factory.tsx +1 -6
  56. package/src/blocks/contact/contact-group/types.ts +1 -7
  57. package/src/blocks/contact/contact-item/edit.tsx +1 -4
  58. package/src/blocks/faq/faq-group/constants.ts +0 -6
  59. package/src/blocks/faq/faq-group/edit.tsx +11 -56
  60. package/src/blocks/faq/faq-group/factory.tsx +6 -6
  61. package/src/blocks/faq/faq-group/types.ts +6 -7
  62. package/src/blocks/layout/box/constants.ts +19 -0
  63. package/src/blocks/layout/box/controls.tsx +42 -21
  64. package/src/blocks/layout/box/deprecated.tsx +146 -0
  65. package/src/blocks/layout/box/edit.tsx +15 -18
  66. package/src/blocks/layout/box/factory.tsx +4 -2
  67. package/src/blocks/layout/box/index.ts +1 -1
  68. package/src/blocks/layout/box/types.ts +5 -14
  69. package/src/blocks/sections/base-section/controls.tsx +10 -1
  70. package/src/blocks/sections/base-section/types.ts +1 -0
  71. package/src/blocks/step/step-group/edit.tsx +11 -11
  72. package/src/components/SurfaceStyleControl/index.tsx +114 -0
  73. package/src/index.ts +11 -3
@@ -0,0 +1,114 @@
1
+ import {
2
+ BaseControl,
3
+ ColorPalette,
4
+ PanelBody,
5
+ __experimentalToggleGroupControl as ToggleGroupControl,
6
+ __experimentalToggleGroupControlOption as ToggleGroupControlOption,
7
+ } from '@wordpress/components'
8
+ import {__} from '@wordpress/i18n'
9
+ import {useTenantColorPalette} from '~/hooks/useTenantColorPalette'
10
+
11
+ /**
12
+ * Shadow presets shared by every "surface" block (accordion, faq, ...). The
13
+ * `DEFAULT_` prefix marks it as tenant-overridable — pass your own array as
14
+ * `options.shadows` and the factory/edit resolve it with `??`.
15
+ */
16
+ export const DEFAULT_SURFACE_SHADOWS = [
17
+ {value: 'none', label: __('Žádný', 'brilo-blocks')},
18
+ {value: 'sm', label: __('Malý', 'brilo-blocks')},
19
+ {value: 'md', label: __('Střední', 'brilo-blocks')},
20
+ ] as const
21
+
22
+ export type SurfaceShadow = (typeof DEFAULT_SURFACE_SHADOWS)[number]['value']
23
+
24
+ export interface SurfaceShadowOption {
25
+ value: string
26
+ label: string
27
+ }
28
+
29
+ /**
30
+ * The shadow + colour quartet that group blocks hand down to their items. Kept
31
+ * as one named type so the shape lives in a single place across TS, PHP and twig.
32
+ */
33
+ export interface SurfaceStyle<TShadow extends string = SurfaceShadow> {
34
+ shadow: TShadow
35
+ borderColor: string
36
+ backgroundColor: string
37
+ textColor: string
38
+ }
39
+
40
+ /** Attribute default for a `style` object holding a {@link SurfaceStyle}. */
41
+ export function surfaceStyleAttribute(shadows: readonly SurfaceShadowOption[] = DEFAULT_SURFACE_SHADOWS) {
42
+ return {
43
+ type: 'object',
44
+ default: {
45
+ shadow: shadows[0]?.value ?? 'none',
46
+ borderColor: '',
47
+ backgroundColor: '',
48
+ textColor: '',
49
+ },
50
+ } as const
51
+ }
52
+
53
+ /**
54
+ * Inspector panel for {@link SurfaceStyle}. `idPrefix` keeps the `BaseControl`
55
+ * ids unique per block (`faq-group`, `accordion-group`, ...).
56
+ */
57
+ export function SurfaceStylePanel<TStyle extends SurfaceStyle<string>>({
58
+ style,
59
+ onChange,
60
+ idPrefix,
61
+ shadows = DEFAULT_SURFACE_SHADOWS,
62
+ title = __('Styl', 'brilo-blocks'),
63
+ children,
64
+ }: {
65
+ style: TStyle
66
+ onChange: (style: TStyle) => void
67
+ idPrefix: string
68
+ shadows?: readonly SurfaceShadowOption[]
69
+ title?: string
70
+ children?: React.ReactNode
71
+ }) {
72
+ const {paletteColors} = useTenantColorPalette()
73
+
74
+ return (
75
+ <PanelBody title={title}>
76
+ <ToggleGroupControl
77
+ isBlock
78
+ label={__('Stín', 'brilo-blocks')}
79
+ value={style.shadow}
80
+ onChange={(value) => onChange({...style, shadow: value as TStyle['shadow']})}
81
+ >
82
+ {shadows.map((shadow) => (
83
+ <ToggleGroupControlOption key={shadow.value} value={shadow.value} label={shadow.label} />
84
+ ))}
85
+ </ToggleGroupControl>
86
+ <BaseControl
87
+ label={__('Barva okraje', 'brilo-blocks')}
88
+ help={__('Bez vybrané barvy se okraj nevykreslí.', 'brilo-blocks')}
89
+ id={`${idPrefix}-border-color`}
90
+ >
91
+ <ColorPalette
92
+ colors={paletteColors}
93
+ value={style.borderColor || undefined}
94
+ onChange={(value) => onChange({...style, borderColor: value ?? ''})}
95
+ />
96
+ </BaseControl>
97
+ <BaseControl label={__('Barva pozadí', 'brilo-blocks')} id={`${idPrefix}-background-color`}>
98
+ <ColorPalette
99
+ colors={paletteColors}
100
+ value={style.backgroundColor || undefined}
101
+ onChange={(value) => onChange({...style, backgroundColor: value ?? ''})}
102
+ />
103
+ </BaseControl>
104
+ <BaseControl label={__('Barva textu', 'brilo-blocks')} id={`${idPrefix}-text-color`}>
105
+ <ColorPalette
106
+ colors={paletteColors}
107
+ value={style.textColor || undefined}
108
+ onChange={(value) => onChange({...style, textColor: value ?? ''})}
109
+ />
110
+ </BaseControl>
111
+ {children}
112
+ </PanelBody>
113
+ )
114
+ }
package/src/index.ts CHANGED
@@ -41,8 +41,14 @@ export {
41
41
  } from './blocks/contact/contact-item'
42
42
  export type {AccordionItemAttributes, AccordionItemOptions} from './blocks/accordion/accordion-item'
43
43
  export {accordionItemDefaults, createAccordionItemBlock} from './blocks/accordion/accordion-item'
44
- export type {AccordionGroupAttributes, AccordionGroupOptions, AccordionHeadingLevel} from './blocks/accordion/accordion-group'
45
- export {accordionGroupDefaults, createAccordionGroupBlock} from './blocks/accordion/accordion-group'
44
+ export type {
45
+ AccordionGroupAttributes,
46
+ AccordionGroupOptions,
47
+ AccordionHeadingLevel,
48
+ AccordionShadow,
49
+ ExcludableAccordionAttr,
50
+ } from './blocks/accordion/accordion-group'
51
+ export {ACCORDION_HEADING_LEVELS, accordionGroupDefaults, createAccordionGroupBlock} from './blocks/accordion/accordion-group'
46
52
  export type {FaqItemAttributes, FaqItemOptions} from './blocks/faq/faq-item'
47
53
  export {createFaqItemBlock, faqItemDefaults} from './blocks/faq/faq-item'
48
54
  export type {FaqGroupAttributes, FaqGroupOptions} from './blocks/faq/faq-group'
@@ -129,6 +135,8 @@ export {
129
135
  SPACING_POSITIONS,
130
136
  SPACING_SIZES,
131
137
  } from './blocks/sections/base-section'
138
+ export type {SurfaceShadow, SurfaceShadowOption, SurfaceStyle} from './components/SurfaceStyleControl'
139
+ export {DEFAULT_SURFACE_SHADOWS, SurfaceStylePanel, surfaceStyleAttribute} from './components/SurfaceStyleControl'
132
140
  export type {IconType} from './components/IconControl'
133
141
  export {IconControl} from './components/IconControl'
134
142
  export * from './components/ItemIconControl'
@@ -241,7 +249,7 @@ export type {PostContentAttributes, PostContentOptions} from './blocks/post/post
241
249
  export {createPostContentBlock, postContentDefaults} from './blocks/post/post-content'
242
250
  export type {ShareAttributes, ShareOptions} from './blocks/share/share'
243
251
  export {createShareBlock, shareDefaults} from './blocks/share/share'
244
- export type {BoxAttributes, BoxBorderRadius, BoxOptions, BoxSpacing} from './blocks/layout/box'
252
+ export type {BoxAttributes, BoxOptions, BoxSpacing, BoxSpacingSide} from './blocks/layout/box'
245
253
  export {createBoxBlock, boxDefaults} from './blocks/layout/box'
246
254
  export type {PriceplanGroupAttributes, PriceplanGroupOptions} from './blocks/priceplan/priceplan-group'
247
255
  export {createPriceplanGroupBlock, priceplanGroupDefaults} from './blocks/priceplan/priceplan-group'