@brilo/base-blocks 0.1.1 → 0.1.3
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.
- package/build/blocks/form/form-group/edit.d.ts.map +1 -1
- package/build/blocks/form/form-group/edit.js +17 -3
- package/build/blocks/form/form-group/factory.d.ts.map +1 -1
- package/build/blocks/form/form-group/factory.js +1 -0
- package/build/blocks/form/form-group/types.d.ts +1 -0
- package/build/blocks/form/form-group/types.d.ts.map +1 -1
- package/package.json +3 -2
- package/src/blocks/column/column-group/edit.tsx +56 -0
- package/src/blocks/column/column-group/editor.scss +7 -0
- package/src/blocks/column/column-group/factory.tsx +29 -0
- package/src/blocks/column/column-group/index.ts +14 -0
- package/src/blocks/column/column-group/types.ts +8 -0
- package/src/blocks/column/column-item/constants.ts +1 -0
- package/src/blocks/column/column-item/edit.tsx +48 -0
- package/src/blocks/column/column-item/editor.scss +34 -0
- package/src/blocks/column/column-item/factory.tsx +25 -0
- package/src/blocks/column/column-item/index.ts +10 -0
- package/src/blocks/column/column-item/types.ts +7 -0
- package/src/blocks/compare/compare-group/constants.ts +1 -0
- package/src/blocks/compare/compare-group/edit.tsx +52 -0
- package/src/blocks/compare/compare-group/factory.tsx +29 -0
- package/src/blocks/compare/compare-group/icon.tsx +7 -0
- package/src/blocks/compare/compare-group/index.ts +13 -0
- package/src/blocks/compare/compare-group/types.ts +12 -0
- package/src/blocks/compare/compare-item/edit.tsx +38 -0
- package/src/blocks/compare/compare-item/editor.scss +15 -0
- package/src/blocks/compare/compare-item/factory.tsx +28 -0
- package/src/blocks/compare/compare-item/icon.tsx +9 -0
- package/src/blocks/compare/compare-item/index.ts +13 -0
- package/src/blocks/compare/compare-item/types.ts +9 -0
- package/src/blocks/compare/compare-option/constants.ts +7 -0
- package/src/blocks/compare/compare-option/edit.tsx +64 -0
- package/src/blocks/compare/compare-option/editor.scss +26 -0
- package/src/blocks/compare/compare-option/factory.tsx +35 -0
- package/src/blocks/compare/compare-option/icon.tsx +7 -0
- package/src/blocks/compare/compare-option/index.ts +8 -0
- package/src/blocks/compare/compare-option/types.ts +12 -0
- package/src/blocks/contact/contact-group/constants.ts +3 -0
- package/src/blocks/contact/contact-group/edit.tsx +57 -0
- package/src/blocks/contact/contact-group/editor.scss +20 -0
- package/src/blocks/contact/contact-group/factory.tsx +35 -0
- package/src/blocks/contact/contact-group/index.ts +12 -0
- package/src/blocks/contact/contact-group/types.ts +12 -0
- package/src/blocks/contact/contact-item/constants.ts +17 -0
- package/src/blocks/contact/contact-item/edit.tsx +93 -0
- package/src/blocks/contact/contact-item/editor.scss +38 -0
- package/src/blocks/contact/contact-item/factory.tsx +35 -0
- package/src/blocks/contact/contact-item/index.ts +23 -0
- package/src/blocks/contact/contact-item/types.ts +21 -0
- package/src/blocks/core/basic-button/constants.ts +17 -0
- package/src/blocks/core/basic-button/edit.tsx +107 -0
- package/src/blocks/core/basic-button/editor.scss +80 -0
- package/src/blocks/core/basic-button/factory.tsx +54 -0
- package/src/blocks/core/basic-button/index.ts +8 -0
- package/src/blocks/core/basic-button/types.ts +29 -0
- package/src/blocks/core/basic-heading/constants.ts +1 -0
- package/src/blocks/core/basic-heading/edit.tsx +76 -0
- package/src/blocks/core/basic-heading/editor.scss +8 -0
- package/src/blocks/core/basic-heading/factory.tsx +40 -0
- package/src/blocks/core/basic-heading/index.ts +8 -0
- package/src/blocks/core/basic-heading/types.ts +20 -0
- package/src/blocks/core/basic-overline/edit.tsx +28 -0
- package/src/blocks/core/basic-overline/editor.scss +14 -0
- package/src/blocks/core/basic-overline/factory.tsx +22 -0
- package/src/blocks/core/basic-overline/index.ts +8 -0
- package/src/blocks/core/basic-overline/types.ts +7 -0
- package/src/blocks/faq/faq-group/constants.ts +11 -0
- package/src/blocks/faq/faq-group/edit.tsx +55 -0
- package/src/blocks/faq/faq-group/editor.scss +11 -0
- package/src/blocks/faq/faq-group/factory.tsx +39 -0
- package/src/blocks/faq/faq-group/index.ts +11 -0
- package/src/blocks/faq/faq-group/types.ts +14 -0
- package/src/blocks/faq/faq-item/edit.tsx +50 -0
- package/src/blocks/faq/faq-item/editor.scss +57 -0
- package/src/blocks/faq/faq-item/factory.tsx +24 -0
- package/src/blocks/faq/faq-item/index.ts +9 -0
- package/src/blocks/faq/faq-item/types.ts +7 -0
- package/src/blocks/form/form-field/constants.ts +14 -0
- package/src/blocks/form/form-field/edit.tsx +178 -0
- package/src/blocks/form/form-field/editor.scss +71 -0
- package/src/blocks/form/form-field/factory.tsx +32 -0
- package/src/blocks/form/form-field/index.ts +10 -0
- package/src/blocks/form/form-field/types.ts +18 -0
- package/src/blocks/form/form-group/constants.ts +16 -0
- package/src/blocks/form/form-group/edit.tsx +214 -0
- package/src/blocks/form/form-group/editor.scss +41 -0
- package/src/blocks/form/form-group/factory.tsx +36 -0
- package/src/blocks/form/form-group/index.ts +18 -0
- package/src/blocks/form/form-group/types.ts +23 -0
- package/src/blocks/groups/banner-group/constants.ts +15 -0
- package/src/blocks/groups/banner-group/edit.tsx +122 -0
- package/src/blocks/groups/banner-group/editor.scss +18 -0
- package/src/blocks/groups/banner-group/factory.tsx +64 -0
- package/src/blocks/groups/banner-group/icon.tsx +13 -0
- package/src/blocks/groups/banner-group/index.ts +11 -0
- package/src/blocks/groups/banner-group/types.ts +30 -0
- package/src/blocks/groups/basic-header-group/constants.ts +9 -0
- package/src/blocks/groups/basic-header-group/edit.tsx +99 -0
- package/src/blocks/groups/basic-header-group/editor.scss +35 -0
- package/src/blocks/groups/basic-header-group/factory.tsx +46 -0
- package/src/blocks/groups/basic-header-group/icon.tsx +17 -0
- package/src/blocks/groups/basic-header-group/index.ts +9 -0
- package/src/blocks/groups/basic-header-group/types.ts +27 -0
- package/src/blocks/groups/button-group/constants.ts +7 -0
- package/src/blocks/groups/button-group/edit.tsx +52 -0
- package/src/blocks/groups/button-group/editor.scss +23 -0
- package/src/blocks/groups/button-group/factory.tsx +34 -0
- package/src/blocks/groups/button-group/index.ts +11 -0
- package/src/blocks/groups/button-group/types.ts +12 -0
- package/src/blocks/groups/text-and-media-group/constants.ts +43 -0
- package/src/blocks/groups/text-and-media-group/edit.tsx +241 -0
- package/src/blocks/groups/text-and-media-group/editor.scss +123 -0
- package/src/blocks/groups/text-and-media-group/factory.tsx +100 -0
- package/src/blocks/groups/text-and-media-group/icon.tsx +37 -0
- package/src/blocks/groups/text-and-media-group/index.ts +18 -0
- package/src/blocks/groups/text-and-media-group/types.ts +60 -0
- package/src/blocks/hero/hero-group/constants.ts +23 -0
- package/src/blocks/hero/hero-group/edit.tsx +85 -0
- package/src/blocks/hero/hero-group/editor.scss +0 -0
- package/src/blocks/hero/hero-group/factory.tsx +45 -0
- package/src/blocks/hero/hero-group/icon.tsx +28 -0
- package/src/blocks/hero/hero-group/index.ts +11 -0
- package/src/blocks/hero/hero-group/types.ts +22 -0
- package/src/blocks/hero/hero-item/constants.ts +15 -0
- package/src/blocks/hero/hero-item/edit.tsx +107 -0
- package/src/blocks/hero/hero-item/editor.scss +87 -0
- package/src/blocks/hero/hero-item/factory.tsx +49 -0
- package/src/blocks/hero/hero-item/index.ts +10 -0
- package/src/blocks/hero/hero-item/types.ts +38 -0
- package/src/blocks/map/map-group/constants.ts +20 -0
- package/src/blocks/map/map-group/edit.tsx +108 -0
- package/src/blocks/map/map-group/editor.scss +24 -0
- package/src/blocks/map/map-group/factory.tsx +51 -0
- package/src/blocks/map/map-group/index.ts +9 -0
- package/src/blocks/map/map-group/types.ts +16 -0
- package/src/blocks/newsletter/newsletter-form/constants.ts +5 -0
- package/src/blocks/newsletter/newsletter-form/edit.tsx +194 -0
- package/src/blocks/newsletter/newsletter-form/editor.scss +68 -0
- package/src/blocks/newsletter/newsletter-form/factory.tsx +59 -0
- package/src/blocks/newsletter/newsletter-form/index.ts +11 -0
- package/src/blocks/newsletter/newsletter-form/types.ts +45 -0
- package/src/blocks/post/post-slider-group/constants.ts +3 -0
- package/src/blocks/post/post-slider-group/edit.tsx +76 -0
- package/src/blocks/post/post-slider-group/factory.tsx +43 -0
- package/src/blocks/post/post-slider-group/icon.tsx +13 -0
- package/src/blocks/post/post-slider-group/index.ts +9 -0
- package/src/blocks/post/post-slider-group/types.ts +20 -0
- package/src/blocks/responsive-grid/responsive-grid-group/edit.tsx +95 -0
- package/src/blocks/responsive-grid/responsive-grid-group/factory.tsx +33 -0
- package/src/blocks/responsive-grid/responsive-grid-group/index.ts +13 -0
- package/src/blocks/responsive-grid/responsive-grid-group/types.ts +9 -0
- package/src/blocks/responsive-grid/responsive-grid-item/edit.tsx +19 -0
- package/src/blocks/responsive-grid/responsive-grid-item/factory.tsx +20 -0
- package/src/blocks/responsive-grid/responsive-grid-item/index.ts +9 -0
- package/src/blocks/responsive-grid/responsive-grid-item/types.ts +5 -0
- package/src/blocks/sections/base-section/attributes.ts +17 -0
- package/src/blocks/sections/base-section/constants.ts +18 -0
- package/src/blocks/sections/base-section/controls.tsx +70 -0
- package/src/blocks/sections/base-section/edit.tsx +34 -0
- package/src/blocks/sections/base-section/editor.scss +24 -0
- package/src/blocks/sections/base-section/factory.tsx +47 -0
- package/src/blocks/sections/base-section/icon.tsx +6 -0
- package/src/blocks/sections/base-section/index.ts +14 -0
- package/src/blocks/sections/base-section/types.ts +26 -0
- package/src/blocks/signpost/signpost-group/constants.ts +3 -0
- package/src/blocks/signpost/signpost-group/edit.tsx +75 -0
- package/src/blocks/signpost/signpost-group/editor.scss +0 -0
- package/src/blocks/signpost/signpost-group/factory.tsx +40 -0
- package/src/blocks/signpost/signpost-group/icon.tsx +19 -0
- package/src/blocks/signpost/signpost-group/index.ts +15 -0
- package/src/blocks/signpost/signpost-group/types.ts +9 -0
- package/src/blocks/signpost/signpost-item/constants.ts +4 -0
- package/src/blocks/signpost/signpost-item/edit.tsx +90 -0
- package/src/blocks/signpost/signpost-item/editor.scss +25 -0
- package/src/blocks/signpost/signpost-item/factory.tsx +29 -0
- package/src/blocks/signpost/signpost-item/icon.tsx +7 -0
- package/src/blocks/signpost/signpost-item/index.ts +10 -0
- package/src/blocks/signpost/signpost-item/types.ts +12 -0
- package/src/blocks/step/step-group/constants.ts +6 -0
- package/src/blocks/step/step-group/edit.tsx +64 -0
- package/src/blocks/step/step-group/editor.scss +19 -0
- package/src/blocks/step/step-group/factory.tsx +36 -0
- package/src/blocks/step/step-group/icon.tsx +27 -0
- package/src/blocks/step/step-group/index.ts +15 -0
- package/src/blocks/step/step-group/types.ts +13 -0
- package/src/blocks/step/step-item/constants.ts +6 -0
- package/src/blocks/step/step-item/edit.tsx +60 -0
- package/src/blocks/step/step-item/editor.scss +18 -0
- package/src/blocks/step/step-item/factory.tsx +27 -0
- package/src/blocks/step/step-item/index.ts +11 -0
- package/src/blocks/step/step-item/types.ts +12 -0
- package/src/blocks/testimonial/testimonial-group/constants.ts +27 -0
- package/src/blocks/testimonial/testimonial-group/edit.tsx +74 -0
- package/src/blocks/testimonial/testimonial-group/editor.scss +38 -0
- package/src/blocks/testimonial/testimonial-group/factory.tsx +44 -0
- package/src/blocks/testimonial/testimonial-group/icon.tsx +33 -0
- package/src/blocks/testimonial/testimonial-group/index.ts +15 -0
- package/src/blocks/testimonial/testimonial-group/types.ts +19 -0
- package/src/blocks/testimonial/testimonial-item/edit.tsx +48 -0
- package/src/blocks/testimonial/testimonial-item/editor.scss +20 -0
- package/src/blocks/testimonial/testimonial-item/factory.tsx +35 -0
- package/src/blocks/testimonial/testimonial-item/index.ts +9 -0
- package/src/blocks/testimonial/testimonial-item/types.ts +9 -0
- package/src/blocks/text-and-form/text-and-form-group/constants.ts +6 -0
- package/src/blocks/text-and-form/text-and-form-group/edit.tsx +59 -0
- package/src/blocks/text-and-form/text-and-form-group/editor.scss +21 -0
- package/src/blocks/text-and-form/text-and-form-group/factory.tsx +38 -0
- package/src/blocks/text-and-form/text-and-form-group/icon.tsx +23 -0
- package/src/blocks/text-and-form/text-and-form-group/index.ts +9 -0
- package/src/blocks/text-and-form/text-and-form-group/types.ts +23 -0
- package/src/blocks/text-and-form/text-and-form-text-column/constants.ts +10 -0
- package/src/blocks/text-and-form/text-and-form-text-column/edit.tsx +94 -0
- package/src/blocks/text-and-form/text-and-form-text-column/editor.scss +29 -0
- package/src/blocks/text-and-form/text-and-form-text-column/factory.tsx +41 -0
- package/src/blocks/text-and-form/text-and-form-text-column/index.ts +18 -0
- package/src/blocks/text-and-form/text-and-form-text-column/types.ts +23 -0
- package/src/blocks/usp/usp-group/constants.ts +54 -0
- package/src/blocks/usp/usp-group/edit.tsx +197 -0
- package/src/blocks/usp/usp-group/editor.scss +24 -0
- package/src/blocks/usp/usp-group/factory.tsx +113 -0
- package/src/blocks/usp/usp-group/icon.tsx +18 -0
- package/src/blocks/usp/usp-group/index.ts +15 -0
- package/src/blocks/usp/usp-group/types.ts +70 -0
- package/src/blocks/usp/usp-item/constants.ts +7 -0
- package/src/blocks/usp/usp-item/edit.tsx +65 -0
- package/src/blocks/usp/usp-item/editor.scss +17 -0
- package/src/blocks/usp/usp-item/factory.tsx +30 -0
- package/src/blocks/usp/usp-item/index.ts +11 -0
- package/src/blocks/usp/usp-item/types.ts +17 -0
- package/src/components/IconControl/IconControl.tsx +55 -0
- package/src/components/IconControl/editor.scss +53 -0
- package/src/components/IconControl/index.ts +2 -0
- package/src/components/IconControl/index.tsx +1 -0
- package/src/components/ImagePicker/ImagePicker.tsx +124 -0
- package/src/components/ImagePicker/editor.scss +79 -0
- package/src/components/ImagePicker/index.ts +2 -0
- package/src/components/ImagePicker/index.tsx +1 -0
- package/src/components/ItemIconControl/ItemIconControl.tsx +72 -0
- package/src/components/ItemIconControl/ItemIconModal.tsx +12 -0
- package/src/components/ItemIconControl/ItemIconPreview.tsx +93 -0
- package/src/components/ItemIconControl/editor.scss +52 -0
- package/src/components/ItemIconControl/index.ts +2 -0
- package/src/components/ItemIconControl/types.d.ts +30 -0
- package/src/constants.ts +20 -0
- package/src/editor.scss +34 -0
- package/src/globals.scss +237 -0
- package/src/hooks/useGroupBlock.ts +53 -0
- package/src/index.ts +122 -0
- package/src/types.ts +33 -0
- package/src/utils/createEditAdapter.ts +11 -0
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
@layer base {
|
|
2
|
+
.i-item-icon,
|
|
3
|
+
.i-item-icon__placeholder {
|
|
4
|
+
width: 40px;
|
|
5
|
+
height: 40px;
|
|
6
|
+
display: flex;
|
|
7
|
+
align-items: center;
|
|
8
|
+
justify-content: center;
|
|
9
|
+
background: #f0f6fb;
|
|
10
|
+
border-radius: 4px;
|
|
11
|
+
font-size: 18px;
|
|
12
|
+
color: #0073aa;
|
|
13
|
+
flex-shrink: 0;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.i-item-icon {
|
|
17
|
+
img,
|
|
18
|
+
.i-item-icon__img {
|
|
19
|
+
max-width: 100%;
|
|
20
|
+
max-height: 100%;
|
|
21
|
+
object-fit: contain;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.i-item-icon__placeholder {
|
|
26
|
+
&.--clickable {
|
|
27
|
+
cursor: pointer;
|
|
28
|
+
background: none;
|
|
29
|
+
border: 1px dashed #0073aa;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.i-item-icon__preview {
|
|
34
|
+
display: flex;
|
|
35
|
+
align-items: center;
|
|
36
|
+
justify-content: center;
|
|
37
|
+
padding: 8px 0;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.i-item-icon__control-preselected {
|
|
41
|
+
display: flex;
|
|
42
|
+
flex-direction: column;
|
|
43
|
+
gap: 8px;
|
|
44
|
+
margin-top: 16px;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.i-item-icon__number {
|
|
48
|
+
font-size: 22px;
|
|
49
|
+
font-weight: 700;
|
|
50
|
+
color: #0073aa;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type {Icon, SelectOption} from '~/types'
|
|
2
|
+
import type {IconType} from '../IconControl/IconControl'
|
|
3
|
+
import {UspIconType} from '~/blocks/usp/usp-item/types'
|
|
4
|
+
|
|
5
|
+
export interface ItemIconOptions {
|
|
6
|
+
icons: IconType[]
|
|
7
|
+
iconsSrc: string
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export interface ItemIconControlProps {
|
|
11
|
+
icon: Icon
|
|
12
|
+
setAttributes: (attributes: {icon: Icon}) => void
|
|
13
|
+
options: ItemIconOptions
|
|
14
|
+
iconTypes: readonly SelectOption[]
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export interface ItemIconPreviewProps {
|
|
18
|
+
icon: Icon
|
|
19
|
+
className?: string
|
|
20
|
+
options: ItemIconOptions
|
|
21
|
+
setAttributes: (attributes: {icon: Icon}) => void
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export interface ItemIconModalProps {
|
|
25
|
+
icon: Icon
|
|
26
|
+
options: ItemIconOptions
|
|
27
|
+
onClose: () => void
|
|
28
|
+
onChange: (selectedIcon: IconType) => void
|
|
29
|
+
className?: string
|
|
30
|
+
}
|
package/src/constants.ts
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import {__} from '@wordpress/i18n'
|
|
2
|
+
|
|
3
|
+
export const HEADING_LEVELS = [1, 2, 3, 4] as const
|
|
4
|
+
|
|
5
|
+
export const HEADING_STYLES = ['h1', 'h2', 'h3', 'h4'] as const
|
|
6
|
+
|
|
7
|
+
export const HEADING_STYLE_OPTIONS = [
|
|
8
|
+
{value: 'h1', label: 'H1 styl'},
|
|
9
|
+
{value: 'h2', label: 'H2 styl'},
|
|
10
|
+
{value: 'h3', label: 'H3 styl'},
|
|
11
|
+
{value: 'h4', label: 'H4 styl'},
|
|
12
|
+
] as const
|
|
13
|
+
|
|
14
|
+
export type HeadingStyleOption = (typeof HEADING_STYLE_OPTIONS)[number]['value']
|
|
15
|
+
|
|
16
|
+
export const CONTENT_SIZES = [
|
|
17
|
+
{value: 'sm', label: __('Malá', 'brilo-blocks')},
|
|
18
|
+
{value: 'default', label: __('Výchozí', 'brilo-blocks')},
|
|
19
|
+
{value: 'lg', label: __('Velká', 'brilo-blocks')},
|
|
20
|
+
] as const
|
package/src/editor.scss
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
@forward "./globals";
|
|
2
|
+
@forward "./blocks/column/column-group/editor";
|
|
3
|
+
@forward "./blocks/column/column-item/editor";
|
|
4
|
+
@forward "./blocks/compare/compare-item/editor";
|
|
5
|
+
@forward "./blocks/compare/compare-option/editor";
|
|
6
|
+
@forward "./blocks/contact/contact-group/editor";
|
|
7
|
+
@forward "./blocks/contact/contact-item/editor";
|
|
8
|
+
@forward "./blocks/core/basic-button/editor";
|
|
9
|
+
@forward "./blocks/core/basic-heading/editor";
|
|
10
|
+
@forward "./blocks/core/basic-overline/editor";
|
|
11
|
+
@forward "./blocks/faq/faq-group/editor";
|
|
12
|
+
@forward "./blocks/faq/faq-item/editor";
|
|
13
|
+
@forward "./blocks/form/form-field/editor";
|
|
14
|
+
@forward "./blocks/form/form-group/editor";
|
|
15
|
+
@forward "./blocks/groups/banner-group/editor";
|
|
16
|
+
@forward "./blocks/groups/basic-header-group/editor";
|
|
17
|
+
@forward "./blocks/groups/button-group/editor";
|
|
18
|
+
@forward "./blocks/groups/text-and-media-group/editor";
|
|
19
|
+
@forward "./blocks/hero/hero-item/editor";
|
|
20
|
+
@forward "./blocks/map/map-group/editor";
|
|
21
|
+
@forward "./blocks/newsletter/newsletter-form/editor";
|
|
22
|
+
@forward "./blocks/sections/base-section/editor";
|
|
23
|
+
@forward "./blocks/signpost/signpost-item/editor";
|
|
24
|
+
@forward "./blocks/step/step-group/editor";
|
|
25
|
+
@forward "./blocks/step/step-item/editor";
|
|
26
|
+
@forward "./blocks/testimonial/testimonial-group/editor";
|
|
27
|
+
@forward "./blocks/testimonial/testimonial-item/editor";
|
|
28
|
+
@forward "./blocks/text-and-form/text-and-form-group/editor";
|
|
29
|
+
@forward "./blocks/text-and-form/text-and-form-text-column/editor";
|
|
30
|
+
@forward "./blocks/usp/usp-group/editor";
|
|
31
|
+
@forward "./blocks/usp/usp-item/editor";
|
|
32
|
+
@forward "./components/IconControl/editor";
|
|
33
|
+
@forward "./components/ImagePicker/editor";
|
|
34
|
+
@forward "./components/ItemIconControl/editor";
|
package/src/globals.scss
ADDED
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
// WordPress overrides — outside layer to beat unlayered WP styles
|
|
2
|
+
html .wp-block {
|
|
3
|
+
max-width: 1200px;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
@layer base {
|
|
7
|
+
.text-center {
|
|
8
|
+
text-align: center;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.wp-block-section {
|
|
12
|
+
--border-color: #ddd;
|
|
13
|
+
|
|
14
|
+
padding: 8px;
|
|
15
|
+
border: 1px solid var(--border-color);
|
|
16
|
+
cursor: pointer;
|
|
17
|
+
transition: border 0.3s ease;
|
|
18
|
+
max-width: 1200px;
|
|
19
|
+
|
|
20
|
+
&:hover {
|
|
21
|
+
--border-color: #0073aa;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
&.--heading-style-h1 {
|
|
25
|
+
--heading-size: 32px;
|
|
26
|
+
}
|
|
27
|
+
&.--heading-style-h2 {
|
|
28
|
+
--heading-size: 28px;
|
|
29
|
+
}
|
|
30
|
+
&.--heading-style-h3 {
|
|
31
|
+
--heading-size: 24px;
|
|
32
|
+
}
|
|
33
|
+
&.--heading-style-h4 {
|
|
34
|
+
--heading-size: 20px;
|
|
35
|
+
}
|
|
36
|
+
&.--heading-style-h5 {
|
|
37
|
+
--heading-size: 18px;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
&.--typo-size-sm {
|
|
41
|
+
--typo-size: 14px;
|
|
42
|
+
}
|
|
43
|
+
&.--typo-size-md {
|
|
44
|
+
--typo-size: 16px;
|
|
45
|
+
}
|
|
46
|
+
&.--typo-size-lg {
|
|
47
|
+
--typo-size: 18px;
|
|
48
|
+
}
|
|
49
|
+
&.--typo-size-xl {
|
|
50
|
+
--typo-size: 20px;
|
|
51
|
+
}
|
|
52
|
+
&.--typo-size-xxl {
|
|
53
|
+
--typo-size: 24px;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.wp-block-section__title {
|
|
57
|
+
font-size: var(--heading-size);
|
|
58
|
+
}
|
|
59
|
+
.wp-block-section__content {
|
|
60
|
+
font-size: var(--typo-size);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.wp-block-inner {
|
|
65
|
+
display: flex;
|
|
66
|
+
flex-direction: column;
|
|
67
|
+
gap: 8px;
|
|
68
|
+
padding: 12px;
|
|
69
|
+
border: 1px solid #eee;
|
|
70
|
+
border-radius: 4px;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.wp-block-inner-content {
|
|
74
|
+
--border-color: #ddd;
|
|
75
|
+
|
|
76
|
+
min-height: 64px;
|
|
77
|
+
margin-bottom: 16px;
|
|
78
|
+
padding: 8px;
|
|
79
|
+
border: 1px dashed var(--border-color);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.u-grid-responsive-blocks-list {
|
|
83
|
+
--grid-max-col-count: 2;
|
|
84
|
+
--grid-min-col-size: 150px;
|
|
85
|
+
--grid-gap: 1rem;
|
|
86
|
+
--grid-col-size-calc: calc((100% - var(--grid-gap) * var(--grid-max-col-count)) / var(--grid-max-col-count));
|
|
87
|
+
--grid-col-min-size-calc: min(100%, max(var(--grid-min-col-size), var(--grid-col-size-calc)));
|
|
88
|
+
|
|
89
|
+
display: grid;
|
|
90
|
+
gap: var(--grid-gap);
|
|
91
|
+
grid-template-columns: repeat(auto-fill, minmax(var(--grid-col-min-size-calc), 1fr));
|
|
92
|
+
|
|
93
|
+
&.--cols-2 {
|
|
94
|
+
--grid-max-col-count: 2;
|
|
95
|
+
}
|
|
96
|
+
&.--cols-3 {
|
|
97
|
+
--grid-max-col-count: 3;
|
|
98
|
+
}
|
|
99
|
+
&.--cols-4 {
|
|
100
|
+
--grid-max-col-count: 4;
|
|
101
|
+
}
|
|
102
|
+
&.--cols-5 {
|
|
103
|
+
--grid-max-col-count: 5;
|
|
104
|
+
}
|
|
105
|
+
&.--cols-6 {
|
|
106
|
+
--grid-max-col-count: 6;
|
|
107
|
+
}
|
|
108
|
+
&.--cols-8 {
|
|
109
|
+
--grid-max-col-count: 8;
|
|
110
|
+
}
|
|
111
|
+
&.--cols-10 {
|
|
112
|
+
--grid-max-col-count: 10;
|
|
113
|
+
}
|
|
114
|
+
&.--cols-12 {
|
|
115
|
+
--grid-max-col-count: 12;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
.u-grid-responsive {
|
|
120
|
+
--grid-max-col-count: 2;
|
|
121
|
+
--grid-min-col-size: 150px;
|
|
122
|
+
--grid-gap: 0.5rem;
|
|
123
|
+
--grid-col-size-calc: calc((100% - var(--grid-gap) * var(--grid-max-col-count)) / var(--grid-max-col-count));
|
|
124
|
+
--grid-col-min-size-calc: min(100%, max(var(--grid-min-col-size), var(--grid-col-size-calc)));
|
|
125
|
+
|
|
126
|
+
display: grid;
|
|
127
|
+
gap: var(--grid-gap);
|
|
128
|
+
grid-template-columns: repeat(auto-fill, minmax(var(--grid-col-min-size-calc), 1fr));
|
|
129
|
+
|
|
130
|
+
&.--col-2 {
|
|
131
|
+
--grid-max-col-count: 2;
|
|
132
|
+
}
|
|
133
|
+
&.--col-3 {
|
|
134
|
+
--grid-max-col-count: 3;
|
|
135
|
+
}
|
|
136
|
+
&.--col-4 {
|
|
137
|
+
--grid-max-col-count: 4;
|
|
138
|
+
}
|
|
139
|
+
&.--col-5 {
|
|
140
|
+
--grid-max-col-count: 5;
|
|
141
|
+
}
|
|
142
|
+
&.--col-6 {
|
|
143
|
+
--grid-max-col-count: 6;
|
|
144
|
+
}
|
|
145
|
+
&.--col-12 {
|
|
146
|
+
--grid-max-col-count: 12;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
&.--max-col-size-200px {
|
|
150
|
+
--grid-min-col-size: 200px;
|
|
151
|
+
}
|
|
152
|
+
&.--max-col-size-400px {
|
|
153
|
+
--grid-min-col-size: 400px;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
.u-text-editable {
|
|
158
|
+
--border-color: #ccc;
|
|
159
|
+
|
|
160
|
+
border: 1px solid var(--border-color);
|
|
161
|
+
padding-inline: 4px;
|
|
162
|
+
|
|
163
|
+
&:focus {
|
|
164
|
+
--border-color: #0073aa;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
.text-sm {
|
|
169
|
+
font-size: 14px;
|
|
170
|
+
}
|
|
171
|
+
.flex {
|
|
172
|
+
display: flex;
|
|
173
|
+
}
|
|
174
|
+
.column {
|
|
175
|
+
flex-direction: column;
|
|
176
|
+
}
|
|
177
|
+
.gap-1 {
|
|
178
|
+
gap: 4px;
|
|
179
|
+
}
|
|
180
|
+
.gap-2 {
|
|
181
|
+
gap: 8px;
|
|
182
|
+
}
|
|
183
|
+
.gap-3 {
|
|
184
|
+
gap: 16px;
|
|
185
|
+
}
|
|
186
|
+
.gap-4 {
|
|
187
|
+
gap: 24px;
|
|
188
|
+
}
|
|
189
|
+
.gap-5 {
|
|
190
|
+
gap: 32px;
|
|
191
|
+
}
|
|
192
|
+
.gap-6 {
|
|
193
|
+
gap: 40px;
|
|
194
|
+
}
|
|
195
|
+
.gap-7 {
|
|
196
|
+
gap: 48px;
|
|
197
|
+
}
|
|
198
|
+
.gap-8 {
|
|
199
|
+
gap: 64px;
|
|
200
|
+
}
|
|
201
|
+
.p-1 {
|
|
202
|
+
padding: 4px;
|
|
203
|
+
}
|
|
204
|
+
.p-2 {
|
|
205
|
+
padding: 8px;
|
|
206
|
+
}
|
|
207
|
+
.p-3 {
|
|
208
|
+
padding: 16px;
|
|
209
|
+
}
|
|
210
|
+
.cursor-pointer {
|
|
211
|
+
cursor: pointer;
|
|
212
|
+
}
|
|
213
|
+
.items-end {
|
|
214
|
+
align-items: end;
|
|
215
|
+
}
|
|
216
|
+
.items-center {
|
|
217
|
+
align-items: center;
|
|
218
|
+
}
|
|
219
|
+
.justify-center {
|
|
220
|
+
justify-content: center;
|
|
221
|
+
}
|
|
222
|
+
.justify-end {
|
|
223
|
+
justify-content: end;
|
|
224
|
+
}
|
|
225
|
+
.mt-4 {
|
|
226
|
+
margin-top: 16px;
|
|
227
|
+
}
|
|
228
|
+
.mb-4 {
|
|
229
|
+
margin-bottom: 16px;
|
|
230
|
+
}
|
|
231
|
+
.w-full {
|
|
232
|
+
width: 100%;
|
|
233
|
+
}
|
|
234
|
+
.grow {
|
|
235
|
+
flex-grow: 1;
|
|
236
|
+
}
|
|
237
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import {useBlockProps, useInnerBlocksProps} from '@wordpress/block-editor'
|
|
2
|
+
import clsx, {type ClassValue} from 'clsx'
|
|
3
|
+
import type {ComponentType, CSSProperties} from 'react'
|
|
4
|
+
|
|
5
|
+
type BlockTemplate = [string, Record<string, unknown>][]
|
|
6
|
+
type StyleWithVars = CSSProperties & {[key: `--${string}`]: string | number}
|
|
7
|
+
|
|
8
|
+
export interface GroupBlockConfig {
|
|
9
|
+
blockClassName: ClassValue | ClassValue[]
|
|
10
|
+
containerClassName: ClassValue | ClassValue[]
|
|
11
|
+
containerStyle?: StyleWithVars
|
|
12
|
+
allowedBlocks?: string[]
|
|
13
|
+
template?: BlockTemplate
|
|
14
|
+
templateLock?: 'all' | 'insert' | false
|
|
15
|
+
orientation?: 'horizontal' | 'vertical'
|
|
16
|
+
layout?: {type: string; columnCount?: number; minimumColumnWidth?: string}
|
|
17
|
+
renderAppender?: ComponentType
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
type GroupBlockProps = Record<string, unknown>
|
|
21
|
+
|
|
22
|
+
interface GroupBlockResult {
|
|
23
|
+
blockProps: GroupBlockProps
|
|
24
|
+
innerBlocksProps: GroupBlockProps
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export function useGroupBlock({
|
|
28
|
+
blockClassName,
|
|
29
|
+
containerClassName,
|
|
30
|
+
containerStyle,
|
|
31
|
+
allowedBlocks,
|
|
32
|
+
template,
|
|
33
|
+
templateLock,
|
|
34
|
+
orientation,
|
|
35
|
+
layout,
|
|
36
|
+
renderAppender,
|
|
37
|
+
}: GroupBlockConfig): GroupBlockResult {
|
|
38
|
+
const blockProps = useBlockProps({className: clsx(blockClassName)})
|
|
39
|
+
|
|
40
|
+
const innerBlocksProps = useInnerBlocksProps(
|
|
41
|
+
{
|
|
42
|
+
className: clsx(containerClassName),
|
|
43
|
+
...(containerStyle && {style: containerStyle}),
|
|
44
|
+
},
|
|
45
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
46
|
+
{allowedBlocks, template, templateLock, orientation, layout, renderAppender} as any,
|
|
47
|
+
)
|
|
48
|
+
|
|
49
|
+
return {
|
|
50
|
+
blockProps: blockProps as unknown as GroupBlockProps,
|
|
51
|
+
innerBlocksProps: innerBlocksProps as unknown as GroupBlockProps,
|
|
52
|
+
}
|
|
53
|
+
}
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
export type {
|
|
2
|
+
ContactColumns,
|
|
3
|
+
ContactGroupAttributes,
|
|
4
|
+
ContactGroupOptions,
|
|
5
|
+
} from './blocks/contact/contact-group'
|
|
6
|
+
export {
|
|
7
|
+
CONTACT_COLUMNS,
|
|
8
|
+
CONTACT_COLUMNS_CONTEXT,
|
|
9
|
+
contactGroupDefaults,
|
|
10
|
+
createContactGroupBlock,
|
|
11
|
+
} from './blocks/contact/contact-group'
|
|
12
|
+
export type {
|
|
13
|
+
ContactIconSize,
|
|
14
|
+
ContactIconSizeVariant,
|
|
15
|
+
ContactItemAttributes,
|
|
16
|
+
ContactItemOptions,
|
|
17
|
+
} from './blocks/contact/contact-item'
|
|
18
|
+
export {
|
|
19
|
+
CONTACT_ICON_SIZE_RANGE,
|
|
20
|
+
CONTACT_ICON_SIZES,
|
|
21
|
+
CONTACT_ICON_TYPES,
|
|
22
|
+
contactItemDefaults,
|
|
23
|
+
createContactItemBlock,
|
|
24
|
+
} from './blocks/contact/contact-item'
|
|
25
|
+
export type {FaqItemAttributes, FaqItemOptions} from './blocks/faq/faq-item'
|
|
26
|
+
export {createFaqItemBlock, faqItemDefaults} from './blocks/faq/faq-item'
|
|
27
|
+
export type {FaqGroupAttributes, FaqGroupOptions} from './blocks/faq/faq-group'
|
|
28
|
+
export {createFaqGroupBlock, faqGroupDefaults} from './blocks/faq/faq-group'
|
|
29
|
+
export type {BasicButtonAttributes, BasicButtonOptions} from './blocks/core/basic-button'
|
|
30
|
+
export {basicButtonDefaults, createBasicButtonBlock} from './blocks/core/basic-button'
|
|
31
|
+
export type {BasicHeadingAttributes, BasicHeadingOptions} from './blocks/core/basic-heading'
|
|
32
|
+
export {basicHeadingDefaults, createBasicHeadingBlock} from './blocks/core/basic-heading'
|
|
33
|
+
export type {BasicOverlineAttributes, BasicOverlineOptions} from './blocks/core/basic-overline'
|
|
34
|
+
export {basicOverlineDefaults, createBasicOverlineBlock} from './blocks/core/basic-overline'
|
|
35
|
+
export type {HeroItemAttributes, HeroItemOptions} from './blocks/hero/hero-item'
|
|
36
|
+
export {createHeroItemBlock, heroItemDefaults} from './blocks/hero/hero-item'
|
|
37
|
+
export type {HeroGroupAttributes, HeroGroupOptions} from './blocks/hero/hero-group'
|
|
38
|
+
export {createHeroGroupBlock, heroGroupDefaults} from './blocks/hero/hero-group'
|
|
39
|
+
export type {MapGroupAttributes, MapGroupOptions} from './blocks/map/map-group'
|
|
40
|
+
export {createMapGroupBlock, mapGroupDefaults} from './blocks/map/map-group'
|
|
41
|
+
export type {BasicHeaderGroupAttributes, BasicHeaderGroupOptions} from './blocks/groups/basic-header-group'
|
|
42
|
+
export {basicHeaderGroupDefaults, createBasicHeaderGroupBlock} from './blocks/groups/basic-header-group'
|
|
43
|
+
export type {ButtonGroupAttributes, ButtonGroupOptions} from './blocks/groups/button-group'
|
|
44
|
+
export {buttonGroupDefaults, createButtonGroupBlock} from './blocks/groups/button-group'
|
|
45
|
+
export type {BannerGroupAttributes, BannerGroupOptions} from './blocks/groups/banner-group'
|
|
46
|
+
export {createBannerGroupBlock, bannerGroupDefaults} from './blocks/groups/banner-group'
|
|
47
|
+
export type {TextAndMediaGroupAttributes, TextAndMediaGroupOptions} from './blocks/groups/text-and-media-group'
|
|
48
|
+
export {createTextAndMediaGroupBlock, textAndMediaGroupDefaults} from './blocks/groups/text-and-media-group'
|
|
49
|
+
export type {TextAndFormGroupAttributes, TextAndFormGroupOptions} from './blocks/text-and-form/text-and-form-group'
|
|
50
|
+
export {createTextAndFormGroupBlock, textAndFormGroupDefaults} from './blocks/text-and-form/text-and-form-group'
|
|
51
|
+
export type {TextAndFormTextColumnAttributes, TextAndFormTextColumnOptions} from './blocks/text-and-form/text-and-form-text-column'
|
|
52
|
+
export {createTextAndFormTextColumnBlock, textAndFormTextColumnDefaults} from './blocks/text-and-form/text-and-form-text-column'
|
|
53
|
+
export type {UspGroupAttributes, UspGroupOptions} from './blocks/usp/usp-group'
|
|
54
|
+
export {createUspGroupBlock, uspGroupDefaults} from './blocks/usp/usp-group'
|
|
55
|
+
export type {UspItemAttributes, UspItemOptions} from './blocks/usp/usp-item'
|
|
56
|
+
export {createUspItemBlock, uspItemDefaults} from './blocks/usp/usp-item'
|
|
57
|
+
export type {TestimonialGroupAttributes} from './blocks/testimonial/testimonial-group'
|
|
58
|
+
export {createTestimonialGroupBlock, testimonialGroupDefaults} from './blocks/testimonial/testimonial-group'
|
|
59
|
+
export type {TestimonialItemAttributes} from './blocks/testimonial/testimonial-item'
|
|
60
|
+
export {createTestimonialItemBlock, testimonialItemDefaults} from './blocks/testimonial/testimonial-item'
|
|
61
|
+
export type {CompareGroupAttributes, CompareGroupOptions} from './blocks/compare/compare-group'
|
|
62
|
+
export {createCompareGroupBlock, compareGroupDefaults} from './blocks/compare/compare-group'
|
|
63
|
+
export type {CompareItemAttributes, CompareItemOptions} from './blocks/compare/compare-item'
|
|
64
|
+
export {createCompareItemBlock, compareItemDefaults} from './blocks/compare/compare-item'
|
|
65
|
+
export type {CompareOptionAttributes, CompareOptionOptions} from './blocks/compare/compare-option'
|
|
66
|
+
export {createCompareOptionBlock, compareOptionDefaults} from './blocks/compare/compare-option'
|
|
67
|
+
export type {SignpostGroupAttributes, SignpostGroupOptions} from './blocks/signpost/signpost-group'
|
|
68
|
+
export {createSignpostGroupBlock, signpostGroupDefaults} from './blocks/signpost/signpost-group'
|
|
69
|
+
export type {SignpostItemAttributes, SignpostItemOptions} from './blocks/signpost/signpost-item'
|
|
70
|
+
export {createSignpostItemBlock, signpostItemDefaults} from './blocks/signpost/signpost-item'
|
|
71
|
+
export type {StepItemAttributes, StepItemOptions} from './blocks/step/step-item'
|
|
72
|
+
export {createStepItemBlock, stepItemDefaults} from './blocks/step/step-item'
|
|
73
|
+
export type {StepGroupAttributes, StepGroupOptions} from './blocks/step/step-group'
|
|
74
|
+
export {createStepGroupBlock, stepGroupDefaults} from './blocks/step/step-group'
|
|
75
|
+
export type {NewsletterFormAttributes, NewsletterFormOptions} from './blocks/newsletter/newsletter-form'
|
|
76
|
+
export {createNewsletterFormBlock, newsletterFormDefaults} from './blocks/newsletter/newsletter-form'
|
|
77
|
+
export type {ColumnGroupAttributes, ColumnGroupOptions} from './blocks/column/column-group'
|
|
78
|
+
export {createColumnGroupBlock, columnGroupDefaults} from './blocks/column/column-group'
|
|
79
|
+
export type {ColumnItemAttributes, ColumnItemOptions} from './blocks/column/column-item'
|
|
80
|
+
export {createColumnItemBlock, columnItemDefaults} from './blocks/column/column-item'
|
|
81
|
+
export type {BaseBlockAttributes, BaseSectionOptions, ExcludableBaseAttr} from './blocks/sections/base-section'
|
|
82
|
+
export {
|
|
83
|
+
BACKGROUNDS,
|
|
84
|
+
baseAttributes,
|
|
85
|
+
baseSectionDefaults,
|
|
86
|
+
createBaseSectionBlock,
|
|
87
|
+
createBaseSectionEdit,
|
|
88
|
+
SPACING_POSITIONS,
|
|
89
|
+
SPACING_SIZES,
|
|
90
|
+
} from './blocks/sections/base-section'
|
|
91
|
+
export type {IconType} from './components/IconControl'
|
|
92
|
+
export {IconControl} from './components/IconControl'
|
|
93
|
+
export type {ImageLabels, ImageValue} from './components/ImagePicker'
|
|
94
|
+
export {ImagePickerBody, ImagePickerControl, useMediaUrl} from './components/ImagePicker'
|
|
95
|
+
export type {GroupBlockConfig} from './hooks/useGroupBlock'
|
|
96
|
+
export {useGroupBlock} from './hooks/useGroupBlock'
|
|
97
|
+
export type {TypedEditComponent} from './utils/createEditAdapter'
|
|
98
|
+
export {HEADING_LEVELS, HEADING_STYLES, HEADING_STYLE_OPTIONS} from './constants'
|
|
99
|
+
export type {HeadingStyleOption} from './constants'
|
|
100
|
+
export {createEditAdapter} from './utils/createEditAdapter'
|
|
101
|
+
export type {
|
|
102
|
+
ExternalMethod,
|
|
103
|
+
FormGroupAttributes,
|
|
104
|
+
FormGroupOptions,
|
|
105
|
+
InternalSubmitBehavior,
|
|
106
|
+
ProcessingMode,
|
|
107
|
+
} from './blocks/form/form-group'
|
|
108
|
+
export {
|
|
109
|
+
createFormGroupBlock,
|
|
110
|
+
formGroupDefaults,
|
|
111
|
+
EXTERNAL_METHODS,
|
|
112
|
+
INTERNAL_SUBMIT_BEHAVIORS,
|
|
113
|
+
PROCESSING_MODES,
|
|
114
|
+
} from './blocks/form/form-group'
|
|
115
|
+
export type {FormFieldAttributes, FormFieldOptions, FormFieldType} from './blocks/form/form-field'
|
|
116
|
+
export {createFormFieldBlock, formFieldDefaults, FIELD_TYPES, FIELD_COLUMNS_RANGE, FIELD_COLUMNS_DEFAULT} from './blocks/form/form-field'
|
|
117
|
+
export type {ResponsiveGridGroupAttributes, ResponsiveGridGroupOptions} from './blocks/responsive-grid/responsive-grid-group'
|
|
118
|
+
export {createResponsiveGridGroupBlock, responsiveGridGroupDefaults} from './blocks/responsive-grid/responsive-grid-group'
|
|
119
|
+
export type {ResponsiveGridItemAttributes, ResponsiveGridItemOptions} from './blocks/responsive-grid/responsive-grid-item'
|
|
120
|
+
export {createResponsiveGridItemBlock, responsiveGridItemDefaults} from './blocks/responsive-grid/responsive-grid-item'
|
|
121
|
+
export type {PostSliderGroupAttributes, PostSliderGroupOptions} from './blocks/post/post-slider-group'
|
|
122
|
+
export {createPostSliderGroupBlock, postSliderGroupDefaults} from './blocks/post/post-slider-group'
|
package/src/types.ts
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import {BlockTypeIconDescriptor} from '@wordpress/blocks'
|
|
2
|
+
export interface SelectOption {
|
|
3
|
+
value: string
|
|
4
|
+
label: string
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
export interface Media {
|
|
8
|
+
id: number
|
|
9
|
+
alt: string
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export interface Icon {
|
|
13
|
+
type: string
|
|
14
|
+
src: string
|
|
15
|
+
media: Media
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export type OptionArray = ReadonlyArray<{value: string; label: string}>
|
|
19
|
+
export type NumberArray = ReadonlyArray<number>
|
|
20
|
+
export type StringArray = ReadonlyArray<string>
|
|
21
|
+
|
|
22
|
+
export interface BriloBlockType {
|
|
23
|
+
name: string
|
|
24
|
+
title?: string
|
|
25
|
+
description?: string
|
|
26
|
+
category?: string
|
|
27
|
+
allowedBlocks?: string[]
|
|
28
|
+
template?: [string, Record<string, unknown>][]
|
|
29
|
+
blockClassName?: string
|
|
30
|
+
containerClassName?: string
|
|
31
|
+
icon?: BlockTypeIconDescriptor
|
|
32
|
+
parent?: string[]
|
|
33
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type {BlockEditProps, BlockType} from '@wordpress/blocks'
|
|
2
|
+
|
|
3
|
+
export type TypedEditComponent<Attributes extends Record<string, unknown>> = (props: BlockEditProps<Attributes>) => JSX.Element
|
|
4
|
+
|
|
5
|
+
export function createEditAdapter<Attributes extends Record<string, unknown>>(
|
|
6
|
+
EditComponent: TypedEditComponent<Attributes>,
|
|
7
|
+
): NonNullable<Partial<BlockType>['edit']> {
|
|
8
|
+
return function EditAdapter(props) {
|
|
9
|
+
return EditComponent(props as BlockEditProps<Attributes>)
|
|
10
|
+
}
|
|
11
|
+
}
|