@andreagiugni/tailwind-dashboard-ui 1.0.1 → 1.0.3

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 (36) hide show
  1. package/README.md +7 -4
  2. package/dist/{Editor-CHBOfOWf.d.cts → Editor-DEv5IZeb.d.cts} +2 -0
  3. package/dist/{Editor-CHBOfOWf.d.ts → Editor-DEv5IZeb.d.ts} +2 -0
  4. package/dist/{chunk-YSON6RJC.cjs → chunk-5DEBWZY7.cjs} +178 -43
  5. package/dist/chunk-5DEBWZY7.cjs.map +1 -0
  6. package/dist/{chunk-DXUWFHPF.js → chunk-EQUQBLJC.js} +36 -116
  7. package/dist/chunk-EQUQBLJC.js.map +1 -0
  8. package/dist/{chunk-QGLKSM7S.js → chunk-PYZG7RY7.js} +179 -44
  9. package/dist/chunk-PYZG7RY7.js.map +1 -0
  10. package/dist/{chunk-U2SEFEOB.js → chunk-W3TC7P3Z.js} +8 -21
  11. package/dist/chunk-W3TC7P3Z.js.map +1 -0
  12. package/dist/{chunk-S4ADL5B7.cjs → chunk-YBVFFVZT.cjs} +36 -116
  13. package/dist/chunk-YBVFFVZT.cjs.map +1 -0
  14. package/dist/{chunk-553PIOZS.cjs → chunk-ZQ6544NY.cjs} +8 -21
  15. package/dist/chunk-ZQ6544NY.cjs.map +1 -0
  16. package/dist/components/Calendar/Calendar.cjs +2 -2
  17. package/dist/components/Calendar/Calendar.js +1 -1
  18. package/dist/components/ColorPicker/ColorPicker.cjs +2 -2
  19. package/dist/components/ColorPicker/ColorPicker.js +1 -1
  20. package/dist/components/Editor/Editor.cjs +2 -2
  21. package/dist/components/Editor/Editor.d.cts +1 -1
  22. package/dist/components/Editor/Editor.d.ts +1 -1
  23. package/dist/components/Editor/Editor.js +1 -1
  24. package/dist/index.cjs +61 -555
  25. package/dist/index.cjs.map +1 -1
  26. package/dist/index.d.cts +3 -3
  27. package/dist/index.d.ts +3 -3
  28. package/dist/index.js +57 -551
  29. package/dist/index.js.map +1 -1
  30. package/package.json +3 -1
  31. package/dist/chunk-553PIOZS.cjs.map +0 -1
  32. package/dist/chunk-DXUWFHPF.js.map +0 -1
  33. package/dist/chunk-QGLKSM7S.js.map +0 -1
  34. package/dist/chunk-S4ADL5B7.cjs.map +0 -1
  35. package/dist/chunk-U2SEFEOB.js.map +0 -1
  36. package/dist/chunk-YSON6RJC.cjs.map +0 -1
@@ -7,102 +7,9 @@ import Link from '@tiptap/extension-link';
7
7
  import Placeholder from '@tiptap/extension-placeholder';
8
8
  import Superscript from '@tiptap/extension-superscript';
9
9
  import Subscript from '@tiptap/extension-subscript';
10
+ import { Redo2, Undo2, Link as Link$1, CodeXml, Quote, ListOrdered, List, Heading3, Heading2, Heading1, Subscript as Subscript$1, Superscript as Superscript$1, Code, Strikethrough, Italic, Bold } from 'lucide-react';
10
11
  import { jsxs, jsx } from 'react/jsx-runtime';
11
12
 
12
- var base = {
13
- width: 18,
14
- height: 18,
15
- viewBox: "0 0 24 24",
16
- fill: "none",
17
- stroke: "currentColor",
18
- strokeWidth: 2,
19
- strokeLinecap: "round",
20
- strokeLinejoin: "round",
21
- xmlns: "http://www.w3.org/2000/svg"
22
- };
23
- var BoldIcon = () => /* @__PURE__ */ jsxs("svg", { ...base, children: [
24
- /* @__PURE__ */ jsx("path", { d: "M6 4h7a4 4 0 0 1 0 8H6z" }),
25
- /* @__PURE__ */ jsx("path", { d: "M6 12h8a4 4 0 0 1 0 8H6z" })
26
- ] });
27
- var ItalicIcon = () => /* @__PURE__ */ jsxs("svg", { ...base, children: [
28
- /* @__PURE__ */ jsx("line", { x1: "19", y1: "4", x2: "10", y2: "4" }),
29
- /* @__PURE__ */ jsx("line", { x1: "14", y1: "20", x2: "5", y2: "20" }),
30
- /* @__PURE__ */ jsx("line", { x1: "15", y1: "4", x2: "9", y2: "20" })
31
- ] });
32
- var StrikeIcon = () => /* @__PURE__ */ jsxs("svg", { ...base, children: [
33
- /* @__PURE__ */ jsx("path", { d: "M16 4H9a3 3 0 0 0-2.83 4" }),
34
- /* @__PURE__ */ jsx("path", { d: "M14 12a4 4 0 0 1 0 8H6" }),
35
- /* @__PURE__ */ jsx("line", { x1: "4", y1: "12", x2: "20", y2: "12" })
36
- ] });
37
- var CodeIcon = () => /* @__PURE__ */ jsxs("svg", { ...base, children: [
38
- /* @__PURE__ */ jsx("polyline", { points: "16 18 22 12 16 6" }),
39
- /* @__PURE__ */ jsx("polyline", { points: "8 6 2 12 8 18" })
40
- ] });
41
- var Heading1Icon = () => /* @__PURE__ */ jsxs("svg", { ...base, children: [
42
- /* @__PURE__ */ jsx("path", { d: "M4 12h8" }),
43
- /* @__PURE__ */ jsx("path", { d: "M4 18V6" }),
44
- /* @__PURE__ */ jsx("path", { d: "M12 18V6" }),
45
- /* @__PURE__ */ jsx("path", { d: "M17 12l3-2v8" })
46
- ] });
47
- var Heading2Icon = () => /* @__PURE__ */ jsxs("svg", { ...base, children: [
48
- /* @__PURE__ */ jsx("path", { d: "M4 12h8" }),
49
- /* @__PURE__ */ jsx("path", { d: "M4 18V6" }),
50
- /* @__PURE__ */ jsx("path", { d: "M12 18V6" }),
51
- /* @__PURE__ */ jsx("path", { d: "M17 10c2 0 3 1 3 2.5S18 15 17 16l-2 2h5" })
52
- ] });
53
- var Heading3Icon = () => /* @__PURE__ */ jsxs("svg", { ...base, children: [
54
- /* @__PURE__ */ jsx("path", { d: "M4 12h8" }),
55
- /* @__PURE__ */ jsx("path", { d: "M4 18V6" }),
56
- /* @__PURE__ */ jsx("path", { d: "M12 18V6" }),
57
- /* @__PURE__ */ jsx("path", { d: "M17 10c2.5-1 3.5 1 2.5 2c1 1 0.5 4-2.5 3" })
58
- ] });
59
- var BulletListIcon = () => /* @__PURE__ */ jsxs("svg", { ...base, children: [
60
- /* @__PURE__ */ jsx("line", { x1: "9", y1: "6", x2: "20", y2: "6" }),
61
- /* @__PURE__ */ jsx("line", { x1: "9", y1: "12", x2: "20", y2: "12" }),
62
- /* @__PURE__ */ jsx("line", { x1: "9", y1: "18", x2: "20", y2: "18" }),
63
- /* @__PURE__ */ jsx("circle", { cx: "4", cy: "6", r: "1" }),
64
- /* @__PURE__ */ jsx("circle", { cx: "4", cy: "12", r: "1" }),
65
- /* @__PURE__ */ jsx("circle", { cx: "4", cy: "18", r: "1" })
66
- ] });
67
- var OrderedListIcon = () => /* @__PURE__ */ jsxs("svg", { ...base, children: [
68
- /* @__PURE__ */ jsx("line", { x1: "10", y1: "6", x2: "20", y2: "6" }),
69
- /* @__PURE__ */ jsx("line", { x1: "10", y1: "12", x2: "20", y2: "12" }),
70
- /* @__PURE__ */ jsx("line", { x1: "10", y1: "18", x2: "20", y2: "18" }),
71
- /* @__PURE__ */ jsx("path", { d: "M4 6V3.5L3 4" }),
72
- /* @__PURE__ */ jsx("path", { d: "M3 12h2l-2 3h2" }),
73
- /* @__PURE__ */ jsx("path", { d: "M3 17h2v3H3" })
74
- ] });
75
- var BlockquoteIcon = () => /* @__PURE__ */ jsxs("svg", { ...base, children: [
76
- /* @__PURE__ */ jsx("path", { d: "M3 21c3 0 7-1 7-8V5H3v7h4" }),
77
- /* @__PURE__ */ jsx("path", { d: "M14 21c3 0 7-1 7-8V5h-7v7h4" })
78
- ] });
79
- var CodeBlockIcon = () => /* @__PURE__ */ jsxs("svg", { ...base, children: [
80
- /* @__PURE__ */ jsx("rect", { x: "3", y: "4", width: "18", height: "16", rx: "2" }),
81
- /* @__PURE__ */ jsx("polyline", { points: "9 9 7 12 9 15" }),
82
- /* @__PURE__ */ jsx("polyline", { points: "15 9 17 12 15 15" })
83
- ] });
84
- var LinkIcon = () => /* @__PURE__ */ jsxs("svg", { ...base, children: [
85
- /* @__PURE__ */ jsx("path", { d: "M10 13a5 5 0 0 0 7 0l3-3a5 5 0 0 0-7-7l-1 1" }),
86
- /* @__PURE__ */ jsx("path", { d: "M14 11a5 5 0 0 0-7 0l-3 3a5 5 0 0 0 7 7l1-1" })
87
- ] });
88
- var UndoIcon = () => /* @__PURE__ */ jsxs("svg", { ...base, children: [
89
- /* @__PURE__ */ jsx("path", { d: "M3 7v6h6" }),
90
- /* @__PURE__ */ jsx("path", { d: "M3 13a9 9 0 1 0 3-7.7L3 8" })
91
- ] });
92
- var RedoIcon = () => /* @__PURE__ */ jsxs("svg", { ...base, children: [
93
- /* @__PURE__ */ jsx("path", { d: "M21 7v6h-6" }),
94
- /* @__PURE__ */ jsx("path", { d: "M21 13a9 9 0 1 1-3-7.7L21 8" })
95
- ] });
96
- var SuperscriptIcon = () => /* @__PURE__ */ jsxs("svg", { ...base, children: [
97
- /* @__PURE__ */ jsx("path", { d: "m4 19 8-10" }),
98
- /* @__PURE__ */ jsx("path", { d: "m12 19-8-10" }),
99
- /* @__PURE__ */ jsx("path", { d: "M20 9h-4c0-1.5.44-2 1.5-2.5S20 5.6 20 4.5C20 3.7 19.3 3 18.5 3S17 3.7 17 4.5" })
100
- ] });
101
- var SubscriptIcon = () => /* @__PURE__ */ jsxs("svg", { ...base, children: [
102
- /* @__PURE__ */ jsx("path", { d: "m4 5 8 10" }),
103
- /* @__PURE__ */ jsx("path", { d: "m12 5-8 10" }),
104
- /* @__PURE__ */ jsx("path", { d: "M20 21h-4c0-1.5.44-2 1.5-2.5S20 17.6 20 16.5c0-.8-.7-1.5-1.5-1.5s-1.5.7-1.5 1.5" })
105
- ] });
106
13
  var DEFAULT_TOOLBAR = [
107
14
  "bold",
108
15
  "italic",
@@ -127,85 +34,85 @@ var DEFAULT_TOOLBAR = [
127
34
  ];
128
35
  var BUILTINS = {
129
36
  bold: {
130
- icon: /* @__PURE__ */ jsx(BoldIcon, {}),
37
+ icon: /* @__PURE__ */ jsx(Bold, { className: "h-[18px] w-[18px]", "aria-hidden": "true" }),
131
38
  title: "Bold",
132
39
  onClick: (e) => e.chain().focus().toggleBold().run(),
133
40
  isActive: (e) => e.isActive("bold")
134
41
  },
135
42
  italic: {
136
- icon: /* @__PURE__ */ jsx(ItalicIcon, {}),
43
+ icon: /* @__PURE__ */ jsx(Italic, { className: "h-[18px] w-[18px]", "aria-hidden": "true" }),
137
44
  title: "Italic",
138
45
  onClick: (e) => e.chain().focus().toggleItalic().run(),
139
46
  isActive: (e) => e.isActive("italic")
140
47
  },
141
48
  strike: {
142
- icon: /* @__PURE__ */ jsx(StrikeIcon, {}),
49
+ icon: /* @__PURE__ */ jsx(Strikethrough, { className: "h-[18px] w-[18px]", "aria-hidden": "true" }),
143
50
  title: "Strikethrough",
144
51
  onClick: (e) => e.chain().focus().toggleStrike().run(),
145
52
  isActive: (e) => e.isActive("strike")
146
53
  },
147
54
  code: {
148
- icon: /* @__PURE__ */ jsx(CodeIcon, {}),
55
+ icon: /* @__PURE__ */ jsx(Code, { className: "h-[18px] w-[18px]", "aria-hidden": "true" }),
149
56
  title: "Inline code",
150
57
  onClick: (e) => e.chain().focus().toggleCode().run(),
151
58
  isActive: (e) => e.isActive("code")
152
59
  },
153
60
  superscript: {
154
- icon: /* @__PURE__ */ jsx(SuperscriptIcon, {}),
61
+ icon: /* @__PURE__ */ jsx(Superscript$1, { className: "h-[18px] w-[18px]", "aria-hidden": "true" }),
155
62
  title: "Superscript",
156
63
  onClick: (e) => e.chain().focus().toggleSuperscript().run(),
157
64
  isActive: (e) => e.isActive("superscript")
158
65
  },
159
66
  subscript: {
160
- icon: /* @__PURE__ */ jsx(SubscriptIcon, {}),
67
+ icon: /* @__PURE__ */ jsx(Subscript$1, { className: "h-[18px] w-[18px]", "aria-hidden": "true" }),
161
68
  title: "Subscript",
162
69
  onClick: (e) => e.chain().focus().toggleSubscript().run(),
163
70
  isActive: (e) => e.isActive("subscript")
164
71
  },
165
72
  heading1: {
166
- icon: /* @__PURE__ */ jsx(Heading1Icon, {}),
73
+ icon: /* @__PURE__ */ jsx(Heading1, { className: "h-[18px] w-[18px]", "aria-hidden": "true" }),
167
74
  title: "Heading 1",
168
75
  onClick: (e) => e.chain().focus().toggleHeading({ level: 1 }).run(),
169
76
  isActive: (e) => e.isActive("heading", { level: 1 })
170
77
  },
171
78
  heading2: {
172
- icon: /* @__PURE__ */ jsx(Heading2Icon, {}),
79
+ icon: /* @__PURE__ */ jsx(Heading2, { className: "h-[18px] w-[18px]", "aria-hidden": "true" }),
173
80
  title: "Heading 2",
174
81
  onClick: (e) => e.chain().focus().toggleHeading({ level: 2 }).run(),
175
82
  isActive: (e) => e.isActive("heading", { level: 2 })
176
83
  },
177
84
  heading3: {
178
- icon: /* @__PURE__ */ jsx(Heading3Icon, {}),
85
+ icon: /* @__PURE__ */ jsx(Heading3, { className: "h-[18px] w-[18px]", "aria-hidden": "true" }),
179
86
  title: "Heading 3",
180
87
  onClick: (e) => e.chain().focus().toggleHeading({ level: 3 }).run(),
181
88
  isActive: (e) => e.isActive("heading", { level: 3 })
182
89
  },
183
90
  bulletList: {
184
- icon: /* @__PURE__ */ jsx(BulletListIcon, {}),
91
+ icon: /* @__PURE__ */ jsx(List, { className: "h-[18px] w-[18px]", "aria-hidden": "true" }),
185
92
  title: "Bullet list",
186
93
  onClick: (e) => e.chain().focus().toggleBulletList().run(),
187
94
  isActive: (e) => e.isActive("bulletList")
188
95
  },
189
96
  orderedList: {
190
- icon: /* @__PURE__ */ jsx(OrderedListIcon, {}),
97
+ icon: /* @__PURE__ */ jsx(ListOrdered, { className: "h-[18px] w-[18px]", "aria-hidden": "true" }),
191
98
  title: "Ordered list",
192
99
  onClick: (e) => e.chain().focus().toggleOrderedList().run(),
193
100
  isActive: (e) => e.isActive("orderedList")
194
101
  },
195
102
  blockquote: {
196
- icon: /* @__PURE__ */ jsx(BlockquoteIcon, {}),
103
+ icon: /* @__PURE__ */ jsx(Quote, { className: "h-[18px] w-[18px]", "aria-hidden": "true" }),
197
104
  title: "Blockquote",
198
105
  onClick: (e) => e.chain().focus().toggleBlockquote().run(),
199
106
  isActive: (e) => e.isActive("blockquote")
200
107
  },
201
108
  codeBlock: {
202
- icon: /* @__PURE__ */ jsx(CodeBlockIcon, {}),
109
+ icon: /* @__PURE__ */ jsx(CodeXml, { className: "h-[18px] w-[18px]", "aria-hidden": "true" }),
203
110
  title: "Code block",
204
111
  onClick: (e) => e.chain().focus().toggleCodeBlock().run(),
205
112
  isActive: (e) => e.isActive("codeBlock")
206
113
  },
207
114
  link: {
208
- icon: /* @__PURE__ */ jsx(LinkIcon, {}),
115
+ icon: /* @__PURE__ */ jsx(Link$1, { className: "h-[18px] w-[18px]", "aria-hidden": "true" }),
209
116
  title: "Link",
210
117
  // Minimal UX: window.prompt for the URL (no extra UI deps). Empty input
211
118
  // clears any existing link on the selection.
@@ -222,13 +129,13 @@ var BUILTINS = {
222
129
  isActive: (e) => e.isActive("link")
223
130
  },
224
131
  undo: {
225
- icon: /* @__PURE__ */ jsx(UndoIcon, {}),
132
+ icon: /* @__PURE__ */ jsx(Undo2, { className: "h-[18px] w-[18px]", "aria-hidden": "true" }),
226
133
  title: "Undo",
227
134
  onClick: (e) => e.chain().focus().undo().run(),
228
135
  isDisabled: (e) => !e.can().undo()
229
136
  },
230
137
  redo: {
231
- icon: /* @__PURE__ */ jsx(RedoIcon, {}),
138
+ icon: /* @__PURE__ */ jsx(Redo2, { className: "h-[18px] w-[18px]", "aria-hidden": "true" }),
232
139
  title: "Redo",
233
140
  onClick: (e) => e.chain().focus().redo().run(),
234
141
  isDisabled: (e) => !e.can().redo()
@@ -253,9 +160,15 @@ var Editor = ({
253
160
  placeholder = "Start writing\u2026",
254
161
  editable = true,
255
162
  toolbar = DEFAULT_TOOLBAR,
163
+ rows = 8,
256
164
  className,
257
165
  editorClassName
258
166
  }) => {
167
+ const visibleRows = Math.max(1, Math.floor(rows));
168
+ const minHeight = `${visibleRows * 1.5}rem`;
169
+ const editorHeightStyle = {
170
+ "--tdui-editor-min-height": minHeight
171
+ };
259
172
  const editor = useEditor({
260
173
  extensions: [
261
174
  StarterKit,
@@ -287,7 +200,13 @@ var Editor = ({
287
200
  ),
288
201
  children: [
289
202
  editable && /* @__PURE__ */ jsx("div", { className: "h-12 border-b border-gray-200 bg-gray-50 dark:border-gray-800 dark:bg-white/[0.02]" }),
290
- /* @__PURE__ */ jsx("div", { className: "min-h-[200px] animate-pulse bg-gray-50/50 dark:bg-white/[0.01]" })
203
+ /* @__PURE__ */ jsx(
204
+ "div",
205
+ {
206
+ className: "min-h-[var(--tdui-editor-min-height)] animate-pulse bg-gray-50/50 dark:bg-white/[0.01]",
207
+ style: editorHeightStyle
208
+ }
209
+ )
291
210
  ]
292
211
  }
293
212
  );
@@ -347,15 +266,16 @@ var Editor = ({
347
266
  EditorContent,
348
267
  {
349
268
  editor,
269
+ style: editorHeightStyle,
350
270
  className: cn(
351
- "min-h-[200px] px-4 py-3 text-sm text-gray-700 dark:text-gray-300",
271
+ "min-h-[var(--tdui-editor-min-height)] px-4 py-3 text-sm text-gray-700 dark:text-gray-300",
352
272
  "rounded-b-xl",
353
273
  // Explicit element styling (no @tailwindcss/typography assumed).
354
- "[&_.ProseMirror]:min-h-[180px] [&_.ProseMirror]:outline-none",
274
+ "[&_.ProseMirror]:min-h-[var(--tdui-editor-min-height)] [&_.ProseMirror]:outline-none",
355
275
  "[&_h1]:mb-3 [&_h1]:mt-4 [&_h1]:text-2xl [&_h1]:font-semibold [&_h1]:text-gray-900 dark:[&_h1]:text-white/90",
356
276
  "[&_h2]:mb-2 [&_h2]:mt-4 [&_h2]:text-xl [&_h2]:font-semibold [&_h2]:text-gray-900 dark:[&_h2]:text-white/90",
357
277
  "[&_h3]:mb-2 [&_h3]:mt-3 [&_h3]:text-lg [&_h3]:font-semibold [&_h3]:text-gray-900 dark:[&_h3]:text-white/90",
358
- "[&_p]:my-2 [&_p]:leading-relaxed",
278
+ "[&_p]:mb-2 [&_p]:mt-0 [&_p]:leading-relaxed",
359
279
  "[&_ul]:my-2 [&_ul]:list-disc [&_ul]:pl-6",
360
280
  "[&_ol]:my-2 [&_ol]:list-decimal [&_ol]:pl-6",
361
281
  "[&_li]:my-1 [&_li>p]:my-0",
@@ -377,5 +297,5 @@ var Editor = ({
377
297
  };
378
298
 
379
299
  export { Editor };
380
- //# sourceMappingURL=chunk-DXUWFHPF.js.map
381
- //# sourceMappingURL=chunk-DXUWFHPF.js.map
300
+ //# sourceMappingURL=chunk-EQUQBLJC.js.map
301
+ //# sourceMappingURL=chunk-EQUQBLJC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Editor/Editor.tsx"],"names":["SuperscriptIcon","SubscriptIcon","LinkIcon","editor","active"],"mappings":"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","file":"chunk-EQUQBLJC.js","sourcesContent":["\"use client\";\nimport React from \"react\";\nimport { useEditor, EditorContent, type Editor as TiptapEditor } from \"@tiptap/react\";\nimport StarterKit from \"@tiptap/starter-kit\";\nimport Link from \"@tiptap/extension-link\";\nimport Placeholder from \"@tiptap/extension-placeholder\";\nimport Superscript from \"@tiptap/extension-superscript\";\nimport Subscript from \"@tiptap/extension-subscript\";\nimport {\n Bold,\n Code,\n CodeXml,\n Heading1,\n Heading2,\n Heading3,\n Italic,\n Link as LinkIcon,\n List,\n ListOrdered,\n Quote,\n Redo2,\n Strikethrough,\n Subscript as SubscriptIcon,\n Superscript as SuperscriptIcon,\n Undo2,\n} from \"lucide-react\";\nimport { cn } from \"../../lib/cn\";\nimport { type ColorOverrideProps } from \"../../lib/styleOverride\";\n\n/** Built-in toolbar tool ids. */\nexport type ToolbarItemId =\n | \"bold\"\n | \"italic\"\n | \"strike\"\n | \"code\"\n | \"superscript\"\n | \"subscript\"\n | \"heading1\"\n | \"heading2\"\n | \"heading3\"\n | \"bulletList\"\n | \"orderedList\"\n | \"blockquote\"\n | \"codeBlock\"\n | \"link\"\n | \"undo\"\n | \"redo\"\n | \"divider\";\n\n/** A fully custom toolbar button. */\nexport interface CustomToolbarItem {\n id: string;\n icon: React.ReactNode;\n title: string;\n onClick: (editor: TiptapEditor) => void;\n isActive?: (editor: TiptapEditor) => boolean;\n}\n\n/** A toolbar entry: either a built-in id or a custom button object. */\nexport type EditorToolItem = ToolbarItemId | CustomToolbarItem;\n\n/** @deprecated Alias kept for naming flexibility. Use `EditorToolItem`. */\nexport type ToolbarItem = EditorToolItem;\n\nexport interface EditorProps extends ColorOverrideProps {\n /** Initial HTML content. */\n content?: string;\n /** Fires with the current HTML whenever the document changes. */\n onChange?: (html: string) => void;\n /** Placeholder shown when the document is empty. */\n placeholder?: string;\n /** When false the editor is read-only and the toolbar is hidden. */\n editable?: boolean;\n /** Ordered toolbar configuration. Defaults to a sensible full set. */\n toolbar?: EditorToolItem[];\n /** Minimum visible text rows. Drives the editor content height. Default: 8. */\n rows?: number;\n /** Wrapper class. */\n className?: string;\n /** Class for the prose content area. */\n editorClassName?: string;\n}\n\nconst DEFAULT_TOOLBAR: EditorToolItem[] = [\n \"bold\",\n \"italic\",\n \"strike\",\n \"code\",\n \"superscript\",\n \"subscript\",\n \"divider\",\n \"heading1\",\n \"heading2\",\n \"heading3\",\n \"divider\",\n \"bulletList\",\n \"orderedList\",\n \"blockquote\",\n \"codeBlock\",\n \"divider\",\n \"link\",\n \"divider\",\n \"undo\",\n \"redo\",\n];\n\ninterface BuiltInDef {\n icon: React.ReactNode;\n title: string;\n onClick: (editor: TiptapEditor) => void;\n isActive?: (editor: TiptapEditor) => boolean;\n /** Disable callback (used for undo/redo). */\n isDisabled?: (editor: TiptapEditor) => boolean;\n}\n\nconst BUILTINS: Record<Exclude<ToolbarItemId, \"divider\">, BuiltInDef> = {\n bold: {\n icon: <Bold className=\"h-[18px] w-[18px]\" aria-hidden=\"true\" />,\n title: \"Bold\",\n onClick: (e) => e.chain().focus().toggleBold().run(),\n isActive: (e) => e.isActive(\"bold\"),\n },\n italic: {\n icon: <Italic className=\"h-[18px] w-[18px]\" aria-hidden=\"true\" />,\n title: \"Italic\",\n onClick: (e) => e.chain().focus().toggleItalic().run(),\n isActive: (e) => e.isActive(\"italic\"),\n },\n strike: {\n icon: <Strikethrough className=\"h-[18px] w-[18px]\" aria-hidden=\"true\" />,\n title: \"Strikethrough\",\n onClick: (e) => e.chain().focus().toggleStrike().run(),\n isActive: (e) => e.isActive(\"strike\"),\n },\n code: {\n icon: <Code className=\"h-[18px] w-[18px]\" aria-hidden=\"true\" />,\n title: \"Inline code\",\n onClick: (e) => e.chain().focus().toggleCode().run(),\n isActive: (e) => e.isActive(\"code\"),\n },\n superscript: {\n icon: <SuperscriptIcon className=\"h-[18px] w-[18px]\" aria-hidden=\"true\" />,\n title: \"Superscript\",\n onClick: (e) => e.chain().focus().toggleSuperscript().run(),\n isActive: (e) => e.isActive(\"superscript\"),\n },\n subscript: {\n icon: <SubscriptIcon className=\"h-[18px] w-[18px]\" aria-hidden=\"true\" />,\n title: \"Subscript\",\n onClick: (e) => e.chain().focus().toggleSubscript().run(),\n isActive: (e) => e.isActive(\"subscript\"),\n },\n heading1: {\n icon: <Heading1 className=\"h-[18px] w-[18px]\" aria-hidden=\"true\" />,\n title: \"Heading 1\",\n onClick: (e) => e.chain().focus().toggleHeading({ level: 1 }).run(),\n isActive: (e) => e.isActive(\"heading\", { level: 1 }),\n },\n heading2: {\n icon: <Heading2 className=\"h-[18px] w-[18px]\" aria-hidden=\"true\" />,\n title: \"Heading 2\",\n onClick: (e) => e.chain().focus().toggleHeading({ level: 2 }).run(),\n isActive: (e) => e.isActive(\"heading\", { level: 2 }),\n },\n heading3: {\n icon: <Heading3 className=\"h-[18px] w-[18px]\" aria-hidden=\"true\" />,\n title: \"Heading 3\",\n onClick: (e) => e.chain().focus().toggleHeading({ level: 3 }).run(),\n isActive: (e) => e.isActive(\"heading\", { level: 3 }),\n },\n bulletList: {\n icon: <List className=\"h-[18px] w-[18px]\" aria-hidden=\"true\" />,\n title: \"Bullet list\",\n onClick: (e) => e.chain().focus().toggleBulletList().run(),\n isActive: (e) => e.isActive(\"bulletList\"),\n },\n orderedList: {\n icon: <ListOrdered className=\"h-[18px] w-[18px]\" aria-hidden=\"true\" />,\n title: \"Ordered list\",\n onClick: (e) => e.chain().focus().toggleOrderedList().run(),\n isActive: (e) => e.isActive(\"orderedList\"),\n },\n blockquote: {\n icon: <Quote className=\"h-[18px] w-[18px]\" aria-hidden=\"true\" />,\n title: \"Blockquote\",\n onClick: (e) => e.chain().focus().toggleBlockquote().run(),\n isActive: (e) => e.isActive(\"blockquote\"),\n },\n codeBlock: {\n icon: <CodeXml className=\"h-[18px] w-[18px]\" aria-hidden=\"true\" />,\n title: \"Code block\",\n onClick: (e) => e.chain().focus().toggleCodeBlock().run(),\n isActive: (e) => e.isActive(\"codeBlock\"),\n },\n link: {\n icon: <LinkIcon className=\"h-[18px] w-[18px]\" aria-hidden=\"true\" />,\n title: \"Link\",\n // Minimal UX: window.prompt for the URL (no extra UI deps). Empty input\n // clears any existing link on the selection.\n onClick: (e) => {\n const prev = (e.getAttributes(\"link\") as { href?: string }).href ?? \"\";\n const url =\n typeof window !== \"undefined\"\n ? window.prompt(\"Enter URL\", prev)\n : null;\n if (url === null) return; // cancelled\n if (url === \"\") {\n e.chain().focus().extendMarkRange(\"link\").unsetLink().run();\n return;\n }\n e.chain().focus().extendMarkRange(\"link\").setLink({ href: url }).run();\n },\n isActive: (e) => e.isActive(\"link\"),\n },\n undo: {\n icon: <Undo2 className=\"h-[18px] w-[18px]\" aria-hidden=\"true\" />,\n title: \"Undo\",\n onClick: (e) => e.chain().focus().undo().run(),\n isDisabled: (e) => !e.can().undo(),\n },\n redo: {\n icon: <Redo2 className=\"h-[18px] w-[18px]\" aria-hidden=\"true\" />,\n title: \"Redo\",\n onClick: (e) => e.chain().focus().redo().run(),\n isDisabled: (e) => !e.can().redo(),\n },\n};\n\nconst toolButtonClass = (active: boolean) =>\n cn(\n \"inline-flex h-8 w-8 items-center justify-center rounded-lg text-gray-600 transition\",\n \"hover:bg-gray-100 hover:text-gray-800 disabled:cursor-not-allowed disabled:opacity-40\",\n \"dark:text-gray-400 dark:hover:bg-white/[0.06] dark:hover:text-gray-200\",\n active &&\n \"bg-brand-50 text-brand-600 hover:bg-brand-50 hover:text-brand-600 dark:bg-brand-500/15 dark:text-brand-400 dark:hover:bg-brand-500/15 dark:hover:text-brand-400\"\n );\n\nconst Divider: React.FC = () => (\n <span\n aria-hidden\n className=\"mx-1 h-5 w-px self-center bg-gray-200 dark:bg-gray-700\"\n />\n);\n\n/**\n * Tiptap-powered WYSIWYG editor.\n *\n * Heavy, optional peer-dependency component (`@tiptap/*`). It is a client\n * component and touches the DOM at import time, so in SSR frameworks render it\n * client-only (e.g. next/dynamic with `ssr:false`), like the charts.\n */\nexport const Editor: React.FC<EditorProps> = ({\n content,\n onChange,\n placeholder = \"Start writing…\",\n editable = true,\n toolbar = DEFAULT_TOOLBAR,\n rows = 8,\n className,\n editorClassName,\n}) => {\n const visibleRows = Math.max(1, Math.floor(rows));\n const minHeight = `${visibleRows * 1.5}rem`;\n const editorHeightStyle = {\n \"--tdui-editor-min-height\": minHeight,\n } as React.CSSProperties;\n\n const editor = useEditor({\n extensions: [\n StarterKit,\n Link.configure({ openOnClick: false }),\n Placeholder.configure({ placeholder }),\n Superscript,\n Subscript,\n ],\n content,\n editable,\n immediatelyRender: false,\n editorProps: {\n attributes: {\n class: \"focus:outline-none\",\n },\n },\n onUpdate: ({ editor }) => onChange?.(editor.getHTML()),\n });\n\n // Keep editability in sync if the prop changes after mount.\n React.useEffect(() => {\n editor?.setEditable(editable);\n }, [editor, editable]);\n\n // Not yet mounted (SSR / first paint): render a skeleton placeholder.\n if (!editor) {\n return (\n <div\n className={cn(\n \"w-full overflow-hidden rounded-xl border border-gray-200 dark:border-gray-800\",\n className\n )}\n >\n {editable && (\n <div className=\"h-12 border-b border-gray-200 bg-gray-50 dark:border-gray-800 dark:bg-white/[0.02]\" />\n )}\n <div\n className=\"min-h-[var(--tdui-editor-min-height)] animate-pulse bg-gray-50/50 dark:bg-white/[0.01]\"\n style={editorHeightStyle}\n />\n </div>\n );\n }\n\n const renderToolbar = () => {\n let dividerKey = 0;\n return toolbar.map((item, index) => {\n // Custom button object.\n if (typeof item === \"object\") {\n const active = item.isActive?.(editor) ?? false;\n return (\n <button\n key={item.id || `custom-${index}`}\n type=\"button\"\n title={item.title}\n aria-label={item.title}\n aria-pressed={active}\n onClick={() => item.onClick(editor)}\n className={toolButtonClass(active)}\n >\n {item.icon}\n </button>\n );\n }\n\n if (item === \"divider\") {\n return <Divider key={`divider-${dividerKey++}`} />;\n }\n\n const def = BUILTINS[item];\n if (!def) return null;\n const active = def.isActive?.(editor) ?? false;\n const disabled = def.isDisabled?.(editor) ?? false;\n return (\n <button\n key={item}\n type=\"button\"\n title={def.title}\n aria-label={def.title}\n aria-pressed={active}\n disabled={disabled}\n onClick={() => def.onClick(editor)}\n className={toolButtonClass(active)}\n >\n {def.icon}\n </button>\n );\n });\n };\n\n return (\n <div\n className={cn(\n \"w-full overflow-hidden rounded-xl border border-gray-200 bg-white shadow-theme-xs dark:border-gray-800 dark:bg-white/[0.02]\",\n className\n )}\n >\n {editable && (\n <div className=\"flex flex-wrap items-center gap-0.5 border-b border-gray-200 bg-gray-50 px-2 py-1.5 dark:border-gray-800 dark:bg-white/[0.02]\">\n {renderToolbar()}\n </div>\n )}\n <EditorContent\n editor={editor}\n style={editorHeightStyle}\n className={cn(\n \"min-h-[var(--tdui-editor-min-height)] px-4 py-3 text-sm text-gray-700 dark:text-gray-300\",\n \"rounded-b-xl\",\n // Explicit element styling (no @tailwindcss/typography assumed).\n \"[&_.ProseMirror]:min-h-[var(--tdui-editor-min-height)] [&_.ProseMirror]:outline-none\",\n \"[&_h1]:mb-3 [&_h1]:mt-4 [&_h1]:text-2xl [&_h1]:font-semibold [&_h1]:text-gray-900 dark:[&_h1]:text-white/90\",\n \"[&_h2]:mb-2 [&_h2]:mt-4 [&_h2]:text-xl [&_h2]:font-semibold [&_h2]:text-gray-900 dark:[&_h2]:text-white/90\",\n \"[&_h3]:mb-2 [&_h3]:mt-3 [&_h3]:text-lg [&_h3]:font-semibold [&_h3]:text-gray-900 dark:[&_h3]:text-white/90\",\n \"[&_p]:mb-2 [&_p]:mt-0 [&_p]:leading-relaxed\",\n \"[&_ul]:my-2 [&_ul]:list-disc [&_ul]:pl-6\",\n \"[&_ol]:my-2 [&_ol]:list-decimal [&_ol]:pl-6\",\n \"[&_li]:my-1 [&_li>p]:my-0\",\n \"[&_a]:text-brand-500 [&_a]:underline hover:[&_a]:text-brand-600 dark:[&_a]:text-brand-400\",\n \"[&_blockquote]:my-3 [&_blockquote]:border-l-4 [&_blockquote]:border-gray-300 [&_blockquote]:pl-4 [&_blockquote]:italic [&_blockquote]:text-gray-600 dark:[&_blockquote]:border-gray-700 dark:[&_blockquote]:text-gray-400\",\n \"[&_code]:rounded [&_code]:bg-gray-100 [&_code]:px-1.5 [&_code]:py-0.5 [&_code]:font-mono [&_code]:text-[0.85em] [&_code]:text-brand-600 dark:[&_code]:bg-white/[0.06] dark:[&_code]:text-brand-400\",\n \"[&_pre]:my-3 [&_pre]:overflow-x-auto [&_pre]:rounded-lg [&_pre]:bg-gray-900 [&_pre]:p-4 [&_pre]:font-mono [&_pre]:text-sm [&_pre]:text-gray-100 dark:[&_pre]:bg-black/40\",\n \"[&_pre_code]:bg-transparent [&_pre_code]:p-0 [&_pre_code]:text-inherit\",\n \"[&_hr]:my-4 [&_hr]:border-gray-200 dark:[&_hr]:border-gray-800\",\n // Placeholder styling for the empty-document first node.\n \"[&_.is-editor-empty:first-child::before]:pointer-events-none [&_.is-editor-empty:first-child::before]:float-left [&_.is-editor-empty:first-child::before]:h-0 [&_.is-editor-empty:first-child::before]:text-gray-400 [&_.is-editor-empty:first-child::before]:content-[attr(data-placeholder)] dark:[&_.is-editor-empty:first-child::before]:text-gray-600\",\n editorClassName\n )}\n />\n </div>\n );\n};\n"]}
@@ -7,43 +7,196 @@ import dayGridPlugin from '@fullcalendar/daygrid';
7
7
  import timeGridPlugin from '@fullcalendar/timegrid';
8
8
  import interactionPlugin from '@fullcalendar/interaction';
9
9
  import { createPortal } from 'react-dom';
10
- import { jsxs, jsx } from 'react/jsx-runtime';
10
+ import { X } from 'lucide-react';
11
+ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
11
12
 
12
13
  var EXIT_DURATION = 220;
13
- var BLOB_PATH = "M34.364 6.85053C38.6205 -2.28351 51.3795 -2.28351 55.636 6.85053C58.0129 11.951 63.5594 14.6722 68.9556 13.3853C78.6192 11.0807 86.5743 21.2433 82.2185 30.3287C79.7862 35.402 81.1561 41.5165 85.5082 45.0122C93.3019 51.2725 90.4628 63.9451 80.7747 66.1403C75.3648 67.3661 71.5265 72.2695 71.5572 77.9156C71.6123 88.0265 60.1169 93.6664 52.3918 87.3184C48.0781 83.7737 41.9219 83.7737 37.6082 87.3184C29.8831 93.6664 18.3877 88.0266 18.4428 77.9156C18.4735 72.2695 14.6352 67.3661 9.22531 66.1403C-0.462787 63.9451 -3.30193 51.2725 4.49185 45.0122C8.84391 41.5165 10.2138 35.402 7.78151 30.3287C3.42572 21.2433 11.3808 11.0807 21.0444 13.3853C26.4406 14.6722 31.9871 11.951 34.364 6.85053Z";
14
14
  var VARIANTS = {
15
- success: {
16
- blob: "fill-success-50 dark:fill-success-500/15",
17
- icon: "fill-success-600 dark:fill-success-500",
18
- iconPath: "M5.9375 19.0004C5.9375 11.7854 11.7864 5.93652 19.0014 5.93652C26.2164 5.93652 32.0653 11.7854 32.0653 19.0004C32.0653 26.2154 26.2164 32.0643 19.0014 32.0643C11.7864 32.0643 5.9375 26.2154 5.9375 19.0004ZM19.0014 2.93652C10.1296 2.93652 2.9375 10.1286 2.9375 19.0004C2.9375 27.8723 10.1296 35.0643 19.0014 35.0643C27.8733 35.0643 35.0653 27.8723 35.0653 19.0004C35.0653 10.1286 27.8733 2.93652 19.0014 2.93652ZM24.7855 17.0575C25.3713 16.4717 25.3713 15.522 24.7855 14.9362C24.1997 14.3504 23.25 14.3504 22.6642 14.9362L17.7177 19.8827L15.3387 17.5037C14.7529 16.9179 13.8031 16.9179 13.2173 17.5037C12.6316 18.0894 12.6316 19.0392 13.2173 19.625L16.657 23.0647C16.9383 23.346 17.3199 23.504 17.7177 23.504C18.1155 23.504 18.4971 23.346 18.7784 23.0647L24.7855 17.0575Z",
15
+ confirm: {
16
+ halo: "bg-success-500/10 text-success-500 dark:bg-success-500/15",
17
+ stroke: "stroke-success-500",
18
+ fill: "fill-success-500",
19
19
  button: "bg-success-500 hover:bg-success-600"
20
20
  },
21
- info: {
22
- blob: "fill-blue-light-50 dark:fill-blue-light-500/15",
23
- icon: "fill-blue-light-500 dark:fill-blue-light-500",
24
- iconPath: "M5.85547 18.9998C5.85547 11.7396 11.7411 5.854 19.0013 5.854C26.2615 5.854 32.1471 11.7396 32.1471 18.9998C32.1471 26.2601 26.2615 32.1457 19.0013 32.1457C11.7411 32.1457 5.85547 26.2601 5.85547 18.9998ZM19.0013 2.854C10.0842 2.854 2.85547 10.0827 2.85547 18.9998C2.85547 27.9169 10.0842 35.1457 19.0013 35.1457C27.9184 35.1457 35.1471 27.9169 35.1471 18.9998C35.1471 10.0827 27.9184 2.854 19.0013 2.854ZM16.9999 11.9145C16.9999 13.0191 17.8953 13.9145 18.9999 13.9145H19.0015C20.106 13.9145 21.0015 13.0191 21.0015 11.9145C21.0015 10.81 20.106 9.91454 19.0015 9.91454H18.9999C17.8953 9.91454 16.9999 10.81 16.9999 11.9145ZM19.0014 27.8171C18.173 27.8171 17.5014 27.1455 17.5014 26.3171V17.3293C17.5014 16.5008 18.173 15.8293 19.0014 15.8293C19.8299 15.8293 20.5014 16.5008 20.5014 17.3293L20.5014 26.3171C20.5014 27.1455 19.8299 27.8171 19.0014 27.8171Z",
25
- button: "bg-blue-light-500 hover:bg-blue-light-600"
26
- },
27
21
  warning: {
28
- blob: "fill-warning-50 dark:fill-warning-500/15",
29
- icon: "fill-warning-600 dark:fill-orange-400",
30
- iconPath: "M32.1445 19.0002C32.1445 26.2604 26.2589 32.146 18.9987 32.146C11.7385 32.146 5.85287 26.2604 5.85287 19.0002C5.85287 11.7399 11.7385 5.85433 18.9987 5.85433C26.2589 5.85433 32.1445 11.7399 32.1445 19.0002ZM18.9987 35.146C27.9158 35.146 35.1445 27.9173 35.1445 19.0002C35.1445 10.0831 27.9158 2.85433 18.9987 2.85433C10.0816 2.85433 2.85287 10.0831 2.85287 19.0002C2.85287 27.9173 10.0816 35.146 18.9987 35.146ZM21.0001 26.0855C21.0001 24.9809 20.1047 24.0855 19.0001 24.0855L18.9985 24.0855C17.894 24.0855 16.9985 24.9809 16.9985 26.0855C16.9985 27.19 17.894 28.0855 18.9985 28.0855L19.0001 28.0855C20.1047 28.0855 21.0001 27.19 21.0001 26.0855ZM18.9986 10.1829C19.827 10.1829 20.4986 10.8545 20.4986 11.6829L20.4986 20.6707C20.4986 21.4992 19.827 22.1707 18.9986 22.1707C18.1701 22.1707 17.4986 21.4992 17.4986 20.6707L17.4986 11.6829C17.4986 10.8545 18.1701 10.1829 18.9986 10.1829Z",
22
+ halo: "bg-warning-500/10 text-warning-500 dark:bg-warning-500/15 dark:text-orange-400",
23
+ stroke: "stroke-warning-500 dark:stroke-orange-400",
24
+ fill: "fill-warning-500 dark:fill-orange-400",
31
25
  button: "bg-warning-500 hover:bg-warning-600"
32
26
  },
33
- danger: {
34
- blob: "fill-error-50 dark:fill-error-500/15",
35
- icon: "fill-error-600 dark:fill-error-500",
36
- iconPath: "M9.62684 11.7496C9.04105 11.1638 9.04105 10.2141 9.62684 9.6283C10.2126 9.04252 11.1624 9.04252 11.7482 9.6283L18.9985 16.8786L26.2485 9.62851C26.8343 9.04273 27.7841 9.04273 28.3699 9.62851C28.9556 10.2143 28.9556 11.164 28.3699 11.7498L21.1198 18.9999L28.3699 26.25C28.9556 26.8358 28.9556 27.7855 28.3699 28.3713C27.7841 28.9571 26.8343 28.9571 26.2485 28.3713L18.9985 21.1212L11.7482 28.3715C11.1624 28.9573 10.2126 28.9573 9.62684 28.3715C9.04105 27.7857 9.04105 26.836 9.62684 26.2502L16.8771 18.9999L9.62684 11.7496Z",
27
+ error: {
28
+ halo: "bg-error-500/10 text-error-500 dark:bg-error-500/15",
29
+ stroke: "stroke-error-500",
30
+ fill: "fill-error-500",
37
31
  button: "bg-error-500 hover:bg-error-600"
38
32
  }
39
33
  };
34
+ var AnimatedAlertIcon = ({ variant }) => {
35
+ const v = VARIANTS[variant];
36
+ const commonStroke = cn(
37
+ "fill-none stroke-[4] [stroke-linecap:round] [stroke-linejoin:round]",
38
+ v.stroke
39
+ );
40
+ return /* @__PURE__ */ jsx(
41
+ "span",
42
+ {
43
+ className: cn(
44
+ "relative inline-flex h-[92px] w-[92px] items-center justify-center rounded-full",
45
+ v.halo
46
+ ),
47
+ "data-modal-alert-icon": variant,
48
+ "aria-hidden": "true",
49
+ children: /* @__PURE__ */ jsxs(
50
+ "svg",
51
+ {
52
+ className: "h-[72px] w-[72px]",
53
+ viewBox: "0 0 72 72",
54
+ fill: "none",
55
+ xmlns: "http://www.w3.org/2000/svg",
56
+ children: [
57
+ /* @__PURE__ */ jsx("style", { children: `
58
+ @keyframes tdui-alert-draw {
59
+ to { stroke-dashoffset: 0; }
60
+ }
61
+ @keyframes tdui-alert-pop {
62
+ 0% { opacity: 0; transform: scale(.82); }
63
+ 70% { opacity: 1; transform: scale(1.08); }
64
+ 100% { opacity: 1; transform: scale(1); }
65
+ }
66
+ .tdui-alert-draw {
67
+ animation: tdui-alert-draw .72s cubic-bezier(.22,1,.36,1) forwards;
68
+ }
69
+ .tdui-alert-pop {
70
+ opacity: 0;
71
+ transform-origin: center;
72
+ animation: tdui-alert-pop .34s cubic-bezier(.22,1,.36,1) forwards;
73
+ }
74
+ @media (prefers-reduced-motion: reduce) {
75
+ .tdui-alert-draw {
76
+ animation: none;
77
+ stroke-dashoffset: 0;
78
+ }
79
+ .tdui-alert-pop {
80
+ animation: none;
81
+ opacity: 1;
82
+ transform: none;
83
+ }
84
+ }
85
+ ` }),
86
+ variant === "confirm" && /* @__PURE__ */ jsxs(Fragment, { children: [
87
+ /* @__PURE__ */ jsx(
88
+ "circle",
89
+ {
90
+ className: commonStroke,
91
+ cx: "36",
92
+ cy: "36",
93
+ r: "27",
94
+ style: {
95
+ strokeDasharray: 170,
96
+ strokeDashoffset: 170,
97
+ animation: "tdui-alert-draw .72s cubic-bezier(.22,1,.36,1) forwards"
98
+ }
99
+ }
100
+ ),
101
+ /* @__PURE__ */ jsx(
102
+ "path",
103
+ {
104
+ className: commonStroke,
105
+ d: "M23 37.5 31.5 46 50 27",
106
+ style: {
107
+ strokeDasharray: 44,
108
+ strokeDashoffset: 44,
109
+ animation: "tdui-alert-draw .48s cubic-bezier(.22,1,.36,1) .42s forwards"
110
+ }
111
+ }
112
+ )
113
+ ] }),
114
+ variant === "error" && /* @__PURE__ */ jsxs(Fragment, { children: [
115
+ /* @__PURE__ */ jsx(
116
+ "circle",
117
+ {
118
+ className: commonStroke,
119
+ cx: "36",
120
+ cy: "36",
121
+ r: "27",
122
+ style: {
123
+ strokeDasharray: 170,
124
+ strokeDashoffset: 170,
125
+ animation: "tdui-alert-draw .62s cubic-bezier(.22,1,.36,1) forwards"
126
+ }
127
+ }
128
+ ),
129
+ /* @__PURE__ */ jsx(
130
+ "path",
131
+ {
132
+ className: commonStroke,
133
+ d: "M27 27 45 45",
134
+ style: {
135
+ strokeDasharray: 26,
136
+ strokeDashoffset: 26,
137
+ animation: "tdui-alert-draw .3s cubic-bezier(.22,1,.36,1) .38s forwards"
138
+ }
139
+ }
140
+ ),
141
+ /* @__PURE__ */ jsx(
142
+ "path",
143
+ {
144
+ className: commonStroke,
145
+ d: "M45 27 27 45",
146
+ style: {
147
+ strokeDasharray: 26,
148
+ strokeDashoffset: 26,
149
+ animation: "tdui-alert-draw .3s cubic-bezier(.22,1,.36,1) .52s forwards"
150
+ }
151
+ }
152
+ )
153
+ ] }),
154
+ variant === "warning" && /* @__PURE__ */ jsxs(Fragment, { children: [
155
+ /* @__PURE__ */ jsx(
156
+ "path",
157
+ {
158
+ className: commonStroke,
159
+ d: "M36 10 64 60H8L36 10Z",
160
+ style: {
161
+ strokeDasharray: 174,
162
+ strokeDashoffset: 174,
163
+ animation: "tdui-alert-draw .7s cubic-bezier(.22,1,.36,1) forwards"
164
+ }
165
+ }
166
+ ),
167
+ /* @__PURE__ */ jsx(
168
+ "path",
169
+ {
170
+ className: commonStroke,
171
+ d: "M36 29V42",
172
+ style: {
173
+ strokeDasharray: 13,
174
+ strokeDashoffset: 13,
175
+ animation: "tdui-alert-draw .28s cubic-bezier(.22,1,.36,1) .42s forwards"
176
+ }
177
+ }
178
+ ),
179
+ /* @__PURE__ */ jsx(
180
+ "circle",
181
+ {
182
+ className: cn("tdui-alert-pop", v.fill),
183
+ cx: "36",
184
+ cy: "51",
185
+ r: "2.6",
186
+ style: { animationDelay: ".64s" }
187
+ }
188
+ )
189
+ ] })
190
+ ]
191
+ }
192
+ )
193
+ }
194
+ );
195
+ };
40
196
  var ModalAlert = ({ variant, title, description, actionText, onAction }) => {
41
197
  const v = VARIANTS[variant];
42
198
  return /* @__PURE__ */ jsxs("div", { className: "text-center", children: [
43
- /* @__PURE__ */ jsxs("div", { className: "relative z-1 mb-7 flex items-center justify-center", children: [
44
- /* @__PURE__ */ jsx("svg", { className: v.blob, width: "90", height: "90", viewBox: "0 0 90 90", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsx("path", { d: BLOB_PATH }) }),
45
- /* @__PURE__ */ jsx("span", { className: "absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2", children: /* @__PURE__ */ jsx("svg", { className: v.icon, width: "38", height: "38", viewBox: "0 0 38 38", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: v.iconPath }) }) })
46
- ] }),
199
+ /* @__PURE__ */ jsx("div", { className: "relative z-1 mb-7 flex items-center justify-center", children: /* @__PURE__ */ jsx(AnimatedAlertIcon, { variant }) }),
47
200
  title && /* @__PURE__ */ jsx("h4", { className: "mb-2 text-2xl font-semibold text-gray-800 dark:text-white/90", children: title }),
48
201
  description && /* @__PURE__ */ jsx("p", { className: "text-sm leading-6 text-gray-500 dark:text-gray-400", children: description }),
49
202
  /* @__PURE__ */ jsx("div", { className: "mt-7 flex w-full items-center justify-center gap-3", children: /* @__PURE__ */ jsx(
@@ -143,25 +296,7 @@ var Modal = ({
143
296
  "z-99 flex h-9.5 w-9.5 shrink-0 items-center justify-center rounded-full bg-gray-100 text-gray-400 transition-colors hover:bg-gray-200 hover:text-gray-700 dark:bg-gray-800 dark:text-gray-400 dark:hover:bg-gray-700 dark:hover:text-white sm:h-11 sm:w-11",
144
297
  !isInline && "absolute right-3 top-3 sm:right-6 sm:top-6"
145
298
  ),
146
- children: /* @__PURE__ */ jsx(
147
- "svg",
148
- {
149
- width: "24",
150
- height: "24",
151
- viewBox: "0 0 24 24",
152
- fill: "none",
153
- xmlns: "http://www.w3.org/2000/svg",
154
- children: /* @__PURE__ */ jsx(
155
- "path",
156
- {
157
- fillRule: "evenodd",
158
- clipRule: "evenodd",
159
- d: "M6.04289 16.5413C5.65237 16.9318 5.65237 17.565 6.04289 17.9555C6.43342 18.346 7.06658 18.346 7.45711 17.9555L11.9987 13.4139L16.5408 17.956C16.9313 18.3466 17.5645 18.3466 17.955 17.956C18.3455 17.5655 18.3455 16.9323 17.955 16.5418L13.4129 11.9997L17.955 7.4576C18.3455 7.06707 18.3455 6.43391 17.955 6.04338C17.5645 5.65286 16.9313 5.65286 16.5408 6.04338L11.9987 10.5855L7.45711 6.0439C7.06658 5.65338 6.43342 5.65338 6.04289 6.0439C5.65237 6.43442 5.65237 7.06759 6.04289 7.45811L10.5845 11.9997L6.04289 16.5413Z",
160
- fill: "currentColor"
161
- }
162
- )
163
- }
164
- )
299
+ children: /* @__PURE__ */ jsx(X, { className: "h-6 w-6", "aria-hidden": "true" })
165
300
  }
166
301
  );
167
302
  return createPortal(
@@ -471,5 +606,5 @@ var renderEventContent = (eventInfo) => {
471
606
  };
472
607
 
473
608
  export { Calendar, Modal };
474
- //# sourceMappingURL=chunk-QGLKSM7S.js.map
475
- //# sourceMappingURL=chunk-QGLKSM7S.js.map
609
+ //# sourceMappingURL=chunk-PYZG7RY7.js.map
610
+ //# sourceMappingURL=chunk-PYZG7RY7.js.map