@viglet/viglet-design-system 2026.3.2 → 2026.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (177) hide show
  1. package/README.md +277 -7
  2. package/dist/assets.cjs +1 -0
  3. package/dist/assets.es.js +2 -0
  4. package/dist/badge-locale-BxI9TwkE.js +579 -0
  5. package/dist/badge-locale-sIsBdP_e.cjs +7 -0
  6. package/dist/bento/bento-actions-menu.d.ts +42 -0
  7. package/dist/bento/bento-actions-menu.d.ts.map +1 -0
  8. package/dist/bento/bento-back-to-top.d.ts +11 -0
  9. package/dist/bento/bento-back-to-top.d.ts.map +1 -0
  10. package/dist/bento/bento-command-palette.d.ts +28 -0
  11. package/dist/bento/bento-command-palette.d.ts.map +1 -0
  12. package/dist/bento/bento-count-tile.d.ts +18 -0
  13. package/dist/bento/bento-count-tile.d.ts.map +1 -0
  14. package/dist/bento/bento-empty-state.d.ts +35 -0
  15. package/dist/bento/bento-empty-state.d.ts.map +1 -0
  16. package/dist/bento/bento-entity-shell.d.ts +123 -0
  17. package/dist/bento/bento-entity-shell.d.ts.map +1 -0
  18. package/dist/bento/bento-entity-tile.d.ts +40 -0
  19. package/dist/bento/bento-entity-tile.d.ts.map +1 -0
  20. package/dist/bento/bento-form-hero.d.ts +91 -0
  21. package/dist/bento/bento-form-hero.d.ts.map +1 -0
  22. package/dist/bento/bento-form-section.d.ts +31 -0
  23. package/dist/bento/bento-form-section.d.ts.map +1 -0
  24. package/dist/bento/bento-hero-icon-picker.d.ts +35 -0
  25. package/dist/bento/bento-hero-icon-picker.d.ts.map +1 -0
  26. package/dist/bento/bento-hero.d.ts +62 -0
  27. package/dist/bento/bento-hero.d.ts.map +1 -0
  28. package/dist/bento/bento-inline-edit.d.ts +52 -0
  29. package/dist/bento/bento-inline-edit.d.ts.map +1 -0
  30. package/dist/bento/bento-layout.d.ts +52 -0
  31. package/dist/bento/bento-layout.d.ts.map +1 -0
  32. package/dist/bento/bento-list-page.d.ts +124 -0
  33. package/dist/bento/bento-list-page.d.ts.map +1 -0
  34. package/dist/bento/bento-nav-rail.d.ts +32 -0
  35. package/dist/bento/bento-nav-rail.d.ts.map +1 -0
  36. package/dist/bento/bento-nav.d.ts +69 -0
  37. package/dist/bento/bento-nav.d.ts.map +1 -0
  38. package/dist/bento/bento-save-bar.d.ts +36 -0
  39. package/dist/bento/bento-save-bar.d.ts.map +1 -0
  40. package/dist/bento/bento-scroll-fade.d.ts +20 -0
  41. package/dist/bento/bento-scroll-fade.d.ts.map +1 -0
  42. package/dist/bento/bento-scroll-save-bar.d.ts +22 -0
  43. package/dist/bento/bento-scroll-save-bar.d.ts.map +1 -0
  44. package/dist/bento/bento-section-chrome.d.ts +60 -0
  45. package/dist/bento/bento-section-chrome.d.ts.map +1 -0
  46. package/dist/bento/bento-section.d.ts +27 -0
  47. package/dist/bento/bento-section.d.ts.map +1 -0
  48. package/dist/bento/bento-shortcuts-dialog.d.ts +15 -0
  49. package/dist/bento/bento-shortcuts-dialog.d.ts.map +1 -0
  50. package/dist/bento/bento-status-marker.d.ts +26 -0
  51. package/dist/bento/bento-status-marker.d.ts.map +1 -0
  52. package/dist/bento/bento-tile.d.ts +42 -0
  53. package/dist/bento/bento-tile.d.ts.map +1 -0
  54. package/dist/bento/bento-tones.d.ts +33 -0
  55. package/dist/bento/bento-tones.d.ts.map +1 -0
  56. package/dist/bento/bento-user-menu.d.ts +31 -0
  57. package/dist/bento/bento-user-menu.d.ts.map +1 -0
  58. package/dist/bento/index.d.ts +59 -0
  59. package/dist/bento/index.d.ts.map +1 -0
  60. package/dist/bento.cjs +1 -0
  61. package/dist/bento.css +442 -0
  62. package/dist/bento.es.js +1501 -0
  63. package/dist/breadcrumb.context-CTnZ4rD0.cjs +1 -0
  64. package/dist/breadcrumb.context-h2A2IEJ_.js +928 -0
  65. package/dist/components/badge-locale.d.ts.map +1 -1
  66. package/dist/components/error-boundary.d.ts.map +1 -1
  67. package/dist/components/language-select.d.ts.map +1 -1
  68. package/dist/components/router/blank-slate.d.ts +10 -0
  69. package/dist/components/router/blank-slate.d.ts.map +1 -1
  70. package/dist/components/router/grid.list.d.ts +13 -0
  71. package/dist/components/router/grid.list.d.ts.map +1 -1
  72. package/dist/components/router/internal.sidebar.d.ts +27 -2
  73. package/dist/components/router/internal.sidebar.d.ts.map +1 -1
  74. package/dist/components/router/loading-provider.d.ts +6 -1
  75. package/dist/components/router/loading-provider.d.ts.map +1 -1
  76. package/dist/components/router/nav-main.d.ts +10 -0
  77. package/dist/components/router/nav-main.d.ts.map +1 -1
  78. package/dist/components/router/nav-user.d.ts +13 -0
  79. package/dist/components/router/nav-user.d.ts.map +1 -1
  80. package/dist/components/router/page-content.d.ts +10 -0
  81. package/dist/components/router/page-content.d.ts.map +1 -1
  82. package/dist/components/router/page-header.d.ts +13 -0
  83. package/dist/components/router/page-header.d.ts.map +1 -1
  84. package/dist/components/router/page.d.ts +13 -0
  85. package/dist/components/router/page.d.ts.map +1 -1
  86. package/dist/components/router/sticky.page.header.d.ts +14 -0
  87. package/dist/components/router/sticky.page.header.d.ts.map +1 -1
  88. package/dist/components/router/sub.page.d.ts +15 -11
  89. package/dist/components/router/sub.page.d.ts.map +1 -1
  90. package/dist/components/router/sub.page.header.d.ts +13 -0
  91. package/dist/components/router/sub.page.header.d.ts.map +1 -1
  92. package/dist/components/startup-first/startup-first.d.ts.map +1 -1
  93. package/dist/components/ui/floating-formulas-bg.d.ts +8 -1
  94. package/dist/components/ui/floating-formulas-bg.d.ts.map +1 -1
  95. package/dist/components/ui/form.d.ts +2 -2
  96. package/dist/components/ui/form.d.ts.map +1 -1
  97. package/dist/components/ui/gradient-button.d.ts.map +1 -1
  98. package/dist/components/ui/gradient-switch.d.ts.map +1 -1
  99. package/dist/components/ui/icon-picker-dialog.d.ts +35 -0
  100. package/dist/components/ui/icon-picker-dialog.d.ts.map +1 -0
  101. package/dist/components/ui/index.d.ts +1 -0
  102. package/dist/components/ui/index.d.ts.map +1 -1
  103. package/dist/components/ui/section-card.d.ts +3 -3
  104. package/dist/components/ui/section-card.d.ts.map +1 -1
  105. package/dist/components/ui/sidebar.d.ts.map +1 -1
  106. package/dist/components/ui/slider.d.ts +1 -1
  107. package/dist/components/ui/slider.d.ts.map +1 -1
  108. package/dist/contexts/user.context.d.ts +24 -0
  109. package/dist/contexts/user.context.d.ts.map +1 -1
  110. package/dist/exports.json +404 -0
  111. package/dist/floating-formulas-bg.cjs +1 -0
  112. package/dist/floating-formulas-bg.css +21 -0
  113. package/dist/floating-formulas-bg.es.js +83 -56
  114. package/dist/fonts/inter-cyrillic-ext-wght-normal.woff2 +0 -0
  115. package/dist/fonts/inter-cyrillic-wght-normal.woff2 +0 -0
  116. package/dist/fonts/inter-greek-ext-wght-normal.woff2 +0 -0
  117. package/dist/fonts/inter-greek-wght-normal.woff2 +0 -0
  118. package/dist/fonts/inter-latin-ext-wght-normal.woff2 +0 -0
  119. package/dist/fonts/inter-latin-wght-normal.woff2 +0 -0
  120. package/dist/fonts/inter-vietnamese-wght-normal.woff2 +0 -0
  121. package/dist/fonts/plus-jakarta-sans-cyrillic-ext-wght-normal.woff2 +0 -0
  122. package/dist/fonts/plus-jakarta-sans-latin-ext-wght-normal.woff2 +0 -0
  123. package/dist/fonts/plus-jakarta-sans-latin-wght-normal.woff2 +0 -0
  124. package/dist/fonts/plus-jakarta-sans-vietnamese-wght-normal.woff2 +0 -0
  125. package/dist/fonts.css +126 -0
  126. package/dist/hooks/use-grid-adapter.d.ts.map +1 -1
  127. package/dist/hooks/use-mobile.d.ts +10 -0
  128. package/dist/hooks/use-mobile.d.ts.map +1 -1
  129. package/dist/hooks/use-sub-page-breadcrumb.d.ts.map +1 -1
  130. package/dist/i18n/index.d.ts +136 -0
  131. package/dist/i18n/index.d.ts.map +1 -1
  132. package/dist/i18n/locales/en/bento.json.d.ts +51 -0
  133. package/dist/i18n/locales/en/common.json.d.ts +7 -1
  134. package/dist/i18n/locales/en/forms.json.d.ts +15 -1
  135. package/dist/i18n/locales/en/nav.json.d.ts +3 -1
  136. package/dist/i18n/locales/pt/bento.json.d.ts +51 -0
  137. package/dist/i18n/locales/pt/common.json.d.ts +7 -1
  138. package/dist/i18n/locales/pt/forms.json.d.ts +15 -1
  139. package/dist/i18n/locales/pt/nav.json.d.ts +3 -1
  140. package/dist/i18n-DoNdMLEd.cjs +1 -0
  141. package/dist/{i18n-C94rDRaM.js → i18n-DuNITbWa.js} +155 -27
  142. package/dist/{i18n.cjs.js → i18n.cjs} +1 -1
  143. package/dist/i18n.es.js +1 -1
  144. package/dist/index.cjs +1 -0
  145. package/dist/index.d.ts +0 -1
  146. package/dist/index.d.ts.map +1 -1
  147. package/dist/index.es.js +492 -750
  148. package/dist/lib/axios.d.ts.map +1 -1
  149. package/dist/lib/export-xlsx.d.ts +7 -1
  150. package/dist/lib/export-xlsx.d.ts.map +1 -1
  151. package/dist/lib/react-markers.d.ts +17 -0
  152. package/dist/lib/react-markers.d.ts.map +1 -0
  153. package/dist/lib/utils.d.ts +22 -0
  154. package/dist/lib/utils.d.ts.map +1 -1
  155. package/dist/loading-provider-1mgM91iY.cjs +1 -0
  156. package/dist/loading-provider-CMnOuvdR.js +224 -0
  157. package/dist/preset.css +103 -3
  158. package/dist/products-DL_YYXkV.cjs +1 -0
  159. package/dist/products-Du9KB6Xl.js +9 -0
  160. package/dist/{rolldown-runtime-CMqjfN_6.cjs → rolldown-runtime-BocRIvOZ.cjs} +1 -1
  161. package/dist/router.cjs +1 -0
  162. package/dist/router.es.js +358 -555
  163. package/dist/user.context-kPAqKN4o.js +512 -0
  164. package/dist/user.context-r50nSWER.cjs +1 -0
  165. package/dist/viglet-design-system.css +1 -1
  166. package/dist/vite/boot-loader.d.ts +14 -4
  167. package/dist/vite/boot-loader.d.ts.map +1 -1
  168. package/dist/{vite.cjs.js → vite.cjs} +8 -8
  169. package/dist/vite.es.js +29 -16
  170. package/package.json +66 -22
  171. package/scripts/check-duplicates.mjs +198 -0
  172. package/dist/breadcrumb.context-C7VCfh49.js +0 -1501
  173. package/dist/breadcrumb.context-Td6Tjc_z.cjs +0 -7
  174. package/dist/floating-formulas-bg.cjs.js +0 -1
  175. package/dist/i18n-DN_2YzjB.cjs +0 -1
  176. package/dist/index.cjs.js +0 -1
  177. package/dist/router.cjs.js +0 -1
@@ -0,0 +1,928 @@
1
+ import { B as e, E as t, H as n, U as r, V as i, a, c as o, f as s, g as c, i as l, l as u, m as d, o as f, s as p, u as m, z as h } from "./badge-locale-BxI9TwkE.js";
2
+ import * as g from "react";
3
+ import { createContext as _, useCallback as v, useContext as y, useEffect as ee, useMemo as te, useState as b } from "react";
4
+ import { jsx as x, jsxs as S } from "react/jsx-runtime";
5
+ import * as C from "@radix-ui/react-avatar";
6
+ import { Slot as w } from "@radix-ui/react-slot";
7
+ import { cva as ne } from "class-variance-authority";
8
+ import * as T from "@radix-ui/react-dialog";
9
+ import { useTranslation as E } from "react-i18next";
10
+ import * as D from "@radix-ui/react-select";
11
+ import * as re from "@radix-ui/react-separator";
12
+ var O = n("chevron-down", [["path", {
13
+ d: "m6 9 6 6 6-6",
14
+ key: "qrunsl"
15
+ }]]), ie = n("chevron-up", [["path", {
16
+ d: "m18 15-6-6-6 6",
17
+ key: "153udz"
18
+ }]]), k = n("ellipsis", [
19
+ ["circle", {
20
+ cx: "12",
21
+ cy: "12",
22
+ r: "1",
23
+ key: "41hilf"
24
+ }],
25
+ ["circle", {
26
+ cx: "19",
27
+ cy: "12",
28
+ r: "1",
29
+ key: "1wjl8i"
30
+ }],
31
+ ["circle", {
32
+ cx: "5",
33
+ cy: "12",
34
+ r: "1",
35
+ key: "1pcz8c"
36
+ }]
37
+ ]), ae = n("menu", [
38
+ ["path", {
39
+ d: "M4 5h16",
40
+ key: "1tepv9"
41
+ }],
42
+ ["path", {
43
+ d: "M4 12h16",
44
+ key: "1lakjw"
45
+ }],
46
+ ["path", {
47
+ d: "M4 19h16",
48
+ key: "1djgab"
49
+ }]
50
+ ]), oe = n("monitor", [
51
+ ["rect", {
52
+ width: "20",
53
+ height: "14",
54
+ x: "2",
55
+ y: "3",
56
+ rx: "2",
57
+ key: "48i651"
58
+ }],
59
+ ["line", {
60
+ x1: "8",
61
+ x2: "16",
62
+ y1: "21",
63
+ y2: "21",
64
+ key: "1svkeh"
65
+ }],
66
+ ["line", {
67
+ x1: "12",
68
+ x2: "12",
69
+ y1: "17",
70
+ y2: "21",
71
+ key: "vw1qmm"
72
+ }]
73
+ ]), A = n("moon", [["path", {
74
+ d: "M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",
75
+ key: "kfwtm"
76
+ }]]), se = n("panel-left", [["rect", {
77
+ width: "18",
78
+ height: "18",
79
+ x: "3",
80
+ y: "3",
81
+ rx: "2",
82
+ key: "afitv7"
83
+ }], ["path", {
84
+ d: "M9 3v18",
85
+ key: "fh3hqa"
86
+ }]]), j = n("sun", [
87
+ ["circle", {
88
+ cx: "12",
89
+ cy: "12",
90
+ r: "4",
91
+ key: "4exip2"
92
+ }],
93
+ ["path", {
94
+ d: "M12 2v2",
95
+ key: "tus03m"
96
+ }],
97
+ ["path", {
98
+ d: "M12 20v2",
99
+ key: "1lh1kg"
100
+ }],
101
+ ["path", {
102
+ d: "m4.93 4.93 1.41 1.41",
103
+ key: "149t6j"
104
+ }],
105
+ ["path", {
106
+ d: "m17.66 17.66 1.41 1.41",
107
+ key: "ptbguv"
108
+ }],
109
+ ["path", {
110
+ d: "M2 12h2",
111
+ key: "1t8f8n"
112
+ }],
113
+ ["path", {
114
+ d: "M20 12h2",
115
+ key: "1q8mjw"
116
+ }],
117
+ ["path", {
118
+ d: "m6.34 17.66-1.41 1.41",
119
+ key: "1m8zz5"
120
+ }],
121
+ ["path", {
122
+ d: "m19.07 4.93-1.41 1.41",
123
+ key: "1shlcs"
124
+ }]
125
+ ]);
126
+ //#endregion
127
+ //#region src/components/ui/avatar.tsx
128
+ function ce({ className: e, ...t }) {
129
+ return /* @__PURE__ */ x(C.Root, {
130
+ "data-slot": "avatar",
131
+ className: r("relative flex size-8 shrink-0 overflow-hidden rounded-full", e),
132
+ ...t
133
+ });
134
+ }
135
+ function le({ className: e, ...t }) {
136
+ return /* @__PURE__ */ x(C.Image, {
137
+ "data-slot": "avatar-image",
138
+ className: r("aspect-square size-full", e),
139
+ ...t
140
+ });
141
+ }
142
+ function ue({ className: e, ...t }) {
143
+ return /* @__PURE__ */ x(C.Fallback, {
144
+ "data-slot": "avatar-fallback",
145
+ className: r("bg-muted flex size-full items-center justify-center rounded-full", e),
146
+ ...t
147
+ });
148
+ }
149
+ //#endregion
150
+ //#region src/components/ui/breadcrumb.tsx
151
+ function de({ ...e }) {
152
+ return /* @__PURE__ */ x("nav", {
153
+ "aria-label": "breadcrumb",
154
+ "data-slot": "breadcrumb",
155
+ ...e
156
+ });
157
+ }
158
+ function fe({ className: e, ...t }) {
159
+ return /* @__PURE__ */ x("ol", {
160
+ "data-slot": "breadcrumb-list",
161
+ className: r("text-muted-foreground flex flex-wrap items-center gap-1.5 text-sm break-words sm:gap-2.5", e),
162
+ ...t
163
+ });
164
+ }
165
+ function pe({ className: e, ...t }) {
166
+ return /* @__PURE__ */ x("li", {
167
+ "data-slot": "breadcrumb-item",
168
+ className: r("inline-flex items-center gap-1.5", e),
169
+ ...t
170
+ });
171
+ }
172
+ function me({ asChild: e, className: t, ...n }) {
173
+ return /* @__PURE__ */ x(e ? w : "a", {
174
+ "data-slot": "breadcrumb-link",
175
+ className: r("hover:text-foreground transition-colors", t),
176
+ ...n
177
+ });
178
+ }
179
+ function he({ className: e, ...t }) {
180
+ return /* @__PURE__ */ x("span", {
181
+ "data-slot": "breadcrumb-page",
182
+ role: "link",
183
+ "aria-disabled": "true",
184
+ "aria-current": "page",
185
+ className: r("text-foreground font-normal", e),
186
+ ...t
187
+ });
188
+ }
189
+ function ge({ children: t, className: n, ...i }) {
190
+ return /* @__PURE__ */ x("li", {
191
+ "data-slot": "breadcrumb-separator",
192
+ role: "presentation",
193
+ "aria-hidden": "true",
194
+ className: r("[&>svg]:size-3.5", n),
195
+ ...i,
196
+ children: t ?? /* @__PURE__ */ x(e, {})
197
+ });
198
+ }
199
+ function _e({ className: e, ...t }) {
200
+ return /* @__PURE__ */ S("span", {
201
+ "data-slot": "breadcrumb-ellipsis",
202
+ role: "presentation",
203
+ "aria-hidden": "true",
204
+ className: r("flex size-9 items-center justify-center", e),
205
+ ...t,
206
+ children: [/* @__PURE__ */ x(k, { className: "size-4" }), /* @__PURE__ */ x("span", {
207
+ className: "sr-only",
208
+ children: "More"
209
+ })]
210
+ });
211
+ }
212
+ //#endregion
213
+ //#region src/components/ui/card.tsx
214
+ function ve({ className: e, ...t }) {
215
+ return /* @__PURE__ */ x("div", {
216
+ "data-slot": "card",
217
+ className: r("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm", e),
218
+ ...t
219
+ });
220
+ }
221
+ function M({ className: e, ...t }) {
222
+ return /* @__PURE__ */ x("div", {
223
+ "data-slot": "card-header",
224
+ className: r("@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6", e),
225
+ ...t
226
+ });
227
+ }
228
+ function N({ className: e, ...t }) {
229
+ return /* @__PURE__ */ x("div", {
230
+ "data-slot": "card-title",
231
+ className: r("leading-none font-semibold", e),
232
+ ...t
233
+ });
234
+ }
235
+ function P({ className: e, ...t }) {
236
+ return /* @__PURE__ */ x("div", {
237
+ "data-slot": "card-description",
238
+ className: r("text-muted-foreground text-sm", e),
239
+ ...t
240
+ });
241
+ }
242
+ function F({ className: e, ...t }) {
243
+ return /* @__PURE__ */ x("div", {
244
+ "data-slot": "card-action",
245
+ className: r("col-start-2 row-span-2 row-start-1 self-start justify-self-end", e),
246
+ ...t
247
+ });
248
+ }
249
+ function ye({ className: e, ...t }) {
250
+ return /* @__PURE__ */ x("div", {
251
+ "data-slot": "card-content",
252
+ className: r("px-6", e),
253
+ ...t
254
+ });
255
+ }
256
+ function be({ className: e, ...t }) {
257
+ return /* @__PURE__ */ x("div", {
258
+ "data-slot": "card-footer",
259
+ className: r("flex items-center px-6 [.border-t]:pt-6", e),
260
+ ...t
261
+ });
262
+ }
263
+ //#endregion
264
+ //#region src/components/ui/select.tsx
265
+ function xe({ ...e }) {
266
+ return /* @__PURE__ */ x(D.Root, {
267
+ "data-slot": "select",
268
+ ...e
269
+ });
270
+ }
271
+ function Se({ ...e }) {
272
+ return /* @__PURE__ */ x(D.Group, {
273
+ "data-slot": "select-group",
274
+ ...e
275
+ });
276
+ }
277
+ function Ce({ ...e }) {
278
+ return /* @__PURE__ */ x(D.Value, {
279
+ "data-slot": "select-value",
280
+ ...e
281
+ });
282
+ }
283
+ function we({ className: e, size: t = "default", children: n, ...i }) {
284
+ return /* @__PURE__ */ S(D.Trigger, {
285
+ "data-slot": "select-trigger",
286
+ "data-size": t,
287
+ className: r("border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", e),
288
+ ...i,
289
+ children: [n, /* @__PURE__ */ x(D.Icon, {
290
+ asChild: !0,
291
+ children: /* @__PURE__ */ x(O, { className: "size-4 opacity-50" })
292
+ })]
293
+ });
294
+ }
295
+ function Te({ className: e, children: t, position: n = "popper", align: i = "center", ...a }) {
296
+ return /* @__PURE__ */ x(D.Portal, { children: /* @__PURE__ */ S(D.Content, {
297
+ "data-slot": "select-content",
298
+ className: r("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md", n === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1", e),
299
+ position: n,
300
+ align: i,
301
+ ...a,
302
+ children: [
303
+ /* @__PURE__ */ x(I, {}),
304
+ /* @__PURE__ */ x(D.Viewport, {
305
+ className: r("p-1", n === "popper" && "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"),
306
+ children: t
307
+ }),
308
+ /* @__PURE__ */ x(L, {})
309
+ ]
310
+ }) });
311
+ }
312
+ function Ee({ className: e, ...t }) {
313
+ return /* @__PURE__ */ x(D.Label, {
314
+ "data-slot": "select-label",
315
+ className: r("text-muted-foreground px-2 py-1.5 text-xs", e),
316
+ ...t
317
+ });
318
+ }
319
+ function De({ className: e, children: t, ...n }) {
320
+ return /* @__PURE__ */ S(D.Item, {
321
+ "data-slot": "select-item",
322
+ className: r("focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2", e),
323
+ ...n,
324
+ children: [/* @__PURE__ */ x("span", {
325
+ className: "absolute right-2 flex size-3.5 items-center justify-center",
326
+ children: /* @__PURE__ */ x(D.ItemIndicator, { children: /* @__PURE__ */ x(i, { className: "size-4" }) })
327
+ }), /* @__PURE__ */ x(D.ItemText, { children: t })]
328
+ });
329
+ }
330
+ function Oe({ className: e, ...t }) {
331
+ return /* @__PURE__ */ x(D.Separator, {
332
+ "data-slot": "select-separator",
333
+ className: r("bg-border pointer-events-none -mx-1 my-1 h-px", e),
334
+ ...t
335
+ });
336
+ }
337
+ function I({ className: e, ...t }) {
338
+ return /* @__PURE__ */ x(D.ScrollUpButton, {
339
+ "data-slot": "select-scroll-up-button",
340
+ className: r("flex cursor-default items-center justify-center py-1", e),
341
+ ...t,
342
+ children: /* @__PURE__ */ x(ie, { className: "size-4" })
343
+ });
344
+ }
345
+ function L({ className: e, ...t }) {
346
+ return /* @__PURE__ */ x(D.ScrollDownButton, {
347
+ "data-slot": "select-scroll-down-button",
348
+ className: r("flex cursor-default items-center justify-center py-1", e),
349
+ ...t,
350
+ children: /* @__PURE__ */ x(O, { className: "size-4" })
351
+ });
352
+ }
353
+ //#endregion
354
+ //#region src/components/ui/separator.tsx
355
+ function R({ className: e, orientation: t = "horizontal", decorative: n = !0, ...i }) {
356
+ return /* @__PURE__ */ x(re.Root, {
357
+ "data-slot": "separator",
358
+ decorative: n,
359
+ orientation: t,
360
+ className: r("bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px", e),
361
+ ...i
362
+ });
363
+ }
364
+ //#endregion
365
+ //#region src/components/ui/sheet.tsx
366
+ function z({ ...e }) {
367
+ return /* @__PURE__ */ x(T.Root, {
368
+ "data-slot": "sheet",
369
+ ...e
370
+ });
371
+ }
372
+ function ke({ ...e }) {
373
+ return /* @__PURE__ */ x(T.Trigger, {
374
+ "data-slot": "sheet-trigger",
375
+ ...e
376
+ });
377
+ }
378
+ function Ae({ ...e }) {
379
+ return /* @__PURE__ */ x(T.Close, {
380
+ "data-slot": "sheet-close",
381
+ ...e
382
+ });
383
+ }
384
+ function je({ ...e }) {
385
+ return /* @__PURE__ */ x(T.Portal, {
386
+ "data-slot": "sheet-portal",
387
+ ...e
388
+ });
389
+ }
390
+ function Me({ className: e, ...t }) {
391
+ return /* @__PURE__ */ x(T.Overlay, {
392
+ "data-slot": "sheet-overlay",
393
+ className: r("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50", e),
394
+ ...t
395
+ });
396
+ }
397
+ function B({ className: e, children: t, side: n = "right", ...i }) {
398
+ return /* @__PURE__ */ S(je, { children: [/* @__PURE__ */ x(Me, {}), /* @__PURE__ */ S(T.Content, {
399
+ "data-slot": "sheet-content",
400
+ className: r("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out fixed z-50 flex flex-col gap-4 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500", n === "right" && "data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm", n === "left" && "data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm", n === "top" && "data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 h-auto border-b", n === "bottom" && "data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto border-t", e),
401
+ ...i,
402
+ children: [t, /* @__PURE__ */ S(T.Close, {
403
+ className: "ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none",
404
+ children: [/* @__PURE__ */ x(h, { className: "size-4" }), /* @__PURE__ */ x("span", {
405
+ className: "sr-only",
406
+ children: "Close"
407
+ })]
408
+ })]
409
+ })] });
410
+ }
411
+ function V({ className: e, ...t }) {
412
+ return /* @__PURE__ */ x("div", {
413
+ "data-slot": "sheet-header",
414
+ className: r("flex flex-col gap-1.5 p-4", e),
415
+ ...t
416
+ });
417
+ }
418
+ function Ne({ className: e, ...t }) {
419
+ return /* @__PURE__ */ x("div", {
420
+ "data-slot": "sheet-footer",
421
+ className: r("mt-auto flex flex-col gap-2 p-4", e),
422
+ ...t
423
+ });
424
+ }
425
+ function H({ className: e, ...t }) {
426
+ return /* @__PURE__ */ x(T.Title, {
427
+ "data-slot": "sheet-title",
428
+ className: r("text-foreground font-semibold", e),
429
+ ...t
430
+ });
431
+ }
432
+ function U({ className: e, ...t }) {
433
+ return /* @__PURE__ */ x(T.Description, {
434
+ "data-slot": "sheet-description",
435
+ className: r("text-muted-foreground text-sm", e),
436
+ ...t
437
+ });
438
+ }
439
+ //#endregion
440
+ //#region src/hooks/use-mobile.ts
441
+ var Pe = "(max-width: 767px)";
442
+ function W() {
443
+ return window.matchMedia(Pe);
444
+ }
445
+ function Fe(e) {
446
+ let t = W();
447
+ return t.addEventListener("change", e), () => t.removeEventListener("change", e);
448
+ }
449
+ function G() {
450
+ return g.useSyncExternalStore(Fe, () => W().matches, () => !1);
451
+ }
452
+ //#endregion
453
+ //#region src/components/ui/sidebar.tsx
454
+ var Ie = "sidebar_state", Le = 604800, Re = "16rem", ze = "18rem", Be = "3rem", Ve = "b", K = g.createContext(null);
455
+ function q() {
456
+ let e = g.useContext(K);
457
+ if (!e) throw Error("useSidebar must be used within a SidebarProvider.");
458
+ return e;
459
+ }
460
+ function J() {
461
+ return g.useContext(K);
462
+ }
463
+ function He({ defaultOpen: e = !0, open: t, onOpenChange: n, className: i, style: a, children: o, ...s }) {
464
+ let c = G(), [l, u] = g.useState(!1), [d, p] = g.useState(e), m = t ?? d, h = g.useCallback((e) => {
465
+ let t = typeof e == "function" ? e(m) : e;
466
+ n ? n(t) : p(t), document.cookie = `${Ie}=${t}; path=/; max-age=${Le}`;
467
+ }, [n, m]), _ = g.useCallback(() => c ? u((e) => !e) : h((e) => !e), [
468
+ c,
469
+ h,
470
+ u
471
+ ]);
472
+ g.useEffect(() => {
473
+ let e = (e) => {
474
+ e.key === Ve && (e.metaKey || e.ctrlKey) && (e.preventDefault(), _());
475
+ };
476
+ return globalThis.addEventListener("keydown", e), () => globalThis.removeEventListener("keydown", e);
477
+ }, [_]);
478
+ let v = m ? "expanded" : "collapsed", y = g.useMemo(() => ({
479
+ state: v,
480
+ open: m,
481
+ setOpen: h,
482
+ isMobile: c,
483
+ openMobile: l,
484
+ setOpenMobile: u,
485
+ toggleSidebar: _
486
+ }), [
487
+ v,
488
+ m,
489
+ h,
490
+ c,
491
+ l,
492
+ u,
493
+ _
494
+ ]);
495
+ return /* @__PURE__ */ x(K.Provider, {
496
+ value: y,
497
+ children: /* @__PURE__ */ x(f, {
498
+ delayDuration: 0,
499
+ children: /* @__PURE__ */ x("div", {
500
+ "data-slot": "sidebar-wrapper",
501
+ style: {
502
+ "--sidebar-width": Re,
503
+ "--sidebar-width-icon": Be,
504
+ ...a
505
+ },
506
+ className: r("group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full", i),
507
+ ...s,
508
+ children: o
509
+ })
510
+ })
511
+ });
512
+ }
513
+ function Ue({ side: e = "left", variant: t = "sidebar", collapsible: n = "offcanvas", position: i = "fixed", className: a, children: o, ...s }) {
514
+ let { isMobile: c, state: l, openMobile: u, setOpenMobile: d } = q();
515
+ return n === "none" ? /* @__PURE__ */ x("div", {
516
+ "data-slot": "sidebar",
517
+ className: r("bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col", a),
518
+ ...s,
519
+ children: o
520
+ }) : c ? /* @__PURE__ */ x(z, {
521
+ open: u,
522
+ onOpenChange: d,
523
+ ...s,
524
+ children: /* @__PURE__ */ S(B, {
525
+ "data-sidebar": "sidebar",
526
+ "data-slot": "sidebar",
527
+ "data-mobile": "true",
528
+ className: "bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden",
529
+ style: { "--sidebar-width": ze },
530
+ side: e,
531
+ children: [/* @__PURE__ */ S(V, {
532
+ className: "sr-only",
533
+ children: [/* @__PURE__ */ x(H, { children: "Sidebar" }), /* @__PURE__ */ x(U, { children: "Displays the mobile sidebar." })]
534
+ }), /* @__PURE__ */ x("div", {
535
+ className: "flex h-full w-full flex-col",
536
+ children: o
537
+ })]
538
+ })
539
+ }) : /* @__PURE__ */ S("div", {
540
+ className: r("group peer text-sidebar-foreground hidden md:block", i === "absolute" && "relative"),
541
+ "data-state": l,
542
+ "data-collapsible": l === "collapsed" ? n : "",
543
+ "data-variant": t,
544
+ "data-side": e,
545
+ "data-slot": "sidebar",
546
+ children: [/* @__PURE__ */ x("div", {
547
+ "data-slot": "sidebar-gap",
548
+ className: r("relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear", "group-data-[collapsible=offcanvas]:w-0", "group-data-[side=right]:rotate-180", t === "floating" || t === "inset" ? "group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]" : "group-data-[collapsible=icon]:w-(--sidebar-width-icon)")
549
+ }), /* @__PURE__ */ x("div", {
550
+ "data-slot": "sidebar-container",
551
+ className: r("inset-y-0 z-10 hidden w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex", i === "absolute" ? "h-full" : "h-svh", i === "absolute" ? "absolute" : "fixed", e === "left" ? "left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]" : "right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]", t === "floating" || t === "inset" ? "p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]" : "group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l", a),
552
+ ...s,
553
+ children: /* @__PURE__ */ x("div", {
554
+ "data-sidebar": "sidebar",
555
+ "data-slot": "sidebar-inner",
556
+ className: "bg-sidebar group-data-[variant=floating]:border-sidebar-border flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow-sm",
557
+ children: o
558
+ })
559
+ })]
560
+ });
561
+ }
562
+ function We({ className: e, onClick: t, ...n }) {
563
+ let i = J();
564
+ if (!i) return null;
565
+ let { toggleSidebar: a, isMobile: o } = i;
566
+ return /* @__PURE__ */ S(m, {
567
+ "data-sidebar": "trigger",
568
+ "data-slot": "sidebar-trigger",
569
+ variant: "ghost",
570
+ size: "icon",
571
+ className: r("size-7", e),
572
+ onClick: (e) => {
573
+ t?.(e), a();
574
+ },
575
+ ...n,
576
+ children: [x(o ? ae : se, {}), /* @__PURE__ */ x("span", {
577
+ className: "sr-only",
578
+ children: "Toggle Sidebar"
579
+ })]
580
+ });
581
+ }
582
+ function Ge({ className: e, ...t }) {
583
+ let { toggleSidebar: n } = q();
584
+ return /* @__PURE__ */ x("button", {
585
+ "data-sidebar": "rail",
586
+ "data-slot": "sidebar-rail",
587
+ "aria-label": "Toggle Sidebar",
588
+ tabIndex: -1,
589
+ onClick: n,
590
+ title: "Toggle Sidebar",
591
+ className: r("hover:after:bg-sidebar-border absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] sm:flex", "in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize", "[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize", "hover:group-data-[collapsible=offcanvas]:bg-sidebar group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full", "[[data-side=left][data-collapsible=offcanvas]_&]:-right-2", "[[data-side=right][data-collapsible=offcanvas]_&]:-left-2", e),
592
+ ...t
593
+ });
594
+ }
595
+ function Ke({ className: e, ...t }) {
596
+ return /* @__PURE__ */ x("main", {
597
+ "data-slot": "sidebar-inset",
598
+ className: r("bg-background relative flex w-full flex-1 flex-col", "md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2", e),
599
+ ...t
600
+ });
601
+ }
602
+ function qe({ className: e, ...t }) {
603
+ return /* @__PURE__ */ x(u, {
604
+ "data-slot": "sidebar-input",
605
+ "data-sidebar": "input",
606
+ className: r("bg-background h-8 w-full shadow-none", e),
607
+ ...t
608
+ });
609
+ }
610
+ function Je({ className: e, ...t }) {
611
+ return /* @__PURE__ */ x("div", {
612
+ "data-slot": "sidebar-header",
613
+ "data-sidebar": "header",
614
+ className: r("flex flex-col gap-2 p-2", e),
615
+ ...t
616
+ });
617
+ }
618
+ function Ye({ className: e, ...t }) {
619
+ return /* @__PURE__ */ x("div", {
620
+ "data-slot": "sidebar-footer",
621
+ "data-sidebar": "footer",
622
+ className: r("flex flex-col gap-2 p-2", e),
623
+ ...t
624
+ });
625
+ }
626
+ function Xe({ className: e, ...t }) {
627
+ return /* @__PURE__ */ x(R, {
628
+ "data-slot": "sidebar-separator",
629
+ "data-sidebar": "separator",
630
+ className: r("bg-sidebar-border mx-2 w-auto", e),
631
+ ...t
632
+ });
633
+ }
634
+ function Ze({ className: e, ...t }) {
635
+ return /* @__PURE__ */ x("div", {
636
+ "data-slot": "sidebar-content",
637
+ "data-sidebar": "content",
638
+ className: r("flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden", e),
639
+ ...t
640
+ });
641
+ }
642
+ function Qe({ className: e, ...t }) {
643
+ return /* @__PURE__ */ x("div", {
644
+ "data-slot": "sidebar-group",
645
+ "data-sidebar": "group",
646
+ className: r("relative flex w-full min-w-0 flex-col p-2", e),
647
+ ...t
648
+ });
649
+ }
650
+ function $e({ className: e, asChild: t = !1, ...n }) {
651
+ return /* @__PURE__ */ x(t ? w : "div", {
652
+ "data-slot": "sidebar-group-label",
653
+ "data-sidebar": "group-label",
654
+ className: r("text-sidebar-foreground/70 ring-sidebar-ring flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium outline-hidden transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0", "group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0", e),
655
+ ...n
656
+ });
657
+ }
658
+ function et({ className: e, asChild: t = !1, ...n }) {
659
+ return /* @__PURE__ */ x(t ? w : "button", {
660
+ "data-slot": "sidebar-group-action",
661
+ "data-sidebar": "group-action",
662
+ className: r("text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground absolute top-3.5 right-3 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0", "after:absolute after:-inset-2 md:after:hidden", "group-data-[collapsible=icon]:hidden", e),
663
+ ...n
664
+ });
665
+ }
666
+ function tt({ className: e, ...t }) {
667
+ return /* @__PURE__ */ x("div", {
668
+ "data-slot": "sidebar-group-content",
669
+ "data-sidebar": "group-content",
670
+ className: r("w-full text-sm", e),
671
+ ...t
672
+ });
673
+ }
674
+ function nt({ className: e, ...t }) {
675
+ return /* @__PURE__ */ x("ul", {
676
+ "data-slot": "sidebar-menu",
677
+ "data-sidebar": "menu",
678
+ className: r("flex w-full min-w-0 flex-col gap-1", e),
679
+ ...t
680
+ });
681
+ }
682
+ function rt({ className: e, ...t }) {
683
+ return /* @__PURE__ */ x("li", {
684
+ "data-slot": "sidebar-menu-item",
685
+ "data-sidebar": "menu-item",
686
+ className: r("group/menu-item relative", e),
687
+ ...t
688
+ });
689
+ }
690
+ var it = ne("peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0", {
691
+ variants: {
692
+ variant: {
693
+ default: "hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
694
+ outline: "bg-background shadow-[0_0_0_1px_var(--vg-sidebar-border)] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_var(--vg-sidebar-accent)]"
695
+ },
696
+ size: {
697
+ default: "h-8 text-sm",
698
+ sm: "h-7 text-xs",
699
+ lg: "h-12 text-sm group-data-[collapsible=icon]:p-0!"
700
+ }
701
+ },
702
+ defaultVariants: {
703
+ variant: "default",
704
+ size: "default"
705
+ }
706
+ });
707
+ function at({ asChild: e = !1, isActive: t = !1, variant: n = "default", size: i = "default", tooltip: o, className: s, ...c }) {
708
+ let u = e ? w : "button", { isMobile: d, state: f } = q(), m = /* @__PURE__ */ x(u, {
709
+ "data-slot": "sidebar-menu-button",
710
+ "data-sidebar": "menu-button",
711
+ "data-size": i,
712
+ "data-active": t,
713
+ className: r(it({
714
+ variant: n,
715
+ size: i
716
+ }), s),
717
+ ...c
718
+ });
719
+ return o ? (typeof o == "string" && (o = { children: o }), /* @__PURE__ */ S(l, { children: [/* @__PURE__ */ x(p, {
720
+ asChild: !0,
721
+ children: m
722
+ }), /* @__PURE__ */ x(a, {
723
+ side: "right",
724
+ align: "center",
725
+ hidden: f !== "collapsed" || d,
726
+ ...o
727
+ })] })) : m;
728
+ }
729
+ function Y({ className: e, asChild: t = !1, showOnHover: n = !1, ...i }) {
730
+ return /* @__PURE__ */ x(t ? w : "button", {
731
+ "data-slot": "sidebar-menu-action",
732
+ "data-sidebar": "menu-action",
733
+ className: r("text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground absolute top-1.5 right-1 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0", "after:absolute after:-inset-2 md:after:hidden", "peer-data-[size=sm]/menu-button:top-1", "peer-data-[size=default]/menu-button:top-1.5", "peer-data-[size=lg]/menu-button:top-2.5", "group-data-[collapsible=icon]:hidden", n && "peer-data-[active=true]/menu-button:text-sidebar-accent-foreground group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 md:opacity-0", e),
734
+ ...i
735
+ });
736
+ }
737
+ function ot({ className: e, ...t }) {
738
+ return /* @__PURE__ */ x("div", {
739
+ "data-slot": "sidebar-menu-badge",
740
+ "data-sidebar": "menu-badge",
741
+ className: r("text-sidebar-foreground pointer-events-none absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums select-none", "peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground", "peer-data-[size=sm]/menu-button:top-1", "peer-data-[size=default]/menu-button:top-1.5", "peer-data-[size=lg]/menu-button:top-2.5", "group-data-[collapsible=icon]:hidden", e),
742
+ ...t
743
+ });
744
+ }
745
+ function st(e) {
746
+ let t = 0;
747
+ for (let n = 0; n < e.length; n++) t = t * 31 + e.charCodeAt(n) | 0;
748
+ return Math.abs(t);
749
+ }
750
+ function ct({ className: e, showIcon: t = !1, ...n }) {
751
+ let i = `${50 + st(g.useId()) % 40}%`;
752
+ return /* @__PURE__ */ S("div", {
753
+ "data-slot": "sidebar-menu-skeleton",
754
+ "data-sidebar": "menu-skeleton",
755
+ className: r("flex h-8 items-center gap-2 rounded-md px-2", e),
756
+ ...n,
757
+ children: [t && /* @__PURE__ */ x(o, {
758
+ className: "size-4 rounded-md",
759
+ "data-sidebar": "menu-skeleton-icon"
760
+ }), /* @__PURE__ */ x(o, {
761
+ className: "h-4 max-w-(--skeleton-width) flex-1",
762
+ "data-sidebar": "menu-skeleton-text",
763
+ style: { "--skeleton-width": i }
764
+ })]
765
+ });
766
+ }
767
+ function lt({ className: e, ...t }) {
768
+ return /* @__PURE__ */ x("ul", {
769
+ "data-slot": "sidebar-menu-sub",
770
+ "data-sidebar": "menu-sub",
771
+ className: r("border-sidebar-border mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l px-2.5 py-0.5", "group-data-[collapsible=icon]:hidden", e),
772
+ ...t
773
+ });
774
+ }
775
+ function ut({ className: e, ...t }) {
776
+ return /* @__PURE__ */ x("li", {
777
+ "data-slot": "sidebar-menu-sub-item",
778
+ "data-sidebar": "menu-sub-item",
779
+ className: r("group/menu-sub-item relative", e),
780
+ ...t
781
+ });
782
+ }
783
+ function dt({ asChild: e = !1, size: t = "md", isActive: n = !1, className: i, ...a }) {
784
+ return /* @__PURE__ */ x(e ? w : "a", {
785
+ "data-slot": "sidebar-menu-sub-button",
786
+ "data-sidebar": "menu-sub-button",
787
+ "data-size": t,
788
+ "data-active": n,
789
+ className: r("text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground [&>svg]:text-sidebar-accent-foreground flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 outline-hidden focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0", "data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground", t === "sm" && "text-xs", t === "md" && "text-sm", "group-data-[collapsible=icon]:hidden", i),
790
+ ...a
791
+ });
792
+ }
793
+ //#endregion
794
+ //#region src/components/theme-provider.tsx
795
+ var X = _({
796
+ theme: "system",
797
+ setTheme: () => null
798
+ });
799
+ function ft({ children: e, defaultTheme: t = "system", storageKey: n = "vite-ui-theme", ...r }) {
800
+ let [i, a] = b(() => localStorage.getItem(n) || t);
801
+ ee(() => {
802
+ let e = window.document.documentElement;
803
+ if (e.classList.remove("light", "dark"), i === "system") {
804
+ let t = window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
805
+ e.classList.add(t);
806
+ return;
807
+ }
808
+ e.classList.add(i);
809
+ }, [i]);
810
+ let o = {
811
+ theme: i,
812
+ setTheme: (e) => {
813
+ localStorage.setItem(n, e), a(e);
814
+ }
815
+ };
816
+ return /* @__PURE__ */ x(X.Provider, {
817
+ ...r,
818
+ value: o,
819
+ children: e
820
+ });
821
+ }
822
+ var Z = () => {
823
+ let e = y(X);
824
+ if (e === void 0) throw Error("useTheme must be used within a ThemeProvider");
825
+ return e;
826
+ };
827
+ //#endregion
828
+ //#region src/components/mode-toggle.tsx
829
+ function pt() {
830
+ let { setTheme: e } = Z(), { t: n } = E();
831
+ return /* @__PURE__ */ S(s, { children: [/* @__PURE__ */ x(t, {
832
+ asChild: !0,
833
+ children: /* @__PURE__ */ S(m, {
834
+ variant: "outline",
835
+ size: "sm",
836
+ children: [
837
+ /* @__PURE__ */ x(j, { className: "h-[1.2rem] w-[1.2rem] scale-100 rotate-0 transition-all dark:scale-0 dark:-rotate-90" }),
838
+ /* @__PURE__ */ x(A, { className: "absolute h-[1.2rem] w-[1.2rem] scale-0 rotate-90 transition-all dark:scale-100 dark:rotate-0" }),
839
+ /* @__PURE__ */ x("span", {
840
+ className: "sr-only",
841
+ children: n("theme.toggle")
842
+ })
843
+ ]
844
+ })
845
+ }), /* @__PURE__ */ S(d, {
846
+ align: "end",
847
+ children: [
848
+ /* @__PURE__ */ x(c, {
849
+ onClick: () => e("light"),
850
+ children: n("theme.light")
851
+ }),
852
+ /* @__PURE__ */ x(c, {
853
+ onClick: () => e("dark"),
854
+ children: n("theme.dark")
855
+ }),
856
+ /* @__PURE__ */ x(c, {
857
+ onClick: () => e("system"),
858
+ children: n("theme.system")
859
+ })
860
+ ]
861
+ })] });
862
+ }
863
+ var Q = [
864
+ {
865
+ value: "light",
866
+ labelKey: "theme.light",
867
+ icon: j
868
+ },
869
+ {
870
+ value: "dark",
871
+ labelKey: "theme.dark",
872
+ icon: A
873
+ },
874
+ {
875
+ value: "system",
876
+ labelKey: "theme.system",
877
+ icon: oe
878
+ }
879
+ ];
880
+ function mt() {
881
+ let { theme: e, setTheme: t } = Z(), { t: n } = E(), r = Q.find((t) => t.value === e) ?? Q[2];
882
+ function i() {
883
+ let n = Q[(Q.findIndex((t) => t.value === e) + 1) % Q.length];
884
+ t(n.value);
885
+ }
886
+ let a = r.icon;
887
+ return /* @__PURE__ */ S("button", {
888
+ type: "button",
889
+ title: n("theme.toggle"),
890
+ onClick: i,
891
+ className: "md:hidden flex items-center gap-3 rounded-lg px-3 py-2 text-sm text-sidebar-foreground hover:bg-sidebar-accent transition-colors w-full",
892
+ children: [/* @__PURE__ */ x(a, { className: "size-4 shrink-0" }), /* @__PURE__ */ x("span", { children: n("theme.modeLabel", { mode: n(r.labelKey) }) })]
893
+ });
894
+ }
895
+ //#endregion
896
+ //#region src/contexts/breadcrumb.context.tsx
897
+ var $ = _(void 0);
898
+ function ht({ children: e }) {
899
+ let [t, n] = b([]), r = v((e) => {
900
+ n((t) => t.length > 0 && t[t.length - 1].label === e.label ? t : [...t, e]);
901
+ }, []), i = v(() => {
902
+ n((e) => e.slice(0, -1));
903
+ }, []), a = v((e = []) => {
904
+ n(e);
905
+ }, []), o = te(() => ({
906
+ items: t,
907
+ setItems: n,
908
+ pushItem: r,
909
+ popItem: i,
910
+ resetBreadcrumb: a
911
+ }), [
912
+ t,
913
+ r,
914
+ i,
915
+ a
916
+ ]);
917
+ return /* @__PURE__ */ x($.Provider, {
918
+ value: o,
919
+ children: e
920
+ });
921
+ }
922
+ var gt = () => {
923
+ let e = y($);
924
+ if (!e) throw Error("useBreadcrumb must be used within Provider");
925
+ return e;
926
+ }, _t = () => y($);
927
+ //#endregion
928
+ export { ve as $, We as A, H as B, ct as C, He as D, ut as E, Ae as F, Se as G, R as H, B as I, L as J, De as K, U as L, J as M, G as N, Ge as O, z as P, Ce as Q, Ne as R, rt as S, dt as T, xe as U, ke as V, Te as W, Oe as X, I as Y, we as Z, Ke as _, O as _t, mt as a, N as at, ot as b, Ue as c, pe as ct, Qe as d, he as dt, F as et, et as f, ge as ft, qe as g, k as gt, Je as h, le as ht, pt as i, M as it, q as j, Xe as k, Ze as l, me as lt, $e as m, ue as mt, gt as n, P as nt, ft as o, de as ot, tt as p, ce as pt, Ee as q, _t as r, be as rt, Z as s, _e as st, ht as t, ye as tt, Ye as u, fe as ut, nt as v, lt as w, at as x, Y as y, V as z };