@blockbite/ui 2.0.7 → 2.0.9

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 (98) hide show
  1. package/dist/AutocompleteDropdown.d.ts +1 -1
  2. package/dist/AutocompleteDropdown.js +23 -94
  3. package/dist/AutocompleteDropdown.js.map +1 -0
  4. package/dist/Badge.js +5 -15
  5. package/dist/Badge.js.map +1 -0
  6. package/dist/BitePreview.js +50 -60
  7. package/dist/BitePreview.js.map +1 -0
  8. package/dist/Button.d.ts +1 -1
  9. package/dist/Button.js +8 -51
  10. package/dist/Button.js.map +1 -0
  11. package/dist/ButtonToggle.js +44 -111
  12. package/dist/ButtonToggle.js.map +1 -0
  13. package/dist/Chapter.d.ts +1 -1
  14. package/dist/Chapter.js +6 -18
  15. package/dist/Chapter.js.map +1 -0
  16. package/dist/ChapterDivider.js +5 -16
  17. package/dist/ChapterDivider.js.map +1 -0
  18. package/dist/Checkbox.d.ts +1 -1
  19. package/dist/Checkbox.js +11 -20
  20. package/dist/Checkbox.js.map +1 -0
  21. package/dist/DisappearingMessage.js +27 -21
  22. package/dist/DisappearingMessage.js.map +1 -0
  23. package/dist/DropdownPicker.d.ts +1 -1
  24. package/dist/DropdownPicker.js +35 -52
  25. package/dist/DropdownPicker.js.map +1 -0
  26. package/dist/EmptyState.js +16 -17
  27. package/dist/EmptyState.js.map +1 -0
  28. package/dist/FloatingPanel.js +30 -41
  29. package/dist/FloatingPanel.js.map +1 -0
  30. package/dist/FocalPointControl.js +30 -40
  31. package/dist/FocalPointControl.js.map +1 -0
  32. package/dist/Icon.d.ts +1 -1
  33. package/dist/Icon.js +7 -8
  34. package/dist/Icon.js.map +1 -0
  35. package/dist/LinkPicker.d.ts +1 -1
  36. package/dist/LinkPicker.js +48 -65
  37. package/dist/LinkPicker.js.map +1 -0
  38. package/dist/MediaPicker.js +93 -90
  39. package/dist/MediaPicker.js.map +1 -0
  40. package/dist/MetricsControl.js +92 -117
  41. package/dist/MetricsControl.js.map +1 -0
  42. package/dist/Modal.js +74 -80
  43. package/dist/Modal.js.map +1 -0
  44. package/dist/NewWindowPortal.js +52 -40
  45. package/dist/NewWindowPortal.js.map +1 -0
  46. package/dist/Notice.d.ts +1 -1
  47. package/dist/Notice.js +9 -23
  48. package/dist/Notice.js.map +1 -0
  49. package/dist/PasswordInput.js +20 -36
  50. package/dist/PasswordInput.js.map +1 -0
  51. package/dist/Popover.js +22 -47
  52. package/dist/Popover.js.map +1 -0
  53. package/dist/RangeSlider.js +36 -47
  54. package/dist/RangeSlider.js.map +1 -0
  55. package/dist/ResponsiveImage.js +13 -36
  56. package/dist/ResponsiveImage.js.map +1 -0
  57. package/dist/ResponsiveVideo.js +7 -19
  58. package/dist/ResponsiveVideo.js.map +1 -0
  59. package/dist/ScrollList.js +9 -21
  60. package/dist/ScrollList.js.map +1 -0
  61. package/dist/SectionList.d.ts +1 -1
  62. package/dist/SectionList.js +57 -118
  63. package/dist/SectionList.js.map +1 -0
  64. package/dist/SelectControlWrapper.js +17 -32
  65. package/dist/SelectControlWrapper.js.map +1 -0
  66. package/dist/SingleBlockTypeAppender.js +17 -18
  67. package/dist/SingleBlockTypeAppender.js.map +1 -0
  68. package/dist/SlideIn.d.ts +1 -1
  69. package/dist/SlideIn.js +16 -27
  70. package/dist/SlideIn.js.map +1 -0
  71. package/dist/Spinner.js +16 -14
  72. package/dist/Spinner.js.map +1 -0
  73. package/dist/Tabs.d.ts +6 -6
  74. package/dist/Tabs.js +52 -50
  75. package/dist/Tabs.js.map +1 -0
  76. package/dist/Tag.js +5 -10
  77. package/dist/Tag.js.map +1 -0
  78. package/dist/TextControl.js +17 -51
  79. package/dist/TextControl.js.map +1 -0
  80. package/dist/TextControlLabel.d.ts +1 -1
  81. package/dist/TextControlLabel.js +7 -18
  82. package/dist/TextControlLabel.js.map +1 -0
  83. package/dist/ToggleGroup.js +15 -51
  84. package/dist/ToggleGroup.js.map +1 -0
  85. package/dist/ToggleSwitch.d.ts +1 -1
  86. package/dist/ToggleSwitch.js +16 -28
  87. package/dist/ToggleSwitch.js.map +1 -0
  88. package/dist/Wrap.js +7 -9
  89. package/dist/Wrap.js.map +1 -0
  90. package/dist/index.js +49 -88
  91. package/dist/index.js.map +1 -0
  92. package/dist/types.js +2 -0
  93. package/dist/types.js.map +1 -0
  94. package/package.json +24 -30
  95. package/dist/_virtual/jsx-runtime.js +0 -4
  96. package/dist/_virtual/react-jsx-runtime.development.js +0 -4
  97. package/dist/_virtual/react-jsx-runtime.production.min.js +0 -4
  98. package/dist/vite.svg +0 -1
@@ -1,93 +1,96 @@
1
- import { j as l } from "./node_modules/.pnpm/react@18.2.0/node_modules/react/jsx-runtime.js";
2
- import { MediaUploadCheck as n, MediaUpload as m } from "@wordpress/block-editor";
3
- import { PanelRow as b, Button as a } from "@wordpress/components";
4
- import { useState as j, useEffect as x } from "@wordpress/element";
5
- import { __ as r } from "@wordpress/i18n";
6
- function S({ mediaProps: d, mediaCallback: c }) {
7
- const u = [
8
- "image",
9
- "video",
10
- "image/svg+xml",
11
- "svg",
12
- "text/plain",
13
- "application/json"
14
- ], [t, g] = j({
15
- id: null,
16
- url: "",
17
- sizes: [],
18
- alt: "",
19
- type: "",
20
- width: 0,
21
- height: 0
22
- });
23
- x(() => {
24
- d && g({ ...d });
25
- }, [d]);
26
- const p = () => {
27
- c({ ...{
28
- mediaId: 0,
29
- mediaUrl: ""
30
- } });
31
- }, h = (e) => {
32
- const s = {
33
- thumbnail: null,
34
- medium: null,
35
- large: null
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { MediaUpload, MediaUploadCheck } from '@wordpress/block-editor';
3
+ import { Button, PanelRow } from '@wordpress/components';
4
+ import { useEffect, useState } from '@wordpress/element';
5
+ import { __ } from '@wordpress/i18n';
6
+ export function MediaPicker({ mediaProps, mediaCallback }) {
7
+ const allowedTypes = [
8
+ 'image',
9
+ 'video',
10
+ 'image/svg+xml',
11
+ 'svg',
12
+ 'text/plain',
13
+ 'application/json',
14
+ ];
15
+ // toggles
16
+ const [stateMedia, setStateMedia] = useState({
17
+ id: null,
18
+ url: '',
19
+ sizes: [],
20
+ alt: '',
21
+ type: '',
22
+ width: 0,
23
+ height: 0,
24
+ });
25
+ useEffect(() => {
26
+ if (mediaProps) {
27
+ setStateMedia(Object.assign({}, mediaProps));
28
+ }
29
+ }, [mediaProps]);
30
+ // image handlers
31
+ const removeMedia = () => {
32
+ const mediaObj = {
33
+ mediaId: 0,
34
+ mediaUrl: '',
35
+ };
36
+ mediaCallback(Object.assign({}, mediaObj));
36
37
  };
37
- e?.sizes && Object.keys(e.sizes).map((o) => {
38
- const i = e.sizes[o];
39
- return (o === "thumbnail" || i.width < 768 || i.height < 768) && (s.thumbnail = i.url), (o === "medium" || i.width > 1024 && i.width < 1024 || i.height < 1536 && i.height > 1536) && (s.medium = i.url), (o === "large" || i.width > 1536 || i.height > 1536) && (s.large = i.url), null;
40
- }), e.url.endsWith(".json") && (e.type = "lottie"), e.url.endsWith(".svg") && (e.type = "svg");
41
- const f = {
42
- id: e.id,
43
- url: e.url,
44
- sizes: s,
45
- alt: e.alt,
46
- type: e.type,
47
- width: e.width,
48
- height: e.height
49
- };
50
- c({ ...f });
51
- };
52
- return /* @__PURE__ */ l.jsxs(b, { children: [
53
- t.id !== null && /* @__PURE__ */ l.jsx(n, { children: /* @__PURE__ */ l.jsx(
54
- m,
55
- {
56
- onSelect: h,
57
- value: t.id,
58
- allowedTypes: u,
59
- render: ({ open: e }) => /* @__PURE__ */ l.jsxs(
60
- a,
61
- {
62
- className: t.id === 0 ? "editor-post-featured-image__toggle" : "editor-post-featured-image__preview",
63
- onClick: e,
64
- children: [
65
- t.id === 0 && r("Choose Media", "blockbite"),
66
- t.id && t.type === "image" ? /* @__PURE__ */ l.jsx("div", { className: "blockbite--editor-visual-image", children: /* @__PURE__ */ l.jsx(
67
- "img",
68
- {
69
- alt: t.alt ? t.alt : r("Image", "blockbite"),
70
- src: t.url
38
+ // onselect media
39
+ const onSelectMedia = (media) => {
40
+ const safeSizes = {
41
+ thumbnail: null,
42
+ medium: null,
43
+ large: null,
44
+ };
45
+ // Normalize Sizes
46
+ if (media === null || media === void 0 ? void 0 : media.sizes) {
47
+ Object.keys(media.sizes).map((key) => {
48
+ const sizeObject = media.sizes[key];
49
+ if (key === 'thumbnail') {
50
+ safeSizes.thumbnail = sizeObject.url;
51
+ }
52
+ else if (sizeObject.width < 768 || sizeObject.height < 768) {
53
+ safeSizes.thumbnail = sizeObject.url;
54
+ }
55
+ if (key === 'medium') {
56
+ safeSizes.medium = sizeObject.url;
57
+ }
58
+ else if ((sizeObject.width > 1024 && sizeObject.width < 1024) ||
59
+ (sizeObject.height < 1536 && sizeObject.height > 1536)) {
60
+ safeSizes.medium = sizeObject.url;
71
61
  }
72
- ) }) : "Add media"
73
- ]
74
- }
75
- )
76
- }
77
- ) }),
78
- t.id !== 0 && /* @__PURE__ */ l.jsx(n, { children: /* @__PURE__ */ l.jsx(
79
- m,
80
- {
81
- title: r("Replace media", "blockbite"),
82
- value: t.id,
83
- onSelect: h,
84
- allowedTypes: u,
85
- render: ({ open: e }) => /* @__PURE__ */ l.jsx(a, { onClick: e, children: r("Replace media", "blockbite") })
86
- }
87
- ) }),
88
- t.id !== 0 && /* @__PURE__ */ l.jsx(n, { children: /* @__PURE__ */ l.jsx(a, { onClick: () => p(), isDestructive: !0, children: r("Remove media", "blockbite") }) })
89
- ] });
62
+ if (key === 'large') {
63
+ safeSizes.large = sizeObject.url;
64
+ }
65
+ else if (sizeObject.width > 1536 || sizeObject.height > 1536) {
66
+ safeSizes.large = sizeObject.url;
67
+ }
68
+ return null;
69
+ });
70
+ }
71
+ // if type ends .lottie then it is a lottie file
72
+ if (media.url.endsWith('.json')) {
73
+ media.type = 'lottie';
74
+ }
75
+ // if type ends with .svg then it is an svg file
76
+ if (media.url.endsWith('.svg')) {
77
+ media.type = 'svg';
78
+ }
79
+ const mediaObj = {
80
+ id: media.id,
81
+ url: media.url,
82
+ sizes: safeSizes,
83
+ alt: media.alt,
84
+ type: media.type,
85
+ width: media.width,
86
+ height: media.height,
87
+ };
88
+ mediaCallback(Object.assign({}, mediaObj));
89
+ };
90
+ return (_jsxs(PanelRow, { children: [stateMedia.id !== null && (_jsx(MediaUploadCheck, { children: _jsx(MediaUpload, { onSelect: onSelectMedia, value: stateMedia.id, allowedTypes: allowedTypes, render: ({ open }) => (_jsxs(Button, { className: stateMedia.id === 0
91
+ ? 'editor-post-featured-image__toggle'
92
+ : 'editor-post-featured-image__preview', onClick: open, children: [stateMedia.id === 0 && __('Choose Media', 'blockbite'), stateMedia.id && stateMedia.type === 'image' ? (_jsx("div", { className: "blockbite--editor-visual-image", children: _jsx("img", { alt: stateMedia.alt
93
+ ? stateMedia.alt
94
+ : __('Image', 'blockbite'), src: stateMedia.url }) })) : ('Add media')] })) }) })), stateMedia.id !== 0 && (_jsx(MediaUploadCheck, { children: _jsx(MediaUpload, { title: __('Replace media', 'blockbite'), value: stateMedia.id, onSelect: onSelectMedia, allowedTypes: allowedTypes, render: ({ open }) => (_jsx(Button, { onClick: open, children: __('Replace media', 'blockbite') })) }) })), stateMedia.id !== 0 && (_jsx(MediaUploadCheck, { children: _jsx(Button, { onClick: () => removeMedia(), isDestructive: true, children: __('Remove media', 'blockbite') }) }))] }));
90
95
  }
91
- export {
92
- S as MediaPicker
93
- };
96
+ //# sourceMappingURL=MediaPicker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MediaPicker.js","sourceRoot":"","sources":["../src/MediaPicker.tsx"],"names":[],"mappings":"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"}
@@ -1,118 +1,93 @@
1
- import { j as s } from "./node_modules/.pnpm/react@18.2.0/node_modules/react/jsx-runtime.js";
2
- import { useState as a, useEffect as d } from "@wordpress/element";
3
- import { ButtonToggleGroup as h } from "./ButtonToggle.js";
4
- import { DropdownPicker as P } from "./DropdownPicker.js";
5
- import { Popover as C } from "./Popover.js";
6
- import { RangeSlider as w } from "./RangeSlider.js";
7
- import { TextControl as N } from "./TextControl.js";
8
- import { Wrap as k } from "./Wrap.js";
9
- import { Tailwind as O, Percentage as T, Grid as R, Desktop as G, Slider as A, ColumnSpacing as D } from "@blockbite/icons";
10
- const W = ({
11
- defaultUnit: l,
12
- defaultValue: n,
13
- onValueChange: t,
14
- onUnitChange: g,
15
- inputClassName: j = "w-[75px]"
16
- }) => {
17
- const [c, m] = a(!1), [v, b] = a([]), [r, x] = a(l), [o, i] = a(""), [u, S] = a(n);
18
- d(() => {
19
- l && x(l), n && i(n.toString());
20
- }, [l, n]), d(() => {
21
- !c && r === "arbitrary" && S(o);
22
- }, [c]);
23
- const f = (e) => {
24
- if (e !== "arbitrary" && bb?.codex?.units?.spacing?.[e]) {
25
- const p = bb.codex.units.spacing[e];
26
- b(
27
- Array.isArray(p) ? p : Object.keys(p)
28
- );
29
- } else
30
- b([]);
31
- m(!0);
32
- }, y = [
33
- {
34
- icon: /* @__PURE__ */ s.jsx(O, {}),
35
- label: "Tailwind CSS Units",
36
- value: "native"
37
- },
38
- { icon: /* @__PURE__ */ s.jsx(T, {}), label: "Percentage Units", value: "percent" },
39
- { icon: /* @__PURE__ */ s.jsx(R, {}), label: "Grid Units", value: "grid" },
40
- { icon: /* @__PURE__ */ s.jsx(G, {}), label: "Screen Units", value: "screen" },
41
- { icon: /* @__PURE__ */ s.jsx(A, {}), label: "Pixel Units", value: "arbitrary" },
42
- { icon: /* @__PURE__ */ s.jsx(D, {}), label: "Fluid Units", value: "fluid" }
43
- ];
44
- return /* @__PURE__ */ s.jsx(k, { className: "relative flex flex-col items-baseline", children: /* @__PURE__ */ s.jsxs(
45
- N,
46
- {
47
- inputClassName: j,
48
- defaultValue: (
49
- // Remove the "b_" prefix for grid units
50
- r === "grid" ? o.replace("b_", "") : o
51
- ),
52
- onClick: () => r !== "arbitrary" && f(r),
53
- onChange: (e) => {
54
- i(e), t(e);
55
- },
56
- readOnly: r !== "arbitrary",
57
- children: [
58
- /* @__PURE__ */ s.jsx(
59
- C,
60
- {
61
- visible: c,
62
- position: "bottom left",
63
- className: "w-[300px] bg-white shadow-sm",
64
- onVisibleChange: m,
65
- children: r === "arbitrary" ? /* @__PURE__ */ s.jsx(
66
- w,
67
- {
68
- defaultValue: o,
69
- label: "Pixel Value",
70
- min: 0,
71
- max: 100,
72
- gridMode: !0,
73
- showTooltip: !1,
74
- allowReset: !0,
75
- resetFallbackValue: isNaN(u.toString()) ? 0 : Number(u) / 16,
76
- onValueChange: (e) => {
77
- i(e), t(e);
78
- }
79
- }
80
- ) : /* @__PURE__ */ s.jsx(
81
- h,
82
- {
83
- className: "mt-4",
84
- options: v.map((e) => ({
85
- value: e,
86
- label: r === "grid" ? e.toString().replace("b_", "") : e,
87
- onClick: () => {
88
- i(e), t(e);
89
- }
90
- })),
91
- size: "small",
92
- defaultPressed: o?.toString() || "",
93
- onPressedChange: (e) => {
94
- i(e), t(e);
95
- }
96
- }
97
- )
98
- }
99
- ),
100
- /* @__PURE__ */ s.jsx(
101
- P,
102
- {
103
- className: "h-[32px]",
104
- defaultValue: r,
105
- options: y,
106
- onPressedChange: (e) => {
107
- e === "reset" ? (i(""), t(""), m(!1)) : (x(e), g(e), f(e));
108
- }
109
- }
110
- )
111
- ]
112
- }
113
- ) });
114
- };
115
- export {
116
- W as MetricsControl,
117
- W as default
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useEffect, useState } from '@wordpress/element';
3
+ import { ButtonToggleGroup } from './ButtonToggle.js';
4
+ import { DropdownPicker } from './DropdownPicker.js';
5
+ import { Popover } from './Popover.js';
6
+ import { RangeSlider } from './RangeSlider.js';
7
+ import { TextControl } from './TextControl.js';
8
+ import { Wrap } from './Wrap.js';
9
+ import { ColumnSpacing as ColumnSpacingIcon, Desktop as DesktopIcon, Grid as GridIcon, Percentage as PercentageIcon, Slider as SliderIcon, Tailwind as TailwindUnitIcon, } from '@blockbite/icons';
10
+ export const MetricsControl = ({ defaultUnit, defaultValue, onValueChange, onUnitChange, inputClassName = 'w-[75px]', }) => {
11
+ const [isVisible, setIsVisible] = useState(false);
12
+ const [currentOptions, setCurrentOptions] = useState([]);
13
+ // Use local state for defaultUnit and defaultValue
14
+ const [unit, setUnit] = useState(defaultUnit);
15
+ const [value, setValue] = useState('');
16
+ const [resetValue, setResetValue] = useState(defaultValue);
17
+ // Set initial state from props
18
+ useEffect(() => {
19
+ if (defaultUnit) {
20
+ setUnit(defaultUnit);
21
+ }
22
+ if (defaultValue) {
23
+ setValue(defaultValue.toString());
24
+ }
25
+ }, [defaultUnit, defaultValue]);
26
+ // Save last value after popover close to support "reset" functionality
27
+ // Only apply to arbitrary units
28
+ useEffect(() => {
29
+ if (!isVisible && unit === 'arbitrary') {
30
+ setResetValue(value);
31
+ }
32
+ // eslint-disable-next-line react-hooks/exhaustive-deps
33
+ }, [isVisible]);
34
+ const showOptions = (u) => {
35
+ var _a, _b, _c;
36
+ if (u !== 'arbitrary' && ((_c = (_b = (_a = bb === null || bb === void 0 ? void 0 : bb.codex) === null || _a === void 0 ? void 0 : _a.units) === null || _b === void 0 ? void 0 : _b.spacing) === null || _c === void 0 ? void 0 : _c[u])) {
37
+ const options = bb.codex.units.spacing[u];
38
+ setCurrentOptions(Array.isArray(options) ? options : Object.keys(options));
39
+ }
40
+ else {
41
+ setCurrentOptions([]);
42
+ }
43
+ setIsVisible(true);
44
+ };
45
+ const unitOptions = [
46
+ {
47
+ icon: _jsx(TailwindUnitIcon, {}),
48
+ label: 'Tailwind CSS Units',
49
+ value: 'native',
50
+ },
51
+ { icon: _jsx(PercentageIcon, {}), label: 'Percentage Units', value: 'percent' },
52
+ { icon: _jsx(GridIcon, {}), label: 'Grid Units', value: 'grid' },
53
+ { icon: _jsx(DesktopIcon, {}), label: 'Screen Units', value: 'screen' },
54
+ { icon: _jsx(SliderIcon, {}), label: 'Pixel Units', value: 'arbitrary' },
55
+ { icon: _jsx(ColumnSpacingIcon, {}), label: 'Fluid Units', value: 'fluid' },
56
+ ];
57
+ return (_jsx(Wrap, { className: "relative flex flex-col items-baseline", children: _jsxs(TextControl, { inputClassName: inputClassName, defaultValue:
58
+ // Remove the "b_" prefix for grid units
59
+ unit === 'grid' ? value.replace('b_', '') : value, onClick: () => unit !== 'arbitrary' && showOptions(unit), onChange: (newValue) => {
60
+ setValue(newValue);
61
+ onValueChange(newValue);
62
+ }, readOnly: unit !== 'arbitrary', children: [_jsx(Popover, { visible: isVisible, position: "bottom left", className: "w-[300px] bg-white shadow-sm", onVisibleChange: setIsVisible, children: unit === 'arbitrary' ? (_jsx(RangeSlider, { defaultValue: value, label: "Pixel Value", min: 0, max: 100, gridMode: true, showTooltip: false, allowReset: true, resetFallbackValue: isNaN(resetValue.toString())
63
+ ? 0
64
+ : Number(resetValue) / 16, onValueChange: (newValue) => {
65
+ setValue(newValue);
66
+ onValueChange(newValue);
67
+ } })) : (_jsx(ButtonToggleGroup, { className: "mt-4", options: currentOptions.map((option) => ({
68
+ value: option,
69
+ label: unit === 'grid'
70
+ ? option.toString().replace('b_', '')
71
+ : option,
72
+ onClick: () => {
73
+ setValue(option);
74
+ onValueChange(option);
75
+ },
76
+ })), size: "small", defaultPressed: (value === null || value === void 0 ? void 0 : value.toString()) || '', onPressedChange: (newValue) => {
77
+ setValue(newValue);
78
+ onValueChange(newValue);
79
+ } })) }), _jsx(DropdownPicker, { className: "h-[32px]", defaultValue: unit, options: unitOptions, onPressedChange: (selectedUnit) => {
80
+ if (selectedUnit === 'reset') {
81
+ setValue('');
82
+ onValueChange('');
83
+ setIsVisible(false);
84
+ }
85
+ else {
86
+ setUnit(selectedUnit);
87
+ onUnitChange(selectedUnit);
88
+ showOptions(selectedUnit);
89
+ }
90
+ } })] }) }));
118
91
  };
92
+ export default MetricsControl;
93
+ //# sourceMappingURL=MetricsControl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MetricsControl.js","sourceRoot":"","sources":["../src/MetricsControl.tsx"],"names":[],"mappings":"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"}
package/dist/Modal.js CHANGED
@@ -1,82 +1,76 @@
1
- import { j as r } from "./node_modules/.pnpm/react@18.2.0/node_modules/react/jsx-runtime.js";
2
- import { useContext as j, createContext as b, useState as v, useEffect as u, Children as a, isValidElement as l } from "@wordpress/element";
3
- import { Modal as C } from "@wordpress/components";
4
- import n from "classnames";
5
- const i = b(null), d = () => {
6
- const e = j(i);
7
- if (!e)
8
- throw new Error("useModalContext must be used within a ModalProvider");
9
- return e;
10
- }, R = ({
11
- children: e,
12
- defaultOpen: o,
13
- onOpenChange: s,
14
- title: p,
15
- className: f
16
- }) => {
17
- const [m, c] = v(!1);
18
- u(() => {
19
- c(o);
20
- }, [o]);
21
- const M = () => c(!0), x = () => c(!1);
22
- return u(() => {
23
- s(m);
24
- }, [m, s]), /* @__PURE__ */ r.jsxs(i.Provider, { value: { closeModal: x, openModal: M }, children: [
25
- a.map(e, (t) => l(t) && t.type === w ? t : null),
26
- m && /* @__PURE__ */ r.jsx(
27
- C,
28
- {
29
- className: n("blockbite-ui__modal bb_", f),
30
- onRequestClose: x,
31
- title: p,
32
- children: /* @__PURE__ */ r.jsxs("div", { className: "relative", children: [
33
- a.map(e, (t) => l(t) && t.type === y ? t : null),
34
- a.map(e, (t) => l(t) && t.type === g ? t : null),
35
- a.map(e, (t) => l(t) && t.type === N ? t : null)
36
- ] })
37
- }
38
- )
39
- ] });
40
- }, y = ({ children: e, className: o = "", ...s }) => /* @__PURE__ */ r.jsx(
41
- "div",
42
- {
43
- className: n(
44
- "flex flex-col space-y-1.5 text-center sm:text-left",
45
- o
46
- ),
47
- ...s,
48
- children: e
49
- }
50
- ), N = ({ children: e, className: o = "", ...s }) => /* @__PURE__ */ r.jsx(
51
- "div",
52
- {
53
- className: n(
54
- "border-gray-light fixed bottom-0 left-0 right-0 flex h-[4rem] flex-row items-center justify-end space-x-2 border-t bg-white px-4",
55
- o
56
- ),
57
- ...s,
58
- children: e
59
- }
60
- ), g = ({ children: e, className: o = "", ...s }) => /* @__PURE__ */ r.jsx(
61
- "div",
62
- {
63
- className: n("text-gray-medium px-4 pb-4 text-sm", o),
64
- ...s,
65
- children: e
66
- }
67
- ), q = ({ children: e }) => {
68
- const { closeModal: o } = d();
69
- return /* @__PURE__ */ r.jsx("div", { onClick: o, className: "cursor-pointer", children: e });
70
- }, w = ({ children: e }) => {
71
- const { openModal: o } = d();
72
- return /* @__PURE__ */ r.jsx("div", { onClick: o, className: "cursor-pointer", children: e });
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
73
11
  };
74
- export {
75
- R as Modal,
76
- q as ModalClose,
77
- g as ModalContent,
78
- N as ModalFooter,
79
- y as ModalHeader,
80
- w as ModalTrigger,
81
- d as useModalContext
12
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
13
+ import { Children, createContext, isValidElement, useContext, useEffect, useState, } from '@wordpress/element';
14
+ import { Modal as WordpressModal } from '@wordpress/components';
15
+ import classNames from 'classnames';
16
+ const ModalContext = createContext(null);
17
+ export const useModalContext = () => {
18
+ const context = useContext(ModalContext);
19
+ if (!context) {
20
+ throw new Error('useModalContext must be used within a ModalProvider');
21
+ }
22
+ return context;
82
23
  };
24
+ export const Modal = ({ children, defaultOpen, onOpenChange, title, className, }) => {
25
+ const [isOpen, setOpen] = useState(false);
26
+ // Sync `isOpen` with `defaultOpen` when `defaultOpen` changes
27
+ useEffect(() => {
28
+ setOpen(defaultOpen);
29
+ }, [defaultOpen]);
30
+ const openModal = () => setOpen(true);
31
+ const closeModal = () => setOpen(false);
32
+ useEffect(() => {
33
+ onOpenChange(isOpen);
34
+ }, [isOpen, onOpenChange]);
35
+ return (_jsxs(ModalContext.Provider, { value: { closeModal, openModal }, children: [Children.map(children, (child) => {
36
+ return isValidElement(child) && child.type === ModalTrigger
37
+ ? child
38
+ : null;
39
+ }), isOpen && (_jsx(WordpressModal, { className: classNames('blockbite-ui__modal bb_', className), onRequestClose: closeModal, title: title, children: _jsxs("div", { className: "relative", children: [Children.map(children, (child) => {
40
+ return isValidElement(child) && child.type === ModalHeader
41
+ ? child
42
+ : null;
43
+ }), Children.map(children, (child) => {
44
+ return isValidElement(child) && child.type === ModalContent
45
+ ? child
46
+ : null;
47
+ }), Children.map(children, (child) => {
48
+ return isValidElement(child) && child.type === ModalFooter
49
+ ? child
50
+ : null;
51
+ })] }) }))] }));
52
+ };
53
+ // Header component for modal
54
+ export const ModalHeader = (_a) => {
55
+ var { children, className = '' } = _a, props = __rest(_a, ["children", "className"]);
56
+ return (_jsx("div", Object.assign({ className: classNames('flex flex-col space-y-1.5 text-center sm:text-left', className) }, props, { children: children })));
57
+ };
58
+ // Footer component for modal
59
+ export const ModalFooter = (_a) => {
60
+ var { children, className = '' } = _a, props = __rest(_a, ["children", "className"]);
61
+ return (_jsx("div", Object.assign({ className: classNames('border-gray-light fixed bottom-0 left-0 right-0 flex h-[4rem] flex-row items-center justify-end space-x-2 border-t bg-white px-4', className) }, props, { children: children })));
62
+ };
63
+ // Description component for modal
64
+ export const ModalContent = (_a) => {
65
+ var { children, className = '' } = _a, props = __rest(_a, ["children", "className"]);
66
+ return (_jsx("div", Object.assign({ className: classNames('text-gray-medium px-4 pb-4 text-sm', className) }, props, { children: children })));
67
+ };
68
+ export const ModalClose = ({ children }) => {
69
+ const { closeModal } = useModalContext();
70
+ return (_jsx("div", { onClick: closeModal, className: "cursor-pointer", children: children }));
71
+ };
72
+ export const ModalTrigger = ({ children }) => {
73
+ const { openModal } = useModalContext();
74
+ return (_jsx("div", { onClick: openModal, className: "cursor-pointer", children: children }));
75
+ };
76
+ //# sourceMappingURL=Modal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Modal.js","sourceRoot":"","sources":["../src/Modal.tsx"],"names":[],"mappings":"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"}