@brilo/base-blocks 0.1.36 → 0.1.37

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 (120) hide show
  1. package/build/.tsbuildinfo +1 -1
  2. package/build/blocks/event/event-calendar-group/constants.d.ts +2 -0
  3. package/build/blocks/event/event-calendar-group/constants.d.ts.map +1 -0
  4. package/build/blocks/event/event-calendar-group/constants.js +2 -0
  5. package/build/blocks/event/event-calendar-group/edit.d.ts +6 -0
  6. package/build/blocks/event/event-calendar-group/edit.d.ts.map +1 -0
  7. package/build/blocks/event/event-calendar-group/edit.js +18 -0
  8. package/build/blocks/event/event-calendar-group/factory.d.ts +5 -0
  9. package/build/blocks/event/event-calendar-group/factory.d.ts.map +1 -0
  10. package/build/blocks/event/event-calendar-group/factory.js +25 -0
  11. package/build/blocks/event/event-calendar-group/icon.d.ts +2 -0
  12. package/build/blocks/event/event-calendar-group/icon.d.ts.map +1 -0
  13. package/build/blocks/event/event-calendar-group/icon.js +2 -0
  14. package/build/blocks/event/event-calendar-group/index.d.ts +6 -0
  15. package/build/blocks/event/event-calendar-group/index.d.ts.map +1 -0
  16. package/build/blocks/event/event-calendar-group/index.js +6 -0
  17. package/build/blocks/event/event-calendar-group/types.d.ts +12 -0
  18. package/build/blocks/event/event-calendar-group/types.d.ts.map +1 -0
  19. package/build/blocks/event/event-calendar-group/types.js +1 -0
  20. package/build/blocks/event/event-detail-content/constants.d.ts +2 -0
  21. package/build/blocks/event/event-detail-content/constants.d.ts.map +1 -0
  22. package/build/blocks/event/event-detail-content/constants.js +1 -0
  23. package/build/blocks/event/event-detail-content/edit.d.ts +6 -0
  24. package/build/blocks/event/event-detail-content/edit.d.ts.map +1 -0
  25. package/build/blocks/event/event-detail-content/edit.js +9 -0
  26. package/build/blocks/event/event-detail-content/factory.d.ts +5 -0
  27. package/build/blocks/event/event-detail-content/factory.d.ts.map +1 -0
  28. package/build/blocks/event/event-detail-content/factory.js +18 -0
  29. package/build/blocks/event/event-detail-content/icon.d.ts +2 -0
  30. package/build/blocks/event/event-detail-content/icon.d.ts.map +1 -0
  31. package/build/blocks/event/event-detail-content/icon.js +2 -0
  32. package/build/blocks/event/event-detail-content/index.d.ts +5 -0
  33. package/build/blocks/event/event-detail-content/index.d.ts.map +1 -0
  34. package/build/blocks/event/event-detail-content/index.js +5 -0
  35. package/build/blocks/event/event-detail-content/types.d.ts +6 -0
  36. package/build/blocks/event/event-detail-content/types.d.ts.map +1 -0
  37. package/build/blocks/event/event-detail-content/types.js +1 -0
  38. package/build/blocks/event/event-detail-header/constants.d.ts +2 -0
  39. package/build/blocks/event/event-detail-header/constants.d.ts.map +1 -0
  40. package/build/blocks/event/event-detail-header/constants.js +1 -0
  41. package/build/blocks/event/event-detail-header/edit.d.ts +6 -0
  42. package/build/blocks/event/event-detail-header/edit.d.ts.map +1 -0
  43. package/build/blocks/event/event-detail-header/edit.js +11 -0
  44. package/build/blocks/event/event-detail-header/factory.d.ts +5 -0
  45. package/build/blocks/event/event-detail-header/factory.d.ts.map +1 -0
  46. package/build/blocks/event/event-detail-header/factory.js +22 -0
  47. package/build/blocks/event/event-detail-header/icon.d.ts +2 -0
  48. package/build/blocks/event/event-detail-header/icon.d.ts.map +1 -0
  49. package/build/blocks/event/event-detail-header/icon.js +2 -0
  50. package/build/blocks/event/event-detail-header/index.d.ts +5 -0
  51. package/build/blocks/event/event-detail-header/index.d.ts.map +1 -0
  52. package/build/blocks/event/event-detail-header/index.js +5 -0
  53. package/build/blocks/event/event-detail-header/types.d.ts +9 -0
  54. package/build/blocks/event/event-detail-header/types.d.ts.map +1 -0
  55. package/build/blocks/event/event-detail-header/types.js +1 -0
  56. package/build/blocks/event/event-list-group/constants.d.ts +5 -0
  57. package/build/blocks/event/event-list-group/constants.d.ts.map +1 -0
  58. package/build/blocks/event/event-list-group/constants.js +5 -0
  59. package/build/blocks/event/event-list-group/edit.d.ts +6 -0
  60. package/build/blocks/event/event-list-group/edit.d.ts.map +1 -0
  61. package/build/blocks/event/event-list-group/edit.js +23 -0
  62. package/build/blocks/event/event-list-group/factory.d.ts +5 -0
  63. package/build/blocks/event/event-list-group/factory.d.ts.map +1 -0
  64. package/build/blocks/event/event-list-group/factory.js +28 -0
  65. package/build/blocks/event/event-list-group/icon.d.ts +2 -0
  66. package/build/blocks/event/event-list-group/icon.d.ts.map +1 -0
  67. package/build/blocks/event/event-list-group/icon.js +2 -0
  68. package/build/blocks/event/event-list-group/index.d.ts +8 -0
  69. package/build/blocks/event/event-list-group/index.d.ts.map +1 -0
  70. package/build/blocks/event/event-list-group/index.js +8 -0
  71. package/build/blocks/event/event-list-group/types.d.ts +30 -0
  72. package/build/blocks/event/event-list-group/types.d.ts.map +1 -0
  73. package/build/blocks/event/event-list-group/types.js +7 -0
  74. package/build/components/Event/EntitySelectModal.d.ts +27 -0
  75. package/build/components/Event/EntitySelectModal.d.ts.map +1 -0
  76. package/build/components/Event/EntitySelectModal.js +100 -0
  77. package/build/components/Event/EventSelectModal.d.ts +7 -0
  78. package/build/components/Event/EventSelectModal.d.ts.map +1 -0
  79. package/build/components/Event/EventSelectModal.js +42 -0
  80. package/build/components/Event/EventTermSelectModal.d.ts +7 -0
  81. package/build/components/Event/EventTermSelectModal.d.ts.map +1 -0
  82. package/build/components/Event/EventTermSelectModal.js +48 -0
  83. package/build/index.d.ts +8 -0
  84. package/build/index.d.ts.map +1 -1
  85. package/build/index.js +4 -0
  86. package/build/types.d.ts +4 -0
  87. package/build/types.d.ts.map +1 -1
  88. package/package.json +1 -1
  89. package/src/blocks/event/event-calendar-group/constants.ts +3 -0
  90. package/src/blocks/event/event-calendar-group/edit.tsx +60 -0
  91. package/src/blocks/event/event-calendar-group/editor.scss +13 -0
  92. package/src/blocks/event/event-calendar-group/factory.tsx +30 -0
  93. package/src/blocks/event/event-calendar-group/icon.tsx +13 -0
  94. package/src/blocks/event/event-calendar-group/index.tsx +10 -0
  95. package/src/blocks/event/event-calendar-group/types.ts +13 -0
  96. package/src/blocks/event/event-detail-content/constants.ts +1 -0
  97. package/src/blocks/event/event-detail-content/edit.tsx +24 -0
  98. package/src/blocks/event/event-detail-content/factory.tsx +22 -0
  99. package/src/blocks/event/event-detail-content/icon.tsx +9 -0
  100. package/src/blocks/event/event-detail-content/index.ts +9 -0
  101. package/src/blocks/event/event-detail-content/types.ts +5 -0
  102. package/src/blocks/event/event-detail-header/constants.ts +2 -0
  103. package/src/blocks/event/event-detail-header/edit.tsx +49 -0
  104. package/src/blocks/event/event-detail-header/factory.tsx +26 -0
  105. package/src/blocks/event/event-detail-header/icon.tsx +8 -0
  106. package/src/blocks/event/event-detail-header/index.ts +9 -0
  107. package/src/blocks/event/event-detail-header/types.ts +9 -0
  108. package/src/blocks/event/event-list-group/constants.ts +6 -0
  109. package/src/blocks/event/event-list-group/edit.tsx +84 -0
  110. package/src/blocks/event/event-list-group/editor.scss +9 -0
  111. package/src/blocks/event/event-list-group/factory.tsx +33 -0
  112. package/src/blocks/event/event-list-group/icon.tsx +27 -0
  113. package/src/blocks/event/event-list-group/index.tsx +12 -0
  114. package/src/blocks/event/event-list-group/types.ts +27 -0
  115. package/src/components/Event/EntitySelectModal.tsx +249 -0
  116. package/src/components/Event/EventSelectModal.tsx +51 -0
  117. package/src/components/Event/EventTermSelectModal.tsx +58 -0
  118. package/src/editor.scss +2 -0
  119. package/src/index.ts +36 -0
  120. package/src/types.ts +5 -0
@@ -0,0 +1,100 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import apiFetch from '@wordpress/api-fetch';
3
+ import { Button, Card, CardBody, __experimentalHStack as HStack, Modal, __experimentalVStack as VStack } from '@wordpress/components';
4
+ import { DataViews } from '@wordpress/dataviews/wp';
5
+ import { __ } from '@wordpress/i18n';
6
+ import { arrowDown, arrowUp, close, plusCircle } from '@wordpress/icons';
7
+ // biome-ignore lint/correctness/noUnusedImports: required in scope for classic JSX transform
8
+ import { useEffect, useMemo, useState } from 'react';
9
+ const TypedDataViews = DataViews;
10
+ function useEntities(endpoint) {
11
+ const [entities, setEntities] = useState([]);
12
+ const [isLoading, setIsLoading] = useState(true);
13
+ useEffect(() => {
14
+ setIsLoading(true);
15
+ apiFetch({ path: endpoint })
16
+ .then((result) => setEntities(result))
17
+ .catch(() => setEntities([]))
18
+ .finally(() => setIsLoading(false));
19
+ }, [endpoint]);
20
+ return { entities, isLoading };
21
+ }
22
+ function SelectedOrderList({ items, getItemLabel, onChange, onRemove, emptyLabel, }) {
23
+ if (0 === items.length) {
24
+ return _jsx("p", { className: "i-event-select-modal__empty", children: emptyLabel });
25
+ }
26
+ const move = (index, direction) => {
27
+ const target = index + direction;
28
+ if (target < 0 || target >= items.length) {
29
+ return;
30
+ }
31
+ const next = [...items];
32
+ [next[index], next[target]] = [next[target], next[index]];
33
+ onChange(next.map((item) => item.id));
34
+ };
35
+ return (_jsx(VStack, { spacing: 2, children: items.map((item, index) => (_jsx(Card, { size: "small", className: "i-event-select-modal__item", children: _jsx(CardBody, { children: _jsxs(HStack, { alignment: "center", children: [_jsx("span", { className: "i-event-select-modal__item-title", style: {
36
+ flexGrow: 1,
37
+ minWidth: 0,
38
+ textAlign: 'left',
39
+ overflow: 'hidden',
40
+ textOverflow: 'ellipsis',
41
+ whiteSpace: 'nowrap',
42
+ }, children: getItemLabel(item) || __('(bez názvu)', 'brilo-blocks') }), _jsxs(HStack, { expanded: false, spacing: 1, children: [_jsx(Button, { size: "small", icon: arrowUp, label: __('Posunout výš', 'brilo-blocks'), onClick: () => move(index, -1), disabled: 0 === index }), _jsx(Button, { size: "small", icon: arrowDown, label: __('Posunout níž', 'brilo-blocks'), onClick: () => move(index, 1), disabled: index === items.length - 1 }), _jsx(Button, { size: "small", icon: close, isDestructive: true, label: __('Odebrat', 'brilo-blocks'), onClick: () => onRemove(item.id) })] })] }) }) }, item.id))) }));
43
+ }
44
+ /**
45
+ * Generic table-view entity picker built on @wordpress/dataviews (search, sort,
46
+ * checkbox selection, reorderable selection list). Feed it a REST endpoint +
47
+ * DataViews field config to get an `EventSelectModal`/`EventTermSelectModal`-style
48
+ * component without duplicating the DataViews wiring per entity type.
49
+ */
50
+ export function createEntitySelectModal(config) {
51
+ return function EntitySelectModal({ selectedItems, onChange }) {
52
+ var _a;
53
+ const { entities, isLoading } = useEntities(config.endpoint);
54
+ const [isOpen, setIsOpen] = useState(false);
55
+ const [view, setView] = useState(config.defaultView);
56
+ const selectedEntities = useMemo(() => selectedItems.map((id) => entities.find((entity) => entity.id === id)).filter((entity) => undefined !== entity), [selectedItems, entities]);
57
+ const { data, paginationInfo } = useMemo(() => {
58
+ var _a;
59
+ var _b, _c;
60
+ let filtered = entities;
61
+ if (view.search) {
62
+ const needle = view.search.toLowerCase();
63
+ filtered = filtered.filter((entity) => config.matchesSearch(entity, needle));
64
+ }
65
+ if ((_a = view.sort) === null || _a === void 0 ? void 0 : _a.field) {
66
+ const { field, direction } = view.sort;
67
+ const sorted = [...filtered];
68
+ sorted.sort((a, b) => {
69
+ const valueA = config.sortValue(a, field);
70
+ const valueB = config.sortValue(b, field);
71
+ const result = typeof valueA === 'number' && typeof valueB === 'number' ? valueA - valueB : String(valueA).localeCompare(String(valueB));
72
+ return 'desc' === direction ? -result : result;
73
+ });
74
+ filtered = sorted;
75
+ }
76
+ const perPage = (_b = view.perPage) !== null && _b !== void 0 ? _b : 20;
77
+ const page = (_c = view.page) !== null && _c !== void 0 ? _c : 1;
78
+ const start = (page - 1) * perPage;
79
+ return {
80
+ data: filtered.slice(start, start + perPage),
81
+ paginationInfo: { totalItems: filtered.length, totalPages: Math.ceil(filtered.length / perPage) || 1 },
82
+ };
83
+ }, [entities, view]);
84
+ const toggleSelected = (id) => {
85
+ onChange(selectedItems.includes(id) ? selectedItems.filter((itemId) => itemId !== id) : [...selectedItems, id]);
86
+ };
87
+ return (_jsxs(VStack, { spacing: 3, className: (_a = config.className) !== null && _a !== void 0 ? _a : 'i-event-select-modal', children: [_jsx(Button, { variant: "secondary", icon: plusCircle, onClick: () => setIsOpen(true), children: config.buttonLabel }), _jsx(SelectedOrderList, { items: selectedEntities, getItemLabel: config.getItemLabel, emptyLabel: config.emptyLabel, onChange: onChange, onRemove: (id) => onChange(selectedItems.filter((itemId) => itemId !== id)) }), isOpen && (_jsx(Modal, { title: config.modalTitle, onRequestClose: () => setIsOpen(false), size: "fill", children: _jsxs(VStack, { spacing: 4, style: { height: '100%' }, children: [_jsx("div", { style: { flexGrow: 1, minHeight: 0 }, children: _jsx(TypedDataViews, { data: data, fields: config.fields, view: view, onChangeView: setView, paginationInfo: paginationInfo, isLoading: isLoading, defaultLayouts: { table: {} }, getItemId: (item) => String(item.id), selection: selectedItems.map(String), onChangeSelection: (ids) => onChange(ids.map(Number)), actions: [
88
+ {
89
+ id: 'toggle',
90
+ label: (items) => items.length && selectedItems.includes(items[0].id) ? __('Odebrat', 'brilo-blocks') : __('Přidat', 'brilo-blocks'),
91
+ supportsBulk: true,
92
+ callback: (items) => {
93
+ items.forEach((item) => {
94
+ toggleSelected(item.id);
95
+ });
96
+ },
97
+ },
98
+ ] }) }), _jsx(HStack, { justify: "flex-end", children: _jsx(Button, { variant: "primary", onClick: () => setIsOpen(false), children: __('Hotovo', 'brilo-blocks') }) })] }) }))] }));
99
+ };
100
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Manual brilo_event picker (table view, search, sort, checkbox selection,
3
+ * reorderable selection list) with title/date columns. See `EntitySelectModal`
4
+ * for the shared DataViews wiring.
5
+ */
6
+ export declare const EventSelectModal: ({ selectedItems, onChange }: import("../../types").SelectControlProps) => import("react").JSX.Element;
7
+ //# sourceMappingURL=EventSelectModal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EventSelectModal.d.ts","sourceRoot":"","sources":["../../../src/components/Event/EventSelectModal.tsx"],"names":[],"mappings":"AAqBA;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,wGAwB3B,CAAA"}
@@ -0,0 +1,42 @@
1
+ import { __ } from '@wordpress/i18n';
2
+ import { createEntitySelectModal } from './EntitySelectModal';
3
+ const DEFAULT_VIEW = {
4
+ type: 'table',
5
+ search: '',
6
+ filters: [],
7
+ page: 1,
8
+ perPage: 20,
9
+ sort: { field: 'title', direction: 'asc' },
10
+ fields: ['date'],
11
+ titleField: 'title',
12
+ };
13
+ /**
14
+ * Manual brilo_event picker (table view, search, sort, checkbox selection,
15
+ * reorderable selection list) with title/date columns. See `EntitySelectModal`
16
+ * for the shared DataViews wiring.
17
+ */
18
+ export const EventSelectModal = createEntitySelectModal({
19
+ endpoint: '/wp/v2/brilo_event?per_page=100&orderby=title&order=asc&_fields=id,title,date',
20
+ defaultView: DEFAULT_VIEW,
21
+ buttonLabel: __('Vybrat události', 'brilo-blocks'),
22
+ modalTitle: __('Vybrat události', 'brilo-blocks'),
23
+ emptyLabel: __('Nevybrány žádné události.', 'brilo-blocks'),
24
+ getItemLabel: (item) => item.title.rendered,
25
+ matchesSearch: (item, needle) => item.title.rendered.toLowerCase().includes(needle),
26
+ sortValue: (item, field) => { var _a; return ('title' === field ? item.title.rendered : ((_a = item[field]) !== null && _a !== void 0 ? _a : '')); },
27
+ fields: [
28
+ {
29
+ id: 'title',
30
+ label: __('Název', 'brilo-blocks'),
31
+ enableHiding: false,
32
+ enableSorting: true,
33
+ render: ({ item }) => item.title.rendered || __('(bez názvu)', 'brilo-blocks'),
34
+ },
35
+ {
36
+ id: 'date',
37
+ label: __('Datum', 'brilo-blocks'),
38
+ enableSorting: true,
39
+ render: ({ item }) => (item.date ? new Date(item.date).toLocaleDateString() : '—'),
40
+ },
41
+ ],
42
+ });
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Manual brilo_event_category picker (table view, search, sort, checkbox
3
+ * selection, reorderable selection list) with name/slug/count columns. See
4
+ * `EntitySelectModal` for the shared DataViews wiring.
5
+ */
6
+ export declare const EventTermSelectModal: ({ selectedItems, onChange }: import("../../types").SelectControlProps) => import("react").JSX.Element;
7
+ //# sourceMappingURL=EventTermSelectModal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EventTermSelectModal.d.ts","sourceRoot":"","sources":["../../../src/components/Event/EventTermSelectModal.tsx"],"names":[],"mappings":"AAsBA;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,wGA8B/B,CAAA"}
@@ -0,0 +1,48 @@
1
+ import { __ } from '@wordpress/i18n';
2
+ import { createEntitySelectModal } from './EntitySelectModal';
3
+ const DEFAULT_VIEW = {
4
+ type: 'table',
5
+ search: '',
6
+ filters: [],
7
+ page: 1,
8
+ perPage: 20,
9
+ sort: { field: 'name', direction: 'asc' },
10
+ fields: ['slug', 'count'],
11
+ titleField: 'name',
12
+ };
13
+ /**
14
+ * Manual brilo_event_category picker (table view, search, sort, checkbox
15
+ * selection, reorderable selection list) with name/slug/count columns. See
16
+ * `EntitySelectModal` for the shared DataViews wiring.
17
+ */
18
+ export const EventTermSelectModal = createEntitySelectModal({
19
+ endpoint: '/wp/v2/brilo_event_category?per_page=100&orderby=name&order=asc&_fields=id,name,slug,count',
20
+ defaultView: DEFAULT_VIEW,
21
+ buttonLabel: __('Vybrat kategorie', 'brilo-blocks'),
22
+ modalTitle: __('Vybrat kategorie', 'brilo-blocks'),
23
+ emptyLabel: __('Nevybrány žádné kategorie.', 'brilo-blocks'),
24
+ getItemLabel: (item) => item.name,
25
+ matchesSearch: (item, needle) => item.name.toLowerCase().includes(needle) || item.slug.toLowerCase().includes(needle),
26
+ sortValue: (item, field) => item[field],
27
+ fields: [
28
+ {
29
+ id: 'name',
30
+ label: __('Název', 'brilo-blocks'),
31
+ enableHiding: false,
32
+ enableSorting: true,
33
+ render: ({ item }) => item.name || __('(bez názvu)', 'brilo-blocks'),
34
+ },
35
+ {
36
+ id: 'slug',
37
+ label: __('Slug', 'brilo-blocks'),
38
+ enableSorting: true,
39
+ render: ({ item }) => item.slug || '—',
40
+ },
41
+ {
42
+ id: 'count',
43
+ label: __('Počet', 'brilo-blocks'),
44
+ enableSorting: true,
45
+ render: ({ item }) => (undefined !== item.count ? String(item.count) : '—'),
46
+ },
47
+ ],
48
+ });
package/build/index.d.ts CHANGED
@@ -113,6 +113,14 @@ export type { ContentAttributes, ContentOptions } from './blocks/layout/layout-c
113
113
  export { createContentBlock, contentDefaults } from './blocks/layout/layout-content';
114
114
  export type { AsideAttributes, AsideOptions } from './blocks/layout/layout-aside';
115
115
  export { createAsideBlock, asideDefaults } from './blocks/layout/layout-aside';
116
+ export type { EventCalendarGroupAttributes, EventCalendarGroupOptions, } from './blocks/event/event-calendar-group';
117
+ export { createEventCalendarGroupBlock, eventCalendarGroupDefaults, } from './blocks/event/event-calendar-group';
118
+ export type { EventListGroupAttributes, EventListGroupMode, EventListGroupOptions, } from './blocks/event/event-list-group';
119
+ export type { EventDetailHeaderAttributes, EventDetailHeaderOptions, } from './blocks/event/event-detail-header';
120
+ export { createEventDetailHeaderBlock, eventDetailHeaderDefaults, } from './blocks/event/event-detail-header';
121
+ export type { EventDetailContentAttributes, EventDetailContentOptions, } from './blocks/event/event-detail-content';
122
+ export { createEventDetailContentBlock, eventDetailContentDefaults, } from './blocks/event/event-detail-content';
123
+ export { createEventListGroupBlock, eventListGroupDefaults, EVENT_LIST_GROUP_MODES, EventSelectModal, EventTermSelectModal, } from './blocks/event/event-list-group';
116
124
  export type { JobPositionGroupAttributes, JobPositionGroupOptions, JobPositionGroupMode, JobPositionGroupSortBy, JobPositionGroupSortOrder, } from './blocks/career/job-position-group';
117
125
  export { createJobPositionGroupBlock, jobPositionGroupDefaults, JobPositionsSelectModal } from './blocks/career/job-position-group';
118
126
  export type { CareerHeaderAttributes, CareerHeaderOptions } from './blocks/career/career-header';
@@ -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
@@ -56,6 +56,10 @@ export { createLinkItemBlock, linkItemDefaults } from './blocks/link/link-item';
56
56
  export { createContentWithAsideBlock, contentWithAsideDefaults } from './blocks/layout/layout-content-w-aside';
57
57
  export { createContentBlock, contentDefaults } from './blocks/layout/layout-content';
58
58
  export { createAsideBlock, asideDefaults } from './blocks/layout/layout-aside';
59
+ export { createEventCalendarGroupBlock, eventCalendarGroupDefaults, } from './blocks/event/event-calendar-group';
60
+ export { createEventDetailHeaderBlock, eventDetailHeaderDefaults, } from './blocks/event/event-detail-header';
61
+ export { createEventDetailContentBlock, eventDetailContentDefaults, } from './blocks/event/event-detail-content';
62
+ export { createEventListGroupBlock, eventListGroupDefaults, EVENT_LIST_GROUP_MODES, EventSelectModal, EventTermSelectModal, } from './blocks/event/event-list-group';
59
63
  export { createJobPositionGroupBlock, jobPositionGroupDefaults, JobPositionsSelectModal } from './blocks/career/job-position-group';
60
64
  export { createCareerHeaderBlock, careerHeaderDefaults } from './blocks/career/career-header';
61
65
  export { createPostContentBlock, postContentDefaults } from './blocks/post/post-content';
package/build/types.d.ts CHANGED
@@ -13,6 +13,10 @@ export interface Icon {
13
13
  src: string;
14
14
  media: Media;
15
15
  }
16
+ export interface SelectControlProps {
17
+ selectedItems: number[];
18
+ onChange: (ids: number[]) => void;
19
+ }
16
20
  export type OptionArray = ReadonlyArray<{
17
21
  value: string;
18
22
  label: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,uBAAuB,EAAC,MAAM,mBAAmB,CAAA;AAEzD,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAA;IACV,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,KAAK,CAAA;CACb;AAED,MAAM,MAAM,WAAW,GAAG,aAAa,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAC,CAAC,CAAA;AACvE,MAAM,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;AAC/C,MAAM,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;AAE/C,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,CAAA;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACpC,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,IAAI,CAAC,EAAE,uBAAuB,CAAA;IAC9B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAClB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,uBAAuB,EAAC,MAAM,mBAAmB,CAAA;AAEzD,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAA;IACV,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,KAAK,CAAA;CACb;AAED,MAAM,WAAW,kBAAkB;IACjC,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,IAAI,CAAA;CAClC;AAED,MAAM,MAAM,WAAW,GAAG,aAAa,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAC,CAAC,CAAA;AACvE,MAAM,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;AAC/C,MAAM,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;AAE/C,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,CAAA;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACpC,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,IAAI,CAAC,EAAE,uBAAuB,CAAA;IAC9B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAClB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@brilo/base-blocks",
3
- "version": "0.1.36",
3
+ "version": "0.1.37",
4
4
  "author": "Brilo",
5
5
  "main": "./build/index.js",
6
6
  "types": "./build/index.d.ts",
@@ -0,0 +1,3 @@
1
+ import {__} from '@wordpress/i18n'
2
+
3
+ export const DEFAULT_EMPTY_MESSAGE = __('Nebyly nalezeny žádné události.', 'brilo-blocks')
@@ -0,0 +1,60 @@
1
+ import {InspectorControls, useBlockProps} from '@wordpress/block-editor'
2
+ import {PanelBody, ToggleControl, TextControl, __experimentalInputControl as InputControl} from '@wordpress/components'
3
+ import {__} from '@wordpress/i18n'
4
+ import type {EventCalendarGroupAttributes, EventCalendarGroupOptions} from './types'
5
+ import {Icon, calendar} from '@wordpress/icons'
6
+
7
+ export function createEventCalendarGroupEdit(options: EventCalendarGroupOptions) {
8
+ return function Edit({
9
+ attributes,
10
+ setAttributes,
11
+ }: {
12
+ attributes: EventCalendarGroupAttributes
13
+ setAttributes: (a: Partial<EventCalendarGroupAttributes>) => void
14
+ }) {
15
+ const {showNow, month, selectedCategories, emptyMessage} = attributes
16
+
17
+ const blockProps = useBlockProps({className: 'g-event-calendar wp-block-section'})
18
+
19
+ return (
20
+ <>
21
+ <InspectorControls>
22
+ <PanelBody title={__('Nastavení kalendáře', 'brilo-blocks')} initialOpen>
23
+ <ToggleControl
24
+ label={__('Zobrazit aktuální měsíc', 'brilo-blocks')}
25
+ checked={showNow}
26
+ onChange={(value) => setAttributes({showNow: value})}
27
+ />
28
+ {!showNow && (
29
+ <InputControl
30
+ label={'Výběr měsíce a roku'}
31
+ type={'month'}
32
+ value={month}
33
+ onChange={(value) => setAttributes({month: value})}
34
+ />
35
+ )}
36
+ <TextControl
37
+ label={__('Zpráva při prázdném výsledku', 'brilo-blocks')}
38
+ value={emptyMessage}
39
+ onChange={(value) => setAttributes({emptyMessage: value})}
40
+ />
41
+ </PanelBody>
42
+ </InspectorControls>
43
+
44
+ <div {...blockProps}>
45
+ <Icon icon={calendar} />
46
+ <div className="g-event-calendar__label">{__('Kalendář událostí', 'brilo-blocks')}</div>
47
+ <div className="g-event-calendar__instructions">
48
+ {showNow
49
+ ? __('Zobrazuje události pro aktuální měsíc.', 'brilo-blocks')
50
+ : `${__('Zobrazuje události pro', 'brilo-blocks')} ${month}`}
51
+ </div>
52
+ {options.renderCategoryControl?.({
53
+ selectedItems: selectedCategories,
54
+ onChange: (ids: number[]) => setAttributes({selectedCategories: ids}),
55
+ })}
56
+ </div>
57
+ </>
58
+ )
59
+ }
60
+ }
@@ -0,0 +1,13 @@
1
+ @layer base {
2
+ .g-event-calendar {
3
+ padding: 32px 16px;
4
+ display: flex;
5
+ flex-direction: column;
6
+ gap: 8px;
7
+ text-align: center;
8
+
9
+ > svg {
10
+ align-self: center;
11
+ }
12
+ }
13
+ }
@@ -0,0 +1,30 @@
1
+ import type {BlockConfiguration} from '@wordpress/blocks'
2
+ import {__} from '@wordpress/i18n'
3
+ import {DEFAULT_EMPTY_MESSAGE} from './constants'
4
+ import {createEventCalendarGroupEdit} from './edit'
5
+ import {icon as defaultIcon} from './icon'
6
+ import type {EventCalendarGroupAttributes, EventCalendarGroupOptions} from './types'
7
+
8
+ export type {EventCalendarGroupAttributes, EventCalendarGroupOptions}
9
+
10
+ export function createEventCalendarGroupBlock(options: EventCalendarGroupOptions): BlockConfiguration<EventCalendarGroupAttributes> {
11
+ const emptyMessage = options.emptyMessage ?? DEFAULT_EMPTY_MESSAGE
12
+
13
+ return {
14
+ name: options.name,
15
+ title: options.title ?? __('Kalendář událostí', 'brilo-blocks'),
16
+ description: options.description,
17
+ category: options.category ?? 'layout',
18
+ icon: options.icon ?? {src: defaultIcon},
19
+ ...(options.parent && {parent: options.parent}),
20
+ supports: {html: false, customClassName: false},
21
+ attributes: {
22
+ showNow: {type: 'boolean', default: true},
23
+ month: {type: 'string', default: ''},
24
+ selectedCategories: {type: 'array', default: []},
25
+ emptyMessage: {type: 'string', default: emptyMessage},
26
+ },
27
+ edit: createEventCalendarGroupEdit(options),
28
+ save: () => null,
29
+ }
30
+ }
@@ -0,0 +1,13 @@
1
+ export const icon = (
2
+ <svg
3
+ xmlns="http://www.w3.org/2000/svg"
4
+ viewBox="0 0 24 24"
5
+ fill="currentColor"
6
+ width="24"
7
+ height="24"
8
+ aria-hidden="true"
9
+ focusable="false"
10
+ >
11
+ <path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm.5 16c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5V7h15v12zM9 10H7v2h2v-2zm0 4H7v2h2v-2zm4-4h-2v2h2v-2zm4 0h-2v2h2v-2zm-4 4h-2v2h2v-2zm4 0h-2v2h2v-2z"></path>
12
+ </svg>
13
+ )
@@ -0,0 +1,10 @@
1
+ export type {EventCalendarGroupAttributes, EventCalendarGroupOptions} from './types'
2
+ export {createEventCalendarGroupBlock} from './factory'
3
+ export {EventTermSelectModal} from '~/components/Event/EventTermSelectModal'
4
+
5
+ import type {EventCalendarGroupOptions} from './types'
6
+
7
+ export const eventCalendarGroupDefaults: EventCalendarGroupOptions = {
8
+ name: 'brilo/event-calendar-group',
9
+ parent: ['brilo/base-section'],
10
+ }
@@ -0,0 +1,13 @@
1
+ import type {BriloBlockType, SelectControlProps} from '~/types'
2
+
3
+ export interface EventCalendarGroupAttributes extends Record<string, unknown> {
4
+ showNow: boolean
5
+ month: string
6
+ selectedCategories: number[]
7
+ emptyMessage: string
8
+ }
9
+
10
+ export interface EventCalendarGroupOptions extends BriloBlockType {
11
+ emptyMessage?: string
12
+ renderCategoryControl?: (props: SelectControlProps) => JSX.Element
13
+ }
@@ -0,0 +1,24 @@
1
+ import {useBlockProps} from '@wordpress/block-editor'
2
+ import {__} from '@wordpress/i18n'
3
+ import type {EventDetailContentAttributes, EventDetailContentOptions} from './types'
4
+
5
+ export function createEventDetailContentEdit(_options: EventDetailContentOptions) {
6
+ return function Edit({
7
+ attributes: _attributes,
8
+ setAttributes: _setAttributes,
9
+ }: {
10
+ attributes: EventDetailContentAttributes
11
+ setAttributes: (a: Partial<EventDetailContentAttributes>) => void
12
+ }) {
13
+ const blockProps = useBlockProps({className: 'event-detail-content wp-block-section'})
14
+
15
+ return (
16
+ <div {...blockProps}>
17
+ <div className="event-detail-content">
18
+ <div className="event-detail-content__label">{__('Obsah detailu události', 'brilo-blocks')}</div>
19
+ <div className="event-detail-content__instructions">{__('Zástupný blok pro obsah události.', 'brilo-blocks')}</div>
20
+ </div>
21
+ </div>
22
+ )
23
+ }
24
+ }
@@ -0,0 +1,22 @@
1
+ import type {BlockConfiguration} from '@wordpress/blocks'
2
+ import {__} from '@wordpress/i18n'
3
+ import {createEventDetailContentEdit} from './edit'
4
+ import {icon as defaultIcon} from './icon'
5
+ import type {EventDetailContentAttributes, EventDetailContentOptions} from './types'
6
+
7
+ export type {EventDetailContentAttributes, EventDetailContentOptions}
8
+
9
+ export function createEventDetailContentBlock(options: EventDetailContentOptions): BlockConfiguration<EventDetailContentAttributes> {
10
+ return {
11
+ name: options.name,
12
+ title: options.title ?? __('Obsah detailu události', 'brilo-blocks'),
13
+ description: options.description,
14
+ category: options.category ?? 'layout',
15
+ icon: options.icon ?? {src: defaultIcon},
16
+ ...(options.parent && {parent: options.parent}),
17
+ supports: {html: false, customClassName: false},
18
+ attributes: {},
19
+ edit: createEventDetailContentEdit(options),
20
+ save: () => null,
21
+ }
22
+ }
@@ -0,0 +1,9 @@
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
+ <rect x="3" y="2" width="14" height="16" rx="1" stroke="black" fill="none" />
4
+ <line x1="6" y1="6" x2="14" y2="6" stroke="black" />
5
+ <line x1="6" y1="9" x2="14" y2="9" stroke="black" />
6
+ <line x1="6" y1="12" x2="14" y2="12" stroke="black" />
7
+ <line x1="6" y1="15" x2="10" y2="15" stroke="black" />
8
+ </svg>
9
+ )
@@ -0,0 +1,9 @@
1
+ export type {EventDetailContentAttributes, EventDetailContentOptions} from './types'
2
+ export {createEventDetailContentBlock} from './factory'
3
+
4
+ import type {EventDetailContentOptions} from './types'
5
+
6
+ export const eventDetailContentDefaults: EventDetailContentOptions = {
7
+ name: 'brilo/event-detail-content',
8
+ parent: ['brilo/base-section'],
9
+ }
@@ -0,0 +1,5 @@
1
+ import type {BriloBlockType} from '~/types'
2
+
3
+ export interface EventDetailContentAttributes extends Record<string, unknown> {}
4
+
5
+ export interface EventDetailContentOptions extends BriloBlockType {}
@@ -0,0 +1,2 @@
1
+ // No constants needed for now
2
+ export {}
@@ -0,0 +1,49 @@
1
+ import {InspectorControls, useBlockProps} from '@wordpress/block-editor'
2
+ import {PanelBody, ToggleControl} from '@wordpress/components'
3
+ import {__} from '@wordpress/i18n'
4
+ import type {EventDetailHeaderAttributes, EventDetailHeaderOptions} from './types'
5
+
6
+ export function createEventDetailHeaderEdit(_options: EventDetailHeaderOptions) {
7
+ return function Edit({
8
+ attributes,
9
+ setAttributes,
10
+ }: {
11
+ attributes: EventDetailHeaderAttributes
12
+ setAttributes: (a: Partial<EventDetailHeaderAttributes>) => void
13
+ }) {
14
+ const {showDate, showPlace, showPrice} = attributes
15
+
16
+ const blockProps = useBlockProps({className: 'event-detail-header wp-block-section'})
17
+
18
+ return (
19
+ <>
20
+ <InspectorControls>
21
+ <PanelBody title={__('Nastavení hlavičky', 'brilo-blocks')} initialOpen>
22
+ <ToggleControl
23
+ label={__('Zobrazit datum', 'brilo-blocks')}
24
+ checked={showDate}
25
+ onChange={(value) => setAttributes({showDate: value})}
26
+ />
27
+ <ToggleControl
28
+ label={__('Zobrazit místo', 'brilo-blocks')}
29
+ checked={showPlace}
30
+ onChange={(value) => setAttributes({showPlace: value})}
31
+ />
32
+ <ToggleControl
33
+ label={__('Zobrazit cenu', 'brilo-blocks')}
34
+ checked={showPrice}
35
+ onChange={(value) => setAttributes({showPrice: value})}
36
+ />
37
+ </PanelBody>
38
+ </InspectorControls>
39
+
40
+ <div {...blockProps}>
41
+ <div className="event-detail-header">
42
+ <div className="event-detail-header__label">{__('Hlavička detailu události', 'brilo-blocks')}</div>
43
+ <div className="event-detail-header__instructions">{__('Zástupný blok pro hlavičku události.', 'brilo-blocks')}</div>
44
+ </div>
45
+ </div>
46
+ </>
47
+ )
48
+ }
49
+ }
@@ -0,0 +1,26 @@
1
+ import type {BlockConfiguration} from '@wordpress/blocks'
2
+ import {__} from '@wordpress/i18n'
3
+ import {createEventDetailHeaderEdit} from './edit'
4
+ import {icon as defaultIcon} from './icon'
5
+ import type {EventDetailHeaderAttributes, EventDetailHeaderOptions} from './types'
6
+
7
+ export type {EventDetailHeaderAttributes, EventDetailHeaderOptions}
8
+
9
+ export function createEventDetailHeaderBlock(options: EventDetailHeaderOptions): BlockConfiguration<EventDetailHeaderAttributes> {
10
+ return {
11
+ name: options.name,
12
+ title: options.title ?? __('Hlavička detailu události', 'brilo-blocks'),
13
+ description: options.description,
14
+ category: options.category ?? 'layout',
15
+ icon: options.icon ?? {src: defaultIcon},
16
+ ...(options.parent && {parent: options.parent}),
17
+ supports: {html: false, customClassName: false},
18
+ attributes: {
19
+ showDate: {type: 'boolean', default: true},
20
+ showPlace: {type: 'boolean', default: true},
21
+ showPrice: {type: 'boolean', default: true},
22
+ },
23
+ edit: createEventDetailHeaderEdit(options),
24
+ save: () => null,
25
+ }
26
+ }