@craftzbay/ui 0.9.0 → 0.11.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 (208) hide show
  1. package/README.md +82 -10
  2. package/dist-lib/__tests__/helpers/color.d.ts +9 -0
  3. package/dist-lib/__tests__/helpers/theme.d.ts +18 -0
  4. package/dist-lib/components/ui/Accordion.js +71 -0
  5. package/dist-lib/components/ui/Accordion.js.map +1 -0
  6. package/dist-lib/components/ui/Alert.d.ts +17 -1
  7. package/dist-lib/components/ui/Alert.js +79 -0
  8. package/dist-lib/components/ui/Alert.js.map +1 -0
  9. package/dist-lib/components/ui/Avatar.d.ts +3 -3
  10. package/dist-lib/components/ui/Avatar.js +94 -0
  11. package/dist-lib/components/ui/Avatar.js.map +1 -0
  12. package/dist-lib/components/ui/Badge.d.ts +4 -2
  13. package/dist-lib/components/ui/Badge.js +76 -0
  14. package/dist-lib/components/ui/Badge.js.map +1 -0
  15. package/dist-lib/components/ui/Breadcrumbs.d.ts +2 -0
  16. package/dist-lib/components/ui/Breadcrumbs.js +52 -0
  17. package/dist-lib/components/ui/Breadcrumbs.js.map +1 -0
  18. package/dist-lib/components/ui/Button.d.ts +6 -4
  19. package/dist-lib/components/ui/Button.js +131 -0
  20. package/dist-lib/components/ui/Button.js.map +1 -0
  21. package/dist-lib/components/ui/Calendar.d.ts +7 -1
  22. package/dist-lib/components/ui/Calendar.js +139 -0
  23. package/dist-lib/components/ui/Calendar.js.map +1 -0
  24. package/dist-lib/components/ui/Card.d.ts +3 -1
  25. package/dist-lib/components/ui/Card.js +97 -0
  26. package/dist-lib/components/ui/Card.js.map +1 -0
  27. package/dist-lib/components/ui/Carousel.d.ts +11 -7
  28. package/dist-lib/components/ui/Carousel.js +174 -0
  29. package/dist-lib/components/ui/Carousel.js.map +1 -0
  30. package/dist-lib/components/ui/Chart.d.ts +68 -7
  31. package/dist-lib/components/ui/Chart.js +487 -0
  32. package/dist-lib/components/ui/Chart.js.map +1 -0
  33. package/dist-lib/components/ui/Checkbox.js +70 -0
  34. package/dist-lib/components/ui/Checkbox.js.map +1 -0
  35. package/dist-lib/components/ui/Combobox.d.ts +9 -0
  36. package/dist-lib/components/ui/Combobox.js +195 -0
  37. package/dist-lib/components/ui/Combobox.js.map +1 -0
  38. package/dist-lib/components/ui/CommandPalette.d.ts +9 -6
  39. package/dist-lib/components/ui/CommandPalette.js +179 -0
  40. package/dist-lib/components/ui/CommandPalette.js.map +1 -0
  41. package/dist-lib/components/ui/ContextMenu.d.ts +7 -2
  42. package/dist-lib/components/ui/ContextMenu.js +165 -0
  43. package/dist-lib/components/ui/ContextMenu.js.map +1 -0
  44. package/dist-lib/components/ui/DataGrid.d.ts +17 -4
  45. package/dist-lib/components/ui/DataGrid.js +99 -0
  46. package/dist-lib/components/ui/DataGrid.js.map +1 -0
  47. package/dist-lib/components/ui/DatePicker.d.ts +16 -13
  48. package/dist-lib/components/ui/DatePicker.js +193 -0
  49. package/dist-lib/components/ui/DatePicker.js.map +1 -0
  50. package/dist-lib/components/ui/DesignSystemProvider.d.ts +102 -41
  51. package/dist-lib/components/ui/DesignSystemProvider.js +135 -0
  52. package/dist-lib/components/ui/DesignSystemProvider.js.map +1 -0
  53. package/dist-lib/components/ui/Dialog.d.ts +19 -4
  54. package/dist-lib/components/ui/Dialog.js +165 -0
  55. package/dist-lib/components/ui/Dialog.js.map +1 -0
  56. package/dist-lib/components/ui/Drawer.d.ts +23 -2
  57. package/dist-lib/components/ui/Drawer.js +132 -0
  58. package/dist-lib/components/ui/Drawer.js.map +1 -0
  59. package/dist-lib/components/ui/DropdownMenu.js +169 -0
  60. package/dist-lib/components/ui/DropdownMenu.js.map +1 -0
  61. package/dist-lib/components/ui/EmptyState.d.ts +2 -0
  62. package/dist-lib/components/ui/EmptyState.js +46 -0
  63. package/dist-lib/components/ui/EmptyState.js.map +1 -0
  64. package/dist-lib/components/ui/ErrorState.d.ts +13 -2
  65. package/dist-lib/components/ui/ErrorState.js +69 -0
  66. package/dist-lib/components/ui/ErrorState.js.map +1 -0
  67. package/dist-lib/components/ui/FileUpload.d.ts +3 -0
  68. package/dist-lib/components/ui/FileUpload.js +111 -0
  69. package/dist-lib/components/ui/FileUpload.js.map +1 -0
  70. package/dist-lib/components/ui/Form.d.ts +16 -2
  71. package/dist-lib/components/ui/Form.js +131 -0
  72. package/dist-lib/components/ui/Form.js.map +1 -0
  73. package/dist-lib/components/ui/Icon.d.ts +1 -1
  74. package/dist-lib/components/ui/Icon.js +32 -0
  75. package/dist-lib/components/ui/Icon.js.map +1 -0
  76. package/dist-lib/components/ui/IconButton.d.ts +3 -3
  77. package/dist-lib/components/ui/IconButton.js +64 -0
  78. package/dist-lib/components/ui/IconButton.js.map +1 -0
  79. package/dist-lib/components/ui/Input.d.ts +9 -4
  80. package/dist-lib/components/ui/Input.js +149 -0
  81. package/dist-lib/components/ui/Input.js.map +1 -0
  82. package/dist-lib/components/ui/Kbd.js +24 -0
  83. package/dist-lib/components/ui/Kbd.js.map +1 -0
  84. package/dist-lib/components/ui/MultiSelect.d.ts +3 -1
  85. package/dist-lib/components/ui/MultiSelect.js +210 -0
  86. package/dist-lib/components/ui/MultiSelect.js.map +1 -0
  87. package/dist-lib/components/ui/Pagination.d.ts +23 -0
  88. package/dist-lib/components/ui/Pagination.js +153 -0
  89. package/dist-lib/components/ui/Pagination.js.map +1 -0
  90. package/dist-lib/components/ui/Popover.js +35 -0
  91. package/dist-lib/components/ui/Popover.js.map +1 -0
  92. package/dist-lib/components/ui/Progress.d.ts +3 -3
  93. package/dist-lib/components/ui/Progress.js +100 -0
  94. package/dist-lib/components/ui/Progress.js.map +1 -0
  95. package/dist-lib/components/ui/RadioGroup.d.ts +1 -1
  96. package/dist-lib/components/ui/RadioGroup.js +81 -0
  97. package/dist-lib/components/ui/RadioGroup.js.map +1 -0
  98. package/dist-lib/components/ui/RelativeTime.d.ts +19 -0
  99. package/dist-lib/components/ui/RelativeTime.js +31 -0
  100. package/dist-lib/components/ui/RelativeTime.js.map +1 -0
  101. package/dist-lib/components/ui/ScrollArea.d.ts +9 -1
  102. package/dist-lib/components/ui/ScrollArea.js +60 -0
  103. package/dist-lib/components/ui/ScrollArea.js.map +1 -0
  104. package/dist-lib/components/ui/Select.d.ts +6 -1
  105. package/dist-lib/components/ui/Select.js +139 -0
  106. package/dist-lib/components/ui/Select.js.map +1 -0
  107. package/dist-lib/components/ui/Separator.js +26 -0
  108. package/dist-lib/components/ui/Separator.js.map +1 -0
  109. package/dist-lib/components/ui/Sheet.d.ts +10 -1
  110. package/dist-lib/components/ui/Sheet.js +136 -0
  111. package/dist-lib/components/ui/Sheet.js.map +1 -0
  112. package/dist-lib/components/ui/Sidebar.d.ts +29 -14
  113. package/dist-lib/components/ui/Sidebar.js +212 -0
  114. package/dist-lib/components/ui/Sidebar.js.map +1 -0
  115. package/dist-lib/components/ui/Skeleton.d.ts +13 -2
  116. package/dist-lib/components/ui/Skeleton.js +29 -0
  117. package/dist-lib/components/ui/Skeleton.js.map +1 -0
  118. package/dist-lib/components/ui/Slider.js +64 -0
  119. package/dist-lib/components/ui/Slider.js.map +1 -0
  120. package/dist-lib/components/ui/Snackbar.d.ts +1 -1
  121. package/dist-lib/components/ui/Snackbar.js +57 -0
  122. package/dist-lib/components/ui/Snackbar.js.map +1 -0
  123. package/dist-lib/components/ui/Spinner.js +54 -0
  124. package/dist-lib/components/ui/Spinner.js.map +1 -0
  125. package/dist-lib/components/ui/Stepper.d.ts +6 -0
  126. package/dist-lib/components/ui/Stepper.js +111 -0
  127. package/dist-lib/components/ui/Stepper.js.map +1 -0
  128. package/dist-lib/components/ui/Switch.js +80 -0
  129. package/dist-lib/components/ui/Switch.js.map +1 -0
  130. package/dist-lib/components/ui/Table.d.ts +41 -5
  131. package/dist-lib/components/ui/Table.js +179 -0
  132. package/dist-lib/components/ui/Table.js.map +1 -0
  133. package/dist-lib/components/ui/Tabs.d.ts +1 -1
  134. package/dist-lib/components/ui/Tabs.js +91 -0
  135. package/dist-lib/components/ui/Tabs.js.map +1 -0
  136. package/dist-lib/components/ui/TagInput.d.ts +17 -2
  137. package/dist-lib/components/ui/TagInput.js +111 -0
  138. package/dist-lib/components/ui/TagInput.js.map +1 -0
  139. package/dist-lib/components/ui/Textarea.js +88 -0
  140. package/dist-lib/components/ui/Textarea.js.map +1 -0
  141. package/dist-lib/components/ui/Timeline.d.ts +16 -6
  142. package/dist-lib/components/ui/Timeline.js +56 -0
  143. package/dist-lib/components/ui/Timeline.js.map +1 -0
  144. package/dist-lib/components/ui/Toast.d.ts +1 -1
  145. package/dist-lib/components/ui/Toast.js +158 -0
  146. package/dist-lib/components/ui/Toast.js.map +1 -0
  147. package/dist-lib/components/ui/Tooltip.d.ts +4 -1
  148. package/dist-lib/components/ui/Tooltip.js +60 -0
  149. package/dist-lib/components/ui/Tooltip.js.map +1 -0
  150. package/dist-lib/components/ui/TopNav.d.ts +7 -3
  151. package/dist-lib/components/ui/TopNav.js +62 -0
  152. package/dist-lib/components/ui/TopNav.js.map +1 -0
  153. package/dist-lib/components/ui/Tree.d.ts +34 -7
  154. package/dist-lib/components/ui/Tree.js +170 -0
  155. package/dist-lib/components/ui/Tree.js.map +1 -0
  156. package/dist-lib/hooks/use-debounce.d.ts +19 -0
  157. package/dist-lib/hooks/use-debounce.js +36 -0
  158. package/dist-lib/hooks/use-debounce.js.map +1 -0
  159. package/dist-lib/hooks/use-delayed-loading.d.ts +21 -0
  160. package/dist-lib/hooks/use-delayed-loading.js +20 -0
  161. package/dist-lib/hooks/use-delayed-loading.js.map +1 -0
  162. package/dist-lib/hooks/use-field-ids.d.ts +30 -0
  163. package/dist-lib/hooks/use-field-ids.js +18 -0
  164. package/dist-lib/hooks/use-field-ids.js.map +1 -0
  165. package/dist-lib/hooks/use-media-query.d.ts +3 -1
  166. package/dist-lib/hooks/use-media-query.js +22 -0
  167. package/dist-lib/hooks/use-media-query.js.map +1 -0
  168. package/dist-lib/hooks/use-modifier-key.d.ts +13 -0
  169. package/dist-lib/hooks/use-modifier-key.js +19 -0
  170. package/dist-lib/hooks/use-modifier-key.js.map +1 -0
  171. package/dist-lib/hooks/use-strings.d.ts +5 -0
  172. package/dist-lib/hooks/use-strings.js +12 -0
  173. package/dist-lib/hooks/use-strings.js.map +1 -0
  174. package/dist-lib/hooks/use-toast.d.ts +7 -2
  175. package/dist-lib/hooks/use-toast.js +67 -0
  176. package/dist-lib/hooks/use-toast.js.map +1 -0
  177. package/dist-lib/icon.d.ts +8 -0
  178. package/dist-lib/icon.js +7 -0
  179. package/dist-lib/icon.js.map +1 -0
  180. package/dist-lib/icons/index.d.ts +80 -88
  181. package/dist-lib/icons/index.js +163 -0
  182. package/dist-lib/icons/index.js.map +1 -0
  183. package/dist-lib/illustrations/index.d.ts +1 -0
  184. package/dist-lib/illustrations/index.js +114 -0
  185. package/dist-lib/illustrations/index.js.map +1 -0
  186. package/dist-lib/index.d.ts +68 -59
  187. package/dist-lib/index.js +288 -4530
  188. package/dist-lib/index.js.map +1 -1
  189. package/dist-lib/lib/format.d.ts +65 -0
  190. package/dist-lib/lib/format.js +95 -0
  191. package/dist-lib/lib/format.js.map +1 -0
  192. package/dist-lib/lib/return-focus.d.ts +11 -0
  193. package/dist-lib/lib/return-focus.js +12 -0
  194. package/dist-lib/lib/return-focus.js.map +1 -0
  195. package/dist-lib/lib/strings.d.ts +190 -0
  196. package/dist-lib/lib/strings.js +141 -0
  197. package/dist-lib/lib/strings.js.map +1 -0
  198. package/dist-lib/lib/strings.mn.d.ts +3 -0
  199. package/dist-lib/lib/strings.mn.js +115 -0
  200. package/dist-lib/lib/strings.mn.js.map +1 -0
  201. package/dist-lib/lib/utils.d.ts +0 -1
  202. package/dist-lib/lib/utils.js +10 -0
  203. package/dist-lib/lib/utils.js.map +1 -0
  204. package/dist-lib/styles.css +1 -1
  205. package/dist-lib/theme.css +840 -0
  206. package/package.json +38 -8
  207. package/dist-lib/index.cjs +0 -8
  208. package/dist-lib/index.cjs.map +0 -1
package/dist-lib/index.js CHANGED
@@ -1,4533 +1,291 @@
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 p, formatString as i } from "./lib/strings.js";
5
+ import { mnStrings as x } from "./lib/strings.mn.js";
6
+ import { formatDate as d, formatMNT as f, formatNumber as s, formatPhone as C, getDateTimeFormat as T, parsePhoneMN as S } from "./lib/format.js";
7
+ import { useMediaQuery as D, usePrefersReducedMotion as g } from "./hooks/use-media-query.js";
8
+ import { TOAST_DURATIONS as M, toast as w, useToast as P } from "./hooks/use-toast.js";
9
+ import { useFieldIds as I } from "./hooks/use-field-ids.js";
10
+ import { isApplePlatform as v, useModifierKey as A } from "./hooks/use-modifier-key.js";
11
+ import { useDelayedLoading as R } from "./hooks/use-delayed-loading.js";
12
+ import { useDebounce as G, useDebouncedCallback as y } from "./hooks/use-debounce.js";
13
+ import { useStrings as H } from "./hooks/use-strings.js";
14
+ import * as o from "./icons/index.js";
15
+ import * as r from "./illustrations/index.js";
16
+ import { Accordion as O, AccordionContent as E, AccordionItem as U, AccordionTrigger as _ } from "./components/ui/Accordion.js";
17
+ import { Alert as V } from "./components/ui/Alert.js";
18
+ import { Avatar as $, AvatarGroup as j } from "./components/ui/Avatar.js";
19
+ import { Badge as z } from "./components/ui/Badge.js";
20
+ import { Breadcrumbs as W } from "./components/ui/Breadcrumbs.js";
21
+ import { Button as Y } from "./components/ui/Button.js";
22
+ import { Card as ee, CardContent as oe, CardDescription as re, CardFooter as te, CardHeader as ae, CardTitle as ne } from "./components/ui/Card.js";
23
+ import { Checkbox as pe } from "./components/ui/Checkbox.js";
24
+ import { Combobox as le } from "./components/ui/Combobox.js";
25
+ import { Command as ue, CommandDialog as de, CommandEmpty as fe, CommandGroup as se, CommandInput as Ce, CommandItem as Te, CommandList as Se, CommandSeparator as ce, CommandShortcut as De, useCommandPaletteShortcut as ge } from "./components/ui/CommandPalette.js";
26
+ import { ContextMenu as Me, ContextMenuCheckboxItem as we, ContextMenuContent as Pe, ContextMenuGroup as he, ContextMenuItem as Ie, ContextMenuLabel as Fe, ContextMenuPortal as ve, ContextMenuRadioGroup as Ae, ContextMenuRadioItem as Le, ContextMenuSeparator as Re, ContextMenuShortcut as ke, ContextMenuSub as Ge, ContextMenuSubContent as ye, ContextMenuSubTrigger as Be, ContextMenuTrigger as He } from "./components/ui/ContextMenu.js";
27
+ import { DataGrid as Oe } from "./components/ui/DataGrid.js";
28
+ import { DatePicker as Ue, DateRangePicker as _e } from "./components/ui/DatePicker.js";
29
+ import { DesignSystemProvider as Ve, brandPresets as Qe } from "./components/ui/DesignSystemProvider.js";
30
+ import { ConfirmationDialog as je, Dialog as qe, DialogClose as ze, DialogContent as Je, DialogDescription as We, DialogFooter as Xe, DialogHeader as Ye, DialogOverlay as Ze, DialogPortal as eo, DialogTitle as oo, DialogTrigger as ro } from "./components/ui/Dialog.js";
31
+ import { DropdownMenu as ao, DropdownMenuCheckboxItem as no, DropdownMenuContent as mo, DropdownMenuGroup as po, DropdownMenuItem as io, DropdownMenuLabel as lo, DropdownMenuPortal as xo, DropdownMenuRadioGroup as uo, DropdownMenuRadioItem as fo, DropdownMenuSeparator as so, DropdownMenuShortcut as Co, DropdownMenuSub as To, DropdownMenuSubContent as So, DropdownMenuSubTrigger as co, DropdownMenuTrigger as Do } from "./components/ui/DropdownMenu.js";
32
+ import { EmptyState as bo } from "./components/ui/EmptyState.js";
33
+ import { ErrorState as wo } from "./components/ui/ErrorState.js";
34
+ import { Form as ho, FormControl as Io, FormDescription as Fo, FormError as vo, FormField as Ao, FormItem as Lo, FormLabel as Ro, useFormField as ko } from "./components/ui/Form.js";
35
+ import { IconButton as yo } from "./components/ui/IconButton.js";
36
+ import { Input as Ho } from "./components/ui/Input.js";
37
+ import { Kbd as Oo } from "./components/ui/Kbd.js";
38
+ import { MultiSelect as Uo } from "./components/ui/MultiSelect.js";
39
+ import { Pagination as Ko, defaultPaginationLabels as Vo, paginationLabelsFromStrings as Qo } from "./components/ui/Pagination.js";
40
+ import { Popover as jo, PopoverAnchor as qo, PopoverClose as zo, PopoverContent as Jo, PopoverTrigger as Wo } from "./components/ui/Popover.js";
41
+ import { Progress as Yo, ProgressCircle as Zo } from "./components/ui/Progress.js";
42
+ import { RadioGroup as or, RadioItem as rr } from "./components/ui/RadioGroup.js";
43
+ import { ScrollArea as ar, ScrollBar as nr } from "./components/ui/ScrollArea.js";
44
+ import { Select as pr, SelectContent as ir, SelectGroup as lr, SelectItem as xr, SelectLabel as ur, SelectScrollDownButton as dr, SelectScrollUpButton as fr, SelectSeparator as sr, SelectTrigger as Cr, SelectValue as Tr } from "./components/ui/Select.js";
45
+ import { Separator as cr } from "./components/ui/Separator.js";
46
+ import { Sheet as gr, SheetClose as br, SheetContent as Mr, SheetDescription as wr, SheetFooter as Pr, SheetHeader as hr, SheetPortal as Ir, SheetTitle as Fr, SheetTrigger as vr } from "./components/ui/Sheet.js";
47
+ import { Sidebar as Lr, SidebarGroup as Rr, SidebarItem as kr, SidebarSection as Gr, useSidebar as yr } from "./components/ui/Sidebar.js";
48
+ import { Skeleton as Hr } from "./components/ui/Skeleton.js";
49
+ import { Slider as Or } from "./components/ui/Slider.js";
50
+ import { Spinner as Ur } from "./components/ui/Spinner.js";
51
+ import { Stepper as Kr } from "./components/ui/Stepper.js";
52
+ import { Switch as Qr } from "./components/ui/Switch.js";
53
+ import { Table as jr, TableBody as qr, TableCaption as zr, TableCell as Jr, TableFooter as Wr, TableHead as Xr, TableHeader as Yr, TableRow as Zr, TableSortHeader as et } from "./components/ui/Table.js";
54
+ import { Tabs as rt, TabsContent as tt, TabsList as at, TabsTrigger as nt } from "./components/ui/Tabs.js";
55
+ import { Textarea as pt } from "./components/ui/Textarea.js";
56
+ import { Toast as lt, ToastAction as xt, ToastClose as ut, ToastDescription as dt, ToastProvider as ft, ToastTitle as st, ToastViewport as Ct, Toaster as Tt } from "./components/ui/Toast.js";
57
+ import { Tooltip as ct, TooltipContent as Dt, TooltipProvider as gt, TooltipRoot as bt, TooltipTrigger as Mt } from "./components/ui/Tooltip.js";
58
+ import { TopNav as Pt, TopNavLink as ht } from "./components/ui/TopNav.js";
59
+ import { Calendar as Ft } from "./components/ui/Calendar.js";
60
+ import { Carousel as At, CarouselContent as Lt, CarouselItem as Rt, CarouselNext as kt, CarouselPrevious as Gt } from "./components/ui/Carousel.js";
61
+ import { AreaChart as Bt, BarChart as Ht, DEFAULT_CHART_COLORS as Nt, LineChart as Ot, abbreviateNumber as Et, defaultChartLabels as Ut, niceTicks as _t } from "./components/ui/Chart.js";
62
+ import { RelativeTime as Vt } from "./components/ui/RelativeTime.js";
63
+ import { Drawer as $t, DrawerClose as jt, DrawerContent as qt, DrawerDescription as zt, DrawerFooter as Jt, DrawerHeader as Wt, DrawerOverlay as Xt, DrawerPortal as Yt, DrawerTitle as Zt, DrawerTrigger as ea } from "./components/ui/Drawer.js";
64
+ import { FileUpload as ra } from "./components/ui/FileUpload.js";
65
+ import { Snackbar as aa } from "./components/ui/Snackbar.js";
66
+ import { TagInput as ma } from "./components/ui/TagInput.js";
67
+ import { Timeline as ia, TimelineDescription as la, TimelineItem as xa, TimelineTime as ua, TimelineTitle as da } from "./components/ui/Timeline.js";
68
+ import { Tree as sa } from "./components/ui/Tree.js";
69
+ import { cva as Ta } from "class-variance-authority";
4333
70
  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,
4419
- 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
71
+ O as Accordion,
72
+ E as AccordionContent,
73
+ U as AccordionItem,
74
+ _ as AccordionTrigger,
75
+ V as Alert,
76
+ Bt as AreaChart,
77
+ $ as Avatar,
78
+ j as AvatarGroup,
79
+ z as Badge,
80
+ Ht as BarChart,
81
+ W as Breadcrumbs,
82
+ Y as Button,
83
+ Ft as Calendar,
84
+ ee as Card,
85
+ oe as CardContent,
86
+ re as CardDescription,
87
+ te as CardFooter,
88
+ ae as CardHeader,
89
+ ne as CardTitle,
90
+ At as Carousel,
91
+ Lt as CarouselContent,
92
+ Rt as CarouselItem,
93
+ kt as CarouselNext,
94
+ Gt as CarouselPrevious,
95
+ pe as Checkbox,
96
+ le as Combobox,
97
+ ue as Command,
98
+ de as CommandDialog,
99
+ fe as CommandEmpty,
100
+ se as CommandGroup,
101
+ Ce as CommandInput,
102
+ Te as CommandItem,
103
+ Se as CommandList,
104
+ ce as CommandSeparator,
105
+ De as CommandShortcut,
106
+ je as ConfirmationDialog,
107
+ Me as ContextMenu,
108
+ we as ContextMenuCheckboxItem,
109
+ Pe as ContextMenuContent,
110
+ he as ContextMenuGroup,
111
+ Ie as ContextMenuItem,
112
+ Fe as ContextMenuLabel,
113
+ ve as ContextMenuPortal,
114
+ Ae as ContextMenuRadioGroup,
115
+ Le as ContextMenuRadioItem,
116
+ Re as ContextMenuSeparator,
117
+ ke as ContextMenuShortcut,
118
+ Ge as ContextMenuSub,
119
+ ye as ContextMenuSubContent,
120
+ Be as ContextMenuSubTrigger,
121
+ He as ContextMenuTrigger,
122
+ Nt as DEFAULT_CHART_COLORS,
123
+ Oe as DataGrid,
124
+ Ue as DatePicker,
125
+ _e as DateRangePicker,
126
+ Ve as DesignSystemProvider,
127
+ qe as Dialog,
128
+ ze as DialogClose,
129
+ Je as DialogContent,
130
+ We as DialogDescription,
131
+ Xe as DialogFooter,
132
+ Ye as DialogHeader,
133
+ Ze as DialogOverlay,
134
+ eo as DialogPortal,
135
+ oo as DialogTitle,
136
+ ro as DialogTrigger,
137
+ $t as Drawer,
138
+ jt as DrawerClose,
139
+ qt as DrawerContent,
140
+ zt as DrawerDescription,
141
+ Jt as DrawerFooter,
142
+ Wt as DrawerHeader,
143
+ Xt as DrawerOverlay,
144
+ Yt as DrawerPortal,
145
+ Zt as DrawerTitle,
146
+ ea as DrawerTrigger,
147
+ ao as DropdownMenu,
148
+ no as DropdownMenuCheckboxItem,
149
+ mo as DropdownMenuContent,
150
+ po as DropdownMenuGroup,
151
+ io as DropdownMenuItem,
152
+ lo as DropdownMenuLabel,
153
+ xo as DropdownMenuPortal,
154
+ uo as DropdownMenuRadioGroup,
155
+ fo as DropdownMenuRadioItem,
156
+ so as DropdownMenuSeparator,
157
+ Co as DropdownMenuShortcut,
158
+ To as DropdownMenuSub,
159
+ So as DropdownMenuSubContent,
160
+ co as DropdownMenuSubTrigger,
161
+ Do as DropdownMenuTrigger,
162
+ bo as EmptyState,
163
+ wo as ErrorState,
164
+ ra as FileUpload,
165
+ ho as Form,
166
+ Io as FormControl,
167
+ Fo as FormDescription,
168
+ vo as FormError,
169
+ Ao as FormField,
170
+ Lo as FormItem,
171
+ Ro as FormLabel,
172
+ yo as IconButton,
173
+ o as Icons,
174
+ r as Illustrations,
175
+ Ho as Input,
176
+ Oo as Kbd,
177
+ Ot as LineChart,
178
+ Uo as MultiSelect,
179
+ Ko as Pagination,
180
+ jo as Popover,
181
+ qo as PopoverAnchor,
182
+ zo as PopoverClose,
183
+ Jo as PopoverContent,
184
+ Wo as PopoverTrigger,
185
+ Yo as Progress,
186
+ Zo as ProgressCircle,
187
+ or as RadioGroup,
188
+ rr as RadioItem,
189
+ Vt as RelativeTime,
190
+ ar as ScrollArea,
191
+ nr as ScrollBar,
192
+ pr as Select,
193
+ ir as SelectContent,
194
+ lr as SelectGroup,
195
+ xr as SelectItem,
196
+ ur as SelectLabel,
197
+ dr as SelectScrollDownButton,
198
+ fr as SelectScrollUpButton,
199
+ sr as SelectSeparator,
200
+ Cr as SelectTrigger,
201
+ Tr as SelectValue,
202
+ cr as Separator,
203
+ gr as Sheet,
204
+ br as SheetClose,
205
+ Mr as SheetContent,
206
+ wr as SheetDescription,
207
+ Pr as SheetFooter,
208
+ hr as SheetHeader,
209
+ Ir as SheetPortal,
210
+ Fr as SheetTitle,
211
+ vr as SheetTrigger,
212
+ Lr as Sidebar,
213
+ Rr as SidebarGroup,
214
+ kr as SidebarItem,
215
+ Gr as SidebarSection,
216
+ Hr as Skeleton,
217
+ Or as Slider,
218
+ aa as Snackbar,
219
+ Ur as Spinner,
220
+ Kr as Stepper,
221
+ Qr as Switch,
222
+ M as TOAST_DURATIONS,
223
+ jr as Table,
224
+ qr as TableBody,
225
+ zr as TableCaption,
226
+ Jr as TableCell,
227
+ Wr as TableFooter,
228
+ Xr as TableHead,
229
+ Yr as TableHeader,
230
+ Zr as TableRow,
231
+ et as TableSortHeader,
232
+ rt as Tabs,
233
+ tt as TabsContent,
234
+ at as TabsList,
235
+ nt as TabsTrigger,
236
+ ma as TagInput,
237
+ pt as Textarea,
238
+ ia as Timeline,
239
+ la as TimelineDescription,
240
+ xa as TimelineItem,
241
+ ua as TimelineTime,
242
+ da as TimelineTitle,
243
+ lt as Toast,
244
+ xt as ToastAction,
245
+ ut as ToastClose,
246
+ dt as ToastDescription,
247
+ ft as ToastProvider,
248
+ st as ToastTitle,
249
+ Ct as ToastViewport,
250
+ Tt as Toaster,
251
+ ct as Tooltip,
252
+ Dt as TooltipContent,
253
+ gt as TooltipProvider,
254
+ bt as TooltipRoot,
255
+ Mt as TooltipTrigger,
256
+ Pt as TopNav,
257
+ ht as TopNavLink,
258
+ sa as Tree,
259
+ Et as abbreviateNumber,
260
+ Qe as brandPresets,
261
+ n as cn,
262
+ Ta as cva,
263
+ Ut as defaultChartLabels,
264
+ Vo as defaultPaginationLabels,
265
+ p as defaultStrings,
266
+ d as formatDate,
267
+ f as formatMNT,
268
+ s as formatNumber,
269
+ C as formatPhone,
270
+ i as formatString,
271
+ T as getDateTimeFormat,
272
+ v as isApplePlatform,
273
+ x as mnStrings,
274
+ _t as niceTicks,
275
+ Qo as paginationLabelsFromStrings,
276
+ S as parsePhoneMN,
277
+ w as toast,
278
+ ge as useCommandPaletteShortcut,
279
+ G as useDebounce,
280
+ y as useDebouncedCallback,
281
+ R as useDelayedLoading,
282
+ I as useFieldIds,
283
+ ko as useFormField,
284
+ D as useMediaQuery,
285
+ A as useModifierKey,
286
+ g as usePrefersReducedMotion,
287
+ yr as useSidebar,
288
+ H as useStrings,
289
+ P as useToast
4532
290
  };
4533
291
  //# sourceMappingURL=index.js.map