@viglet/viglet-design-system 2026.3.2 → 2026.3.4

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