@brilo/base-blocks 0.1.23 → 0.1.24

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 (49) hide show
  1. package/build/.tsbuildinfo +1 -1
  2. package/build/blocks/anchor/anchor-group/constants.d.ts +24 -0
  3. package/build/blocks/anchor/anchor-group/constants.d.ts.map +1 -0
  4. package/build/blocks/anchor/anchor-group/constants.js +12 -0
  5. package/build/blocks/anchor/anchor-group/edit.d.ts +6 -0
  6. package/build/blocks/anchor/anchor-group/edit.d.ts.map +1 -0
  7. package/build/blocks/anchor/anchor-group/edit.js +28 -0
  8. package/build/blocks/anchor/anchor-group/factory.d.ts +7 -0
  9. package/build/blocks/anchor/anchor-group/factory.d.ts.map +1 -0
  10. package/build/blocks/anchor/anchor-group/factory.js +33 -0
  11. package/build/blocks/anchor/anchor-group/index.d.ts +6 -0
  12. package/build/blocks/anchor/anchor-group/index.d.ts.map +1 -0
  13. package/build/blocks/anchor/anchor-group/index.js +7 -0
  14. package/build/blocks/anchor/anchor-group/types.d.ts +13 -0
  15. package/build/blocks/anchor/anchor-group/types.d.ts.map +1 -0
  16. package/build/blocks/anchor/anchor-group/types.js +1 -0
  17. package/build/blocks/anchor/anchor-item/constants.d.ts +13 -0
  18. package/build/blocks/anchor/anchor-item/constants.d.ts.map +1 -0
  19. package/build/blocks/anchor/anchor-item/constants.js +7 -0
  20. package/build/blocks/anchor/anchor-item/edit.d.ts +6 -0
  21. package/build/blocks/anchor/anchor-item/edit.d.ts.map +1 -0
  22. package/build/blocks/anchor/anchor-item/edit.js +24 -0
  23. package/build/blocks/anchor/anchor-item/factory.d.ts +5 -0
  24. package/build/blocks/anchor/anchor-item/factory.d.ts.map +1 -0
  25. package/build/blocks/anchor/anchor-item/factory.js +25 -0
  26. package/build/blocks/anchor/anchor-item/index.d.ts +7 -0
  27. package/build/blocks/anchor/anchor-item/index.d.ts.map +1 -0
  28. package/build/blocks/anchor/anchor-item/index.js +9 -0
  29. package/build/blocks/anchor/anchor-item/types.d.ts +18 -0
  30. package/build/blocks/anchor/anchor-item/types.d.ts.map +1 -0
  31. package/build/blocks/anchor/anchor-item/types.js +1 -0
  32. package/build/index.d.ts +4 -0
  33. package/build/index.d.ts.map +1 -1
  34. package/build/index.js +2 -0
  35. package/package.json +1 -1
  36. package/src/blocks/anchor/anchor-group/constants.ts +14 -0
  37. package/src/blocks/anchor/anchor-group/edit.tsx +70 -0
  38. package/src/blocks/anchor/anchor-group/editor.scss +52 -0
  39. package/src/blocks/anchor/anchor-group/factory.tsx +43 -0
  40. package/src/blocks/anchor/anchor-group/index.ts +11 -0
  41. package/src/blocks/anchor/anchor-group/types.ts +19 -0
  42. package/src/blocks/anchor/anchor-item/constants.ts +10 -0
  43. package/src/blocks/anchor/anchor-item/edit.tsx +96 -0
  44. package/src/blocks/anchor/anchor-item/editor.scss +22 -0
  45. package/src/blocks/anchor/anchor-item/factory.tsx +29 -0
  46. package/src/blocks/anchor/anchor-item/index.ts +13 -0
  47. package/src/blocks/anchor/anchor-item/types.ts +16 -0
  48. package/src/editor.scss +2 -0
  49. package/src/index.ts +11 -0
@@ -0,0 +1,24 @@
1
+ export declare const ANCHOR_COLUMNS: readonly [{
2
+ readonly value: '2';
3
+ readonly label: '2';
4
+ }, {
5
+ readonly value: '3';
6
+ readonly label: '3';
7
+ }, {
8
+ readonly value: '4';
9
+ readonly label: '4';
10
+ }, {
11
+ readonly value: '6';
12
+ readonly label: '6';
13
+ }, {
14
+ readonly value: 'auto';
15
+ readonly label: import("@wordpress/i18n").TransformedText<"Auto">;
16
+ }];
17
+ export declare const ANCHOR_ALIGNMENTS: readonly [{
18
+ readonly value: 'left';
19
+ readonly label: import("@wordpress/i18n").TransformedText<"Vlevo">;
20
+ }, {
21
+ readonly value: 'center';
22
+ readonly label: import("@wordpress/i18n").TransformedText<"Na střed">;
23
+ }];
24
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/blocks/anchor/anchor-group/constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc;aACxB,KAAK,EAAE,GAAG;aAAE,KAAK,EAAE,GAAG;;aACtB,KAAK,EAAE,GAAG;aAAE,KAAK,EAAE,GAAG;;aACtB,KAAK,EAAE,GAAG;aAAE,KAAK,EAAE,GAAG;;aACtB,KAAK,EAAE,GAAG;aAAE,KAAK,EAAE,GAAG;;aACtB,KAAK,EAAE,MAAM;aAAE,KAAK;EACb,CAAA;AAEV,eAAO,MAAM,iBAAiB;aAC3B,KAAK,EAAE,MAAM;aAAE,KAAK;;aACpB,KAAK,EAAE,QAAQ;aAAE,KAAK;EACf,CAAA"}
@@ -0,0 +1,12 @@
1
+ import { __ } from '@wordpress/i18n';
2
+ export const ANCHOR_COLUMNS = [
3
+ { value: '2', label: '2' },
4
+ { value: '3', label: '3' },
5
+ { value: '4', label: '4' },
6
+ { value: '6', label: '6' },
7
+ { value: 'auto', label: __('Auto', 'brilo-blocks') },
8
+ ];
9
+ export const ANCHOR_ALIGNMENTS = [
10
+ { value: 'left', label: __('Vlevo', 'brilo-blocks') },
11
+ { value: 'center', label: __('Na střed', 'brilo-blocks') },
12
+ ];
@@ -0,0 +1,6 @@
1
+ import type { AnchorGroupAttributes, AnchorGroupOptions } from './types';
2
+ export declare function createAnchorGroupEdit(options: AnchorGroupOptions): ({ attributes, setAttributes, }: {
3
+ attributes: AnchorGroupAttributes;
4
+ setAttributes: (a: Partial<AnchorGroupAttributes>) => void;
5
+ }) => import("react").JSX.Element;
6
+ //# sourceMappingURL=edit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edit.d.ts","sourceRoot":"","sources":["../../../../src/blocks/anchor/anchor-group/edit.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAiC,qBAAqB,EAAE,kBAAkB,EAAC,MAAM,SAAS,CAAA;AAEtG,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,kBAAkB,oCAO5D;IACD,UAAU,EAAE,qBAAqB,CAAA;IACjC,aAAa,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,KAAK,IAAI,CAAA;CAC3D,iCA+CF"}
@@ -0,0 +1,28 @@
1
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { InspectorControls } from '@wordpress/block-editor';
3
+ import { PanelBody, __experimentalToggleGroupControl as ToggleGroupControl, __experimentalToggleGroupControlOption as ToggleGroupControlOption, } from '@wordpress/components';
4
+ import { __ } from '@wordpress/i18n';
5
+ import clsx from 'clsx';
6
+ import { useGroupBlock } from '../../../hooks/useGroupBlock';
7
+ import { ANCHOR_ALIGNMENTS, ANCHOR_COLUMNS } from './constants';
8
+ export function createAnchorGroupEdit(options) {
9
+ var _a, _b;
10
+ const columnsOptions = (_a = options.columnsOptions) !== null && _a !== void 0 ? _a : ANCHOR_COLUMNS;
11
+ const alignments = (_b = options.alignments) !== null && _b !== void 0 ? _b : ANCHOR_ALIGNMENTS;
12
+ return function Edit({ attributes, setAttributes, }) {
13
+ var _a, _b;
14
+ const { columns, align } = attributes;
15
+ const { blockProps, innerBlocksProps } = useGroupBlock({
16
+ blockClassName: clsx((_a = options.blockClassName) !== null && _a !== void 0 ? _a : 'g-anchors'),
17
+ containerClassName: [
18
+ (_b = options.containerClassName) !== null && _b !== void 0 ? _b : 'g-anchors__inner',
19
+ columns === 'auto' ? '--auto' : `u-grid-responsive --cols-${columns}`,
20
+ align === 'center' && 'justify-content-center',
21
+ ],
22
+ allowedBlocks: options.allowedBlocks,
23
+ template: options.template,
24
+ layout: { type: 'default' },
25
+ });
26
+ return (_jsxs(_Fragment, { children: [_jsx(InspectorControls, { children: _jsxs(PanelBody, { title: __('Kotvy', 'brilo-blocks'), children: [_jsx(ToggleGroupControl, { isBlock: true, label: __('Počet sloupců', 'brilo-blocks'), value: columns, onChange: (v) => setAttributes({ columns: v }), children: columnsOptions.map((c) => (_jsx(ToggleGroupControlOption, { value: c.value, label: c.label }, c.value))) }), _jsx(ToggleGroupControl, { isBlock: true, label: __('Zarovnání', 'brilo-blocks'), value: align, onChange: (v) => setAttributes({ align: v }), children: alignments.map((a) => (_jsx(ToggleGroupControlOption, { value: a.value, label: a.label }, a.value))) })] }) }), _jsx("div", { ...blockProps, children: _jsx("div", { ...innerBlocksProps }) })] }));
27
+ };
28
+ }
@@ -0,0 +1,7 @@
1
+ import type { BlockConfiguration } from '@wordpress/blocks';
2
+ import type { OptionArray } from '../../../types';
3
+ import { ANCHOR_ALIGNMENTS, ANCHOR_COLUMNS } from './constants';
4
+ import type { AnchorGroupAttributes, AnchorGroupOptions } from './types';
5
+ export type { AnchorGroupAttributes, AnchorGroupOptions };
6
+ export declare function createAnchorGroupBlock<TColumnsOptions extends OptionArray = typeof ANCHOR_COLUMNS, TAlignments extends OptionArray = typeof ANCHOR_ALIGNMENTS>(options: AnchorGroupOptions<TColumnsOptions, TAlignments>): BlockConfiguration<AnchorGroupAttributes<TColumnsOptions[number]['value'], TAlignments[number]['value']>>;
7
+ //# sourceMappingURL=factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/blocks/anchor/anchor-group/factory.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,mBAAmB,CAAA;AAEzD,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,SAAS,CAAA;AACxC,OAAO,EAAC,iBAAiB,EAAE,cAAc,EAAC,MAAM,aAAa,CAAA;AAE7D,OAAO,KAAK,EAAC,qBAAqB,EAAE,kBAAkB,EAAC,MAAM,SAAS,CAAA;AAEtE,YAAY,EAAC,qBAAqB,EAAE,kBAAkB,EAAC,CAAA;AAEvD,wBAAgB,sBAAsB,CACpC,eAAe,SAAS,WAAW,GAAG,OAAO,cAAc,EAC3D,WAAW,SAAS,WAAW,GAAG,OAAO,iBAAiB,EAE1D,OAAO,EAAE,kBAAkB,CAAC,eAAe,EAAE,WAAW,CAAC,GACxD,kBAAkB,CAAC,qBAAqB,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CA2B3G"}
@@ -0,0 +1,33 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { InnerBlocks } from '@wordpress/block-editor';
3
+ import { __ } from '@wordpress/i18n';
4
+ import { ANCHOR_ALIGNMENTS, ANCHOR_COLUMNS } from './constants';
5
+ import { createAnchorGroupEdit } from './edit';
6
+ export function createAnchorGroupBlock(options) {
7
+ var _a, _b, _c, _d, _e;
8
+ const columnsOptions = (_a = options.columnsOptions) !== null && _a !== void 0 ? _a : ANCHOR_COLUMNS;
9
+ const alignments = (_b = options.alignments) !== null && _b !== void 0 ? _b : ANCHOR_ALIGNMENTS;
10
+ return {
11
+ name: options.name,
12
+ title: (_c = options.title) !== null && _c !== void 0 ? _c : __('Kotvy', 'brilo-blocks'),
13
+ description: options.description,
14
+ category: (_d = options.category) !== null && _d !== void 0 ? _d : 'layout',
15
+ ...(options.parent && { parent: options.parent }),
16
+ icon: (_e = options.icon) !== null && _e !== void 0 ? _e : 'anchor',
17
+ supports: { html: false, customClassName: false },
18
+ attributes: {
19
+ columns: {
20
+ type: 'string',
21
+ default: columnsOptions[columnsOptions.length - 1].value,
22
+ enum: columnsOptions.map((c) => c.value),
23
+ },
24
+ align: {
25
+ type: 'string',
26
+ default: alignments[0].value,
27
+ enum: alignments.map((a) => a.value),
28
+ },
29
+ },
30
+ edit: createAnchorGroupEdit(options),
31
+ save: () => _jsx(InnerBlocks.Content, {}),
32
+ };
33
+ }
@@ -0,0 +1,6 @@
1
+ export type { AnchorAlignment, AnchorColumns, AnchorGroupAttributes, AnchorGroupOptions } from './types';
2
+ export { createAnchorGroupBlock } from './factory';
3
+ export { ANCHOR_ALIGNMENTS, ANCHOR_COLUMNS } from './constants';
4
+ import type { AnchorGroupOptions } from './types';
5
+ export declare const anchorGroupDefaults: AnchorGroupOptions;
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/blocks/anchor/anchor-group/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAC,eAAe,EAAE,aAAa,EAAE,qBAAqB,EAAE,kBAAkB,EAAC,MAAM,SAAS,CAAA;AACtG,OAAO,EAAC,sBAAsB,EAAC,MAAM,WAAW,CAAA;AAChD,OAAO,EAAC,iBAAiB,EAAE,cAAc,EAAC,MAAM,aAAa,CAAA;AAE7D,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,SAAS,CAAA;AAE/C,eAAO,MAAM,mBAAmB,EAAE,kBAIjC,CAAA"}
@@ -0,0 +1,7 @@
1
+ export { createAnchorGroupBlock } from './factory';
2
+ export { ANCHOR_ALIGNMENTS, ANCHOR_COLUMNS } from './constants';
3
+ export const anchorGroupDefaults = {
4
+ name: 'brilo/anchor-group',
5
+ allowedBlocks: ['brilo/anchor-item'],
6
+ template: [['brilo/anchor-item', {}]],
7
+ };
@@ -0,0 +1,13 @@
1
+ import type { BriloBlockType, OptionArray } from '../../../types';
2
+ import type { ANCHOR_ALIGNMENTS, ANCHOR_COLUMNS } from './constants';
3
+ export type AnchorColumns = (typeof ANCHOR_COLUMNS)[number]['value'];
4
+ export type AnchorAlignment = (typeof ANCHOR_ALIGNMENTS)[number]['value'];
5
+ export interface AnchorGroupAttributes<TColumns extends string = AnchorColumns, TAlignment extends string = AnchorAlignment> extends Record<string, unknown> {
6
+ columns: TColumns;
7
+ align: TAlignment;
8
+ }
9
+ export interface AnchorGroupOptions<TColumnsOptions extends OptionArray = typeof ANCHOR_COLUMNS, TAlignments extends OptionArray = typeof ANCHOR_ALIGNMENTS> extends BriloBlockType {
10
+ columnsOptions?: TColumnsOptions;
11
+ alignments?: TAlignments;
12
+ }
13
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/blocks/anchor/anchor-group/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,cAAc,EAAE,WAAW,EAAC,MAAM,SAAS,CAAA;AACxD,OAAO,KAAK,EAAC,iBAAiB,EAAE,cAAc,EAAC,MAAM,aAAa,CAAA;AAElE,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAA;AACpE,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAA;AAEzE,MAAM,WAAW,qBAAqB,CAAC,QAAQ,SAAS,MAAM,GAAG,aAAa,EAAE,UAAU,SAAS,MAAM,GAAG,eAAe,CACzH,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC/B,OAAO,EAAE,QAAQ,CAAA;IACjB,KAAK,EAAE,UAAU,CAAA;CAClB;AAED,MAAM,WAAW,kBAAkB,CACjC,eAAe,SAAS,WAAW,GAAG,OAAO,cAAc,EAC3D,WAAW,SAAS,WAAW,GAAG,OAAO,iBAAiB,CAC1D,SAAQ,cAAc;IACtB,cAAc,CAAC,EAAE,eAAe,CAAA;IAChC,UAAU,CAAC,EAAE,WAAW,CAAA;CACzB"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,13 @@
1
+ export declare const ANCHOR_ICON_TYPES: readonly [{
2
+ readonly value: 'preselected';
3
+ readonly label: import("@wordpress/i18n").TransformedText<"Předdefinovaná">;
4
+ }, {
5
+ readonly value: 'media';
6
+ readonly label: import("@wordpress/i18n").TransformedText<"Médium">;
7
+ }];
8
+ export declare const ANCHOR_ICON_SIZE_RANGE: {
9
+ readonly min: 8;
10
+ readonly max: 100;
11
+ };
12
+ export declare const ANCHOR_ICON_SIZE_DEFAULT = 32;
13
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/blocks/anchor/anchor-item/constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB;aAC3B,KAAK,EAAE,aAAa;aAAE,KAAK;;aAC3B,KAAK,EAAE,OAAO;aAAE,KAAK;EACd,CAAA;AAEV,eAAO,MAAM,sBAAsB;aAAI,GAAG,EAAE,CAAC;aAAE,GAAG,EAAE,GAAG;CAAU,CAAA;AAEjE,eAAO,MAAM,wBAAwB,KAAK,CAAA"}
@@ -0,0 +1,7 @@
1
+ import { __ } from '@wordpress/i18n';
2
+ export const ANCHOR_ICON_TYPES = [
3
+ { value: 'preselected', label: __('Předdefinovaná', 'brilo-blocks') },
4
+ { value: 'media', label: __('Médium', 'brilo-blocks') },
5
+ ];
6
+ export const ANCHOR_ICON_SIZE_RANGE = { min: 8, max: 100 };
7
+ export const ANCHOR_ICON_SIZE_DEFAULT = 32;
@@ -0,0 +1,6 @@
1
+ import type { AnchorItemAttributes, AnchorItemOptions } from './types';
2
+ export declare function createAnchorItemEdit(options: AnchorItemOptions): ({ attributes, setAttributes, }: {
3
+ attributes: AnchorItemAttributes;
4
+ setAttributes: (a: Partial<AnchorItemAttributes>) => void;
5
+ }) => import("react").JSX.Element;
6
+ //# sourceMappingURL=edit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edit.d.ts","sourceRoot":"","sources":["../../../../src/blocks/anchor/anchor-item/edit.tsx"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAC,oBAAoB,EAAE,iBAAiB,EAAC,MAAM,SAAS,CAAA;AAEpE,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,iBAAiB,oCAI1D;IACD,UAAU,EAAE,oBAAoB,CAAA;IAChC,aAAa,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,KAAK,IAAI,CAAA;CAC1D,iCAsEF"}
@@ -0,0 +1,24 @@
1
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { ColorPalette, InspectorControls, RichText, useBlockProps } from '@wordpress/block-editor';
3
+ import { BaseControl, PanelBody, RangeControl, TextControl, ToggleControl, __experimentalToggleGroupControl as ToggleGroupControl, __experimentalToggleGroupControlOption as ToggleGroupControlOption, } from '@wordpress/components';
4
+ import { __ } from '@wordpress/i18n';
5
+ import clsx from 'clsx';
6
+ import { ItemIconControl, ItemIconPreview } from '../../../components/ItemIconControl';
7
+ import { useTenantColorPalette } from '../../../hooks/useTenantColorPalette';
8
+ import { ANCHOR_ICON_SIZE_RANGE, ANCHOR_ICON_TYPES } from './constants';
9
+ export function createAnchorItemEdit(options) {
10
+ return function Edit({ attributes, setAttributes, }) {
11
+ var _a;
12
+ var _b;
13
+ const { title, url, icon, iconSize, iconColor, iconPosition } = attributes;
14
+ const { paletteColors } = useTenantColorPalette();
15
+ const hasIcon = icon.src || ((_a = icon.media) === null || _a === void 0 ? void 0 : _a.id);
16
+ const blockProps = useBlockProps({ className: clsx((_b = options.blockClassName) !== null && _b !== void 0 ? _b : 'i-anchor') });
17
+ const iconPreviewStyle = {
18
+ maxWidth: iconSize,
19
+ flex: `0 0 ${iconSize}px`,
20
+ '--icon-color': iconColor || undefined,
21
+ };
22
+ return (_jsxs(_Fragment, { children: [_jsxs(InspectorControls, { children: [_jsxs(PanelBody, { title: __('Odkaz', 'brilo-blocks'), children: [_jsx(TextControl, { label: __('Titulek', 'brilo-blocks'), value: title, onChange: (v) => setAttributes({ title: v }) }), _jsx(TextControl, { label: __('URL', 'brilo-blocks'), value: url.src, onChange: (v) => setAttributes({ url: { ...url, src: v } }) }), _jsx(ToggleControl, { label: __('Otevřít v nové záložce', 'brilo-blocks'), checked: url.blank, onChange: (v) => setAttributes({ url: { ...url, blank: v } }) })] }), _jsxs(PanelBody, { title: __('Ikona', 'brilo-blocks'), children: [_jsx(ItemIconControl, { icon: icon, setAttributes: setAttributes, iconTypes: ANCHOR_ICON_TYPES, options: options }), _jsx(RangeControl, { label: __('Velikost ikony (px)', 'brilo-blocks'), value: iconSize, onChange: (v) => setAttributes({ iconSize: v !== null && v !== void 0 ? v : ANCHOR_ICON_SIZE_RANGE.min }), min: ANCHOR_ICON_SIZE_RANGE.min, max: ANCHOR_ICON_SIZE_RANGE.max }), _jsx(BaseControl, { label: __('Barva ikony', 'brilo-blocks'), id: "anchor-item-icon-color", children: _jsx(ColorPalette, { colors: paletteColors, value: iconColor || undefined, onChange: (v) => setAttributes({ iconColor: v !== null && v !== void 0 ? v : '' }) }) }), _jsxs(ToggleGroupControl, { isBlock: true, label: __('Pozice ikony', 'brilo-blocks'), value: iconPosition, onChange: (v) => setAttributes({ iconPosition: v }), children: [_jsx(ToggleGroupControlOption, { value: "before", label: __('Před textem', 'brilo-blocks') }), _jsx(ToggleGroupControlOption, { value: "after", label: __('Za textem', 'brilo-blocks') })] })] })] }), _jsxs("div", { ...blockProps, children: [hasIcon && iconPosition === 'before' && (_jsx("span", { className: "i-anchor__icon", style: iconPreviewStyle, children: _jsx(ItemIconPreview, { icon: icon, setAttributes: setAttributes, options: options }) })), _jsx(RichText, { tagName: "span", className: "i-anchor__title", value: title, onChange: (v) => setAttributes({ title: v }), placeholder: __('Titulek kotvy...', 'brilo-blocks'), allowedFormats: [] }), hasIcon && iconPosition === 'after' && (_jsx("span", { className: "i-anchor__icon", style: iconPreviewStyle, children: _jsx(ItemIconPreview, { icon: icon, setAttributes: setAttributes, options: options }) }))] })] }));
23
+ };
24
+ }
@@ -0,0 +1,5 @@
1
+ import type { BlockConfiguration } from '@wordpress/blocks';
2
+ import type { AnchorItemAttributes, AnchorItemOptions } from './types';
3
+ export type { AnchorItemAttributes, AnchorItemOptions };
4
+ export declare function createAnchorItemBlock(options: AnchorItemOptions): BlockConfiguration<AnchorItemAttributes>;
5
+ //# sourceMappingURL=factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/blocks/anchor/anchor-item/factory.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,mBAAmB,CAAA;AAIzD,OAAO,KAAK,EAAC,oBAAoB,EAAE,iBAAiB,EAAC,MAAM,SAAS,CAAA;AAEpE,YAAY,EAAC,oBAAoB,EAAE,iBAAiB,EAAC,CAAA;AAErD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,iBAAiB,GAAG,kBAAkB,CAAC,oBAAoB,CAAC,CAoB1G"}
@@ -0,0 +1,25 @@
1
+ import { __ } from '@wordpress/i18n';
2
+ import { ANCHOR_ICON_SIZE_DEFAULT } from './constants';
3
+ import { createAnchorItemEdit } from './edit';
4
+ export function createAnchorItemBlock(options) {
5
+ var _a, _b, _c;
6
+ return {
7
+ name: options.name,
8
+ title: (_a = options.title) !== null && _a !== void 0 ? _a : __('Kotva', 'brilo-blocks'),
9
+ description: options.description,
10
+ category: (_b = options.category) !== null && _b !== void 0 ? _b : 'text',
11
+ ...(options.parent && { parent: options.parent }),
12
+ icon: (_c = options.icon) !== null && _c !== void 0 ? _c : 'admin-links',
13
+ supports: { html: false, customClassName: false },
14
+ attributes: {
15
+ title: { type: 'string', default: '' },
16
+ url: { type: 'object', default: { src: '', blank: false } },
17
+ icon: { type: 'object', default: { type: 'preselected', src: '', media: {} } },
18
+ iconSize: { type: 'number', default: ANCHOR_ICON_SIZE_DEFAULT },
19
+ iconColor: { type: 'string', default: '' },
20
+ iconPosition: { type: 'string', default: 'before', enum: ['before', 'after'] },
21
+ },
22
+ edit: createAnchorItemEdit(options),
23
+ save: () => null,
24
+ };
25
+ }
@@ -0,0 +1,7 @@
1
+ export type { AnchorItemAttributes, AnchorItemOptions } from './types';
2
+ export { createAnchorItemBlock } from './factory';
3
+ export { createAnchorItemEdit } from './edit';
4
+ export { ANCHOR_ICON_SIZE_DEFAULT, ANCHOR_ICON_SIZE_RANGE, ANCHOR_ICON_TYPES } from './constants';
5
+ import type { AnchorItemOptions } from './types';
6
+ export declare const anchorItemDefaults: AnchorItemOptions;
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/blocks/anchor/anchor-item/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAC,oBAAoB,EAAE,iBAAiB,EAAC,MAAM,SAAS,CAAA;AACpE,OAAO,EAAC,qBAAqB,EAAC,MAAM,WAAW,CAAA;AAC/C,OAAO,EAAC,oBAAoB,EAAC,MAAM,QAAQ,CAAA;AAC3C,OAAO,EAAC,wBAAwB,EAAE,sBAAsB,EAAE,iBAAiB,EAAC,MAAM,aAAa,CAAA;AAE/F,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,SAAS,CAAA;AAE9C,eAAO,MAAM,kBAAkB,EAAE,iBAKhC,CAAA"}
@@ -0,0 +1,9 @@
1
+ export { createAnchorItemBlock } from './factory';
2
+ export { createAnchorItemEdit } from './edit';
3
+ export { ANCHOR_ICON_SIZE_DEFAULT, ANCHOR_ICON_SIZE_RANGE, ANCHOR_ICON_TYPES } from './constants';
4
+ export const anchorItemDefaults = {
5
+ name: 'brilo/anchor-item',
6
+ parent: ['brilo/anchor-group'],
7
+ icons: [],
8
+ iconsSrc: '',
9
+ };
@@ -0,0 +1,18 @@
1
+ import type { BriloBlockType, Icon } from '../../../types';
2
+ import type { IconType } from '../../../components/IconControl';
3
+ export interface AnchorItemAttributes extends Record<string, unknown> {
4
+ title: string;
5
+ url: {
6
+ src: string;
7
+ blank: boolean;
8
+ };
9
+ icon: Icon;
10
+ iconSize: number;
11
+ iconColor: string;
12
+ iconPosition: 'before' | 'after';
13
+ }
14
+ export interface AnchorItemOptions extends BriloBlockType {
15
+ icons: IconType[];
16
+ iconsSrc: string;
17
+ }
18
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/blocks/anchor/anchor-item/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,cAAc,EAAE,IAAI,EAAC,MAAM,SAAS,CAAA;AACjD,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,0BAA0B,CAAA;AAEtD,MAAM,WAAW,oBAAqB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACnE,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAC,CAAA;IAClC,IAAI,EAAE,IAAI,CAAA;IACV,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,QAAQ,GAAG,OAAO,CAAA;CACjC;AAED,MAAM,WAAW,iBAAkB,SAAQ,cAAc;IACvD,KAAK,EAAE,QAAQ,EAAE,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;CACjB"}
@@ -0,0 +1 @@
1
+ export {};
package/build/index.d.ts CHANGED
@@ -1,3 +1,7 @@
1
+ export type { AnchorAlignment, AnchorColumns, AnchorGroupAttributes, AnchorGroupOptions } from './blocks/anchor/anchor-group';
2
+ export { ANCHOR_ALIGNMENTS, ANCHOR_COLUMNS, anchorGroupDefaults, createAnchorGroupBlock } from './blocks/anchor/anchor-group';
3
+ export type { AnchorItemAttributes, AnchorItemOptions } from './blocks/anchor/anchor-item';
4
+ export { ANCHOR_ICON_SIZE_DEFAULT, ANCHOR_ICON_SIZE_RANGE, ANCHOR_ICON_TYPES, anchorItemDefaults, createAnchorItemBlock, createAnchorItemEdit, } from './blocks/anchor/anchor-item';
1
5
  export type { ContactColumns, ContactGroupAttributes, ContactGroupOptions, } from './blocks/contact/contact-group';
2
6
  export { CONTACT_COLUMNS, CONTACT_COLUMNS_CONTEXT, contactGroupDefaults, createContactGroupBlock, } from './blocks/contact/contact-group';
3
7
  export type { ContactIconSize, ContactIconSizeVariant, ContactItemAttributes, ContactItemOptions, } from './blocks/contact/contact-item';
@@ -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
@@ -1,3 +1,5 @@
1
+ export { ANCHOR_ALIGNMENTS, ANCHOR_COLUMNS, anchorGroupDefaults, createAnchorGroupBlock } from './blocks/anchor/anchor-group';
2
+ export { ANCHOR_ICON_SIZE_DEFAULT, ANCHOR_ICON_SIZE_RANGE, ANCHOR_ICON_TYPES, anchorItemDefaults, createAnchorItemBlock, createAnchorItemEdit, } from './blocks/anchor/anchor-item';
1
3
  export { CONTACT_COLUMNS, CONTACT_COLUMNS_CONTEXT, contactGroupDefaults, createContactGroupBlock, } from './blocks/contact/contact-group';
2
4
  export { CONTACT_ICON_SIZE_RANGE, CONTACT_ICON_SIZES, CONTACT_ICON_TYPES, contactItemDefaults, createContactItemBlock, createContactItemEdit, } from './blocks/contact/contact-item';
3
5
  export { createFaqItemBlock, faqItemDefaults } from './blocks/faq/faq-item';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@brilo/base-blocks",
3
- "version": "0.1.23",
3
+ "version": "0.1.24",
4
4
  "author": "Brilo",
5
5
  "main": "./build/index.js",
6
6
  "types": "./build/index.d.ts",
@@ -0,0 +1,14 @@
1
+ import {__} from '@wordpress/i18n'
2
+
3
+ export const ANCHOR_COLUMNS = [
4
+ {value: '2', label: '2'},
5
+ {value: '3', label: '3'},
6
+ {value: '4', label: '4'},
7
+ {value: '6', label: '6'},
8
+ {value: 'auto', label: __('Auto', 'brilo-blocks')},
9
+ ] as const
10
+
11
+ export const ANCHOR_ALIGNMENTS = [
12
+ {value: 'left', label: __('Vlevo', 'brilo-blocks')},
13
+ {value: 'center', label: __('Na střed', 'brilo-blocks')},
14
+ ] as const
@@ -0,0 +1,70 @@
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 {ANCHOR_ALIGNMENTS, ANCHOR_COLUMNS} from './constants'
11
+ import type {AnchorAlignment, AnchorColumns, AnchorGroupAttributes, AnchorGroupOptions} from './types'
12
+
13
+ export function createAnchorGroupEdit(options: AnchorGroupOptions) {
14
+ const columnsOptions = options.columnsOptions ?? ANCHOR_COLUMNS
15
+ const alignments = options.alignments ?? ANCHOR_ALIGNMENTS
16
+
17
+ return function Edit({
18
+ attributes,
19
+ setAttributes,
20
+ }: {
21
+ attributes: AnchorGroupAttributes
22
+ setAttributes: (a: Partial<AnchorGroupAttributes>) => void
23
+ }) {
24
+ const {columns, align} = attributes
25
+
26
+ const {blockProps, innerBlocksProps} = useGroupBlock({
27
+ blockClassName: clsx(options.blockClassName ?? 'g-anchors'),
28
+ containerClassName: [
29
+ options.containerClassName ?? 'g-anchors__inner',
30
+ columns === 'auto' ? '--auto' : `u-grid-responsive --cols-${columns}`,
31
+ align === 'center' && 'justify-content-center',
32
+ ],
33
+ allowedBlocks: options.allowedBlocks,
34
+ template: options.template,
35
+ layout: {type: 'default'},
36
+ })
37
+
38
+ return (
39
+ <>
40
+ <InspectorControls>
41
+ <PanelBody title={__('Kotvy', 'brilo-blocks')}>
42
+ <ToggleGroupControl
43
+ isBlock
44
+ label={__('Počet sloupců', 'brilo-blocks')}
45
+ value={columns}
46
+ onChange={(v) => setAttributes({columns: v as AnchorColumns})}
47
+ >
48
+ {columnsOptions.map((c) => (
49
+ <ToggleGroupControlOption key={c.value} value={c.value} label={c.label} />
50
+ ))}
51
+ </ToggleGroupControl>
52
+ <ToggleGroupControl
53
+ isBlock
54
+ label={__('Zarovnání', 'brilo-blocks')}
55
+ value={align}
56
+ onChange={(v) => setAttributes({align: v as AnchorAlignment})}
57
+ >
58
+ {alignments.map((a) => (
59
+ <ToggleGroupControlOption key={a.value} value={a.value} label={a.label} />
60
+ ))}
61
+ </ToggleGroupControl>
62
+ </PanelBody>
63
+ </InspectorControls>
64
+ <div {...blockProps}>
65
+ <div {...innerBlocksProps} />
66
+ </div>
67
+ </>
68
+ )
69
+ }
70
+ }
@@ -0,0 +1,52 @@
1
+ @layer base {
2
+ .g-anchors {
3
+ border: 1px solid #eee;
4
+ padding: 16px;
5
+
6
+ .g-anchors__inner {
7
+ &.--auto {
8
+ display: flex;
9
+ flex-wrap: wrap;
10
+ gap: 8px;
11
+ }
12
+
13
+ // .u-grid-responsive itself is a frontoffice utility class, not loaded in the
14
+ // editor bundle — recreate just enough of it here for the admin preview.
15
+ &.u-grid-responsive {
16
+ display: grid;
17
+ grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
18
+ gap: 16px;
19
+
20
+ &.--cols-2 {
21
+ grid-template-columns: repeat(2, minmax(0, 1fr));
22
+ }
23
+
24
+ &.--cols-3 {
25
+ grid-template-columns: repeat(3, minmax(0, 1fr));
26
+ }
27
+
28
+ &.--cols-4 {
29
+ grid-template-columns: repeat(4, minmax(0, 1fr));
30
+ }
31
+
32
+ &.--cols-6 {
33
+ grid-template-columns: repeat(6, minmax(0, 1fr));
34
+ }
35
+ }
36
+
37
+ &.justify-content-center {
38
+ justify-content: center;
39
+ }
40
+ }
41
+ }
42
+ }
43
+
44
+ // WP core sets `margin-left/right: auto` on `.wp-block` children of containers whose
45
+ // layout type isn't flex/grid (ours is `default`). That rule is UNLAYERED, so a
46
+ // layered override can't beat it regardless of specificity — keep this UNLAYERED and
47
+ // bump above WP's (0,2,0) specificity to win. Matches contact-group's editor.scss.
48
+ .editor-styles-wrapper .g-anchors__inner > .wp-block {
49
+ margin-left: 0;
50
+ margin-right: 0;
51
+ max-width: none;
52
+ }
@@ -0,0 +1,43 @@
1
+ import {InnerBlocks} from '@wordpress/block-editor'
2
+ import type {BlockConfiguration} from '@wordpress/blocks'
3
+ import {__} from '@wordpress/i18n'
4
+ import type {OptionArray} from '~/types'
5
+ import {ANCHOR_ALIGNMENTS, ANCHOR_COLUMNS} from './constants'
6
+ import {createAnchorGroupEdit} from './edit'
7
+ import type {AnchorGroupAttributes, AnchorGroupOptions} from './types'
8
+
9
+ export type {AnchorGroupAttributes, AnchorGroupOptions}
10
+
11
+ export function createAnchorGroupBlock<
12
+ TColumnsOptions extends OptionArray = typeof ANCHOR_COLUMNS,
13
+ TAlignments extends OptionArray = typeof ANCHOR_ALIGNMENTS,
14
+ >(
15
+ options: AnchorGroupOptions<TColumnsOptions, TAlignments>,
16
+ ): BlockConfiguration<AnchorGroupAttributes<TColumnsOptions[number]['value'], TAlignments[number]['value']>> {
17
+ const columnsOptions = options.columnsOptions ?? ANCHOR_COLUMNS
18
+ const alignments = options.alignments ?? ANCHOR_ALIGNMENTS
19
+
20
+ return {
21
+ name: options.name,
22
+ title: options.title ?? __('Kotvy', 'brilo-blocks'),
23
+ description: options.description,
24
+ category: options.category ?? 'layout',
25
+ ...(options.parent && {parent: options.parent}),
26
+ icon: options.icon ?? 'anchor',
27
+ supports: {html: false, customClassName: false},
28
+ attributes: {
29
+ columns: {
30
+ type: 'string',
31
+ default: columnsOptions[columnsOptions.length - 1].value,
32
+ enum: columnsOptions.map((c) => c.value),
33
+ },
34
+ align: {
35
+ type: 'string',
36
+ default: alignments[0].value,
37
+ enum: alignments.map((a) => a.value),
38
+ },
39
+ },
40
+ edit: createAnchorGroupEdit(options as unknown as AnchorGroupOptions),
41
+ save: () => <InnerBlocks.Content />,
42
+ } as unknown as BlockConfiguration<AnchorGroupAttributes<TColumnsOptions[number]['value'], TAlignments[number]['value']>>
43
+ }
@@ -0,0 +1,11 @@
1
+ export type {AnchorAlignment, AnchorColumns, AnchorGroupAttributes, AnchorGroupOptions} from './types'
2
+ export {createAnchorGroupBlock} from './factory'
3
+ export {ANCHOR_ALIGNMENTS, ANCHOR_COLUMNS} from './constants'
4
+
5
+ import type {AnchorGroupOptions} from './types'
6
+
7
+ export const anchorGroupDefaults: AnchorGroupOptions = {
8
+ name: 'brilo/anchor-group',
9
+ allowedBlocks: ['brilo/anchor-item'],
10
+ template: [['brilo/anchor-item', {}]],
11
+ }
@@ -0,0 +1,19 @@
1
+ import type {BriloBlockType, OptionArray} from '~/types'
2
+ import type {ANCHOR_ALIGNMENTS, ANCHOR_COLUMNS} from './constants'
3
+
4
+ export type AnchorColumns = (typeof ANCHOR_COLUMNS)[number]['value']
5
+ export type AnchorAlignment = (typeof ANCHOR_ALIGNMENTS)[number]['value']
6
+
7
+ export interface AnchorGroupAttributes<TColumns extends string = AnchorColumns, TAlignment extends string = AnchorAlignment>
8
+ extends Record<string, unknown> {
9
+ columns: TColumns
10
+ align: TAlignment
11
+ }
12
+
13
+ export interface AnchorGroupOptions<
14
+ TColumnsOptions extends OptionArray = typeof ANCHOR_COLUMNS,
15
+ TAlignments extends OptionArray = typeof ANCHOR_ALIGNMENTS,
16
+ > extends BriloBlockType {
17
+ columnsOptions?: TColumnsOptions
18
+ alignments?: TAlignments
19
+ }
@@ -0,0 +1,10 @@
1
+ import {__} from '@wordpress/i18n'
2
+
3
+ export const ANCHOR_ICON_TYPES = [
4
+ {value: 'preselected', label: __('Předdefinovaná', 'brilo-blocks')},
5
+ {value: 'media', label: __('Médium', 'brilo-blocks')},
6
+ ] as const
7
+
8
+ export const ANCHOR_ICON_SIZE_RANGE = {min: 8, max: 100} as const
9
+
10
+ export const ANCHOR_ICON_SIZE_DEFAULT = 32