@viglet/viglet-design-system 2026.2.57 → 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 (274) 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/app-footer.d.ts +1 -1
  66. package/dist/components/app-footer.d.ts.map +1 -1
  67. package/dist/components/app-switcher.d.ts +1 -1
  68. package/dist/components/app-switcher.d.ts.map +1 -1
  69. package/dist/components/backend-status.d.ts +2 -2
  70. package/dist/components/backend-status.d.ts.map +1 -1
  71. package/dist/components/badge-locale.d.ts.map +1 -1
  72. package/dist/components/error-boundary.d.ts.map +1 -1
  73. package/dist/components/language-select.d.ts +1 -1
  74. package/dist/components/language-select.d.ts.map +1 -1
  75. package/dist/components/language-switcher.d.ts +1 -1
  76. package/dist/components/language-switcher.d.ts.map +1 -1
  77. package/dist/components/login/login.d.ts +11 -11
  78. package/dist/components/login/login.d.ts.map +1 -1
  79. package/dist/components/mode-toggle.d.ts +2 -2
  80. package/dist/components/mode-toggle.d.ts.map +1 -1
  81. package/dist/components/nav-secondary.d.ts +1 -1
  82. package/dist/components/nav-secondary.d.ts.map +1 -1
  83. package/dist/components/router/blank-slate.d.ts +10 -0
  84. package/dist/components/router/blank-slate.d.ts.map +1 -1
  85. package/dist/components/router/gradient-button-link.d.ts +1 -1
  86. package/dist/components/router/gradient-button-link.d.ts.map +1 -1
  87. package/dist/components/router/grid.list.d.ts +13 -0
  88. package/dist/components/router/grid.list.d.ts.map +1 -1
  89. package/dist/components/router/internal.sidebar.d.ts +27 -2
  90. package/dist/components/router/internal.sidebar.d.ts.map +1 -1
  91. package/dist/components/router/loading-provider.d.ts +7 -2
  92. package/dist/components/router/loading-provider.d.ts.map +1 -1
  93. package/dist/components/router/nav-main.d.ts +11 -1
  94. package/dist/components/router/nav-main.d.ts.map +1 -1
  95. package/dist/components/router/nav-user.d.ts +15 -1
  96. package/dist/components/router/nav-user.d.ts.map +1 -1
  97. package/dist/components/router/page-content.d.ts +10 -0
  98. package/dist/components/router/page-content.d.ts.map +1 -1
  99. package/dist/components/router/page-header.d.ts +13 -0
  100. package/dist/components/router/page-header.d.ts.map +1 -1
  101. package/dist/components/router/page.d.ts +13 -0
  102. package/dist/components/router/page.d.ts.map +1 -1
  103. package/dist/components/router/sticky.page.header.d.ts +14 -0
  104. package/dist/components/router/sticky.page.header.d.ts.map +1 -1
  105. package/dist/components/router/sub.page.d.ts +15 -11
  106. package/dist/components/router/sub.page.d.ts.map +1 -1
  107. package/dist/components/router/sub.page.header.d.ts +13 -0
  108. package/dist/components/router/sub.page.header.d.ts.map +1 -1
  109. package/dist/components/startup-first/startup-first.d.ts +11 -11
  110. package/dist/components/startup-first/startup-first.d.ts.map +1 -1
  111. package/dist/components/theme-provider.d.ts +1 -1
  112. package/dist/components/theme-provider.d.ts.map +1 -1
  113. package/dist/components/ui/avatar.d.ts +3 -3
  114. package/dist/components/ui/avatar.d.ts.map +1 -1
  115. package/dist/components/ui/badge.d.ts +1 -1
  116. package/dist/components/ui/badge.d.ts.map +1 -1
  117. package/dist/components/ui/breadcrumb.d.ts +7 -7
  118. package/dist/components/ui/breadcrumb.d.ts.map +1 -1
  119. package/dist/components/ui/button.d.ts +1 -1
  120. package/dist/components/ui/button.d.ts.map +1 -1
  121. package/dist/components/ui/card.d.ts +7 -7
  122. package/dist/components/ui/card.d.ts.map +1 -1
  123. package/dist/components/ui/checkbox.d.ts +1 -1
  124. package/dist/components/ui/checkbox.d.ts.map +1 -1
  125. package/dist/components/ui/dialog.d.ts +10 -10
  126. package/dist/components/ui/dialog.d.ts.map +1 -1
  127. package/dist/components/ui/drawer.d.ts +10 -10
  128. package/dist/components/ui/drawer.d.ts.map +1 -1
  129. package/dist/components/ui/dropdown-menu.d.ts +15 -15
  130. package/dist/components/ui/dropdown-menu.d.ts.map +1 -1
  131. package/dist/components/ui/floating-formulas-bg.d.ts +8 -1
  132. package/dist/components/ui/floating-formulas-bg.d.ts.map +1 -1
  133. package/dist/components/ui/form-actions.d.ts +4 -4
  134. package/dist/components/ui/form-actions.d.ts.map +1 -1
  135. package/dist/components/ui/form.d.ts +8 -8
  136. package/dist/components/ui/form.d.ts.map +1 -1
  137. package/dist/components/ui/glass-card.d.ts +1 -1
  138. package/dist/components/ui/glass-card.d.ts.map +1 -1
  139. package/dist/components/ui/gradient-button.d.ts +1 -1
  140. package/dist/components/ui/gradient-button.d.ts.map +1 -1
  141. package/dist/components/ui/gradient-switch.d.ts +1 -1
  142. package/dist/components/ui/gradient-switch.d.ts.map +1 -1
  143. package/dist/components/ui/icon-picker-dialog.d.ts +35 -0
  144. package/dist/components/ui/icon-picker-dialog.d.ts.map +1 -0
  145. package/dist/components/ui/index.d.ts +1 -0
  146. package/dist/components/ui/index.d.ts.map +1 -1
  147. package/dist/components/ui/input.d.ts +1 -1
  148. package/dist/components/ui/input.d.ts.map +1 -1
  149. package/dist/components/ui/label.d.ts +1 -1
  150. package/dist/components/ui/label.d.ts.map +1 -1
  151. package/dist/components/ui/navigation-menu.d.ts +8 -8
  152. package/dist/components/ui/navigation-menu.d.ts.map +1 -1
  153. package/dist/components/ui/pagination.d.ts +5 -5
  154. package/dist/components/ui/pagination.d.ts.map +1 -1
  155. package/dist/components/ui/popover.d.ts +7 -7
  156. package/dist/components/ui/popover.d.ts.map +1 -1
  157. package/dist/components/ui/progress.d.ts +1 -1
  158. package/dist/components/ui/progress.d.ts.map +1 -1
  159. package/dist/components/ui/pulse-ring.d.ts +1 -1
  160. package/dist/components/ui/pulse-ring.d.ts.map +1 -1
  161. package/dist/components/ui/resizable.d.ts +3 -3
  162. package/dist/components/ui/resizable.d.ts.map +1 -1
  163. package/dist/components/ui/section-card.d.ts +7 -7
  164. package/dist/components/ui/section-card.d.ts.map +1 -1
  165. package/dist/components/ui/select.d.ts +10 -10
  166. package/dist/components/ui/select.d.ts.map +1 -1
  167. package/dist/components/ui/separator.d.ts +1 -1
  168. package/dist/components/ui/separator.d.ts.map +1 -1
  169. package/dist/components/ui/sheet.d.ts +8 -8
  170. package/dist/components/ui/sheet.d.ts.map +1 -1
  171. package/dist/components/ui/sidebar.d.ts +23 -23
  172. package/dist/components/ui/sidebar.d.ts.map +1 -1
  173. package/dist/components/ui/skeleton.d.ts +1 -1
  174. package/dist/components/ui/skeleton.d.ts.map +1 -1
  175. package/dist/components/ui/slider.d.ts +1 -1
  176. package/dist/components/ui/slider.d.ts.map +1 -1
  177. package/dist/components/ui/sonner.d.ts +1 -1
  178. package/dist/components/ui/sonner.d.ts.map +1 -1
  179. package/dist/components/ui/stepper.d.ts +3 -3
  180. package/dist/components/ui/stepper.d.ts.map +1 -1
  181. package/dist/components/ui/sticky-save-bar.d.ts +2 -2
  182. package/dist/components/ui/sticky-save-bar.d.ts.map +1 -1
  183. package/dist/components/ui/switch.d.ts +1 -1
  184. package/dist/components/ui/switch.d.ts.map +1 -1
  185. package/dist/components/ui/table.d.ts +8 -8
  186. package/dist/components/ui/table.d.ts.map +1 -1
  187. package/dist/components/ui/tabs.d.ts +4 -4
  188. package/dist/components/ui/tabs.d.ts.map +1 -1
  189. package/dist/components/ui/textarea.d.ts +1 -1
  190. package/dist/components/ui/textarea.d.ts.map +1 -1
  191. package/dist/components/ui/toggle-group.d.ts +2 -2
  192. package/dist/components/ui/toggle-group.d.ts.map +1 -1
  193. package/dist/components/ui/toggle.d.ts +1 -1
  194. package/dist/components/ui/toggle.d.ts.map +1 -1
  195. package/dist/components/ui/tooltip.d.ts +4 -4
  196. package/dist/components/ui/tooltip.d.ts.map +1 -1
  197. package/dist/components/ui/user-avatar.d.ts +1 -1
  198. package/dist/components/ui/user-avatar.d.ts.map +1 -1
  199. package/dist/components/ui/user-menu.d.ts +1 -1
  200. package/dist/components/ui/user-menu.d.ts.map +1 -1
  201. package/dist/components/viglet-app-switcher.d.ts +1 -1
  202. package/dist/components/viglet-app-switcher.d.ts.map +1 -1
  203. package/dist/contexts/breadcrumb.context.d.ts +1 -1
  204. package/dist/contexts/breadcrumb.context.d.ts.map +1 -1
  205. package/dist/contexts/user.context.d.ts +25 -1
  206. package/dist/contexts/user.context.d.ts.map +1 -1
  207. package/dist/exports.json +404 -0
  208. package/dist/floating-formulas-bg.cjs +1 -0
  209. package/dist/floating-formulas-bg.css +21 -0
  210. package/dist/floating-formulas-bg.es.js +83 -56
  211. package/dist/fonts/inter-cyrillic-ext-wght-normal.woff2 +0 -0
  212. package/dist/fonts/inter-cyrillic-wght-normal.woff2 +0 -0
  213. package/dist/fonts/inter-greek-ext-wght-normal.woff2 +0 -0
  214. package/dist/fonts/inter-greek-wght-normal.woff2 +0 -0
  215. package/dist/fonts/inter-latin-ext-wght-normal.woff2 +0 -0
  216. package/dist/fonts/inter-latin-wght-normal.woff2 +0 -0
  217. package/dist/fonts/inter-vietnamese-wght-normal.woff2 +0 -0
  218. package/dist/fonts/plus-jakarta-sans-cyrillic-ext-wght-normal.woff2 +0 -0
  219. package/dist/fonts/plus-jakarta-sans-latin-ext-wght-normal.woff2 +0 -0
  220. package/dist/fonts/plus-jakarta-sans-latin-wght-normal.woff2 +0 -0
  221. package/dist/fonts/plus-jakarta-sans-vietnamese-wght-normal.woff2 +0 -0
  222. package/dist/fonts.css +126 -0
  223. package/dist/hooks/use-grid-adapter.d.ts.map +1 -1
  224. package/dist/hooks/use-mobile.d.ts +10 -0
  225. package/dist/hooks/use-mobile.d.ts.map +1 -1
  226. package/dist/hooks/use-sub-page-breadcrumb.d.ts.map +1 -1
  227. package/dist/i18n/index.d.ts +136 -0
  228. package/dist/i18n/index.d.ts.map +1 -1
  229. package/dist/i18n/locales/en/bento.json.d.ts +51 -0
  230. package/dist/i18n/locales/en/common.json.d.ts +7 -1
  231. package/dist/i18n/locales/en/forms.json.d.ts +15 -1
  232. package/dist/i18n/locales/en/nav.json.d.ts +3 -1
  233. package/dist/i18n/locales/pt/bento.json.d.ts +51 -0
  234. package/dist/i18n/locales/pt/common.json.d.ts +7 -1
  235. package/dist/i18n/locales/pt/forms.json.d.ts +15 -1
  236. package/dist/i18n/locales/pt/nav.json.d.ts +3 -1
  237. package/dist/i18n-DoNdMLEd.cjs +1 -0
  238. package/dist/{i18n-C94rDRaM.js → i18n-DuNITbWa.js} +155 -27
  239. package/dist/{i18n.cjs.js → i18n.cjs} +1 -1
  240. package/dist/i18n.es.js +1 -1
  241. package/dist/index.cjs +1 -0
  242. package/dist/index.d.ts +0 -1
  243. package/dist/index.d.ts.map +1 -1
  244. package/dist/index.es.js +512 -770
  245. package/dist/lib/axios.d.ts.map +1 -1
  246. package/dist/lib/export-xlsx.d.ts +7 -1
  247. package/dist/lib/export-xlsx.d.ts.map +1 -1
  248. package/dist/lib/react-markers.d.ts +17 -0
  249. package/dist/lib/react-markers.d.ts.map +1 -0
  250. package/dist/lib/utils.d.ts +22 -0
  251. package/dist/lib/utils.d.ts.map +1 -1
  252. package/dist/loading-provider-1mgM91iY.cjs +1 -0
  253. package/dist/loading-provider-CMnOuvdR.js +224 -0
  254. package/dist/preset.css +103 -3
  255. package/dist/products-DL_YYXkV.cjs +1 -0
  256. package/dist/products-Du9KB6Xl.js +9 -0
  257. package/dist/{chunk-CMqjfN_6.cjs → rolldown-runtime-BocRIvOZ.cjs} +1 -1
  258. package/dist/router.cjs +1 -0
  259. package/dist/router.es.js +361 -558
  260. package/dist/user.context-kPAqKN4o.js +512 -0
  261. package/dist/user.context-r50nSWER.cjs +1 -0
  262. package/dist/viglet-design-system.css +1 -1
  263. package/dist/vite/boot-loader.d.ts +14 -4
  264. package/dist/vite/boot-loader.d.ts.map +1 -1
  265. package/dist/{vite.cjs.js → vite.cjs} +8 -8
  266. package/dist/vite.es.js +29 -16
  267. package/package.json +67 -23
  268. package/scripts/check-duplicates.mjs +198 -0
  269. package/dist/breadcrumb.context-BF0x4--Z.cjs +0 -7
  270. package/dist/breadcrumb.context-CCiYXxir.js +0 -1501
  271. package/dist/floating-formulas-bg.cjs.js +0 -1
  272. package/dist/i18n-CmYeG6uh.cjs +0 -1
  273. package/dist/index.cjs.js +0 -1
  274. 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 };