@craftzbay/ui 0.8.1 → 0.10.0

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 (172) hide show
  1. package/README.md +72 -6
  2. package/dist-lib/components/ui/Accordion.js +60 -0
  3. package/dist-lib/components/ui/Accordion.js.map +1 -0
  4. package/dist-lib/components/ui/Alert.d.ts +1 -1
  5. package/dist-lib/components/ui/Alert.js +66 -0
  6. package/dist-lib/components/ui/Alert.js.map +1 -0
  7. package/dist-lib/components/ui/Avatar.d.ts +2 -2
  8. package/dist-lib/components/ui/Avatar.js +96 -0
  9. package/dist-lib/components/ui/Avatar.js.map +1 -0
  10. package/dist-lib/components/ui/Badge.d.ts +1 -1
  11. package/dist-lib/components/ui/Badge.js +67 -0
  12. package/dist-lib/components/ui/Badge.js.map +1 -0
  13. package/dist-lib/components/ui/Breadcrumbs.js +34 -0
  14. package/dist-lib/components/ui/Breadcrumbs.js.map +1 -0
  15. package/dist-lib/components/ui/Button.d.ts +1 -1
  16. package/dist-lib/components/ui/Button.js +117 -0
  17. package/dist-lib/components/ui/Button.js.map +1 -0
  18. package/dist-lib/components/ui/Calendar.d.ts +7 -1
  19. package/dist-lib/components/ui/Calendar.js +111 -0
  20. package/dist-lib/components/ui/Calendar.js.map +1 -0
  21. package/dist-lib/components/ui/Card.d.ts +1 -1
  22. package/dist-lib/components/ui/Card.js +116 -0
  23. package/dist-lib/components/ui/Card.js.map +1 -0
  24. package/dist-lib/components/ui/Carousel.d.ts +5 -1
  25. package/dist-lib/components/ui/Carousel.js +143 -0
  26. package/dist-lib/components/ui/Carousel.js.map +1 -0
  27. package/dist-lib/components/ui/Chart.d.ts +26 -4
  28. package/dist-lib/components/ui/Chart.js +253 -0
  29. package/dist-lib/components/ui/Chart.js.map +1 -0
  30. package/dist-lib/components/ui/Checkbox.js +56 -0
  31. package/dist-lib/components/ui/Checkbox.js.map +1 -0
  32. package/dist-lib/components/ui/Combobox.d.ts +7 -0
  33. package/dist-lib/components/ui/Combobox.js +164 -0
  34. package/dist-lib/components/ui/Combobox.js.map +1 -0
  35. package/dist-lib/components/ui/CommandPalette.d.ts +3 -3
  36. package/dist-lib/components/ui/CommandPalette.js +174 -0
  37. package/dist-lib/components/ui/CommandPalette.js.map +1 -0
  38. package/dist-lib/components/ui/ContextMenu.js +150 -0
  39. package/dist-lib/components/ui/ContextMenu.js.map +1 -0
  40. package/dist-lib/components/ui/DataGrid.js +84 -0
  41. package/dist-lib/components/ui/DataGrid.js.map +1 -0
  42. package/dist-lib/components/ui/DatePicker.d.ts +16 -13
  43. package/dist-lib/components/ui/DatePicker.js +174 -0
  44. package/dist-lib/components/ui/DatePicker.js.map +1 -0
  45. package/dist-lib/components/ui/DesignSystemProvider.d.ts +8 -1
  46. package/dist-lib/components/ui/DesignSystemProvider.js +79 -0
  47. package/dist-lib/components/ui/DesignSystemProvider.js.map +1 -0
  48. package/dist-lib/components/ui/Dialog.d.ts +1 -1
  49. package/dist-lib/components/ui/Dialog.js +140 -0
  50. package/dist-lib/components/ui/Dialog.js.map +1 -0
  51. package/dist-lib/components/ui/Drawer.d.ts +6 -0
  52. package/dist-lib/components/ui/Drawer.js +98 -0
  53. package/dist-lib/components/ui/Drawer.js.map +1 -0
  54. package/dist-lib/components/ui/DropdownMenu.js +164 -0
  55. package/dist-lib/components/ui/DropdownMenu.js.map +1 -0
  56. package/dist-lib/components/ui/EmptyState.js +32 -0
  57. package/dist-lib/components/ui/EmptyState.js.map +1 -0
  58. package/dist-lib/components/ui/ErrorState.js +48 -0
  59. package/dist-lib/components/ui/ErrorState.js.map +1 -0
  60. package/dist-lib/components/ui/FileUpload.d.ts +3 -0
  61. package/dist-lib/components/ui/FileUpload.js +108 -0
  62. package/dist-lib/components/ui/FileUpload.js.map +1 -0
  63. package/dist-lib/components/ui/Form.d.ts +1 -0
  64. package/dist-lib/components/ui/Form.js +105 -0
  65. package/dist-lib/components/ui/Form.js.map +1 -0
  66. package/dist-lib/components/ui/Icon.d.ts +34 -0
  67. package/dist-lib/components/ui/Icon.js +26 -0
  68. package/dist-lib/components/ui/Icon.js.map +1 -0
  69. package/dist-lib/components/ui/IconButton.d.ts +1 -1
  70. package/dist-lib/components/ui/IconButton.js +56 -0
  71. package/dist-lib/components/ui/IconButton.js.map +1 -0
  72. package/dist-lib/components/ui/Input.d.ts +6 -3
  73. package/dist-lib/components/ui/Input.js +135 -0
  74. package/dist-lib/components/ui/Input.js.map +1 -0
  75. package/dist-lib/components/ui/Kbd.js +24 -0
  76. package/dist-lib/components/ui/Kbd.js.map +1 -0
  77. package/dist-lib/components/ui/MultiSelect.d.ts +3 -1
  78. package/dist-lib/components/ui/MultiSelect.js +196 -0
  79. package/dist-lib/components/ui/MultiSelect.js.map +1 -0
  80. package/dist-lib/components/ui/Pagination.d.ts +23 -0
  81. package/dist-lib/components/ui/Pagination.js +148 -0
  82. package/dist-lib/components/ui/Pagination.js.map +1 -0
  83. package/dist-lib/components/ui/Popover.js +35 -0
  84. package/dist-lib/components/ui/Popover.js.map +1 -0
  85. package/dist-lib/components/ui/Progress.js +95 -0
  86. package/dist-lib/components/ui/Progress.js.map +1 -0
  87. package/dist-lib/components/ui/RadioGroup.js +64 -0
  88. package/dist-lib/components/ui/RadioGroup.js.map +1 -0
  89. package/dist-lib/components/ui/ScrollArea.js +44 -0
  90. package/dist-lib/components/ui/ScrollArea.js.map +1 -0
  91. package/dist-lib/components/ui/Select.js +131 -0
  92. package/dist-lib/components/ui/Select.js.map +1 -0
  93. package/dist-lib/components/ui/Separator.js +26 -0
  94. package/dist-lib/components/ui/Separator.js.map +1 -0
  95. package/dist-lib/components/ui/Sheet.d.ts +1 -1
  96. package/dist-lib/components/ui/Sheet.js +113 -0
  97. package/dist-lib/components/ui/Sheet.js.map +1 -0
  98. package/dist-lib/components/ui/Sidebar.d.ts +18 -6
  99. package/dist-lib/components/ui/Sidebar.js +169 -0
  100. package/dist-lib/components/ui/Sidebar.js.map +1 -0
  101. package/dist-lib/components/ui/Skeleton.js +28 -0
  102. package/dist-lib/components/ui/Skeleton.js.map +1 -0
  103. package/dist-lib/components/ui/Slider.js +52 -0
  104. package/dist-lib/components/ui/Slider.js.map +1 -0
  105. package/dist-lib/components/ui/Snackbar.d.ts +1 -1
  106. package/dist-lib/components/ui/Snackbar.js +56 -0
  107. package/dist-lib/components/ui/Snackbar.js.map +1 -0
  108. package/dist-lib/components/ui/Spinner.js +42 -0
  109. package/dist-lib/components/ui/Spinner.js.map +1 -0
  110. package/dist-lib/components/ui/Stepper.js +88 -0
  111. package/dist-lib/components/ui/Stepper.js.map +1 -0
  112. package/dist-lib/components/ui/Switch.js +77 -0
  113. package/dist-lib/components/ui/Switch.js.map +1 -0
  114. package/dist-lib/components/ui/Table.d.ts +9 -1
  115. package/dist-lib/components/ui/Table.js +157 -0
  116. package/dist-lib/components/ui/Table.js.map +1 -0
  117. package/dist-lib/components/ui/Tabs.d.ts +1 -1
  118. package/dist-lib/components/ui/Tabs.js +89 -0
  119. package/dist-lib/components/ui/Tabs.js.map +1 -0
  120. package/dist-lib/components/ui/TagInput.d.ts +17 -2
  121. package/dist-lib/components/ui/TagInput.js +111 -0
  122. package/dist-lib/components/ui/TagInput.js.map +1 -0
  123. package/dist-lib/components/ui/Textarea.js +77 -0
  124. package/dist-lib/components/ui/Textarea.js.map +1 -0
  125. package/dist-lib/components/ui/Timeline.d.ts +16 -6
  126. package/dist-lib/components/ui/Timeline.js +52 -0
  127. package/dist-lib/components/ui/Timeline.js.map +1 -0
  128. package/dist-lib/components/ui/Toast.d.ts +1 -1
  129. package/dist-lib/components/ui/Toast.js +171 -0
  130. package/dist-lib/components/ui/Toast.js.map +1 -0
  131. package/dist-lib/components/ui/Tooltip.js +58 -0
  132. package/dist-lib/components/ui/Tooltip.js.map +1 -0
  133. package/dist-lib/components/ui/TopNav.js +52 -0
  134. package/dist-lib/components/ui/TopNav.js.map +1 -0
  135. package/dist-lib/components/ui/Tree.d.ts +27 -5
  136. package/dist-lib/components/ui/Tree.js +167 -0
  137. package/dist-lib/components/ui/Tree.js.map +1 -0
  138. package/dist-lib/hooks/use-field-ids.d.ts +29 -0
  139. package/dist-lib/hooks/use-field-ids.js +18 -0
  140. package/dist-lib/hooks/use-field-ids.js.map +1 -0
  141. package/dist-lib/hooks/use-media-query.js +18 -0
  142. package/dist-lib/hooks/use-media-query.js.map +1 -0
  143. package/dist-lib/hooks/use-strings.d.ts +5 -0
  144. package/dist-lib/hooks/use-strings.js +12 -0
  145. package/dist-lib/hooks/use-strings.js.map +1 -0
  146. package/dist-lib/hooks/use-toast.js +36 -0
  147. package/dist-lib/hooks/use-toast.js.map +1 -0
  148. package/dist-lib/icon.d.ts +8 -0
  149. package/dist-lib/icon.js +7 -0
  150. package/dist-lib/icon.js.map +1 -0
  151. package/dist-lib/icons/index.d.ts +71 -11
  152. package/dist-lib/icons/index.js +145 -0
  153. package/dist-lib/icons/index.js.map +1 -0
  154. package/dist-lib/illustrations/index.js +105 -0
  155. package/dist-lib/illustrations/index.js.map +1 -0
  156. package/dist-lib/index.d.ts +62 -58
  157. package/dist-lib/index.js +268 -4386
  158. package/dist-lib/index.js.map +1 -1
  159. package/dist-lib/lib/strings.d.ts +129 -0
  160. package/dist-lib/lib/strings.js +85 -0
  161. package/dist-lib/lib/strings.js.map +1 -0
  162. package/dist-lib/lib/strings.mn.d.ts +3 -0
  163. package/dist-lib/lib/strings.mn.js +70 -0
  164. package/dist-lib/lib/strings.mn.js.map +1 -0
  165. package/dist-lib/lib/utils.d.ts +0 -1
  166. package/dist-lib/lib/utils.js +10 -0
  167. package/dist-lib/lib/utils.js.map +1 -0
  168. package/dist-lib/styles.css +1 -1
  169. package/dist-lib/theme.css +777 -0
  170. package/package.json +31 -8
  171. package/dist-lib/index.cjs +0 -8
  172. package/dist-lib/index.cjs.map +0 -1
package/dist-lib/index.js CHANGED
@@ -1,4389 +1,271 @@
1
- import { clsx as Zt } from "clsx";
2
- import { twMerge as Jt } from "tailwind-merge";
3
- import { useState as S, useEffect as J, useCallback as H, forwardRef as u, useId as B, useMemo as ge, useContext as Z, createContext as be, useRef as $e } from "react";
4
- import { AlertCircle as er, AlertTriangle as pe, ArrowDown as We, ArrowLeft as tr, ArrowRight as rr, ArrowUp as Ue, ArrowUpDown as Ke, AtSign as nr, BarChart3 as or, Bell as ar, Bookmark as sr, Calendar as Xe, Check as K, CheckCircle2 as he, ChevronDown as ie, ChevronLeft as xe, ChevronRight as W, ChevronUp as Qe, ChevronsLeft as Re, ChevronsRight as Le, ChevronsUpDown as ve, Circle as je, Copy as ir, CornerDownLeft as lr, CreditCard as dr, Download as cr, Edit2 as ur, Ellipsis as mr, ExternalLink as fr, Eye as Ye, EyeOff as qe, Filter as gr, Folder as Ze, GripVertical as br, HelpCircle as pr, Home as hr, Inbox as xr, Info as Ne, LayoutGrid as vr, Link2 as Nr, Loader2 as ye, Lock as yr, LogOut as wr, Mail as kr, Menu as Cr, Minus as Je, Moon as zr, MoreHorizontal as et, Package as Sr, Plug as Tr, Plus as Dr, Search as Be, Settings as tt, Sparkles as Mr, Sun as Ir, Trash2 as Pr, Upload as rt, User as _r, Users as Fr, X as j, XCircle as we, File as nt, FolderOpen as $r } from "lucide-react";
5
- import { jsxs as d, jsx as e, Fragment as ot } from "react/jsx-runtime";
6
- import * as ae from "@radix-ui/react-accordion";
7
- import { cva as A } from "class-variance-authority";
8
- import { cva as Ps } from "class-variance-authority";
9
- import * as _e from "@radix-ui/react-avatar";
10
- import { Slot as at } from "@radix-ui/react-slot";
11
- import * as Ee from "@radix-ui/react-checkbox";
12
- import * as T from "@radix-ui/react-popover";
13
- import { Command as P } from "cmdk";
14
- import * as z from "@radix-ui/react-dialog";
15
- import * as F from "@radix-ui/react-context-menu";
16
- import * as $ from "@radix-ui/react-dropdown-menu";
17
- import { DayPicker as Rr } from "react-day-picker";
18
- import * as Lr from "@radix-ui/react-label";
19
- import { FormProvider as jr, Controller as Br, useFormContext as Ar } from "react-hook-form";
20
- import * as _ from "@radix-ui/react-select";
21
- import * as Oe from "@radix-ui/react-progress";
22
- import * as Fe from "@radix-ui/react-radio-group";
23
- import * as oe from "@radix-ui/react-scroll-area";
24
- import * as Er from "@radix-ui/react-separator";
25
- import * as de from "@radix-ui/react-slider";
26
- import * as He from "@radix-ui/react-switch";
27
- import * as ke from "@radix-ui/react-tabs";
28
- import * as ee from "@radix-ui/react-toast";
29
- import * as se from "@radix-ui/react-tooltip";
30
- import Or from "embla-carousel-react";
31
- import { Drawer as X } from "vaul";
32
- function i(...o) {
33
- return Jt(Zt(o));
34
- }
35
- let Ge = 0;
36
- function Sa(o = "ds") {
37
- return Ge += 1, `${o}-${Ge}`;
38
- }
39
- function Hr(o) {
40
- const [t, r] = S(() => typeof window > "u" ? !1 : window.matchMedia(o).matches);
41
- return J(() => {
42
- if (typeof window > "u") return;
43
- const n = window.matchMedia(o), a = (s) => r(s.matches);
44
- return r(n.matches), n.addEventListener("change", a), () => n.removeEventListener("change", a);
45
- }, [o]), t;
46
- }
47
- function Ta() {
48
- return Hr("(prefers-reduced-motion: reduce)");
49
- }
50
- const q = {
51
- toasts: [],
52
- listeners: /* @__PURE__ */ new Set(),
53
- emit() {
54
- for (const o of this.listeners) o(this.toasts);
55
- },
56
- push(o) {
57
- const t = o.id ?? `t_${Date.now()}_${Math.random().toString(36).slice(2, 7)}`, r = { open: !0, duration: 5e3, variant: "default", ...o, id: t };
58
- return this.toasts = [r, ...this.toasts].slice(0, 3), this.emit(), t;
59
- },
60
- dismiss(o) {
61
- this.toasts = this.toasts.map((t) => t.id === o ? { ...t, open: !1 } : t), this.emit();
62
- },
63
- remove(o) {
64
- this.toasts = this.toasts.filter((t) => t.id !== o), this.emit();
65
- }
66
- };
67
- function Gr() {
68
- const [o, t] = S(() => [...q.toasts]);
69
- J(() => {
70
- const s = (l) => t([...l]);
71
- return q.listeners.add(s), () => {
72
- q.listeners.delete(s);
73
- };
74
- }, []);
75
- const r = H((s) => q.push(s), []), n = H((s) => q.dismiss(s), []), a = H((s) => q.remove(s), []);
76
- return { toasts: o, push: r, dismiss: n, remove: a };
77
- }
78
- const Da = (o) => q.push(o), Ma = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
79
- __proto__: null,
80
- AlertCircle: er,
81
- AlertTriangle: pe,
82
- ArrowDown: We,
83
- ArrowLeft: tr,
84
- ArrowRight: rr,
85
- ArrowUp: Ue,
86
- ArrowUpDown: Ke,
87
- AtSign: nr,
88
- BarChart3: or,
89
- Bell: ar,
90
- Bookmark: sr,
91
- Calendar: Xe,
92
- Check: K,
93
- CheckCircle2: he,
94
- ChevronDown: ie,
95
- ChevronLeft: xe,
96
- ChevronRight: W,
97
- ChevronUp: Qe,
98
- ChevronsLeft: Re,
99
- ChevronsRight: Le,
100
- ChevronsUpDown: ve,
101
- Circle: je,
102
- Copy: ir,
103
- CornerDownLeft: lr,
104
- CreditCard: dr,
105
- Download: cr,
106
- Edit2: ur,
107
- Ellipsis: mr,
108
- ExternalLink: fr,
109
- Eye: Ye,
110
- EyeOff: qe,
111
- Filter: gr,
112
- Folder: Ze,
113
- GripVertical: br,
114
- HelpCircle: pr,
115
- Home: hr,
116
- Inbox: xr,
117
- Info: Ne,
118
- LayoutGrid: vr,
119
- Link2: Nr,
120
- Loader2: ye,
121
- Lock: yr,
122
- LogOut: wr,
123
- Mail: kr,
124
- Menu: Cr,
125
- Minus: Je,
126
- Moon: zr,
127
- MoreHorizontal: et,
128
- Package: Sr,
129
- Plug: Tr,
130
- Plus: Dr,
131
- Search: Be,
132
- Settings: tt,
133
- Sparkles: Mr,
134
- Sun: Ir,
135
- Trash2: Pr,
136
- Upload: rt,
137
- User: _r,
138
- Users: Fr,
139
- X: j,
140
- XCircle: we
141
- }, Symbol.toStringTag, { value: "Module" }));
142
- function re({ className: o, children: t, ...r }) {
143
- return /* @__PURE__ */ e(
144
- "svg",
145
- {
146
- viewBox: "0 0 120 120",
147
- role: "img",
148
- width: "120",
149
- height: "120",
150
- fill: "none",
151
- stroke: "currentColor",
152
- strokeWidth: "1.5",
153
- strokeLinecap: "round",
154
- strokeLinejoin: "round",
155
- className: i("text-foreground-subtle", o),
156
- "aria-hidden": !0,
157
- ...r,
158
- children: t
159
- }
160
- );
161
- }
162
- function st(o) {
163
- return /* @__PURE__ */ d(re, { ...o, children: [
164
- /* @__PURE__ */ e("path", { d: "M22 56l10-28a6 6 0 0 1 6-4h44a6 6 0 0 1 6 4l10 28" }),
165
- /* @__PURE__ */ e("path", { d: "M22 56v32a6 6 0 0 0 6 6h64a6 6 0 0 0 6-6V56" }),
166
- /* @__PURE__ */ e("path", { d: "M22 56h22l4 10h24l4-10h22" }),
167
- /* @__PURE__ */ e("circle", { cx: "60", cy: "36", r: "2", className: "text-accent", stroke: "currentColor" }),
168
- /* @__PURE__ */ e("path", { d: "M52 28l8 8M68 28l-8 8", opacity: "0.4" })
169
- ] });
170
- }
171
- function Vr(o) {
172
- return /* @__PURE__ */ d(re, { ...o, children: [
173
- /* @__PURE__ */ e("circle", { cx: "52", cy: "52", r: "26" }),
174
- /* @__PURE__ */ e("path", { d: "M72 72l20 20" }),
175
- /* @__PURE__ */ e("path", { d: "M42 52h20", opacity: "0.5" }),
176
- /* @__PURE__ */ e("circle", { cx: "98", cy: "22", r: "1.5", className: "text-accent", stroke: "currentColor" }),
177
- /* @__PURE__ */ e("circle", { cx: "20", cy: "92", r: "1.5", className: "text-accent", stroke: "currentColor" })
178
- ] });
179
- }
180
- function it(o) {
181
- return /* @__PURE__ */ d(re, { ...o, children: [
182
- /* @__PURE__ */ e("path", { d: "M22 32h76v56a6 6 0 0 1-6 6H28a6 6 0 0 1-6-6V32z" }),
183
- /* @__PURE__ */ e("path", { d: "M22 44h76" }),
184
- /* @__PURE__ */ e("circle", { cx: "32", cy: "38", r: "1.5" }),
185
- /* @__PURE__ */ e("circle", { cx: "40", cy: "38", r: "1.5" }),
186
- /* @__PURE__ */ e("circle", { cx: "48", cy: "38", r: "1.5" }),
187
- /* @__PURE__ */ e("path", { d: "M44 64l32 16M76 64l-32 16", className: "text-accent", stroke: "currentColor" }),
188
- /* @__PURE__ */ e(
189
- "text",
190
- {
191
- x: "60",
192
- y: "76",
193
- fontFamily: "ui-monospace,monospace",
194
- fontSize: "9",
195
- textAnchor: "middle",
196
- fill: "currentColor",
197
- stroke: "none",
198
- opacity: "0.6",
199
- children: "404"
200
- }
201
- )
202
- ] });
203
- }
204
- function lt(o) {
205
- return /* @__PURE__ */ d(re, { ...o, children: [
206
- /* @__PURE__ */ e("rect", { x: "22", y: "28", width: "76", height: "20", rx: "3" }),
207
- /* @__PURE__ */ e("rect", { x: "22", y: "54", width: "76", height: "20", rx: "3" }),
208
- /* @__PURE__ */ e("rect", { x: "22", y: "80", width: "76", height: "20", rx: "3" }),
209
- /* @__PURE__ */ e("circle", { cx: "32", cy: "38", r: "2", className: "text-danger", stroke: "currentColor" }),
210
- /* @__PURE__ */ e("circle", { cx: "32", cy: "64", r: "2", className: "text-danger", stroke: "currentColor" }),
211
- /* @__PURE__ */ e("circle", { cx: "32", cy: "90", r: "2", className: "text-warning", stroke: "currentColor" }),
212
- /* @__PURE__ */ e("path", { d: "M44 38h44M44 64h44M44 90h28", opacity: "0.4" }),
213
- /* @__PURE__ */ e("path", { d: "M82 84l16 16M82 100l16-16", className: "text-danger", stroke: "currentColor" })
214
- ] });
215
- }
216
- function Wr(o) {
217
- return /* @__PURE__ */ d(re, { ...o, children: [
218
- /* @__PURE__ */ e("path", { d: "M22 86h76" }),
219
- /* @__PURE__ */ e("path", { d: "M30 86V52l30-22 30 22v34" }),
220
- /* @__PURE__ */ e("rect", { x: "40", y: "64", width: "14", height: "14", rx: "1" }),
221
- /* @__PURE__ */ e("rect", { x: "66", y: "64", width: "14", height: "14", rx: "1" }),
222
- /* @__PURE__ */ e("path", { d: "M30 52h60", opacity: "0.4" }),
223
- /* @__PURE__ */ e("path", { d: "M40 40v6M50 36v10M70 36v10M80 40v6", className: "text-accent", stroke: "currentColor" })
224
- ] });
225
- }
226
- function dt(o) {
227
- return /* @__PURE__ */ d(re, { ...o, children: [
228
- /* @__PURE__ */ e("path", { d: "M22 60a40 40 0 0 1 76 0", opacity: "0.4" }),
229
- /* @__PURE__ */ e("path", { d: "M34 70a28 28 0 0 1 52 0", opacity: "0.6" }),
230
- /* @__PURE__ */ e("path", { d: "M46 80a16 16 0 0 1 28 0" }),
231
- /* @__PURE__ */ e("circle", { cx: "60", cy: "92", r: "3" }),
232
- /* @__PURE__ */ e("path", { d: "M20 20l80 80", className: "text-danger", stroke: "currentColor" })
233
- ] });
234
- }
235
- const Ia = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
236
- __proto__: null,
237
- ConnectionLost: dt,
238
- Construction: Wr,
239
- InboxEmpty: st,
240
- NoSearchResults: Vr,
241
- NotFound: it,
242
- ServerError: lt
243
- }, Symbol.toStringTag, { value: "Module" })), Pa = ae.Root, Ur = u(function({ className: t, ...r }, n) {
244
- return /* @__PURE__ */ e(ae.Item, { ref: n, className: i("border-b border-border", t), ...r });
245
- });
246
- Ur.displayName = "AccordionItem";
247
- const Kr = u(function({ className: t, children: r, ...n }, a) {
248
- return /* @__PURE__ */ e(ae.Header, { className: "flex", children: /* @__PURE__ */ d(
249
- ae.Trigger,
250
- {
251
- ref: a,
252
- className: i(
253
- "flex flex-1 items-center justify-between gap-2 py-4 text-left text-sm font-medium text-foreground",
254
- "outline-none transition-colors duration-[var(--duration-fast)]",
255
- "hover:text-accent",
256
- "focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background",
257
- "[&[data-state=open]>svg]:rotate-180",
258
- t
259
- ),
260
- ...n,
261
- children: [
262
- r,
263
- /* @__PURE__ */ e(
264
- ie,
265
- {
266
- className: "size-4 shrink-0 text-foreground-subtle transition-transform duration-[var(--duration-base)]",
267
- "aria-hidden": !0
268
- }
269
- )
270
- ]
271
- }
272
- ) });
273
- });
274
- Kr.displayName = "AccordionTrigger";
275
- const Xr = u(function({ className: t, children: r, ...n }, a) {
276
- return /* @__PURE__ */ e(
277
- ae.Content,
278
- {
279
- ref: a,
280
- className: i(
281
- "overflow-hidden text-sm text-foreground-muted",
282
- "data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down"
283
- ),
284
- ...n,
285
- children: /* @__PURE__ */ e("div", { className: i("pb-4 pt-0", t), children: r })
286
- }
287
- );
288
- });
289
- Xr.displayName = "AccordionContent";
290
- const Qr = A(
291
- ["relative flex w-full gap-3 rounded-lg border p-4", "text-sm"],
292
- {
293
- variants: {
294
- variant: {
295
- default: "border-border bg-background-subtle text-foreground",
296
- info: "border-info-border-soft bg-info-soft text-info-text",
297
- success: "border-success-border-soft bg-success-soft text-success-text",
298
- warning: "border-warning-border-soft bg-warning-soft text-warning-text",
299
- danger: "border-danger-border-soft bg-danger-soft text-danger-text"
300
- }
301
- },
302
- defaultVariants: { variant: "default" }
303
- }
304
- ), Yr = {
305
- default: null,
306
- info: /* @__PURE__ */ e(Ne, { className: "size-4 shrink-0 mt-0.5", "aria-hidden": !0 }),
307
- success: /* @__PURE__ */ e(he, { className: "size-4 shrink-0 mt-0.5", "aria-hidden": !0 }),
308
- warning: /* @__PURE__ */ e(pe, { className: "size-4 shrink-0 mt-0.5", "aria-hidden": !0 }),
309
- danger: /* @__PURE__ */ e(we, { className: "size-4 shrink-0 mt-0.5", "aria-hidden": !0 })
310
- }, qr = u(function({ className: t, variant: r = "default", title: n, dismissible: a, onDismiss: s, icon: l, children: m, ...f }, c) {
311
- const [b, p] = S(!0);
312
- if (!b) return null;
313
- const g = () => {
314
- p(!1), s == null || s();
315
- }, h = l === !1 ? null : l ?? Yr[r ?? "default"];
316
- return /* @__PURE__ */ d("div", { ref: c, role: "alert", className: i(Qr({ variant: r }), t), ...f, children: [
317
- h,
318
- /* @__PURE__ */ d("div", { className: "flex-1 min-w-0", children: [
319
- n && /* @__PURE__ */ e("h5", { className: "font-medium leading-tight mb-1", children: n }),
320
- /* @__PURE__ */ e("div", { className: "text-sm leading-relaxed [&_p]:leading-relaxed", children: m })
321
- ] }),
322
- a && /* @__PURE__ */ e(
323
- "button",
324
- {
325
- type: "button",
326
- "aria-label": "Dismiss",
327
- onClick: g,
328
- className: i(
329
- "inline-flex size-6 shrink-0 items-center justify-center rounded-md",
330
- "hover:bg-current/10 outline-none",
331
- "focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background"
332
- ),
333
- children: /* @__PURE__ */ e(j, { className: "size-3.5", "aria-hidden": !0 })
334
- }
335
- )
336
- ] });
337
- });
338
- qr.displayName = "Alert";
339
- const ct = {
340
- xs: "size-5 text-[10px]",
341
- sm: "size-6 text-xs",
342
- md: "size-8 text-xs",
343
- lg: "size-10 text-sm",
344
- xl: "size-12 text-base"
345
- }, Zr = A("relative inline-flex shrink-0", {
346
- variants: { size: ct },
347
- defaultVariants: { size: "md" }
348
- }), Jr = {
349
- online: "bg-success",
350
- busy: "bg-danger",
351
- away: "bg-warning",
352
- offline: "bg-foreground-subtle"
353
- }, en = u(
354
- function({ className: t, size: r, src: n, alt: a, fallback: s, status: l, ...m }, f) {
355
- return /* @__PURE__ */ d("span", { className: Zr({ size: r }), children: [
356
- /* @__PURE__ */ d(
357
- _e.Root,
358
- {
359
- ref: f,
360
- className: i(
361
- "block size-full overflow-hidden rounded-full bg-background-muted text-foreground-muted",
362
- t
363
- ),
364
- ...m,
365
- children: [
366
- n && /* @__PURE__ */ e(
367
- _e.Image,
368
- {
369
- src: n,
370
- alt: a ?? "",
371
- className: "aspect-square size-full object-cover"
372
- }
373
- ),
374
- /* @__PURE__ */ e(
375
- _e.Fallback,
376
- {
377
- delayMs: n ? 200 : 0,
378
- className: "flex size-full items-center justify-center bg-background-muted font-medium uppercase",
379
- children: s ?? "?"
380
- }
381
- )
382
- ]
383
- }
384
- ),
385
- l && /* @__PURE__ */ e(
386
- "span",
387
- {
388
- "aria-label": `Status: ${l}`,
389
- className: i(
390
- "absolute bottom-0 right-0 block size-[28%] rounded-full ring-2 ring-background",
391
- Jr[l]
392
- )
393
- }
394
- )
395
- ] });
396
- }
397
- );
398
- en.displayName = "Avatar";
399
- const tn = u(function({ max: t = 4, size: r = "md", className: n, children: a, ...s }, l) {
400
- const m = Array.isArray(a) ? a : [a], f = m.slice(0, t), c = m.length - f.length;
401
- return /* @__PURE__ */ d("div", { ref: l, className: i("flex items-center -space-x-2", n), ...s, children: [
402
- f.map((b, p) => /* @__PURE__ */ e("div", { className: "ring-2 ring-background rounded-full", children: b }, p)),
403
- c > 0 && /* @__PURE__ */ d(
404
- "div",
405
- {
406
- className: i(
407
- "inline-flex items-center justify-center rounded-full bg-background-muted text-foreground-muted ring-2 ring-background",
408
- ct[r],
409
- "font-medium"
410
- ),
411
- "aria-label": `${c} more`,
412
- children: [
413
- "+",
414
- c
415
- ]
416
- }
417
- )
418
- ] });
419
- });
420
- tn.displayName = "AvatarGroup";
421
- const rn = A(
422
- [
423
- "inline-flex items-center gap-1 rounded-full px-2 py-0.5",
424
- "text-xs font-medium whitespace-nowrap"
425
- ],
426
- {
427
- variants: {
428
- variant: {
429
- subtle: "",
430
- outline: "border bg-transparent"
431
- },
432
- tone: {
433
- neutral: "",
434
- accent: "",
435
- success: "",
436
- warning: "",
437
- danger: "",
438
- info: ""
439
- }
440
- },
441
- compoundVariants: [
442
- // Subtle — coloured fill + matching text.
443
- { variant: "subtle", tone: "neutral", class: "bg-background-muted text-foreground-muted" },
444
- { variant: "subtle", tone: "accent", class: "bg-accent-soft text-on-accent-soft" },
445
- { variant: "subtle", tone: "success", class: "bg-success-soft text-success-text" },
446
- { variant: "subtle", tone: "warning", class: "bg-warning-soft text-warning-text" },
447
- { variant: "subtle", tone: "danger", class: "bg-danger-soft text-danger-text" },
448
- { variant: "subtle", tone: "info", class: "bg-info-soft text-info-text" },
449
- // Outline — coloured border + text, transparent fill.
450
- { variant: "outline", tone: "neutral", class: "border-border text-foreground-muted" },
451
- { variant: "outline", tone: "accent", class: "border-accent text-accent" },
452
- { variant: "outline", tone: "success", class: "border-success-border-soft text-success-text" },
453
- { variant: "outline", tone: "warning", class: "border-warning-border-soft text-warning-text" },
454
- { variant: "outline", tone: "danger", class: "border-danger-border-soft text-danger-text" },
455
- { variant: "outline", tone: "info", class: "border-info-border-soft text-info-text" }
456
- ],
457
- defaultVariants: { variant: "subtle", tone: "neutral" }
458
- }
459
- ), nn = {
460
- neutral: "bg-foreground-subtle",
461
- accent: "bg-accent",
462
- success: "bg-success",
463
- warning: "bg-warning",
464
- danger: "bg-danger",
465
- info: "bg-info"
466
- }, on = u(function({ className: t, variant: r, tone: n = "neutral", dot: a, children: s, ...l }, m) {
467
- return /* @__PURE__ */ d("span", { ref: m, className: i(rn({ variant: r, tone: n }), t), ...l, children: [
468
- a && /* @__PURE__ */ e(
469
- "span",
470
- {
471
- "aria-hidden": !0,
472
- className: i("inline-block size-1.5 rounded-full", nn[n ?? "neutral"])
473
- }
474
- ),
475
- s
476
- ] });
477
- });
478
- on.displayName = "Badge";
479
- const an = u(function({ items: t, maxItems: r = 4, renderLink: n, className: a, ...s }, l) {
480
- const f = t.length > r ? [t[0], { collapsed: !0 }, ...t.slice(-2)] : t;
481
- return /* @__PURE__ */ e("nav", { ref: l, "aria-label": "Breadcrumb", className: i("text-sm", a), ...s, children: /* @__PURE__ */ e("ol", { className: "flex flex-wrap items-center gap-1.5 text-foreground-subtle", children: f.map((c, b) => {
482
- const p = b === f.length - 1;
483
- if ("collapsed" in c)
484
- return /* @__PURE__ */ d("li", { className: "flex items-center gap-1.5", children: [
485
- /* @__PURE__ */ e(et, { className: "size-4", "aria-hidden": !0 }),
486
- /* @__PURE__ */ e(W, { className: "size-3.5", "aria-hidden": !0 })
487
- ] }, `ellipsis-${b}`);
488
- const g = c, h = p ? /* @__PURE__ */ e("span", { "aria-current": "page", className: "font-medium text-foreground", children: g.label }) : g.href ? n ? n(g.href, g.label) : /* @__PURE__ */ e(
489
- "a",
490
- {
491
- href: g.href,
492
- className: "hover:text-foreground transition-colors duration-[var(--duration-fast)] outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 rounded-sm",
493
- children: g.label
494
- }
495
- ) : /* @__PURE__ */ e("span", { children: g.label });
496
- return /* @__PURE__ */ d("li", { className: "flex items-center gap-1.5", children: [
497
- h,
498
- !p && /* @__PURE__ */ e(W, { className: "size-3.5", "aria-hidden": !0 })
499
- ] }, b);
500
- }) }) });
501
- });
502
- an.displayName = "Breadcrumbs";
503
- const sn = A(
504
- [
505
- "inline-flex items-center justify-center gap-2 whitespace-nowrap",
506
- "rounded-md text-sm font-medium",
507
- "transition-colors duration-[var(--duration-fast)] ease-[var(--ease-out)]",
508
- "outline-none",
509
- "focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
510
- "focus-visible:ring-offset-background",
511
- "disabled:pointer-events-none disabled:opacity-50",
512
- "[&_svg]:pointer-events-none [&_svg]:shrink-0"
513
- ],
514
- {
515
- variants: {
516
- variant: {
517
- primary: [
518
- "bg-accent text-on-accent",
519
- "hover:bg-accent-700",
520
- "active:bg-accent-800"
521
- ],
522
- secondary: [
523
- "bg-background-muted text-foreground border border-border",
524
- "hover:bg-neutral-200 dark:hover:bg-neutral-800",
525
- "active:bg-neutral-300 dark:active:bg-neutral-700"
526
- ],
527
- outline: [
528
- "border border-border bg-transparent text-foreground",
529
- "hover:bg-background-muted",
530
- "active:bg-background-subtle"
531
- ],
532
- ghost: [
533
- "bg-transparent text-foreground",
534
- "hover:bg-background-muted",
535
- "active:bg-background-subtle"
536
- ],
537
- destructive: [
538
- "bg-danger text-on-danger",
539
- "hover:bg-danger-700",
540
- "active:bg-danger-800"
541
- ],
542
- link: [
543
- "bg-transparent text-accent underline-offset-4 px-0",
544
- "hover:underline",
545
- "active:text-accent-700"
546
- ]
547
- },
548
- size: {
549
- sm: "h-8 px-3 text-xs [&_svg]:size-4",
550
- md: "h-9 px-3.5 text-sm [&_svg]:size-4",
551
- lg: "h-10 px-4 text-sm [&_svg]:size-5",
552
- icon: "h-9 w-9 [&_svg]:size-4"
553
- }
554
- },
555
- compoundVariants: [
556
- // The `link` variant ignores horizontal padding from the size variant.
557
- { variant: "link", size: "sm", class: "h-auto px-0" },
558
- { variant: "link", size: "md", class: "h-auto px-0" },
559
- { variant: "link", size: "lg", class: "h-auto px-0" }
560
- ],
561
- defaultVariants: {
562
- variant: "primary",
563
- size: "md"
564
- }
565
- }
566
- ), fe = u(function({
567
- className: t,
568
- variant: r,
569
- size: n,
570
- asChild: a = !1,
571
- loading: s = !1,
572
- leadingIcon: l,
573
- trailingIcon: m,
574
- disabled: f,
575
- children: c,
576
- type: b = "button",
577
- ...p
578
- }, g) {
579
- const h = f || s, x = i(sn({ variant: r, size: n }), t);
580
- return a ? /* @__PURE__ */ e(
581
- at,
582
- {
583
- ref: g,
584
- "aria-busy": s || void 0,
585
- "data-loading": s || void 0,
586
- className: x,
587
- ...p,
588
- children: c
589
- }
590
- ) : /* @__PURE__ */ d(
591
- "button",
592
- {
593
- ref: g,
594
- type: b,
595
- "aria-busy": s || void 0,
596
- disabled: h,
597
- "data-loading": s || void 0,
598
- className: x,
599
- ...p,
600
- children: [
601
- s ? /* @__PURE__ */ e(ye, { className: "animate-spin", "aria-hidden": "true" }) : l,
602
- c,
603
- !s && m
604
- ]
605
- }
606
- );
607
- });
608
- fe.displayName = "Button";
609
- const ln = A(
610
- [
611
- "rounded-lg border bg-card text-card-foreground",
612
- "transition-colors duration-[var(--duration-fast)] ease-[var(--ease-out)]"
613
- ],
614
- {
615
- variants: {
616
- variant: {
617
- default: "border-border",
618
- interactive: "border-border hover:border-border-strong hover:bg-background-subtle cursor-pointer"
619
- },
620
- padding: {
621
- none: "",
622
- sm: "p-4",
623
- md: "p-5",
624
- lg: "p-6"
625
- }
626
- },
627
- defaultVariants: {
628
- variant: "default",
629
- padding: "md"
630
- }
631
- }
632
- ), dn = u(function({ className: t, variant: r, padding: n, ...a }, s) {
633
- return /* @__PURE__ */ e("div", { ref: s, className: i(ln({ variant: r, padding: n }), t), ...a });
634
- });
635
- dn.displayName = "Card";
636
- const cn = u(
637
- function({ className: t, ...r }, n) {
638
- return /* @__PURE__ */ e(
639
- "div",
640
- {
641
- ref: n,
642
- className: i("flex flex-col gap-1 pb-4", t),
643
- ...r
644
- }
645
- );
646
- }
647
- );
648
- cn.displayName = "CardHeader";
649
- const un = u(
650
- function({ className: t, ...r }, n) {
651
- return /* @__PURE__ */ e(
652
- "h3",
653
- {
654
- ref: n,
655
- className: i("text-base font-semibold text-foreground leading-tight", t),
656
- ...r
657
- }
658
- );
659
- }
660
- );
661
- un.displayName = "CardTitle";
662
- const mn = u(function({ className: t, ...r }, n) {
663
- return /* @__PURE__ */ e(
664
- "p",
665
- {
666
- ref: n,
667
- className: i("text-sm text-foreground-muted", t),
668
- ...r
669
- }
670
- );
671
- });
672
- mn.displayName = "CardDescription";
673
- const fn = u(
674
- function({ className: t, ...r }, n) {
675
- return /* @__PURE__ */ e("div", { ref: n, className: i("text-sm text-foreground", t), ...r });
676
- }
677
- );
678
- fn.displayName = "CardContent";
679
- const gn = u(
680
- function({ className: t, ...r }, n) {
681
- return /* @__PURE__ */ e(
682
- "div",
683
- {
684
- ref: n,
685
- className: i("flex items-center gap-2 pt-4", t),
686
- ...r
687
- }
688
- );
689
- }
690
- );
691
- gn.displayName = "CardFooter";
692
- const bn = u(
693
- function({ className: t, label: r, description: n, error: a, hideLabel: s, id: l, disabled: m, ...f }, c) {
694
- const b = B(), p = l ?? b, g = n ? `${p}-desc` : void 0, h = a ? `${p}-error` : void 0;
695
- return /* @__PURE__ */ d("div", { className: i("flex flex-col gap-1", t), children: [
696
- /* @__PURE__ */ d("div", { className: "flex items-start gap-2.5", children: [
697
- /* @__PURE__ */ e(
698
- Ee.Root,
699
- {
700
- ref: c,
701
- id: p,
702
- disabled: m,
703
- "aria-describedby": h ?? g,
704
- "aria-invalid": !!a || void 0,
705
- className: i(
706
- "peer mt-0.5 flex size-4 shrink-0 items-center justify-center rounded-sm border",
707
- "transition-colors duration-[var(--duration-fast)] ease-[var(--ease-out)]",
708
- "outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background",
709
- "data-[state=checked]:bg-accent data-[state=checked]:border-accent data-[state=checked]:text-on-accent",
710
- "data-[state=indeterminate]:bg-accent data-[state=indeterminate]:border-accent data-[state=indeterminate]:text-on-accent",
711
- "disabled:cursor-not-allowed disabled:opacity-50",
712
- a ? "border-danger" : "border-border-strong"
713
- ),
714
- ...f,
715
- children: /* @__PURE__ */ e(Ee.Indicator, { className: "flex items-center justify-center", children: f.checked === "indeterminate" ? /* @__PURE__ */ e(Je, { className: "size-3", "aria-hidden": !0, strokeWidth: 3 }) : /* @__PURE__ */ e(K, { className: "size-3", "aria-hidden": !0, strokeWidth: 3 }) })
716
- }
717
- ),
718
- r && /* @__PURE__ */ d("div", { className: i("flex flex-col gap-0.5", s && "sr-only"), children: [
719
- /* @__PURE__ */ e(
720
- "label",
721
- {
722
- htmlFor: p,
723
- className: i(
724
- "text-sm text-foreground select-none",
725
- m && "opacity-50 cursor-not-allowed"
726
- ),
727
- children: r
728
- }
729
- ),
730
- n && /* @__PURE__ */ e("p", { id: g, className: "text-xs text-foreground-subtle", children: n })
731
- ] })
732
- ] }),
733
- a && /* @__PURE__ */ e("p", { id: h, role: "alert", className: "text-xs text-danger-text", children: a })
734
- ] });
735
- }
736
- );
737
- bn.displayName = "Checkbox";
738
- const pn = u(function({
739
- value: t,
740
- onChange: r,
741
- options: n,
742
- loadOptions: a,
743
- label: s,
744
- helperText: l,
745
- error: m,
746
- placeholder: f = "Select…",
747
- searchPlaceholder: c = "Search…",
748
- emptyText: b = "No results.",
749
- clearable: p = !0,
750
- disabled: g,
751
- size: h = "md",
752
- className: x
753
- }, v) {
754
- const N = B(), D = `${N}-helper`, I = `${N}-error`, [M, C] = S(!1), [y, k] = S(""), [L, G] = S([]), [Q, te] = S(!1), E = a ? L : n ?? [];
755
- J(() => {
756
- if (!a || !M) return;
757
- let R = !1;
758
- return te(!0), a(y).then((Pe) => {
759
- R || G(Pe);
760
- }).finally(() => {
761
- R || te(!1);
762
- }), () => {
763
- R = !0;
764
- };
765
- }, [y, M, a]);
766
- const V = ge(
767
- () => E.find((R) => R.value === t) ?? null,
768
- [E, t]
769
- ), Y = h === "sm" ? "h-8" : h === "lg" ? "h-10" : "h-9", w = h === "sm" ? "px-2.5" : h === "lg" ? "px-3.5" : "px-3", U = H(
770
- (R) => {
771
- R.stopPropagation(), r(null);
772
- },
773
- [r]
774
- ), Ie = !!m;
775
- return /* @__PURE__ */ d("div", { ref: v, className: i("flex flex-col gap-1.5", x), children: [
776
- s && /* @__PURE__ */ e("label", { htmlFor: N, className: "text-sm font-medium text-foreground", children: s }),
777
- /* @__PURE__ */ d(T.Root, { open: M, onOpenChange: C, children: [
778
- /* @__PURE__ */ e(T.Trigger, { asChild: !0, children: /* @__PURE__ */ d(
779
- "button",
780
- {
781
- id: N,
782
- type: "button",
783
- role: "combobox",
784
- "aria-expanded": M,
785
- "aria-invalid": Ie || void 0,
786
- "aria-describedby": Ie ? I : l ? D : void 0,
787
- disabled: g,
788
- className: i(
789
- "inline-flex w-full items-center justify-between gap-2 rounded-md border bg-card text-sm text-foreground",
790
- "transition-colors duration-[var(--duration-fast)] ease-[var(--ease-out)]",
791
- "outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-offset-background",
792
- "disabled:opacity-50 disabled:cursor-not-allowed",
793
- Y,
794
- w,
795
- Ie ? "border-danger focus-visible:border-danger focus-visible:ring-danger" : "border-border focus-visible:border-accent focus-visible:ring-ring"
796
- ),
797
- children: [
798
- /* @__PURE__ */ e("span", { className: i("truncate", !V && "text-foreground-subtle"), children: V ? V.label : f }),
799
- /* @__PURE__ */ d("span", { className: "ml-2 flex items-center gap-1 shrink-0", children: [
800
- p && V && !g && /* @__PURE__ */ e(
801
- "span",
802
- {
803
- role: "button",
804
- tabIndex: -1,
805
- onClick: U,
806
- "aria-label": "Clear selection",
807
- className: "text-foreground-subtle hover:text-foreground",
808
- children: /* @__PURE__ */ e(j, { className: "size-4", "aria-hidden": !0 })
809
- }
810
- ),
811
- /* @__PURE__ */ e(ve, { className: "size-4 text-foreground-subtle", "aria-hidden": !0 })
812
- ] })
813
- ]
814
- }
815
- ) }),
816
- /* @__PURE__ */ e(T.Portal, { children: /* @__PURE__ */ e(
817
- T.Content,
818
- {
819
- align: "start",
820
- sideOffset: 4,
821
- className: i(
822
- "z-[var(--z-popover)] w-[var(--radix-popover-trigger-width)] overflow-hidden rounded-lg border border-border bg-popover text-popover-foreground shadow-md",
823
- "data-[state=open]:animate-in data-[state=closed]:animate-out",
824
- "data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
825
- "data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95"
826
- ),
827
- children: /* @__PURE__ */ d(P, { shouldFilter: !a, className: "flex h-full w-full flex-col", children: [
828
- /* @__PURE__ */ d("div", { className: "flex items-center border-b border-border px-3", children: [
829
- /* @__PURE__ */ e(
830
- P.Input,
831
- {
832
- value: y,
833
- onValueChange: k,
834
- placeholder: c,
835
- className: "flex h-9 w-full bg-transparent py-2 text-sm outline-none placeholder:text-foreground-subtle"
836
- }
837
- ),
838
- Q && /* @__PURE__ */ e(ye, { className: "size-4 animate-spin text-foreground-subtle", "aria-hidden": !0 })
839
- ] }),
840
- /* @__PURE__ */ d(P.List, { className: "max-h-64 overflow-y-auto p-1", children: [
841
- E.map((R) => {
842
- const Pe = R.value === t;
843
- return /* @__PURE__ */ d(
844
- P.Item,
845
- {
846
- value: R.value,
847
- disabled: R.disabled,
848
- onSelect: (qt) => {
849
- r(qt), C(!1);
850
- },
851
- className: i(
852
- "flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm text-foreground",
853
- "data-[selected=true]:bg-background-muted",
854
- "data-[disabled=true]:opacity-50 data-[disabled=true]:pointer-events-none"
855
- ),
856
- children: [
857
- /* @__PURE__ */ e("span", { className: "flex-1", children: R.label }),
858
- R.description && /* @__PURE__ */ e("span", { className: "text-xs text-foreground-subtle", children: R.description }),
859
- Pe && /* @__PURE__ */ e(K, { className: "size-4 text-accent", "aria-hidden": !0 })
860
- ]
861
- },
862
- R.value
863
- );
864
- }),
865
- !Q && E.length === 0 && /* @__PURE__ */ e(P.Empty, { className: "px-2 py-6 text-center text-sm text-foreground-subtle", children: b })
866
- ] })
867
- ] })
868
- }
869
- ) })
870
- ] }),
871
- m ? /* @__PURE__ */ e("p", { id: I, role: "alert", className: "text-xs text-danger-text", children: m }) : l ? /* @__PURE__ */ e("p", { id: D, className: "text-xs text-foreground-subtle", children: l }) : null
872
- ] });
873
- });
874
- pn.displayName = "Combobox";
875
- const ut = u(function({ className: t, ...r }, n) {
876
- return /* @__PURE__ */ e(
877
- P,
878
- {
879
- ref: n,
880
- className: i(
881
- "flex h-full w-full flex-col overflow-hidden rounded-lg bg-popover text-popover-foreground",
882
- t
883
- ),
884
- ...r
885
- }
886
- );
887
- });
888
- ut.displayName = "Command";
889
- const hn = u(function({ className: t, ...r }, n) {
890
- return /* @__PURE__ */ d("div", { className: "flex items-center gap-2 border-b border-border px-3", "cmdk-input-wrapper": "", children: [
891
- /* @__PURE__ */ e(Be, { className: "size-4 shrink-0 text-foreground-subtle", "aria-hidden": !0 }),
892
- /* @__PURE__ */ e(
893
- P.Input,
894
- {
895
- ref: n,
896
- className: i(
897
- "flex h-11 w-full bg-transparent py-3 text-sm outline-none",
898
- "placeholder:text-foreground-subtle disabled:cursor-not-allowed disabled:opacity-50",
899
- t
900
- ),
901
- ...r
902
- }
903
- )
904
- ] });
905
- });
906
- hn.displayName = "CommandInput";
907
- const xn = u(function({ className: t, ...r }, n) {
908
- return /* @__PURE__ */ e(
909
- P.List,
910
- {
911
- ref: n,
912
- className: i("max-h-[320px] overflow-y-auto p-1", t),
913
- ...r
914
- }
915
- );
916
- });
917
- xn.displayName = "CommandList";
918
- const vn = u(function(t, r) {
919
- return /* @__PURE__ */ e(
920
- P.Empty,
921
- {
922
- ref: r,
923
- className: "py-8 text-center text-sm text-foreground-subtle",
924
- ...t
925
- }
926
- );
927
- });
928
- vn.displayName = "CommandEmpty";
929
- const Nn = u(function({ className: t, ...r }, n) {
930
- return /* @__PURE__ */ e(
931
- P.Group,
932
- {
933
- ref: n,
934
- className: i(
935
- "overflow-hidden text-foreground p-1",
936
- "[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5",
937
- "[&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium",
938
- "[&_[cmdk-group-heading]]:text-foreground-subtle",
939
- t
940
- ),
941
- ...r
942
- }
943
- );
944
- });
945
- Nn.displayName = "CommandGroup";
946
- const yn = u(function({ className: t, ...r }, n) {
947
- return /* @__PURE__ */ e(
948
- P.Separator,
949
- {
950
- ref: n,
951
- className: i("-mx-1 my-1 h-px bg-border", t),
952
- ...r
953
- }
954
- );
955
- });
956
- yn.displayName = "CommandSeparator";
957
- const wn = u(function({ className: t, ...r }, n) {
958
- return /* @__PURE__ */ e(
959
- P.Item,
960
- {
961
- ref: n,
962
- className: i(
963
- "relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm text-foreground outline-none",
964
- "data-[selected=true]:bg-background-muted data-[selected=true]:text-foreground",
965
- "data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50",
966
- "[&_svg]:size-4 [&_svg]:text-foreground-subtle",
967
- t
968
- ),
969
- ...r
970
- }
971
- );
972
- });
973
- wn.displayName = "CommandItem";
974
- function _a({ children: o, className: t }) {
975
- return /* @__PURE__ */ e(
976
- "span",
977
- {
978
- className: i(
979
- "ml-auto inline-flex items-center gap-0.5 text-xs tracking-widest text-foreground-subtle font-mono",
980
- t
981
- ),
982
- children: o
983
- }
984
- );
985
- }
986
- function Fa({ open: o, onOpenChange: t, children: r, title: n = "Command palette" }) {
987
- return /* @__PURE__ */ e(z.Root, { open: o, onOpenChange: t, children: /* @__PURE__ */ d(z.Portal, { children: [
988
- /* @__PURE__ */ e(
989
- z.Overlay,
990
- {
991
- className: i(
992
- "fixed inset-0 z-[var(--z-overlay)] bg-neutral-950/60 backdrop-blur-[2px]",
993
- "data-[state=open]:animate-in data-[state=closed]:animate-out",
994
- "data-[state=open]:fade-in-0 data-[state=closed]:fade-out-0"
995
- )
996
- }
997
- ),
998
- /* @__PURE__ */ d(
999
- z.Content,
1000
- {
1001
- "aria-describedby": void 0,
1002
- className: i(
1003
- "fixed left-1/2 top-[20%] z-[var(--z-modal)] -translate-x-1/2",
1004
- "w-[calc(100%-2rem)] max-w-[640px] overflow-hidden",
1005
- "rounded-lg border border-border bg-popover text-popover-foreground shadow-lg",
1006
- "data-[state=open]:animate-in data-[state=closed]:animate-out",
1007
- "data-[state=open]:fade-in-0 data-[state=closed]:fade-out-0",
1008
- "data-[state=open]:zoom-in-95 data-[state=closed]:zoom-out-95"
1009
- ),
1010
- children: [
1011
- /* @__PURE__ */ e(z.Title, { className: "sr-only", children: n }),
1012
- /* @__PURE__ */ e(ut, { children: r })
1013
- ]
1014
- }
1015
- )
1016
- ] }) });
1017
- }
1018
- function $a(o) {
1019
- const [t, r] = S(0);
1020
- J(() => {
1021
- const n = (a) => {
1022
- a.key === "k" && (a.metaKey || a.ctrlKey) && (a.preventDefault(), o(!0), r((s) => s + 1));
1023
- };
1024
- return window.addEventListener("keydown", n), () => window.removeEventListener("keydown", n);
1025
- }, [o]);
1026
- }
1027
- const Ra = F.Root, La = F.Trigger, ja = F.Group, kn = F.Portal, Ba = F.Sub, Aa = F.RadioGroup, Ce = i(
1028
- "relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm text-foreground outline-none",
1029
- "data-[highlighted]:bg-background-muted data-[highlighted]:text-foreground",
1030
- "data-[disabled]:pointer-events-none data-[disabled]:opacity-50"
1031
- ), Cn = u(function({ className: t, children: r, ...n }, a) {
1032
- return /* @__PURE__ */ d(
1033
- F.SubTrigger,
1034
- {
1035
- ref: a,
1036
- className: i(Ce, "data-[state=open]:bg-background-muted", t),
1037
- ...n,
1038
- children: [
1039
- r,
1040
- /* @__PURE__ */ e(W, { className: "ml-auto size-4 text-foreground-subtle", "aria-hidden": !0 })
1041
- ]
1042
- }
1043
- );
1044
- });
1045
- Cn.displayName = "ContextMenuSubTrigger";
1046
- const zn = u(function({ className: t, ...r }, n) {
1047
- return /* @__PURE__ */ e(
1048
- F.SubContent,
1049
- {
1050
- ref: n,
1051
- className: i(
1052
- "z-[var(--z-popover)] min-w-[8rem] overflow-hidden rounded-lg border border-border bg-popover p-1 text-popover-foreground shadow-md",
1053
- t
1054
- ),
1055
- ...r
1056
- }
1057
- );
1058
- });
1059
- zn.displayName = "ContextMenuSubContent";
1060
- const Sn = u(function({ className: t, ...r }, n) {
1061
- return /* @__PURE__ */ e(kn, { children: /* @__PURE__ */ e(
1062
- F.Content,
1063
- {
1064
- ref: n,
1065
- className: i(
1066
- "z-[var(--z-popover)] min-w-[12rem] overflow-hidden rounded-lg border border-border bg-popover p-1 text-popover-foreground shadow-md",
1067
- "data-[state=open]:animate-in data-[state=closed]:animate-out",
1068
- "data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
1069
- t
1070
- ),
1071
- ...r
1072
- }
1073
- ) });
1074
- });
1075
- Sn.displayName = "ContextMenuContent";
1076
- const Tn = u(function({ className: t, destructive: r, ...n }, a) {
1077
- return /* @__PURE__ */ e(
1078
- F.Item,
1079
- {
1080
- ref: a,
1081
- className: i(
1082
- Ce,
1083
- r && "text-danger-text data-[highlighted]:bg-danger-soft data-[highlighted]:text-danger-text",
1084
- t
1085
- ),
1086
- ...n
1087
- }
1088
- );
1089
- });
1090
- Tn.displayName = "ContextMenuItem";
1091
- const Dn = u(function({ className: t, children: r, ...n }, a) {
1092
- return /* @__PURE__ */ d(
1093
- F.CheckboxItem,
1094
- {
1095
- ref: a,
1096
- className: i(Ce, "pl-8", t),
1097
- ...n,
1098
- children: [
1099
- /* @__PURE__ */ e("span", { className: "absolute left-2 flex size-4 items-center justify-center", children: /* @__PURE__ */ e(F.ItemIndicator, { children: /* @__PURE__ */ e(K, { className: "size-4 text-accent", "aria-hidden": !0 }) }) }),
1100
- r
1101
- ]
1102
- }
1103
- );
1104
- });
1105
- Dn.displayName = "ContextMenuCheckboxItem";
1106
- const Mn = u(function({ className: t, children: r, ...n }, a) {
1107
- return /* @__PURE__ */ d(
1108
- F.RadioItem,
1109
- {
1110
- ref: a,
1111
- className: i(Ce, "pl-8", t),
1112
- ...n,
1113
- children: [
1114
- /* @__PURE__ */ e("span", { className: "absolute left-2 flex size-4 items-center justify-center", children: /* @__PURE__ */ e(F.ItemIndicator, { children: /* @__PURE__ */ e(je, { className: "size-2 fill-accent text-accent", "aria-hidden": !0 }) }) }),
1115
- r
1116
- ]
1117
- }
1118
- );
1119
- });
1120
- Mn.displayName = "ContextMenuRadioItem";
1121
- const In = u(function({ className: t, ...r }, n) {
1122
- return /* @__PURE__ */ e(
1123
- F.Label,
1124
- {
1125
- ref: n,
1126
- className: i("px-2 py-1.5 text-xs font-medium text-foreground-subtle", t),
1127
- ...r
1128
- }
1129
- );
1130
- });
1131
- In.displayName = "ContextMenuLabel";
1132
- const Pn = u(function({ className: t, ...r }, n) {
1133
- return /* @__PURE__ */ e(
1134
- F.Separator,
1135
- {
1136
- ref: n,
1137
- className: i("-mx-1 my-1 h-px bg-border", t),
1138
- ...r
1139
- }
1140
- );
1141
- });
1142
- Pn.displayName = "ContextMenuSeparator";
1143
- function _n({ className: o, ...t }) {
1144
- return /* @__PURE__ */ e(
1145
- "span",
1146
- {
1147
- className: i("ml-auto text-xs tracking-widest text-foreground-subtle font-mono", o),
1148
- ...t
1149
- }
1150
- );
1151
- }
1152
- _n.displayName = "ContextMenuShortcut";
1153
- const Fn = $.Root, $n = $.Trigger, Ea = $.Group, Rn = $.Portal, Oa = $.Sub, Ha = $.RadioGroup, ze = i(
1154
- "relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm text-foreground outline-none",
1155
- "data-[highlighted]:bg-background-muted data-[highlighted]:text-foreground",
1156
- "data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
1157
- "transition-colors duration-[var(--duration-fast)]"
1158
- ), Ln = u(function({ className: t, inset: r, children: n, ...a }, s) {
1159
- return /* @__PURE__ */ d(
1160
- $.SubTrigger,
1161
- {
1162
- ref: s,
1163
- className: i(ze, "data-[state=open]:bg-background-muted", r && "pl-8", t),
1164
- ...a,
1165
- children: [
1166
- n,
1167
- /* @__PURE__ */ e(W, { className: "ml-auto size-4 text-foreground-subtle", "aria-hidden": !0 })
1168
- ]
1169
- }
1170
- );
1171
- });
1172
- Ln.displayName = "DropdownMenuSubTrigger";
1173
- const jn = u(function({ className: t, ...r }, n) {
1174
- return /* @__PURE__ */ e(
1175
- $.SubContent,
1176
- {
1177
- ref: n,
1178
- className: i(
1179
- "z-[var(--z-popover)] min-w-[8rem] overflow-hidden rounded-lg border border-border bg-popover p-1 text-popover-foreground shadow-md",
1180
- "data-[state=open]:animate-in data-[state=closed]:animate-out",
1181
- "data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
1182
- "data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
1183
- t
1184
- ),
1185
- ...r
1186
- }
1187
- );
1188
- });
1189
- jn.displayName = "DropdownMenuSubContent";
1190
- const mt = u(function({ className: t, sideOffset: r = 4, align: n = "end", ...a }, s) {
1191
- return /* @__PURE__ */ e(Rn, { children: /* @__PURE__ */ e(
1192
- $.Content,
1193
- {
1194
- ref: s,
1195
- sideOffset: r,
1196
- align: n,
1197
- className: i(
1198
- "z-[var(--z-popover)] min-w-[12rem] overflow-hidden rounded-lg border border-border bg-popover p-1 text-popover-foreground shadow-md",
1199
- "data-[state=open]:animate-in data-[state=closed]:animate-out",
1200
- "data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
1201
- "data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
1202
- "data-[side=bottom]:slide-in-from-top-1 data-[side=top]:slide-in-from-bottom-1",
1203
- t
1204
- ),
1205
- ...a
1206
- }
1207
- ) });
1208
- });
1209
- mt.displayName = "DropdownMenuContent";
1210
- const Bn = u(function({ className: t, inset: r, destructive: n, ...a }, s) {
1211
- return /* @__PURE__ */ e(
1212
- $.Item,
1213
- {
1214
- ref: s,
1215
- className: i(
1216
- ze,
1217
- r && "pl-8",
1218
- n && "text-danger-text data-[highlighted]:bg-danger-soft data-[highlighted]:text-danger-text",
1219
- t
1220
- ),
1221
- ...a
1222
- }
1223
- );
1224
- });
1225
- Bn.displayName = "DropdownMenuItem";
1226
- const ft = u(function({ className: t, children: r, checked: n, ...a }, s) {
1227
- return /* @__PURE__ */ d(
1228
- $.CheckboxItem,
1229
- {
1230
- ref: s,
1231
- checked: n,
1232
- className: i(ze, "pl-8", t),
1233
- ...a,
1234
- children: [
1235
- /* @__PURE__ */ e("span", { className: "absolute left-2 flex size-4 items-center justify-center", children: /* @__PURE__ */ e($.ItemIndicator, { children: /* @__PURE__ */ e(K, { className: "size-4 text-accent", "aria-hidden": !0 }) }) }),
1236
- r
1237
- ]
1238
- }
1239
- );
1240
- });
1241
- ft.displayName = "DropdownMenuCheckboxItem";
1242
- const An = u(function({ className: t, children: r, ...n }, a) {
1243
- return /* @__PURE__ */ d(
1244
- $.RadioItem,
1245
- {
1246
- ref: a,
1247
- className: i(ze, "pl-8", t),
1248
- ...n,
1249
- children: [
1250
- /* @__PURE__ */ e("span", { className: "absolute left-2 flex size-4 items-center justify-center", children: /* @__PURE__ */ e($.ItemIndicator, { children: /* @__PURE__ */ e(je, { className: "size-2 fill-accent text-accent", "aria-hidden": !0 }) }) }),
1251
- r
1252
- ]
1253
- }
1254
- );
1255
- });
1256
- An.displayName = "DropdownMenuRadioItem";
1257
- const gt = u(function({ className: t, inset: r, ...n }, a) {
1258
- return /* @__PURE__ */ e(
1259
- $.Label,
1260
- {
1261
- ref: a,
1262
- className: i(
1263
- "px-2 py-1.5 text-xs font-medium text-foreground-subtle",
1264
- r && "pl-8",
1265
- t
1266
- ),
1267
- ...n
1268
- }
1269
- );
1270
- });
1271
- gt.displayName = "DropdownMenuLabel";
1272
- const bt = u(function({ className: t, ...r }, n) {
1273
- return /* @__PURE__ */ e(
1274
- $.Separator,
1275
- {
1276
- ref: n,
1277
- className: i("-mx-1 my-1 h-px bg-border", t),
1278
- ...r
1279
- }
1280
- );
1281
- });
1282
- bt.displayName = "DropdownMenuSeparator";
1283
- function En({ className: o, ...t }) {
1284
- return /* @__PURE__ */ e(
1285
- "span",
1286
- {
1287
- className: i("ml-auto text-xs tracking-widest text-foreground-subtle font-mono", o),
1288
- ...t
1289
- }
1290
- );
1291
- }
1292
- En.displayName = "DropdownMenuShortcut";
1293
- const On = A(
1294
- [
1295
- "inline-flex items-center justify-center shrink-0",
1296
- "rounded-md",
1297
- "transition-colors duration-[var(--duration-fast)] ease-[var(--ease-out)]",
1298
- "outline-none",
1299
- "focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
1300
- "focus-visible:ring-offset-background",
1301
- "disabled:pointer-events-none disabled:opacity-50",
1302
- "[&_svg]:pointer-events-none"
1303
- ],
1304
- {
1305
- variants: {
1306
- variant: {
1307
- primary: "bg-accent text-on-accent hover:bg-accent-700 active:bg-accent-800",
1308
- secondary: "bg-background-muted text-foreground border border-border hover:bg-neutral-200 dark:hover:bg-neutral-800",
1309
- outline: "border border-border bg-transparent text-foreground hover:bg-background-muted",
1310
- ghost: "bg-transparent text-foreground-muted hover:bg-background-muted hover:text-foreground",
1311
- destructive: "bg-danger text-on-danger hover:bg-danger-700 active:bg-danger-800"
1312
- },
1313
- size: {
1314
- sm: "h-7 w-7 [&_svg]:size-3.5",
1315
- md: "h-8 w-8 [&_svg]:size-4",
1316
- lg: "h-10 w-10 [&_svg]:size-5"
1317
- }
1318
- },
1319
- defaultVariants: {
1320
- variant: "ghost",
1321
- size: "md"
1322
- }
1323
- }
1324
- ), Se = u(function({ className: t, variant: r, size: n, icon: a, loading: s, disabled: l, type: m = "button", ...f }, c) {
1325
- return /* @__PURE__ */ e(
1326
- "button",
1327
- {
1328
- ref: c,
1329
- type: m,
1330
- "aria-busy": s || void 0,
1331
- disabled: l || s,
1332
- className: i(On({ variant: r, size: n }), t),
1333
- ...f,
1334
- children: s ? /* @__PURE__ */ e(ye, { className: "animate-spin", "aria-hidden": "true" }) : a
1335
- }
1336
- );
1337
- });
1338
- Se.displayName = "IconButton";
1339
- const Hn = A(
1340
- [
1341
- "group inline-flex items-center w-full",
1342
- "rounded-md border bg-card text-sm",
1343
- "transition-colors duration-[var(--duration-fast)] ease-[var(--ease-out)]",
1344
- "has-disabled:opacity-50 has-disabled:pointer-events-none",
1345
- "focus-within:ring-2 focus-within:ring-offset-2 focus-within:ring-offset-background"
1346
- ],
1347
- {
1348
- variants: {
1349
- size: {
1350
- sm: "h-8 px-2.5 gap-1.5",
1351
- md: "h-9 px-3 gap-2",
1352
- lg: "h-10 px-3.5 gap-2"
1353
- },
1354
- tone: {
1355
- default: "border-border focus-within:border-accent focus-within:ring-ring",
1356
- error: "border-danger focus-within:border-danger focus-within:ring-danger"
1357
- }
1358
- },
1359
- defaultVariants: {
1360
- size: "md",
1361
- tone: "default"
1362
- }
1363
- }
1364
- ), Gn = A([
1365
- "flex-1 min-w-0 bg-transparent outline-none",
1366
- "placeholder:text-foreground-subtle",
1367
- "text-foreground",
1368
- "disabled:cursor-not-allowed"
1369
- ]), pt = u(function({
1370
- className: t,
1371
- type: r = "text",
1372
- size: n,
1373
- tone: a,
1374
- label: s,
1375
- helperText: l,
1376
- error: m,
1377
- prefix: f,
1378
- suffix: c,
1379
- clearable: b,
1380
- onClear: p,
1381
- hideLabel: g,
1382
- id: h,
1383
- disabled: x,
1384
- value: v,
1385
- ...N
1386
- }, D) {
1387
- const I = B(), M = h ?? I, C = `${M}-helper`, y = `${M}-error`, [k, L] = S(!1), G = r === "password" ? k ? "text" : "password" : r, Q = !!m, te = Q ? "error" : a, E = f ?? (r === "search" ? /* @__PURE__ */ e(Be, { className: "size-4 text-foreground-subtle", "aria-hidden": !0 }) : null), V = v !== void 0 && v !== "" && v !== null;
1388
- return /* @__PURE__ */ d("div", { className: i("flex flex-col gap-1.5", t), children: [
1389
- s && /* @__PURE__ */ e(
1390
- "label",
1391
- {
1392
- htmlFor: M,
1393
- className: i(
1394
- "text-sm font-medium text-foreground",
1395
- g && "sr-only"
1396
- ),
1397
- children: s
1398
- }
1399
- ),
1400
- /* @__PURE__ */ d("div", { className: i(Hn({ size: n, tone: te })), children: [
1401
- E && /* @__PURE__ */ e("span", { className: "flex items-center text-foreground-subtle [&_svg]:size-4", children: E }),
1402
- /* @__PURE__ */ e(
1403
- "input",
1404
- {
1405
- ref: D,
1406
- id: M,
1407
- type: G,
1408
- disabled: x,
1409
- value: v,
1410
- "aria-invalid": Q || void 0,
1411
- "aria-describedby": m ? y : l ? C : void 0,
1412
- className: i(Gn()),
1413
- ...N
1414
- }
1415
- ),
1416
- b && V && /* @__PURE__ */ e(
1417
- "button",
1418
- {
1419
- type: "button",
1420
- onClick: p,
1421
- tabIndex: -1,
1422
- "aria-label": "Clear input",
1423
- className: "flex items-center text-foreground-subtle hover:text-foreground",
1424
- children: /* @__PURE__ */ e(j, { className: "size-4", "aria-hidden": !0 })
1425
- }
1426
- ),
1427
- r === "password" && /* @__PURE__ */ e(
1428
- "button",
1429
- {
1430
- type: "button",
1431
- onClick: () => L((Y) => !Y),
1432
- tabIndex: -1,
1433
- "aria-label": k ? "Hide password" : "Show password",
1434
- "aria-pressed": k,
1435
- className: "flex items-center text-foreground-subtle hover:text-foreground",
1436
- children: k ? /* @__PURE__ */ e(qe, { className: "size-4", "aria-hidden": !0 }) : /* @__PURE__ */ e(Ye, { className: "size-4", "aria-hidden": !0 })
1437
- }
1438
- ),
1439
- c && /* @__PURE__ */ e("span", { className: "flex items-center text-foreground-subtle [&_svg]:size-4", children: c })
1440
- ] }),
1441
- m ? /* @__PURE__ */ e("p", { id: y, role: "alert", className: "text-xs text-danger-text", children: m }) : l ? /* @__PURE__ */ e("p", { id: C, className: "text-xs text-foreground-subtle", children: l }) : null
1442
- ] });
1443
- });
1444
- pt.displayName = "Input";
1445
- const ht = u(
1446
- function({ className: t, ...r }, n) {
1447
- return /* @__PURE__ */ e("div", { className: "relative w-full overflow-auto", children: /* @__PURE__ */ e(
1448
- "table",
1449
- {
1450
- ref: n,
1451
- className: i("w-full caption-bottom text-sm border-collapse", t),
1452
- ...r
1453
- }
1454
- ) });
1455
- }
1456
- );
1457
- ht.displayName = "Table";
1458
- const xt = u(
1459
- function({ className: t, ...r }, n) {
1460
- return /* @__PURE__ */ e(
1461
- "thead",
1462
- {
1463
- ref: n,
1464
- className: i(
1465
- "sticky top-0 z-10 bg-background-subtle text-foreground-muted",
1466
- "[&_tr]:border-b [&_tr]:border-border",
1467
- t
1468
- ),
1469
- ...r
1470
- }
1471
- );
1472
- }
1473
- );
1474
- xt.displayName = "TableHeader";
1475
- const vt = u(
1476
- function({ className: t, ...r }, n) {
1477
- return /* @__PURE__ */ e(
1478
- "tbody",
1479
- {
1480
- ref: n,
1481
- className: i("[&_tr:last-child]:border-0", t),
1482
- ...r
1483
- }
1484
- );
1485
- }
1486
- );
1487
- vt.displayName = "TableBody";
1488
- const Vn = u(
1489
- function({ className: t, ...r }, n) {
1490
- return /* @__PURE__ */ e(
1491
- "tfoot",
1492
- {
1493
- ref: n,
1494
- className: i("border-t border-border bg-background-subtle font-medium", t),
1495
- ...r
1496
- }
1497
- );
1498
- }
1499
- );
1500
- Vn.displayName = "TableFooter";
1501
- const ne = u(function({ className: t, selected: r, ...n }, a) {
1502
- return /* @__PURE__ */ e(
1503
- "tr",
1504
- {
1505
- ref: a,
1506
- "data-selected": r || void 0,
1507
- className: i(
1508
- "border-b border-border transition-colors duration-[var(--duration-fast)]",
1509
- "hover:bg-background-subtle",
1510
- "data-[selected]:bg-accent-soft data-[selected]:hover:bg-accent-soft",
1511
- t
1512
- ),
1513
- ...n
1514
- }
1515
- );
1516
- });
1517
- ne.displayName = "TableRow";
1518
- const Ae = u(function({ className: t, ...r }, n) {
1519
- return /* @__PURE__ */ e(
1520
- "th",
1521
- {
1522
- ref: n,
1523
- className: i(
1524
- "h-10 px-3 text-left align-middle text-xs font-medium uppercase tracking-wide text-foreground-subtle",
1525
- "[&:has([role=checkbox])]:w-10 [&:has([role=checkbox])]:pr-0",
1526
- t
1527
- ),
1528
- ...r
1529
- }
1530
- );
1531
- });
1532
- Ae.displayName = "TableHead";
1533
- const ue = u(function({ className: t, ...r }, n) {
1534
- return /* @__PURE__ */ e(
1535
- "td",
1536
- {
1537
- ref: n,
1538
- className: i("px-3 py-3 align-middle text-foreground", t),
1539
- ...r
1540
- }
1541
- );
1542
- });
1543
- ue.displayName = "TableCell";
1544
- const Wn = u(
1545
- function({ className: t, ...r }, n) {
1546
- return /* @__PURE__ */ e(
1547
- "caption",
1548
- {
1549
- ref: n,
1550
- className: i("mt-4 text-sm text-foreground-subtle", t),
1551
- ...r
1552
- }
1553
- );
1554
- }
1555
- );
1556
- Wn.displayName = "TableCaption";
1557
- const Nt = u(
1558
- function({ sortKey: t, currentSort: r, onSortChange: n, children: a, className: s, ...l }, m) {
1559
- const f = (r == null ? void 0 : r.key) === t, c = f ? r == null ? void 0 : r.direction : void 0, b = () => {
1560
- n(t, f && c === "asc" ? "desc" : "asc");
1561
- };
1562
- return /* @__PURE__ */ e(Ae, { ref: m, className: i("p-0", s), "aria-sort": f ? c === "asc" ? "ascending" : "descending" : "none", ...l, children: /* @__PURE__ */ d(
1563
- "button",
1564
- {
1565
- type: "button",
1566
- onClick: b,
1567
- className: i(
1568
- "inline-flex h-10 w-full items-center gap-1.5 px-3 outline-none",
1569
- "transition-colors duration-[var(--duration-fast)]",
1570
- "hover:text-foreground focus-visible:text-foreground",
1571
- "focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background rounded-sm",
1572
- f && "text-foreground"
1573
- ),
1574
- children: [
1575
- a,
1576
- c === "asc" ? /* @__PURE__ */ e(Ue, { className: "size-3.5", "aria-hidden": !0 }) : c === "desc" ? /* @__PURE__ */ e(We, { className: "size-3.5", "aria-hidden": !0 }) : /* @__PURE__ */ e(Ke, { className: "size-3.5 opacity-40", "aria-hidden": !0 })
1577
- ]
1578
- }
1579
- ) });
1580
- }
1581
- );
1582
- Nt.displayName = "TableSortHeader";
1583
- const yt = u(function({ className: t, variant: r, ...n }, a) {
1584
- return /* @__PURE__ */ e(
1585
- "div",
1586
- {
1587
- ref: a,
1588
- "aria-hidden": !0,
1589
- className: i(
1590
- "animate-pulse bg-background-muted",
1591
- r === "text" && "h-3 rounded-sm",
1592
- r === "circle" && "rounded-full aspect-square",
1593
- r === "avatar" && "size-8 rounded-full",
1594
- r === "card" && "rounded-lg",
1595
- !r && "rounded-md",
1596
- t
1597
- ),
1598
- ...n
1599
- }
1600
- );
1601
- });
1602
- yt.displayName = "Skeleton";
1603
- function Ga({
1604
- columns: o,
1605
- rows: t,
1606
- loading: r,
1607
- sort: n,
1608
- onSortChange: a,
1609
- filter: s,
1610
- emptyState: l,
1611
- className: m
1612
- }) {
1613
- const [f, c] = S({}), b = ge(() => o.filter((g) => !f[g.key]), [o, f]), p = () => r ? Array.from({ length: 5 }).map((g, h) => /* @__PURE__ */ e(ne, { children: b.map((x) => /* @__PURE__ */ e(ue, { children: /* @__PURE__ */ e(yt, { variant: "text", className: "w-3/4" }) }, x.key)) }, `skel-${h}`)) : t.length === 0 ? /* @__PURE__ */ e(ne, { children: /* @__PURE__ */ e(ue, { colSpan: b.length, className: "h-32 text-center", children: l ?? /* @__PURE__ */ e("span", { className: "text-foreground-subtle", children: "No results." }) }) }) : t.map((g) => /* @__PURE__ */ e(ne, { children: b.map((h) => /* @__PURE__ */ e(
1614
- ue,
1615
- {
1616
- className: i(h.align === "right" && "text-right tabular"),
1617
- children: h.cell ? h.cell(g) : g[h.key]
1618
- },
1619
- h.key
1620
- )) }, g.id));
1621
- return /* @__PURE__ */ d("div", { className: i("flex flex-col gap-3", m), children: [
1622
- /* @__PURE__ */ d("div", { className: "flex items-center justify-between gap-2", children: [
1623
- s ? /* @__PURE__ */ e(
1624
- pt,
1625
- {
1626
- type: "search",
1627
- placeholder: s.placeholder ?? "Filter…",
1628
- value: s.value,
1629
- onChange: (g) => s.onChange(g.target.value),
1630
- clearable: !0,
1631
- onClear: () => s.onChange(""),
1632
- className: "max-w-sm w-full",
1633
- hideLabel: !0,
1634
- label: "Filter rows"
1635
- }
1636
- ) : /* @__PURE__ */ e("div", {}),
1637
- /* @__PURE__ */ e("div", { className: "flex items-center gap-2", children: /* @__PURE__ */ d(Fn, { children: [
1638
- /* @__PURE__ */ e($n, { asChild: !0, children: /* @__PURE__ */ e(Se, { "aria-label": "Column visibility", icon: /* @__PURE__ */ e(tt, {}), variant: "outline" }) }),
1639
- /* @__PURE__ */ d(mt, { children: [
1640
- /* @__PURE__ */ e(gt, { children: "Columns" }),
1641
- /* @__PURE__ */ e(bt, {}),
1642
- o.map((g) => /* @__PURE__ */ e(
1643
- ft,
1644
- {
1645
- checked: !f[g.key],
1646
- onCheckedChange: (h) => c((x) => ({ ...x, [g.key]: !h })),
1647
- children: g.header
1648
- },
1649
- g.key
1650
- ))
1651
- ] })
1652
- ] }) })
1653
- ] }),
1654
- /* @__PURE__ */ e("div", { className: "rounded-lg border border-border overflow-hidden", children: /* @__PURE__ */ d(ht, { children: [
1655
- /* @__PURE__ */ e("colgroup", { children: b.map((g) => /* @__PURE__ */ e("col", { style: g.width ? { width: g.width } : void 0 }, g.key)) }),
1656
- /* @__PURE__ */ e(xt, { children: /* @__PURE__ */ e(ne, { children: b.map(
1657
- (g) => g.sortable && a ? /* @__PURE__ */ e(
1658
- Nt,
1659
- {
1660
- sortKey: g.key,
1661
- currentSort: n ?? null,
1662
- onSortChange: (h, x) => a({ key: h, direction: x }),
1663
- children: g.header
1664
- },
1665
- g.key
1666
- ) : /* @__PURE__ */ e(Ae, { className: i(g.align === "right" && "text-right"), children: g.header }, g.key)
1667
- ) }) }),
1668
- /* @__PURE__ */ e(vt, { children: p() })
1669
- ] }) })
1670
- ] });
1671
- }
1672
- const wt = u(function({ className: t, classNames: r, captionLayout: n = "dropdown", startMonth: a, endMonth: s, ...l }, m) {
1673
- const f = /* @__PURE__ */ new Date(), c = a ?? new Date(f.getFullYear() - 100, 0, 1), b = s ?? new Date(f.getFullYear() + 10, 11, 31);
1674
- return /* @__PURE__ */ e(
1675
- Rr,
1676
- {
1677
- showOutsideDays: !0,
1678
- captionLayout: n,
1679
- startMonth: c,
1680
- endMonth: b,
1681
- className: i("inline-block rounded-lg border border-border bg-card p-3", t),
1682
- classNames: {
1683
- root: "rdp",
1684
- months: "relative flex flex-col gap-4 sm:flex-row sm:gap-6",
1685
- month: "flex flex-col gap-3",
1686
- month_caption: "relative flex h-8 items-center justify-center px-8",
1687
- // Dropdown layout: the visible pill is `dropdown_root` + `caption_label`
1688
- // (value text + caret); the native <select> sits transparent on top.
1689
- dropdowns: "flex items-center justify-center gap-2",
1690
- dropdown_root: "relative inline-flex items-center rounded-md border border-border bg-card px-2 py-1 hover:bg-background-muted focus-within:ring-2 focus-within:ring-ring",
1691
- dropdown: "absolute inset-0 cursor-pointer opacity-0",
1692
- caption_label: "flex items-center gap-1 text-sm font-medium",
1693
- nav: "absolute inset-x-0 top-0 flex h-8 items-center justify-between",
1694
- button_previous: "inline-flex h-7 w-7 items-center justify-center rounded-md text-foreground-muted hover:bg-background-muted focus-visible:ring-2 focus-visible:ring-ring outline-none disabled:opacity-40 disabled:pointer-events-none",
1695
- button_next: "inline-flex h-7 w-7 items-center justify-center rounded-md text-foreground-muted hover:bg-background-muted focus-visible:ring-2 focus-visible:ring-ring outline-none disabled:opacity-40 disabled:pointer-events-none",
1696
- month_grid: "w-full border-collapse",
1697
- weekdays: "grid grid-cols-7",
1698
- weekday: "h-8 w-9 text-center text-[11px] font-medium uppercase tracking-wide text-foreground-subtle",
1699
- week: "mt-0.5 grid grid-cols-7",
1700
- day: "relative h-9 w-9 p-0 text-center",
1701
- day_button: "inline-flex h-9 w-9 items-center justify-center rounded-md text-sm hover:bg-background-muted focus-visible:ring-2 focus-visible:ring-ring outline-none aria-selected:bg-accent aria-selected:text-on-accent aria-selected:hover:bg-accent-700",
1702
- today: "[&_button]:border [&_button]:border-border",
1703
- outside: "text-foreground-subtle",
1704
- disabled: "opacity-40 pointer-events-none",
1705
- range_start: "[&_button]:bg-accent [&_button]:text-on-accent [&_button]:rounded-r-none",
1706
- range_end: "[&_button]:bg-accent [&_button]:text-on-accent [&_button]:rounded-l-none",
1707
- range_middle: "[&_button]:bg-accent-soft [&_button]:text-foreground [&_button]:rounded-none",
1708
- hidden: "invisible",
1709
- ...r
1710
- },
1711
- components: {
1712
- Chevron: ({ orientation: p }) => p === "left" ? /* @__PURE__ */ e(xe, { className: "size-4" }) : p === "right" ? /* @__PURE__ */ e(W, { className: "size-4" }) : /* @__PURE__ */ e(ie, { className: "size-3.5 opacity-60" })
1713
- },
1714
- ...l
1715
- }
1716
- );
1717
- });
1718
- function me(o) {
1719
- return o ? o.toLocaleDateString(void 0, { year: "numeric", month: "short", day: "numeric" }) : "";
1720
- }
1721
- function kt({
1722
- label: o,
1723
- placeholder: t,
1724
- hasValue: r,
1725
- children: n,
1726
- error: a,
1727
- fieldId: s,
1728
- disabled: l
1729
- }) {
1730
- return /* @__PURE__ */ d("div", { className: "flex flex-col gap-1.5", children: [
1731
- o && /* @__PURE__ */ e("label", { htmlFor: s, className: "text-sm font-medium text-foreground", children: o }),
1732
- /* @__PURE__ */ e(T.Trigger, { asChild: !0, children: /* @__PURE__ */ d(
1733
- "button",
1734
- {
1735
- id: s,
1736
- type: "button",
1737
- disabled: l,
1738
- "aria-invalid": !!a || void 0,
1739
- className: i(
1740
- "inline-flex h-9 w-full items-center justify-start gap-2 rounded-md border bg-card px-3 text-left text-sm",
1741
- "transition-colors duration-[var(--duration-fast)] ease-[var(--ease-out)]",
1742
- "outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-offset-background",
1743
- "disabled:opacity-50 disabled:cursor-not-allowed",
1744
- a ? "border-danger focus-visible:border-danger focus-visible:ring-danger" : "border-border focus-visible:border-accent focus-visible:ring-ring",
1745
- !r && "text-foreground-subtle"
1746
- ),
1747
- children: [
1748
- /* @__PURE__ */ e(Xe, { className: "size-4 text-foreground-subtle", "aria-hidden": !0 }),
1749
- /* @__PURE__ */ e("span", { className: "truncate", children: r ? n : t })
1750
- ]
1751
- }
1752
- ) }),
1753
- a && /* @__PURE__ */ e("p", { role: "alert", className: "text-xs text-danger-text", children: a })
1754
- ] });
1755
- }
1756
- const Un = u(function({ value: t, onChange: r, label: n, placeholder: a = "Pick a date", error: s, disabled: l, fromDate: m, toDate: f, className: c }, b) {
1757
- const p = B(), [g, h] = S(!1);
1758
- return /* @__PURE__ */ e("div", { ref: b, className: i(c), children: /* @__PURE__ */ d(T.Root, { open: g, onOpenChange: h, children: [
1759
- /* @__PURE__ */ e(
1760
- kt,
1761
- {
1762
- label: n,
1763
- placeholder: a,
1764
- hasValue: !!t,
1765
- error: s,
1766
- fieldId: p,
1767
- disabled: l,
1768
- children: me(t)
1769
- }
1770
- ),
1771
- /* @__PURE__ */ e(T.Portal, { children: /* @__PURE__ */ e(
1772
- T.Content,
1773
- {
1774
- align: "start",
1775
- sideOffset: 4,
1776
- className: "z-[var(--z-popover)] rounded-lg text-popover-foreground shadow-lg",
1777
- children: /* @__PURE__ */ e(
1778
- wt,
1779
- {
1780
- mode: "single",
1781
- selected: t,
1782
- onSelect: (x) => {
1783
- r(x ?? void 0), x && h(!1);
1784
- },
1785
- startMonth: m,
1786
- endMonth: f
1787
- }
1788
- )
1789
- }
1790
- ) })
1791
- ] }) });
1792
- });
1793
- Un.displayName = "DatePicker";
1794
- const Kn = u(function({ value: t, onChange: r, label: n, placeholder: a = "Pick a range", error: s, disabled: l, fromDate: m, toDate: f, className: c }, b) {
1795
- const p = B(), [g, h] = S(!1), x = !!(t != null && t.from);
1796
- return /* @__PURE__ */ e("div", { ref: b, className: i(c), children: /* @__PURE__ */ d(T.Root, { open: g, onOpenChange: h, children: [
1797
- /* @__PURE__ */ e(
1798
- kt,
1799
- {
1800
- label: n,
1801
- placeholder: a,
1802
- hasValue: x,
1803
- error: s,
1804
- fieldId: p,
1805
- disabled: l,
1806
- children: t != null && t.from && t.to ? `${me(t.from)} – ${me(t.to)}` : t != null && t.from ? me(t.from) : ""
1807
- }
1808
- ),
1809
- /* @__PURE__ */ e(T.Portal, { children: /* @__PURE__ */ e(
1810
- T.Content,
1811
- {
1812
- align: "start",
1813
- sideOffset: 4,
1814
- className: "z-[var(--z-popover)] rounded-lg text-popover-foreground shadow-lg",
1815
- children: /* @__PURE__ */ e(
1816
- wt,
1817
- {
1818
- mode: "range",
1819
- selected: t,
1820
- onSelect: r,
1821
- numberOfMonths: 2,
1822
- startMonth: m,
1823
- endMonth: f
1824
- }
1825
- )
1826
- }
1827
- ) })
1828
- ] }) });
1829
- });
1830
- Kn.displayName = "DateRangePicker";
1831
- function Va({
1832
- tokens: o,
1833
- className: t,
1834
- children: r,
1835
- style: n,
1836
- ...a
1837
- }) {
1838
- const s = { ...n };
1839
- if (o)
1840
- for (const [l, m] of Object.entries(o)) {
1841
- const f = l.startsWith("--") ? l : `--${l}`;
1842
- s[f] = m;
1843
- }
1844
- return /* @__PURE__ */ e("div", { "data-brand-scope": !0, className: i("contents", t), style: s, ...a, children: r });
1845
- }
1846
- const Wa = {
1847
- /** The library default — graphite indigo. */
1848
- default: {},
1849
- /** Blue. */
1850
- blue: {
1851
- accent: "oklch(0.55 0.16 250)",
1852
- "color-accent-700": "oklch(0.47 0.16 250)",
1853
- "color-accent-800": "oklch(0.39 0.14 250)",
1854
- "accent-subtle": "oklch(0.95 0.04 250)",
1855
- "accent-subtle-foreground": "oklch(0.45 0.15 250)",
1856
- ring: "oklch(0.62 0.16 250)"
1857
- },
1858
- /** Violet. */
1859
- violet: {
1860
- accent: "oklch(0.53 0.20 295)",
1861
- "color-accent-700": "oklch(0.45 0.18 295)",
1862
- "color-accent-800": "oklch(0.38 0.16 295)",
1863
- "accent-subtle": "oklch(0.95 0.04 295)",
1864
- "accent-subtle-foreground": "oklch(0.45 0.18 295)",
1865
- ring: "oklch(0.60 0.20 295)"
1866
- },
1867
- /** Emerald. */
1868
- emerald: {
1869
- accent: "oklch(0.55 0.13 160)",
1870
- "color-accent-700": "oklch(0.47 0.13 160)",
1871
- "color-accent-800": "oklch(0.39 0.12 160)",
1872
- "accent-subtle": "oklch(0.95 0.04 160)",
1873
- "accent-subtle-foreground": "oklch(0.42 0.12 160)",
1874
- ring: "oklch(0.60 0.13 160)"
1875
- },
1876
- /** Rose. */
1877
- rose: {
1878
- accent: "oklch(0.57 0.19 12)",
1879
- "color-accent-700": "oklch(0.49 0.18 12)",
1880
- "color-accent-800": "oklch(0.41 0.16 12)",
1881
- "accent-subtle": "oklch(0.95 0.035 12)",
1882
- "accent-subtle-foreground": "oklch(0.48 0.18 12)",
1883
- ring: "oklch(0.62 0.19 12)"
1884
- },
1885
- /** Amber. */
1886
- amber: {
1887
- accent: "oklch(0.62 0.14 65)",
1888
- "color-accent-700": "oklch(0.54 0.13 65)",
1889
- "color-accent-800": "oklch(0.46 0.12 65)",
1890
- "accent-subtle": "oklch(0.95 0.05 75)",
1891
- "accent-subtle-foreground": "oklch(0.48 0.12 65)",
1892
- ring: "oklch(0.66 0.14 65)"
1893
- }
1894
- }, Xn = z.Root, Ua = z.Trigger, Qn = z.Portal, Yn = z.Close, Ct = u(function({ className: t, ...r }, n) {
1895
- return /* @__PURE__ */ e(
1896
- z.Overlay,
1897
- {
1898
- ref: n,
1899
- className: i(
1900
- "fixed inset-0 z-[var(--z-overlay)] bg-neutral-950/60 backdrop-blur-[2px]",
1901
- "data-[state=open]:animate-in data-[state=closed]:animate-out",
1902
- "data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
1903
- t
1904
- ),
1905
- ...r
1906
- }
1907
- );
1908
- });
1909
- Ct.displayName = "DialogOverlay";
1910
- const zt = u(function({ className: t, children: r, showClose: n = !0, size: a = "md", ...s }, l) {
1911
- return /* @__PURE__ */ d(Qn, { children: [
1912
- /* @__PURE__ */ e(Ct, {}),
1913
- /* @__PURE__ */ d(
1914
- z.Content,
1915
- {
1916
- ref: l,
1917
- className: i(
1918
- "fixed left-1/2 top-1/2 z-[var(--z-modal)] -translate-x-1/2 -translate-y-1/2",
1919
- "w-[calc(100%-2rem)] rounded-lg border border-border bg-card text-card-foreground shadow-lg",
1920
- "p-6",
1921
- "data-[state=open]:animate-in data-[state=closed]:animate-out",
1922
- "data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
1923
- "data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
1924
- a === "sm" && "max-w-[400px]",
1925
- a === "md" && "max-w-[520px]",
1926
- a === "lg" && "max-w-[720px]",
1927
- t
1928
- ),
1929
- ...s,
1930
- children: [
1931
- r,
1932
- n && /* @__PURE__ */ e(
1933
- z.Close,
1934
- {
1935
- "aria-label": "Close",
1936
- className: i(
1937
- "absolute right-4 top-4 inline-flex size-8 items-center justify-center rounded-md text-foreground-subtle",
1938
- "hover:bg-background-muted hover:text-foreground",
1939
- "outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-card",
1940
- "transition-colors duration-[var(--duration-fast)]"
1941
- ),
1942
- children: /* @__PURE__ */ e(j, { className: "size-4", "aria-hidden": !0 })
1943
- }
1944
- )
1945
- ]
1946
- }
1947
- )
1948
- ] });
1949
- });
1950
- zt.displayName = "DialogContent";
1951
- function St({ className: o, ...t }) {
1952
- return /* @__PURE__ */ e("div", { className: i("flex flex-col gap-1 pb-4", o), ...t });
1953
- }
1954
- St.displayName = "DialogHeader";
1955
- function Tt({ className: o, ...t }) {
1956
- return /* @__PURE__ */ e(
1957
- "div",
1958
- {
1959
- className: i("flex flex-col-reverse gap-2 pt-6 sm:flex-row sm:justify-end", o),
1960
- ...t
1961
- }
1962
- );
1963
- }
1964
- Tt.displayName = "DialogFooter";
1965
- const Dt = u(function({ className: t, ...r }, n) {
1966
- return /* @__PURE__ */ e(
1967
- z.Title,
1968
- {
1969
- ref: n,
1970
- className: i("text-lg font-semibold text-foreground leading-tight", t),
1971
- ...r
1972
- }
1973
- );
1974
- });
1975
- Dt.displayName = "DialogTitle";
1976
- const Mt = u(function({ className: t, ...r }, n) {
1977
- return /* @__PURE__ */ e(
1978
- z.Description,
1979
- {
1980
- ref: n,
1981
- className: i("text-sm text-foreground-muted", t),
1982
- ...r
1983
- }
1984
- );
1985
- });
1986
- Mt.displayName = "DialogDescription";
1987
- function qn({
1988
- open: o,
1989
- onOpenChange: t,
1990
- title: r,
1991
- description: n,
1992
- confirmLabel: a = "Confirm",
1993
- cancelLabel: s = "Cancel",
1994
- confirmVariant: l = "primary",
1995
- onConfirm: m,
1996
- loading: f
1997
- }) {
1998
- return /* @__PURE__ */ e(Xn, { open: o, onOpenChange: t, children: /* @__PURE__ */ d(zt, { size: "sm", children: [
1999
- /* @__PURE__ */ d(St, { children: [
2000
- /* @__PURE__ */ e(Dt, { children: r }),
2001
- n && /* @__PURE__ */ e(Mt, { children: n })
2002
- ] }),
2003
- /* @__PURE__ */ d(Tt, { children: [
2004
- /* @__PURE__ */ e(Yn, { asChild: !0, children: /* @__PURE__ */ e(fe, { variant: "outline", children: s }) }),
2005
- /* @__PURE__ */ e(fe, { variant: l, loading: f, onClick: m, children: a })
2006
- ] })
2007
- ] }) });
2008
- }
2009
- qn.displayName = "ConfirmationDialog";
2010
- const Zn = u(function({ icon: t, illustration: r, title: n, description: a, action: s, secondaryAction: l, className: m, ...f }, c) {
2011
- return /* @__PURE__ */ d(
2012
- "div",
2013
- {
2014
- ref: c,
2015
- className: i(
2016
- "flex flex-col items-center justify-center gap-3 rounded-lg border border-dashed border-border bg-background-subtle p-10 text-center",
2017
- m
2018
- ),
2019
- ...f,
2020
- children: [
2021
- r || (t ? /* @__PURE__ */ e("div", { className: "inline-flex size-12 items-center justify-center rounded-full bg-background-muted text-foreground-muted [&_svg]:size-6", children: t }) : /* @__PURE__ */ e(st, { className: "size-24" })),
2022
- /* @__PURE__ */ e("h3", { className: "text-base font-semibold text-foreground leading-tight", children: n }),
2023
- a && /* @__PURE__ */ e("p", { className: "max-w-md text-sm text-foreground-muted leading-relaxed", children: a }),
2024
- (s || l) && /* @__PURE__ */ d("div", { className: "mt-2 flex items-center gap-2", children: [
2025
- s,
2026
- l
2027
- ] })
2028
- ]
2029
- }
2030
- );
2031
- });
2032
- Zn.displayName = "EmptyState";
2033
- const Jn = {
2034
- 404: {
2035
- illustration: /* @__PURE__ */ e(it, { className: "size-32" }),
2036
- title: "Page not found",
2037
- description: "We couldn't find what you were looking for."
2038
- },
2039
- 500: {
2040
- illustration: /* @__PURE__ */ e(lt, { className: "size-32" }),
2041
- title: "Something went wrong",
2042
- description: "We're looking into it. Please try again in a moment."
2043
- },
2044
- generic: {
2045
- illustration: /* @__PURE__ */ e(dt, { className: "size-32" }),
2046
- title: "Unexpected error",
2047
- description: "Something interrupted this action."
2048
- }
2049
- }, eo = u(function({ variant: t = "generic", title: r, description: n, illustration: a, action: s, onRetry: l, className: m, ...f }, c) {
2050
- const b = Jn[t];
2051
- return /* @__PURE__ */ d(
2052
- "div",
2053
- {
2054
- ref: c,
2055
- role: "alert",
2056
- className: i(
2057
- "flex flex-col items-center justify-center gap-3 rounded-lg border border-border bg-background-subtle p-10 text-center",
2058
- m
2059
- ),
2060
- ...f,
2061
- children: [
2062
- a ?? b.illustration,
2063
- /* @__PURE__ */ e("h3", { className: "text-base font-semibold text-foreground leading-tight", children: r ?? b.title }),
2064
- /* @__PURE__ */ e("p", { className: "max-w-md text-sm text-foreground-muted leading-relaxed", children: n ?? b.description }),
2065
- (s || l) && /* @__PURE__ */ e("div", { className: "mt-2 flex items-center gap-2", children: s ?? /* @__PURE__ */ e(fe, { onClick: l, variant: "outline", children: "Try again" }) })
2066
- ]
2067
- }
2068
- );
2069
- });
2070
- eo.displayName = "ErrorState";
2071
- const Ka = jr, It = be(null);
2072
- function Xa(o) {
2073
- return /* @__PURE__ */ e(It.Provider, { value: { name: o.name }, children: /* @__PURE__ */ e(Br, { ...o }) });
2074
- }
2075
- const Pt = be(null);
2076
- function Te() {
2077
- const o = Z(It), t = Z(Pt), { getFieldState: r, formState: n } = Ar();
2078
- if (!o)
2079
- throw new Error("useFormField must be used inside <FormField>");
2080
- const a = r(o.name, n), s = (t == null ? void 0 : t.id) ?? "";
2081
- return {
2082
- id: s,
2083
- name: o.name,
2084
- formItemId: `${s}-item`,
2085
- formDescriptionId: `${s}-desc`,
2086
- formMessageId: `${s}-error`,
2087
- ...a
2088
- };
2089
- }
2090
- const to = u(
2091
- function({ className: t, ...r }, n) {
2092
- const a = B();
2093
- return /* @__PURE__ */ e(Pt.Provider, { value: { id: a }, children: /* @__PURE__ */ e("div", { ref: n, className: i("flex flex-col gap-1.5", t), ...r }) });
2094
- }
2095
- );
2096
- to.displayName = "FormItem";
2097
- const ro = u(function({ className: t, ...r }, n) {
2098
- const { formItemId: a, error: s } = Te();
2099
- return /* @__PURE__ */ e(
2100
- Lr.Root,
2101
- {
2102
- ref: n,
2103
- htmlFor: a,
2104
- className: i(
2105
- "text-sm font-medium text-foreground",
2106
- s && "text-danger-text",
2107
- t
2108
- ),
2109
- ...r
2110
- }
2111
- );
2112
- });
2113
- ro.displayName = "FormLabel";
2114
- const no = u(
2115
- function(t, r) {
2116
- const { error: n, formItemId: a, formDescriptionId: s, formMessageId: l } = Te();
2117
- return /* @__PURE__ */ e(
2118
- at,
2119
- {
2120
- ref: r,
2121
- id: a,
2122
- "aria-describedby": n ? `${s} ${l}` : s,
2123
- "aria-invalid": !!n,
2124
- ...t
2125
- }
2126
- );
2127
- }
2128
- );
2129
- no.displayName = "FormControl";
2130
- const oo = u(
2131
- function({ className: t, ...r }, n) {
2132
- const { formDescriptionId: a } = Te();
2133
- return /* @__PURE__ */ e(
2134
- "p",
2135
- {
2136
- ref: n,
2137
- id: a,
2138
- className: i("text-xs text-foreground-subtle", t),
2139
- ...r
2140
- }
2141
- );
2142
- }
2143
- );
2144
- oo.displayName = "FormDescription";
2145
- const ao = u(
2146
- function({ className: t, children: r, ...n }, a) {
2147
- const { error: s, formMessageId: l } = Te(), m = s ? String((s == null ? void 0 : s.message) ?? "") : r;
2148
- return m ? /* @__PURE__ */ e(
2149
- "p",
2150
- {
2151
- ref: a,
2152
- id: l,
2153
- role: "alert",
2154
- className: i("text-xs text-danger-text", t),
2155
- ...n,
2156
- children: m
2157
- }
2158
- ) : null;
2159
- }
2160
- );
2161
- ao.displayName = "FormError";
2162
- const so = u(function({ size: t = "sm", className: r, ...n }, a) {
2163
- return /* @__PURE__ */ e(
2164
- "kbd",
2165
- {
2166
- ref: a,
2167
- className: i(
2168
- "inline-flex items-center justify-center rounded border border-border bg-background-subtle font-mono",
2169
- "text-foreground-muted shadow-xs",
2170
- t === "sm" ? "h-5 min-w-5 px-1 text-[10px]" : "h-6 min-w-6 px-1.5 text-xs",
2171
- r
2172
- ),
2173
- ...n
2174
- }
2175
- );
2176
- });
2177
- so.displayName = "Kbd";
2178
- const io = u(function({
2179
- options: t,
2180
- value: r,
2181
- onChange: n,
2182
- label: a,
2183
- helperText: s,
2184
- error: l,
2185
- placeholder: m = "Select…",
2186
- emptyText: f = "No results.",
2187
- maxVisibleChips: c = 3,
2188
- clearable: b = !0,
2189
- disabled: p,
2190
- className: g
2191
- }, h) {
2192
- const x = B(), v = x, N = `${x}-helper`, D = `${x}-error`, [I, M] = S(!1), [C, y] = S(""), k = $e(null), L = ge(
2193
- () => t.filter((w) => r.includes(w.value)),
2194
- [t, r]
2195
- ), G = H(
2196
- (w) => {
2197
- r.includes(w) ? n(r.filter((U) => U !== w)) : n([...r, w]);
2198
- },
2199
- [r, n]
2200
- ), Q = H(() => n([]), [n]), te = (w) => {
2201
- w.key === "Backspace" && C === "" && r.length > 0 && n(r.slice(0, -1));
2202
- }, E = L.slice(0, c), V = L.length - E.length, Y = !!l;
2203
- return /* @__PURE__ */ d("div", { ref: h, className: i("flex flex-col gap-1.5", g), children: [
2204
- a && /* @__PURE__ */ e("label", { htmlFor: v, className: "text-sm font-medium text-foreground", children: a }),
2205
- /* @__PURE__ */ d(T.Root, { open: I, onOpenChange: M, children: [
2206
- /* @__PURE__ */ e(T.Trigger, { asChild: !0, children: /* @__PURE__ */ d(
2207
- "div",
2208
- {
2209
- role: "combobox",
2210
- "aria-expanded": I,
2211
- "aria-controls": `${v}-list`,
2212
- "aria-haspopup": "listbox",
2213
- id: v,
2214
- tabIndex: p ? -1 : 0,
2215
- onKeyDown: te,
2216
- "aria-disabled": p || void 0,
2217
- "aria-invalid": Y || void 0,
2218
- "aria-describedby": Y ? D : s ? N : void 0,
2219
- className: i(
2220
- "flex h-9 w-full cursor-text items-center gap-1.5 overflow-hidden rounded-md border bg-card px-2 py-1 text-sm",
2221
- "transition-colors duration-[var(--duration-fast)] ease-[var(--ease-out)]",
2222
- "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-offset-background",
2223
- Y ? "border-danger focus-visible:border-danger focus-visible:ring-danger" : "border-border focus-visible:border-accent focus-visible:ring-ring",
2224
- p && "opacity-50 pointer-events-none"
2225
- ),
2226
- onClick: () => {
2227
- var w;
2228
- return (w = k.current) == null ? void 0 : w.focus();
2229
- },
2230
- children: [
2231
- /* @__PURE__ */ d("div", { className: "flex min-w-0 flex-1 items-center gap-1.5 overflow-hidden", children: [
2232
- E.length === 0 && /* @__PURE__ */ e("span", { className: "truncate px-1 text-foreground-subtle", children: m }),
2233
- E.map((w) => /* @__PURE__ */ d(
2234
- "span",
2235
- {
2236
- className: "inline-flex max-w-[10rem] shrink-0 items-center gap-1 rounded-md bg-accent-soft px-1.5 py-0.5 text-xs font-medium text-on-accent-soft",
2237
- children: [
2238
- /* @__PURE__ */ e("span", { className: "truncate", children: w.label }),
2239
- /* @__PURE__ */ e(
2240
- "button",
2241
- {
2242
- type: "button",
2243
- "aria-label": `Remove ${w.label}`,
2244
- className: "inline-flex items-center text-on-accent-soft hover:text-foreground",
2245
- onClick: (U) => {
2246
- U.stopPropagation(), G(w.value);
2247
- },
2248
- children: /* @__PURE__ */ e(j, { className: "size-3", "aria-hidden": !0 })
2249
- }
2250
- )
2251
- ]
2252
- },
2253
- w.value
2254
- )),
2255
- V > 0 && /* @__PURE__ */ d("span", { className: "shrink-0 rounded-md bg-background-muted px-1.5 py-0.5 text-xs font-medium text-foreground-muted", children: [
2256
- "+",
2257
- V
2258
- ] }),
2259
- /* @__PURE__ */ e(
2260
- "input",
2261
- {
2262
- ref: k,
2263
- value: C,
2264
- onChange: (w) => y(w.target.value),
2265
- onFocus: () => M(!0),
2266
- className: "min-w-[6ch] flex-1 bg-transparent text-sm outline-none placeholder:text-foreground-subtle",
2267
- disabled: p
2268
- }
2269
- )
2270
- ] }),
2271
- /* @__PURE__ */ d("span", { className: "flex shrink-0 items-center gap-1 pl-1", children: [
2272
- b && L.length > 0 && /* @__PURE__ */ e(
2273
- "button",
2274
- {
2275
- type: "button",
2276
- "aria-label": "Clear all",
2277
- onClick: (w) => {
2278
- w.stopPropagation(), Q();
2279
- },
2280
- className: "text-foreground-subtle hover:text-foreground",
2281
- children: /* @__PURE__ */ e(j, { className: "size-4", "aria-hidden": !0 })
2282
- }
2283
- ),
2284
- /* @__PURE__ */ e(ve, { className: "size-4 text-foreground-subtle", "aria-hidden": !0 })
2285
- ] })
2286
- ]
2287
- }
2288
- ) }),
2289
- /* @__PURE__ */ e(T.Portal, { children: /* @__PURE__ */ e(
2290
- T.Content,
2291
- {
2292
- align: "start",
2293
- sideOffset: 4,
2294
- className: i(
2295
- "z-[var(--z-popover)] w-[var(--radix-popover-trigger-width)] overflow-hidden rounded-lg border border-border bg-popover text-popover-foreground shadow-md",
2296
- "data-[state=open]:animate-in data-[state=closed]:animate-out",
2297
- "data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
2298
- "data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95"
2299
- ),
2300
- onOpenAutoFocus: (w) => w.preventDefault(),
2301
- children: /* @__PURE__ */ e(P, { shouldFilter: !1, className: "flex h-full w-full flex-col", children: /* @__PURE__ */ d(
2302
- P.List,
2303
- {
2304
- id: `${v}-list`,
2305
- className: "max-h-64 overflow-y-auto p-1",
2306
- children: [
2307
- t.filter((w) => w.label.toLowerCase().includes(C.toLowerCase())).map((w) => {
2308
- const U = r.includes(w.value);
2309
- return /* @__PURE__ */ d(
2310
- P.Item,
2311
- {
2312
- value: w.value,
2313
- disabled: w.disabled,
2314
- onSelect: () => G(w.value),
2315
- className: i(
2316
- "flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm text-foreground",
2317
- "data-[selected=true]:bg-background-muted",
2318
- "data-[disabled=true]:opacity-50 data-[disabled=true]:pointer-events-none"
2319
- ),
2320
- children: [
2321
- /* @__PURE__ */ e(
2322
- "span",
2323
- {
2324
- "aria-hidden": !0,
2325
- className: i(
2326
- "flex size-4 items-center justify-center rounded-sm border",
2327
- U ? "border-accent bg-accent text-on-accent" : "border-border"
2328
- ),
2329
- children: U && /* @__PURE__ */ e(K, { className: "size-3", "aria-hidden": !0 })
2330
- }
2331
- ),
2332
- /* @__PURE__ */ e("span", { className: "flex-1", children: w.label }),
2333
- w.description && /* @__PURE__ */ e("span", { className: "text-xs text-foreground-subtle", children: w.description })
2334
- ]
2335
- },
2336
- w.value
2337
- );
2338
- }),
2339
- /* @__PURE__ */ e(P.Empty, { className: "px-2 py-6 text-center text-sm text-foreground-subtle", children: f })
2340
- ]
2341
- }
2342
- ) })
2343
- }
2344
- ) })
2345
- ] }),
2346
- l ? /* @__PURE__ */ e("p", { id: D, role: "alert", className: "text-xs text-danger-text", children: l }) : s ? /* @__PURE__ */ e("p", { id: N, className: "text-xs text-foreground-subtle", children: s }) : null
2347
- ] });
2348
- });
2349
- io.displayName = "MultiSelect";
2350
- const lo = _.Root, Qa = _.Value, _t = u(function({ className: t, placeholder: r, size: n = "md", tone: a = "default", ...s }, l) {
2351
- return /* @__PURE__ */ d(
2352
- _.Trigger,
2353
- {
2354
- ref: l,
2355
- className: i(
2356
- "inline-flex w-full items-center justify-between gap-2 rounded-md border bg-card text-sm text-foreground",
2357
- "transition-colors duration-[var(--duration-fast)] ease-[var(--ease-out)]",
2358
- "outline-none",
2359
- "focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-offset-background",
2360
- "disabled:opacity-50 disabled:cursor-not-allowed",
2361
- "data-[placeholder]:text-foreground-subtle",
2362
- n === "sm" && "h-8 px-2.5",
2363
- n === "md" && "h-9 px-3",
2364
- n === "lg" && "h-10 px-3.5",
2365
- a === "default" ? "border-border focus-visible:border-accent focus-visible:ring-ring" : "border-danger focus-visible:border-danger focus-visible:ring-danger",
2366
- t
2367
- ),
2368
- ...s,
2369
- children: [
2370
- /* @__PURE__ */ e(_.Value, { placeholder: r }),
2371
- /* @__PURE__ */ e(_.Icon, { asChild: !0, children: /* @__PURE__ */ e(ve, { className: "size-4 text-foreground-subtle shrink-0", "aria-hidden": !0 }) })
2372
- ]
2373
- }
2374
- );
2375
- });
2376
- _t.displayName = "SelectTrigger";
2377
- const Ft = "flex h-6 cursor-default items-center justify-center text-foreground-subtle", $t = u(function({ className: t, ...r }, n) {
2378
- return /* @__PURE__ */ e(_.ScrollUpButton, { ref: n, className: i(Ft, t), ...r, children: /* @__PURE__ */ e(Qe, { className: "size-4", "aria-hidden": !0 }) });
2379
- });
2380
- $t.displayName = "SelectScrollUpButton";
2381
- const Rt = u(function({ className: t, ...r }, n) {
2382
- return /* @__PURE__ */ e(_.ScrollDownButton, { ref: n, className: i(Ft, t), ...r, children: /* @__PURE__ */ e(ie, { className: "size-4", "aria-hidden": !0 }) });
2383
- });
2384
- Rt.displayName = "SelectScrollDownButton";
2385
- const Lt = u(function({ className: t, children: r, position: n = "popper", ...a }, s) {
2386
- return /* @__PURE__ */ e(_.Portal, { children: /* @__PURE__ */ d(
2387
- _.Content,
2388
- {
2389
- ref: s,
2390
- position: n,
2391
- className: i(
2392
- "z-[var(--z-popover)] min-w-[var(--radix-select-trigger-width)] max-h-96",
2393
- "overflow-hidden rounded-lg border border-border bg-popover text-popover-foreground",
2394
- "shadow-md",
2395
- "data-[state=open]:animate-in data-[state=closed]:animate-out",
2396
- "data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
2397
- "data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
2398
- n === "popper" && "data-[side=bottom]:translate-y-1 data-[side=top]:-translate-y-1",
2399
- t
2400
- ),
2401
- ...a,
2402
- children: [
2403
- /* @__PURE__ */ e($t, {}),
2404
- /* @__PURE__ */ e(_.Viewport, { className: "p-1", children: r }),
2405
- /* @__PURE__ */ e(Rt, {})
2406
- ]
2407
- }
2408
- ) });
2409
- });
2410
- Lt.displayName = "SelectContent";
2411
- const jt = u(function({ className: t, ...r }, n) {
2412
- return /* @__PURE__ */ e(
2413
- _.Label,
2414
- {
2415
- ref: n,
2416
- className: i("px-2 py-1.5 text-xs font-medium text-foreground-subtle", t),
2417
- ...r
2418
- }
2419
- );
2420
- });
2421
- jt.displayName = "SelectLabel";
2422
- const Bt = u(function({ className: t, children: r, leadingIcon: n, ...a }, s) {
2423
- return /* @__PURE__ */ d(
2424
- _.Item,
2425
- {
2426
- ref: s,
2427
- className: i(
2428
- "relative flex w-full cursor-default select-none items-center gap-2",
2429
- "rounded-sm px-2 py-1.5 pr-8 text-sm text-foreground outline-none",
2430
- "data-[highlighted]:bg-background-muted data-[highlighted]:text-foreground",
2431
- "data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
2432
- t
2433
- ),
2434
- ...a,
2435
- children: [
2436
- n && /* @__PURE__ */ e("span", { className: "flex items-center text-foreground-subtle [&_svg]:size-4", children: n }),
2437
- /* @__PURE__ */ e(_.ItemText, { children: r }),
2438
- /* @__PURE__ */ e("span", { className: "absolute right-2 flex items-center justify-center", children: /* @__PURE__ */ e(_.ItemIndicator, { children: /* @__PURE__ */ e(K, { className: "size-4 text-accent", "aria-hidden": !0 }) }) })
2439
- ]
2440
- }
2441
- );
2442
- });
2443
- Bt.displayName = "SelectItem";
2444
- const co = u(function({ className: t, ...r }, n) {
2445
- return /* @__PURE__ */ e(
2446
- _.Separator,
2447
- {
2448
- ref: n,
2449
- className: i("-mx-1 my-1 h-px bg-border", t),
2450
- ...r
2451
- }
2452
- );
2453
- });
2454
- co.displayName = "SelectSeparator";
2455
- const uo = u(function({ label: t, children: r, ...n }, a) {
2456
- return /* @__PURE__ */ d(_.Group, { ref: a, ...n, children: [
2457
- t && /* @__PURE__ */ e(jt, { children: t }),
2458
- r
2459
- ] });
2460
- });
2461
- uo.displayName = "SelectGroup";
2462
- function mo(o, t, r = 7) {
2463
- if (t <= r) return Array.from({ length: t }, (m, f) => f + 1);
2464
- const n = 1, a = [], s = Math.max(2, o - n), l = Math.min(t - 1, o + n);
2465
- a.push(1), s > 2 && a.push("gap");
2466
- for (let m = s; m <= l; m++) a.push(m);
2467
- return l < t - 1 && a.push("gap"), a.push(t), a;
2468
- }
2469
- const fo = u(function({
2470
- page: t,
2471
- pageCount: r,
2472
- onPageChange: n,
2473
- totalItems: a,
2474
- pageSize: s,
2475
- pageSizeOptions: l,
2476
- onPageSizeChange: m,
2477
- showJump: f = !0,
2478
- className: c,
2479
- ...b
2480
- }, p) {
2481
- const g = ge(() => mo(t, r), [t, r]), h = s ? (t - 1) * s + 1 : void 0, x = s && a ? Math.min(t * s, a) : void 0, v = (N) => {
2482
- N < 1 || N > r || N === t || n(N);
2483
- };
2484
- return /* @__PURE__ */ d(
2485
- "nav",
2486
- {
2487
- ref: p,
2488
- "aria-label": "Pagination",
2489
- className: i("flex flex-wrap items-center justify-between gap-3", c),
2490
- ...b,
2491
- children: [
2492
- /* @__PURE__ */ d("div", { className: "flex items-center gap-3 text-sm text-foreground-muted", children: [
2493
- a !== void 0 && s !== void 0 && /* @__PURE__ */ d("span", { className: "tabular", children: [
2494
- "Showing ",
2495
- h,
2496
- "–",
2497
- x,
2498
- " of ",
2499
- a
2500
- ] }),
2501
- l && m && s !== void 0 && /* @__PURE__ */ d("div", { className: "flex items-center gap-2", children: [
2502
- /* @__PURE__ */ e("label", { htmlFor: "page-size", className: "sr-only", children: "Rows per page" }),
2503
- /* @__PURE__ */ d(lo, { value: String(s), onValueChange: (N) => m(Number(N)), children: [
2504
- /* @__PURE__ */ e(_t, { size: "sm", className: "w-[7.5rem] whitespace-nowrap" }),
2505
- /* @__PURE__ */ e(Lt, { children: l.map((N) => /* @__PURE__ */ d(Bt, { value: String(N), children: [
2506
- N,
2507
- " / page"
2508
- ] }, N)) })
2509
- ] })
2510
- ] })
2511
- ] }),
2512
- /* @__PURE__ */ d("ul", { className: "flex items-center gap-1", children: [
2513
- f && /* @__PURE__ */ e("li", { children: /* @__PURE__ */ e(
2514
- "button",
2515
- {
2516
- type: "button",
2517
- "aria-label": "Go to first page",
2518
- disabled: t === 1,
2519
- onClick: () => v(1),
2520
- className: ce,
2521
- children: /* @__PURE__ */ e(Re, { className: "size-4", "aria-hidden": !0 })
2522
- }
2523
- ) }),
2524
- /* @__PURE__ */ e("li", { children: /* @__PURE__ */ e(
2525
- "button",
2526
- {
2527
- type: "button",
2528
- "aria-label": "Previous page",
2529
- disabled: t === 1,
2530
- onClick: () => v(t - 1),
2531
- className: ce,
2532
- children: /* @__PURE__ */ e(xe, { className: "size-4", "aria-hidden": !0 })
2533
- }
2534
- ) }),
2535
- g.map(
2536
- (N, D) => N === "gap" ? /* @__PURE__ */ e("li", { className: "px-2 text-foreground-subtle", children: "…" }, `gap-${D}`) : /* @__PURE__ */ e("li", { children: /* @__PURE__ */ e(
2537
- "button",
2538
- {
2539
- type: "button",
2540
- "aria-label": `Page ${N}`,
2541
- "aria-current": N === t ? "page" : void 0,
2542
- onClick: () => v(N),
2543
- className: i(
2544
- "inline-flex size-8 items-center justify-center rounded-md text-sm tabular outline-none",
2545
- "transition-colors duration-[var(--duration-fast)]",
2546
- "focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background",
2547
- N === t ? "bg-accent text-on-accent font-medium" : "text-foreground-muted hover:bg-background-muted hover:text-foreground"
2548
- ),
2549
- children: N
2550
- }
2551
- ) }, N)
2552
- ),
2553
- /* @__PURE__ */ e("li", { children: /* @__PURE__ */ e(
2554
- "button",
2555
- {
2556
- type: "button",
2557
- "aria-label": "Next page",
2558
- disabled: t === r,
2559
- onClick: () => v(t + 1),
2560
- className: ce,
2561
- children: /* @__PURE__ */ e(W, { className: "size-4", "aria-hidden": !0 })
2562
- }
2563
- ) }),
2564
- f && /* @__PURE__ */ e("li", { children: /* @__PURE__ */ e(
2565
- "button",
2566
- {
2567
- type: "button",
2568
- "aria-label": "Go to last page",
2569
- disabled: t === r,
2570
- onClick: () => v(r),
2571
- className: ce,
2572
- children: /* @__PURE__ */ e(Le, { className: "size-4", "aria-hidden": !0 })
2573
- }
2574
- ) })
2575
- ] })
2576
- ]
2577
- }
2578
- );
2579
- });
2580
- fo.displayName = "Pagination";
2581
- const ce = i(
2582
- "inline-flex size-8 items-center justify-center rounded-md text-foreground-muted",
2583
- "transition-colors duration-[var(--duration-fast)]",
2584
- "hover:bg-background-muted hover:text-foreground",
2585
- "disabled:opacity-50 disabled:pointer-events-none",
2586
- "outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background"
2587
- ), Ya = T.Root, qa = T.Trigger, Za = T.Anchor, Ja = T.Close, go = u(function({ className: t, align: r = "center", sideOffset: n = 4, ...a }, s) {
2588
- return /* @__PURE__ */ e(T.Portal, { children: /* @__PURE__ */ e(
2589
- T.Content,
2590
- {
2591
- ref: s,
2592
- align: r,
2593
- sideOffset: n,
2594
- className: i(
2595
- "z-[var(--z-popover)] w-72 rounded-lg border border-border bg-popover p-4 text-popover-foreground shadow-md",
2596
- "outline-none",
2597
- "data-[state=open]:animate-in data-[state=closed]:animate-out",
2598
- "data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
2599
- "data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
2600
- "data-[side=bottom]:slide-in-from-top-1 data-[side=top]:slide-in-from-bottom-1",
2601
- "data-[side=left]:slide-in-from-right-1 data-[side=right]:slide-in-from-left-1",
2602
- t
2603
- ),
2604
- ...a
2605
- }
2606
- ) });
2607
- });
2608
- go.displayName = "PopoverContent";
2609
- const bo = { sm: "h-1", md: "h-1.5", lg: "h-2" }, po = {
2610
- accent: "bg-accent",
2611
- success: "bg-success",
2612
- warning: "bg-warning",
2613
- danger: "bg-danger"
2614
- }, ho = u(
2615
- function({ className: t, value: r, size: n = "md", tone: a = "accent", ...s }, l) {
2616
- const m = r == null;
2617
- return /* @__PURE__ */ d(
2618
- Oe.Root,
2619
- {
2620
- ref: l,
2621
- value: m ? void 0 : r,
2622
- className: i(
2623
- "relative w-full overflow-hidden rounded-full bg-background-muted",
2624
- bo[n],
2625
- t
2626
- ),
2627
- ...s,
2628
- children: [
2629
- /* @__PURE__ */ e(
2630
- Oe.Indicator,
2631
- {
2632
- className: i(
2633
- "h-full w-full flex-1 transition-transform",
2634
- po[a],
2635
- m && "animate-[progressIndeterminate_1.4s_ease-in-out_infinite] origin-left"
2636
- ),
2637
- style: m ? void 0 : { transform: `translateX(-${100 - (r ?? 0)}%)` }
2638
- }
2639
- ),
2640
- /* @__PURE__ */ e("style", { children: `
2641
- @keyframes progressIndeterminate {
2642
- 0% { transform: translateX(-100%) scaleX(0.6); }
2643
- 50% { transform: translateX(0%) scaleX(0.4); }
2644
- 100% { transform: translateX(100%) scaleX(0.6); }
2645
- }
2646
- ` })
2647
- ]
2648
- }
2649
- );
2650
- }
2651
- );
2652
- ho.displayName = "Progress";
2653
- const xo = {
2654
- accent: "stroke-accent",
2655
- success: "stroke-success",
2656
- warning: "stroke-warning",
2657
- danger: "stroke-danger"
2658
- }, vo = u(function({ value: t, size: r = 36, thickness: n = 3, className: a, tone: s = "accent", ...l }, m) {
2659
- const f = t === void 0, c = (r - n) / 2, b = 2 * Math.PI * c, p = f ? 0 : b - Math.min(100, Math.max(0, t)) / 100 * b;
2660
- return /* @__PURE__ */ d(
2661
- "svg",
2662
- {
2663
- ref: m,
2664
- width: r,
2665
- height: r,
2666
- viewBox: `0 0 ${r} ${r}`,
2667
- role: "progressbar",
2668
- "aria-valuemin": 0,
2669
- "aria-valuemax": 100,
2670
- "aria-valuenow": f ? void 0 : t,
2671
- className: i("shrink-0", f && "animate-spin", a),
2672
- ...l,
2673
- children: [
2674
- /* @__PURE__ */ e(
2675
- "circle",
2676
- {
2677
- cx: r / 2,
2678
- cy: r / 2,
2679
- r: c,
2680
- strokeWidth: n,
2681
- className: "stroke-background-muted fill-none"
2682
- }
2683
- ),
2684
- /* @__PURE__ */ e(
2685
- "circle",
2686
- {
2687
- cx: r / 2,
2688
- cy: r / 2,
2689
- r: c,
2690
- strokeWidth: n,
2691
- strokeLinecap: "round",
2692
- strokeDasharray: b,
2693
- strokeDashoffset: f ? b * 0.7 : p,
2694
- className: i(xo[s], "fill-none transition-[stroke-dashoffset]"),
2695
- transform: `rotate(-90 ${r / 2} ${r / 2})`
2696
- }
2697
- )
2698
- ]
2699
- }
2700
- );
2701
- });
2702
- vo.displayName = "ProgressCircle";
2703
- const No = u(function({ className: t, orientation: r = "vertical", ...n }, a) {
2704
- return /* @__PURE__ */ e(
2705
- Fe.Root,
2706
- {
2707
- ref: a,
2708
- className: i(
2709
- "flex gap-3",
2710
- r === "vertical" ? "flex-col" : "flex-row flex-wrap",
2711
- t
2712
- ),
2713
- ...n
2714
- }
2715
- );
2716
- });
2717
- No.displayName = "RadioGroup";
2718
- const yo = u(function({ className: t, label: r, description: n, hideLabel: a, id: s, disabled: l, ...m }, f) {
2719
- const c = B(), b = s ?? c, p = n ? `${b}-desc` : void 0;
2720
- return /* @__PURE__ */ d("div", { className: i("flex items-start gap-2.5", t), children: [
2721
- /* @__PURE__ */ e(
2722
- Fe.Item,
2723
- {
2724
- ref: f,
2725
- id: b,
2726
- disabled: l,
2727
- "aria-describedby": p,
2728
- className: i(
2729
- "mt-0.5 flex size-4 shrink-0 items-center justify-center rounded-full border bg-card",
2730
- "transition-colors duration-[var(--duration-fast)] ease-[var(--ease-out)]",
2731
- "outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background",
2732
- "data-[state=checked]:border-accent",
2733
- "disabled:cursor-not-allowed disabled:opacity-50",
2734
- "border-border-strong"
2735
- ),
2736
- ...m,
2737
- children: /* @__PURE__ */ e(Fe.Indicator, { className: "flex items-center justify-center", children: /* @__PURE__ */ e("span", { className: "size-2 rounded-full bg-accent", "aria-hidden": !0 }) })
2738
- }
2739
- ),
2740
- r && /* @__PURE__ */ d("div", { className: i("flex flex-col gap-0.5", a && "sr-only"), children: [
2741
- /* @__PURE__ */ e(
2742
- "label",
2743
- {
2744
- htmlFor: b,
2745
- className: i(
2746
- "text-sm text-foreground select-none",
2747
- l && "opacity-50 cursor-not-allowed"
2748
- ),
2749
- children: r
2750
- }
2751
- ),
2752
- n && /* @__PURE__ */ e("p", { id: p, className: "text-xs text-foreground-subtle", children: n })
2753
- ] })
2754
- ] });
2755
- });
2756
- yo.displayName = "RadioItem";
2757
- const wo = u(function({ className: t, children: r, ...n }, a) {
2758
- return /* @__PURE__ */ d(
2759
- oe.Root,
2760
- {
2761
- ref: a,
2762
- className: i("relative overflow-hidden", t),
2763
- ...n,
2764
- children: [
2765
- /* @__PURE__ */ e(oe.Viewport, { className: "h-full w-full rounded-[inherit]", children: r }),
2766
- /* @__PURE__ */ e(At, {}),
2767
- /* @__PURE__ */ e(oe.Corner, {})
2768
- ]
2769
- }
2770
- );
2771
- });
2772
- wo.displayName = "ScrollArea";
2773
- const At = u(function({ className: t, orientation: r = "vertical", ...n }, a) {
2774
- return /* @__PURE__ */ e(
2775
- oe.ScrollAreaScrollbar,
2776
- {
2777
- ref: a,
2778
- orientation: r,
2779
- className: i(
2780
- "flex touch-none select-none transition-colors duration-[var(--duration-fast)]",
2781
- r === "vertical" && "h-full w-2 border-l border-l-transparent p-px",
2782
- r === "horizontal" && "h-2 flex-col border-t border-t-transparent p-px",
2783
- t
2784
- ),
2785
- ...n,
2786
- children: /* @__PURE__ */ e(oe.ScrollAreaThumb, { className: "relative flex-1 rounded-full bg-border-strong" })
2787
- }
2788
- );
2789
- });
2790
- At.displayName = "ScrollBar";
2791
- const ko = u(function({ className: t, orientation: r = "horizontal", decorative: n = !0, ...a }, s) {
2792
- return /* @__PURE__ */ e(
2793
- Er.Root,
2794
- {
2795
- ref: s,
2796
- orientation: r,
2797
- decorative: n,
2798
- className: i(
2799
- "shrink-0 bg-border",
2800
- r === "horizontal" ? "h-px w-full" : "h-full w-px",
2801
- t
2802
- ),
2803
- ...a
2804
- }
2805
- );
2806
- });
2807
- ko.displayName = "Separator";
2808
- const es = z.Root, ts = z.Trigger, rs = z.Close, Co = z.Portal, Et = u(function({ className: t, ...r }, n) {
2809
- return /* @__PURE__ */ e(
2810
- z.Overlay,
2811
- {
2812
- ref: n,
2813
- className: i(
2814
- "fixed inset-0 z-[var(--z-overlay)] bg-neutral-950/60 backdrop-blur-[2px]",
2815
- "data-[state=open]:animate-in data-[state=closed]:animate-out",
2816
- "data-[state=open]:fade-in-0 data-[state=closed]:fade-out-0",
2817
- t
2818
- ),
2819
- ...r
2820
- }
2821
- );
2822
- });
2823
- Et.displayName = "SheetOverlay";
2824
- const zo = A(
2825
- [
2826
- "fixed z-[var(--z-modal)] bg-card text-card-foreground shadow-lg",
2827
- "flex flex-col gap-4 p-6",
2828
- "data-[state=open]:animate-in data-[state=closed]:animate-out",
2829
- "data-[state=closed]:duration-[var(--duration-base)] data-[state=open]:duration-[var(--duration-slow)]"
2830
- ],
2831
- {
2832
- variants: {
2833
- side: {
2834
- top: "inset-x-0 top-0 border-b border-border data-[state=open]:slide-in-from-top data-[state=closed]:slide-out-to-top",
2835
- bottom: "inset-x-0 bottom-0 border-t border-border data-[state=open]:slide-in-from-bottom data-[state=closed]:slide-out-to-bottom",
2836
- left: "inset-y-0 left-0 h-full w-3/4 max-w-md border-r border-border data-[state=open]:slide-in-from-left data-[state=closed]:slide-out-to-left",
2837
- right: "inset-y-0 right-0 h-full w-3/4 max-w-md border-l border-border data-[state=open]:slide-in-from-right data-[state=closed]:slide-out-to-right"
2838
- }
2839
- },
2840
- defaultVariants: { side: "right" }
2841
- }
2842
- ), So = u(function({ className: t, children: r, side: n = "right", showClose: a = !0, ...s }, l) {
2843
- return /* @__PURE__ */ d(Co, { children: [
2844
- /* @__PURE__ */ e(Et, {}),
2845
- /* @__PURE__ */ d(z.Content, { ref: l, className: i(zo({ side: n }), t), ...s, children: [
2846
- r,
2847
- a && /* @__PURE__ */ e(
2848
- z.Close,
2849
- {
2850
- "aria-label": "Close",
2851
- className: i(
2852
- "absolute right-4 top-4 inline-flex size-8 items-center justify-center rounded-md text-foreground-subtle",
2853
- "hover:bg-background-muted hover:text-foreground",
2854
- "outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-card",
2855
- "transition-colors duration-[var(--duration-fast)]"
2856
- ),
2857
- children: /* @__PURE__ */ e(j, { className: "size-4", "aria-hidden": !0 })
2858
- }
2859
- )
2860
- ] })
2861
- ] });
2862
- });
2863
- So.displayName = "SheetContent";
2864
- function To({ className: o, ...t }) {
2865
- return /* @__PURE__ */ e("div", { className: i("flex flex-col gap-1", o), ...t });
2866
- }
2867
- To.displayName = "SheetHeader";
2868
- function Do({ className: o, ...t }) {
2869
- return /* @__PURE__ */ e(
2870
- "div",
2871
- {
2872
- className: i("mt-auto flex flex-col-reverse gap-2 pt-4 sm:flex-row sm:justify-end", o),
2873
- ...t
2874
- }
2875
- );
2876
- }
2877
- Do.displayName = "SheetFooter";
2878
- const Mo = u(function({ className: t, ...r }, n) {
2879
- return /* @__PURE__ */ e(
2880
- z.Title,
2881
- {
2882
- ref: n,
2883
- className: i("text-lg font-semibold text-foreground leading-tight", t),
2884
- ...r
2885
- }
2886
- );
2887
- });
2888
- Mo.displayName = "SheetTitle";
2889
- const Io = u(function({ className: t, ...r }, n) {
2890
- return /* @__PURE__ */ e(
2891
- z.Description,
2892
- {
2893
- ref: n,
2894
- className: i("text-sm text-foreground-muted", t),
2895
- ...r
2896
- }
2897
- );
2898
- });
2899
- Io.displayName = "SheetDescription";
2900
- const le = be({ collapsed: !1 });
2901
- function ns() {
2902
- return Z(le);
2903
- }
2904
- const Po = u(function({
2905
- defaultCollapsed: t = !1,
2906
- collapsed: r,
2907
- onCollapsedChange: n,
2908
- header: a,
2909
- footer: s,
2910
- className: l,
2911
- children: m,
2912
- ...f
2913
- }, c) {
2914
- const [b, p] = S(t), g = r ?? b, h = (x) => {
2915
- r === void 0 && p(x), n == null || n(x);
2916
- };
2917
- return /* @__PURE__ */ e(le.Provider, { value: { collapsed: g }, children: /* @__PURE__ */ d(
2918
- "aside",
2919
- {
2920
- ref: c,
2921
- "aria-label": "Primary",
2922
- className: i(
2923
- "sticky top-0 hidden md:flex h-screen shrink-0 flex-col gap-2 border-r border-border bg-background-subtle",
2924
- "transition-[width] duration-[var(--duration-base)] ease-[var(--ease-out)]",
2925
- g ? "w-14" : "w-60",
2926
- l
2927
- ),
2928
- ...f,
2929
- children: [
2930
- a && /* @__PURE__ */ e(
2931
- "div",
2932
- {
2933
- className: i(
2934
- "flex h-14 shrink-0 items-center overflow-hidden border-b border-border",
2935
- g ? "justify-center px-2" : "px-3"
2936
- ),
2937
- children: a
2938
- }
2939
- ),
2940
- /* @__PURE__ */ e("div", { className: "flex-1 overflow-y-auto py-3", children: m }),
2941
- s && /* @__PURE__ */ e("div", { className: "border-t border-border p-2", children: s }),
2942
- /* @__PURE__ */ d(
2943
- "button",
2944
- {
2945
- type: "button",
2946
- onClick: () => h(!g),
2947
- "aria-label": g ? "Expand sidebar" : "Collapse sidebar",
2948
- "aria-expanded": !g,
2949
- className: i(
2950
- "flex h-8 items-center gap-2 mx-2 mb-2 rounded-md px-2 text-foreground-subtle",
2951
- "hover:bg-background-muted hover:text-foreground outline-none",
2952
- "focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background",
2953
- "transition-colors duration-[var(--duration-fast)]"
2954
- ),
2955
- children: [
2956
- g ? /* @__PURE__ */ e(Le, { className: "size-4", "aria-hidden": !0 }) : /* @__PURE__ */ e(Re, { className: "size-4", "aria-hidden": !0 }),
2957
- !g && /* @__PURE__ */ e("span", { className: "text-xs font-medium", children: "Collapse" })
2958
- ]
2959
- }
2960
- )
2961
- ]
2962
- }
2963
- ) });
2964
- });
2965
- Po.displayName = "Sidebar";
2966
- function _o({ label: o, className: t, children: r, ...n }) {
2967
- const { collapsed: a } = Z(le);
2968
- return /* @__PURE__ */ d("div", { className: i("mb-3", t), ...n, children: [
2969
- o && !a && /* @__PURE__ */ e("div", { className: "px-4 pb-1 pt-2 text-xs font-medium text-foreground-subtle uppercase tracking-wide", children: o }),
2970
- /* @__PURE__ */ e("ul", { className: "flex flex-col gap-px", children: r })
2971
- ] });
2972
- }
2973
- _o.displayName = "SidebarSection";
2974
- function Fo({
2975
- icon: o,
2976
- active: t,
2977
- href: r,
2978
- trailing: n,
2979
- sub: a,
2980
- className: s,
2981
- children: l,
2982
- ...m
2983
- }) {
2984
- const { collapsed: f } = Z(le);
2985
- return /* @__PURE__ */ e("li", { className: "px-2", children: /* @__PURE__ */ d(
2986
- r ? "a" : "button",
2987
- {
2988
- href: r,
2989
- "aria-current": t ? "page" : void 0,
2990
- className: i(
2991
- "flex h-8 w-full items-center gap-2 rounded-md px-2 text-sm outline-none",
2992
- "transition-colors duration-[var(--duration-fast)]",
2993
- "focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background",
2994
- t ? "bg-background-muted text-foreground font-medium" : "text-foreground-muted hover:bg-background-muted hover:text-foreground",
2995
- a && !f && "ml-6",
2996
- f && "justify-center",
2997
- s
2998
- ),
2999
- ...m,
3000
- children: [
3001
- o && /* @__PURE__ */ e("span", { className: "flex shrink-0 items-center [&_svg]:size-4", children: o }),
3002
- !f && /* @__PURE__ */ e("span", { className: "flex-1 truncate text-left", children: l }),
3003
- !f && n && /* @__PURE__ */ e("span", { className: "ml-auto", children: n })
3004
- ]
3005
- }
3006
- ) });
3007
- }
3008
- Fo.displayName = "SidebarItem";
3009
- function $o({ icon: o, label: t, defaultOpen: r = !0, children: n }) {
3010
- const { collapsed: a } = Z(le), [s, l] = S(r);
3011
- return a ? /* @__PURE__ */ e(ot, { children: n }) : /* @__PURE__ */ d("li", { children: [
3012
- /* @__PURE__ */ d(
3013
- "button",
3014
- {
3015
- type: "button",
3016
- onClick: () => l((m) => !m),
3017
- "aria-expanded": s,
3018
- className: i(
3019
- "mx-2 flex h-8 w-[calc(100%-1rem)] items-center gap-2 rounded-md px-2 text-sm text-foreground-muted outline-none",
3020
- "transition-colors duration-[var(--duration-fast)]",
3021
- "hover:bg-background-muted hover:text-foreground",
3022
- "focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background"
3023
- ),
3024
- children: [
3025
- o && /* @__PURE__ */ e("span", { className: "flex shrink-0 items-center [&_svg]:size-4", children: o }),
3026
- /* @__PURE__ */ e("span", { className: "flex-1 text-left", children: t }),
3027
- /* @__PURE__ */ e(ie, { className: i("size-3.5 transition-transform", s && "rotate-180"), "aria-hidden": !0 })
3028
- ]
3029
- }
3030
- ),
3031
- s && /* @__PURE__ */ e("ul", { className: "flex flex-col gap-px", children: n })
3032
- ] });
3033
- }
3034
- $o.displayName = "SidebarGroup";
3035
- const Ro = u(
3036
- function({
3037
- className: t,
3038
- label: r,
3039
- showValue: n,
3040
- formatValue: a = (c) => String(c),
3041
- value: s,
3042
- defaultValue: l,
3043
- ...m
3044
- }, f) {
3045
- const c = s ?? l ?? [0], b = c.length > 1;
3046
- return /* @__PURE__ */ d("div", { className: i("flex flex-col gap-2", t), children: [
3047
- (r || n) && /* @__PURE__ */ d("div", { className: "flex items-center justify-between", children: [
3048
- r && /* @__PURE__ */ e("span", { className: "text-sm font-medium text-foreground", children: r }),
3049
- n && /* @__PURE__ */ e("span", { className: "text-xs tabular text-foreground-muted font-mono", children: b ? `${a(c[0])} – ${a(c[1])}` : a(c[0]) })
3050
- ] }),
3051
- /* @__PURE__ */ d(
3052
- de.Root,
3053
- {
3054
- ref: f,
3055
- value: s,
3056
- defaultValue: l,
3057
- className: "relative flex w-full touch-none select-none items-center",
3058
- ...m,
3059
- children: [
3060
- /* @__PURE__ */ e(de.Track, { className: "relative h-1 w-full grow overflow-hidden rounded-full bg-background-muted", children: /* @__PURE__ */ e(de.Range, { className: "absolute h-full bg-accent" }) }),
3061
- c.map((p, g) => /* @__PURE__ */ e(
3062
- de.Thumb,
3063
- {
3064
- className: i(
3065
- "block size-4 rounded-full border-2 border-accent bg-card shadow-sm",
3066
- "outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background",
3067
- "transition-transform duration-[var(--duration-fast)] ease-[var(--ease-out)]",
3068
- "hover:scale-110 disabled:pointer-events-none disabled:opacity-50"
3069
- ),
3070
- "aria-label": b ? g === 0 ? "Minimum" : "Maximum" : r ? String(r) : "Value"
3071
- },
3072
- g
3073
- ))
3074
- ]
3075
- }
3076
- )
3077
- ] });
3078
- }
3079
- );
3080
- Ro.displayName = "Slider";
3081
- const Lo = { sm: "size-3.5", md: "size-4", lg: "size-6" }, jo = {
3082
- accent: "text-accent",
3083
- neutral: "text-foreground-subtle",
3084
- "on-accent": "text-on-accent"
3085
- }, Bo = u(function({ className: t, tone: r = "accent", size: n = "md", label: a, decorative: s, ...l }, m) {
3086
- return /* @__PURE__ */ d(
3087
- "svg",
3088
- {
3089
- ref: m,
3090
- viewBox: "0 0 24 24",
3091
- role: s ? void 0 : "status",
3092
- "aria-label": s ? void 0 : a ?? "Loading",
3093
- "aria-hidden": s || void 0,
3094
- className: i("animate-spin", Lo[n], jo[r], t),
3095
- ...l,
3096
- children: [
3097
- /* @__PURE__ */ e("circle", { cx: "12", cy: "12", r: "10", stroke: "currentColor", strokeWidth: "2.5", strokeOpacity: 0.2, fill: "none" }),
3098
- /* @__PURE__ */ e(
3099
- "path",
3100
- {
3101
- d: "M12 2a10 10 0 0 1 10 10",
3102
- stroke: "currentColor",
3103
- strokeWidth: "2.5",
3104
- strokeLinecap: "round",
3105
- fill: "none"
3106
- }
3107
- )
3108
- ]
3109
- }
3110
- );
3111
- });
3112
- Bo.displayName = "Spinner";
3113
- const Ao = u(function({ steps: t, current: r, orientation: n = "horizontal", className: a, ...s }, l) {
3114
- return /* @__PURE__ */ e(
3115
- "ol",
3116
- {
3117
- ref: l,
3118
- "aria-label": "Progress",
3119
- className: i(
3120
- n === "horizontal" ? "flex w-full items-center" : "flex flex-col gap-6",
3121
- a
3122
- ),
3123
- ...s,
3124
- children: t.map((m, f) => {
3125
- const c = f < r ? "complete" : f === r ? "current" : "upcoming", b = f === t.length - 1;
3126
- return /* @__PURE__ */ d(
3127
- "li",
3128
- {
3129
- "aria-current": c === "current" ? "step" : void 0,
3130
- className: i(
3131
- n === "horizontal" ? "flex flex-1 items-center gap-3 last:flex-initial" : "flex items-start gap-3"
3132
- ),
3133
- children: [
3134
- /* @__PURE__ */ d("div", { className: i(n === "horizontal" ? "flex items-center gap-3" : "flex flex-col items-center"), children: [
3135
- /* @__PURE__ */ e(
3136
- "span",
3137
- {
3138
- "aria-hidden": !0,
3139
- className: i(
3140
- "inline-flex size-7 items-center justify-center rounded-full text-xs font-semibold transition-colors",
3141
- c === "complete" && "bg-accent text-on-accent",
3142
- c === "current" && "bg-card border-2 border-accent text-accent",
3143
- c === "upcoming" && "bg-background-muted text-foreground-subtle border border-border"
3144
- ),
3145
- children: c === "complete" ? /* @__PURE__ */ e(K, { className: "size-4" }) : f + 1
3146
- }
3147
- ),
3148
- n === "vertical" && !b && /* @__PURE__ */ e(
3149
- "span",
3150
- {
3151
- className: i(
3152
- "mt-1 w-px flex-1 min-h-6",
3153
- f < r ? "bg-accent" : "bg-border"
3154
- )
3155
- }
3156
- )
3157
- ] }),
3158
- /* @__PURE__ */ d("div", { className: i("flex flex-col", n === "horizontal" && "min-w-0"), children: [
3159
- /* @__PURE__ */ e(
3160
- "span",
3161
- {
3162
- className: i(
3163
- "text-sm font-medium",
3164
- c === "upcoming" ? "text-foreground-subtle" : "text-foreground"
3165
- ),
3166
- children: m.title
3167
- }
3168
- ),
3169
- n === "vertical" && m.description && /* @__PURE__ */ e("p", { className: "text-xs text-foreground-muted mt-0.5", children: m.description })
3170
- ] }),
3171
- n === "horizontal" && !b && /* @__PURE__ */ e(
3172
- "span",
3173
- {
3174
- "aria-hidden": !0,
3175
- className: i(
3176
- "h-px flex-1 mx-2",
3177
- f < r ? "bg-accent" : "bg-border"
3178
- )
3179
- }
3180
- )
3181
- ]
3182
- },
3183
- f
3184
- );
3185
- })
3186
- }
3187
- );
3188
- });
3189
- Ao.displayName = "Stepper";
3190
- const Eo = {
3191
- sm: "h-4 w-7",
3192
- md: "h-5 w-9"
3193
- }, Oo = {
3194
- sm: "size-3 data-[state=checked]:translate-x-3",
3195
- md: "size-4 data-[state=checked]:translate-x-4"
3196
- }, Ho = u(
3197
- function({
3198
- className: t,
3199
- label: r,
3200
- description: n,
3201
- labelPosition: a = "after",
3202
- size: s = "md",
3203
- hideLabel: l,
3204
- id: m,
3205
- disabled: f,
3206
- ...c
3207
- }, b) {
3208
- const p = B(), g = m ?? p, h = n ? `${g}-desc` : void 0, x = /* @__PURE__ */ e(
3209
- He.Root,
3210
- {
3211
- ref: b,
3212
- id: g,
3213
- disabled: f,
3214
- "aria-describedby": h,
3215
- className: i(
3216
- "peer inline-flex shrink-0 items-center rounded-full border-2 border-transparent",
3217
- "transition-colors duration-[var(--duration-base)] ease-[var(--ease-out)]",
3218
- "outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background",
3219
- "disabled:cursor-not-allowed disabled:opacity-50",
3220
- "data-[state=checked]:bg-accent data-[state=unchecked]:bg-neutral-300 dark:data-[state=unchecked]:bg-neutral-700",
3221
- Eo[s]
3222
- ),
3223
- ...c,
3224
- children: /* @__PURE__ */ e(
3225
- He.Thumb,
3226
- {
3227
- className: i(
3228
- "pointer-events-none block rounded-full bg-white shadow-sm",
3229
- "transition-transform duration-[var(--duration-base)] ease-[var(--ease-out)]",
3230
- "translate-x-0",
3231
- Oo[s]
3232
- )
3233
- }
3234
- )
3235
- }
3236
- ), v = r && /* @__PURE__ */ d("div", { className: i("flex flex-col gap-0.5 select-none", l && "sr-only"), children: [
3237
- /* @__PURE__ */ e(
3238
- "label",
3239
- {
3240
- htmlFor: g,
3241
- className: i(
3242
- "text-sm text-foreground",
3243
- f && "opacity-50 cursor-not-allowed"
3244
- ),
3245
- children: r
3246
- }
3247
- ),
3248
- n && /* @__PURE__ */ e("p", { id: h, className: "text-xs text-foreground-subtle", children: n })
3249
- ] });
3250
- return /* @__PURE__ */ d("div", { className: i("inline-flex items-center gap-2.5", t), children: [
3251
- a === "before" && v,
3252
- x,
3253
- a === "after" && v
3254
- ] });
3255
- }
3256
- );
3257
- Ho.displayName = "Switch";
3258
- const os = ke.Root, Go = A("inline-flex items-center", {
3259
- variants: {
3260
- variant: {
3261
- underline: "gap-4 border-b border-border w-full",
3262
- pills: "gap-1 rounded-lg bg-background-muted p-1"
3263
- },
3264
- size: {
3265
- sm: "h-9 text-xs",
3266
- md: "h-10 text-sm",
3267
- lg: "h-11 text-sm"
3268
- }
3269
- },
3270
- defaultVariants: { variant: "underline", size: "md" }
3271
- }), Vo = u(
3272
- function({ className: t, variant: r = "underline", size: n, ...a }, s) {
3273
- return /* @__PURE__ */ e(
3274
- ke.List,
3275
- {
3276
- ref: s,
3277
- "data-variant": r,
3278
- className: i(Go({ variant: r, size: n }), t),
3279
- ...a
3280
- }
3281
- );
3282
- }
3283
- );
3284
- Vo.displayName = "TabsList";
3285
- const Wo = u(function({ className: t, ...r }, n) {
3286
- return /* @__PURE__ */ e(
3287
- ke.Trigger,
3288
- {
3289
- ref: n,
3290
- className: i(
3291
- "inline-flex items-center gap-2 whitespace-nowrap font-medium",
3292
- "outline-none transition-colors duration-[var(--duration-fast)] ease-[var(--ease-out)]",
3293
- "focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background",
3294
- "disabled:pointer-events-none disabled:opacity-50",
3295
- // Underline variant
3296
- "[[data-variant=underline]_&]:relative [[data-variant=underline]_&]:h-full",
3297
- "[[data-variant=underline]_&]:px-1 [[data-variant=underline]_&]:text-foreground-muted",
3298
- "[[data-variant=underline]_&]:hover:text-foreground",
3299
- "[[data-variant=underline]_&]:data-[state=active]:text-foreground",
3300
- "[[data-variant=underline]_&]:data-[state=active]:after:absolute",
3301
- "[[data-variant=underline]_&]:data-[state=active]:after:inset-x-0",
3302
- "[[data-variant=underline]_&]:data-[state=active]:after:-bottom-px",
3303
- "[[data-variant=underline]_&]:data-[state=active]:after:h-0.5",
3304
- "[[data-variant=underline]_&]:data-[state=active]:after:bg-accent",
3305
- // Pills variant
3306
- "[[data-variant=pills]_&]:h-full [[data-variant=pills]_&]:rounded-md [[data-variant=pills]_&]:px-3",
3307
- "[[data-variant=pills]_&]:text-foreground-muted",
3308
- "[[data-variant=pills]_&]:hover:text-foreground",
3309
- "[[data-variant=pills]_&]:data-[state=active]:bg-card",
3310
- "[[data-variant=pills]_&]:data-[state=active]:text-foreground",
3311
- "[[data-variant=pills]_&]:data-[state=active]:shadow-xs",
3312
- t
3313
- ),
3314
- ...r
3315
- }
3316
- );
3317
- });
3318
- Wo.displayName = "TabsTrigger";
3319
- const Uo = u(function({ className: t, ...r }, n) {
3320
- return /* @__PURE__ */ e(
3321
- ke.Content,
3322
- {
3323
- ref: n,
3324
- className: i(
3325
- "mt-4 outline-none",
3326
- "focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background",
3327
- t
3328
- ),
3329
- ...r
3330
- }
3331
- );
3332
- });
3333
- Uo.displayName = "TabsContent";
3334
- const Ko = u(function({
3335
- className: t,
3336
- label: r,
3337
- helperText: n,
3338
- error: a,
3339
- autoResize: s,
3340
- minRows: l = 3,
3341
- maxRows: m = 12,
3342
- hideLabel: f,
3343
- id: c,
3344
- onChange: b,
3345
- value: p,
3346
- defaultValue: g,
3347
- ...h
3348
- }, x) {
3349
- const v = B(), N = c ?? v, D = `${N}-helper`, I = `${N}-error`, M = $e(null), C = (k) => {
3350
- M.current = k, typeof x == "function" ? x(k) : x && (x.current = k);
3351
- }, y = H(() => {
3352
- const k = M.current;
3353
- if (!k || !s) return;
3354
- k.style.height = "auto";
3355
- const G = (parseFloat(getComputedStyle(k).lineHeight) || 20) * m;
3356
- k.style.height = `${Math.min(k.scrollHeight, G)}px`, k.style.overflowY = k.scrollHeight > G ? "auto" : "hidden";
3357
- }, [s, m]);
3358
- return J(() => {
3359
- s && y();
3360
- }, [s, y, p, g]), /* @__PURE__ */ d("div", { className: i("flex flex-col gap-1.5", t), children: [
3361
- r && /* @__PURE__ */ e(
3362
- "label",
3363
- {
3364
- htmlFor: N,
3365
- className: i(
3366
- "text-sm font-medium text-foreground",
3367
- f && "sr-only"
3368
- ),
3369
- children: r
3370
- }
3371
- ),
3372
- /* @__PURE__ */ e(
3373
- "textarea",
3374
- {
3375
- ref: C,
3376
- id: N,
3377
- rows: l,
3378
- value: p,
3379
- defaultValue: g,
3380
- onChange: (k) => {
3381
- b == null || b(k), s && y();
3382
- },
3383
- "aria-invalid": !!a || void 0,
3384
- "aria-describedby": a ? I : n ? D : void 0,
3385
- className: i(
3386
- "rounded-md border bg-card px-3 py-2 text-sm text-foreground",
3387
- "placeholder:text-foreground-subtle",
3388
- "transition-colors duration-[var(--duration-fast)] ease-[var(--ease-out)]",
3389
- "outline-none",
3390
- "focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
3391
- "focus-visible:ring-offset-background",
3392
- "disabled:opacity-50 disabled:cursor-not-allowed",
3393
- a ? "border-danger focus-visible:border-danger focus-visible:ring-danger" : "border-border focus-visible:border-accent",
3394
- s ? "resize-none" : "resize-y min-h-20"
3395
- ),
3396
- ...h
3397
- }
3398
- ),
3399
- a ? /* @__PURE__ */ e("p", { id: I, role: "alert", className: "text-xs text-danger-text", children: a }) : n ? /* @__PURE__ */ e("p", { id: D, className: "text-xs text-foreground-subtle", children: n }) : null
3400
- ] });
3401
- });
3402
- Ko.displayName = "Textarea";
3403
- const Xo = ee.Provider, Ot = u(function({ className: t, ...r }, n) {
3404
- return /* @__PURE__ */ e(
3405
- ee.Viewport,
3406
- {
3407
- ref: n,
3408
- className: i(
3409
- "fixed bottom-0 right-0 z-[var(--z-toast)] flex max-h-screen w-full flex-col-reverse gap-2 p-6",
3410
- "sm:bottom-auto sm:top-4 sm:right-4 sm:max-w-sm sm:flex-col",
3411
- t
3412
- ),
3413
- ...r
3414
- }
3415
- );
3416
- });
3417
- Ot.displayName = "ToastViewport";
3418
- const Qo = A(
3419
- [
3420
- "group pointer-events-auto relative flex w-full items-start gap-3",
3421
- "overflow-hidden rounded-lg border p-4 pr-8 shadow-md",
3422
- "data-[state=open]:animate-in data-[state=closed]:animate-out",
3423
- "data-[state=closed]:fade-out-80 data-[state=open]:slide-in-from-right-full",
3424
- "data-[state=closed]:slide-out-to-right-full",
3425
- "data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)]",
3426
- "data-[swipe=cancel]:translate-x-0 data-[swipe=cancel]:transition-transform",
3427
- "data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)]"
3428
- ],
3429
- {
3430
- variants: {
3431
- variant: {
3432
- default: "border-border bg-card text-card-foreground",
3433
- success: "border-success-border-soft bg-success-soft text-success-text",
3434
- warning: "border-warning-border-soft bg-warning-soft text-warning-text",
3435
- danger: "border-danger-border-soft bg-danger-soft text-danger-text",
3436
- info: "border-info-border-soft bg-info-soft text-info-text"
3437
- }
3438
- },
3439
- defaultVariants: { variant: "default" }
3440
- }
3441
- ), Yo = {
3442
- default: null,
3443
- success: /* @__PURE__ */ e(he, { className: "size-5 text-success-text shrink-0 mt-0.5", "aria-hidden": !0 }),
3444
- warning: /* @__PURE__ */ e(pe, { className: "size-5 text-warning-text shrink-0 mt-0.5", "aria-hidden": !0 }),
3445
- danger: /* @__PURE__ */ e(we, { className: "size-5 text-danger-text shrink-0 mt-0.5", "aria-hidden": !0 }),
3446
- info: /* @__PURE__ */ e(Ne, { className: "size-5 text-info-text shrink-0 mt-0.5", "aria-hidden": !0 })
3447
- }, Ht = u(
3448
- function({ className: t, variant: r = "default", children: n, ...a }, s) {
3449
- return /* @__PURE__ */ d(ee.Root, { ref: s, className: i(Qo({ variant: r }), t), ...a, children: [
3450
- Yo[r ?? "default"],
3451
- /* @__PURE__ */ e("div", { className: "flex-1 space-y-1", children: n })
3452
- ] });
3453
- }
3454
- );
3455
- Ht.displayName = "Toast";
3456
- const Gt = u(function({ className: t, ...r }, n) {
3457
- return /* @__PURE__ */ e(
3458
- ee.Title,
3459
- {
3460
- ref: n,
3461
- className: i("text-sm font-medium", t),
3462
- ...r
3463
- }
3464
- );
3465
- });
3466
- Gt.displayName = "ToastTitle";
3467
- const Vt = u(function({ className: t, ...r }, n) {
3468
- return /* @__PURE__ */ e(
3469
- ee.Description,
3470
- {
3471
- ref: n,
3472
- className: i("text-sm opacity-90", t),
3473
- ...r
3474
- }
3475
- );
3476
- });
3477
- Vt.displayName = "ToastDescription";
3478
- const Wt = u(function({ className: t, ...r }, n) {
3479
- return /* @__PURE__ */ e(
3480
- ee.Action,
3481
- {
3482
- ref: n,
3483
- className: i(
3484
- "inline-flex h-8 shrink-0 items-center justify-center rounded-md border border-current bg-transparent px-3 text-sm font-medium",
3485
- "transition-colors hover:bg-current/10 outline-none",
3486
- "focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-card",
3487
- t
3488
- ),
3489
- ...r
3490
- }
3491
- );
3492
- });
3493
- Wt.displayName = "ToastAction";
3494
- const Ut = u(function({ className: t, ...r }, n) {
3495
- return /* @__PURE__ */ e(
3496
- ee.Close,
3497
- {
3498
- ref: n,
3499
- "aria-label": "Close",
3500
- className: i(
3501
- "absolute right-2 top-2 inline-flex size-7 items-center justify-center rounded-md text-foreground-subtle",
3502
- "opacity-0 transition-opacity group-hover:opacity-100 hover:text-foreground",
3503
- "outline-none focus-visible:opacity-100 focus-visible:ring-2 focus-visible:ring-ring",
3504
- t
3505
- ),
3506
- "toast-close": "",
3507
- ...r,
3508
- children: /* @__PURE__ */ e(j, { className: "size-4", "aria-hidden": !0 })
3509
- }
3510
- );
3511
- });
3512
- Ut.displayName = "ToastClose";
3513
- function qo() {
3514
- const { toasts: o, dismiss: t, remove: r } = Gr();
3515
- return J(() => {
3516
- const n = o.filter((s) => !s.open);
3517
- if (n.length === 0) return;
3518
- const a = n.map((s) => window.setTimeout(() => r(s.id), 200));
3519
- return () => a.forEach((s) => window.clearTimeout(s));
3520
- }, [o, r]), /* @__PURE__ */ d(Xo, { children: [
3521
- o.map((n) => /* @__PURE__ */ d(
3522
- Ht,
3523
- {
3524
- variant: n.variant ?? "default",
3525
- open: n.open,
3526
- duration: n.duration,
3527
- onOpenChange: (a) => {
3528
- a || t(n.id);
3529
- },
3530
- children: [
3531
- n.title && /* @__PURE__ */ e(Gt, { children: n.title }),
3532
- n.description && /* @__PURE__ */ e(Vt, { children: n.description }),
3533
- n.action && /* @__PURE__ */ e(
3534
- Wt,
3535
- {
3536
- altText: n.action.altText,
3537
- onClick: n.action.onClick,
3538
- className: "mt-1",
3539
- children: n.action.label
3540
- }
3541
- ),
3542
- /* @__PURE__ */ e(Ut, {})
3543
- ]
3544
- },
3545
- n.id
3546
- )),
3547
- /* @__PURE__ */ e(Ot, {})
3548
- ] });
3549
- }
3550
- qo.displayName = "Toaster";
3551
- const as = ({
3552
- delayDuration: o = 500,
3553
- skipDelayDuration: t = 200,
3554
- ...r
3555
- }) => /* @__PURE__ */ e(
3556
- se.Provider,
3557
- {
3558
- delayDuration: o,
3559
- skipDelayDuration: t,
3560
- ...r
3561
- }
3562
- ), Zo = se.Root, Jo = se.Trigger, Kt = u(function({ className: t, sideOffset: r = 4, ...n }, a) {
3563
- return /* @__PURE__ */ e(se.Portal, { children: /* @__PURE__ */ e(
3564
- se.Content,
3565
- {
3566
- ref: a,
3567
- sideOffset: r,
3568
- className: i(
3569
- "z-[var(--z-tooltip)] overflow-hidden rounded-md px-2 py-1 text-xs font-medium",
3570
- "bg-neutral-900 text-neutral-50",
3571
- "dark:bg-neutral-50 dark:text-neutral-900",
3572
- "shadow-sm max-w-xs",
3573
- "data-[state=open]:animate-in data-[state=closed]:animate-out",
3574
- "data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
3575
- "data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
3576
- t
3577
- ),
3578
- ...n
3579
- }
3580
- ) });
3581
- });
3582
- Kt.displayName = "TooltipContent";
3583
- function ea({
3584
- children: o,
3585
- label: t,
3586
- side: r = "top",
3587
- align: n = "center",
3588
- disabled: a,
3589
- delayDuration: s
3590
- }) {
3591
- return a ? /* @__PURE__ */ e(ot, { children: o }) : /* @__PURE__ */ d(Zo, { delayDuration: s, children: [
3592
- /* @__PURE__ */ e(Jo, { asChild: !0, children: o }),
3593
- /* @__PURE__ */ e(Kt, { side: r, align: n, children: t })
3594
- ] });
3595
- }
3596
- ea.displayName = "Tooltip";
3597
- const ta = u(function({ logo: t, nav: r, search: n, actions: a, className: s, ...l }, m) {
3598
- return /* @__PURE__ */ d(
3599
- "header",
3600
- {
3601
- ref: m,
3602
- className: i(
3603
- "sticky top-0 z-[var(--z-sticky)] flex h-14 w-full items-center gap-4",
3604
- "border-b border-border bg-background/80 px-4 backdrop-blur",
3605
- "supports-[backdrop-filter]:bg-background/60",
3606
- s
3607
- ),
3608
- ...l,
3609
- children: [
3610
- /* @__PURE__ */ d("div", { className: "flex items-center gap-6 shrink-0", children: [
3611
- t,
3612
- r && /* @__PURE__ */ e("nav", { className: "hidden md:flex items-center gap-1", children: r })
3613
- ] }),
3614
- n && /* @__PURE__ */ e("div", { className: "flex-1 max-w-md mx-auto", children: n }),
3615
- a && /* @__PURE__ */ e("div", { className: "ml-auto flex items-center gap-2 shrink-0", children: a })
3616
- ]
3617
- }
3618
- );
3619
- });
3620
- ta.displayName = "TopNav";
3621
- const ra = u(function({ href: t, active: r, className: n, children: a, ...s }, l) {
3622
- return /* @__PURE__ */ e(
3623
- "a",
3624
- {
3625
- ref: l,
3626
- href: t,
3627
- "aria-current": r ? "page" : void 0,
3628
- className: i(
3629
- "inline-flex h-9 items-center rounded-md px-3 text-sm font-medium outline-none",
3630
- "transition-colors duration-[var(--duration-fast)]",
3631
- r ? "text-foreground" : "text-foreground-muted hover:text-foreground",
3632
- "focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background",
3633
- n
3634
- ),
3635
- ...s,
3636
- children: a
3637
- }
3638
- );
3639
- });
3640
- ra.displayName = "TopNavLink";
3641
- const Xt = be(null);
3642
- function De() {
3643
- const o = Z(Xt);
3644
- if (!o) throw new Error("Carousel components must be used inside <Carousel>");
3645
- return o;
3646
- }
3647
- const ss = u(function({ opts: t, orientation: r = "horizontal", setApi: n, className: a, children: s, ...l }, m) {
3648
- const [f, c] = Or({ ...t, axis: r === "horizontal" ? "x" : "y" }), [b, p] = S(!1), [g, h] = S(!1), x = H((v) => {
3649
- v && (p(v.canScrollPrev()), h(v.canScrollNext()));
3650
- }, []);
3651
- return J(() => {
3652
- if (c)
3653
- return n == null || n(c), x(c), c.on("reInit", x).on("select", x), () => {
3654
- c.off("reInit", x).off("select", x);
3655
- };
3656
- }, [c, x, n]), /* @__PURE__ */ e(
3657
- Xt.Provider,
3658
- {
3659
- value: {
3660
- carouselRef: f,
3661
- api: c,
3662
- canPrev: b,
3663
- canNext: g,
3664
- scrollPrev: () => c == null ? void 0 : c.scrollPrev(),
3665
- scrollNext: () => c == null ? void 0 : c.scrollNext(),
3666
- orientation: r
3667
- },
3668
- children: /* @__PURE__ */ e("div", { ref: m, className: i("relative", a), role: "region", "aria-roledescription": "carousel", ...l, children: s })
3669
- }
3670
- );
3671
- }), is = u(
3672
- function({ className: t, ...r }, n) {
3673
- const { carouselRef: a, orientation: s } = De();
3674
- return /* @__PURE__ */ e("div", { ref: a, className: "overflow-hidden", children: /* @__PURE__ */ e(
3675
- "div",
3676
- {
3677
- ref: n,
3678
- className: i(
3679
- "flex",
3680
- s === "horizontal" ? "-ml-4" : "-mt-4 flex-col",
3681
- t
3682
- ),
3683
- ...r
3684
- }
3685
- ) });
3686
- }
3687
- ), ls = u(
3688
- function({ className: t, ...r }, n) {
3689
- const { orientation: a } = De();
3690
- return /* @__PURE__ */ e(
3691
- "div",
3692
- {
3693
- ref: n,
3694
- role: "group",
3695
- "aria-roledescription": "slide",
3696
- className: i(
3697
- "min-w-0 shrink-0 grow-0 basis-full",
3698
- a === "horizontal" ? "pl-4" : "pt-4",
3699
- t
3700
- ),
3701
- ...r
3702
- }
3703
- );
3704
- }
3705
- );
3706
- function ds({ className: o }) {
3707
- const { canPrev: t, scrollPrev: r, orientation: n } = De();
3708
- return /* @__PURE__ */ e(
3709
- Se,
3710
- {
3711
- "aria-label": "Previous",
3712
- variant: "outline",
3713
- disabled: !t,
3714
- onClick: r,
3715
- icon: /* @__PURE__ */ e(xe, {}),
3716
- className: i(
3717
- "absolute z-10",
3718
- n === "horizontal" ? "-left-12 top-1/2 -translate-y-1/2" : "-top-12 left-1/2 -translate-x-1/2 rotate-90",
3719
- o
3720
- )
3721
- }
3722
- );
3723
- }
3724
- function cs({ className: o }) {
3725
- const { canNext: t, scrollNext: r, orientation: n } = De();
3726
- return /* @__PURE__ */ e(
3727
- Se,
3728
- {
3729
- "aria-label": "Next",
3730
- variant: "outline",
3731
- disabled: !t,
3732
- onClick: r,
3733
- icon: /* @__PURE__ */ e(W, {}),
3734
- className: i(
3735
- "absolute z-10",
3736
- n === "horizontal" ? "-right-12 top-1/2 -translate-y-1/2" : "-bottom-12 left-1/2 -translate-x-1/2 rotate-90",
3737
- o
3738
- )
3739
- }
3740
- );
3741
- }
3742
- const Me = 600, O = 6, Ve = 4;
3743
- function na(o, t) {
3744
- const r = o.map((b) => b.y), n = Math.min(0, ...r), s = Math.max(...r, 1) - n || 1, l = Me - O * 2, m = t - O * 2;
3745
- return { sx: (b) => o.length <= 1 ? O + l / 2 : O + b / (o.length - 1) * l, sy: (b) => O + m - (b - n) / s * m };
3746
- }
3747
- function oa(o) {
3748
- if (o.length === 0) return "";
3749
- if (o.length < 3) return o.map((r, n) => `${n ? "L" : "M"}${r[0]},${r[1]}`).join(" ");
3750
- let t = `M${o[0][0]},${o[0][1]}`;
3751
- for (let r = 0; r < o.length - 1; r++) {
3752
- const n = o[r - 1] ?? o[r], a = o[r], s = o[r + 1], l = o[r + 2] ?? s, m = a[0] + (s[0] - n[0]) / 6, f = a[1] + (s[1] - n[1]) / 6, c = s[0] - (l[0] - a[0]) / 6, b = s[1] - (l[1] - a[1]) / 6;
3753
- t += ` C${m.toFixed(1)},${f.toFixed(1)} ${c.toFixed(1)},${b.toFixed(1)} ${s[0].toFixed(1)},${s[1].toFixed(1)}`;
3754
- }
3755
- return t;
3756
- }
3757
- function Qt({ height: o }) {
3758
- const t = o - O * 2;
3759
- return /* @__PURE__ */ e("g", { children: Array.from({ length: Ve + 1 }, (r, n) => {
3760
- const a = O + n / Ve * t;
3761
- return /* @__PURE__ */ e(
3762
- "line",
3763
- {
3764
- x1: 0,
3765
- x2: Me,
3766
- y1: a,
3767
- y2: a,
3768
- stroke: "var(--color-border)",
3769
- strokeWidth: 1,
3770
- vectorEffect: "non-scaling-stroke",
3771
- opacity: 0.6
3772
- },
3773
- n
3774
- );
3775
- }) });
3776
- }
3777
- function Yt({
3778
- caption: o,
3779
- height: t,
3780
- width: r,
3781
- className: n,
3782
- children: a
3783
- }) {
3784
- return /* @__PURE__ */ d("figure", { className: i("flex flex-col gap-1.5", n), children: [
3785
- o && /* @__PURE__ */ e("figcaption", { className: "text-xs text-foreground-muted", children: o }),
3786
- /* @__PURE__ */ e(
3787
- "svg",
3788
- {
3789
- viewBox: `0 0 ${Me} ${t}`,
3790
- width: r,
3791
- height: t,
3792
- preserveAspectRatio: "none",
3793
- role: "img",
3794
- className: "overflow-visible",
3795
- children: a
3796
- }
3797
- )
3798
- ] });
3799
- }
3800
- function aa({ data: o, height: t = 160, width: r = "100%", caption: n, grid: a = !0, className: s }) {
3801
- const l = B().replace(/:/g, ""), { sx: m, sy: f } = na(o, t), c = o.map((h, x) => [m(x), f(h.y)]), b = oa(c), p = c.length ? `${b} L${c[c.length - 1][0].toFixed(1)},${t} L${c[0][0].toFixed(1)},${t} Z` : "", g = c[c.length - 1];
3802
- return /* @__PURE__ */ d(Yt, { caption: n, height: t, width: r, className: s, children: [
3803
- /* @__PURE__ */ e("defs", { children: /* @__PURE__ */ d("linearGradient", { id: `area-${l}`, x1: "0", y1: "0", x2: "0", y2: "1", children: [
3804
- /* @__PURE__ */ e("stop", { offset: "0%", stopColor: "var(--color-accent)", stopOpacity: 0.22 }),
3805
- /* @__PURE__ */ e("stop", { offset: "100%", stopColor: "var(--color-accent)", stopOpacity: 0 })
3806
- ] }) }),
3807
- a && /* @__PURE__ */ e(Qt, { height: t }),
3808
- p && /* @__PURE__ */ e("path", { d: p, fill: `url(#area-${l})` }),
3809
- /* @__PURE__ */ e(
3810
- "path",
3811
- {
3812
- d: b,
3813
- fill: "none",
3814
- stroke: "var(--color-accent)",
3815
- strokeWidth: 2,
3816
- strokeLinecap: "round",
3817
- strokeLinejoin: "round",
3818
- vectorEffect: "non-scaling-stroke"
3819
- }
3820
- ),
3821
- g && /* @__PURE__ */ e("circle", { cx: g[0], cy: g[1], r: 3.5, fill: "var(--color-accent)", vectorEffect: "non-scaling-stroke", children: /* @__PURE__ */ e("title", { children: `${o[o.length - 1].x}: ${o[o.length - 1].y}` }) })
3822
- ] });
3823
- }
3824
- function us(o) {
3825
- return /* @__PURE__ */ e(aa, { ...o });
3826
- }
3827
- function ms({ data: o, height: t = 160, width: r = "100%", caption: n, grid: a = !0, className: s }) {
3828
- const l = Me - O * 2, m = t - O * 2, f = l / Math.max(1, o.length), c = Math.max(2, f * 0.62), b = o.map((g) => g.y), p = Math.max(...b, 1);
3829
- return /* @__PURE__ */ d(Yt, { caption: n, height: t, width: r, className: s, children: [
3830
- a && /* @__PURE__ */ e(Qt, { height: t }),
3831
- o.map((g, h) => {
3832
- const x = g.y / p * m, v = O + h * f + (f - c) / 2;
3833
- return /* @__PURE__ */ e(
3834
- "rect",
3835
- {
3836
- x: v,
3837
- y: O + m - x,
3838
- width: c,
3839
- height: Math.max(0, x),
3840
- fill: "var(--color-accent)",
3841
- rx: 2,
3842
- className: "transition-opacity hover:opacity-80",
3843
- children: /* @__PURE__ */ e("title", { children: `${g.x}: ${g.y}` })
3844
- },
3845
- h
3846
- );
3847
- })
3848
- ] });
3849
- }
3850
- const sa = ({
3851
- shouldScaleBackground: o = !0,
3852
- ...t
3853
- }) => /* @__PURE__ */ e(X.Root, { shouldScaleBackground: o, ...t });
3854
- sa.displayName = "Drawer";
3855
- const fs = X.Trigger, ia = X.Portal, gs = X.Close, la = u(function({ className: t, ...r }, n) {
3856
- return /* @__PURE__ */ e(
3857
- X.Overlay,
3858
- {
3859
- ref: n,
3860
- className: i("fixed inset-0 z-50 bg-black/40", t),
3861
- ...r
3862
- }
3863
- );
3864
- }), da = {
3865
- bottom: "inset-x-0 bottom-0 mt-24 flex h-auto max-h-[90vh] flex-col rounded-t-xl border-t border-border",
3866
- top: "inset-x-0 top-0 mb-24 flex h-auto max-h-[90vh] flex-col rounded-b-xl border-b border-border",
3867
- left: "inset-y-0 left-0 flex h-full w-[420px] max-w-[90vw] flex-col rounded-r-xl border-r border-border",
3868
- right: "inset-y-0 right-0 flex h-full w-[420px] max-w-[90vw] flex-col rounded-l-xl border-l border-border"
3869
- }, ca = {
3870
- bottom: "mx-auto mt-3 h-1.5 w-12 rounded-full bg-border",
3871
- top: "mx-auto mb-3 h-1.5 w-12 rounded-full bg-border order-last",
3872
- left: "mx-1.5 my-auto h-12 w-1.5 rounded-full bg-border order-last self-stretch shrink-0",
3873
- right: "mx-1.5 my-auto h-12 w-1.5 rounded-full bg-border shrink-0 self-stretch"
3874
- }, bs = u(function({ className: t, direction: r = "bottom", hideHandle: n, children: a, ...s }, l) {
3875
- const m = r === "left" || r === "right";
3876
- return /* @__PURE__ */ d(ia, { children: [
3877
- /* @__PURE__ */ e(la, {}),
3878
- /* @__PURE__ */ d(
3879
- X.Content,
3880
- {
3881
- ref: l,
3882
- className: i(
3883
- "fixed z-50 bg-card",
3884
- da[r],
3885
- m && "flex-row",
3886
- t
3887
- ),
3888
- ...s,
3889
- children: [
3890
- !n && /* @__PURE__ */ e("div", { "aria-hidden": !0, className: ca[r] }),
3891
- /* @__PURE__ */ e("div", { className: i("min-h-0 min-w-0 flex-1", m && "flex flex-col"), children: a })
3892
- ]
3893
- }
3894
- )
3895
- ] });
3896
- });
3897
- function ps({ className: o, ...t }) {
3898
- return /* @__PURE__ */ e("div", { className: i("grid gap-1 p-4 text-center sm:text-left", o), ...t });
3899
- }
3900
- function hs({ className: o, ...t }) {
3901
- return /* @__PURE__ */ e("div", { className: i("mt-auto flex flex-col gap-2 p-4", o), ...t });
3902
- }
3903
- const xs = u(function({ className: t, ...r }, n) {
3904
- return /* @__PURE__ */ e(
3905
- X.Title,
3906
- {
3907
- ref: n,
3908
- className: i("text-lg font-semibold", t),
3909
- ...r
3910
- }
3911
- );
3912
- }), vs = u(function({ className: t, ...r }, n) {
3913
- return /* @__PURE__ */ e(
3914
- X.Description,
3915
- {
3916
- ref: n,
3917
- className: i("text-sm text-foreground-muted", t),
3918
- ...r
3919
- }
3920
- );
3921
- });
3922
- function ua(o) {
3923
- return o < 1024 ? `${o} B` : o < 1024 * 1024 ? `${(o / 1024).toFixed(1)} KB` : `${(o / 1024 / 1024).toFixed(1)} MB`;
3924
- }
3925
- const Ns = u(function({ accept: t, multiple: r, maxSize: n, value: a, onChange: s, hint: l, disabled: m, className: f }, c) {
3926
- const b = $e(null), p = B(), [g, h] = S([]), [x, v] = S(!1), N = a ?? g, D = H(
3927
- (y) => {
3928
- a === void 0 && h(y), s == null || s(y);
3929
- },
3930
- [s, a]
3931
- ), I = H(
3932
- (y) => {
3933
- const k = Array.from(y).filter(
3934
- (L) => !n || L.size <= n
3935
- );
3936
- D(r ? [...N, ...k] : k.slice(0, 1));
3937
- },
3938
- [N, n, r, D]
3939
- ), M = (y) => D(N.filter((k, L) => L !== y)), C = (y) => {
3940
- y.preventDefault(), v(!1), !m && I(y.dataTransfer.files);
3941
- };
3942
- return /* @__PURE__ */ d("div", { ref: c, className: i("flex flex-col gap-3", f), children: [
3943
- /* @__PURE__ */ d(
3944
- "label",
3945
- {
3946
- htmlFor: p,
3947
- onDragOver: (y) => {
3948
- y.preventDefault(), m || v(!0);
3949
- },
3950
- onDragLeave: () => v(!1),
3951
- onDrop: C,
3952
- className: i(
3953
- "group relative flex cursor-pointer flex-col items-center justify-center gap-2",
3954
- "rounded-md border border-dashed border-border bg-background-subtle px-6 py-8",
3955
- "text-center transition-colors",
3956
- "hover:border-border-strong hover:bg-background-muted",
3957
- x && "border-accent bg-accent-soft",
3958
- m && "pointer-events-none opacity-50"
3959
- ),
3960
- children: [
3961
- /* @__PURE__ */ e(rt, { className: "size-5 text-foreground-muted", "aria-hidden": !0 }),
3962
- /* @__PURE__ */ d("div", { className: "space-y-1", children: [
3963
- /* @__PURE__ */ e("p", { className: "text-sm font-medium", children: "Drop files here, or click to browse" }),
3964
- l && /* @__PURE__ */ e("p", { className: "text-xs text-foreground-muted", children: l })
3965
- ] }),
3966
- /* @__PURE__ */ e(
3967
- "input",
3968
- {
3969
- ref: b,
3970
- id: p,
3971
- type: "file",
3972
- accept: t,
3973
- multiple: r,
3974
- disabled: m,
3975
- className: "sr-only",
3976
- onChange: (y) => y.target.files && I(y.target.files)
3977
- }
3978
- )
3979
- ]
3980
- }
3981
- ),
3982
- N.length > 0 && /* @__PURE__ */ e("ul", { className: "flex flex-col gap-2", children: N.map((y, k) => /* @__PURE__ */ d(
3983
- "li",
3984
- {
3985
- className: "flex items-center gap-3 rounded-md border border-border bg-card px-3 py-2",
3986
- children: [
3987
- /* @__PURE__ */ e(nt, { className: "size-4 shrink-0 text-foreground-muted", "aria-hidden": !0 }),
3988
- /* @__PURE__ */ d("div", { className: "min-w-0 flex-1", children: [
3989
- /* @__PURE__ */ e("p", { className: "truncate text-sm", children: y.name }),
3990
- /* @__PURE__ */ e("p", { className: "text-xs text-foreground-muted", children: ua(y.size) })
3991
- ] }),
3992
- /* @__PURE__ */ e(
3993
- "button",
3994
- {
3995
- type: "button",
3996
- onClick: () => M(k),
3997
- className: "rounded p-1 text-foreground-muted hover:bg-background-muted hover:text-foreground",
3998
- "aria-label": `Remove ${y.name}`,
3999
- children: /* @__PURE__ */ e(j, { className: "size-4" })
4000
- }
4001
- )
4002
- ]
4003
- },
4004
- `${y.name}-${k}`
4005
- )) })
4006
- ] });
4007
- }), ma = A(
4008
- [
4009
- "relative pointer-events-auto w-full max-w-md",
4010
- "flex items-start gap-3 rounded-md border bg-card p-3 shadow-md",
4011
- "text-sm text-foreground"
4012
- ],
4013
- {
4014
- variants: {
4015
- variant: {
4016
- default: "border-border",
4017
- info: "border-info-border-soft",
4018
- success: "border-success-border-soft",
4019
- warning: "border-warning-border-soft",
4020
- danger: "border-danger-border-soft"
4021
- }
4022
- },
4023
- defaultVariants: { variant: "default" }
4024
- }
4025
- ), fa = {
4026
- default: null,
4027
- info: /* @__PURE__ */ e(Ne, { className: "size-4 shrink-0 mt-0.5 text-info-text", "aria-hidden": !0 }),
4028
- success: /* @__PURE__ */ e(he, { className: "size-4 shrink-0 mt-0.5 text-success-text", "aria-hidden": !0 }),
4029
- warning: /* @__PURE__ */ e(pe, { className: "size-4 shrink-0 mt-0.5 text-warning-text", "aria-hidden": !0 }),
4030
- danger: /* @__PURE__ */ e(we, { className: "size-4 shrink-0 mt-0.5 text-danger-text", "aria-hidden": !0 })
4031
- }, ys = u(function({ className: t, variant: r = "default", title: n, action: a, onClose: s, icon: l, children: m, ...f }, c) {
4032
- const b = l === !1 ? null : l ?? fa[r ?? "default"];
4033
- return /* @__PURE__ */ d("div", { ref: c, role: "status", className: i(ma({ variant: r }), t), ...f, children: [
4034
- b,
4035
- /* @__PURE__ */ d("div", { className: "min-w-0 flex-1", children: [
4036
- n && /* @__PURE__ */ e("p", { className: "font-medium", children: n }),
4037
- m && /* @__PURE__ */ e("p", { className: "text-foreground-muted", children: m })
4038
- ] }),
4039
- a,
4040
- s && /* @__PURE__ */ e(
4041
- "button",
4042
- {
4043
- type: "button",
4044
- onClick: s,
4045
- "aria-label": "Dismiss",
4046
- className: "rounded p-1 text-foreground-muted hover:bg-background-muted hover:text-foreground",
4047
- children: /* @__PURE__ */ e(j, { className: "size-4" })
4048
- }
4049
- )
4050
- ] });
4051
- }), ws = u(function({
4052
- value: t,
4053
- defaultValue: r = [],
4054
- onChange: n,
4055
- placeholder: a = "Add and press Enter",
4056
- max: s,
4057
- disabled: l,
4058
- error: m,
4059
- separators: f = ["Enter", ","],
4060
- className: c
4061
- }, b) {
4062
- const [p, g] = S(r), [h, x] = S(""), v = t ?? p, N = H(
4063
- (C) => {
4064
- t === void 0 && g(C), n == null || n(C);
4065
- },
4066
- [n, t]
4067
- ), D = (C) => {
4068
- const y = C.trim();
4069
- !y || v.includes(y) || s !== void 0 && v.length >= s || N([...v, y]);
4070
- }, I = (C) => N(v.filter((y, k) => k !== C)), M = (C) => {
4071
- f.includes(C.key) ? (C.preventDefault(), D(h), x("")) : C.key === "Backspace" && !h && v.length && I(v.length - 1);
4072
- };
4073
- return /* @__PURE__ */ d(
4074
- "div",
4075
- {
4076
- ref: b,
4077
- className: i(
4078
- "flex min-h-9 w-full flex-wrap items-center gap-1.5 rounded-md border bg-card px-2 py-1.5",
4079
- "transition-colors focus-within:border-ring focus-within:ring-2 focus-within:ring-ring",
4080
- m ? "border-danger focus-within:border-danger focus-within:ring-danger" : "border-border",
4081
- l && "pointer-events-none opacity-50",
4082
- c
4083
- ),
4084
- children: [
4085
- v.map((C, y) => /* @__PURE__ */ d(
4086
- "span",
4087
- {
4088
- className: "inline-flex items-center gap-1 rounded bg-background-muted px-2 py-0.5 text-xs",
4089
- children: [
4090
- C,
4091
- /* @__PURE__ */ e(
4092
- "button",
4093
- {
4094
- type: "button",
4095
- onClick: () => I(y),
4096
- className: "rounded p-0.5 text-foreground-muted hover:bg-background-subtle hover:text-foreground",
4097
- "aria-label": `Remove ${C}`,
4098
- children: /* @__PURE__ */ e(j, { className: "size-3" })
4099
- }
4100
- )
4101
- ]
4102
- },
4103
- `${C}-${y}`
4104
- )),
4105
- /* @__PURE__ */ e(
4106
- "input",
4107
- {
4108
- value: h,
4109
- disabled: l,
4110
- onChange: (C) => x(C.target.value),
4111
- onKeyDown: M,
4112
- onBlur: () => {
4113
- h && (D(h), x(""));
4114
- },
4115
- placeholder: v.length === 0 ? a : void 0,
4116
- className: "min-w-[8ch] flex-1 bg-transparent text-sm outline-none placeholder:text-foreground-subtle"
4117
- }
4118
- )
4119
- ]
4120
- }
4121
- );
4122
- }), ks = u(function({ className: t, children: r, ...n }, a) {
4123
- return /* @__PURE__ */ e("ol", { ref: a, className: i("relative flex flex-col gap-6", t), ...n, children: r });
4124
- }), Cs = u(function({ bullet: t, isLast: r, className: n, children: a, ...s }, l) {
4125
- return /* @__PURE__ */ d("li", { ref: l, className: i("relative flex gap-4 pb-1", n), ...s, children: [
4126
- /* @__PURE__ */ d("div", { className: "relative flex shrink-0 flex-col items-center", children: [
4127
- /* @__PURE__ */ e("div", { className: "flex size-6 items-center justify-center rounded-full border border-border bg-card text-foreground-muted", children: t ?? /* @__PURE__ */ e("span", { className: "size-2 rounded-full bg-accent", "aria-hidden": !0 }) }),
4128
- !r && /* @__PURE__ */ e("span", { className: "mt-1 flex-1 w-px bg-border", "aria-hidden": !0 })
4129
- ] }),
4130
- /* @__PURE__ */ e("div", { className: "min-w-0 flex-1 pb-4", children: a })
4131
- ] });
4132
- });
4133
- function zs({ className: o, children: t }) {
4134
- return /* @__PURE__ */ e("p", { className: i("text-xs text-foreground-subtle", o), children: t });
4135
- }
4136
- function Ss({
4137
- className: o,
4138
- children: t
4139
- }) {
4140
- return /* @__PURE__ */ e("p", { className: i("text-sm font-medium", o), children: t });
4141
- }
4142
- function Ts({
4143
- className: o,
4144
- children: t
4145
- }) {
4146
- return /* @__PURE__ */ e("p", { className: i("mt-0.5 text-sm text-foreground-muted", o), children: t });
4147
- }
4148
- function Ds({ data: o, defaultExpanded: t = [], selectedId: r, onSelect: n, className: a }) {
4149
- const [s, l] = S(new Set(t)), m = (c) => l((b) => {
4150
- const p = new Set(b);
4151
- return p.has(c) ? p.delete(c) : p.add(c), p;
4152
- });
4153
- function f(c, b) {
4154
- const p = !!c.children, g = s.has(c.id), h = r === c.id, x = p ? g ? $r : Ze : nt;
4155
- return /* @__PURE__ */ d("li", { role: "treeitem", "aria-expanded": p ? g : void 0, children: [
4156
- /* @__PURE__ */ d(
4157
- "button",
4158
- {
4159
- type: "button",
4160
- tabIndex: 0,
4161
- onClick: () => {
4162
- n == null || n(c.id), p && m(c.id);
4163
- },
4164
- onKeyDown: (v) => {
4165
- (v.key === "ArrowRight" && p && !g || v.key === "ArrowLeft" && p && g) && m(c.id);
4166
- },
4167
- style: { paddingLeft: b * 16 + 8 },
4168
- className: i(
4169
- "flex w-full items-center gap-1.5 rounded-md py-1 pr-2 text-left text-sm",
4170
- "hover:bg-background-muted focus-visible:bg-background-muted outline-none",
4171
- h && "bg-accent-soft text-foreground"
4172
- ),
4173
- children: [
4174
- p ? /* @__PURE__ */ e(
4175
- W,
4176
- {
4177
- className: i("size-3.5 shrink-0 text-foreground-subtle transition-transform", g && "rotate-90"),
4178
- "aria-hidden": !0
4179
- }
4180
- ) : /* @__PURE__ */ e("span", { className: "w-3.5 shrink-0", "aria-hidden": !0 }),
4181
- c.icon ?? /* @__PURE__ */ e(x, { className: "size-4 shrink-0 text-foreground-muted", "aria-hidden": !0 }),
4182
- /* @__PURE__ */ e("span", { className: "truncate", children: c.label })
4183
- ]
4184
- }
4185
- ),
4186
- p && g && /* @__PURE__ */ e("ul", { role: "group", className: "mt-0.5", children: c.children.map((v) => f(v, b + 1)) })
4187
- ] }, c.id);
4188
- }
4189
- return /* @__PURE__ */ e("ul", { role: "tree", className: i("flex flex-col gap-0.5", a), children: o.map((c) => f(c, 0)) });
4190
- }
1
+ "use client";
2
+ /* empty css */
3
+ import { cn as n } from "./lib/utils.js";
4
+ import { defaultStrings as i, formatString as m } from "./lib/strings.js";
5
+ import { mnStrings as x } from "./lib/strings.mn.js";
6
+ import { useMediaQuery as d, usePrefersReducedMotion as C } from "./hooks/use-media-query.js";
7
+ import { toast as s, useToast as S } from "./hooks/use-toast.js";
8
+ import { useFieldIds as c } from "./hooks/use-field-ids.js";
9
+ import { useStrings as D } from "./hooks/use-strings.js";
10
+ import * as e from "./icons/index.js";
11
+ import * as r from "./illustrations/index.js";
12
+ import { Accordion as M, AccordionContent as w, AccordionItem as P, AccordionTrigger as h } from "./components/ui/Accordion.js";
13
+ import { Alert as F } from "./components/ui/Alert.js";
14
+ import { Avatar as A, AvatarGroup as L } from "./components/ui/Avatar.js";
15
+ import { Badge as G } from "./components/ui/Badge.js";
16
+ import { Breadcrumbs as k } from "./components/ui/Breadcrumbs.js";
17
+ import { Button as y } from "./components/ui/Button.js";
18
+ import { Card as N, CardContent as O, CardDescription as U, CardFooter as V, CardHeader as _, CardTitle as K } from "./components/ui/Card.js";
19
+ import { Checkbox as $ } from "./components/ui/Checkbox.js";
20
+ import { Combobox as q } from "./components/ui/Combobox.js";
21
+ import { Command as J, CommandDialog as W, CommandEmpty as X, CommandGroup as Y, CommandInput as Z, CommandItem as oo, CommandList as eo, CommandSeparator as ro, CommandShortcut as to, useCommandPaletteShortcut as ao } from "./components/ui/CommandPalette.js";
22
+ import { ContextMenu as po, ContextMenuCheckboxItem as io, ContextMenuContent as mo, ContextMenuGroup as lo, ContextMenuItem as xo, ContextMenuLabel as uo, ContextMenuPortal as Co, ContextMenuRadioGroup as fo, ContextMenuRadioItem as so, ContextMenuSeparator as So, ContextMenuShortcut as To, ContextMenuSub as co, ContextMenuSubContent as go, ContextMenuSubTrigger as Do, ContextMenuTrigger as bo } from "./components/ui/ContextMenu.js";
23
+ import { DataGrid as wo } from "./components/ui/DataGrid.js";
24
+ import { DatePicker as ho, DateRangePicker as Io } from "./components/ui/DatePicker.js";
25
+ import { DesignSystemProvider as vo, brandPresets as Ao } from "./components/ui/DesignSystemProvider.js";
26
+ import { ConfirmationDialog as Ro, Dialog as Go, DialogClose as Bo, DialogContent as ko, DialogDescription as Ho, DialogFooter as yo, DialogHeader as Eo, DialogOverlay as No, DialogPortal as Oo, DialogTitle as Uo, DialogTrigger as Vo } from "./components/ui/Dialog.js";
27
+ import { DropdownMenu as Ko, DropdownMenuCheckboxItem as Qo, DropdownMenuContent as $o, DropdownMenuGroup as jo, DropdownMenuItem as qo, DropdownMenuLabel as zo, DropdownMenuPortal as Jo, DropdownMenuRadioGroup as Wo, DropdownMenuRadioItem as Xo, DropdownMenuSeparator as Yo, DropdownMenuShortcut as Zo, DropdownMenuSub as oe, DropdownMenuSubContent as ee, DropdownMenuSubTrigger as re, DropdownMenuTrigger as te } from "./components/ui/DropdownMenu.js";
28
+ import { EmptyState as ne } from "./components/ui/EmptyState.js";
29
+ import { ErrorState as ie } from "./components/ui/ErrorState.js";
30
+ import { Form as le, FormControl as xe, FormDescription as ue, FormError as de, FormField as Ce, FormItem as fe, FormLabel as se, useFormField as Se } from "./components/ui/Form.js";
31
+ import { IconButton as ce } from "./components/ui/IconButton.js";
32
+ import { Input as De } from "./components/ui/Input.js";
33
+ import { Kbd as Me } from "./components/ui/Kbd.js";
34
+ import { MultiSelect as Pe } from "./components/ui/MultiSelect.js";
35
+ import { Pagination as Ie, defaultPaginationLabels as Fe, paginationLabelsFromStrings as ve } from "./components/ui/Pagination.js";
36
+ import { Popover as Le, PopoverAnchor as Re, PopoverClose as Ge, PopoverContent as Be, PopoverTrigger as ke } from "./components/ui/Popover.js";
37
+ import { Progress as ye, ProgressCircle as Ee } from "./components/ui/Progress.js";
38
+ import { RadioGroup as Oe, RadioItem as Ue } from "./components/ui/RadioGroup.js";
39
+ import { ScrollArea as _e, ScrollBar as Ke } from "./components/ui/ScrollArea.js";
40
+ import { Select as $e, SelectContent as je, SelectGroup as qe, SelectItem as ze, SelectLabel as Je, SelectScrollDownButton as We, SelectScrollUpButton as Xe, SelectSeparator as Ye, SelectTrigger as Ze, SelectValue as or } from "./components/ui/Select.js";
41
+ import { Separator as rr } from "./components/ui/Separator.js";
42
+ import { Sheet as ar, SheetClose as nr, SheetContent as pr, SheetDescription as ir, SheetFooter as mr, SheetHeader as lr, SheetPortal as xr, SheetTitle as ur, SheetTrigger as dr } from "./components/ui/Sheet.js";
43
+ import { Sidebar as fr, SidebarGroup as sr, SidebarItem as Sr, SidebarSection as Tr, useSidebar as cr } from "./components/ui/Sidebar.js";
44
+ import { Skeleton as Dr } from "./components/ui/Skeleton.js";
45
+ import { Slider as Mr } from "./components/ui/Slider.js";
46
+ import { Spinner as Pr } from "./components/ui/Spinner.js";
47
+ import { Stepper as Ir } from "./components/ui/Stepper.js";
48
+ import { Switch as vr } from "./components/ui/Switch.js";
49
+ import { Table as Lr, TableBody as Rr, TableCaption as Gr, TableCell as Br, TableFooter as kr, TableHead as Hr, TableHeader as yr, TableRow as Er, TableSortHeader as Nr } from "./components/ui/Table.js";
50
+ import { Tabs as Ur, TabsContent as Vr, TabsList as _r, TabsTrigger as Kr } from "./components/ui/Tabs.js";
51
+ import { Textarea as $r } from "./components/ui/Textarea.js";
52
+ import { Toast as qr, ToastAction as zr, ToastClose as Jr, ToastDescription as Wr, ToastProvider as Xr, ToastTitle as Yr, ToastViewport as Zr, Toaster as ot } from "./components/ui/Toast.js";
53
+ import { Tooltip as rt, TooltipContent as tt, TooltipProvider as at, TooltipRoot as nt, TooltipTrigger as pt } from "./components/ui/Tooltip.js";
54
+ import { TopNav as mt, TopNavLink as lt } from "./components/ui/TopNav.js";
55
+ import { Calendar as ut } from "./components/ui/Calendar.js";
56
+ import { Carousel as Ct, CarouselContent as ft, CarouselItem as st, CarouselNext as St, CarouselPrevious as Tt } from "./components/ui/Carousel.js";
57
+ import { AreaChart as gt, BarChart as Dt, DEFAULT_CHART_COLORS as bt, LineChart as Mt, abbreviateNumber as wt } from "./components/ui/Chart.js";
58
+ import { Drawer as ht, DrawerClose as It, DrawerContent as Ft, DrawerDescription as vt, DrawerFooter as At, DrawerHeader as Lt, DrawerOverlay as Rt, DrawerPortal as Gt, DrawerTitle as Bt, DrawerTrigger as kt } from "./components/ui/Drawer.js";
59
+ import { FileUpload as yt } from "./components/ui/FileUpload.js";
60
+ import { Snackbar as Nt } from "./components/ui/Snackbar.js";
61
+ import { TagInput as Ut } from "./components/ui/TagInput.js";
62
+ import { Timeline as _t, TimelineDescription as Kt, TimelineItem as Qt, TimelineTime as $t, TimelineTitle as jt } from "./components/ui/Timeline.js";
63
+ import { Tree as zt } from "./components/ui/Tree.js";
64
+ import { cva as Wt } from "class-variance-authority";
4191
65
  export {
4192
- Pa as Accordion,
4193
- Xr as AccordionContent,
4194
- Ur as AccordionItem,
4195
- Kr as AccordionTrigger,
4196
- qr as Alert,
4197
- us as AreaChart,
4198
- en as Avatar,
4199
- tn as AvatarGroup,
4200
- on as Badge,
4201
- ms as BarChart,
4202
- an as Breadcrumbs,
4203
- fe as Button,
4204
- wt as Calendar,
4205
- dn as Card,
4206
- fn as CardContent,
4207
- mn as CardDescription,
4208
- gn as CardFooter,
4209
- cn as CardHeader,
4210
- un as CardTitle,
4211
- ss as Carousel,
4212
- is as CarouselContent,
4213
- ls as CarouselItem,
4214
- cs as CarouselNext,
4215
- ds as CarouselPrevious,
4216
- bn as Checkbox,
4217
- pn as Combobox,
4218
- ut as Command,
4219
- Fa as CommandDialog,
4220
- vn as CommandEmpty,
4221
- Nn as CommandGroup,
4222
- hn as CommandInput,
4223
- wn as CommandItem,
4224
- xn as CommandList,
4225
- yn as CommandSeparator,
4226
- _a as CommandShortcut,
4227
- qn as ConfirmationDialog,
4228
- Ra as ContextMenu,
4229
- Dn as ContextMenuCheckboxItem,
4230
- Sn as ContextMenuContent,
4231
- ja as ContextMenuGroup,
4232
- Tn as ContextMenuItem,
4233
- In as ContextMenuLabel,
4234
- kn as ContextMenuPortal,
4235
- Aa as ContextMenuRadioGroup,
4236
- Mn as ContextMenuRadioItem,
4237
- Pn as ContextMenuSeparator,
4238
- _n as ContextMenuShortcut,
4239
- Ba as ContextMenuSub,
4240
- zn as ContextMenuSubContent,
4241
- Cn as ContextMenuSubTrigger,
4242
- La as ContextMenuTrigger,
4243
- Ga as DataGrid,
4244
- Un as DatePicker,
4245
- Kn as DateRangePicker,
4246
- Va as DesignSystemProvider,
4247
- Xn as Dialog,
4248
- Yn as DialogClose,
4249
- zt as DialogContent,
4250
- Mt as DialogDescription,
4251
- Tt as DialogFooter,
4252
- St as DialogHeader,
4253
- Ct as DialogOverlay,
4254
- Qn as DialogPortal,
4255
- Dt as DialogTitle,
4256
- Ua as DialogTrigger,
4257
- sa as Drawer,
4258
- gs as DrawerClose,
4259
- bs as DrawerContent,
4260
- vs as DrawerDescription,
4261
- hs as DrawerFooter,
4262
- ps as DrawerHeader,
4263
- la as DrawerOverlay,
4264
- ia as DrawerPortal,
4265
- xs as DrawerTitle,
4266
- fs as DrawerTrigger,
4267
- Fn as DropdownMenu,
4268
- ft as DropdownMenuCheckboxItem,
4269
- mt as DropdownMenuContent,
4270
- Ea as DropdownMenuGroup,
4271
- Bn as DropdownMenuItem,
4272
- gt as DropdownMenuLabel,
4273
- Rn as DropdownMenuPortal,
4274
- Ha as DropdownMenuRadioGroup,
4275
- An as DropdownMenuRadioItem,
4276
- bt as DropdownMenuSeparator,
4277
- En as DropdownMenuShortcut,
4278
- Oa as DropdownMenuSub,
4279
- jn as DropdownMenuSubContent,
4280
- Ln as DropdownMenuSubTrigger,
4281
- $n as DropdownMenuTrigger,
4282
- Zn as EmptyState,
4283
- eo as ErrorState,
4284
- Ns as FileUpload,
4285
- Ka as Form,
4286
- no as FormControl,
4287
- oo as FormDescription,
4288
- ao as FormError,
4289
- Xa as FormField,
4290
- to as FormItem,
4291
- ro as FormLabel,
4292
- Se as IconButton,
4293
- Ma as Icons,
4294
- Ia as Illustrations,
4295
- pt as Input,
4296
- so as Kbd,
4297
- aa as LineChart,
4298
- io as MultiSelect,
4299
- fo as Pagination,
4300
- Ya as Popover,
4301
- Za as PopoverAnchor,
4302
- Ja as PopoverClose,
4303
- go as PopoverContent,
4304
- qa as PopoverTrigger,
4305
- ho as Progress,
4306
- vo as ProgressCircle,
4307
- No as RadioGroup,
4308
- yo as RadioItem,
4309
- wo as ScrollArea,
4310
- At as ScrollBar,
4311
- lo as Select,
4312
- Lt as SelectContent,
4313
- uo as SelectGroup,
4314
- Bt as SelectItem,
4315
- jt as SelectLabel,
4316
- Rt as SelectScrollDownButton,
4317
- $t as SelectScrollUpButton,
4318
- co as SelectSeparator,
4319
- _t as SelectTrigger,
4320
- Qa as SelectValue,
4321
- ko as Separator,
4322
- es as Sheet,
4323
- rs as SheetClose,
4324
- So as SheetContent,
4325
- Io as SheetDescription,
4326
- Do as SheetFooter,
4327
- To as SheetHeader,
4328
- Co as SheetPortal,
4329
- Mo as SheetTitle,
4330
- ts as SheetTrigger,
4331
- Po as Sidebar,
4332
- $o as SidebarGroup,
4333
- Fo as SidebarItem,
4334
- _o as SidebarSection,
4335
- yt as Skeleton,
4336
- Ro as Slider,
4337
- ys as Snackbar,
4338
- Bo as Spinner,
4339
- Ao as Stepper,
4340
- Ho as Switch,
4341
- ht as Table,
4342
- vt as TableBody,
4343
- Wn as TableCaption,
4344
- ue as TableCell,
4345
- Vn as TableFooter,
4346
- Ae as TableHead,
4347
- xt as TableHeader,
4348
- ne as TableRow,
4349
- Nt as TableSortHeader,
4350
- os as Tabs,
4351
- Uo as TabsContent,
4352
- Vo as TabsList,
4353
- Wo as TabsTrigger,
4354
- ws as TagInput,
4355
- Ko as Textarea,
4356
- ks as Timeline,
4357
- Ts as TimelineDescription,
4358
- Cs as TimelineItem,
4359
- zs as TimelineTime,
4360
- Ss as TimelineTitle,
4361
- Ht as Toast,
4362
- Wt as ToastAction,
4363
- Ut as ToastClose,
4364
- Vt as ToastDescription,
4365
- Xo as ToastProvider,
4366
- Gt as ToastTitle,
4367
- Ot as ToastViewport,
4368
- qo as Toaster,
4369
- ea as Tooltip,
4370
- Kt as TooltipContent,
4371
- as as TooltipProvider,
4372
- Zo as TooltipRoot,
4373
- Jo as TooltipTrigger,
4374
- ta as TopNav,
4375
- ra as TopNavLink,
4376
- Ds as Tree,
4377
- Wa as brandPresets,
4378
- i as cn,
4379
- Ps as cva,
4380
- Da as toast,
4381
- Sa as uid,
4382
- $a as useCommandPaletteShortcut,
4383
- Te as useFormField,
4384
- Hr as useMediaQuery,
4385
- Ta as usePrefersReducedMotion,
4386
- ns as useSidebar,
4387
- Gr as useToast
66
+ M as Accordion,
67
+ w as AccordionContent,
68
+ P as AccordionItem,
69
+ h as AccordionTrigger,
70
+ F as Alert,
71
+ gt as AreaChart,
72
+ A as Avatar,
73
+ L as AvatarGroup,
74
+ G as Badge,
75
+ Dt as BarChart,
76
+ k as Breadcrumbs,
77
+ y as Button,
78
+ ut as Calendar,
79
+ N as Card,
80
+ O as CardContent,
81
+ U as CardDescription,
82
+ V as CardFooter,
83
+ _ as CardHeader,
84
+ K as CardTitle,
85
+ Ct as Carousel,
86
+ ft as CarouselContent,
87
+ st as CarouselItem,
88
+ St as CarouselNext,
89
+ Tt as CarouselPrevious,
90
+ $ as Checkbox,
91
+ q as Combobox,
92
+ J as Command,
93
+ W as CommandDialog,
94
+ X as CommandEmpty,
95
+ Y as CommandGroup,
96
+ Z as CommandInput,
97
+ oo as CommandItem,
98
+ eo as CommandList,
99
+ ro as CommandSeparator,
100
+ to as CommandShortcut,
101
+ Ro as ConfirmationDialog,
102
+ po as ContextMenu,
103
+ io as ContextMenuCheckboxItem,
104
+ mo as ContextMenuContent,
105
+ lo as ContextMenuGroup,
106
+ xo as ContextMenuItem,
107
+ uo as ContextMenuLabel,
108
+ Co as ContextMenuPortal,
109
+ fo as ContextMenuRadioGroup,
110
+ so as ContextMenuRadioItem,
111
+ So as ContextMenuSeparator,
112
+ To as ContextMenuShortcut,
113
+ co as ContextMenuSub,
114
+ go as ContextMenuSubContent,
115
+ Do as ContextMenuSubTrigger,
116
+ bo as ContextMenuTrigger,
117
+ bt as DEFAULT_CHART_COLORS,
118
+ wo as DataGrid,
119
+ ho as DatePicker,
120
+ Io as DateRangePicker,
121
+ vo as DesignSystemProvider,
122
+ Go as Dialog,
123
+ Bo as DialogClose,
124
+ ko as DialogContent,
125
+ Ho as DialogDescription,
126
+ yo as DialogFooter,
127
+ Eo as DialogHeader,
128
+ No as DialogOverlay,
129
+ Oo as DialogPortal,
130
+ Uo as DialogTitle,
131
+ Vo as DialogTrigger,
132
+ ht as Drawer,
133
+ It as DrawerClose,
134
+ Ft as DrawerContent,
135
+ vt as DrawerDescription,
136
+ At as DrawerFooter,
137
+ Lt as DrawerHeader,
138
+ Rt as DrawerOverlay,
139
+ Gt as DrawerPortal,
140
+ Bt as DrawerTitle,
141
+ kt as DrawerTrigger,
142
+ Ko as DropdownMenu,
143
+ Qo as DropdownMenuCheckboxItem,
144
+ $o as DropdownMenuContent,
145
+ jo as DropdownMenuGroup,
146
+ qo as DropdownMenuItem,
147
+ zo as DropdownMenuLabel,
148
+ Jo as DropdownMenuPortal,
149
+ Wo as DropdownMenuRadioGroup,
150
+ Xo as DropdownMenuRadioItem,
151
+ Yo as DropdownMenuSeparator,
152
+ Zo as DropdownMenuShortcut,
153
+ oe as DropdownMenuSub,
154
+ ee as DropdownMenuSubContent,
155
+ re as DropdownMenuSubTrigger,
156
+ te as DropdownMenuTrigger,
157
+ ne as EmptyState,
158
+ ie as ErrorState,
159
+ yt as FileUpload,
160
+ le as Form,
161
+ xe as FormControl,
162
+ ue as FormDescription,
163
+ de as FormError,
164
+ Ce as FormField,
165
+ fe as FormItem,
166
+ se as FormLabel,
167
+ ce as IconButton,
168
+ e as Icons,
169
+ r as Illustrations,
170
+ De as Input,
171
+ Me as Kbd,
172
+ Mt as LineChart,
173
+ Pe as MultiSelect,
174
+ Ie as Pagination,
175
+ Le as Popover,
176
+ Re as PopoverAnchor,
177
+ Ge as PopoverClose,
178
+ Be as PopoverContent,
179
+ ke as PopoverTrigger,
180
+ ye as Progress,
181
+ Ee as ProgressCircle,
182
+ Oe as RadioGroup,
183
+ Ue as RadioItem,
184
+ _e as ScrollArea,
185
+ Ke as ScrollBar,
186
+ $e as Select,
187
+ je as SelectContent,
188
+ qe as SelectGroup,
189
+ ze as SelectItem,
190
+ Je as SelectLabel,
191
+ We as SelectScrollDownButton,
192
+ Xe as SelectScrollUpButton,
193
+ Ye as SelectSeparator,
194
+ Ze as SelectTrigger,
195
+ or as SelectValue,
196
+ rr as Separator,
197
+ ar as Sheet,
198
+ nr as SheetClose,
199
+ pr as SheetContent,
200
+ ir as SheetDescription,
201
+ mr as SheetFooter,
202
+ lr as SheetHeader,
203
+ xr as SheetPortal,
204
+ ur as SheetTitle,
205
+ dr as SheetTrigger,
206
+ fr as Sidebar,
207
+ sr as SidebarGroup,
208
+ Sr as SidebarItem,
209
+ Tr as SidebarSection,
210
+ Dr as Skeleton,
211
+ Mr as Slider,
212
+ Nt as Snackbar,
213
+ Pr as Spinner,
214
+ Ir as Stepper,
215
+ vr as Switch,
216
+ Lr as Table,
217
+ Rr as TableBody,
218
+ Gr as TableCaption,
219
+ Br as TableCell,
220
+ kr as TableFooter,
221
+ Hr as TableHead,
222
+ yr as TableHeader,
223
+ Er as TableRow,
224
+ Nr as TableSortHeader,
225
+ Ur as Tabs,
226
+ Vr as TabsContent,
227
+ _r as TabsList,
228
+ Kr as TabsTrigger,
229
+ Ut as TagInput,
230
+ $r as Textarea,
231
+ _t as Timeline,
232
+ Kt as TimelineDescription,
233
+ Qt as TimelineItem,
234
+ $t as TimelineTime,
235
+ jt as TimelineTitle,
236
+ qr as Toast,
237
+ zr as ToastAction,
238
+ Jr as ToastClose,
239
+ Wr as ToastDescription,
240
+ Xr as ToastProvider,
241
+ Yr as ToastTitle,
242
+ Zr as ToastViewport,
243
+ ot as Toaster,
244
+ rt as Tooltip,
245
+ tt as TooltipContent,
246
+ at as TooltipProvider,
247
+ nt as TooltipRoot,
248
+ pt as TooltipTrigger,
249
+ mt as TopNav,
250
+ lt as TopNavLink,
251
+ zt as Tree,
252
+ wt as abbreviateNumber,
253
+ Ao as brandPresets,
254
+ n as cn,
255
+ Wt as cva,
256
+ Fe as defaultPaginationLabels,
257
+ i as defaultStrings,
258
+ m as formatString,
259
+ x as mnStrings,
260
+ ve as paginationLabelsFromStrings,
261
+ s as toast,
262
+ ao as useCommandPaletteShortcut,
263
+ c as useFieldIds,
264
+ Se as useFormField,
265
+ d as useMediaQuery,
266
+ C as usePrefersReducedMotion,
267
+ cr as useSidebar,
268
+ D as useStrings,
269
+ S as useToast
4388
270
  };
4389
271
  //# sourceMappingURL=index.js.map