@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
package/dist/Checkbox.js CHANGED
@@ -1,21 +1,12 @@
1
- import { j as r } from "./node_modules/.pnpm/react@18.2.0/node_modules/react/jsx-runtime.js";
2
- import { CheckboxControl as m } from "@wordpress/components";
3
- import { useState as i, useEffect as x } from "@wordpress/element";
4
- import { Wrap as n } from "./Wrap.js";
5
- const f = ({ label: t, help: s, defaultChecked: e }) => {
6
- const [c, o] = i(e);
7
- return x(() => {
8
- o(e);
9
- }, [e]), /* @__PURE__ */ r.jsx(n, { className: "blockbite-ui__checkbox mx-1 flex items-center gap-2", children: /* @__PURE__ */ r.jsx(
10
- m,
11
- {
12
- label: t,
13
- help: s,
14
- checked: c,
15
- onChange: o
16
- }
17
- ) });
18
- };
19
- export {
20
- f as Checkbox
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { CheckboxControl } from '@wordpress/components';
3
+ import { useEffect, useState } from '@wordpress/element';
4
+ import { Wrap } from './Wrap.js';
5
+ export const Checkbox = ({ label, help, defaultChecked }) => {
6
+ const [isChecked, setChecked] = useState(defaultChecked);
7
+ useEffect(() => {
8
+ setChecked(defaultChecked);
9
+ }, [defaultChecked]);
10
+ return (_jsx(Wrap, { className: "blockbite-ui__checkbox mx-1 flex items-center gap-2", children: _jsx(CheckboxControl, { label: label, help: help, checked: isChecked, onChange: setChecked }) }));
21
11
  };
12
+ //# sourceMappingURL=Checkbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Checkbox.js","sourceRoot":"","sources":["../src/Checkbox.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAUjC,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAiB,EAAE,EAAE;IACzE,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC;IAEzD,SAAS,CAAC,GAAG,EAAE;QACb,UAAU,CAAC,cAAc,CAAC,CAAC;IAC7B,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;IAErB,OAAO,CACL,KAAC,IAAI,IAAC,SAAS,EAAC,qDAAqD,YACnE,KAAC,eAAe,IACd,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,SAAS,EAClB,QAAQ,EAAE,UAAU,GACpB,GACG,CACR,CAAC;AACJ,CAAC,CAAC"}
@@ -1,22 +1,28 @@
1
- import { j as n } from "./node_modules/.pnpm/react@18.2.0/node_modules/react/jsx-runtime.js";
2
- import { useState as l, useRef as i, useEffect as o } from "@wordpress/element";
3
- const p = ({
4
- duration: t,
5
- children: a,
6
- trigger: s
7
- }) => {
8
- const [f, r] = l(!1), e = i(!1);
9
- return o(() => {
10
- e.current = !0;
11
- }, []), o(() => {
12
- let u = null;
13
- return s && !e.current ? (r(!0), u = setTimeout(() => {
14
- r(!1);
15
- }, t)) : e.current = !1, () => {
16
- clearTimeout(u);
17
- };
18
- }, [s, t]), f && /* @__PURE__ */ n.jsx(n.Fragment, { children: a });
19
- };
20
- export {
21
- p as DisappearingMessage
1
+ import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
2
+ import { useEffect, useRef, useState } from '@wordpress/element';
3
+ export const DisappearingMessage = ({ duration, children, trigger, }) => {
4
+ const [alert, setAlert] = useState(false);
5
+ const isMountingRef = useRef(false);
6
+ useEffect(() => {
7
+ isMountingRef.current = true;
8
+ }, []);
9
+ useEffect(() => {
10
+ let timeoutId = null;
11
+ // Only run on subsequent renders
12
+ if (trigger && !isMountingRef.current) {
13
+ setAlert(true);
14
+ timeoutId = setTimeout(() => {
15
+ setAlert(false);
16
+ }, duration);
17
+ }
18
+ else {
19
+ isMountingRef.current = false;
20
+ }
21
+ // Cleanup timeout on unmount or when `trigger` changes
22
+ return () => {
23
+ clearTimeout(timeoutId);
24
+ };
25
+ }, [trigger, duration]);
26
+ return alert && _jsx(_Fragment, { children: children });
22
27
  };
28
+ //# sourceMappingURL=DisappearingMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DisappearingMessage.js","sourceRoot":"","sources":["../src/DisappearingMessage.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAQjE,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,EAClC,QAAQ,EACR,QAAQ,EACR,OAAO,GACkB,EAAE,EAAE;IAC7B,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAEpC,SAAS,CAAC,GAAG,EAAE;QACb,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC;IAC/B,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,SAAS,GAAG,IAAI,CAAC;QAErB,iCAAiC;QACjC,IAAI,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;YACtC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACf,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC1B,QAAQ,CAAC,KAAK,CAAC,CAAC;YAClB,CAAC,EAAE,QAAQ,CAAC,CAAC;QACf,CAAC;aAAM,CAAC;YACN,aAAa,CAAC,OAAO,GAAG,KAAK,CAAC;QAChC,CAAC;QAED,uDAAuD;QACvD,OAAO,GAAG,EAAE;YACV,YAAY,CAAC,SAAS,CAAC,CAAC;QAC1B,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;IAExB,OAAO,KAAK,IAAI,4BAAG,QAAQ,GAAI,CAAC;AAClC,CAAC,CAAC"}
@@ -11,5 +11,5 @@ type DropdownPickerProps = {
11
11
  }[];
12
12
  onPressedChange: (value: string | null) => void;
13
13
  };
14
- export declare const DropdownPicker: ({ label, className, defaultValue, defaultIcon, onPressedChange, options, }: DropdownPickerProps) => import("react/jsx-runtime").JSX.Element;
14
+ export declare const DropdownPicker: ({ label, className, defaultValue, defaultIcon, onPressedChange, options, }: DropdownPickerProps) => import("react/jsx-runtime.js").JSX.Element;
15
15
  export {};
@@ -1,53 +1,36 @@
1
- import { j as o } from "./node_modules/.pnpm/react@18.2.0/node_modules/react/jsx-runtime.js";
2
- import { ChevronDown as p } from "@blockbite/icons";
3
- import { DropdownMenu as b } from "@wordpress/components";
4
- import { useState as f, useEffect as v } from "@wordpress/element";
5
- import x from "classnames";
6
- import { Icon as n } from "./Icon.js";
7
- const O = ({
8
- label: s,
9
- className: m,
10
- defaultValue: t,
11
- defaultIcon: l = p,
12
- onPressedChange: c,
13
- options: i
14
- }) => {
15
- const [a, r] = f(null);
16
- v(() => {
17
- r(t);
18
- }, [t]);
19
- const u = [
20
- ...i.map((e) => ({
21
- icon: e.icon,
22
- label: e.label,
23
- title: e.label,
24
- value: e.value,
25
- onClick: () => {
26
- r(e.value), c(e.value);
27
- }
28
- })),
29
- {
30
- icon: /* @__PURE__ */ o.jsx(n, { icon: l }),
31
- title: "Reset",
32
- value: "reset",
33
- onClick: () => {
34
- r("reset"), c("reset");
35
- }
36
- }
37
- ];
38
- return /* @__PURE__ */ o.jsx(
39
- b,
40
- {
41
- controls: u,
42
- className: x(
43
- "blockbite-ui__dropdown-picker border-primary border",
44
- m
45
- ),
46
- icon: i.find((e) => e.value === a)?.icon || /* @__PURE__ */ o.jsx(n, { icon: l }),
47
- label: s || "Select"
48
- }
49
- );
50
- };
51
- export {
52
- O as DropdownPicker
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { ChevronDown as ChevronDownIcon } from '@blockbite/icons';
3
+ import { DropdownMenu } from '@wordpress/components';
4
+ import { useEffect, useState } from '@wordpress/element';
5
+ import classNames from 'classnames';
6
+ import { Icon } from './Icon.js';
7
+ export const DropdownPicker = ({ label, className, defaultValue, defaultIcon = ChevronDownIcon, onPressedChange, options, }) => {
8
+ var _a;
9
+ const [currentOption, setCurrentOption] = useState(null);
10
+ useEffect(() => {
11
+ setCurrentOption(defaultValue);
12
+ }, [defaultValue]);
13
+ const allOptions = [
14
+ ...options.map((option) => ({
15
+ icon: option.icon,
16
+ label: option.label,
17
+ title: option.label,
18
+ value: option.value,
19
+ onClick: () => {
20
+ setCurrentOption(option.value);
21
+ onPressedChange(option.value);
22
+ },
23
+ })),
24
+ {
25
+ icon: _jsx(Icon, { icon: defaultIcon }),
26
+ title: 'Reset',
27
+ value: 'reset',
28
+ onClick: () => {
29
+ setCurrentOption('reset');
30
+ onPressedChange('reset');
31
+ },
32
+ },
33
+ ];
34
+ return (_jsx(DropdownMenu, { controls: allOptions, className: classNames('blockbite-ui__dropdown-picker border-primary border', className), icon: ((_a = options.find((option) => option.value === currentOption)) === null || _a === void 0 ? void 0 : _a.icon) || (_jsx(Icon, { icon: defaultIcon })), label: label || 'Select' }));
53
35
  };
36
+ //# sourceMappingURL=DropdownPicker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DropdownPicker.js","sourceRoot":"","sources":["../src/DropdownPicker.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAgBjC,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAC7B,KAAK,EACL,SAAS,EACT,YAAY,EACZ,WAAW,GAAG,eAAe,EAC7B,eAAe,EACf,OAAO,GACa,EAAE,EAAE;;IACxB,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAExE,SAAS,CAAC,GAAG,EAAE;QACb,gBAAgB,CAAC,YAAY,CAAC,CAAC;IACjC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAEnB,MAAM,UAAU,GAAG;QACjB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAC1B,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,OAAO,EAAE,GAAG,EAAE;gBACZ,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC/B,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAChC,CAAC;SACF,CAAC,CAAC;QACH;YACE,IAAI,EAAE,KAAC,IAAI,IAAC,IAAI,EAAE,WAAW,GAAI;YACjC,KAAK,EAAE,OAAO;YACd,KAAK,EAAE,OAAO;YACd,OAAO,EAAE,GAAG,EAAE;gBACZ,gBAAgB,CAAC,OAAO,CAAC,CAAC;gBAC1B,eAAe,CAAC,OAAO,CAAC,CAAC;YAC3B,CAAC;SACF;KACF,CAAC;IAEF,OAAO,CACL,KAAC,YAAY,IACX,QAAQ,EAAE,UAAU,EACpB,SAAS,EAAE,UAAU,CACnB,qDAAqD,EACrD,SAAS,CACV,EACD,IAAI,EACF,CAAA,MAAA,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,aAAa,CAAC,0CAAE,IAAI,KAAI,CAChE,KAAC,IAAI,IAAC,IAAI,EAAE,WAAW,GAAI,CAC5B,EAEH,KAAK,EAAE,KAAK,IAAI,QAAQ,GACxB,CACH,CAAC;AACJ,CAAC,CAAC"}
@@ -1,18 +1,17 @@
1
- import { j as s } from "./node_modules/.pnpm/react@18.2.0/node_modules/react/jsx-runtime.js";
2
- function n({
3
- icon: t,
4
- title: m,
5
- description: a,
6
- children: e = null,
7
- ...l
8
- }) {
9
- return /* @__PURE__ */ s.jsx("div", { ...l, children: /* @__PURE__ */ s.jsx("div", { className: "flex h-full w-full flex-col items-center justify-center text-center !font-sans", children: /* @__PURE__ */ s.jsxs("div", { className: "max-w-sm", children: [
10
- t && /* @__PURE__ */ s.jsx("div", { className: "mx-auto !text-gray-400", children: t }),
11
- /* @__PURE__ */ s.jsx("h3", { className: "text-gray-medium mt-2 !font-sans text-sm font-medium", children: m }),
12
- /* @__PURE__ */ s.jsx("p", { className: "mt-1 !font-sans text-sm !text-gray-500", children: a }),
13
- e && /* @__PURE__ */ s.jsx("div", { className: "mt-4", children: e })
14
- ] }) }) });
15
- }
16
- export {
17
- n as EmptyState
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;
18
11
  };
12
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
+ export function EmptyState(_a) {
14
+ var { icon, title, description, children = null } = _a, rest = __rest(_a, ["icon", "title", "description", "children"]);
15
+ return (_jsx("div", Object.assign({}, rest, { children: _jsx("div", { className: "flex h-full w-full flex-col items-center justify-center text-center !font-sans", children: _jsxs("div", { className: "max-w-sm", children: [icon && _jsx("div", { className: "mx-auto !text-gray-400", children: icon }), _jsx("h3", { className: "text-gray-medium mt-2 !font-sans text-sm font-medium", children: title }), _jsx("p", { className: "mt-1 !font-sans text-sm !text-gray-500", children: description }), children && _jsx("div", { className: "mt-4", children: children })] }) }) })));
16
+ }
17
+ //# sourceMappingURL=EmptyState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmptyState.js","sourceRoot":"","sources":["../src/EmptyState.tsx"],"names":[],"mappings":";;;;;;;;;;;;AAQA,MAAM,UAAU,UAAU,CAAC,EAMnB;QANmB,EACzB,IAAI,EACJ,KAAK,EACL,WAAW,EACX,QAAQ,GAAG,IAAI,OAET,EADH,IAAI,cALkB,4CAM1B,CADQ;IAEP,OAAO,CACL,8BAAS,IAAI,cACX,cAAK,SAAS,EAAC,gFAAgF,YAC7F,eAAK,SAAS,EAAC,UAAU,aACtB,IAAI,IAAI,cAAK,SAAS,EAAC,wBAAwB,YAAE,IAAI,GAAO,EAC7D,aAAI,SAAS,EAAC,sDAAsD,YACjE,KAAK,GACH,EACL,YAAG,SAAS,EAAC,wCAAwC,YAClD,WAAW,GACV,EACH,QAAQ,IAAI,cAAK,SAAS,EAAC,MAAM,YAAE,QAAQ,GAAO,IAC/C,GACF,IACF,CACP,CAAC;AACJ,CAAC"}
@@ -1,43 +1,32 @@
1
- import { j as o } from "./node_modules/.pnpm/react@18.2.0/node_modules/react/jsx-runtime.js";
2
- import { useRef as x, useState as s, useEffect as g } from "@wordpress/element";
3
- function w({
4
- children: c
5
- }) {
6
- const i = x(null), [r, d] = s({ x: 100, y: 100 }), [l, a] = s(!1), [n, f] = s({ x: 0, y: 0 });
7
- g(() => {
8
- const e = (u) => {
9
- l && d({
10
- x: u.clientX - n.x,
11
- y: u.clientY - n.y
12
- });
13
- }, t = () => a(!1);
14
- return window.addEventListener("mousemove", e), window.addEventListener("mouseup", t), () => {
15
- window.removeEventListener("mousemove", e), window.removeEventListener("mouseup", t);
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useEffect, useRef, useState } from '@wordpress/element';
3
+ export function FloatingPanel({ children, }) {
4
+ const panelRef = useRef(null);
5
+ const [position, setPosition] = useState({ x: 100, y: 100 });
6
+ const [dragging, setDragging] = useState(false);
7
+ const [offset, setOffset] = useState({ x: 0, y: 0 });
8
+ useEffect(() => {
9
+ const handleMouseMove = (e) => {
10
+ if (dragging) {
11
+ setPosition({
12
+ x: e.clientX - offset.x,
13
+ y: e.clientY - offset.y,
14
+ });
15
+ }
16
+ };
17
+ const handleMouseUp = () => setDragging(false);
18
+ window.addEventListener('mousemove', handleMouseMove);
19
+ window.addEventListener('mouseup', handleMouseUp);
20
+ return () => {
21
+ window.removeEventListener('mousemove', handleMouseMove);
22
+ window.removeEventListener('mouseup', handleMouseUp);
23
+ };
24
+ }, [dragging, offset]);
25
+ const startDragging = (e) => {
26
+ const rect = panelRef.current.getBoundingClientRect();
27
+ setOffset({ x: e.clientX - rect.left, y: e.clientY - rect.top });
28
+ setDragging(true);
16
29
  };
17
- }, [l, n]);
18
- const m = (e) => {
19
- const t = i.current.getBoundingClientRect();
20
- f({ x: e.clientX - t.left, y: e.clientY - t.top }), a(!0);
21
- };
22
- return /* @__PURE__ */ o.jsx("div", { className: "bb_", children: /* @__PURE__ */ o.jsxs(
23
- "div",
24
- {
25
- ref: i,
26
- className: "fixed bg-white shadow-xl rounded-2xl p-4 w-[400px] h-[550px] z-[9999]",
27
- style: { left: r.x, top: r.y },
28
- children: [
29
- c,
30
- /* @__PURE__ */ o.jsx(
31
- "div",
32
- {
33
- className: "absolute top-1 right-1 cursor-move w-5 h-5 bg-gray-300 rounded",
34
- onMouseDown: m
35
- }
36
- )
37
- ]
38
- }
39
- ) });
30
+ return (_jsx("div", { className: "bb_", children: _jsxs("div", { ref: panelRef, className: "fixed bg-white shadow-xl rounded-2xl p-4 w-[400px] h-[550px] z-[9999]", style: { left: position.x, top: position.y }, children: [children, _jsx("div", { className: "absolute top-1 right-1 cursor-move w-5 h-5 bg-gray-300 rounded", onMouseDown: startDragging })] }) }));
40
31
  }
41
- export {
42
- w as FloatingPanel
43
- };
32
+ //# sourceMappingURL=FloatingPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FloatingPanel.js","sourceRoot":"","sources":["../src/FloatingPanel.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAMjE,MAAM,UAAU,aAAa,CAAC,EAC5B,QAAQ,GAGT;IACC,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAC9B,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IAC7D,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAErD,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,eAAe,GAAG,CAAC,CAAC,EAAE,EAAE;YAC5B,IAAI,QAAQ,EAAE,CAAC;gBACb,WAAW,CAAC;oBACV,CAAC,EAAE,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC;oBACvB,CAAC,EAAE,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC;iBACxB,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAE/C,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;QACtD,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QAElD,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,mBAAmB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;YACzD,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACvD,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IAEvB,MAAM,aAAa,GAAG,CAAC,CAAC,EAAE,EAAE;QAC1B,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;QACtD,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QACjE,WAAW,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC,CAAC;IAEF,OAAO,CACL,cAAK,SAAS,EAAC,KAAK,YAClB,eACE,GAAG,EAAE,QAAQ,EACb,SAAS,EAAC,uEAAuE,EACjF,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC,EAAE,aAE3C,QAAQ,EACT,cACE,SAAS,EAAC,gEAAgE,EAC1E,WAAW,EAAE,aAAa,GACrB,IACH,GACF,CACP,CAAC;AACJ,CAAC"}
@@ -1,41 +1,31 @@
1
- import { j as i } from "./node_modules/.pnpm/react@18.2.0/node_modules/react/jsx-runtime.js";
2
- import { FocalPointPicker as p } from "@wordpress/components";
3
- import { useState as x, useEffect as s } from "@wordpress/element";
4
- import { Wrap as m } from "./Wrap.js";
5
- const d = ({
6
- defaultValue: e,
7
- onValueChange: a,
8
- url: c
9
- }) => {
10
- const [t, r] = x({
11
- x: 0.5,
12
- y: 0.5
13
- });
14
- return s(() => {
15
- a(
16
- `[${(t.x * 100).toFixed(2)}%_${(t.y * 100).toFixed(
17
- 2
18
- )}%]`
19
- );
20
- }, [t]), s(() => {
21
- if (e.includes("%")) {
22
- const [o, n] = e.replace("[", "").replace("%]", "").split("_").map((l) => parseFloat(l) / 100);
23
- r({
24
- x: o,
25
- y: n
26
- });
27
- }
28
- }, [e]), /* @__PURE__ */ i.jsx(m, { className: "relative flex flex-col", children: /* @__PURE__ */ i.jsx(
29
- p,
30
- {
31
- url: c,
32
- value: t,
33
- onDrag: (o) => r(o),
34
- onChange: (o) => r(o)
35
- }
36
- ) });
37
- };
38
- export {
39
- d as FocalPointControl,
40
- d as default
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { FocalPointPicker } from '@wordpress/components';
3
+ import { useEffect, useState } from '@wordpress/element';
4
+ import { Wrap } from './Wrap.js';
5
+ export const FocalPointControl = ({ defaultValue, onValueChange, url, }) => {
6
+ const [focalPoint, setFocalPoint] = useState({
7
+ x: 0.5,
8
+ y: 0.5,
9
+ });
10
+ useEffect(() => {
11
+ onValueChange(`[${(focalPoint.x * 100).toFixed(2)}%_${(focalPoint.y * 100).toFixed(2)}%]`);
12
+ // eslint-disable-next-line react-hooks/exhaustive-deps
13
+ }, [focalPoint]);
14
+ useEffect(() => {
15
+ // default value is in the format of [x%_y%] parse to get the x and y values
16
+ if (defaultValue.includes('%')) {
17
+ const [x, y] = defaultValue
18
+ .replace('[', '')
19
+ .replace('%]', '')
20
+ .split('_')
21
+ .map((value) => parseFloat(value) / 100);
22
+ setFocalPoint({
23
+ x,
24
+ y,
25
+ });
26
+ }
27
+ }, [defaultValue]);
28
+ return (_jsx(Wrap, { className: "relative flex flex-col", children: _jsx(FocalPointPicker, { url: url, value: focalPoint, onDrag: (value) => setFocalPoint(value), onChange: (value) => setFocalPoint(value) }) }));
41
29
  };
30
+ export default FocalPointControl;
31
+ //# sourceMappingURL=FocalPointControl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FocalPointControl.js","sourceRoot":"","sources":["../src/FocalPointControl.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAQjC,MAAM,CAAC,MAAM,iBAAiB,GAAqC,CAAC,EAClE,YAAY,EACZ,aAAa,EACb,GAAG,GACJ,EAAE,EAAE;IACH,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC;QAC3C,CAAC,EAAE,GAAG;QACN,CAAC,EAAE,GAAG;KACP,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,aAAa,CACX,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CAClE,CAAC,CACF,IAAI,CACN,CAAC;QACF,uDAAuD;IACzD,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjB,SAAS,CAAC,GAAG,EAAE;QACb,4EAA4E;QAC5E,IAAI,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/B,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,YAAY;iBACxB,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;iBAChB,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;iBACjB,KAAK,CAAC,GAAG,CAAC;iBACV,GAAG,CAAC,CAAC,KAAa,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;YAEnD,aAAa,CAAC;gBACZ,CAAC;gBACD,CAAC;aACF,CAAC,CAAC;QACL,CAAC;IACH,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAEnB,OAAO,CACL,KAAC,IAAI,IAAC,SAAS,EAAC,wBAAwB,YACtC,KAAC,gBAAgB,IACf,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,EACvC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,GACzC,GACG,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
package/dist/Icon.d.ts CHANGED
@@ -2,5 +2,5 @@ type IconProps = {
2
2
  icon: React.FC<React.SVGProps<SVGSVGElement>> | null;
3
3
  className?: string;
4
4
  };
5
- export declare const Icon: ({ icon: IconComponent, className }: IconProps) => import("react/jsx-runtime").JSX.Element;
5
+ export declare const Icon: ({ icon: IconComponent, className }: IconProps) => import("react/jsx-runtime.js").JSX.Element;
6
6
  export {};
package/dist/Icon.js CHANGED
@@ -1,9 +1,8 @@
1
- import { j as s } from "./node_modules/.pnpm/react@18.2.0/node_modules/react/jsx-runtime.js";
2
- import { Wrap as o } from "./Wrap.js";
3
- const e = ({ icon: r, className: i = "" }) => r ? /* @__PURE__ */ s.jsxs(o, { className: "blockbite--icon", children: [
4
- /* @__PURE__ */ s.jsx(r, { className: i }),
5
- " "
6
- ] }) : null;
7
- export {
8
- e as Icon
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Wrap } from './Wrap.js';
3
+ export const Icon = ({ icon: IconComponent, className = '' }) => {
4
+ if (!IconComponent)
5
+ return null;
6
+ return (_jsxs(Wrap, { className: `blockbite--icon`, children: [_jsx(IconComponent, { className: className }), ' '] }));
9
7
  };
8
+ //# sourceMappingURL=Icon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Icon.js","sourceRoot":"","sources":["../src/Icon.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAOjC,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,GAAG,EAAE,EAAa,EAAE,EAAE;IACzE,IAAI,CAAC,aAAa;QAAE,OAAO,IAAI,CAAC;IAEhC,OAAO,CACL,MAAC,IAAI,IAAC,SAAS,EAAE,iBAAiB,aAChC,KAAC,aAAa,IAAC,SAAS,EAAE,SAAS,GAAI,EAAC,GAAG,IAEtC,CACR,CAAC;AACJ,CAAC,CAAC"}
@@ -1 +1 @@
1
- export declare function LinkPicker(props: any): import("react/jsx-runtime").JSX.Element;
1
+ export declare function LinkPicker(props: any): import("react/jsx-runtime.js").JSX.Element;
@@ -1,67 +1,50 @@
1
- import { j as e } from "./node_modules/.pnpm/react@18.2.0/node_modules/react/jsx-runtime.js";
2
- import h from "@wordpress/api-fetch";
3
- import { TextControl as u } from "@wordpress/components";
4
- import { useState as c, useEffect as a } from "@wordpress/element";
5
- import { __ as p } from "@wordpress/i18n";
6
- import { Wrap as k } from "./Wrap.js";
7
- function g(r) {
8
- const [t, s] = c(""), [i, n] = c([]), [o, b] = c({
9
- url: "",
10
- title: ""
11
- });
12
- return a(() => {
13
- t !== "" && (n(null), h({
14
- path: `/blockbite/v1/block-helpers/get-links/${t}`
15
- }).then(
16
- (l) => {
17
- l?.length ? n([...l]) : n([]);
18
- }
19
- ));
20
- }, [t]), a(() => {
21
- o.url !== "" && r.parentCallback(o);
22
- }, [o]), /* @__PURE__ */ e.jsxs(k, { className: "blockbite--editor-linkwrap", children: [
23
- /* @__PURE__ */ e.jsx(
24
- u,
25
- {
26
- label: p("Search link", "blockbitelinks"),
27
- value: t,
28
- placeholder: "Example: About",
29
- onChange: (l) => s(l),
30
- help: p("Type a post, page, title", "blockbitelinks")
31
- }
32
- ),
33
- t ? /* @__PURE__ */ e.jsx("div", { className: "blockbite--editor-linklist", children: /* @__PURE__ */ e.jsx(
34
- m,
35
- {
36
- links: i,
37
- onActiveLink: (l) => [
38
- b({ ...l }),
39
- s("")
40
- ]
41
- }
42
- ) }) : null
43
- ] });
44
- }
45
- function m({ links: r, onActiveLink: t }) {
46
- const s = [];
47
- return r === null ? /* @__PURE__ */ e.jsx("p", { children: "Loading..." }) : r.length === 0 ? /* @__PURE__ */ e.jsx("p", { children: "No Results" }) : (r.forEach((i) => {
48
- s.push(
49
- // add key
50
- /* @__PURE__ */ e.jsx(k, { children: /* @__PURE__ */ e.jsxs(
51
- "span",
52
- {
53
- className: "blockbite--editor-link",
54
- onClick: () => t(i),
55
- children: [
56
- /* @__PURE__ */ e.jsx("span", { children: i.title }),
57
- /* @__PURE__ */ e.jsx("span", { className: "blockbite--preview-link", children: i.url }),
58
- /* @__PURE__ */ e.jsx("span", { className: "blockbite--preview-link", children: i.post_type })
59
- ]
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import apiFetch from '@wordpress/api-fetch';
3
+ import { TextControl } from '@wordpress/components';
4
+ import { useEffect, useState } from '@wordpress/element';
5
+ import { __ } from '@wordpress/i18n';
6
+ import { Wrap } from './Wrap.js';
7
+ export function LinkPicker(props) {
8
+ const [activeKeyword, setActiveKeyword] = useState('');
9
+ const [links, setLinks] = useState([]);
10
+ const [activeLink, setActiveLink] = useState({
11
+ url: '',
12
+ title: '',
13
+ });
14
+ useEffect(() => {
15
+ if (activeKeyword === '')
16
+ return;
17
+ setLinks(null);
18
+ apiFetch({
19
+ path: `/blockbite/v1/block-helpers/get-links/${activeKeyword}`,
20
+ }).then((fetchedLinks) => {
21
+ if (fetchedLinks === null || fetchedLinks === void 0 ? void 0 : fetchedLinks.length) {
22
+ setLinks([...fetchedLinks]);
23
+ }
24
+ else {
25
+ setLinks([]);
26
+ }
27
+ });
28
+ }, [activeKeyword]);
29
+ useEffect(() => {
30
+ if (activeLink.url !== '') {
31
+ props.parentCallback(activeLink);
60
32
  }
61
- ) }, i.id)
62
- );
63
- }), s);
33
+ // eslint-disable-next-line react-hooks/exhaustive-deps
34
+ }, [activeLink]);
35
+ return (_jsxs(Wrap, { className: "blockbite--editor-linkwrap", children: [_jsx(TextControl, { label: __('Search link', 'blockbitelinks'), value: activeKeyword, placeholder: "Example: About", onChange: (value) => setActiveKeyword(value), help: __('Type a post, page, title', 'blockbitelinks') }), activeKeyword ? (_jsx("div", { className: "blockbite--editor-linklist", children: _jsx(LinkList, { links: links, onActiveLink: (link) => [
36
+ setActiveLink(Object.assign({}, link)),
37
+ setActiveKeyword(''),
38
+ ] }) })) : null] }));
39
+ }
40
+ function LinkList({ links, onActiveLink }) {
41
+ if (links === null) {
42
+ return _jsx("p", { children: "Loading..." });
43
+ }
44
+ else if (links.length === 0) {
45
+ return _jsx("p", { children: "No Results" });
46
+ }
47
+ const list = links.map((link) => (_jsx(Wrap, { children: _jsxs("span", { className: "blockbite--editor-link", onClick: () => onActiveLink(link), children: [_jsx("span", { children: link.title }), _jsx("span", { className: "blockbite--preview-link", children: link.url }), _jsx("span", { className: "blockbite--preview-link", children: link.post_type })] }) }, link.id)));
48
+ return _jsx(_Fragment, { children: list }); // ✅ Wrapped
64
49
  }
65
- export {
66
- g as LinkPicker
67
- };
50
+ //# sourceMappingURL=LinkPicker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LinkPicker.js","sourceRoot":"","sources":["../src/LinkPicker.tsx"],"names":[],"mappings":"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"}