@viglet/viglet-design-system 2026.3.9 → 2026.3.11

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