@brilo/base-blocks 0.1.21 → 0.1.23

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 (146) hide show
  1. package/build/.tsbuildinfo +1 -1
  2. package/build/blocks/form/form-field/SelectOptionsRepeater.d.ts +10 -0
  3. package/build/blocks/form/form-field/SelectOptionsRepeater.d.ts.map +1 -0
  4. package/build/blocks/form/form-field/SelectOptionsRepeater.js +20 -0
  5. package/build/blocks/form/form-field/constants.d.ts +8 -0
  6. package/build/blocks/form/form-field/constants.d.ts.map +1 -1
  7. package/build/blocks/form/form-field/constants.js +5 -0
  8. package/build/blocks/form/form-field/edit.d.ts.map +1 -1
  9. package/build/blocks/form/form-field/edit.js +20 -11
  10. package/build/blocks/form/form-field/factory.d.ts.map +1 -1
  11. package/build/blocks/form/form-field/factory.js +1 -0
  12. package/build/blocks/form/form-field/normalizeOptions.d.ts +18 -0
  13. package/build/blocks/form/form-field/normalizeOptions.d.ts.map +1 -0
  14. package/build/blocks/form/form-field/normalizeOptions.js +39 -0
  15. package/build/blocks/form/form-field/types.d.ts +9 -2
  16. package/build/blocks/form/form-field/types.d.ts.map +1 -1
  17. package/build/blocks/layout/layout-aside/constants.d.ts +2 -0
  18. package/build/blocks/layout/layout-aside/constants.d.ts.map +1 -0
  19. package/build/blocks/layout/layout-aside/constants.js +1 -0
  20. package/build/blocks/layout/layout-aside/edit.d.ts +4 -0
  21. package/build/blocks/layout/layout-aside/edit.d.ts.map +1 -0
  22. package/build/blocks/layout/layout-aside/edit.js +13 -0
  23. package/build/blocks/layout/layout-aside/factory.d.ts +4 -0
  24. package/build/blocks/layout/layout-aside/factory.d.ts.map +1 -0
  25. package/build/blocks/layout/layout-aside/factory.js +20 -0
  26. package/build/blocks/layout/layout-aside/icon.d.ts +3 -0
  27. package/build/blocks/layout/layout-aside/icon.d.ts.map +1 -0
  28. package/build/blocks/layout/layout-aside/icon.js +2 -0
  29. package/build/blocks/layout/layout-aside/index.d.ts +5 -0
  30. package/build/blocks/layout/layout-aside/index.d.ts.map +1 -0
  31. package/build/blocks/layout/layout-aside/index.js +5 -0
  32. package/build/blocks/layout/layout-aside/types.d.ts +6 -0
  33. package/build/blocks/layout/layout-aside/types.d.ts.map +1 -0
  34. package/build/blocks/layout/layout-aside/types.js +1 -0
  35. package/build/blocks/layout/layout-content/constants.d.ts +2 -0
  36. package/build/blocks/layout/layout-content/constants.d.ts.map +1 -0
  37. package/build/blocks/layout/layout-content/constants.js +1 -0
  38. package/build/blocks/layout/layout-content/edit.d.ts +4 -0
  39. package/build/blocks/layout/layout-content/edit.d.ts.map +1 -0
  40. package/build/blocks/layout/layout-content/edit.js +13 -0
  41. package/build/blocks/layout/layout-content/factory.d.ts +4 -0
  42. package/build/blocks/layout/layout-content/factory.d.ts.map +1 -0
  43. package/build/blocks/layout/layout-content/factory.js +20 -0
  44. package/build/blocks/layout/layout-content/icon.d.ts +3 -0
  45. package/build/blocks/layout/layout-content/icon.d.ts.map +1 -0
  46. package/build/blocks/layout/layout-content/icon.js +2 -0
  47. package/build/blocks/layout/layout-content/index.d.ts +5 -0
  48. package/build/blocks/layout/layout-content/index.d.ts.map +1 -0
  49. package/build/blocks/layout/layout-content/index.js +5 -0
  50. package/build/blocks/layout/layout-content/types.d.ts +6 -0
  51. package/build/blocks/layout/layout-content/types.d.ts.map +1 -0
  52. package/build/blocks/layout/layout-content/types.js +1 -0
  53. package/build/blocks/layout/layout-content-w-aside/constants.d.ts +11 -0
  54. package/build/blocks/layout/layout-content-w-aside/constants.d.ts.map +1 -0
  55. package/build/blocks/layout/layout-content-w-aside/constants.js +6 -0
  56. package/build/blocks/layout/layout-content-w-aside/edit.d.ts +7 -0
  57. package/build/blocks/layout/layout-content-w-aside/edit.d.ts.map +1 -0
  58. package/build/blocks/layout/layout-content-w-aside/edit.js +22 -0
  59. package/build/blocks/layout/layout-content-w-aside/factory.d.ts +6 -0
  60. package/build/blocks/layout/layout-content-w-aside/factory.d.ts.map +1 -0
  61. package/build/blocks/layout/layout-content-w-aside/factory.js +26 -0
  62. package/build/blocks/layout/layout-content-w-aside/icon.d.ts +3 -0
  63. package/build/blocks/layout/layout-content-w-aside/icon.d.ts.map +1 -0
  64. package/build/blocks/layout/layout-content-w-aside/icon.js +2 -0
  65. package/build/blocks/layout/layout-content-w-aside/index.d.ts +5 -0
  66. package/build/blocks/layout/layout-content-w-aside/index.d.ts.map +1 -0
  67. package/build/blocks/layout/layout-content-w-aside/index.js +9 -0
  68. package/build/blocks/layout/layout-content-w-aside/types.d.ts +10 -0
  69. package/build/blocks/layout/layout-content-w-aside/types.d.ts.map +1 -0
  70. package/build/blocks/layout/layout-content-w-aside/types.js +1 -0
  71. package/build/blocks/post/posts-grid/constants.d.ts +4 -0
  72. package/build/blocks/post/posts-grid/constants.d.ts.map +1 -0
  73. package/build/blocks/post/posts-grid/constants.js +3 -0
  74. package/build/blocks/post/posts-grid/edit.d.ts +6 -0
  75. package/build/blocks/post/posts-grid/edit.d.ts.map +1 -0
  76. package/build/blocks/post/posts-grid/edit.js +21 -0
  77. package/build/blocks/post/posts-grid/factory.d.ts +5 -0
  78. package/build/blocks/post/posts-grid/factory.d.ts.map +1 -0
  79. package/build/blocks/post/posts-grid/factory.js +59 -0
  80. package/build/blocks/post/posts-grid/icon.d.ts +2 -0
  81. package/build/blocks/post/posts-grid/icon.d.ts.map +1 -0
  82. package/build/blocks/post/posts-grid/icon.js +2 -0
  83. package/build/blocks/post/posts-grid/index.d.ts +5 -0
  84. package/build/blocks/post/posts-grid/index.d.ts.map +1 -0
  85. package/build/blocks/post/posts-grid/index.js +5 -0
  86. package/build/blocks/post/posts-grid/types.d.ts +22 -0
  87. package/build/blocks/post/posts-grid/types.d.ts.map +1 -0
  88. package/build/blocks/post/posts-grid/types.js +1 -0
  89. package/build/blocks/sections/base-section/attributes.d.ts +4 -0
  90. package/build/blocks/sections/base-section/attributes.d.ts.map +1 -1
  91. package/build/blocks/sections/base-section/attributes.js +4 -0
  92. package/build/blocks/sections/base-section/constants.d.ts +7 -0
  93. package/build/blocks/sections/base-section/constants.d.ts.map +1 -1
  94. package/build/blocks/sections/base-section/constants.js +7 -0
  95. package/build/blocks/sections/base-section/controls.d.ts.map +1 -1
  96. package/build/blocks/sections/base-section/controls.js +23 -5
  97. package/build/blocks/sections/base-section/types.d.ts +18 -1
  98. package/build/blocks/sections/base-section/types.d.ts.map +1 -1
  99. package/build/blocks/signpost/signpost-group/constants.d.ts +1 -1
  100. package/build/blocks/signpost/signpost-group/constants.d.ts.map +1 -1
  101. package/build/blocks/signpost/signpost-group/constants.js +1 -1
  102. package/build/index.d.ts +8 -0
  103. package/build/index.d.ts.map +1 -1
  104. package/build/index.js +4 -0
  105. package/package.json +5 -2
  106. package/src/blocks/form/form-field/SelectOptionsRepeater.tsx +111 -0
  107. package/src/blocks/form/form-field/constants.ts +7 -0
  108. package/src/blocks/form/form-field/edit.tsx +42 -16
  109. package/src/blocks/form/form-field/editor.scss +28 -0
  110. package/src/blocks/form/form-field/factory.tsx +1 -0
  111. package/src/blocks/form/form-field/normalizeOptions.ts +58 -0
  112. package/src/blocks/form/form-field/types.ts +6 -2
  113. package/src/blocks/layout/layout-aside/constants.ts +1 -0
  114. package/src/blocks/layout/layout-aside/edit.tsx +20 -0
  115. package/src/blocks/layout/layout-aside/editor.scss +9 -0
  116. package/src/blocks/layout/layout-aside/factory.tsx +24 -0
  117. package/src/blocks/layout/layout-aside/icon.tsx +12 -0
  118. package/src/blocks/layout/layout-aside/index.ts +9 -0
  119. package/src/blocks/layout/layout-aside/types.ts +5 -0
  120. package/src/blocks/layout/layout-content/constants.ts +1 -0
  121. package/src/blocks/layout/layout-content/edit.tsx +20 -0
  122. package/src/blocks/layout/layout-content/editor.scss +9 -0
  123. package/src/blocks/layout/layout-content/factory.tsx +24 -0
  124. package/src/blocks/layout/layout-content/icon.tsx +12 -0
  125. package/src/blocks/layout/layout-content/index.ts +9 -0
  126. package/src/blocks/layout/layout-content/types.ts +5 -0
  127. package/src/blocks/layout/layout-content-w-aside/constants.ts +7 -0
  128. package/src/blocks/layout/layout-content-w-aside/edit.tsx +52 -0
  129. package/src/blocks/layout/layout-content-w-aside/editor.scss +35 -0
  130. package/src/blocks/layout/layout-content-w-aside/factory.tsx +34 -0
  131. package/src/blocks/layout/layout-content-w-aside/icon.tsx +12 -0
  132. package/src/blocks/layout/layout-content-w-aside/index.ts +13 -0
  133. package/src/blocks/layout/layout-content-w-aside/types.ts +12 -0
  134. package/src/blocks/post/posts-grid/constants.ts +3 -0
  135. package/src/blocks/post/posts-grid/edit.tsx +105 -0
  136. package/src/blocks/post/posts-grid/factory.tsx +63 -0
  137. package/src/blocks/post/posts-grid/icon.tsx +8 -0
  138. package/src/blocks/post/posts-grid/index.ts +9 -0
  139. package/src/blocks/post/posts-grid/types.ts +25 -0
  140. package/src/blocks/sections/base-section/attributes.ts +4 -0
  141. package/src/blocks/sections/base-section/constants.ts +10 -0
  142. package/src/blocks/sections/base-section/controls.tsx +83 -4
  143. package/src/blocks/sections/base-section/types.ts +20 -1
  144. package/src/blocks/signpost/signpost-group/constants.ts +1 -1
  145. package/src/editor.scss +3 -0
  146. package/src/index.ts +8 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon.d.ts","sourceRoot":"","sources":["../../../../src/blocks/layout/layout-content-w-aside/icon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,eAAO,MAAM,IAAI,mBAShB,CAAA"}
@@ -0,0 +1,2 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ export const icon = (_jsx("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M4 4H20V20H4V4ZM6 6H13V18H6V6ZM15 6H18V18H15V6Z", fill: "currentColor" }) }));
@@ -0,0 +1,5 @@
1
+ export type { ContentWithAsideAttributes, ContentWithAsideOptions } from './types';
2
+ export { createContentWithAsideBlock } from './factory';
3
+ import type { ContentWithAsideOptions } from './types';
4
+ export declare const contentWithAsideDefaults: ContentWithAsideOptions;
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/blocks/layout/layout-content-w-aside/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAC,0BAA0B,EAAE,uBAAuB,EAAC,MAAM,SAAS,CAAA;AAChF,OAAO,EAAC,2BAA2B,EAAC,MAAM,WAAW,CAAA;AAErD,OAAO,KAAK,EAAC,uBAAuB,EAAC,MAAM,SAAS,CAAA;AAEpD,eAAO,MAAM,wBAAwB,EAAE,uBAOtC,CAAA"}
@@ -0,0 +1,9 @@
1
+ export { createContentWithAsideBlock } from './factory';
2
+ export const contentWithAsideDefaults = {
3
+ name: 'brilo/layout-content-w-aside',
4
+ allowedBlocks: ['brilo/layout-content', 'brilo/layout-aside'],
5
+ template: [
6
+ ['brilo/layout-content', {}],
7
+ ['brilo/layout-aside', {}],
8
+ ],
9
+ };
@@ -0,0 +1,10 @@
1
+ import type { BriloBlockType, OptionArray } from '../../../types';
2
+ import type { ASIDE_SIZES } from './constants';
3
+ export type AsideSize = (typeof ASIDE_SIZES)[number]['value'];
4
+ export interface ContentWithAsideAttributes<TAsideSize extends string = AsideSize> extends Record<string, unknown> {
5
+ asideSize: TAsideSize;
6
+ }
7
+ export interface ContentWithAsideOptions<TAsideSizes extends OptionArray = typeof ASIDE_SIZES> extends BriloBlockType {
8
+ asideSizes?: TAsideSizes;
9
+ }
10
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/blocks/layout/layout-content-w-aside/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,cAAc,EAAE,WAAW,EAAC,MAAM,SAAS,CAAA;AACxD,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,aAAa,CAAA;AAE5C,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAA;AAE7D,MAAM,WAAW,0BAA0B,CAAC,UAAU,SAAS,MAAM,GAAG,SAAS,CAAE,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAChH,SAAS,EAAE,UAAU,CAAA;CACtB;AAED,MAAM,WAAW,uBAAuB,CAAC,WAAW,SAAS,WAAW,GAAG,OAAO,WAAW,CAAE,SAAQ,cAAc;IACnH,UAAU,CAAC,EAAE,WAAW,CAAA;CACzB"}
@@ -0,0 +1,4 @@
1
+ export declare const POSTS_PER_PAGE_MIN = 1;
2
+ export declare const POSTS_PER_PAGE_MAX = 12;
3
+ export declare const POSTS_PER_PAGE_DEFAULT = 6;
4
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/blocks/post/posts-grid/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,IAAI,CAAA;AACnC,eAAO,MAAM,kBAAkB,KAAK,CAAA;AACpC,eAAO,MAAM,sBAAsB,IAAI,CAAA"}
@@ -0,0 +1,3 @@
1
+ export const POSTS_PER_PAGE_MIN = 1;
2
+ export const POSTS_PER_PAGE_MAX = 12;
3
+ export const POSTS_PER_PAGE_DEFAULT = 6;
@@ -0,0 +1,6 @@
1
+ import type { PostsGridAttributes, PostsGridOptions } from './types';
2
+ export declare function createPostsGridEdit(options: PostsGridOptions): ({ attributes, setAttributes, }: {
3
+ attributes: PostsGridAttributes;
4
+ setAttributes: (a: Partial<PostsGridAttributes>) => 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/post/posts-grid/edit.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAC,mBAAmB,EAAE,gBAAgB,EAAC,MAAM,SAAS,CAAA;AAElE,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,oCAIxD;IACD,UAAU,EAAE,mBAAmB,CAAA;IAC/B,aAAa,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,KAAK,IAAI,CAAA;CACzD,iCAqFF"}
@@ -0,0 +1,21 @@
1
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { InspectorControls, useBlockProps } from '@wordpress/block-editor';
3
+ import { PanelBody, RangeControl, ToggleControl, __experimentalToggleGroupControl as ToggleGroupControl, __experimentalToggleGroupControlOption as ToggleGroupControlOption, } from '@wordpress/components';
4
+ import { __ } from '@wordpress/i18n';
5
+ import { POSTS_PER_PAGE_DEFAULT, POSTS_PER_PAGE_MAX, POSTS_PER_PAGE_MIN } from './constants';
6
+ export function createPostsGridEdit(options) {
7
+ return function Edit({ attributes, setAttributes, }) {
8
+ var _a, _b;
9
+ const { mode, postsPerPage, selectedPosts, selectedCategories, showImage, showCategory, showDate, showExcerpt, showAuthor } = attributes;
10
+ const blockProps = useBlockProps({ className: 'wp-block-section' });
11
+ return (_jsxs(_Fragment, { children: [_jsxs(InspectorControls, { children: [_jsxs(PanelBody, { title: __('Nastavení výpisu', 'brilo-blocks'), initialOpen: true, children: [_jsxs(ToggleGroupControl, { label: __('Režim výběru', 'brilo-blocks'), value: mode, onChange: (value) => setAttributes({ mode: value }), isBlock: true, children: [_jsx(ToggleGroupControlOption, { value: "manual", label: __('Ruční výběr', 'brilo-blocks') }), _jsx(ToggleGroupControlOption, { value: "category", label: __('Dle kategorie', 'brilo-blocks') }), _jsx(ToggleGroupControlOption, { value: "latest", label: __('Nejnovější', 'brilo-blocks') })] }), mode !== 'manual' && (_jsx(RangeControl, { label: __('Počet příspěvků na stránku', 'brilo-blocks'), value: postsPerPage, onChange: (value) => setAttributes({ postsPerPage: value !== null && value !== void 0 ? value : POSTS_PER_PAGE_DEFAULT }), min: POSTS_PER_PAGE_MIN, max: POSTS_PER_PAGE_MAX }))] }), _jsxs(PanelBody, { title: __('Zobrazené údaje', 'brilo-blocks'), initialOpen: false, children: [_jsx(ToggleControl, { label: __('Zobrazit obrázek', 'brilo-blocks'), checked: showImage, onChange: (value) => setAttributes({ showImage: value }) }), _jsx(ToggleControl, { label: __('Zobrazit kategorii', 'brilo-blocks'), checked: showCategory, onChange: (value) => setAttributes({ showCategory: value }) }), _jsx(ToggleControl, { label: __('Zobrazit datum', 'brilo-blocks'), checked: showDate, onChange: (value) => setAttributes({ showDate: value }) }), _jsx(ToggleControl, { label: __('Zobrazit perex', 'brilo-blocks'), checked: showExcerpt, onChange: (value) => setAttributes({ showExcerpt: value }) }), _jsx(ToggleControl, { label: __('Zobrazit autora', 'brilo-blocks'), checked: showAuthor, onChange: (value) => setAttributes({ showAuthor: value }) })] })] }), _jsxs("div", { ...blockProps, children: [mode === 'category' &&
12
+ ((_a = options.renderCategoryControl) === null || _a === void 0 ? void 0 : _a.call(options, {
13
+ selectedItems: selectedCategories,
14
+ onChange: (ids) => setAttributes({ selectedCategories: ids }),
15
+ })), mode === 'manual' &&
16
+ ((_b = options.renderPostsControl) === null || _b === void 0 ? void 0 : _b.call(options, {
17
+ selectedItems: selectedPosts,
18
+ onChange: (ids) => setAttributes({ selectedPosts: ids }),
19
+ })), mode === 'latest' && (_jsxs("div", { className: "components-placeholder", children: [_jsx("div", { className: "components-placeholder__label", children: __('Posts Grid', 'brilo-blocks') }), _jsx("div", { className: "components-placeholder__instructions", children: `${__('Zobrazí', 'brilo-blocks')} ${postsPerPage} ${__('nejnovějších příspěvků.', 'brilo-blocks')}` })] }))] })] }));
20
+ };
21
+ }
@@ -0,0 +1,5 @@
1
+ import type { BlockConfiguration } from '@wordpress/blocks';
2
+ import type { PostsGridAttributes, PostsGridOptions } from './types';
3
+ export type { PostsGridAttributes, PostsGridOptions };
4
+ export declare function createPostsGridBlock(options: PostsGridOptions): BlockConfiguration<PostsGridAttributes>;
5
+ //# sourceMappingURL=factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/blocks/post/posts-grid/factory.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,mBAAmB,CAAA;AAKzD,OAAO,KAAK,EAAC,mBAAmB,EAAE,gBAAgB,EAAC,MAAM,SAAS,CAAA;AAElE,YAAY,EAAC,mBAAmB,EAAE,gBAAgB,EAAC,CAAA;AAEnD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,gBAAgB,GAAG,kBAAkB,CAAC,mBAAmB,CAAC,CAqDvG"}
@@ -0,0 +1,59 @@
1
+ import { __ } from '@wordpress/i18n';
2
+ import { POSTS_PER_PAGE_DEFAULT } from './constants';
3
+ import { createPostsGridEdit } from './edit';
4
+ import { icon as defaultIcon } from './icon';
5
+ export function createPostsGridBlock(options) {
6
+ var _a, _b, _c;
7
+ return {
8
+ name: options.name,
9
+ title: (_a = options.title) !== null && _a !== void 0 ? _a : __('Posts Grid', 'brilo-blocks'),
10
+ description: options.description,
11
+ category: (_b = options.category) !== null && _b !== void 0 ? _b : 'widgets',
12
+ ...(options.parent && { parent: options.parent }),
13
+ icon: (_c = options.icon) !== null && _c !== void 0 ? _c : { src: defaultIcon },
14
+ supports: { html: false, customClassName: false },
15
+ attributes: {
16
+ mode: {
17
+ type: 'string',
18
+ default: 'latest',
19
+ enum: ['manual', 'category', 'latest'],
20
+ },
21
+ postsPerPage: {
22
+ type: 'number',
23
+ default: POSTS_PER_PAGE_DEFAULT,
24
+ },
25
+ selectedPosts: {
26
+ type: 'array',
27
+ default: [],
28
+ items: { type: 'number' },
29
+ },
30
+ selectedCategories: {
31
+ type: 'array',
32
+ default: [],
33
+ items: { type: 'number' },
34
+ },
35
+ showImage: {
36
+ type: 'boolean',
37
+ default: true,
38
+ },
39
+ showCategory: {
40
+ type: 'boolean',
41
+ default: true,
42
+ },
43
+ showDate: {
44
+ type: 'boolean',
45
+ default: true,
46
+ },
47
+ showExcerpt: {
48
+ type: 'boolean',
49
+ default: true,
50
+ },
51
+ showAuthor: {
52
+ type: 'boolean',
53
+ default: true,
54
+ },
55
+ },
56
+ edit: createPostsGridEdit(options),
57
+ save: () => null,
58
+ };
59
+ }
@@ -0,0 +1,2 @@
1
+ export declare const icon: import("react").JSX.Element;
2
+ //# sourceMappingURL=icon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon.d.ts","sourceRoot":"","sources":["../../../../src/blocks/post/posts-grid/icon.tsx"],"names":[],"mappings":"AAAA,eAAO,MAAM,IAAI,6BAOhB,CAAA"}
@@ -0,0 +1,2 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ export const icon = (_jsxs("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [_jsx("rect", { x: "1", y: "1", width: "8", height: "8", stroke: "black", fill: "none" }), _jsx("rect", { x: "11", y: "1", width: "8", height: "8", stroke: "black", fill: "none" }), _jsx("rect", { x: "1", y: "11", width: "8", height: "8", stroke: "black", fill: "none" }), _jsx("rect", { x: "11", y: "11", width: "8", height: "8", stroke: "black", fill: "none" })] }));
@@ -0,0 +1,5 @@
1
+ export type { PostsGridAttributes, PostsGridOptions } from './types';
2
+ export { createPostsGridBlock } from './factory';
3
+ import type { PostsGridOptions } from './types';
4
+ export declare const postsGridDefaults: PostsGridOptions;
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/blocks/post/posts-grid/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAC,mBAAmB,EAAE,gBAAgB,EAAC,MAAM,SAAS,CAAA;AAClE,OAAO,EAAC,oBAAoB,EAAC,MAAM,WAAW,CAAA;AAE9C,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,SAAS,CAAA;AAE7C,eAAO,MAAM,iBAAiB,EAAE,gBAG/B,CAAA"}
@@ -0,0 +1,5 @@
1
+ export { createPostsGridBlock } from './factory';
2
+ export const postsGridDefaults = {
3
+ name: 'brilo/posts-grid-group',
4
+ parent: ['brilo/base-section'],
5
+ };
@@ -0,0 +1,22 @@
1
+ import type { BriloBlockType } from '../../../types';
2
+ export type PostsGridMode = 'manual' | 'category' | 'latest';
3
+ export interface PostsGridAttributes extends Record<string, unknown> {
4
+ mode: PostsGridMode;
5
+ postsPerPage: number;
6
+ selectedPosts: number[];
7
+ selectedCategories: number[];
8
+ showImage: boolean;
9
+ showCategory: boolean;
10
+ showDate: boolean;
11
+ showExcerpt: boolean;
12
+ showAuthor: boolean;
13
+ }
14
+ export interface SelectControlProps {
15
+ selectedItems: number[];
16
+ onChange: (ids: number[]) => void;
17
+ }
18
+ export interface PostsGridOptions extends BriloBlockType {
19
+ renderCategoryControl?: (props: SelectControlProps) => JSX.Element;
20
+ renderPostsControl?: (props: SelectControlProps) => JSX.Element;
21
+ }
22
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/blocks/post/posts-grid/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,SAAS,CAAA;AAE3C,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAA;AAE5D,MAAM,WAAW,mBAAoB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAClE,IAAI,EAAE,aAAa,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,kBAAkB,EAAE,MAAM,EAAE,CAAA;IAC5B,SAAS,EAAE,OAAO,CAAA;IAClB,YAAY,EAAE,OAAO,CAAA;IACrB,QAAQ,EAAE,OAAO,CAAA;IACjB,WAAW,EAAE,OAAO,CAAA;IACpB,UAAU,EAAE,OAAO,CAAA;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,IAAI,CAAA;CAClC;AAED,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACtD,qBAAqB,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,GAAG,CAAC,OAAO,CAAA;IAClE,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,GAAG,CAAC,OAAO,CAAA;CAChE"}
@@ -0,0 +1 @@
1
+ export {};
@@ -18,5 +18,9 @@ export declare const baseAttributes: {
18
18
  readonly type: 'string';
19
19
  readonly default: '';
20
20
  };
21
+ readonly decorations: {
22
+ readonly type: 'object';
23
+ readonly default: {};
24
+ };
21
25
  };
22
26
  //# sourceMappingURL=attributes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"attributes.d.ts","sourceRoot":"","sources":["../../../../src/blocks/sections/base-section/attributes.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc;aACzB,EAAE;iBACA,IAAI,EAAE,QAAQ;iBACd,OAAO,EAAE,EAAE;;aAEb,OAAO;iBACL,IAAI,EAAE,QAAQ;iBACd,OAAO;qBACL,QAAQ,EAAE,SAAS;qBACnB,IAAI,EAAE,SAAS;;;aAGnB,UAAU;iBACR,IAAI,EAAE,QAAQ;iBACd,OAAO,EAAE,EAAE;;aAEb,SAAS;iBACP,IAAI,EAAE,QAAQ;iBACd,OAAO,EAAE,EAAE;;CAEL,CAAA"}
1
+ {"version":3,"file":"attributes.d.ts","sourceRoot":"","sources":["../../../../src/blocks/sections/base-section/attributes.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc;aACzB,EAAE;iBACA,IAAI,EAAE,QAAQ;iBACd,OAAO,EAAE,EAAE;;aAEb,OAAO;iBACL,IAAI,EAAE,QAAQ;iBACd,OAAO;qBACL,QAAQ,EAAE,SAAS;qBACnB,IAAI,EAAE,SAAS;;;aAGnB,UAAU;iBACR,IAAI,EAAE,QAAQ;iBACd,OAAO,EAAE,EAAE;;aAEb,SAAS;iBACP,IAAI,EAAE,QAAQ;iBACd,OAAO,EAAE,EAAE;;aAEb,WAAW;iBACT,IAAI,EAAE,QAAQ;iBACd,OAAO;;CAED,CAAA"}
@@ -18,4 +18,8 @@ export const baseAttributes = {
18
18
  type: 'string',
19
19
  default: '',
20
20
  },
21
+ decorations: {
22
+ type: 'object',
23
+ default: {},
24
+ },
21
25
  };
@@ -12,4 +12,11 @@ export declare const SPACING_POSITIONS: readonly [{
12
12
  readonly label: import("@wordpress/i18n").TransformedText<"Pouze dole">;
13
13
  }];
14
14
  export declare const SPACING_SIZES: readonly ['default', 'sm', 'xs'];
15
+ export declare const FLUID_DECORATION_HEIGHT_PRESETS: readonly [32, 56, 88, 128];
16
+ export declare const FLUID_DECORATION_DEFAULT_HEIGHT = "56px";
17
+ export declare const FLUID_DECORATION_UNITS: {
18
+ value: string;
19
+ label: string;
20
+ default: number;
21
+ }[];
15
22
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/blocks/sections/base-section/constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB;aAC3B,KAAK,EAAE,SAAS;aAAE,KAAK;;aACvB,KAAK,EAAE,MAAM;aAAE,KAAK;;aACpB,KAAK,EAAE,UAAU;aAAE,KAAK;;aACxB,KAAK,EAAE,OAAO;aAAE,KAAK;EACd,CAAA;AAEV,eAAO,MAAM,aAAa,YAAI,SAAS,EAAE,IAAI,EAAE,IAAI,CAAU,CAAA"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/blocks/sections/base-section/constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB;aAC3B,KAAK,EAAE,SAAS;aAAE,KAAK;;aACvB,KAAK,EAAE,MAAM;aAAE,KAAK;;aACpB,KAAK,EAAE,UAAU;aAAE,KAAK;;aACxB,KAAK,EAAE,OAAO;aAAE,KAAK;EACd,CAAA;AAEV,eAAO,MAAM,aAAa,YAAI,SAAS,EAAE,IAAI,EAAE,IAAI,CAAU,CAAA;AAE7D,eAAO,MAAM,+BAA+B,YAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAU,CAAA;AAEzE,eAAO,MAAM,+BAA+B,SAAS,CAAA;AAErD,eAAO,MAAM,sBAAsB;;;;GAIlC,CAAA"}
@@ -6,3 +6,10 @@ export const SPACING_POSITIONS = [
6
6
  { value: 'top-0', label: __('Pouze dole', 'brilo-blocks') },
7
7
  ];
8
8
  export const SPACING_SIZES = ['default', 'sm', 'xs'];
9
+ export const FLUID_DECORATION_HEIGHT_PRESETS = [32, 56, 88, 128];
10
+ export const FLUID_DECORATION_DEFAULT_HEIGHT = '56px';
11
+ export const FLUID_DECORATION_UNITS = [
12
+ { value: 'px', label: 'px', default: 56 },
13
+ { value: 'rem', label: 'rem', default: 3.5 },
14
+ { value: '%', label: '%', default: 10 },
15
+ ];
@@ -1 +1 @@
1
- {"version":3,"file":"controls.d.ts","sourceRoot":"","sources":["../../../../src/blocks/sections/base-section/controls.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAC,mBAAmB,EAAE,kBAAkB,EAAC,MAAM,SAAS,CAAA;AAMpE,UAAU,iBAAiB;IACzB,UAAU,EAAE,mBAAmB,CAAA;IAC/B,aAAa,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,mBAAmB,CAAC,KAAK,IAAI,CAAA;IAC5D,OAAO,EAAE,kBAAkB,EAAE,CAAA;CAC9B;AAED,wBAAgB,YAAY,CAAC,EAAC,UAAU,EAAE,aAAa,EAAE,OAAO,EAAC,EAAE,iBAAiB,+BAyDnF"}
1
+ {"version":3,"file":"controls.d.ts","sourceRoot":"","sources":["../../../../src/blocks/sections/base-section/controls.tsx"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAC,mBAAmB,EAAE,kBAAkB,EAAwC,MAAM,SAAS,CAAA;AAmE3G,UAAU,iBAAiB;IACzB,UAAU,EAAE,mBAAmB,CAAA;IAC/B,aAAa,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,mBAAmB,CAAC,KAAK,IAAI,CAAA;IAC5D,OAAO,EAAE,kBAAkB,EAAE,CAAA;CAC9B;AAED,wBAAgB,YAAY,CAAC,EAAC,UAAU,EAAE,aAAa,EAAE,OAAO,EAAC,EAAE,iBAAiB,+BAsEnF"}
@@ -1,11 +1,29 @@
1
1
  import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { ColorPalette, ContrastChecker } from '@wordpress/block-editor';
3
- import { PanelBody, SelectControl, TextControl, __experimentalToggleGroupControl as ToggleGroupControl, __experimentalToggleGroupControlOption as ToggleGroupControlOption, } from '@wordpress/components';
2
+ import { ColorPalette, ContrastChecker, MediaUpload, MediaUploadCheck } from '@wordpress/block-editor';
3
+ import { BaseControl, Button, ButtonGroup, PanelBody, PanelRow, SelectControl, TextControl, __experimentalToggleGroupControl as ToggleGroupControl, __experimentalToggleGroupControlOption as ToggleGroupControlOption, __experimentalUnitControl as UnitControl, } from '@wordpress/components';
4
4
  import { __ } from '@wordpress/i18n';
5
5
  import { useTenantColorPalette } from '../../../hooks/useTenantColorPalette';
6
- import { SPACING_POSITIONS, SPACING_SIZES } from './constants';
6
+ import { FLUID_DECORATION_DEFAULT_HEIGHT, FLUID_DECORATION_HEIGHT_PRESETS, FLUID_DECORATION_UNITS, SPACING_POSITIONS, SPACING_SIZES } from './constants';
7
+ function FluidDecorationControl({ label, value, onChange }) {
8
+ var _a;
9
+ const img = value === null || value === void 0 ? void 0 : value.img;
10
+ const height = (_a = value === null || value === void 0 ? void 0 : value.height) !== null && _a !== void 0 ? _a : FLUID_DECORATION_DEFAULT_HEIGHT;
11
+ const handleSelect = (media) => {
12
+ var _a;
13
+ const nextImg = { id: media.id, src: media.url, alt: (_a = media.alt) !== null && _a !== void 0 ? _a : '', width: media.width, height: media.height };
14
+ onChange({ img: nextImg, height });
15
+ };
16
+ const handleRemove = () => onChange(undefined);
17
+ return (_jsxs(BaseControl, { label: label, __nextHasNoMarginBottom: true, children: [_jsx(MediaUploadCheck, { children: _jsx(MediaUpload, { onSelect: handleSelect, allowedTypes: ['image'], value: (img === null || img === void 0 ? void 0 : img.id) || 0, render: ({ open }) => (_jsxs(PanelRow, { children: [(img === null || img === void 0 ? void 0 : img.src) && _jsx("img", { src: img.src, alt: img.alt, style: { maxWidth: 48, maxHeight: 48, objectFit: 'contain' } }), _jsx(Button, { onClick: open, variant: "secondary", size: "small", children: (img === null || img === void 0 ? void 0 : img.src) ? __('Změnit', 'brilo-blocks') : __('Vybrat obrázek', 'brilo-blocks') }), !!(img === null || img === void 0 ? void 0 : img.src) && (_jsx(Button, { onClick: handleRemove, variant: "tertiary", size: "small", isDestructive: true, children: __('Odebrat', 'brilo-blocks') }))] })) }) }), !!(img === null || img === void 0 ? void 0 : img.src) && (_jsxs(_Fragment, { children: [_jsx(UnitControl, { label: __('Výška', 'brilo-blocks'), value: height, units: FLUID_DECORATION_UNITS, onChange: (next) => { var _a; return onChange({ img, height: (_a = next) !== null && _a !== void 0 ? _a : FLUID_DECORATION_DEFAULT_HEIGHT }); } }), _jsx(ButtonGroup, { children: FLUID_DECORATION_HEIGHT_PRESETS.map((preset) => (_jsx(Button, { variant: "secondary", size: "small", onClick: () => onChange({ img, height: `${preset}px` }), children: preset }, preset))) })] }))] }));
18
+ }
7
19
  export function BaseControls({ attributes, setAttributes, exclude }) {
8
- const { id, spacing, background, textColor } = attributes;
20
+ var _a;
21
+ const { id, spacing, background, textColor, decorations } = attributes;
9
22
  const { paletteColors, resolveHex } = useTenantColorPalette();
10
- return (_jsxs(_Fragment, { children: [!exclude.includes('spacing') && (_jsxs(PanelBody, { title: __('Rozestupy', 'brilo-blocks'), children: [_jsx(SelectControl, { label: __('Pozice', 'brilo-blocks'), value: spacing.position, options: [...SPACING_POSITIONS], onChange: (value) => setAttributes({ spacing: { ...spacing, position: value } }) }), _jsx(ToggleGroupControl, { label: __('Velikost', 'brilo-blocks'), value: spacing.size, onChange: (value) => setAttributes({ spacing: { ...spacing, size: value } }), isBlock: true, children: SPACING_SIZES.map((s) => (_jsx(ToggleGroupControlOption, { value: s, label: s === 'default' ? __('Výchozí', 'brilo-blocks') : s.toUpperCase() }, s))) })] })), !exclude.includes('background') && (_jsxs(PanelBody, { title: __('Barvy', 'brilo-blocks'), children: [_jsx("p", { children: __('Pozadí', 'brilo-blocks') }), _jsx(ColorPalette, { colors: paletteColors, value: background || undefined, onChange: (value) => setAttributes({ background: value !== null && value !== void 0 ? value : '' }) }), _jsx("p", { children: __('Barva textu', 'brilo-blocks') }), _jsx(ColorPalette, { colors: paletteColors, value: textColor || undefined, onChange: (value) => setAttributes({ textColor: value !== null && value !== void 0 ? value : '' }) }), !!background && !!textColor && _jsx(ContrastChecker, { backgroundColor: resolveHex(background), textColor: resolveHex(textColor) })] })), !exclude.includes('id') && (_jsx(PanelBody, { title: __('Kotva', 'brilo-blocks'), initialOpen: false, children: _jsx(TextControl, { label: __('ID sekce', 'brilo-blocks'), value: id !== null && id !== void 0 ? id : '', onChange: (value) => setAttributes({ id: value }), help: __('Použije se jako HTML atribut id pro kotevní odkaz.', 'brilo-blocks') }) }))] }));
23
+ const fluid = (_a = decorations === null || decorations === void 0 ? void 0 : decorations.fluid) !== null && _a !== void 0 ? _a : {};
24
+ const setFluid = (position, value) => {
25
+ const nextFluid = { ...fluid, [position]: value };
26
+ setAttributes({ decorations: { ...decorations, fluid: nextFluid } });
27
+ };
28
+ return (_jsxs(_Fragment, { children: [!exclude.includes('spacing') && (_jsxs(PanelBody, { title: __('Rozestupy', 'brilo-blocks'), children: [_jsx(SelectControl, { label: __('Pozice', 'brilo-blocks'), value: spacing.position, options: [...SPACING_POSITIONS], onChange: (value) => setAttributes({ spacing: { ...spacing, position: value } }) }), _jsx(ToggleGroupControl, { label: __('Velikost', 'brilo-blocks'), value: spacing.size, onChange: (value) => setAttributes({ spacing: { ...spacing, size: value } }), isBlock: true, children: SPACING_SIZES.map((s) => (_jsx(ToggleGroupControlOption, { value: s, label: s === 'default' ? __('Výchozí', 'brilo-blocks') : s.toUpperCase() }, s))) })] })), !exclude.includes('background') && (_jsxs(PanelBody, { title: __('Barvy', 'brilo-blocks'), children: [_jsx("p", { children: __('Pozadí', 'brilo-blocks') }), _jsx(ColorPalette, { colors: paletteColors, value: background || undefined, onChange: (value) => setAttributes({ background: value !== null && value !== void 0 ? value : '' }) }), _jsx("p", { children: __('Barva textu', 'brilo-blocks') }), _jsx(ColorPalette, { colors: paletteColors, value: textColor || undefined, onChange: (value) => setAttributes({ textColor: value !== null && value !== void 0 ? value : '' }) }), !!background && !!textColor && _jsx(ContrastChecker, { backgroundColor: resolveHex(background), textColor: resolveHex(textColor) })] })), !exclude.includes('decorations') && (_jsxs(PanelBody, { title: __('Fluidní dekorace', 'brilo-blocks'), initialOpen: false, children: [_jsx(FluidDecorationControl, { label: __('Nahoře', 'brilo-blocks'), value: fluid.top, onChange: (value) => setFluid('top', value) }), _jsx(FluidDecorationControl, { label: __('Dole', 'brilo-blocks'), value: fluid.bottom, onChange: (value) => setFluid('bottom', value) })] })), !exclude.includes('id') && (_jsx(PanelBody, { title: __('Kotva', 'brilo-blocks'), initialOpen: false, children: _jsx(TextControl, { label: __('ID sekce', 'brilo-blocks'), value: id !== null && id !== void 0 ? id : '', onChange: (value) => setAttributes({ id: value }), help: __('Použije se jako HTML atribut id pro kotevní odkaz.', 'brilo-blocks') }) }))] }));
11
29
  }
@@ -1,6 +1,17 @@
1
1
  import type { BlockConfiguration, BlockEditProps } from '@wordpress/blocks';
2
2
  import type { ReactNode } from 'react';
3
3
  import type { BriloBlockType } from '../../../types';
4
+ export interface FluidDecorationImage {
5
+ id: number;
6
+ src: string;
7
+ alt: string;
8
+ width?: number;
9
+ height?: number;
10
+ }
11
+ export interface FluidDecoration {
12
+ img?: FluidDecorationImage;
13
+ height: string;
14
+ }
4
15
  export interface BaseBlockAttributes extends Record<string, unknown> {
5
16
  id: string;
6
17
  spacing: {
@@ -9,8 +20,14 @@ export interface BaseBlockAttributes extends Record<string, unknown> {
9
20
  };
10
21
  background: string;
11
22
  textColor: string;
23
+ decorations: {
24
+ fluid?: {
25
+ top?: FluidDecoration;
26
+ bottom?: FluidDecoration;
27
+ };
28
+ };
12
29
  }
13
- export type ExcludableBaseAttr = 'spacing' | 'background' | 'id';
30
+ export type ExcludableBaseAttr = 'spacing' | 'background' | 'id' | 'decorations';
14
31
  export interface BaseSectionOptions<TExtra extends Record<string, unknown> = Record<string, never>> extends BriloBlockType {
15
32
  supports?: BlockConfiguration['supports'];
16
33
  extraAttributes?: {
@@ -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;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"}
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,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAA;IACV,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,CAAC,EAAE,oBAAoB,CAAA;IAC1B,MAAM,EAAE,MAAM,CAAA;CACf;AAED,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;IACjB,WAAW,EAAE;QACX,KAAK,CAAC,EAAE;YACN,GAAG,CAAC,EAAE,eAAe,CAAA;YACrB,MAAM,CAAC,EAAE,eAAe,CAAA;SACzB,CAAA;KACF,CAAA;CACF;AAED,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,YAAY,GAAG,IAAI,GAAG,aAAa,CAAA;AAEhF,MAAM,WAAW,kBAAkB,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAE,SAAQ,cAAc;IACxH,QAAQ,CAAC,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAA;IACzC,eAAe,CAAC,EAAE;SACf,CAAC,IAAI,MAAM,MAAM,GAAG;YACnB,IAAI,EAAE,MAAM,CAAA;YACZ,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;SACnB;KACF,CAAA;IACD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,CAAC,mBAAmB,GAAG,MAAM,CAAC,KAAK,SAAS,CAAA;IAClF,OAAO,CAAC,EAAE,kBAAkB,EAAE,CAAA;CAC/B"}
@@ -1,4 +1,4 @@
1
- export declare const COLUMNS: readonly [5, 4, 3, 2];
1
+ export declare const COLUMNS: readonly [4, 3, 2];
2
2
  export declare const RATIOS: readonly ['4:3', '3:2', '16:9', '1:1', '2:1', '3:4'];
3
3
  export declare const HEADING_LEVELS: readonly [2, 3, 4];
4
4
  export declare const DEFAULT_SHADOWS: readonly [{
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/blocks/signpost/signpost-group/constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,OAAO,YAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAU,CAAA;AAC5C,eAAO,MAAM,MAAM,YAAI,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAU,CAAA;AAC1E,eAAO,MAAM,cAAc,YAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAU,CAAA;AAEhD,eAAO,MAAM,eAAe;aACzB,KAAK,EAAE,MAAM;aAAE,KAAK;;aACpB,KAAK,EAAE,IAAI;aAAE,KAAK;;aAClB,KAAK,EAAE,IAAI;aAAE,KAAK;EACX,CAAA;AAEV,eAAO,MAAM,aAAa;aACvB,KAAK,EAAE,CAAC;aAAE,KAAK,EAAE,GAAG;;aACpB,KAAK,EAAE,GAAG;aAAE,KAAK,EAAE,KAAK;;aACxB,KAAK,EAAE,CAAC;aAAE,KAAK,EAAE,GAAG;;aACpB,KAAK,EAAE,GAAG;aAAE,KAAK,EAAE,KAAK;;aACxB,KAAK,EAAE,CAAC;aAAE,KAAK,EAAE,GAAG;EACb,CAAA"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/blocks/signpost/signpost-group/constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,OAAO,YAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAU,CAAA;AACzC,eAAO,MAAM,MAAM,YAAI,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAU,CAAA;AAC1E,eAAO,MAAM,cAAc,YAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAU,CAAA;AAEhD,eAAO,MAAM,eAAe;aACzB,KAAK,EAAE,MAAM;aAAE,KAAK;;aACpB,KAAK,EAAE,IAAI;aAAE,KAAK;;aAClB,KAAK,EAAE,IAAI;aAAE,KAAK;EACX,CAAA;AAEV,eAAO,MAAM,aAAa;aACvB,KAAK,EAAE,CAAC;aAAE,KAAK,EAAE,GAAG;;aACpB,KAAK,EAAE,GAAG;aAAE,KAAK,EAAE,KAAK;;aACxB,KAAK,EAAE,CAAC;aAAE,KAAK,EAAE,GAAG;;aACpB,KAAK,EAAE,GAAG;aAAE,KAAK,EAAE,KAAK;;aACxB,KAAK,EAAE,CAAC;aAAE,KAAK,EAAE,GAAG;EACb,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { __ } from '@wordpress/i18n';
2
- export const COLUMNS = [5, 4, 3, 2];
2
+ export const COLUMNS = [4, 3, 2];
3
3
  export const RATIOS = ['4:3', '3:2', '16:9', '1:1', '2:1', '3:4'];
4
4
  export const HEADING_LEVELS = [2, 3, 4];
5
5
  export const DEFAULT_SHADOWS = [
package/build/index.d.ts CHANGED
@@ -92,6 +92,14 @@ export type { ResponsiveGridItemAttributes, ResponsiveGridItemOptions } from './
92
92
  export { createResponsiveGridItemBlock, responsiveGridItemDefaults } from './blocks/responsive-grid/responsive-grid-item';
93
93
  export type { PostSliderGroupAttributes, PostSliderGroupOptions } from './blocks/post/post-slider-group';
94
94
  export { createPostSliderGroupBlock, postSliderGroupDefaults } from './blocks/post/post-slider-group';
95
+ export type { PostsGridAttributes, PostsGridOptions } from './blocks/post/posts-grid';
96
+ export { createPostsGridBlock, postsGridDefaults } from './blocks/post/posts-grid';
95
97
  export type { LinkItemAttributes, LinkItemIcon, LinkItemOptions } from './blocks/link/link-item';
96
98
  export { createLinkItemBlock, linkItemDefaults } from './blocks/link/link-item';
99
+ export type { ContentWithAsideAttributes, ContentWithAsideOptions } from './blocks/layout/layout-content-w-aside';
100
+ export { createContentWithAsideBlock, contentWithAsideDefaults } from './blocks/layout/layout-content-w-aside';
101
+ export type { ContentAttributes, ContentOptions } from './blocks/layout/layout-content';
102
+ export { createContentBlock, contentDefaults } from './blocks/layout/layout-content';
103
+ export type { AsideAttributes, AsideOptions } from './blocks/layout/layout-aside';
104
+ export { createAsideBlock, asideDefaults } from './blocks/layout/layout-aside';
97
105
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/build/index.js CHANGED
@@ -45,4 +45,8 @@ export { createFormFieldBlock, formFieldDefaults, FIELD_TYPES, FIELD_COLUMNS_RAN
45
45
  export { createResponsiveGridGroupBlock, responsiveGridGroupDefaults } from './blocks/responsive-grid/responsive-grid-group';
46
46
  export { createResponsiveGridItemBlock, responsiveGridItemDefaults } from './blocks/responsive-grid/responsive-grid-item';
47
47
  export { createPostSliderGroupBlock, postSliderGroupDefaults } from './blocks/post/post-slider-group';
48
+ export { createPostsGridBlock, postsGridDefaults } from './blocks/post/posts-grid';
48
49
  export { createLinkItemBlock, linkItemDefaults } from './blocks/link/link-item';
50
+ export { createContentWithAsideBlock, contentWithAsideDefaults } from './blocks/layout/layout-content-w-aside';
51
+ export { createContentBlock, contentDefaults } from './blocks/layout/layout-content';
52
+ export { createAsideBlock, asideDefaults } from './blocks/layout/layout-aside';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@brilo/base-blocks",
3
- "version": "0.1.21",
3
+ "version": "0.1.23",
4
4
  "author": "Brilo",
5
5
  "main": "./build/index.js",
6
6
  "types": "./build/index.d.ts",
@@ -22,6 +22,7 @@
22
22
  "devDependencies": {
23
23
  "@biomejs/biome": "2.5.6",
24
24
  "@types/react": "^18.3.12",
25
+ "@types/sortablejs": "^1.15.8",
25
26
  "@types/wordpress__block-editor": "^15.0.6",
26
27
  "@wordpress/block-editor": "^16.1.0",
27
28
  "@wordpress/blocks": "^15.25.0",
@@ -34,7 +35,9 @@
34
35
  "typescript": "^7.0.2"
35
36
  },
36
37
  "dependencies": {
37
- "clsx": "^2.1.1"
38
+ "clsx": "^2.1.1",
39
+ "react-sortablejs": "^6.1.4",
40
+ "sortablejs": "^1.15.7"
38
41
  },
39
42
  "files": [
40
43
  "build",
@@ -0,0 +1,111 @@
1
+ import {Button, Card, CardBody, Flex, FlexBlock, FlexItem, TextControl} from '@wordpress/components'
2
+ import {__} from '@wordpress/i18n'
3
+ import {ReactSortable} from 'react-sortablejs'
4
+ import type {OptionRow} from './normalizeOptions'
5
+
6
+ const EMAIL_PATTERN = /^[^\s@]+@[^\s@]+\.[^\s@]+$/
7
+
8
+ type Props = {
9
+ rows: OptionRow[]
10
+ onChange: (rows: OptionRow[]) => void
11
+ showEmail: boolean
12
+ onClose: () => void
13
+ }
14
+
15
+ export function SelectOptionsRepeater({rows, onChange, showEmail, onClose}: Props) {
16
+ const updateRow = (id: string, patch: Partial<OptionRow>) => {
17
+ onChange(rows.map((row) => (row.id === id ? {...row, ...patch} : row)))
18
+ }
19
+
20
+ const removeRow = (id: string) => {
21
+ onChange(rows.filter((row) => row.id !== id))
22
+ }
23
+
24
+ const addRow = () => {
25
+ onChange([...rows, {id: `${Date.now()}-${Math.random()}`, label: '', value: '', email: ''}])
26
+ }
27
+
28
+ return (
29
+ <div className="i-form-field__options-repeater">
30
+ <ReactSortable list={rows} setList={onChange} handle=".i-form-field__option-drag-handle" animation={150}>
31
+ {rows.map((row) => {
32
+ const isEmailInvalid = row.email.trim() !== '' && !EMAIL_PATTERN.test(row.email.trim())
33
+
34
+ return (
35
+ <Card size="small" className="i-form-field__option-row" key={row.id}>
36
+ <CardBody>
37
+ <Flex align="flex-start" gap={3}>
38
+ <FlexItem>
39
+ <span className="i-form-field__option-drag-handle" aria-hidden="true">
40
+ ⠿
41
+ </span>
42
+ </FlexItem>
43
+
44
+ <FlexBlock>
45
+ <Flex direction="column" gap={3}>
46
+ <FlexItem>
47
+ <TextControl
48
+ label={__('Popisek', 'brilo-blocks')}
49
+ placeholder={__('Popisek možnosti', 'brilo-blocks')}
50
+ value={row.label}
51
+ onChange={(label) => updateRow(row.id, {label})}
52
+ />
53
+ </FlexItem>
54
+
55
+ <FlexItem>
56
+ <TextControl
57
+ label={__('Hodnota', 'brilo-blocks')}
58
+ placeholder={__('auto (dle popisku)', 'brilo-blocks')}
59
+ value={row.value}
60
+ onChange={(value) => updateRow(row.id, {value})}
61
+ help={__('Volitelné, jinak se odvodí z popisku.', 'brilo-blocks')}
62
+ />
63
+ </FlexItem>
64
+
65
+ {showEmail && (
66
+ <FlexItem>
67
+ <TextControl
68
+ label={__('E-mail', 'brilo-blocks')}
69
+ type="email"
70
+ placeholder={__('Email příjemce (volitelné)', 'brilo-blocks')}
71
+ value={row.email}
72
+ onChange={(email) => updateRow(row.id, {email})}
73
+ help={isEmailInvalid ? __('Neplatný formát emailu.', 'brilo-blocks') : undefined}
74
+ />
75
+ </FlexItem>
76
+ )}
77
+ </Flex>
78
+ </FlexBlock>
79
+
80
+ <FlexItem>
81
+ <Button
82
+ icon="no-alt"
83
+ size="small"
84
+ variant="tertiary"
85
+ isDestructive
86
+ label={__('Odebrat možnost', 'brilo-blocks')}
87
+ onClick={() => removeRow(row.id)}
88
+ />
89
+ </FlexItem>
90
+ </Flex>
91
+ </CardBody>
92
+ </Card>
93
+ )
94
+ })}
95
+ </ReactSortable>
96
+
97
+ <Flex className="i-form-field__options-footer" justify="flex-start" gap={2}>
98
+ <FlexItem>
99
+ <Button variant="secondary" onClick={addRow}>
100
+ {__('Přidat možnost', 'brilo-blocks')}
101
+ </Button>
102
+ </FlexItem>
103
+ <FlexItem>
104
+ <Button variant="tertiary" onClick={onClose}>
105
+ {__('Zavřít', 'brilo-blocks')}
106
+ </Button>
107
+ </FlexItem>
108
+ </Flex>
109
+ </div>
110
+ )
111
+ }