@viglet/viglet-design-system 2026.3.2 → 2026.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (184) hide show
  1. package/README.md +334 -8
  2. package/dist/assets.cjs +1 -0
  3. package/dist/assets.es.js +2 -0
  4. package/dist/badge-locale-BxI9TwkE.js +579 -0
  5. package/dist/badge-locale-sIsBdP_e.cjs +7 -0
  6. package/dist/bento/bento-actions-menu.d.ts +42 -0
  7. package/dist/bento/bento-actions-menu.d.ts.map +1 -0
  8. package/dist/bento/bento-back-to-top.d.ts +11 -0
  9. package/dist/bento/bento-back-to-top.d.ts.map +1 -0
  10. package/dist/bento/bento-command-palette.d.ts +28 -0
  11. package/dist/bento/bento-command-palette.d.ts.map +1 -0
  12. package/dist/bento/bento-count-tile.d.ts +18 -0
  13. package/dist/bento/bento-count-tile.d.ts.map +1 -0
  14. package/dist/bento/bento-empty-state.d.ts +35 -0
  15. package/dist/bento/bento-empty-state.d.ts.map +1 -0
  16. package/dist/bento/bento-entity-shell.d.ts +123 -0
  17. package/dist/bento/bento-entity-shell.d.ts.map +1 -0
  18. package/dist/bento/bento-entity-tile.d.ts +40 -0
  19. package/dist/bento/bento-entity-tile.d.ts.map +1 -0
  20. package/dist/bento/bento-form-hero.d.ts +91 -0
  21. package/dist/bento/bento-form-hero.d.ts.map +1 -0
  22. package/dist/bento/bento-form-section.d.ts +31 -0
  23. package/dist/bento/bento-form-section.d.ts.map +1 -0
  24. package/dist/bento/bento-hero-icon-picker.d.ts +35 -0
  25. package/dist/bento/bento-hero-icon-picker.d.ts.map +1 -0
  26. package/dist/bento/bento-hero.d.ts +62 -0
  27. package/dist/bento/bento-hero.d.ts.map +1 -0
  28. package/dist/bento/bento-inline-edit.d.ts +52 -0
  29. package/dist/bento/bento-inline-edit.d.ts.map +1 -0
  30. package/dist/bento/bento-layout.d.ts +52 -0
  31. package/dist/bento/bento-layout.d.ts.map +1 -0
  32. package/dist/bento/bento-list-page.d.ts +124 -0
  33. package/dist/bento/bento-list-page.d.ts.map +1 -0
  34. package/dist/bento/bento-nav-rail.d.ts +32 -0
  35. package/dist/bento/bento-nav-rail.d.ts.map +1 -0
  36. package/dist/bento/bento-nav.d.ts +69 -0
  37. package/dist/bento/bento-nav.d.ts.map +1 -0
  38. package/dist/bento/bento-save-bar.d.ts +36 -0
  39. package/dist/bento/bento-save-bar.d.ts.map +1 -0
  40. package/dist/bento/bento-scroll-fade.d.ts +20 -0
  41. package/dist/bento/bento-scroll-fade.d.ts.map +1 -0
  42. package/dist/bento/bento-scroll-save-bar.d.ts +22 -0
  43. package/dist/bento/bento-scroll-save-bar.d.ts.map +1 -0
  44. package/dist/bento/bento-section-chrome.d.ts +60 -0
  45. package/dist/bento/bento-section-chrome.d.ts.map +1 -0
  46. package/dist/bento/bento-section.d.ts +27 -0
  47. package/dist/bento/bento-section.d.ts.map +1 -0
  48. package/dist/bento/bento-shortcuts-dialog.d.ts +15 -0
  49. package/dist/bento/bento-shortcuts-dialog.d.ts.map +1 -0
  50. package/dist/bento/bento-status-marker.d.ts +26 -0
  51. package/dist/bento/bento-status-marker.d.ts.map +1 -0
  52. package/dist/bento/bento-tile.d.ts +42 -0
  53. package/dist/bento/bento-tile.d.ts.map +1 -0
  54. package/dist/bento/bento-tones.d.ts +33 -0
  55. package/dist/bento/bento-tones.d.ts.map +1 -0
  56. package/dist/bento/bento-user-menu.d.ts +31 -0
  57. package/dist/bento/bento-user-menu.d.ts.map +1 -0
  58. package/dist/bento/index.d.ts +59 -0
  59. package/dist/bento/index.d.ts.map +1 -0
  60. package/dist/bento.cjs +1 -0
  61. package/dist/bento.css +442 -0
  62. package/dist/bento.es.js +1502 -0
  63. package/dist/breadcrumb.context-CGqjI0-U.js +914 -0
  64. package/dist/breadcrumb.context-DYeZEC65.cjs +1 -0
  65. package/dist/components/app-switcher.d.ts +2 -0
  66. package/dist/components/app-switcher.d.ts.map +1 -1
  67. package/dist/components/badge-locale.d.ts.map +1 -1
  68. package/dist/components/error-boundary.d.ts.map +1 -1
  69. package/dist/components/language-select.d.ts.map +1 -1
  70. package/dist/components/router/blank-slate.d.ts +10 -0
  71. package/dist/components/router/blank-slate.d.ts.map +1 -1
  72. package/dist/components/router/grid.list.d.ts +13 -0
  73. package/dist/components/router/grid.list.d.ts.map +1 -1
  74. package/dist/components/router/internal.sidebar.d.ts +39 -3
  75. package/dist/components/router/internal.sidebar.d.ts.map +1 -1
  76. package/dist/components/router/loading-provider.d.ts +6 -1
  77. package/dist/components/router/loading-provider.d.ts.map +1 -1
  78. package/dist/components/router/nav-main.d.ts +10 -0
  79. package/dist/components/router/nav-main.d.ts.map +1 -1
  80. package/dist/components/router/nav-user.d.ts +13 -0
  81. package/dist/components/router/nav-user.d.ts.map +1 -1
  82. package/dist/components/router/page-content.d.ts +10 -0
  83. package/dist/components/router/page-content.d.ts.map +1 -1
  84. package/dist/components/router/page-header.d.ts +13 -0
  85. package/dist/components/router/page-header.d.ts.map +1 -1
  86. package/dist/components/router/page.d.ts +13 -0
  87. package/dist/components/router/page.d.ts.map +1 -1
  88. package/dist/components/router/sticky.page.header.d.ts +14 -0
  89. package/dist/components/router/sticky.page.header.d.ts.map +1 -1
  90. package/dist/components/router/sub.page.d.ts +31 -11
  91. package/dist/components/router/sub.page.d.ts.map +1 -1
  92. package/dist/components/router/sub.page.header.d.ts +13 -0
  93. package/dist/components/router/sub.page.header.d.ts.map +1 -1
  94. package/dist/components/startup-first/startup-first.d.ts.map +1 -1
  95. package/dist/components/theme-provider.d.ts +37 -2
  96. package/dist/components/theme-provider.d.ts.map +1 -1
  97. package/dist/components/ui/floating-formulas-bg.d.ts +8 -1
  98. package/dist/components/ui/floating-formulas-bg.d.ts.map +1 -1
  99. package/dist/components/ui/form.d.ts +2 -2
  100. package/dist/components/ui/form.d.ts.map +1 -1
  101. package/dist/components/ui/gradient-button.d.ts.map +1 -1
  102. package/dist/components/ui/gradient-switch.d.ts.map +1 -1
  103. package/dist/components/ui/icon-picker-dialog.d.ts +35 -0
  104. package/dist/components/ui/icon-picker-dialog.d.ts.map +1 -0
  105. package/dist/components/ui/index.d.ts +1 -0
  106. package/dist/components/ui/index.d.ts.map +1 -1
  107. package/dist/components/ui/section-card.d.ts +3 -3
  108. package/dist/components/ui/section-card.d.ts.map +1 -1
  109. package/dist/components/ui/sidebar.d.ts.map +1 -1
  110. package/dist/components/ui/slider.d.ts +1 -1
  111. package/dist/components/ui/slider.d.ts.map +1 -1
  112. package/dist/components/viglet-app-switcher.d.ts +3 -0
  113. package/dist/components/viglet-app-switcher.d.ts.map +1 -1
  114. package/dist/contexts/user.context.d.ts +24 -0
  115. package/dist/contexts/user.context.d.ts.map +1 -1
  116. package/dist/exports.json +404 -0
  117. package/dist/floating-formulas-bg.cjs +1 -0
  118. package/dist/floating-formulas-bg.css +21 -0
  119. package/dist/floating-formulas-bg.es.js +84 -56
  120. package/dist/fonts/inter-cyrillic-ext-wght-normal.woff2 +0 -0
  121. package/dist/fonts/inter-cyrillic-wght-normal.woff2 +0 -0
  122. package/dist/fonts/inter-greek-ext-wght-normal.woff2 +0 -0
  123. package/dist/fonts/inter-greek-wght-normal.woff2 +0 -0
  124. package/dist/fonts/inter-latin-ext-wght-normal.woff2 +0 -0
  125. package/dist/fonts/inter-latin-wght-normal.woff2 +0 -0
  126. package/dist/fonts/inter-vietnamese-wght-normal.woff2 +0 -0
  127. package/dist/fonts/plus-jakarta-sans-cyrillic-ext-wght-normal.woff2 +0 -0
  128. package/dist/fonts/plus-jakarta-sans-latin-ext-wght-normal.woff2 +0 -0
  129. package/dist/fonts/plus-jakarta-sans-latin-wght-normal.woff2 +0 -0
  130. package/dist/fonts/plus-jakarta-sans-vietnamese-wght-normal.woff2 +0 -0
  131. package/dist/fonts.css +126 -0
  132. package/dist/hooks/use-grid-adapter.d.ts.map +1 -1
  133. package/dist/hooks/use-mobile.d.ts +10 -0
  134. package/dist/hooks/use-mobile.d.ts.map +1 -1
  135. package/dist/hooks/use-sub-page-breadcrumb.d.ts.map +1 -1
  136. package/dist/i18n/index.d.ts +136 -0
  137. package/dist/i18n/index.d.ts.map +1 -1
  138. package/dist/i18n/locales/en/bento.json.d.ts +51 -0
  139. package/dist/i18n/locales/en/common.json.d.ts +7 -1
  140. package/dist/i18n/locales/en/forms.json.d.ts +15 -1
  141. package/dist/i18n/locales/en/nav.json.d.ts +3 -1
  142. package/dist/i18n/locales/pt/bento.json.d.ts +51 -0
  143. package/dist/i18n/locales/pt/common.json.d.ts +7 -1
  144. package/dist/i18n/locales/pt/forms.json.d.ts +15 -1
  145. package/dist/i18n/locales/pt/nav.json.d.ts +3 -1
  146. package/dist/i18n-DoNdMLEd.cjs +1 -0
  147. package/dist/{i18n-C94rDRaM.js → i18n-DuNITbWa.js} +155 -27
  148. package/dist/i18n.cjs +1 -0
  149. package/dist/i18n.es.js +2 -1
  150. package/dist/index.cjs +1 -0
  151. package/dist/index.d.ts +0 -1
  152. package/dist/index.d.ts.map +1 -1
  153. package/dist/index.es.js +493 -750
  154. package/dist/lib/axios.d.ts.map +1 -1
  155. package/dist/lib/export-xlsx.d.ts +7 -1
  156. package/dist/lib/export-xlsx.d.ts.map +1 -1
  157. package/dist/lib/react-markers.d.ts +17 -0
  158. package/dist/lib/react-markers.d.ts.map +1 -0
  159. package/dist/lib/utils.d.ts +22 -0
  160. package/dist/lib/utils.d.ts.map +1 -1
  161. package/dist/loading-provider-1mgM91iY.cjs +1 -0
  162. package/dist/loading-provider-CMnOuvdR.js +224 -0
  163. package/dist/preset.css +103 -3
  164. package/dist/products-DL_YYXkV.cjs +1 -0
  165. package/dist/products-Du9KB6Xl.js +9 -0
  166. package/dist/{rolldown-runtime-CMqjfN_6.cjs → rolldown-runtime-BocRIvOZ.cjs} +1 -1
  167. package/dist/router.cjs +1 -0
  168. package/dist/router.es.js +334 -504
  169. package/dist/user.context-kPAqKN4o.js +512 -0
  170. package/dist/user.context-r50nSWER.cjs +1 -0
  171. package/dist/viglet-design-system.css +1 -1
  172. package/dist/vite/boot-loader.d.ts +21 -7
  173. package/dist/vite/boot-loader.d.ts.map +1 -1
  174. package/dist/{vite.cjs.js → vite.cjs} +8 -8
  175. package/dist/vite.es.js +29 -16
  176. package/package.json +66 -22
  177. package/scripts/check-duplicates.mjs +198 -0
  178. package/dist/breadcrumb.context-C7VCfh49.js +0 -1501
  179. package/dist/breadcrumb.context-Td6Tjc_z.cjs +0 -7
  180. package/dist/floating-formulas-bg.cjs.js +0 -1
  181. package/dist/i18n-DN_2YzjB.cjs +0 -1
  182. package/dist/i18n.cjs.js +0 -1
  183. package/dist/index.cjs.js +0 -1
  184. package/dist/router.cjs.js +0 -1
@@ -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 ee } from "react-i18next";
12
- import * as y from "@radix-ui/react-select";
13
- import * as te from "@radix-ui/react-separator";
14
- import * as b from "@radix-ui/react-tooltip";
15
- //#region src/lib/utils.ts
16
- function x(...n) {
17
- return t(e(n));
18
- }
19
- var ne = (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
- }, re = (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
- }, S = (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
- }, ie = (...e) => e.filter((e, t, n) => !!e && e.trim() !== "" && n.indexOf(e) === t).join(" ").trim(), ae = (e) => e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), oe = (e) => e.replace(/^([A-Z])|[\s-_]+(\w)/g, (e, t, n) => n ? n.toUpperCase() : t.toLowerCase()), se = (e) => {
44
- let t = oe(e);
45
- return t.charAt(0).toUpperCase() + t.slice(1);
46
- }, C = {
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
- }, ce = (e) => {
57
- for (let t in e) if (t.startsWith("aria-") || t === "role" || t === "title") return !0;
58
- return !1;
59
- }, le = r({}), ue = () => s(le), de = 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 = "" } = ue() ?? {}, h = r ?? f ? Number(n ?? d) * 24 / Number(t ?? u) : n ?? d;
61
- return i("svg", {
62
- ref: l,
63
- ...C,
64
- width: t ?? u ?? C.width,
65
- height: t ?? u ?? C.height,
66
- stroke: e ?? p,
67
- strokeWidth: h,
68
- className: ie("lucide", m, a),
69
- ...!o && !ce(c) && { "aria-hidden": "true" },
70
- ...c
71
- }, [...s.map(([e, t]) => i(e, t)), ...Array.isArray(o) ? o : [o]]);
72
- }), w = (e, t) => {
73
- let n = a(({ className: n, ...r }, a) => i(de, {
74
- ref: a,
75
- iconNode: t,
76
- className: ie(`lucide-${ae(se(e))}`, `lucide-${e}`, n),
77
- ...r
78
- }));
79
- return n.displayName = se(e), n;
80
- }, T = w("ellipsis", [
81
- ["circle", {
82
- cx: "12",
83
- cy: "12",
84
- r: "1",
85
- key: "41hilf"
86
- }],
87
- ["circle", {
88
- cx: "19",
89
- cy: "12",
90
- r: "1",
91
- key: "1wjl8i"
92
- }],
93
- ["circle", {
94
- cx: "5",
95
- cy: "12",
96
- r: "1",
97
- key: "1pcz8c"
98
- }]
99
- ]), fe = w("panel-left", [["rect", {
100
- width: "18",
101
- height: "18",
102
- x: "3",
103
- y: "3",
104
- rx: "2",
105
- key: "afitv7"
106
- }], ["path", {
107
- d: "M9 3v18",
108
- key: "fh3hqa"
109
- }]]), E = w("check", [["path", {
110
- d: "M20 6 9 17l-5-5",
111
- key: "1gmf2c"
112
- }]]), D = w("chevron-down", [["path", {
113
- d: "m6 9 6 6 6-6",
114
- key: "qrunsl"
115
- }]]), O = w("chevron-right", [["path", {
116
- d: "m9 18 6-6-6-6",
117
- key: "mthhwq"
118
- }]]), pe = w("chevron-up", [["path", {
119
- d: "m18 15-6-6-6 6",
120
- key: "153udz"
121
- }]]), me = w("circle", [["circle", {
122
- cx: "12",
123
- cy: "12",
124
- r: "10",
125
- key: "1mglay"
126
- }]]), he = w("globe", [
127
- ["circle", {
128
- cx: "12",
129
- cy: "12",
130
- r: "10",
131
- key: "1mglay"
132
- }],
133
- ["path", {
134
- d: "M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",
135
- key: "13o1zl"
136
- }],
137
- ["path", {
138
- d: "M2 12h20",
139
- key: "9i4pu4"
140
- }]
141
- ]), ge = w("menu", [
142
- ["path", {
143
- d: "M4 5h16",
144
- key: "1tepv9"
145
- }],
146
- ["path", {
147
- d: "M4 12h16",
148
- key: "1lakjw"
149
- }],
150
- ["path", {
151
- d: "M4 19h16",
152
- key: "1djgab"
153
- }]
154
- ]), _e = w("monitor", [
155
- ["rect", {
156
- width: "20",
157
- height: "14",
158
- x: "2",
159
- y: "3",
160
- rx: "2",
161
- key: "48i651"
162
- }],
163
- ["line", {
164
- x1: "8",
165
- x2: "16",
166
- y1: "21",
167
- y2: "21",
168
- key: "1svkeh"
169
- }],
170
- ["line", {
171
- x1: "12",
172
- x2: "12",
173
- y1: "17",
174
- y2: "21",
175
- key: "vw1qmm"
176
- }]
177
- ]), ve = w("moon", [["path", {
178
- 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",
179
- key: "kfwtm"
180
- }]]), k = w("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
- ]), A = w("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 ye({ className: e, ...t }) {
229
- return /* @__PURE__ */ f(m.Root, {
230
- "data-slot": "avatar",
231
- className: x("relative flex size-8 shrink-0 overflow-hidden rounded-full", e),
232
- ...t
233
- });
234
- }
235
- function be({ className: e, ...t }) {
236
- return /* @__PURE__ */ f(m.Image, {
237
- "data-slot": "avatar-image",
238
- className: x("aspect-square size-full", e),
239
- ...t
240
- });
241
- }
242
- function xe({ className: e, ...t }) {
243
- return /* @__PURE__ */ f(m.Fallback, {
244
- "data-slot": "avatar-fallback",
245
- className: x("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 Se = 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 j({ className: e, variant: t, asChild: n = !1, ...r }) {
261
- return /* @__PURE__ */ f(n ? h : "span", {
262
- "data-slot": "badge",
263
- className: x(Se({ variant: t }), e),
264
- ...r
265
- });
266
- }
267
- //#endregion
268
- //#region src/components/ui/breadcrumb.tsx
269
- function Ce({ ...e }) {
270
- return /* @__PURE__ */ f("nav", {
271
- "aria-label": "breadcrumb",
272
- "data-slot": "breadcrumb",
273
- ...e
274
- });
275
- }
276
- function we({ className: e, ...t }) {
277
- return /* @__PURE__ */ f("ol", {
278
- "data-slot": "breadcrumb-list",
279
- className: x("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 Te({ className: e, ...t }) {
284
- return /* @__PURE__ */ f("li", {
285
- "data-slot": "breadcrumb-item",
286
- className: x("inline-flex items-center gap-1.5", e),
287
- ...t
288
- });
289
- }
290
- function Ee({ asChild: e, className: t, ...n }) {
291
- return /* @__PURE__ */ f(e ? h : "a", {
292
- "data-slot": "breadcrumb-link",
293
- className: x("hover:text-foreground transition-colors", t),
294
- ...n
295
- });
296
- }
297
- function De({ 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: x("text-foreground font-normal", e),
304
- ...t
305
- });
306
- }
307
- function Oe({ children: e, className: t, ...n }) {
308
- return /* @__PURE__ */ f("li", {
309
- "data-slot": "breadcrumb-separator",
310
- role: "presentation",
311
- "aria-hidden": "true",
312
- className: x("[&>svg]:size-3.5", t),
313
- ...n,
314
- children: e ?? /* @__PURE__ */ f(O, {})
315
- });
316
- }
317
- function ke({ className: e, ...t }) {
318
- return /* @__PURE__ */ p("span", {
319
- "data-slot": "breadcrumb-ellipsis",
320
- role: "presentation",
321
- "aria-hidden": "true",
322
- className: x("flex size-9 items-center justify-center", e),
323
- ...t,
324
- children: [/* @__PURE__ */ f(T, { 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 Ae({ className: e, ...t }) {
333
- return /* @__PURE__ */ f("div", {
334
- "data-slot": "card",
335
- className: x("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm", e),
336
- ...t
337
- });
338
- }
339
- function je({ className: e, ...t }) {
340
- return /* @__PURE__ */ f("div", {
341
- "data-slot": "card-header",
342
- className: x("@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 Me({ className: e, ...t }) {
347
- return /* @__PURE__ */ f("div", {
348
- "data-slot": "card-title",
349
- className: x("leading-none font-semibold", e),
350
- ...t
351
- });
352
- }
353
- function Ne({ className: e, ...t }) {
354
- return /* @__PURE__ */ f("div", {
355
- "data-slot": "card-description",
356
- className: x("text-muted-foreground text-sm", e),
357
- ...t
358
- });
359
- }
360
- function Pe({ className: e, ...t }) {
361
- return /* @__PURE__ */ f("div", {
362
- "data-slot": "card-action",
363
- className: x("col-start-2 row-span-2 row-start-1 self-start justify-self-end", e),
364
- ...t
365
- });
366
- }
367
- function Fe({ className: e, ...t }) {
368
- return /* @__PURE__ */ f("div", {
369
- "data-slot": "card-content",
370
- className: x("px-6", e),
371
- ...t
372
- });
373
- }
374
- function Ie({ className: e, ...t }) {
375
- return /* @__PURE__ */ f("div", {
376
- "data-slot": "card-footer",
377
- className: x("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 Le({ ...e }) {
384
- return /* @__PURE__ */ f(_.Root, {
385
- "data-slot": "dialog",
386
- ...e
387
- });
388
- }
389
- function Re({ ...e }) {
390
- return /* @__PURE__ */ f(_.Trigger, {
391
- "data-slot": "dialog-trigger",
392
- ...e
393
- });
394
- }
395
- function ze({ ...e }) {
396
- return /* @__PURE__ */ f(_.Portal, {
397
- "data-slot": "dialog-portal",
398
- ...e
399
- });
400
- }
401
- function Be({ ...e }) {
402
- return /* @__PURE__ */ f(_.Close, {
403
- "data-slot": "dialog-close",
404
- ...e
405
- });
406
- }
407
- function Ve({ className: e, ...t }) {
408
- return /* @__PURE__ */ f(_.Overlay, {
409
- "data-slot": "dialog-overlay",
410
- className: x("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 He({ className: e, children: t, showCloseButton: n = !0, ...r }) {
415
- return /* @__PURE__ */ p(ze, {
416
- "data-slot": "dialog-portal",
417
- children: [/* @__PURE__ */ f(Ve, {}), /* @__PURE__ */ p(_.Content, {
418
- "data-slot": "dialog-content",
419
- className: x("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(A, {}), /* @__PURE__ */ f("span", {
425
- className: "sr-only",
426
- children: "Close"
427
- })]
428
- })]
429
- })]
430
- });
431
- }
432
- function Ue({ className: e, ...t }) {
433
- return /* @__PURE__ */ f("div", {
434
- "data-slot": "dialog-header",
435
- className: x("flex flex-col gap-2 text-center sm:text-left", e),
436
- ...t
437
- });
438
- }
439
- function We({ className: e, ...t }) {
440
- return /* @__PURE__ */ f("div", {
441
- "data-slot": "dialog-footer",
442
- className: x("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end", e),
443
- ...t
444
- });
445
- }
446
- function Ge({ className: e, ...t }) {
447
- return /* @__PURE__ */ f(_.Title, {
448
- "data-slot": "dialog-title",
449
- className: x("text-lg leading-none font-semibold", e),
450
- ...t
451
- });
452
- }
453
- function Ke({ className: e, ...t }) {
454
- return /* @__PURE__ */ f(_.Description, {
455
- "data-slot": "dialog-description",
456
- className: x("text-muted-foreground text-sm", e),
457
- ...t
458
- });
459
- }
460
- //#endregion
461
- //#region src/components/ui/dropdown-menu.tsx
462
- function qe({ ...e }) {
463
- return /* @__PURE__ */ f(v.Root, {
464
- "data-slot": "dropdown-menu",
465
- ...e
466
- });
467
- }
468
- function Je({ ...e }) {
469
- return /* @__PURE__ */ f(v.Portal, {
470
- "data-slot": "dropdown-menu-portal",
471
- ...e
472
- });
473
- }
474
- function M({ ...e }) {
475
- return /* @__PURE__ */ f(v.Trigger, {
476
- "data-slot": "dropdown-menu-trigger",
477
- ...e
478
- });
479
- }
480
- function N({ 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: x("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 Ye({ ...e }) {
489
- return /* @__PURE__ */ f(v.Group, {
490
- "data-slot": "dropdown-menu-group",
491
- ...e
492
- });
493
- }
494
- function P({ 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: x("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 Xe({ className: e, children: t, checked: n, ...r }) {
504
- return /* @__PURE__ */ p(v.CheckboxItem, {
505
- "data-slot": "dropdown-menu-checkbox-item",
506
- className: x("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(E, { className: "size-4" }) })
512
- }), t]
513
- });
514
- }
515
- function Ze({ ...e }) {
516
- return /* @__PURE__ */ f(v.RadioGroup, {
517
- "data-slot": "dropdown-menu-radio-group",
518
- ...e
519
- });
520
- }
521
- function Qe({ className: e, children: t, ...n }) {
522
- return /* @__PURE__ */ p(v.RadioItem, {
523
- "data-slot": "dropdown-menu-radio-item",
524
- className: x("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(me, { className: "size-2 fill-current" }) })
529
- }), t]
530
- });
531
- }
532
- function $e({ className: e, inset: t, ...n }) {
533
- return /* @__PURE__ */ f(v.Label, {
534
- "data-slot": "dropdown-menu-label",
535
- "data-inset": t,
536
- className: x("px-2 py-1.5 text-sm font-medium data-[inset]:pl-8", e),
537
- ...n
538
- });
539
- }
540
- function et({ className: e, ...t }) {
541
- return /* @__PURE__ */ f(v.Separator, {
542
- "data-slot": "dropdown-menu-separator",
543
- className: x("bg-border -mx-1 my-1 h-px", e),
544
- ...t
545
- });
546
- }
547
- function tt({ className: e, ...t }) {
548
- return /* @__PURE__ */ f("span", {
549
- "data-slot": "dropdown-menu-shortcut",
550
- className: x("text-muted-foreground ml-auto text-xs tracking-widest", e),
551
- ...t
552
- });
553
- }
554
- function nt({ ...e }) {
555
- return /* @__PURE__ */ f(v.Sub, {
556
- "data-slot": "dropdown-menu-sub",
557
- ...e
558
- });
559
- }
560
- function rt({ 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: x("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(O, { className: "ml-auto size-4" })]
567
- });
568
- }
569
- function it({ className: e, ...t }) {
570
- return /* @__PURE__ */ f(v.SubContent, {
571
- "data-slot": "dropdown-menu-sub-content",
572
- className: x("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 F = 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 I({ className: e, variant: t, size: n, asChild: r = !1, loading: i = !1, ...a }) {
663
- let o = x(F({
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 L({ className: e, type: t, ...n }) {
696
- return /* @__PURE__ */ f("input", {
697
- type: t,
698
- "data-slot": "input",
699
- className: x("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 at({ ...e }) {
706
- return /* @__PURE__ */ f(y.Root, {
707
- "data-slot": "select",
708
- ...e
709
- });
710
- }
711
- function ot({ ...e }) {
712
- return /* @__PURE__ */ f(y.Group, {
713
- "data-slot": "select-group",
714
- ...e
715
- });
716
- }
717
- function st({ ...e }) {
718
- return /* @__PURE__ */ f(y.Value, {
719
- "data-slot": "select-value",
720
- ...e
721
- });
722
- }
723
- function ct({ className: e, size: t = "default", children: n, ...r }) {
724
- return /* @__PURE__ */ p(y.Trigger, {
725
- "data-slot": "select-trigger",
726
- "data-size": t,
727
- className: x("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(y.Icon, {
730
- asChild: !0,
731
- children: /* @__PURE__ */ f(D, { className: "size-4 opacity-50" })
732
- })]
733
- });
734
- }
735
- function lt({ className: e, children: t, position: n = "popper", align: r = "center", ...i }) {
736
- return /* @__PURE__ */ f(y.Portal, { children: /* @__PURE__ */ p(y.Content, {
737
- "data-slot": "select-content",
738
- className: x("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(R, {}),
744
- /* @__PURE__ */ f(y.Viewport, {
745
- className: x("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(z, {})
749
- ]
750
- }) });
751
- }
752
- function ut({ className: e, ...t }) {
753
- return /* @__PURE__ */ f(y.Label, {
754
- "data-slot": "select-label",
755
- className: x("text-muted-foreground px-2 py-1.5 text-xs", e),
756
- ...t
757
- });
758
- }
759
- function dt({ className: e, children: t, ...n }) {
760
- return /* @__PURE__ */ p(y.Item, {
761
- "data-slot": "select-item",
762
- className: x("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(y.ItemIndicator, { children: /* @__PURE__ */ f(E, { className: "size-4" }) })
767
- }), /* @__PURE__ */ f(y.ItemText, { children: t })]
768
- });
769
- }
770
- function ft({ className: e, ...t }) {
771
- return /* @__PURE__ */ f(y.Separator, {
772
- "data-slot": "select-separator",
773
- className: x("bg-border pointer-events-none -mx-1 my-1 h-px", e),
774
- ...t
775
- });
776
- }
777
- function R({ className: e, ...t }) {
778
- return /* @__PURE__ */ f(y.ScrollUpButton, {
779
- "data-slot": "select-scroll-up-button",
780
- className: x("flex cursor-default items-center justify-center py-1", e),
781
- ...t,
782
- children: /* @__PURE__ */ f(pe, { className: "size-4" })
783
- });
784
- }
785
- function z({ className: e, ...t }) {
786
- return /* @__PURE__ */ f(y.ScrollDownButton, {
787
- "data-slot": "select-scroll-down-button",
788
- className: x("flex cursor-default items-center justify-center py-1", e),
789
- ...t,
790
- children: /* @__PURE__ */ f(D, { className: "size-4" })
791
- });
792
- }
793
- //#endregion
794
- //#region src/components/ui/separator.tsx
795
- function B({ className: e, orientation: t = "horizontal", decorative: n = !0, ...r }) {
796
- return /* @__PURE__ */ f(te.Root, {
797
- "data-slot": "separator",
798
- decorative: n,
799
- orientation: t,
800
- className: x("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 V({ ...e }) {
807
- return /* @__PURE__ */ f(_.Root, {
808
- "data-slot": "sheet",
809
- ...e
810
- });
811
- }
812
- function pt({ ...e }) {
813
- return /* @__PURE__ */ f(_.Trigger, {
814
- "data-slot": "sheet-trigger",
815
- ...e
816
- });
817
- }
818
- function mt({ ...e }) {
819
- return /* @__PURE__ */ f(_.Close, {
820
- "data-slot": "sheet-close",
821
- ...e
822
- });
823
- }
824
- function ht({ ...e }) {
825
- return /* @__PURE__ */ f(_.Portal, {
826
- "data-slot": "sheet-portal",
827
- ...e
828
- });
829
- }
830
- function gt({ className: e, ...t }) {
831
- return /* @__PURE__ */ f(_.Overlay, {
832
- "data-slot": "sheet-overlay",
833
- className: x("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 H({ className: e, children: t, side: n = "right", ...r }) {
838
- return /* @__PURE__ */ p(ht, { children: [/* @__PURE__ */ f(gt, {}), /* @__PURE__ */ p(_.Content, {
839
- "data-slot": "sheet-content",
840
- className: x("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(A, { className: "size-4" }), /* @__PURE__ */ f("span", {
845
- className: "sr-only",
846
- children: "Close"
847
- })]
848
- })]
849
- })] });
850
- }
851
- function U({ className: e, ...t }) {
852
- return /* @__PURE__ */ f("div", {
853
- "data-slot": "sheet-header",
854
- className: x("flex flex-col gap-1.5 p-4", e),
855
- ...t
856
- });
857
- }
858
- function _t({ className: e, ...t }) {
859
- return /* @__PURE__ */ f("div", {
860
- "data-slot": "sheet-footer",
861
- className: x("mt-auto flex flex-col gap-2 p-4", e),
862
- ...t
863
- });
864
- }
865
- function W({ className: e, ...t }) {
866
- return /* @__PURE__ */ f(_.Title, {
867
- "data-slot": "sheet-title",
868
- className: x("text-foreground font-semibold", e),
869
- ...t
870
- });
871
- }
872
- function G({ className: e, ...t }) {
873
- return /* @__PURE__ */ f(_.Description, {
874
- "data-slot": "sheet-description",
875
- className: x("text-muted-foreground text-sm", e),
876
- ...t
877
- });
878
- }
879
- //#endregion
880
- //#region src/components/ui/skeleton.tsx
881
- function K({ className: e, ...t }) {
882
- return /* @__PURE__ */ f("div", {
883
- "data-slot": "skeleton",
884
- className: x("bg-accent animate-pulse rounded-md", e),
885
- ...t
886
- });
887
- }
888
- //#endregion
889
- //#region src/components/ui/tooltip.tsx
890
- function q({ delayDuration: e = 0, ...t }) {
891
- return /* @__PURE__ */ f(b.Provider, {
892
- "data-slot": "tooltip-provider",
893
- delayDuration: e,
894
- ...t
895
- });
896
- }
897
- function vt({ ...e }) {
898
- return /* @__PURE__ */ f(q, { children: /* @__PURE__ */ f(b.Root, {
899
- "data-slot": "tooltip",
900
- ...e
901
- }) });
902
- }
903
- function yt({ ...e }) {
904
- return /* @__PURE__ */ f(b.Trigger, {
905
- "data-slot": "tooltip-trigger",
906
- ...e
907
- });
908
- }
909
- function bt({ className: e, sideOffset: t = 0, children: n, ...r }) {
910
- return /* @__PURE__ */ f(b.Portal, { children: /* @__PURE__ */ p(b.Content, {
911
- "data-slot": "tooltip-content",
912
- sideOffset: t,
913
- className: x("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(b.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 J = 768;
921
- function xt() {
922
- let [e, t] = n.useState(void 0);
923
- return n.useEffect(() => {
924
- let e = window.matchMedia(`(max-width: ${J - 1}px)`), n = () => {
925
- t(window.innerWidth < J);
926
- };
927
- return e.addEventListener("change", n), t(window.innerWidth < J), () => e.removeEventListener("change", n);
928
- }, []), !!e;
929
- }
930
- //#endregion
931
- //#region src/components/ui/sidebar.tsx
932
- var St = "sidebar_state", Ct = 3600 * 24 * 7, wt = "16rem", Tt = "18rem", Et = "3rem", Dt = "b", Y = n.createContext(null);
933
- function X() {
934
- let e = n.useContext(Y);
935
- if (!e) throw Error("useSidebar must be used within a SidebarProvider.");
936
- return e;
937
- }
938
- function Ot() {
939
- return n.useContext(Y);
940
- }
941
- function kt({ defaultOpen: e = !0, open: t, onOpenChange: r, className: i, style: a, children: o, ...s }) {
942
- let c = xt(), [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 = `${St}=${t}; path=/; max-age=${Ct}`;
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 === Dt && (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(Y.Provider, {
974
- value: v,
975
- children: /* @__PURE__ */ f(q, {
976
- delayDuration: 0,
977
- children: /* @__PURE__ */ f("div", {
978
- "data-slot": "sidebar-wrapper",
979
- style: {
980
- "--sidebar-width": wt,
981
- "--sidebar-width-icon": Et,
982
- ...a
983
- },
984
- className: x("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 At({ 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 } = X();
993
- return n === "none" ? /* @__PURE__ */ f("div", {
994
- "data-slot": "sidebar",
995
- className: x("bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col", i),
996
- ...o,
997
- children: a
998
- }) : s ? /* @__PURE__ */ f(V, {
999
- open: l,
1000
- onOpenChange: u,
1001
- ...o,
1002
- children: /* @__PURE__ */ p(H, {
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": Tt },
1008
- side: e,
1009
- children: [/* @__PURE__ */ p(U, {
1010
- className: "sr-only",
1011
- children: [/* @__PURE__ */ f(W, { children: "Sidebar" }), /* @__PURE__ */ f(G, { 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: x("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: x("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: x("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 jt({ className: e, onClick: t, ...n }) {
1041
- let r = Ot();
1042
- if (!r) return null;
1043
- let { toggleSidebar: i, isMobile: a } = r;
1044
- return /* @__PURE__ */ p(I, {
1045
- "data-sidebar": "trigger",
1046
- "data-slot": "sidebar-trigger",
1047
- variant: "ghost",
1048
- size: "icon",
1049
- className: x("size-7", e),
1050
- onClick: (e) => {
1051
- t?.(e), i();
1052
- },
1053
- ...n,
1054
- children: [f(a ? ge : fe, {}), /* @__PURE__ */ f("span", {
1055
- className: "sr-only",
1056
- children: "Toggle Sidebar"
1057
- })]
1058
- });
1059
- }
1060
- function Mt({ className: e, ...t }) {
1061
- let { toggleSidebar: n } = X();
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: x("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 Nt({ className: e, ...t }) {
1074
- return /* @__PURE__ */ f("main", {
1075
- "data-slot": "sidebar-inset",
1076
- className: x("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 Pt({ className: e, ...t }) {
1081
- return /* @__PURE__ */ f(L, {
1082
- "data-slot": "sidebar-input",
1083
- "data-sidebar": "input",
1084
- className: x("bg-background h-8 w-full shadow-none", e),
1085
- ...t
1086
- });
1087
- }
1088
- function Ft({ className: e, ...t }) {
1089
- return /* @__PURE__ */ f("div", {
1090
- "data-slot": "sidebar-header",
1091
- "data-sidebar": "header",
1092
- className: x("flex flex-col gap-2 p-2", e),
1093
- ...t
1094
- });
1095
- }
1096
- function It({ className: e, ...t }) {
1097
- return /* @__PURE__ */ f("div", {
1098
- "data-slot": "sidebar-footer",
1099
- "data-sidebar": "footer",
1100
- className: x("flex flex-col gap-2 p-2", e),
1101
- ...t
1102
- });
1103
- }
1104
- function Lt({ className: e, ...t }) {
1105
- return /* @__PURE__ */ f(B, {
1106
- "data-slot": "sidebar-separator",
1107
- "data-sidebar": "separator",
1108
- className: x("bg-sidebar-border mx-2 w-auto", e),
1109
- ...t
1110
- });
1111
- }
1112
- function Rt({ className: e, ...t }) {
1113
- return /* @__PURE__ */ f("div", {
1114
- "data-slot": "sidebar-content",
1115
- "data-sidebar": "content",
1116
- className: x("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 zt({ className: e, ...t }) {
1121
- return /* @__PURE__ */ f("div", {
1122
- "data-slot": "sidebar-group",
1123
- "data-sidebar": "group",
1124
- className: x("relative flex w-full min-w-0 flex-col p-2", e),
1125
- ...t
1126
- });
1127
- }
1128
- function Bt({ 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: x("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 Vt({ 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: x("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 Ht({ className: e, ...t }) {
1145
- return /* @__PURE__ */ f("div", {
1146
- "data-slot": "sidebar-group-content",
1147
- "data-sidebar": "group-content",
1148
- className: x("w-full text-sm", e),
1149
- ...t
1150
- });
1151
- }
1152
- function Ut({ className: e, ...t }) {
1153
- return /* @__PURE__ */ f("ul", {
1154
- "data-slot": "sidebar-menu",
1155
- "data-sidebar": "menu",
1156
- className: x("flex w-full min-w-0 flex-col gap-1", e),
1157
- ...t
1158
- });
1159
- }
1160
- function Wt({ className: e, ...t }) {
1161
- return /* @__PURE__ */ f("li", {
1162
- "data-slot": "sidebar-menu-item",
1163
- "data-sidebar": "menu-item",
1164
- className: x("group/menu-item relative", e),
1165
- ...t
1166
- });
1167
- }
1168
- var Gt = 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 Kt({ 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 } = X(), 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: x(Gt({
1192
- variant: n,
1193
- size: r
1194
- }), a),
1195
- ...o
1196
- });
1197
- return i ? (typeof i == "string" && (i = { children: i }), /* @__PURE__ */ p(vt, { children: [/* @__PURE__ */ f(yt, {
1198
- asChild: !0,
1199
- children: u
1200
- }), /* @__PURE__ */ f(bt, {
1201
- side: "right",
1202
- align: "center",
1203
- hidden: l !== "collapsed" || c,
1204
- ...i
1205
- })] })) : u;
1206
- }
1207
- function qt({ 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: x("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 Jt({ className: e, ...t }) {
1216
- return /* @__PURE__ */ f("div", {
1217
- "data-slot": "sidebar-menu-badge",
1218
- "data-sidebar": "menu-badge",
1219
- className: x("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 Yt({ 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: x("flex h-8 items-center gap-2 rounded-md px-2", e),
1229
- ...r,
1230
- children: [t && /* @__PURE__ */ f(K, {
1231
- className: "size-4 rounded-md",
1232
- "data-sidebar": "menu-skeleton-icon"
1233
- }), /* @__PURE__ */ f(K, {
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 Xt({ className: e, ...t }) {
1241
- return /* @__PURE__ */ f("ul", {
1242
- "data-slot": "sidebar-menu-sub",
1243
- "data-sidebar": "menu-sub",
1244
- className: x("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 Zt({ className: e, ...t }) {
1249
- return /* @__PURE__ */ f("li", {
1250
- "data-slot": "sidebar-menu-sub-item",
1251
- "data-sidebar": "menu-sub-item",
1252
- className: x("group/menu-sub-item relative", e),
1253
- ...t
1254
- });
1255
- }
1256
- function Qt({ 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: x("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 $t = ({ text: e, href: t, onClick: n, className: r, prefix: i }) => {
1269
- if (!e) return null;
1270
- let a = S(e);
1271
- return /* @__PURE__ */ p(d, { children: [/* @__PURE__ */ p(j, {
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
- }, en = {
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
- }, tn = { 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 (tn[e] || e).toLowerCase();
1347
- }
1348
- let n = t[0], r = en[n];
1349
- return r ? r.toLowerCase() : (tn[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(j, {
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(he, { 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 } = ee();
1404
- return /* @__PURE__ */ p(qe, { children: [/* @__PURE__ */ f(M, {
1405
- asChild: !0,
1406
- children: /* @__PURE__ */ p(I, {
1407
- variant: "outline",
1408
- size: "sm",
1409
- children: [
1410
- /* @__PURE__ */ f(k, { className: "h-[1.2rem] w-[1.2rem] scale-100 rotate-0 transition-all dark:scale-0 dark:-rotate-90" }),
1411
- /* @__PURE__ */ f(ve, { 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(N, {
1419
- align: "end",
1420
- children: [
1421
- /* @__PURE__ */ f(P, {
1422
- onClick: () => e("light"),
1423
- children: t("theme.light")
1424
- }),
1425
- /* @__PURE__ */ f(P, {
1426
- onClick: () => e("dark"),
1427
- children: t("theme.dark")
1428
- }),
1429
- /* @__PURE__ */ f(P, {
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: k
1441
- },
1442
- {
1443
- value: "dark",
1444
- labelKey: "theme.dark",
1445
- icon: ve
1446
- },
1447
- {
1448
- value: "system",
1449
- labelKey: "theme.system",
1450
- icon: _e
1451
- }
1452
- ];
1453
- function cn() {
1454
- let { theme: e, setTheme: t } = Z(), { t: n } = ee(), 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 { ot as $, be as $t, kt as A, Ue as At, yt as B, je as Bt, Jt as C, rt as Ct, Xt as D, He as Dt, Yt as E, Be as Et, Ot as F, Ae as Ft, G, Ee as Gt, V as H, Ce as Ht, xt as I, Pe as It, W as J, Oe as Jt, _t as K, we as Kt, vt as L, Fe as Lt, Lt as M, ze as Mt, jt as N, Ge as Nt, Qt as O, Ke as Ot, X as P, Re as Pt, lt as Q, xe as Qt, bt as R, Ne as Rt, qt as S, it as St, Wt as T, Le as Tt, mt as U, ke as Ut, K as V, Me as Vt, H as W, Te as Wt, B as X, Se as Xt, pt as Y, j as Yt, at as Z, ye as Zt, Bt as _, Ze as _t, cn as a, x as an, ct as at, Nt as b, tt as bt, rn as c, ne as cn, I as ct, At as d, Xe as dt, O as en, dt as et, Rt as f, N as ft, Ht as g, Je as gt, Vt as h, $e as ht, sn as i, w as in, ft as it, Mt as j, Ve as jt, Zt as k, We as kt, nn as l, F as lt, zt as m, P as mt, un as n, E as nn, z as nt, on as o, re as on, st as ot, It as p, Ye as pt, U as q, De as qt, dn as r, T as rn, R as rt, Z as s, S as sn, L as st, ln as t, D as tn, ut as tt, $t as u, qe as ut, Ft as v, Qe as vt, Kt as w, M as wt, Ut as x, nt as xt, Pt as y, et as yt, q as z, Ie as zt };