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