@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
@@ -1,1501 +0,0 @@
1
- import { clsx as e } from "clsx";
2
- import { twMerge as t } from "tailwind-merge";
3
- import * as n from "react";
4
- import { createContext as r, createElement as i, forwardRef as a, useCallback as o, useContext as s, useEffect as c, useMemo as l, useState as u } from "react";
5
- import { Fragment as d, jsx as f, jsxs as p } from "react/jsx-runtime";
6
- import * as m from "@radix-ui/react-avatar";
7
- import { Slot as h } from "@radix-ui/react-slot";
8
- import { cva as g } from "class-variance-authority";
9
- import * as _ from "@radix-ui/react-dialog";
10
- import * as v from "@radix-ui/react-dropdown-menu";
11
- import { useTranslation as y } from "react-i18next";
12
- import * as b from "@radix-ui/react-select";
13
- import * as ee from "@radix-ui/react-separator";
14
- import * as x from "@radix-ui/react-tooltip";
15
- //#region src/lib/utils.ts
16
- function S(...n) {
17
- return t(e(n));
18
- }
19
- var te = (e, t = 10) => {
20
- if (!e || e.length <= t) return e ?? "";
21
- let n = t - 3, r = Math.ceil(n / 2), i = Math.floor(n / 2);
22
- return e.substring(0, r) + "..." + e.substring(e.length - i);
23
- }, ne = (e) => {
24
- let t = e.split("_")[1]?.toUpperCase();
25
- return !t?.length || t.length !== 2 ? "🌐" : t.split("").map((e) => String.fromCodePoint((e.codePointAt(0) ?? 0) + 127397)).join("");
26
- }, re = (e) => {
27
- let t = 0;
28
- for (let n = 0; n < e.length; n++) t = (e.codePointAt(n) ?? 0) + ((t << 5) - t);
29
- let n = Math.abs(t) % 360;
30
- return {
31
- h: n,
32
- light: {
33
- bg: `hsl(${n}, 70%, 95%)`,
34
- text: `hsl(${n}, 70%, 20%)`,
35
- border: `hsl(${n}, 70%, 90%)`
36
- },
37
- dark: {
38
- bg: `hsl(${n}, 50%, 15%)`,
39
- text: `hsl(${n}, 80%, 80%)`,
40
- border: `hsl(${n}, 50%, 25%)`
41
- }
42
- };
43
- }, C = (...e) => e.filter((e, t, n) => !!e && e.trim() !== "" && n.indexOf(e) === t).join(" ").trim(), ie = (e) => e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), ae = (e) => e.replace(/^([A-Z])|[\s-_]+(\w)/g, (e, t, n) => n ? n.toUpperCase() : t.toLowerCase()), w = (e) => {
44
- let t = ae(e);
45
- return t.charAt(0).toUpperCase() + t.slice(1);
46
- }, T = {
47
- xmlns: "http://www.w3.org/2000/svg",
48
- width: 24,
49
- height: 24,
50
- viewBox: "0 0 24 24",
51
- fill: "none",
52
- stroke: "currentColor",
53
- strokeWidth: 2,
54
- strokeLinecap: "round",
55
- strokeLinejoin: "round"
56
- }, oe = (e) => {
57
- for (let t in e) if (t.startsWith("aria-") || t === "role" || t === "title") return !0;
58
- return !1;
59
- }, se = r({}), ce = () => s(se), le = a(({ color: e, size: t, strokeWidth: n, absoluteStrokeWidth: r, className: a = "", children: o, iconNode: s, ...c }, l) => {
60
- let { size: u = 24, strokeWidth: d = 2, absoluteStrokeWidth: f = !1, color: p = "currentColor", className: m = "" } = ce() ?? {}, h = r ?? f ? Number(n ?? d) * 24 / Number(t ?? u) : n ?? d;
61
- return i("svg", {
62
- ref: l,
63
- ...T,
64
- width: t ?? u ?? T.width,
65
- height: t ?? u ?? T.height,
66
- stroke: e ?? p,
67
- strokeWidth: h,
68
- className: C("lucide", m, a),
69
- ...!o && !oe(c) && { "aria-hidden": "true" },
70
- ...c
71
- }, [...s.map(([e, t]) => i(e, t)), ...Array.isArray(o) ? o : [o]]);
72
- }), E = (e, t) => {
73
- let n = a(({ className: n, ...r }, a) => i(le, {
74
- ref: a,
75
- iconNode: t,
76
- className: C(`lucide-${ie(w(e))}`, `lucide-${e}`, n),
77
- ...r
78
- }));
79
- return n.displayName = w(e), n;
80
- }, D = E("check", [["path", {
81
- d: "M20 6 9 17l-5-5",
82
- key: "1gmf2c"
83
- }]]), O = E("chevron-down", [["path", {
84
- d: "m6 9 6 6 6-6",
85
- key: "qrunsl"
86
- }]]), k = E("chevron-right", [["path", {
87
- d: "m9 18 6-6-6-6",
88
- key: "mthhwq"
89
- }]]), ue = E("chevron-up", [["path", {
90
- d: "m18 15-6-6-6 6",
91
- key: "153udz"
92
- }]]), de = E("circle", [["circle", {
93
- cx: "12",
94
- cy: "12",
95
- r: "10",
96
- key: "1mglay"
97
- }]]), fe = E("ellipsis", [
98
- ["circle", {
99
- cx: "12",
100
- cy: "12",
101
- r: "1",
102
- key: "41hilf"
103
- }],
104
- ["circle", {
105
- cx: "19",
106
- cy: "12",
107
- r: "1",
108
- key: "1wjl8i"
109
- }],
110
- ["circle", {
111
- cx: "5",
112
- cy: "12",
113
- r: "1",
114
- key: "1pcz8c"
115
- }]
116
- ]), pe = E("globe", [
117
- ["circle", {
118
- cx: "12",
119
- cy: "12",
120
- r: "10",
121
- key: "1mglay"
122
- }],
123
- ["path", {
124
- d: "M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",
125
- key: "13o1zl"
126
- }],
127
- ["path", {
128
- d: "M2 12h20",
129
- key: "9i4pu4"
130
- }]
131
- ]), me = E("menu", [
132
- ["path", {
133
- d: "M4 5h16",
134
- key: "1tepv9"
135
- }],
136
- ["path", {
137
- d: "M4 12h16",
138
- key: "1lakjw"
139
- }],
140
- ["path", {
141
- d: "M4 19h16",
142
- key: "1djgab"
143
- }]
144
- ]), he = E("monitor", [
145
- ["rect", {
146
- width: "20",
147
- height: "14",
148
- x: "2",
149
- y: "3",
150
- rx: "2",
151
- key: "48i651"
152
- }],
153
- ["line", {
154
- x1: "8",
155
- x2: "16",
156
- y1: "21",
157
- y2: "21",
158
- key: "1svkeh"
159
- }],
160
- ["line", {
161
- x1: "12",
162
- x2: "12",
163
- y1: "17",
164
- y2: "21",
165
- key: "vw1qmm"
166
- }]
167
- ]), ge = E("moon", [["path", {
168
- 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",
169
- key: "kfwtm"
170
- }]]), _e = E("panel-left", [["rect", {
171
- width: "18",
172
- height: "18",
173
- x: "3",
174
- y: "3",
175
- rx: "2",
176
- key: "afitv7"
177
- }], ["path", {
178
- d: "M9 3v18",
179
- key: "fh3hqa"
180
- }]]), ve = E("sun", [
181
- ["circle", {
182
- cx: "12",
183
- cy: "12",
184
- r: "4",
185
- key: "4exip2"
186
- }],
187
- ["path", {
188
- d: "M12 2v2",
189
- key: "tus03m"
190
- }],
191
- ["path", {
192
- d: "M12 20v2",
193
- key: "1lh1kg"
194
- }],
195
- ["path", {
196
- d: "m4.93 4.93 1.41 1.41",
197
- key: "149t6j"
198
- }],
199
- ["path", {
200
- d: "m17.66 17.66 1.41 1.41",
201
- key: "ptbguv"
202
- }],
203
- ["path", {
204
- d: "M2 12h2",
205
- key: "1t8f8n"
206
- }],
207
- ["path", {
208
- d: "M20 12h2",
209
- key: "1q8mjw"
210
- }],
211
- ["path", {
212
- d: "m6.34 17.66-1.41 1.41",
213
- key: "1m8zz5"
214
- }],
215
- ["path", {
216
- d: "m19.07 4.93-1.41 1.41",
217
- key: "1shlcs"
218
- }]
219
- ]), ye = E("x", [["path", {
220
- d: "M18 6 6 18",
221
- key: "1bl5f8"
222
- }], ["path", {
223
- d: "m6 6 12 12",
224
- key: "d8bk6v"
225
- }]]);
226
- //#endregion
227
- //#region src/components/ui/avatar.tsx
228
- function be({ className: e, ...t }) {
229
- return /* @__PURE__ */ f(m.Root, {
230
- "data-slot": "avatar",
231
- className: S("relative flex size-8 shrink-0 overflow-hidden rounded-full", e),
232
- ...t
233
- });
234
- }
235
- function xe({ className: e, ...t }) {
236
- return /* @__PURE__ */ f(m.Image, {
237
- "data-slot": "avatar-image",
238
- className: S("aspect-square size-full", e),
239
- ...t
240
- });
241
- }
242
- function Se({ className: e, ...t }) {
243
- return /* @__PURE__ */ f(m.Fallback, {
244
- "data-slot": "avatar-fallback",
245
- className: S("bg-muted flex size-full items-center justify-center rounded-full", e),
246
- ...t
247
- });
248
- }
249
- //#endregion
250
- //#region src/components/ui/badge.tsx
251
- var Ce = g("inline-flex items-center justify-center rounded-full border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden", {
252
- variants: { variant: {
253
- default: "border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90",
254
- secondary: "border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",
255
- destructive: "border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",
256
- outline: "text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground"
257
- } },
258
- defaultVariants: { variant: "default" }
259
- });
260
- function A({ className: e, variant: t, asChild: n = !1, ...r }) {
261
- return /* @__PURE__ */ f(n ? h : "span", {
262
- "data-slot": "badge",
263
- className: S(Ce({ variant: t }), e),
264
- ...r
265
- });
266
- }
267
- //#endregion
268
- //#region src/components/ui/breadcrumb.tsx
269
- function we({ ...e }) {
270
- return /* @__PURE__ */ f("nav", {
271
- "aria-label": "breadcrumb",
272
- "data-slot": "breadcrumb",
273
- ...e
274
- });
275
- }
276
- function Te({ className: e, ...t }) {
277
- return /* @__PURE__ */ f("ol", {
278
- "data-slot": "breadcrumb-list",
279
- className: S("text-muted-foreground flex flex-wrap items-center gap-1.5 text-sm break-words sm:gap-2.5", e),
280
- ...t
281
- });
282
- }
283
- function Ee({ className: e, ...t }) {
284
- return /* @__PURE__ */ f("li", {
285
- "data-slot": "breadcrumb-item",
286
- className: S("inline-flex items-center gap-1.5", e),
287
- ...t
288
- });
289
- }
290
- function De({ asChild: e, className: t, ...n }) {
291
- return /* @__PURE__ */ f(e ? h : "a", {
292
- "data-slot": "breadcrumb-link",
293
- className: S("hover:text-foreground transition-colors", t),
294
- ...n
295
- });
296
- }
297
- function Oe({ className: e, ...t }) {
298
- return /* @__PURE__ */ f("span", {
299
- "data-slot": "breadcrumb-page",
300
- role: "link",
301
- "aria-disabled": "true",
302
- "aria-current": "page",
303
- className: S("text-foreground font-normal", e),
304
- ...t
305
- });
306
- }
307
- function ke({ children: e, className: t, ...n }) {
308
- return /* @__PURE__ */ f("li", {
309
- "data-slot": "breadcrumb-separator",
310
- role: "presentation",
311
- "aria-hidden": "true",
312
- className: S("[&>svg]:size-3.5", t),
313
- ...n,
314
- children: e ?? /* @__PURE__ */ f(k, {})
315
- });
316
- }
317
- function Ae({ className: e, ...t }) {
318
- return /* @__PURE__ */ p("span", {
319
- "data-slot": "breadcrumb-ellipsis",
320
- role: "presentation",
321
- "aria-hidden": "true",
322
- className: S("flex size-9 items-center justify-center", e),
323
- ...t,
324
- children: [/* @__PURE__ */ f(fe, { className: "size-4" }), /* @__PURE__ */ f("span", {
325
- className: "sr-only",
326
- children: "More"
327
- })]
328
- });
329
- }
330
- //#endregion
331
- //#region src/components/ui/card.tsx
332
- function je({ className: e, ...t }) {
333
- return /* @__PURE__ */ f("div", {
334
- "data-slot": "card",
335
- className: S("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm", e),
336
- ...t
337
- });
338
- }
339
- function Me({ className: e, ...t }) {
340
- return /* @__PURE__ */ f("div", {
341
- "data-slot": "card-header",
342
- className: S("@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),
343
- ...t
344
- });
345
- }
346
- function Ne({ className: e, ...t }) {
347
- return /* @__PURE__ */ f("div", {
348
- "data-slot": "card-title",
349
- className: S("leading-none font-semibold", e),
350
- ...t
351
- });
352
- }
353
- function Pe({ className: e, ...t }) {
354
- return /* @__PURE__ */ f("div", {
355
- "data-slot": "card-description",
356
- className: S("text-muted-foreground text-sm", e),
357
- ...t
358
- });
359
- }
360
- function Fe({ className: e, ...t }) {
361
- return /* @__PURE__ */ f("div", {
362
- "data-slot": "card-action",
363
- className: S("col-start-2 row-span-2 row-start-1 self-start justify-self-end", e),
364
- ...t
365
- });
366
- }
367
- function Ie({ className: e, ...t }) {
368
- return /* @__PURE__ */ f("div", {
369
- "data-slot": "card-content",
370
- className: S("px-6", e),
371
- ...t
372
- });
373
- }
374
- function Le({ className: e, ...t }) {
375
- return /* @__PURE__ */ f("div", {
376
- "data-slot": "card-footer",
377
- className: S("flex items-center px-6 [.border-t]:pt-6", e),
378
- ...t
379
- });
380
- }
381
- //#endregion
382
- //#region src/components/ui/dialog.tsx
383
- function Re({ ...e }) {
384
- return /* @__PURE__ */ f(_.Root, {
385
- "data-slot": "dialog",
386
- ...e
387
- });
388
- }
389
- function ze({ ...e }) {
390
- return /* @__PURE__ */ f(_.Trigger, {
391
- "data-slot": "dialog-trigger",
392
- ...e
393
- });
394
- }
395
- function Be({ ...e }) {
396
- return /* @__PURE__ */ f(_.Portal, {
397
- "data-slot": "dialog-portal",
398
- ...e
399
- });
400
- }
401
- function Ve({ ...e }) {
402
- return /* @__PURE__ */ f(_.Close, {
403
- "data-slot": "dialog-close",
404
- ...e
405
- });
406
- }
407
- function He({ className: e, ...t }) {
408
- return /* @__PURE__ */ f(_.Overlay, {
409
- "data-slot": "dialog-overlay",
410
- className: S("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),
411
- ...t
412
- });
413
- }
414
- function Ue({ className: e, children: t, showCloseButton: n = !0, ...r }) {
415
- return /* @__PURE__ */ p(Be, {
416
- "data-slot": "dialog-portal",
417
- children: [/* @__PURE__ */ f(He, {}), /* @__PURE__ */ p(_.Content, {
418
- "data-slot": "dialog-content",
419
- className: S("bg-background 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 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg", e),
420
- ...r,
421
- children: [t, n && /* @__PURE__ */ p(_.Close, {
422
- "data-slot": "dialog-close",
423
- className: "ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground 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 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
424
- children: [/* @__PURE__ */ f(ye, {}), /* @__PURE__ */ f("span", {
425
- className: "sr-only",
426
- children: "Close"
427
- })]
428
- })]
429
- })]
430
- });
431
- }
432
- function We({ className: e, ...t }) {
433
- return /* @__PURE__ */ f("div", {
434
- "data-slot": "dialog-header",
435
- className: S("flex flex-col gap-2 text-center sm:text-left", e),
436
- ...t
437
- });
438
- }
439
- function Ge({ className: e, ...t }) {
440
- return /* @__PURE__ */ f("div", {
441
- "data-slot": "dialog-footer",
442
- className: S("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end", e),
443
- ...t
444
- });
445
- }
446
- function Ke({ className: e, ...t }) {
447
- return /* @__PURE__ */ f(_.Title, {
448
- "data-slot": "dialog-title",
449
- className: S("text-lg leading-none font-semibold", e),
450
- ...t
451
- });
452
- }
453
- function qe({ className: e, ...t }) {
454
- return /* @__PURE__ */ f(_.Description, {
455
- "data-slot": "dialog-description",
456
- className: S("text-muted-foreground text-sm", e),
457
- ...t
458
- });
459
- }
460
- //#endregion
461
- //#region src/components/ui/dropdown-menu.tsx
462
- function Je({ ...e }) {
463
- return /* @__PURE__ */ f(v.Root, {
464
- "data-slot": "dropdown-menu",
465
- ...e
466
- });
467
- }
468
- function Ye({ ...e }) {
469
- return /* @__PURE__ */ f(v.Portal, {
470
- "data-slot": "dropdown-menu-portal",
471
- ...e
472
- });
473
- }
474
- function j({ ...e }) {
475
- return /* @__PURE__ */ f(v.Trigger, {
476
- "data-slot": "dropdown-menu-trigger",
477
- ...e
478
- });
479
- }
480
- function M({ className: e, sideOffset: t = 4, ...n }) {
481
- return /* @__PURE__ */ f(v.Portal, { children: /* @__PURE__ */ f(v.Content, {
482
- "data-slot": "dropdown-menu-content",
483
- sideOffset: t,
484
- className: S("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 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md", e),
485
- ...n
486
- }) });
487
- }
488
- function Xe({ ...e }) {
489
- return /* @__PURE__ */ f(v.Group, {
490
- "data-slot": "dropdown-menu-group",
491
- ...e
492
- });
493
- }
494
- function N({ className: e, inset: t, variant: n = "default", ...r }) {
495
- return /* @__PURE__ */ f(v.Item, {
496
- "data-slot": "dropdown-menu-item",
497
- "data-inset": t,
498
- "data-variant": n,
499
- className: S("focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", e),
500
- ...r
501
- });
502
- }
503
- function Ze({ className: e, children: t, checked: n, ...r }) {
504
- return /* @__PURE__ */ p(v.CheckboxItem, {
505
- "data-slot": "dropdown-menu-checkbox-item",
506
- className: S("focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 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", e),
507
- checked: n,
508
- ...r,
509
- children: [/* @__PURE__ */ f("span", {
510
- className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center",
511
- children: /* @__PURE__ */ f(v.ItemIndicator, { children: /* @__PURE__ */ f(D, { className: "size-4" }) })
512
- }), t]
513
- });
514
- }
515
- function Qe({ ...e }) {
516
- return /* @__PURE__ */ f(v.RadioGroup, {
517
- "data-slot": "dropdown-menu-radio-group",
518
- ...e
519
- });
520
- }
521
- function $e({ className: e, children: t, ...n }) {
522
- return /* @__PURE__ */ p(v.RadioItem, {
523
- "data-slot": "dropdown-menu-radio-item",
524
- className: S("focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 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", e),
525
- ...n,
526
- children: [/* @__PURE__ */ f("span", {
527
- className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center",
528
- children: /* @__PURE__ */ f(v.ItemIndicator, { children: /* @__PURE__ */ f(de, { className: "size-2 fill-current" }) })
529
- }), t]
530
- });
531
- }
532
- function et({ className: e, inset: t, ...n }) {
533
- return /* @__PURE__ */ f(v.Label, {
534
- "data-slot": "dropdown-menu-label",
535
- "data-inset": t,
536
- className: S("px-2 py-1.5 text-sm font-medium data-[inset]:pl-8", e),
537
- ...n
538
- });
539
- }
540
- function tt({ className: e, ...t }) {
541
- return /* @__PURE__ */ f(v.Separator, {
542
- "data-slot": "dropdown-menu-separator",
543
- className: S("bg-border -mx-1 my-1 h-px", e),
544
- ...t
545
- });
546
- }
547
- function nt({ className: e, ...t }) {
548
- return /* @__PURE__ */ f("span", {
549
- "data-slot": "dropdown-menu-shortcut",
550
- className: S("text-muted-foreground ml-auto text-xs tracking-widest", e),
551
- ...t
552
- });
553
- }
554
- function rt({ ...e }) {
555
- return /* @__PURE__ */ f(v.Sub, {
556
- "data-slot": "dropdown-menu-sub",
557
- ...e
558
- });
559
- }
560
- function it({ className: e, inset: t, children: n, ...r }) {
561
- return /* @__PURE__ */ p(v.SubTrigger, {
562
- "data-slot": "dropdown-menu-sub-trigger",
563
- "data-inset": t,
564
- className: S("focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", e),
565
- ...r,
566
- children: [n, /* @__PURE__ */ f(k, { className: "ml-auto size-4" })]
567
- });
568
- }
569
- function at({ className: e, ...t }) {
570
- return /* @__PURE__ */ f(v.SubContent, {
571
- "data-slot": "dropdown-menu-sub-content",
572
- className: S("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 z-50 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg", e),
573
- ...t
574
- });
575
- }
576
- //#endregion
577
- //#region src/components/ui/gradient-button.tsx
578
- var P = g("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all duration-200 cursor-pointer disabled:cursor-not-allowed disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:ring-[3px]", {
579
- variants: {
580
- variant: {
581
- default: [
582
- "bg-gradient-to-r from-blue-600 to-indigo-600 text-white",
583
- "shadow-md shadow-blue-500/25",
584
- "hover:from-blue-700 hover:to-indigo-700",
585
- "hover:shadow-lg hover:shadow-blue-500/30",
586
- "focus-visible:ring-blue-500/50",
587
- "dark:from-blue-500 dark:to-indigo-500",
588
- "dark:shadow-blue-500/20",
589
- "dark:hover:from-blue-600 dark:hover:to-indigo-600",
590
- "dark:hover:shadow-blue-500/25",
591
- "dark:focus-visible:ring-blue-400/50"
592
- ].join(" "),
593
- secondary: [
594
- "bg-gradient-to-r from-slate-600 to-slate-700 text-white",
595
- "shadow-md shadow-slate-500/25",
596
- "hover:from-slate-700 hover:to-slate-800",
597
- "hover:shadow-lg hover:shadow-slate-500/30",
598
- "focus-visible:ring-slate-500/50",
599
- "dark:from-slate-500 dark:to-slate-600",
600
- "dark:shadow-slate-500/20",
601
- "dark:hover:from-slate-600 dark:hover:to-slate-700",
602
- "dark:hover:shadow-slate-500/25",
603
- "dark:focus-visible:ring-slate-400/50"
604
- ].join(" "),
605
- destructive: [
606
- "bg-gradient-to-r from-red-600 to-rose-600 text-white",
607
- "shadow-md shadow-red-500/25",
608
- "hover:from-red-700 hover:to-rose-700",
609
- "hover:shadow-lg hover:shadow-red-500/30",
610
- "focus-visible:ring-red-500/50",
611
- "dark:from-red-500 dark:to-rose-500",
612
- "dark:shadow-red-500/20",
613
- "dark:hover:from-red-600 dark:hover:to-rose-600",
614
- "dark:hover:shadow-red-500/25",
615
- "dark:focus-visible:ring-red-400/50"
616
- ].join(" "),
617
- success: [
618
- "bg-gradient-to-r from-emerald-600 to-teal-600 text-white",
619
- "shadow-md shadow-emerald-500/25",
620
- "hover:from-emerald-700 hover:to-teal-700",
621
- "hover:shadow-lg hover:shadow-emerald-500/30",
622
- "focus-visible:ring-emerald-500/50",
623
- "dark:from-emerald-500 dark:to-teal-500",
624
- "dark:shadow-emerald-500/20",
625
- "dark:hover:from-emerald-600 dark:hover:to-teal-600",
626
- "dark:hover:shadow-emerald-500/25",
627
- "dark:focus-visible:ring-emerald-400/50"
628
- ].join(" "),
629
- outline: [
630
- "border-2 border-blue-600 text-blue-600 bg-transparent",
631
- "hover:bg-blue-600 hover:text-white",
632
- "shadow-sm hover:shadow-md hover:shadow-blue-500/25",
633
- "focus-visible:ring-blue-500/50",
634
- "dark:border-blue-400 dark:text-blue-400",
635
- "dark:hover:bg-blue-500 dark:hover:text-white",
636
- "dark:hover:shadow-blue-500/20",
637
- "dark:focus-visible:ring-blue-400/50"
638
- ].join(" "),
639
- ghost: [
640
- "bg-transparent text-blue-600",
641
- "hover:bg-blue-500/10 hover:text-blue-700",
642
- "focus-visible:ring-blue-500/50",
643
- "dark:text-blue-400",
644
- "dark:hover:bg-blue-400/10 dark:hover:text-blue-300",
645
- "dark:focus-visible:ring-blue-400/50"
646
- ].join(" ")
647
- },
648
- size: {
649
- default: "h-11 px-5 py-2 has-[>svg]:px-4",
650
- sm: "h-9 rounded-md gap-1.5 px-4 has-[>svg]:px-3 text-xs",
651
- lg: "h-12 rounded-md px-8 has-[>svg]:px-6 text-base",
652
- icon: "size-11",
653
- "icon-sm": "size-9",
654
- "icon-lg": "size-12"
655
- }
656
- },
657
- defaultVariants: {
658
- variant: "default",
659
- size: "default"
660
- }
661
- });
662
- function F({ className: e, variant: t, size: n, asChild: r = !1, loading: i = !1, ...a }) {
663
- let o = S(P({
664
- variant: t,
665
- size: n,
666
- className: e
667
- }));
668
- return /* @__PURE__ */ f(r ? h : "button", {
669
- "data-slot": "gradient-button",
670
- className: o,
671
- disabled: i || a.disabled,
672
- ...a,
673
- children: i ? /* @__PURE__ */ p(d, { children: [/* @__PURE__ */ p("svg", {
674
- className: "size-4 animate-spin",
675
- xmlns: "http://www.w3.org/2000/svg",
676
- fill: "none",
677
- viewBox: "0 0 24 24",
678
- children: [/* @__PURE__ */ f("circle", {
679
- className: "opacity-25",
680
- cx: "12",
681
- cy: "12",
682
- r: "10",
683
- stroke: "currentColor",
684
- strokeWidth: "4"
685
- }), /* @__PURE__ */ f("path", {
686
- className: "opacity-75",
687
- fill: "currentColor",
688
- d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"
689
- })]
690
- }), a.children] }) : a.children
691
- });
692
- }
693
- //#endregion
694
- //#region src/components/ui/input.tsx
695
- function I({ className: e, type: t, ...n }) {
696
- return /* @__PURE__ */ f("input", {
697
- type: t,
698
- "data-slot": "input",
699
- className: S("file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent pl-3 pr-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm", "focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]", "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive", e),
700
- ...n
701
- });
702
- }
703
- //#endregion
704
- //#region src/components/ui/select.tsx
705
- function ot({ ...e }) {
706
- return /* @__PURE__ */ f(b.Root, {
707
- "data-slot": "select",
708
- ...e
709
- });
710
- }
711
- function st({ ...e }) {
712
- return /* @__PURE__ */ f(b.Group, {
713
- "data-slot": "select-group",
714
- ...e
715
- });
716
- }
717
- function ct({ ...e }) {
718
- return /* @__PURE__ */ f(b.Value, {
719
- "data-slot": "select-value",
720
- ...e
721
- });
722
- }
723
- function lt({ className: e, size: t = "default", children: n, ...r }) {
724
- return /* @__PURE__ */ p(b.Trigger, {
725
- "data-slot": "select-trigger",
726
- "data-size": t,
727
- className: S("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),
728
- ...r,
729
- children: [n, /* @__PURE__ */ f(b.Icon, {
730
- asChild: !0,
731
- children: /* @__PURE__ */ f(O, { className: "size-4 opacity-50" })
732
- })]
733
- });
734
- }
735
- function ut({ className: e, children: t, position: n = "popper", align: r = "center", ...i }) {
736
- return /* @__PURE__ */ f(b.Portal, { children: /* @__PURE__ */ p(b.Content, {
737
- "data-slot": "select-content",
738
- className: S("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),
739
- position: n,
740
- align: r,
741
- ...i,
742
- children: [
743
- /* @__PURE__ */ f(L, {}),
744
- /* @__PURE__ */ f(b.Viewport, {
745
- className: S("p-1", n === "popper" && "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"),
746
- children: t
747
- }),
748
- /* @__PURE__ */ f(R, {})
749
- ]
750
- }) });
751
- }
752
- function dt({ className: e, ...t }) {
753
- return /* @__PURE__ */ f(b.Label, {
754
- "data-slot": "select-label",
755
- className: S("text-muted-foreground px-2 py-1.5 text-xs", e),
756
- ...t
757
- });
758
- }
759
- function ft({ className: e, children: t, ...n }) {
760
- return /* @__PURE__ */ p(b.Item, {
761
- "data-slot": "select-item",
762
- className: S("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),
763
- ...n,
764
- children: [/* @__PURE__ */ f("span", {
765
- className: "absolute right-2 flex size-3.5 items-center justify-center",
766
- children: /* @__PURE__ */ f(b.ItemIndicator, { children: /* @__PURE__ */ f(D, { className: "size-4" }) })
767
- }), /* @__PURE__ */ f(b.ItemText, { children: t })]
768
- });
769
- }
770
- function pt({ className: e, ...t }) {
771
- return /* @__PURE__ */ f(b.Separator, {
772
- "data-slot": "select-separator",
773
- className: S("bg-border pointer-events-none -mx-1 my-1 h-px", e),
774
- ...t
775
- });
776
- }
777
- function L({ className: e, ...t }) {
778
- return /* @__PURE__ */ f(b.ScrollUpButton, {
779
- "data-slot": "select-scroll-up-button",
780
- className: S("flex cursor-default items-center justify-center py-1", e),
781
- ...t,
782
- children: /* @__PURE__ */ f(ue, { className: "size-4" })
783
- });
784
- }
785
- function R({ className: e, ...t }) {
786
- return /* @__PURE__ */ f(b.ScrollDownButton, {
787
- "data-slot": "select-scroll-down-button",
788
- className: S("flex cursor-default items-center justify-center py-1", e),
789
- ...t,
790
- children: /* @__PURE__ */ f(O, { className: "size-4" })
791
- });
792
- }
793
- //#endregion
794
- //#region src/components/ui/separator.tsx
795
- function z({ className: e, orientation: t = "horizontal", decorative: n = !0, ...r }) {
796
- return /* @__PURE__ */ f(ee.Root, {
797
- "data-slot": "separator",
798
- decorative: n,
799
- orientation: t,
800
- className: S("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),
801
- ...r
802
- });
803
- }
804
- //#endregion
805
- //#region src/components/ui/sheet.tsx
806
- function B({ ...e }) {
807
- return /* @__PURE__ */ f(_.Root, {
808
- "data-slot": "sheet",
809
- ...e
810
- });
811
- }
812
- function mt({ ...e }) {
813
- return /* @__PURE__ */ f(_.Trigger, {
814
- "data-slot": "sheet-trigger",
815
- ...e
816
- });
817
- }
818
- function ht({ ...e }) {
819
- return /* @__PURE__ */ f(_.Close, {
820
- "data-slot": "sheet-close",
821
- ...e
822
- });
823
- }
824
- function gt({ ...e }) {
825
- return /* @__PURE__ */ f(_.Portal, {
826
- "data-slot": "sheet-portal",
827
- ...e
828
- });
829
- }
830
- function _t({ className: e, ...t }) {
831
- return /* @__PURE__ */ f(_.Overlay, {
832
- "data-slot": "sheet-overlay",
833
- className: S("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),
834
- ...t
835
- });
836
- }
837
- function V({ className: e, children: t, side: n = "right", ...r }) {
838
- return /* @__PURE__ */ p(gt, { children: [/* @__PURE__ */ f(_t, {}), /* @__PURE__ */ p(_.Content, {
839
- "data-slot": "sheet-content",
840
- className: S("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),
841
- ...r,
842
- children: [t, /* @__PURE__ */ p(_.Close, {
843
- 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",
844
- children: [/* @__PURE__ */ f(ye, { className: "size-4" }), /* @__PURE__ */ f("span", {
845
- className: "sr-only",
846
- children: "Close"
847
- })]
848
- })]
849
- })] });
850
- }
851
- function H({ className: e, ...t }) {
852
- return /* @__PURE__ */ f("div", {
853
- "data-slot": "sheet-header",
854
- className: S("flex flex-col gap-1.5 p-4", e),
855
- ...t
856
- });
857
- }
858
- function vt({ className: e, ...t }) {
859
- return /* @__PURE__ */ f("div", {
860
- "data-slot": "sheet-footer",
861
- className: S("mt-auto flex flex-col gap-2 p-4", e),
862
- ...t
863
- });
864
- }
865
- function U({ className: e, ...t }) {
866
- return /* @__PURE__ */ f(_.Title, {
867
- "data-slot": "sheet-title",
868
- className: S("text-foreground font-semibold", e),
869
- ...t
870
- });
871
- }
872
- function W({ className: e, ...t }) {
873
- return /* @__PURE__ */ f(_.Description, {
874
- "data-slot": "sheet-description",
875
- className: S("text-muted-foreground text-sm", e),
876
- ...t
877
- });
878
- }
879
- //#endregion
880
- //#region src/components/ui/skeleton.tsx
881
- function G({ className: e, ...t }) {
882
- return /* @__PURE__ */ f("div", {
883
- "data-slot": "skeleton",
884
- className: S("bg-accent animate-pulse rounded-md", e),
885
- ...t
886
- });
887
- }
888
- //#endregion
889
- //#region src/components/ui/tooltip.tsx
890
- function K({ delayDuration: e = 0, ...t }) {
891
- return /* @__PURE__ */ f(x.Provider, {
892
- "data-slot": "tooltip-provider",
893
- delayDuration: e,
894
- ...t
895
- });
896
- }
897
- function yt({ ...e }) {
898
- return /* @__PURE__ */ f(K, { children: /* @__PURE__ */ f(x.Root, {
899
- "data-slot": "tooltip",
900
- ...e
901
- }) });
902
- }
903
- function bt({ ...e }) {
904
- return /* @__PURE__ */ f(x.Trigger, {
905
- "data-slot": "tooltip-trigger",
906
- ...e
907
- });
908
- }
909
- function xt({ className: e, sideOffset: t = 0, children: n, ...r }) {
910
- return /* @__PURE__ */ f(x.Portal, { children: /* @__PURE__ */ p(x.Content, {
911
- "data-slot": "tooltip-content",
912
- sideOffset: t,
913
- className: S("bg-foreground text-background animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-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 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance", e),
914
- ...r,
915
- children: [n, /* @__PURE__ */ f(x.Arrow, { className: "bg-foreground fill-foreground z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]" })]
916
- }) });
917
- }
918
- //#endregion
919
- //#region src/hooks/use-mobile.ts
920
- var q = 768;
921
- function St() {
922
- let [e, t] = n.useState(void 0);
923
- return n.useEffect(() => {
924
- let e = window.matchMedia(`(max-width: ${q - 1}px)`), n = () => {
925
- t(window.innerWidth < q);
926
- };
927
- return e.addEventListener("change", n), t(window.innerWidth < q), () => e.removeEventListener("change", n);
928
- }, []), !!e;
929
- }
930
- //#endregion
931
- //#region src/components/ui/sidebar.tsx
932
- var Ct = "sidebar_state", wt = 3600 * 24 * 7, Tt = "16rem", Et = "18rem", Dt = "3rem", Ot = "b", J = n.createContext(null);
933
- function Y() {
934
- let e = n.useContext(J);
935
- if (!e) throw Error("useSidebar must be used within a SidebarProvider.");
936
- return e;
937
- }
938
- function kt() {
939
- return n.useContext(J);
940
- }
941
- function At({ defaultOpen: e = !0, open: t, onOpenChange: r, className: i, style: a, children: o, ...s }) {
942
- let c = St(), [l, u] = n.useState(!1), [d, p] = n.useState(e), m = t ?? d, h = n.useCallback((e) => {
943
- let t = typeof e == "function" ? e(m) : e;
944
- r ? r(t) : p(t), document.cookie = `${Ct}=${t}; path=/; max-age=${wt}`;
945
- }, [r, m]), g = n.useCallback(() => c ? u((e) => !e) : h((e) => !e), [
946
- c,
947
- h,
948
- u
949
- ]);
950
- n.useEffect(() => {
951
- let e = (e) => {
952
- e.key === Ot && (e.metaKey || e.ctrlKey) && (e.preventDefault(), g());
953
- };
954
- return globalThis.addEventListener("keydown", e), () => globalThis.removeEventListener("keydown", e);
955
- }, [g]);
956
- let _ = m ? "expanded" : "collapsed", v = n.useMemo(() => ({
957
- state: _,
958
- open: m,
959
- setOpen: h,
960
- isMobile: c,
961
- openMobile: l,
962
- setOpenMobile: u,
963
- toggleSidebar: g
964
- }), [
965
- _,
966
- m,
967
- h,
968
- c,
969
- l,
970
- u,
971
- g
972
- ]);
973
- return /* @__PURE__ */ f(J.Provider, {
974
- value: v,
975
- children: /* @__PURE__ */ f(K, {
976
- delayDuration: 0,
977
- children: /* @__PURE__ */ f("div", {
978
- "data-slot": "sidebar-wrapper",
979
- style: {
980
- "--sidebar-width": Tt,
981
- "--sidebar-width-icon": Dt,
982
- ...a
983
- },
984
- className: S("group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full", i),
985
- ...s,
986
- children: o
987
- })
988
- })
989
- });
990
- }
991
- function jt({ side: e = "left", variant: t = "sidebar", collapsible: n = "offcanvas", position: r = "fixed", className: i, children: a, ...o }) {
992
- let { isMobile: s, state: c, openMobile: l, setOpenMobile: u } = Y();
993
- return n === "none" ? /* @__PURE__ */ f("div", {
994
- "data-slot": "sidebar",
995
- className: S("bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col", i),
996
- ...o,
997
- children: a
998
- }) : s ? /* @__PURE__ */ f(B, {
999
- open: l,
1000
- onOpenChange: u,
1001
- ...o,
1002
- children: /* @__PURE__ */ p(V, {
1003
- "data-sidebar": "sidebar",
1004
- "data-slot": "sidebar",
1005
- "data-mobile": "true",
1006
- className: "bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden",
1007
- style: { "--sidebar-width": Et },
1008
- side: e,
1009
- children: [/* @__PURE__ */ p(H, {
1010
- className: "sr-only",
1011
- children: [/* @__PURE__ */ f(U, { children: "Sidebar" }), /* @__PURE__ */ f(W, { children: "Displays the mobile sidebar." })]
1012
- }), /* @__PURE__ */ f("div", {
1013
- className: "flex h-full w-full flex-col",
1014
- children: a
1015
- })]
1016
- })
1017
- }) : /* @__PURE__ */ p("div", {
1018
- className: S("group peer text-sidebar-foreground hidden md:block", r === "absolute" && "relative"),
1019
- "data-state": c,
1020
- "data-collapsible": c === "collapsed" ? n : "",
1021
- "data-variant": t,
1022
- "data-side": e,
1023
- "data-slot": "sidebar",
1024
- children: [/* @__PURE__ */ f("div", {
1025
- "data-slot": "sidebar-gap",
1026
- className: S("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)")
1027
- }), /* @__PURE__ */ f("div", {
1028
- "data-slot": "sidebar-container",
1029
- className: S("inset-y-0 z-10 hidden w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex", r === "absolute" ? "h-full" : "h-svh", r === "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", i),
1030
- ...o,
1031
- children: /* @__PURE__ */ f("div", {
1032
- "data-sidebar": "sidebar",
1033
- "data-slot": "sidebar-inner",
1034
- 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",
1035
- children: a
1036
- })
1037
- })]
1038
- });
1039
- }
1040
- function Mt({ className: e, onClick: t, ...n }) {
1041
- let r = kt();
1042
- if (!r) return null;
1043
- let { toggleSidebar: i, isMobile: a } = r;
1044
- return /* @__PURE__ */ p(F, {
1045
- "data-sidebar": "trigger",
1046
- "data-slot": "sidebar-trigger",
1047
- variant: "ghost",
1048
- size: "icon",
1049
- className: S("size-7", e),
1050
- onClick: (e) => {
1051
- t?.(e), i();
1052
- },
1053
- ...n,
1054
- children: [f(a ? me : _e, {}), /* @__PURE__ */ f("span", {
1055
- className: "sr-only",
1056
- children: "Toggle Sidebar"
1057
- })]
1058
- });
1059
- }
1060
- function Nt({ className: e, ...t }) {
1061
- let { toggleSidebar: n } = Y();
1062
- return /* @__PURE__ */ f("button", {
1063
- "data-sidebar": "rail",
1064
- "data-slot": "sidebar-rail",
1065
- "aria-label": "Toggle Sidebar",
1066
- tabIndex: -1,
1067
- onClick: n,
1068
- title: "Toggle Sidebar",
1069
- className: S("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),
1070
- ...t
1071
- });
1072
- }
1073
- function Pt({ className: e, ...t }) {
1074
- return /* @__PURE__ */ f("main", {
1075
- "data-slot": "sidebar-inset",
1076
- className: S("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),
1077
- ...t
1078
- });
1079
- }
1080
- function Ft({ className: e, ...t }) {
1081
- return /* @__PURE__ */ f(I, {
1082
- "data-slot": "sidebar-input",
1083
- "data-sidebar": "input",
1084
- className: S("bg-background h-8 w-full shadow-none", e),
1085
- ...t
1086
- });
1087
- }
1088
- function It({ className: e, ...t }) {
1089
- return /* @__PURE__ */ f("div", {
1090
- "data-slot": "sidebar-header",
1091
- "data-sidebar": "header",
1092
- className: S("flex flex-col gap-2 p-2", e),
1093
- ...t
1094
- });
1095
- }
1096
- function Lt({ className: e, ...t }) {
1097
- return /* @__PURE__ */ f("div", {
1098
- "data-slot": "sidebar-footer",
1099
- "data-sidebar": "footer",
1100
- className: S("flex flex-col gap-2 p-2", e),
1101
- ...t
1102
- });
1103
- }
1104
- function Rt({ className: e, ...t }) {
1105
- return /* @__PURE__ */ f(z, {
1106
- "data-slot": "sidebar-separator",
1107
- "data-sidebar": "separator",
1108
- className: S("bg-sidebar-border mx-2 w-auto", e),
1109
- ...t
1110
- });
1111
- }
1112
- function zt({ className: e, ...t }) {
1113
- return /* @__PURE__ */ f("div", {
1114
- "data-slot": "sidebar-content",
1115
- "data-sidebar": "content",
1116
- className: S("flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden", e),
1117
- ...t
1118
- });
1119
- }
1120
- function Bt({ className: e, ...t }) {
1121
- return /* @__PURE__ */ f("div", {
1122
- "data-slot": "sidebar-group",
1123
- "data-sidebar": "group",
1124
- className: S("relative flex w-full min-w-0 flex-col p-2", e),
1125
- ...t
1126
- });
1127
- }
1128
- function Vt({ className: e, asChild: t = !1, ...n }) {
1129
- return /* @__PURE__ */ f(t ? h : "div", {
1130
- "data-slot": "sidebar-group-label",
1131
- "data-sidebar": "group-label",
1132
- className: S("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),
1133
- ...n
1134
- });
1135
- }
1136
- function Ht({ className: e, asChild: t = !1, ...n }) {
1137
- return /* @__PURE__ */ f(t ? h : "button", {
1138
- "data-slot": "sidebar-group-action",
1139
- "data-sidebar": "group-action",
1140
- className: S("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),
1141
- ...n
1142
- });
1143
- }
1144
- function Ut({ className: e, ...t }) {
1145
- return /* @__PURE__ */ f("div", {
1146
- "data-slot": "sidebar-group-content",
1147
- "data-sidebar": "group-content",
1148
- className: S("w-full text-sm", e),
1149
- ...t
1150
- });
1151
- }
1152
- function Wt({ className: e, ...t }) {
1153
- return /* @__PURE__ */ f("ul", {
1154
- "data-slot": "sidebar-menu",
1155
- "data-sidebar": "menu",
1156
- className: S("flex w-full min-w-0 flex-col gap-1", e),
1157
- ...t
1158
- });
1159
- }
1160
- function Gt({ className: e, ...t }) {
1161
- return /* @__PURE__ */ f("li", {
1162
- "data-slot": "sidebar-menu-item",
1163
- "data-sidebar": "menu-item",
1164
- className: S("group/menu-item relative", e),
1165
- ...t
1166
- });
1167
- }
1168
- var Kt = g("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", {
1169
- variants: {
1170
- variant: {
1171
- default: "hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
1172
- 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)]"
1173
- },
1174
- size: {
1175
- default: "h-8 text-sm",
1176
- sm: "h-7 text-xs",
1177
- lg: "h-12 text-sm group-data-[collapsible=icon]:p-0!"
1178
- }
1179
- },
1180
- defaultVariants: {
1181
- variant: "default",
1182
- size: "default"
1183
- }
1184
- });
1185
- function qt({ asChild: e = !1, isActive: t = !1, variant: n = "default", size: r = "default", tooltip: i, className: a, ...o }) {
1186
- let s = e ? h : "button", { isMobile: c, state: l } = Y(), u = /* @__PURE__ */ f(s, {
1187
- "data-slot": "sidebar-menu-button",
1188
- "data-sidebar": "menu-button",
1189
- "data-size": r,
1190
- "data-active": t,
1191
- className: S(Kt({
1192
- variant: n,
1193
- size: r
1194
- }), a),
1195
- ...o
1196
- });
1197
- return i ? (typeof i == "string" && (i = { children: i }), /* @__PURE__ */ p(yt, { children: [/* @__PURE__ */ f(bt, {
1198
- asChild: !0,
1199
- children: u
1200
- }), /* @__PURE__ */ f(xt, {
1201
- side: "right",
1202
- align: "center",
1203
- hidden: l !== "collapsed" || c,
1204
- ...i
1205
- })] })) : u;
1206
- }
1207
- function Jt({ className: e, asChild: t = !1, showOnHover: n = !1, ...r }) {
1208
- return /* @__PURE__ */ f(t ? h : "button", {
1209
- "data-slot": "sidebar-menu-action",
1210
- "data-sidebar": "menu-action",
1211
- className: S("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),
1212
- ...r
1213
- });
1214
- }
1215
- function Yt({ className: e, ...t }) {
1216
- return /* @__PURE__ */ f("div", {
1217
- "data-slot": "sidebar-menu-badge",
1218
- "data-sidebar": "menu-badge",
1219
- className: S("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),
1220
- ...t
1221
- });
1222
- }
1223
- function Xt({ className: e, showIcon: t = !1, ...r }) {
1224
- let i = n.useMemo(() => `${Math.floor(Math.random() * 40) + 50}%`, []);
1225
- return /* @__PURE__ */ p("div", {
1226
- "data-slot": "sidebar-menu-skeleton",
1227
- "data-sidebar": "menu-skeleton",
1228
- className: S("flex h-8 items-center gap-2 rounded-md px-2", e),
1229
- ...r,
1230
- children: [t && /* @__PURE__ */ f(G, {
1231
- className: "size-4 rounded-md",
1232
- "data-sidebar": "menu-skeleton-icon"
1233
- }), /* @__PURE__ */ f(G, {
1234
- className: "h-4 max-w-(--skeleton-width) flex-1",
1235
- "data-sidebar": "menu-skeleton-text",
1236
- style: { "--skeleton-width": i }
1237
- })]
1238
- });
1239
- }
1240
- function Zt({ className: e, ...t }) {
1241
- return /* @__PURE__ */ f("ul", {
1242
- "data-slot": "sidebar-menu-sub",
1243
- "data-sidebar": "menu-sub",
1244
- className: S("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),
1245
- ...t
1246
- });
1247
- }
1248
- function Qt({ className: e, ...t }) {
1249
- return /* @__PURE__ */ f("li", {
1250
- "data-slot": "sidebar-menu-sub-item",
1251
- "data-sidebar": "menu-sub-item",
1252
- className: S("group/menu-sub-item relative", e),
1253
- ...t
1254
- });
1255
- }
1256
- function $t({ asChild: e = !1, size: t = "md", isActive: n = !1, className: r, ...i }) {
1257
- return /* @__PURE__ */ f(e ? h : "a", {
1258
- "data-slot": "sidebar-menu-sub-button",
1259
- "data-sidebar": "menu-sub-button",
1260
- "data-size": t,
1261
- "data-active": n,
1262
- className: S("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", r),
1263
- ...i
1264
- });
1265
- }
1266
- //#endregion
1267
- //#region src/components/badge-colorful.tsx
1268
- var en = ({ text: e, href: t, onClick: n, className: r, prefix: i }) => {
1269
- if (!e) return null;
1270
- let a = re(e);
1271
- return /* @__PURE__ */ p(d, { children: [/* @__PURE__ */ p(A, {
1272
- variant: "outline",
1273
- title: e,
1274
- onClick: () => t && n?.(t),
1275
- className: `text-xs font-medium px-2 py-0.5 gap-1.5 cursor-pointer transition-all hover:opacity-80 dynamic-badge-${e.length} ${r ?? ""}`,
1276
- style: {
1277
- "--badge-bg": a.light.bg,
1278
- "--badge-text": a.light.text,
1279
- "--badge-border": a.light.border,
1280
- "--badge-dark-bg": a.dark.bg,
1281
- "--badge-dark-text": a.dark.text,
1282
- "--badge-dark-border": a.dark.border,
1283
- backgroundColor: "var(--badge-bg)",
1284
- color: "var(--badge-text)",
1285
- borderColor: "var(--badge-border)"
1286
- },
1287
- children: [i, /* @__PURE__ */ f("span", { dangerouslySetInnerHTML: { __html: e } })]
1288
- }), /* @__PURE__ */ f("style", {
1289
- suppressHydrationWarning: !0,
1290
- children: `
1291
- .dark [title="${e}"] {
1292
- background-color: var(--badge-dark-bg) !important;
1293
- color: var(--badge-dark-text) !important;
1294
- border-color: var(--badge-dark-border) !important;
1295
- }
1296
- `
1297
- })] });
1298
- }, tn = {
1299
- AR: "SA",
1300
- BN: "BD",
1301
- CA: "ES",
1302
- CS: "CZ",
1303
- DA: "DK",
1304
- DE: "DE",
1305
- EL: "GR",
1306
- EN: "US",
1307
- EU: "ES",
1308
- FA: "IR",
1309
- FI: "FI",
1310
- FIL: "PH",
1311
- FR: "FR",
1312
- GA: "IE",
1313
- GL: "ES",
1314
- GU: "IN",
1315
- HE: "IL",
1316
- HI: "IN",
1317
- HU: "HU",
1318
- ID: "ID",
1319
- IT: "IT",
1320
- JA: "JP",
1321
- KN: "IN",
1322
- KO: "KR",
1323
- MR: "IN",
1324
- MSA: "MY",
1325
- NL: "NL",
1326
- NO: "NO",
1327
- PL: "PL",
1328
- PT: "BR",
1329
- RO: "RO",
1330
- RU: "RU",
1331
- ES: "ES",
1332
- SV: "SE",
1333
- TA: "IN",
1334
- TH: "TH",
1335
- TR: "TR",
1336
- UK: "UA",
1337
- UR: "PK",
1338
- VI: "VN",
1339
- ZH: "CN"
1340
- }, X = { UK: "GB" };
1341
- function nn(e) {
1342
- if (!e) return "";
1343
- let t = e.trim().replaceAll("-", "_").toUpperCase().split("_");
1344
- if (t.length > 1 && t[1].length === 2) {
1345
- let e = t[1];
1346
- return (X[e] || e).toLowerCase();
1347
- }
1348
- let n = t[0], r = tn[n];
1349
- return r ? r.toLowerCase() : (X[n] || n).toLowerCase();
1350
- }
1351
- var rn = ({ locale: e, className: t }) => {
1352
- let [n, r] = u(!1), i = nn(e);
1353
- return c(() => {
1354
- r(!1);
1355
- }, [i]), /* @__PURE__ */ p(A, {
1356
- variant: "secondary",
1357
- className: `font-mono gap-2 py-1 pl-1 pr-2 w-fit ${t}`,
1358
- children: [!n && i ? /* @__PURE__ */ f("img", {
1359
- src: `https://flagcdn.com/w40/${i}.png`,
1360
- alt: i,
1361
- onError: () => r(!0),
1362
- className: "w-5 h-3.5 object-cover rounded-sm shadow-sm"
1363
- }) : /* @__PURE__ */ f(pe, { className: "w-3.5 h-3.5 text-muted-foreground" }), /* @__PURE__ */ f("span", {
1364
- className: "text-xs font-bold uppercase tracking-tight leading-none",
1365
- children: e
1366
- })]
1367
- });
1368
- }, an = r({
1369
- theme: "system",
1370
- setTheme: () => null
1371
- });
1372
- function on({ children: e, defaultTheme: t = "system", storageKey: n = "vite-ui-theme", ...r }) {
1373
- let [i, a] = u(() => localStorage.getItem(n) || t);
1374
- c(() => {
1375
- let e = window.document.documentElement;
1376
- if (e.classList.remove("light", "dark"), i === "system") {
1377
- let t = window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
1378
- e.classList.add(t);
1379
- return;
1380
- }
1381
- e.classList.add(i);
1382
- }, [i]);
1383
- let o = {
1384
- theme: i,
1385
- setTheme: (e) => {
1386
- localStorage.setItem(n, e), a(e);
1387
- }
1388
- };
1389
- return /* @__PURE__ */ f(an.Provider, {
1390
- ...r,
1391
- value: o,
1392
- children: e
1393
- });
1394
- }
1395
- var Z = () => {
1396
- let e = s(an);
1397
- if (e === void 0) throw Error("useTheme must be used within a ThemeProvider");
1398
- return e;
1399
- };
1400
- //#endregion
1401
- //#region src/components/mode-toggle.tsx
1402
- function sn() {
1403
- let { setTheme: e } = Z(), { t } = y();
1404
- return /* @__PURE__ */ p(Je, { children: [/* @__PURE__ */ f(j, {
1405
- asChild: !0,
1406
- children: /* @__PURE__ */ p(F, {
1407
- variant: "outline",
1408
- size: "sm",
1409
- children: [
1410
- /* @__PURE__ */ f(ve, { className: "h-[1.2rem] w-[1.2rem] scale-100 rotate-0 transition-all dark:scale-0 dark:-rotate-90" }),
1411
- /* @__PURE__ */ f(ge, { className: "absolute h-[1.2rem] w-[1.2rem] scale-0 rotate-90 transition-all dark:scale-100 dark:rotate-0" }),
1412
- /* @__PURE__ */ f("span", {
1413
- className: "sr-only",
1414
- children: t("theme.toggle")
1415
- })
1416
- ]
1417
- })
1418
- }), /* @__PURE__ */ p(M, {
1419
- align: "end",
1420
- children: [
1421
- /* @__PURE__ */ f(N, {
1422
- onClick: () => e("light"),
1423
- children: t("theme.light")
1424
- }),
1425
- /* @__PURE__ */ f(N, {
1426
- onClick: () => e("dark"),
1427
- children: t("theme.dark")
1428
- }),
1429
- /* @__PURE__ */ f(N, {
1430
- onClick: () => e("system"),
1431
- children: t("theme.system")
1432
- })
1433
- ]
1434
- })] });
1435
- }
1436
- var Q = [
1437
- {
1438
- value: "light",
1439
- labelKey: "theme.light",
1440
- icon: ve
1441
- },
1442
- {
1443
- value: "dark",
1444
- labelKey: "theme.dark",
1445
- icon: ge
1446
- },
1447
- {
1448
- value: "system",
1449
- labelKey: "theme.system",
1450
- icon: he
1451
- }
1452
- ];
1453
- function cn() {
1454
- let { theme: e, setTheme: t } = Z(), { t: n } = y(), r = Q.find((t) => t.value === e) ?? Q[2];
1455
- function i() {
1456
- let n = Q[(Q.findIndex((t) => t.value === e) + 1) % Q.length];
1457
- t(n.value);
1458
- }
1459
- let a = r.icon;
1460
- return /* @__PURE__ */ p("button", {
1461
- type: "button",
1462
- title: n("theme.toggle"),
1463
- onClick: i,
1464
- 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",
1465
- children: [/* @__PURE__ */ f(a, { className: "size-4 shrink-0" }), /* @__PURE__ */ f("span", { children: n("theme.modeLabel", { mode: n(r.labelKey) }) })]
1466
- });
1467
- }
1468
- //#endregion
1469
- //#region src/contexts/breadcrumb.context.tsx
1470
- var $ = r(void 0);
1471
- function ln({ children: e }) {
1472
- let [t, n] = u([]), r = o((e) => {
1473
- n((t) => t.length > 0 && t[t.length - 1].label === e.label ? t : [...t, e]);
1474
- }, []), i = o(() => {
1475
- n((e) => e.slice(0, -1));
1476
- }, []), a = o((e = []) => {
1477
- n(e);
1478
- }, []), s = l(() => ({
1479
- items: t,
1480
- setItems: n,
1481
- pushItem: r,
1482
- popItem: i,
1483
- resetBreadcrumb: a
1484
- }), [
1485
- t,
1486
- r,
1487
- i,
1488
- a
1489
- ]);
1490
- return /* @__PURE__ */ f($.Provider, {
1491
- value: s,
1492
- children: e
1493
- });
1494
- }
1495
- var un = () => {
1496
- let e = s($);
1497
- if (!e) throw Error("useBreadcrumb must be used within Provider");
1498
- return e;
1499
- }, dn = () => s($);
1500
- //#endregion
1501
- export { ft as $, fe as $t, At as A, He as At, G as B, Ne as Bt, Yt as C, j as Ct, Zt as D, qe as Dt, Xt as E, Ue as Et, St as F, Fe as Ft, vt as G, Te as Gt, ht as H, Ae as Ht, yt as I, Ie as It, mt as J, A as Jt, H as K, Oe as Kt, xt as L, Pe as Lt, Rt as M, Ke as Mt, Mt as N, ze as Nt, $t as O, Ge as Ot, Y as P, je as Pt, st as Q, xe as Qt, K as R, Le as Rt, Jt as S, it as St, Gt as T, Ve as Tt, V as U, Ee as Ut, B as V, we as Vt, W, De as Wt, ot as X, be as Xt, z as Y, Ce as Yt, ut as Z, Se as Zt, Vt as _, $e as _t, cn as a, ne as an, ct as at, Pt as b, rt as bt, rn as c, P as ct, jt as d, M as dt, k as en, dt as et, zt as f, Xe as ft, Ut as g, Qe as gt, Ht as h, Ye as ht, sn as i, S as in, lt as it, Nt as j, Be as jt, Qt as k, We as kt, nn as l, Je as lt, Bt as m, et as mt, un as n, D as nn, L as nt, on as o, re as on, I as ot, Lt as p, N as pt, U as q, ke as qt, dn as r, E as rn, pt as rt, Z as s, te as sn, F as st, ln as t, O as tn, R as tt, en as u, Ze as ut, It as v, tt as vt, qt as w, Re as wt, Wt as x, at as xt, Ft as y, nt as yt, bt as z, Me as zt };