@cerberus-design/react 0.6.1-next-2d28489 → 0.6.1-next-fa4208e

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 (92) hide show
  1. package/build/legacy/_tsup-dts-rollup.d.ts +119 -9
  2. package/build/legacy/chunk-2F5TB2EV.js +25 -0
  3. package/build/legacy/chunk-2F5TB2EV.js.map +1 -0
  4. package/build/legacy/{chunk-7ISHDUYN.js → chunk-5GEC53G7.js} +4 -4
  5. package/build/legacy/{chunk-JJGZRBIR.js → chunk-CU7HXAKM.js} +4 -4
  6. package/build/legacy/chunk-D3ZXZA3U.js +155 -0
  7. package/build/legacy/chunk-D3ZXZA3U.js.map +1 -0
  8. package/build/legacy/{chunk-SNSBODYR.js → chunk-DGPLSWFJ.js} +55 -71
  9. package/build/legacy/chunk-DGPLSWFJ.js.map +1 -0
  10. package/build/legacy/chunk-G3JEWPLM.js +29 -0
  11. package/build/legacy/chunk-G3JEWPLM.js.map +1 -0
  12. package/build/legacy/chunk-OGSAAB6K.js +12 -0
  13. package/build/legacy/chunk-OGSAAB6K.js.map +1 -0
  14. package/build/legacy/chunk-TPFNVGYA.js +21 -0
  15. package/build/legacy/chunk-TPFNVGYA.js.map +1 -0
  16. package/build/legacy/chunk-TZNYJ3G7.js +25 -0
  17. package/build/legacy/chunk-TZNYJ3G7.js.map +1 -0
  18. package/build/legacy/chunk-UPODPCRD.js +12 -0
  19. package/build/legacy/chunk-UPODPCRD.js.map +1 -0
  20. package/build/legacy/components/Input.js +2 -2
  21. package/build/legacy/components/Label.js +2 -2
  22. package/build/legacy/components/Modal.js +7 -0
  23. package/build/legacy/components/Modal.js.map +1 -0
  24. package/build/legacy/components/ModalDescription.js +7 -0
  25. package/build/legacy/components/ModalDescription.js.map +1 -0
  26. package/build/legacy/components/ModalHeader.js +7 -0
  27. package/build/legacy/components/ModalHeader.js.map +1 -0
  28. package/build/legacy/components/ModalHeading.js +7 -0
  29. package/build/legacy/components/ModalHeading.js.map +1 -0
  30. package/build/legacy/components/ModalIcon.js +7 -0
  31. package/build/legacy/components/ModalIcon.js.map +1 -0
  32. package/build/legacy/context/confirm-modal.js +7 -3
  33. package/build/legacy/context/prompt-modal.js +10 -7
  34. package/build/legacy/hooks/useModal.js +8 -0
  35. package/build/legacy/hooks/useModal.js.map +1 -0
  36. package/build/legacy/index.js +59 -39
  37. package/build/modern/_tsup-dts-rollup.d.ts +119 -9
  38. package/build/modern/chunk-2F5TB2EV.js +25 -0
  39. package/build/modern/chunk-2F5TB2EV.js.map +1 -0
  40. package/build/modern/{chunk-7ISHDUYN.js → chunk-5GEC53G7.js} +4 -4
  41. package/build/modern/chunk-C5HLLGME.js +23 -0
  42. package/build/modern/chunk-C5HLLGME.js.map +1 -0
  43. package/build/modern/{chunk-JJGZRBIR.js → chunk-CU7HXAKM.js} +4 -4
  44. package/build/modern/chunk-G3JEWPLM.js +29 -0
  45. package/build/modern/chunk-G3JEWPLM.js.map +1 -0
  46. package/build/modern/chunk-OGSAAB6K.js +12 -0
  47. package/build/modern/chunk-OGSAAB6K.js.map +1 -0
  48. package/build/modern/chunk-TAVCJ54A.js +154 -0
  49. package/build/modern/chunk-TAVCJ54A.js.map +1 -0
  50. package/build/modern/chunk-TPFNVGYA.js +21 -0
  51. package/build/modern/chunk-TPFNVGYA.js.map +1 -0
  52. package/build/modern/chunk-UPODPCRD.js +12 -0
  53. package/build/modern/chunk-UPODPCRD.js.map +1 -0
  54. package/build/modern/{chunk-FZ75OJLJ.js → chunk-WWG5QWXY.js} +54 -69
  55. package/build/modern/chunk-WWG5QWXY.js.map +1 -0
  56. package/build/modern/components/Input.js +2 -2
  57. package/build/modern/components/Label.js +2 -2
  58. package/build/modern/components/Modal.js +7 -0
  59. package/build/modern/components/Modal.js.map +1 -0
  60. package/build/modern/components/ModalDescription.js +7 -0
  61. package/build/modern/components/ModalDescription.js.map +1 -0
  62. package/build/modern/components/ModalHeader.js +7 -0
  63. package/build/modern/components/ModalHeader.js.map +1 -0
  64. package/build/modern/components/ModalHeading.js +7 -0
  65. package/build/modern/components/ModalHeading.js.map +1 -0
  66. package/build/modern/components/ModalIcon.js +7 -0
  67. package/build/modern/components/ModalIcon.js.map +1 -0
  68. package/build/modern/context/confirm-modal.js +7 -3
  69. package/build/modern/context/prompt-modal.js +10 -7
  70. package/build/modern/hooks/useModal.js +8 -0
  71. package/build/modern/hooks/useModal.js.map +1 -0
  72. package/build/modern/index.js +59 -39
  73. package/package.json +2 -2
  74. package/src/components/Modal.tsx +37 -0
  75. package/src/components/ModalDescription.tsx +23 -0
  76. package/src/components/ModalHeader.tsx +37 -0
  77. package/src/components/ModalHeading.tsx +23 -0
  78. package/src/components/ModalIcon.tsx +28 -0
  79. package/src/context/confirm-modal.tsx +50 -70
  80. package/src/context/prompt-modal.tsx +41 -63
  81. package/src/hooks/useModal.ts +34 -0
  82. package/src/index.ts +6 -0
  83. package/build/legacy/chunk-BLJ4SRAF.js +0 -167
  84. package/build/legacy/chunk-BLJ4SRAF.js.map +0 -1
  85. package/build/legacy/chunk-SNSBODYR.js.map +0 -1
  86. package/build/modern/chunk-4GURONLE.js +0 -165
  87. package/build/modern/chunk-4GURONLE.js.map +0 -1
  88. package/build/modern/chunk-FZ75OJLJ.js.map +0 -1
  89. /package/build/legacy/{chunk-7ISHDUYN.js.map → chunk-5GEC53G7.js.map} +0 -0
  90. /package/build/legacy/{chunk-JJGZRBIR.js.map → chunk-CU7HXAKM.js.map} +0 -0
  91. /package/build/modern/{chunk-7ISHDUYN.js.map → chunk-5GEC53G7.js.map} +0 -0
  92. /package/build/modern/{chunk-JJGZRBIR.js.map → chunk-CU7HXAKM.js.map} +0 -0
@@ -1,9 +1,9 @@
1
- import {
2
- useFieldContext
3
- } from "./chunk-ZAU4JVLL.js";
4
1
  import {
5
2
  Show
6
3
  } from "./chunk-4O4QFF4S.js";
4
+ import {
5
+ useFieldContext
6
+ } from "./chunk-ZAU4JVLL.js";
7
7
 
8
8
  // src/components/Label.tsx
9
9
  import { label } from "@cerberus/styled-system/recipes";
@@ -46,4 +46,4 @@ function Label(props) {
46
46
  export {
47
47
  Label
48
48
  };
49
- //# sourceMappingURL=chunk-JJGZRBIR.js.map
49
+ //# sourceMappingURL=chunk-CU7HXAKM.js.map
@@ -0,0 +1,29 @@
1
+ // src/components/ModalIcon.tsx
2
+ import { cx } from "@cerberus-design/styled-system/css";
3
+ import { circle } from "@cerberus-design/styled-system/patterns";
4
+ import {
5
+ modalIcon
6
+ } from "@cerberus-design/styled-system/recipes";
7
+ import { jsx } from "react/jsx-runtime";
8
+ function ModalIcon(props) {
9
+ const { palette, ...nativeProps } = props;
10
+ return /* @__PURE__ */ jsx(
11
+ "div",
12
+ {
13
+ ...nativeProps,
14
+ className: cx(
15
+ nativeProps.className,
16
+ modalIcon({
17
+ palette
18
+ }),
19
+ circle()
20
+ ),
21
+ children: props.children
22
+ }
23
+ );
24
+ }
25
+
26
+ export {
27
+ ModalIcon
28
+ };
29
+ //# sourceMappingURL=chunk-G3JEWPLM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/components/ModalIcon.tsx"],"sourcesContent":["import { cx } from '@cerberus-design/styled-system/css'\nimport { circle } from '@cerberus-design/styled-system/patterns'\nimport {\n modalIcon,\n type ModalIconVariantProps,\n} from '@cerberus-design/styled-system/recipes'\nimport type { HTMLAttributes, PropsWithChildren } from 'react'\n\nexport type ModalIconBaseProps = HTMLAttributes<HTMLDivElement>\nexport type ModalIconProps = ModalIconBaseProps & ModalIconVariantProps\n\nexport function ModalIcon(props: PropsWithChildren<ModalIconProps>) {\n const { palette, ...nativeProps } = props\n return (\n <div\n {...nativeProps}\n className={cx(\n nativeProps.className,\n modalIcon({\n palette,\n }),\n circle(),\n )}\n >\n {props.children}\n </div>\n )\n}\n"],"mappings":";AAAA,SAAS,UAAU;AACnB,SAAS,cAAc;AACvB;AAAA,EACE;AAAA,OAEK;AASH;AAHG,SAAS,UAAU,OAA0C;AAClE,QAAM,EAAE,SAAS,GAAG,YAAY,IAAI;AACpC,SACE;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ,WAAW;AAAA,QACT,YAAY;AAAA,QACZ,UAAU;AAAA,UACR;AAAA,QACF,CAAC;AAAA,QACD,OAAO;AAAA,MACT;AAAA,MAEC,gBAAM;AAAA;AAAA,EACT;AAEJ;","names":[]}
@@ -0,0 +1,12 @@
1
+ // src/components/ModalHeading.tsx
2
+ import { cx } from "@cerberus-design/styled-system/css";
3
+ import { modal } from "@cerberus-design/styled-system/recipes";
4
+ import { jsx } from "react/jsx-runtime";
5
+ function ModalHeading(props) {
6
+ return /* @__PURE__ */ jsx("p", { ...props, className: cx(props.className, modal().heading) });
7
+ }
8
+
9
+ export {
10
+ ModalHeading
11
+ };
12
+ //# sourceMappingURL=chunk-OGSAAB6K.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/components/ModalHeading.tsx"],"sourcesContent":["import { cx } from '@cerberus-design/styled-system/css'\nimport { modal } from '@cerberus-design/styled-system/recipes'\nimport type { HTMLAttributes } from 'react'\n\n/**\n * This module contains the ModalHeading component for a customizable modal.\n * @module\n */\n\nexport type ModalHeadingProps = HTMLAttributes<HTMLParagraphElement>\n\n/**\n * The ModalHeading component is a heading element for a customizable modal.\n * @example\n * ```tsx\n * <Modal>\n * <ModalHeading>Modal Heading</ModalHeading>\n * </Modal>\n * ```\n */\nexport function ModalHeading(props: ModalHeadingProps) {\n return <p {...props} className={cx(props.className, modal().heading)} />\n}\n"],"mappings":";AAAA,SAAS,UAAU;AACnB,SAAS,aAAa;AAoBb;AADF,SAAS,aAAa,OAA0B;AACrD,SAAO,oBAAC,OAAG,GAAG,OAAO,WAAW,GAAG,MAAM,WAAW,MAAM,EAAE,OAAO,GAAG;AACxE;","names":[]}
@@ -0,0 +1,154 @@
1
+ import {
2
+ Portal
3
+ } from "./chunk-4CAT3FHV.js";
4
+ import {
5
+ Modal
6
+ } from "./chunk-TPFNVGYA.js";
7
+ import {
8
+ ModalDescription
9
+ } from "./chunk-UPODPCRD.js";
10
+ import {
11
+ ModalHeader
12
+ } from "./chunk-2F5TB2EV.js";
13
+ import {
14
+ ModalHeading
15
+ } from "./chunk-OGSAAB6K.js";
16
+ import {
17
+ ModalIcon
18
+ } from "./chunk-G3JEWPLM.js";
19
+ import {
20
+ Button
21
+ } from "./chunk-2ATICEW3.js";
22
+ import {
23
+ Show
24
+ } from "./chunk-4O4QFF4S.js";
25
+ import {
26
+ trapFocus
27
+ } from "./chunk-JIZQFTW6.js";
28
+ import {
29
+ $cerberusIcons
30
+ } from "./chunk-6TXQZ3PB.js";
31
+ import {
32
+ useModal
33
+ } from "./chunk-C5HLLGME.js";
34
+
35
+ // src/context/confirm-modal.tsx
36
+ import {
37
+ createContext,
38
+ useCallback,
39
+ useContext,
40
+ useMemo,
41
+ useRef,
42
+ useState
43
+ } from "react";
44
+ import { css } from "@cerberus-design/styled-system/css";
45
+ import { hstack } from "@cerberus-design/styled-system/patterns";
46
+ import { jsx, jsxs } from "react/jsx-runtime";
47
+ var ConfirmModalContext = createContext(null);
48
+ function ConfirmModal(props) {
49
+ const { modalRef, show, close } = useModal();
50
+ const resolveRef = useRef(null);
51
+ const [content, setContent] = useState(null);
52
+ const focusTrap = trapFocus(modalRef);
53
+ const ConfirmIcon = $cerberusIcons.confirmModal;
54
+ const palette = useMemo(
55
+ () => content?.kind === "destructive" ? "danger" : "action",
56
+ [content]
57
+ );
58
+ const handleChoice = useCallback(
59
+ (e) => {
60
+ const target = e.currentTarget;
61
+ if (target.value === "true") {
62
+ resolveRef.current?.(true);
63
+ }
64
+ resolveRef.current?.(false);
65
+ close();
66
+ },
67
+ [close]
68
+ );
69
+ const handleShow = useCallback(
70
+ (options) => {
71
+ return new Promise((resolve) => {
72
+ setContent({ ...options, kind: options.kind || "non-destructive" });
73
+ show();
74
+ resolveRef.current = resolve;
75
+ });
76
+ },
77
+ [show]
78
+ );
79
+ const value = useMemo(
80
+ () => ({
81
+ show: handleShow
82
+ }),
83
+ [handleShow]
84
+ );
85
+ return /* @__PURE__ */ jsxs(ConfirmModalContext.Provider, { value, children: [
86
+ props.children,
87
+ /* @__PURE__ */ jsx(Portal, { children: /* @__PURE__ */ jsxs(Modal, { onKeyDown: focusTrap, ref: modalRef, children: [
88
+ /* @__PURE__ */ jsxs(ModalHeader, { children: [
89
+ /* @__PURE__ */ jsx(
90
+ Show,
91
+ {
92
+ when: palette === "danger",
93
+ fallback: /* @__PURE__ */ jsx(ModalIcon, { palette: "action", children: /* @__PURE__ */ jsx(ConfirmIcon, { size: 24 }) }),
94
+ children: /* @__PURE__ */ jsx(ModalIcon, { palette: "danger", children: /* @__PURE__ */ jsx(ConfirmIcon, { size: 24 }) })
95
+ }
96
+ ),
97
+ /* @__PURE__ */ jsx(ModalHeading, { children: content?.heading }),
98
+ /* @__PURE__ */ jsx(ModalDescription, { children: content?.description })
99
+ ] }),
100
+ /* @__PURE__ */ jsxs(
101
+ "div",
102
+ {
103
+ className: hstack({
104
+ gap: "4"
105
+ }),
106
+ children: [
107
+ /* @__PURE__ */ jsx(
108
+ Button,
109
+ {
110
+ autoFocus: true,
111
+ className: css({
112
+ w: "1/2"
113
+ }),
114
+ name: "confirm",
115
+ onClick: handleChoice,
116
+ palette,
117
+ value: "true",
118
+ children: content?.actionText
119
+ }
120
+ ),
121
+ /* @__PURE__ */ jsx(
122
+ Button,
123
+ {
124
+ className: css({
125
+ w: "1/2"
126
+ }),
127
+ name: "cancel",
128
+ onClick: handleChoice,
129
+ usage: "outlined",
130
+ value: "false",
131
+ children: content?.cancelText
132
+ }
133
+ )
134
+ ]
135
+ }
136
+ )
137
+ ] }) })
138
+ ] });
139
+ }
140
+ function useConfirmModal() {
141
+ const context = useContext(ConfirmModalContext);
142
+ if (context === null) {
143
+ throw new Error(
144
+ "useConfirmModal must be used within a ConfirmModal Provider"
145
+ );
146
+ }
147
+ return context;
148
+ }
149
+
150
+ export {
151
+ ConfirmModal,
152
+ useConfirmModal
153
+ };
154
+ //# sourceMappingURL=chunk-TAVCJ54A.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/context/confirm-modal.tsx"],"sourcesContent":["'use client'\n\nimport {\n createContext,\n useCallback,\n useContext,\n useMemo,\n useRef,\n useState,\n type MouseEvent,\n type PropsWithChildren,\n} from 'react'\nimport { Portal } from '../components/Portal'\nimport { Button } from '../components/Button'\nimport { css } from '@cerberus-design/styled-system/css'\nimport { hstack } from '@cerberus-design/styled-system/patterns'\nimport { $cerberusIcons } from '../config/defineIcons'\nimport { trapFocus } from '../aria-helpers/trap-focus.aria'\nimport { ModalIcon } from '../components/ModalIcon'\nimport { Show } from '../components/Show'\nimport { Modal } from '../components/Modal'\nimport { useModal } from '../hooks/useModal'\nimport { ModalHeader } from '../components/ModalHeader'\nimport { ModalHeading } from '../components/ModalHeading'\nimport { ModalDescription } from '../components/ModalDescription'\n\n/**\n * This module provides a context and hook for the confirm modal.\n * @module\n */\n\nexport interface ShowConfirmModalOptions {\n kind?: 'destructive' | 'non-destructive'\n heading: string\n description?: string\n actionText: string\n cancelText: string\n}\nexport type ShowResult =\n | ((value: boolean | PromiseLike<boolean>) => void)\n | null\n\nexport interface ConfirmModalValue {\n show: (options: ShowConfirmModalOptions) => Promise<boolean>\n}\n\nconst ConfirmModalContext = createContext<ConfirmModalValue | null>(null)\n\nexport interface ConfirmModalProviderProps {}\n\n/**\n * Provides a confirm modal to the app.\n * @example\n * ```tsx\n * // Wrap the Provider around the root of the feature.\n * <ConfirmModal>\n * <SomeFeatureSection />\n * </ConfirmModal>\n *\n * // Use the hook to show the confirm modal.\n * const confirm = useConfirmModal()\n *\n * const handleClick = useCallback(async () => {\n * const userConsent = await confirm.show({\n * heading: 'Add new payment method?',\n * description:\n * 'This will add a new payment method to your account to be billed for future purchases.',\n * actionText: 'Yes, add payment method',\n * cancelText: 'No, cancel',\n * })\n * setConsent(userConsent)\n * }, [confirm])\n * ```\n */\nexport function ConfirmModal(\n props: PropsWithChildren<ConfirmModalProviderProps>,\n) {\n const { modalRef, show, close } = useModal()\n const resolveRef = useRef<ShowResult>(null)\n const [content, setContent] = useState<ShowConfirmModalOptions | null>(null)\n const focusTrap = trapFocus(modalRef)\n const ConfirmIcon = $cerberusIcons.confirmModal\n\n const palette = useMemo(\n () => (content?.kind === 'destructive' ? 'danger' : 'action'),\n [content],\n )\n\n const handleChoice = useCallback(\n (e: MouseEvent<HTMLButtonElement>) => {\n const target = e.currentTarget as HTMLButtonElement\n if (target.value === 'true') {\n resolveRef.current?.(true)\n }\n resolveRef.current?.(false)\n close()\n },\n [close],\n )\n\n const handleShow = useCallback(\n (options: ShowConfirmModalOptions) => {\n return new Promise<boolean>((resolve) => {\n setContent({ ...options, kind: options.kind || 'non-destructive' })\n show()\n resolveRef.current = resolve\n })\n },\n [show],\n )\n\n const value = useMemo(\n () => ({\n show: handleShow,\n }),\n [handleShow],\n )\n\n return (\n <ConfirmModalContext.Provider value={value}>\n {props.children}\n\n <Portal>\n <Modal onKeyDown={focusTrap} ref={modalRef}>\n <ModalHeader>\n <Show\n when={palette === 'danger'}\n fallback={\n <ModalIcon palette=\"action\">\n <ConfirmIcon size={24} />\n </ModalIcon>\n }\n >\n <ModalIcon palette=\"danger\">\n <ConfirmIcon size={24} />\n </ModalIcon>\n </Show>\n <ModalHeading>{content?.heading}</ModalHeading>\n <ModalDescription>{content?.description}</ModalDescription>\n </ModalHeader>\n\n <div\n className={hstack({\n gap: '4',\n })}\n >\n <Button\n autoFocus\n className={css({\n w: '1/2',\n })}\n name=\"confirm\"\n onClick={handleChoice}\n palette={palette}\n value=\"true\"\n >\n {content?.actionText}\n </Button>\n <Button\n className={css({\n w: '1/2',\n })}\n name=\"cancel\"\n onClick={handleChoice}\n usage=\"outlined\"\n value=\"false\"\n >\n {content?.cancelText}\n </Button>\n </div>\n </Modal>\n </Portal>\n </ConfirmModalContext.Provider>\n )\n}\n\nexport function useConfirmModal(): ConfirmModalValue {\n const context = useContext(ConfirmModalContext)\n if (context === null) {\n throw new Error(\n 'useConfirmModal must be used within a ConfirmModal Provider',\n )\n }\n return context\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAGK;AAGP,SAAS,WAAW;AACpB,SAAS,cAAc;AA6Gb,SAKQ,KALR;AA9EV,IAAM,sBAAsB,cAAwC,IAAI;AA4BjE,SAAS,aACd,OACA;AACA,QAAM,EAAE,UAAU,MAAM,MAAM,IAAI,SAAS;AAC3C,QAAM,aAAa,OAAmB,IAAI;AAC1C,QAAM,CAAC,SAAS,UAAU,IAAI,SAAyC,IAAI;AAC3E,QAAM,YAAY,UAAU,QAAQ;AACpC,QAAM,cAAc,eAAe;AAEnC,QAAM,UAAU;AAAA,IACd,MAAO,SAAS,SAAS,gBAAgB,WAAW;AAAA,IACpD,CAAC,OAAO;AAAA,EACV;AAEA,QAAM,eAAe;AAAA,IACnB,CAAC,MAAqC;AACpC,YAAM,SAAS,EAAE;AACjB,UAAI,OAAO,UAAU,QAAQ;AAC3B,mBAAW,UAAU,IAAI;AAAA,MAC3B;AACA,iBAAW,UAAU,KAAK;AAC1B,YAAM;AAAA,IACR;AAAA,IACA,CAAC,KAAK;AAAA,EACR;AAEA,QAAM,aAAa;AAAA,IACjB,CAAC,YAAqC;AACpC,aAAO,IAAI,QAAiB,CAAC,YAAY;AACvC,mBAAW,EAAE,GAAG,SAAS,MAAM,QAAQ,QAAQ,kBAAkB,CAAC;AAClE,aAAK;AACL,mBAAW,UAAU;AAAA,MACvB,CAAC;AAAA,IACH;AAAA,IACA,CAAC,IAAI;AAAA,EACP;AAEA,QAAM,QAAQ;AAAA,IACZ,OAAO;AAAA,MACL,MAAM;AAAA,IACR;AAAA,IACA,CAAC,UAAU;AAAA,EACb;AAEA,SACE,qBAAC,oBAAoB,UAApB,EAA6B,OAC3B;AAAA,UAAM;AAAA,IAEP,oBAAC,UACC,+BAAC,SAAM,WAAW,WAAW,KAAK,UAChC;AAAA,2BAAC,eACC;AAAA;AAAA,UAAC;AAAA;AAAA,YACC,MAAM,YAAY;AAAA,YAClB,UACE,oBAAC,aAAU,SAAQ,UACjB,8BAAC,eAAY,MAAM,IAAI,GACzB;AAAA,YAGF,8BAAC,aAAU,SAAQ,UACjB,8BAAC,eAAY,MAAM,IAAI,GACzB;AAAA;AAAA,QACF;AAAA,QACA,oBAAC,gBAAc,mBAAS,SAAQ;AAAA,QAChC,oBAAC,oBAAkB,mBAAS,aAAY;AAAA,SAC1C;AAAA,MAEA;AAAA,QAAC;AAAA;AAAA,UACC,WAAW,OAAO;AAAA,YAChB,KAAK;AAAA,UACP,CAAC;AAAA,UAED;AAAA;AAAA,cAAC;AAAA;AAAA,gBACC,WAAS;AAAA,gBACT,WAAW,IAAI;AAAA,kBACb,GAAG;AAAA,gBACL,CAAC;AAAA,gBACD,MAAK;AAAA,gBACL,SAAS;AAAA,gBACT;AAAA,gBACA,OAAM;AAAA,gBAEL,mBAAS;AAAA;AAAA,YACZ;AAAA,YACA;AAAA,cAAC;AAAA;AAAA,gBACC,WAAW,IAAI;AAAA,kBACb,GAAG;AAAA,gBACL,CAAC;AAAA,gBACD,MAAK;AAAA,gBACL,SAAS;AAAA,gBACT,OAAM;AAAA,gBACN,OAAM;AAAA,gBAEL,mBAAS;AAAA;AAAA,YACZ;AAAA;AAAA;AAAA,MACF;AAAA,OACF,GACF;AAAA,KACF;AAEJ;AAEO,SAAS,kBAAqC;AACnD,QAAM,UAAU,WAAW,mBAAmB;AAC9C,MAAI,YAAY,MAAM;AACpB,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;","names":[]}
@@ -0,0 +1,21 @@
1
+ // src/components/Modal.tsx
2
+ import { cx } from "@cerberus-design/styled-system/css";
3
+ import { modal } from "@cerberus-design/styled-system/recipes";
4
+ import { forwardRef } from "react";
5
+ import { jsx } from "react/jsx-runtime";
6
+ function ModalEl(props, ref) {
7
+ return /* @__PURE__ */ jsx(
8
+ "dialog",
9
+ {
10
+ ...props,
11
+ className: cx(props.className, modal().dialog),
12
+ ref
13
+ }
14
+ );
15
+ }
16
+ var Modal = forwardRef(ModalEl);
17
+
18
+ export {
19
+ Modal
20
+ };
21
+ //# sourceMappingURL=chunk-TPFNVGYA.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/components/Modal.tsx"],"sourcesContent":["import { cx } from '@cerberus-design/styled-system/css'\nimport { modal } from '@cerberus-design/styled-system/recipes'\nimport { forwardRef, type ForwardedRef, type HTMLAttributes } from 'react'\n\n/**\n * This module contains the Modal root component for a customizable modal.\n * @module\n */\n\n// Modal\n\nexport type ModalProps = HTMLAttributes<HTMLDialogElement>\n\nfunction ModalEl(props: ModalProps, ref: ForwardedRef<HTMLDialogElement>) {\n return (\n <dialog\n {...props}\n className={cx(props.className, modal().dialog)}\n ref={ref}\n />\n )\n}\n\n/**\n * The Modal component is the root element for a customizable modal.\n * @example\n * ```tsx\n * const { modalRef } = useModal()\n *\n * <Modal ref={modalRef}>\n * <ModalIcon icon={$cerberusIcons.alert} />\n * <h2>Modal Heading</h2>\n * <p>Modal description</p>\n * </Modal>\n * ```\n */\nexport const Modal = forwardRef(ModalEl)\n"],"mappings":";AAAA,SAAS,UAAU;AACnB,SAAS,aAAa;AACtB,SAAS,kBAA0D;AAa/D;AAFJ,SAAS,QAAQ,OAAmB,KAAsC;AACxE,SACE;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ,WAAW,GAAG,MAAM,WAAW,MAAM,EAAE,MAAM;AAAA,MAC7C;AAAA;AAAA,EACF;AAEJ;AAeO,IAAM,QAAQ,WAAW,OAAO;","names":[]}
@@ -0,0 +1,12 @@
1
+ // src/components/ModalDescription.tsx
2
+ import { cx } from "@cerberus-design/styled-system/css";
3
+ import { modal } from "@cerberus-design/styled-system/recipes";
4
+ import { jsx } from "react/jsx-runtime";
5
+ function ModalDescription(props) {
6
+ return /* @__PURE__ */ jsx("p", { ...props, className: cx(props.className, modal().description) });
7
+ }
8
+
9
+ export {
10
+ ModalDescription
11
+ };
12
+ //# sourceMappingURL=chunk-UPODPCRD.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/components/ModalDescription.tsx"],"sourcesContent":["import { cx } from '@cerberus-design/styled-system/css'\nimport { modal } from '@cerberus-design/styled-system/recipes'\nimport type { HTMLAttributes } from 'react'\n\n/**\n * This module contains the ModalDescription component for a customizable modal.\n * @module\n */\n\nexport type ModalDescriptionProps = HTMLAttributes<HTMLParagraphElement>\n\n/**\n * The ModalDescription component is a heading element for a customizable modal.\n * @example\n * ```tsx\n * <Modal>\n * <ModalDescription>Modal Heading</ModalDescription>\n * </Modal>\n * ```\n */\nexport function ModalDescription(props: ModalDescriptionProps) {\n return <p {...props} className={cx(props.className, modal().description)} />\n}\n"],"mappings":";AAAA,SAAS,UAAU;AACnB,SAAS,aAAa;AAoBb;AADF,SAAS,iBAAiB,OAA8B;AAC7D,SAAO,oBAAC,OAAG,GAAG,OAAO,WAAW,GAAG,MAAM,WAAW,MAAM,EAAE,WAAW,GAAG;AAC5E;","names":[]}
@@ -1,30 +1,45 @@
1
- import {
2
- ConfirmModalIcon
3
- } from "./chunk-4GURONLE.js";
4
1
  import {
5
2
  Portal
6
3
  } from "./chunk-4CAT3FHV.js";
4
+ import {
5
+ Modal
6
+ } from "./chunk-TPFNVGYA.js";
7
+ import {
8
+ ModalDescription
9
+ } from "./chunk-UPODPCRD.js";
10
+ import {
11
+ ModalHeader
12
+ } from "./chunk-2F5TB2EV.js";
13
+ import {
14
+ ModalHeading
15
+ } from "./chunk-OGSAAB6K.js";
16
+ import {
17
+ ModalIcon
18
+ } from "./chunk-G3JEWPLM.js";
7
19
  import {
8
20
  Button
9
21
  } from "./chunk-2ATICEW3.js";
10
22
  import {
11
23
  Input
12
- } from "./chunk-7ISHDUYN.js";
24
+ } from "./chunk-5GEC53G7.js";
13
25
  import {
14
26
  Label
15
- } from "./chunk-JJGZRBIR.js";
16
- import {
17
- Field
18
- } from "./chunk-ZAU4JVLL.js";
27
+ } from "./chunk-CU7HXAKM.js";
19
28
  import {
20
29
  Show
21
30
  } from "./chunk-4O4QFF4S.js";
31
+ import {
32
+ Field
33
+ } from "./chunk-ZAU4JVLL.js";
22
34
  import {
23
35
  trapFocus
24
36
  } from "./chunk-JIZQFTW6.js";
25
37
  import {
26
38
  $cerberusIcons
27
39
  } from "./chunk-6TXQZ3PB.js";
40
+ import {
41
+ useModal
42
+ } from "./chunk-C5HLLGME.js";
28
43
 
29
44
  // src/context/prompt-modal.tsx
30
45
  import {
@@ -35,19 +50,17 @@ import {
35
50
  useRef,
36
51
  useState
37
52
  } from "react";
38
- import { css, cx } from "@cerberus-design/styled-system/css";
39
- import { circle, hstack, vstack } from "@cerberus-design/styled-system/patterns";
40
- import {
41
- confirmModal
42
- } from "@cerberus-design/styled-system/recipes";
53
+ import { css } from "@cerberus-design/styled-system/css";
54
+ import { hstack, vstack } from "@cerberus-design/styled-system/patterns";
43
55
  import { jsx, jsxs } from "react/jsx-runtime";
44
56
  var PromptModalContext = createContext(null);
45
57
  function PromptModal(props) {
46
- const dialogRef = useRef(null);
58
+ const { modalRef, show, close } = useModal();
47
59
  const resolveRef = useRef(null);
48
60
  const [content, setContent] = useState(null);
49
61
  const [inputValue, setInputValue] = useState("");
50
- const focusTrap = trapFocus(dialogRef);
62
+ const focusTrap = trapFocus(modalRef);
63
+ const PromptIcon = $cerberusIcons.promptModal;
51
64
  const isValid = useMemo(
52
65
  () => inputValue === content?.key,
53
66
  [inputValue, content]
@@ -56,7 +69,6 @@ function PromptModal(props) {
56
69
  () => content?.kind === "destructive" ? "danger" : "action",
57
70
  [content]
58
71
  );
59
- const styles = confirmModal({ palette });
60
72
  const handleChange = useCallback(
61
73
  (e) => {
62
74
  setInputValue(e.currentTarget.value);
@@ -69,17 +81,20 @@ function PromptModal(props) {
69
81
  if (target.value === "true") {
70
82
  resolveRef.current?.(inputValue);
71
83
  }
72
- dialogRef?.current?.close();
84
+ close();
85
+ },
86
+ [inputValue, close]
87
+ );
88
+ const handleShow = useCallback(
89
+ (options) => {
90
+ return new Promise((resolve) => {
91
+ setContent({ ...options, kind: options.kind || "non-destructive" });
92
+ show();
93
+ resolveRef.current = resolve;
94
+ });
73
95
  },
74
- [inputValue]
96
+ [show]
75
97
  );
76
- const handleShow = useCallback((options) => {
77
- return new Promise((resolve) => {
78
- setContent({ ...options, kind: options.kind || "non-destructive" });
79
- dialogRef?.current?.showModal();
80
- resolveRef.current = resolve;
81
- });
82
- }, []);
83
98
  const value = useMemo(
84
99
  () => ({
85
100
  show: handleShow
@@ -88,21 +103,19 @@ function PromptModal(props) {
88
103
  );
89
104
  return /* @__PURE__ */ jsxs(PromptModalContext.Provider, { value, children: [
90
105
  props.children,
91
- /* @__PURE__ */ jsx(Portal, { children: /* @__PURE__ */ jsxs("dialog", { className: styles.dialog, onKeyDown: focusTrap, ref: dialogRef, children: [
92
- /* @__PURE__ */ jsxs(
93
- "div",
94
- {
95
- className: vstack({
96
- alignItems: "flex-start",
97
- gap: "4"
98
- }),
99
- children: [
100
- /* @__PURE__ */ jsx(ConfirmModalIcon, { palette }),
101
- /* @__PURE__ */ jsx("h2", { className: styles.heading, children: content?.heading }),
102
- /* @__PURE__ */ jsx("p", { className: styles.description, children: content?.description })
103
- ]
104
- }
105
- ),
106
+ /* @__PURE__ */ jsx(Portal, { children: /* @__PURE__ */ jsxs(Modal, { onKeyDown: focusTrap, ref: modalRef, children: [
107
+ /* @__PURE__ */ jsxs(ModalHeader, { children: [
108
+ /* @__PURE__ */ jsx(
109
+ Show,
110
+ {
111
+ when: palette === "danger",
112
+ fallback: /* @__PURE__ */ jsx(ModalIcon, { palette: "action", children: /* @__PURE__ */ jsx(PromptIcon, { size: 24 }) }),
113
+ children: /* @__PURE__ */ jsx(ModalIcon, { palette: "danger", children: /* @__PURE__ */ jsx(PromptIcon, { size: 24 }) })
114
+ }
115
+ ),
116
+ /* @__PURE__ */ jsx(ModalHeading, { children: content?.heading }),
117
+ /* @__PURE__ */ jsx(ModalDescription, { children: content?.description })
118
+ ] }),
106
119
  /* @__PURE__ */ jsx(
107
120
  "div",
108
121
  {
@@ -179,33 +192,6 @@ function PromptModal(props) {
179
192
  ] }) })
180
193
  ] });
181
194
  }
182
- function PromptModalIcon(props) {
183
- const PromptIcon = $cerberusIcons.promptModal;
184
- return /* @__PURE__ */ jsx(
185
- Show,
186
- {
187
- when: props.palette === "danger",
188
- fallback: /* @__PURE__ */ jsx("div", { className: cx(confirmModal().icon, circle()), children: /* @__PURE__ */ jsx(PromptIcon, { size: 24 }) }),
189
- children: /* @__PURE__ */ jsx(
190
- "div",
191
- {
192
- className: cx(
193
- confirmModal({
194
- palette: "danger"
195
- }).icon,
196
- circle({
197
- bgColor: "danger.surface.initial"
198
- })
199
- ),
200
- style: {
201
- color: "var(--cerberus-colors-danger-text-100)"
202
- },
203
- children: /* @__PURE__ */ jsx(PromptIcon, { size: 24 })
204
- }
205
- )
206
- }
207
- );
208
- }
209
195
  function usePromptModal() {
210
196
  const context = useContext(PromptModalContext);
211
197
  if (context === null) {
@@ -216,7 +202,6 @@ function usePromptModal() {
216
202
 
217
203
  export {
218
204
  PromptModal,
219
- PromptModalIcon,
220
205
  usePromptModal
221
206
  };
222
- //# sourceMappingURL=chunk-FZ75OJLJ.js.map
207
+ //# sourceMappingURL=chunk-WWG5QWXY.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/context/prompt-modal.tsx"],"sourcesContent":["'use client'\n\nimport {\n createContext,\n useCallback,\n useContext,\n useMemo,\n useRef,\n useState,\n type ChangeEvent,\n type MouseEvent,\n type PropsWithChildren,\n} from 'react'\nimport { Portal } from '../components/Portal'\nimport { Button } from '../components/Button'\nimport { css } from '@cerberus-design/styled-system/css'\nimport { hstack, vstack } from '@cerberus-design/styled-system/patterns'\nimport { trapFocus } from '../aria-helpers/trap-focus.aria'\nimport { Input } from '../components/Input'\nimport { Field } from './field'\nimport { Label } from '../components/Label'\nimport { $cerberusIcons } from '../config/defineIcons'\nimport { ModalIcon } from '../components/ModalIcon'\nimport { Show } from '../components/Show'\nimport { useModal } from '../hooks/useModal'\nimport { Modal } from '../components/Modal'\nimport { ModalHeader } from '../components/ModalHeader'\nimport { ModalHeading } from '../components/ModalHeading'\nimport { ModalDescription } from '../components/ModalDescription'\n\n/**\n * This module provides a context and hook for the prompt modal.\n * @module\n */\n\nexport interface ShowPromptModalOptions {\n kind?: 'destructive' | 'non-destructive'\n heading: string\n description?: string\n key: string\n actionText: string\n cancelText: string\n}\nexport type PromptShowResult =\n | ((value: string | PromiseLike<string>) => void)\n | null\n\nexport interface PromptModalValue {\n show: (options: ShowPromptModalOptions) => Promise<string>\n}\n\nconst PromptModalContext = createContext<PromptModalValue | null>(null)\n\nexport interface PromptModalProviderProps {}\n\n/**\n * Provides a prompt modal to the app.\n * @example\n * ```tsx\n * // Wrap the Provider around the root of the feature.\n * <PromptModal>\n * <SomeFeatureSection />\n * </PromptModal>\n *\n * // Use the hook to show the prompt modal.\n * const prompt = usePromptModal()\n *\n * const handleClick = useCallback(async () => {\n * const accepted = await prompt.show({\n * kind: 'destructive',\n * heading: 'Delete channel?',\n * description:\n * 'This will permanently delete a channel on your account. There is no going back.',\n * key: CHANNEL_NAME,\n * actionText: 'Yes, delete channel',\n * cancelText: 'No, cancel',\n * })\n * // do something with accepted\n * }, [prompt])\n * ```\n */\nexport function PromptModal(\n props: PropsWithChildren<PromptModalProviderProps>,\n) {\n const { modalRef, show, close } = useModal()\n const resolveRef = useRef<PromptShowResult>(null)\n const [content, setContent] = useState<ShowPromptModalOptions | null>(null)\n const [inputValue, setInputValue] = useState<string>('')\n const focusTrap = trapFocus(modalRef)\n const PromptIcon = $cerberusIcons.promptModal\n\n const isValid = useMemo(\n () => inputValue === content?.key,\n [inputValue, content],\n )\n\n const palette = useMemo(\n () => (content?.kind === 'destructive' ? 'danger' : 'action'),\n [content],\n )\n\n const handleChange = useCallback(\n (e: ChangeEvent<HTMLInputElement>) => {\n setInputValue(e.currentTarget.value)\n },\n [content],\n )\n\n const handleChoice = useCallback(\n (e: MouseEvent<HTMLButtonElement>) => {\n const target = e.currentTarget as HTMLButtonElement\n if (target.value === 'true') {\n resolveRef.current?.(inputValue)\n }\n close()\n },\n [inputValue, close],\n )\n\n const handleShow = useCallback(\n (options: ShowPromptModalOptions) => {\n return new Promise<string>((resolve) => {\n setContent({ ...options, kind: options.kind || 'non-destructive' })\n show()\n resolveRef.current = resolve\n })\n },\n [show],\n )\n\n const value = useMemo(\n () => ({\n show: handleShow,\n }),\n [handleShow],\n )\n\n return (\n <PromptModalContext.Provider value={value}>\n {props.children}\n\n <Portal>\n <Modal onKeyDown={focusTrap} ref={modalRef}>\n <ModalHeader>\n <Show\n when={palette === 'danger'}\n fallback={\n <ModalIcon palette=\"action\">\n <PromptIcon size={24} />\n </ModalIcon>\n }\n >\n <ModalIcon palette=\"danger\">\n <PromptIcon size={24} />\n </ModalIcon>\n </Show>\n <ModalHeading>{content?.heading}</ModalHeading>\n <ModalDescription>{content?.description}</ModalDescription>\n </ModalHeader>\n\n <div\n className={vstack({\n alignItems: 'flex-start',\n mt: '4',\n mb: '8',\n })}\n >\n <Field invalid={!isValid}>\n <Label htmlFor=\"confirm\" size=\"md\">\n Type\n <strong\n className={css({\n textTransform: 'uppercase',\n })}\n >\n {content?.key}\n </strong>\n to confirm\n </Label>\n <Input\n id=\"confirm\"\n name=\"confirm\"\n onChange={handleChange}\n type=\"text\"\n />\n </Field>\n </div>\n\n <div\n className={hstack({\n justifyContent: 'stretch',\n gap: '4',\n })}\n >\n <Button\n autoFocus\n className={css({\n w: '1/2',\n })}\n disabled={!isValid}\n name=\"confirm\"\n onClick={handleChoice}\n palette={palette}\n value=\"true\"\n >\n {content?.actionText}\n </Button>\n <Button\n className={css({\n w: '1/2',\n })}\n name=\"cancel\"\n onClick={handleChoice}\n usage=\"outlined\"\n value=\"false\"\n >\n {content?.cancelText}\n </Button>\n </div>\n </Modal>\n </Portal>\n </PromptModalContext.Provider>\n )\n}\n\nexport function usePromptModal(): PromptModalValue {\n const context = useContext(PromptModalContext)\n if (context === null) {\n throw new Error('usePromptModal must be used within a PromptModal Provider')\n }\n return context\n}\n"],"mappings":"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","names":[]}
@@ -1,9 +1,9 @@
1
1
  "use client";
2
2
  import {
3
3
  Input
4
- } from "../chunk-7ISHDUYN.js";
5
- import "../chunk-ZAU4JVLL.js";
4
+ } from "../chunk-5GEC53G7.js";
6
5
  import "../chunk-4O4QFF4S.js";
6
+ import "../chunk-ZAU4JVLL.js";
7
7
  import "../chunk-6TXQZ3PB.js";
8
8
  import "../chunk-C45DY4VE.js";
9
9
  export {
@@ -1,9 +1,9 @@
1
1
  "use client";
2
2
  import {
3
3
  Label
4
- } from "../chunk-JJGZRBIR.js";
5
- import "../chunk-ZAU4JVLL.js";
4
+ } from "../chunk-CU7HXAKM.js";
6
5
  import "../chunk-4O4QFF4S.js";
6
+ import "../chunk-ZAU4JVLL.js";
7
7
  export {
8
8
  Label
9
9
  };
@@ -0,0 +1,7 @@
1
+ import {
2
+ Modal
3
+ } from "../chunk-TPFNVGYA.js";
4
+ export {
5
+ Modal
6
+ };
7
+ //# sourceMappingURL=Modal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,7 @@
1
+ import {
2
+ ModalDescription
3
+ } from "../chunk-UPODPCRD.js";
4
+ export {
5
+ ModalDescription
6
+ };
7
+ //# sourceMappingURL=ModalDescription.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,7 @@
1
+ import {
2
+ ModalHeader
3
+ } from "../chunk-2F5TB2EV.js";
4
+ export {
5
+ ModalHeader
6
+ };
7
+ //# sourceMappingURL=ModalHeader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,7 @@
1
+ import {
2
+ ModalHeading
3
+ } from "../chunk-OGSAAB6K.js";
4
+ export {
5
+ ModalHeading
6
+ };
7
+ //# sourceMappingURL=ModalHeading.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,7 @@
1
+ import {
2
+ ModalIcon
3
+ } from "../chunk-G3JEWPLM.js";
4
+ export {
5
+ ModalIcon
6
+ };
7
+ //# sourceMappingURL=ModalIcon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,18 +1,22 @@
1
1
  "use client";
2
2
  import {
3
3
  ConfirmModal,
4
- ConfirmModalIcon,
5
4
  useConfirmModal
6
- } from "../chunk-4GURONLE.js";
5
+ } from "../chunk-TAVCJ54A.js";
7
6
  import "../chunk-4CAT3FHV.js";
7
+ import "../chunk-TPFNVGYA.js";
8
+ import "../chunk-UPODPCRD.js";
9
+ import "../chunk-2F5TB2EV.js";
10
+ import "../chunk-OGSAAB6K.js";
11
+ import "../chunk-G3JEWPLM.js";
8
12
  import "../chunk-2ATICEW3.js";
9
13
  import "../chunk-4O4QFF4S.js";
10
14
  import "../chunk-JIZQFTW6.js";
11
15
  import "../chunk-6TXQZ3PB.js";
12
16
  import "../chunk-C45DY4VE.js";
17
+ import "../chunk-C5HLLGME.js";
13
18
  export {
14
19
  ConfirmModal,
15
- ConfirmModalIcon,
16
20
  useConfirmModal
17
21
  };
18
22
  //# sourceMappingURL=confirm-modal.js.map
@@ -1,22 +1,25 @@
1
1
  "use client";
2
2
  import {
3
3
  PromptModal,
4
- PromptModalIcon,
5
4
  usePromptModal
6
- } from "../chunk-FZ75OJLJ.js";
7
- import "../chunk-4GURONLE.js";
5
+ } from "../chunk-WWG5QWXY.js";
8
6
  import "../chunk-4CAT3FHV.js";
7
+ import "../chunk-TPFNVGYA.js";
8
+ import "../chunk-UPODPCRD.js";
9
+ import "../chunk-2F5TB2EV.js";
10
+ import "../chunk-OGSAAB6K.js";
11
+ import "../chunk-G3JEWPLM.js";
9
12
  import "../chunk-2ATICEW3.js";
10
- import "../chunk-7ISHDUYN.js";
11
- import "../chunk-JJGZRBIR.js";
12
- import "../chunk-ZAU4JVLL.js";
13
+ import "../chunk-5GEC53G7.js";
14
+ import "../chunk-CU7HXAKM.js";
13
15
  import "../chunk-4O4QFF4S.js";
16
+ import "../chunk-ZAU4JVLL.js";
14
17
  import "../chunk-JIZQFTW6.js";
15
18
  import "../chunk-6TXQZ3PB.js";
16
19
  import "../chunk-C45DY4VE.js";
20
+ import "../chunk-C5HLLGME.js";
17
21
  export {
18
22
  PromptModal,
19
- PromptModalIcon,
20
23
  usePromptModal
21
24
  };
22
25
  //# sourceMappingURL=prompt-modal.js.map