@brilo/base-blocks 0.1.7 → 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.
- package/build/blocks/groups/content-group/factory.d.ts +2 -2
- package/build/blocks/groups/content-group/factory.d.ts.map +1 -1
- package/build/blocks/groups/content-group/factory.js +8 -8
- package/build/blocks/groups/content-group/icon.d.ts.map +1 -1
- package/build/blocks/link/link-item/constants.d.ts +11 -0
- package/build/blocks/link/link-item/constants.d.ts.map +1 -0
- package/build/blocks/link/link-item/constants.js +6 -0
- package/build/blocks/link/link-item/edit.d.ts +6 -0
- package/build/blocks/link/link-item/edit.d.ts.map +1 -0
- package/build/blocks/link/link-item/edit.js +25 -0
- package/build/blocks/link/link-item/factory.d.ts +4 -0
- package/build/blocks/link/link-item/factory.d.ts.map +1 -0
- package/build/blocks/link/link-item/factory.js +27 -0
- package/build/blocks/link/link-item/icon.d.ts +2 -0
- package/build/blocks/link/link-item/icon.d.ts.map +1 -0
- package/build/blocks/link/link-item/icon.js +2 -0
- package/build/blocks/link/link-item/index.d.ts +5 -0
- package/build/blocks/link/link-item/index.d.ts.map +1 -0
- package/build/blocks/link/link-item/index.js +6 -0
- package/build/blocks/link/link-item/types.d.ts +25 -0
- package/build/blocks/link/link-item/types.d.ts.map +1 -0
- package/build/blocks/link/link-item/types.js +1 -0
- package/build/blocks/map/map-group/constants.d.ts +1 -0
- package/build/blocks/map/map-group/constants.d.ts.map +1 -1
- package/build/blocks/map/map-group/constants.js +2 -0
- package/build/blocks/map/map-group/edit.d.ts.map +1 -1
- package/build/blocks/map/map-group/edit.js +19 -11
- package/build/blocks/map/map-group/factory.d.ts +3 -1
- package/build/blocks/map/map-group/factory.d.ts.map +1 -1
- package/build/blocks/map/map-group/factory.js +24 -5
- package/build/blocks/map/map-group/index.d.ts.map +1 -1
- package/build/blocks/map/map-group/index.js +1 -0
- package/build/blocks/map/map-group/types.d.ts +18 -4
- package/build/blocks/map/map-group/types.d.ts.map +1 -1
- package/build/blocks/sections/base-section/attributes.d.ts +5 -1
- package/build/blocks/sections/base-section/attributes.d.ts.map +1 -1
- package/build/blocks/sections/base-section/attributes.js +5 -1
- package/build/blocks/sections/base-section/constants.d.ts +0 -16
- package/build/blocks/sections/base-section/constants.d.ts.map +1 -1
- package/build/blocks/sections/base-section/constants.js +0 -7
- package/build/blocks/sections/base-section/controls.d.ts.map +1 -1
- package/build/blocks/sections/base-section/controls.js +6 -3
- package/build/blocks/sections/base-section/edit.d.ts.map +1 -1
- package/build/blocks/sections/base-section/edit.js +8 -1
- package/build/blocks/sections/base-section/factory.d.ts.map +1 -1
- package/build/blocks/sections/base-section/factory.js +3 -8
- package/build/blocks/sections/base-section/index.d.ts +1 -1
- package/build/blocks/sections/base-section/index.d.ts.map +1 -1
- package/build/blocks/sections/base-section/index.js +1 -1
- package/build/blocks/sections/base-section/types.d.ts +1 -0
- package/build/blocks/sections/base-section/types.d.ts.map +1 -1
- package/build/hooks/useTenantColorPalette.d.ts +9 -0
- package/build/hooks/useTenantColorPalette.d.ts.map +1 -0
- package/build/hooks/useTenantColorPalette.js +12 -0
- package/build/index.d.ts +3 -1
- package/build/index.d.ts.map +1 -1
- package/build/index.js +2 -1
- package/package.json +2 -1
- package/src/blocks/groups/content-group/factory.tsx +11 -11
- package/src/blocks/groups/content-group/icon.tsx +1 -1
- package/src/blocks/link/link-item/constants.ts +7 -0
- package/src/blocks/link/link-item/edit.tsx +116 -0
- package/src/blocks/link/link-item/editor.scss +11 -0
- package/src/blocks/link/link-item/factory.tsx +29 -0
- package/src/blocks/link/link-item/icon.tsx +6 -0
- package/src/blocks/link/link-item/index.ts +10 -0
- package/src/blocks/link/link-item/types.ts +24 -0
- package/src/blocks/map/map-group/constants.ts +3 -0
- package/src/blocks/map/map-group/edit.tsx +74 -8
- package/src/blocks/map/map-group/editor.scss +7 -0
- package/src/blocks/map/map-group/factory.tsx +26 -4
- package/src/blocks/map/map-group/index.ts +1 -0
- package/src/blocks/map/map-group/types.ts +18 -4
- package/src/blocks/responsive-grid/responsive-grid-item/editor.scss +9 -0
- package/src/blocks/sections/base-section/attributes.ts +5 -1
- package/src/blocks/sections/base-section/constants.ts +0 -8
- package/src/blocks/sections/base-section/controls.tsx +18 -8
- package/src/blocks/sections/base-section/edit.tsx +8 -1
- package/src/blocks/sections/base-section/factory.tsx +3 -7
- package/src/blocks/sections/base-section/index.ts +1 -1
- package/src/blocks/sections/base-section/types.ts +1 -0
- package/src/editor.scss +2 -0
- package/src/hooks/useTenantColorPalette.ts +21 -0
- package/src/index.ts +2 -1
|
@@ -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,
|
|
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 {
|
|
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;
|
|
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 @@
|
|
|
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
|
@@ -61,7 +61,7 @@ export { createColumnGroupBlock, columnGroupDefaults } from './blocks/column/col
|
|
|
61
61
|
export type { ColumnItemAttributes, ColumnItemOptions } from './blocks/column/column-item';
|
|
62
62
|
export { createColumnItemBlock, columnItemDefaults } from './blocks/column/column-item';
|
|
63
63
|
export type { BaseBlockAttributes, BaseSectionOptions, ExcludableBaseAttr } from './blocks/sections/base-section';
|
|
64
|
-
export {
|
|
64
|
+
export { baseAttributes, baseSectionDefaults, createBaseSectionBlock, createBaseSectionEdit, SPACING_POSITIONS, SPACING_SIZES, } from './blocks/sections/base-section';
|
|
65
65
|
export type { IconType } from './components/IconControl';
|
|
66
66
|
export { IconControl } from './components/IconControl';
|
|
67
67
|
export type { ImageLabels, ImageValue } from './components/ImagePicker';
|
|
@@ -82,4 +82,6 @@ export type { ResponsiveGridItemAttributes, ResponsiveGridItemOptions } from './
|
|
|
82
82
|
export { createResponsiveGridItemBlock, responsiveGridItemDefaults } from './blocks/responsive-grid/responsive-grid-item';
|
|
83
83
|
export type { PostSliderGroupAttributes, PostSliderGroupOptions } from './blocks/post/post-slider-group';
|
|
84
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';
|
|
85
87
|
//# sourceMappingURL=index.d.ts.map
|
package/build/index.d.ts.map
CHANGED
|
@@ -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
|
@@ -29,7 +29,7 @@ export { createStepGroupBlock, stepGroupDefaults } from './blocks/step/step-grou
|
|
|
29
29
|
export { createNewsletterFormBlock, newsletterFormDefaults } from './blocks/newsletter/newsletter-form';
|
|
30
30
|
export { createColumnGroupBlock, columnGroupDefaults } from './blocks/column/column-group';
|
|
31
31
|
export { createColumnItemBlock, columnItemDefaults } from './blocks/column/column-item';
|
|
32
|
-
export {
|
|
32
|
+
export { baseAttributes, baseSectionDefaults, createBaseSectionBlock, createBaseSectionEdit, SPACING_POSITIONS, SPACING_SIZES, } from './blocks/sections/base-section';
|
|
33
33
|
export { IconControl } from './components/IconControl';
|
|
34
34
|
export { ImagePickerBody, ImagePickerControl, useMediaUrl } from './components/ImagePicker';
|
|
35
35
|
export { useGroupBlock } from './hooks/useGroupBlock';
|
|
@@ -40,3 +40,4 @@ export { createFormFieldBlock, formFieldDefaults, FIELD_TYPES, FIELD_COLUMNS_RAN
|
|
|
40
40
|
export { createResponsiveGridGroupBlock, responsiveGridGroupDefaults } from './blocks/responsive-grid/responsive-grid-group';
|
|
41
41
|
export { createResponsiveGridItemBlock, responsiveGridItemDefaults } from './blocks/responsive-grid/responsive-grid-item';
|
|
42
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.
|
|
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": {
|
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
import {InnerBlocks} from
|
|
2
|
-
import type {BlockConfiguration} from
|
|
3
|
-
import {__} from
|
|
4
|
-
import {createContentGroupEdit} from
|
|
5
|
-
import type {ContentGroupAttributes, ContentGroupOptions} from
|
|
6
|
-
import {icon as defaultIcon} from
|
|
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
7
|
|
|
8
8
|
export function createContentGroupBlock(options: ContentGroupOptions): BlockConfiguration<ContentGroupAttributes> {
|
|
9
9
|
return {
|
|
10
10
|
name: options.name,
|
|
11
|
-
title: options.title ?? __(
|
|
11
|
+
title: options.title ?? __('Obsahová skupina', 'brilo-blocks'),
|
|
12
12
|
description: options.description,
|
|
13
|
-
category: options.category ??
|
|
13
|
+
category: options.category ?? 'layout',
|
|
14
14
|
icon: options.icon ?? {src: defaultIcon},
|
|
15
15
|
...(options.parent && {parent: options.parent}),
|
|
16
16
|
supports: {html: false, customClassName: false},
|
|
17
17
|
attributes: {
|
|
18
18
|
size: {
|
|
19
|
-
type:
|
|
20
|
-
default:
|
|
19
|
+
type: 'string',
|
|
20
|
+
default: '8',
|
|
21
21
|
},
|
|
22
22
|
},
|
|
23
23
|
edit: createContentGroupEdit(options),
|
|
24
24
|
save: () => <InnerBlocks.Content />,
|
|
25
|
-
} as BlockConfiguration<ContentGroupAttributes
|
|
25
|
+
} as BlockConfiguration<ContentGroupAttributes>
|
|
26
26
|
}
|
|
@@ -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,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,28 +1,66 @@
|
|
|
1
|
-
import {InspectorControls, useBlockProps} from '@wordpress/block-editor'
|
|
2
|
-
import {
|
|
1
|
+
import {InspectorControls, RichText, useBlockProps} from '@wordpress/block-editor'
|
|
2
|
+
import {
|
|
3
|
+
PanelBody, BaseControl, TextControl, SelectControl, TextareaControl,
|
|
4
|
+
__experimentalToggleGroupControl as ToggleGroupControl,
|
|
5
|
+
__experimentalToggleGroupControlOption as ToggleGroupControlOption
|
|
6
|
+
} from '@wordpress/components'
|
|
3
7
|
import {__} from '@wordpress/i18n'
|
|
4
8
|
import {ImagePickerControl} from '~/components/ImagePicker'
|
|
5
9
|
import {MAP_TYPES} from './constants'
|
|
6
10
|
import type {MapGroupAttributes, MapGroupOptions} from './types'
|
|
7
11
|
import {Icon, mapMarker} from '@wordpress/icons'
|
|
12
|
+
import {useGroupBlock} from "~/hooks/useGroupBlock";
|
|
13
|
+
import clsx from "clsx";
|
|
14
|
+
import type {HeadingLevels, HeadingStyles} from "~/blocks/groups/banner-group/types";
|
|
15
|
+
import {HEADING_LEVELS, HEADING_STYLES} from "~/constants";
|
|
8
16
|
|
|
9
17
|
export function createMapGroupEdit(options: MapGroupOptions) {
|
|
10
18
|
return function Edit({
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
19
|
+
attributes,
|
|
20
|
+
setAttributes,
|
|
21
|
+
}: {
|
|
14
22
|
attributes: MapGroupAttributes
|
|
15
23
|
setAttributes: (a: Partial<MapGroupAttributes>) => void
|
|
16
24
|
}) {
|
|
17
|
-
const {mapType, iframeSrc, iframeElement, img, url, lat, long} = attributes
|
|
25
|
+
const {mapType, iframeSrc, iframeElement, img, url, address, lat, long, description, header} = attributes
|
|
18
26
|
|
|
19
|
-
const blockProps =
|
|
20
|
-
|
|
27
|
+
const {blockProps, innerBlocksProps} = useGroupBlock({
|
|
28
|
+
blockClassName: clsx(options.blockClassName ?? 'g-map wp-block-section'),
|
|
29
|
+
containerClassName: [options.containerClassName ?? 'g-map__button-wraper wp-block-inner-content'],
|
|
30
|
+
allowedBlocks: options.allowedBlocks,
|
|
31
|
+
orientation: 'vertical',
|
|
32
|
+
template: options.template,
|
|
33
|
+
layout: {type: 'default'},
|
|
21
34
|
})
|
|
22
35
|
|
|
23
36
|
return (
|
|
24
37
|
<>
|
|
25
38
|
<InspectorControls>
|
|
39
|
+
<PanelBody title={__('Nadpis', 'brilo-blocks')} initialOpen={false}>
|
|
40
|
+
<ToggleGroupControl
|
|
41
|
+
label={__('Úroveň nadpisu', 'brilo-blocks')}
|
|
42
|
+
value={String(header.heading.level)}
|
|
43
|
+
onChange={(value) =>
|
|
44
|
+
setAttributes({header: {...header, heading: {...header.heading, level: Number(value) as HeadingLevels}}})
|
|
45
|
+
}
|
|
46
|
+
isBlock
|
|
47
|
+
>
|
|
48
|
+
{HEADING_LEVELS.map((l) => (
|
|
49
|
+
<ToggleGroupControlOption key={l} value={String(l)} label={`H${l}`} />
|
|
50
|
+
))}
|
|
51
|
+
</ToggleGroupControl>
|
|
52
|
+
<ToggleGroupControl
|
|
53
|
+
label={__('Styl nadpisu', 'brilo-blocks')}
|
|
54
|
+
value={header.heading.style}
|
|
55
|
+
onChange={(value) => setAttributes({header: {...header, heading: {...header.heading, style: value as HeadingStyles}}})}
|
|
56
|
+
isBlock
|
|
57
|
+
>
|
|
58
|
+
{HEADING_STYLES.map((s) => (
|
|
59
|
+
<ToggleGroupControlOption key={s} value={s} label={s} />
|
|
60
|
+
))}
|
|
61
|
+
</ToggleGroupControl>
|
|
62
|
+
</PanelBody>
|
|
63
|
+
|
|
26
64
|
<PanelBody title={__('Nastavení mapy', 'brilo-blocks')}>
|
|
27
65
|
<SelectControl
|
|
28
66
|
label={__('Typ mapy', 'brilo-blocks')}
|
|
@@ -74,12 +112,40 @@ export function createMapGroupEdit(options: MapGroupOptions) {
|
|
|
74
112
|
value={url || ''}
|
|
75
113
|
onChange={(value: string) => setAttributes({url: value})}
|
|
76
114
|
/>
|
|
115
|
+
|
|
116
|
+
<TextControl
|
|
117
|
+
label={__('Adresa:', 'brilo-blocks')}
|
|
118
|
+
value={address || ''}
|
|
119
|
+
onChange={(value: string) => setAttributes({address: value})}
|
|
120
|
+
/>
|
|
77
121
|
</>
|
|
78
122
|
)}
|
|
79
123
|
</PanelBody>
|
|
80
124
|
</InspectorControls>
|
|
81
125
|
|
|
82
126
|
<div {...blockProps}>
|
|
127
|
+
<div className="g-map__banner">
|
|
128
|
+
<div className="g-map__content">
|
|
129
|
+
<RichText
|
|
130
|
+
tagName={`h${header.heading.level}` as HeadingStyles}
|
|
131
|
+
className={clsx('g-map__heading', `--heading-style-${header.heading.style}`, 'u-text-editable')}
|
|
132
|
+
value={header.heading.title}
|
|
133
|
+
onChange={(value: string) => setAttributes({header: {...header, heading: {...header.heading, title: value}}})}
|
|
134
|
+
placeholder={__('Nadpis...', 'brilo-blocks')}
|
|
135
|
+
allowedFormats={['core/bold', 'core/italic']}
|
|
136
|
+
/>
|
|
137
|
+
<RichText
|
|
138
|
+
tagName="div"
|
|
139
|
+
className="g-map__description u-text-editable"
|
|
140
|
+
value={description}
|
|
141
|
+
onChange={(value: string) => setAttributes({description: value})}
|
|
142
|
+
placeholder={__('Popis...', 'brilo-blocks')}
|
|
143
|
+
/>
|
|
144
|
+
</div>
|
|
145
|
+
|
|
146
|
+
<div {...innerBlocksProps} />
|
|
147
|
+
</div>
|
|
148
|
+
|
|
83
149
|
<div className="g-map__map">
|
|
84
150
|
{mapType === 'gps' && (lat || long) && (
|
|
85
151
|
<div>
|
|
@@ -3,10 +3,18 @@ import {__} from '@wordpress/i18n'
|
|
|
3
3
|
import {createMapGroupEdit} from './edit'
|
|
4
4
|
import type {MapGroupAttributes, MapGroupOptions} from './types'
|
|
5
5
|
import {MAP_TYPES} from './constants'
|
|
6
|
+
import type {StringArray} from "~/types";
|
|
7
|
+
import {DEFAULT_HEADING_STYLES, DEFAULT_VARIANTS} from "~/blocks/groups/banner-group/constants";
|
|
8
|
+
import {InnerBlocks} from "@wordpress/block-editor";
|
|
9
|
+
import {HEADING_LEVELS} from "~/constants";
|
|
6
10
|
|
|
7
11
|
export type {MapGroupAttributes, MapGroupOptions}
|
|
8
12
|
|
|
9
|
-
export function createMapGroupBlock
|
|
13
|
+
export function createMapGroupBlock<THeadingStyles extends StringArray = typeof DEFAULT_HEADING_STYLES>(
|
|
14
|
+
options: MapGroupOptions<THeadingStyles>
|
|
15
|
+
): BlockConfiguration<MapGroupAttributes<THeadingStyles[number]>> {
|
|
16
|
+
const headingStyles = options.headingStyles ?? DEFAULT_HEADING_STYLES
|
|
17
|
+
|
|
10
18
|
return {
|
|
11
19
|
name: options.name,
|
|
12
20
|
title: options.title ?? __('Mapa', 'brilo-blocks'),
|
|
@@ -16,6 +24,16 @@ export function createMapGroupBlock(options: MapGroupOptions): BlockConfiguratio
|
|
|
16
24
|
icon: options.icon ?? 'location-alt',
|
|
17
25
|
supports: {html: false, customClassName: false},
|
|
18
26
|
attributes: {
|
|
27
|
+
header: {
|
|
28
|
+
type: 'object',
|
|
29
|
+
default: {
|
|
30
|
+
heading: {title: '', level: HEADING_LEVELS[1], style: headingStyles[1] ?? headingStyles[0]},
|
|
31
|
+
},
|
|
32
|
+
},
|
|
33
|
+
description: {
|
|
34
|
+
type: 'string',
|
|
35
|
+
default: '',
|
|
36
|
+
},
|
|
19
37
|
mapType: {
|
|
20
38
|
type: 'string',
|
|
21
39
|
default: MAP_TYPES[0].value,
|
|
@@ -32,6 +50,10 @@ export function createMapGroupBlock(options: MapGroupOptions): BlockConfiguratio
|
|
|
32
50
|
type: 'object',
|
|
33
51
|
default: {id: 0, url: '', alt: ''},
|
|
34
52
|
},
|
|
53
|
+
address: {
|
|
54
|
+
type: 'string',
|
|
55
|
+
default: '',
|
|
56
|
+
},
|
|
35
57
|
url: {
|
|
36
58
|
type: 'string',
|
|
37
59
|
default: '',
|
|
@@ -45,7 +67,7 @@ export function createMapGroupBlock(options: MapGroupOptions): BlockConfiguratio
|
|
|
45
67
|
default: '',
|
|
46
68
|
},
|
|
47
69
|
},
|
|
48
|
-
edit: createMapGroupEdit(options),
|
|
49
|
-
save: () =>
|
|
50
|
-
} as unknown as BlockConfiguration<MapGroupAttributes
|
|
70
|
+
edit: createMapGroupEdit(options as unknown as MapGroupOptions),
|
|
71
|
+
save: () => <InnerBlocks.Content />,
|
|
72
|
+
} as unknown as BlockConfiguration<MapGroupAttributes<THeadingStyles[number]>>
|
|
51
73
|
}
|
|
@@ -1,16 +1,30 @@
|
|
|
1
|
-
import {BriloBlockType, Media} from '~/types'
|
|
2
|
-
import {MAP_TYPES} from './constants'
|
|
1
|
+
import {BriloBlockType, Media, type OptionArray, type StringArray} from '~/types'
|
|
2
|
+
import {DEFAULT_HEADING_STYLES, MAP_TYPES} from './constants'
|
|
3
|
+
import {HEADING_LEVELS} from "~/constants";
|
|
3
4
|
|
|
4
5
|
export type MapType = (typeof MAP_TYPES)[number]['value']
|
|
5
6
|
|
|
6
|
-
export
|
|
7
|
+
export type HeadingLevels = (typeof HEADING_LEVELS)[number]
|
|
8
|
+
export type HeadingStyles = (typeof DEFAULT_HEADING_STYLES)[number]
|
|
9
|
+
|
|
10
|
+
export interface MapGroupAttributes<THeadingStyle extends string = HeadingStyles> extends Record<string, unknown> {
|
|
11
|
+
header: {
|
|
12
|
+
heading: {title: string; level: HeadingLevels; style: THeadingStyle}
|
|
13
|
+
}
|
|
14
|
+
description: string
|
|
7
15
|
mapType: MapType
|
|
8
16
|
iframeSrc: string
|
|
9
17
|
iframeElement: string
|
|
10
18
|
img: Media
|
|
19
|
+
address: string
|
|
11
20
|
url: string
|
|
12
21
|
lat: string
|
|
13
22
|
long: string
|
|
14
23
|
}
|
|
15
24
|
|
|
16
|
-
export interface MapGroupOptions
|
|
25
|
+
export interface MapGroupOptions<
|
|
26
|
+
THeadingStyles extends StringArray = typeof DEFAULT_HEADING_STYLES,
|
|
27
|
+
> extends BriloBlockType {
|
|
28
|
+
headingStyles?: THeadingStyles
|
|
29
|
+
headingLevels?: HeadingLevels
|
|
30
|
+
}
|