@krosoft/react 0.0.380 → 0.0.382

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 (220) hide show
  1. package/dist/_virtual/_rolldown/runtime.js +13 -0
  2. package/dist/components/core/cards/DashboardCard.js +18 -0
  3. package/dist/components/core/cards/KpiCard.js +36 -0
  4. package/dist/components/core/cards/KpiCards.js +29 -0
  5. package/dist/components/core/cards/MetricCard.js +63 -0
  6. package/dist/components/core/cards/SkeletonCard.js +13 -0
  7. package/dist/components/core/cards/SkeletonCards.js +11 -0
  8. package/dist/components/core/cards/index.js +7 -1
  9. package/dist/components/core/changelog/AppChangelog.js +123 -0
  10. package/dist/components/core/changelog/AppChangelogEntry.js +85 -0
  11. package/dist/components/core/changelog/AppChangelogNav.js +39 -0
  12. package/dist/components/core/changelog/AppChangelogTagFilter.js +39 -0
  13. package/dist/components/core/changelog/index.js +1 -1
  14. package/dist/components/core/charts/BarChartHorizontal.js +80 -0
  15. package/dist/components/core/charts/BarChartVertical.js +68 -0
  16. package/dist/components/core/charts/ChartCard.js +44 -0
  17. package/dist/components/core/charts/CircularGauge.js +58 -0
  18. package/dist/components/core/charts/LineChart.js +69 -0
  19. package/dist/components/core/charts/PieChart.js +55 -0
  20. package/dist/components/core/charts/chartColors.js +10 -0
  21. package/dist/components/core/charts/chartTooltip.helper.js +15 -0
  22. package/dist/components/core/charts/index.js +8 -1
  23. package/dist/components/core/dialogs/AboutDialog.js +59 -0
  24. package/dist/components/core/dialogs/AppDialog.js +81 -0
  25. package/dist/components/core/dialogs/ConfirmationDialog.js +42 -0
  26. package/dist/components/core/dialogs/FormDialog.js +105 -0
  27. package/dist/components/core/dialogs/index.js +7 -4
  28. package/dist/components/core/filters/ActiveFilters.js +69 -0
  29. package/dist/components/core/filters/AdvancedFilters.js +103 -0
  30. package/dist/components/core/filters/ConditionFilter.js +162 -0
  31. package/dist/components/core/filters/ConditionFilterGroup.js +44 -0
  32. package/dist/components/core/filters/FilterField.js +64 -0
  33. package/dist/components/core/filters/FilterPills.js +13 -0
  34. package/dist/components/core/filters/FilterPillsGroup.js +39 -0
  35. package/dist/components/core/filters/FiltersContainer.js +54 -0
  36. package/dist/components/core/filters/FiltersMobileDrawer.js +57 -0
  37. package/dist/components/core/filters/TableFilter.js +101 -0
  38. package/dist/components/core/filters/index.js +11 -645
  39. package/dist/{GenericForm-Dxd6k7l-.js → components/core/forms/GenericForm.js} +45 -43
  40. package/dist/components/core/forms/index.js +1 -1
  41. package/dist/components/core/icons/FlagFrIcon.js +28 -0
  42. package/dist/{icons-n0m_1w7z.js → components/core/icons/FlagGbIcon.js} +3 -26
  43. package/dist/components/core/icons/index.js +3 -1
  44. package/dist/components/core/index.js +71 -27
  45. package/dist/components/core/inputs/DatePicker.js +46 -0
  46. package/dist/components/core/inputs/DateRangePicker.js +92 -0
  47. package/dist/{inputs-CBojnClc.js → components/core/inputs/FileDropzone.js} +8 -37
  48. package/dist/{ImageInput-BeIOm3GY.js → components/core/inputs/ImageInput.js} +5 -5
  49. package/dist/components/core/inputs/MultiSelect.js +191 -0
  50. package/dist/components/core/inputs/RatingInput.js +36 -0
  51. package/dist/{SearchInput-IT_Rvthr.js → components/core/inputs/SearchInput.js} +4 -4
  52. package/dist/components/core/inputs/SingleSelect.js +198 -0
  53. package/dist/components/core/inputs/index.js +9 -6
  54. package/dist/components/core/inputs/select.helper.js +46 -0
  55. package/dist/{language-DY0EYabh.js → components/core/language/LanguageSelector.js} +13 -12
  56. package/dist/components/core/language/index.js +1 -1
  57. package/dist/{AppActions-8HjAaTQK.js → components/core/layouts/AppActions.js} +19 -19
  58. package/dist/components/core/layouts/AppPageHeader.js +44 -0
  59. package/dist/{AppSubTitle-DI62BaaB.js → components/core/layouts/AppSubTitle.js} +3 -3
  60. package/dist/{AppTitle-BXoTrXQc.js → components/core/layouts/AppTitle.js} +3 -3
  61. package/dist/components/core/layouts/KpiCardsLayout.js +8 -0
  62. package/dist/components/core/layouts/index.js +6 -50
  63. package/dist/components/core/markdown/AppMarkdown.js +134 -0
  64. package/dist/components/core/markdown/AppMarkdownHeading.js +45 -0
  65. package/dist/components/core/markdown/index.js +1 -1
  66. package/dist/components/core/navbar/GlobalSearch.js +128 -0
  67. package/dist/components/core/navbar/NotificationsBell.js +133 -0
  68. package/dist/components/core/navbar/Sidebar.js +99 -0
  69. package/dist/components/core/navbar/SidebarHeader.js +26 -0
  70. package/dist/components/core/navbar/SidebarNavItem.js +72 -0
  71. package/dist/components/core/navbar/Topbar.js +25 -0
  72. package/dist/components/core/navbar/index.js +7 -1
  73. package/dist/{ErrorAlert-cJnfBL8H.js → components/core/states/ErrorAlert.js} +5 -5
  74. package/dist/{states-CJ8xE_Nm.js → components/core/states/ErrorState.js} +4 -11
  75. package/dist/components/core/states/LoadingState.js +12 -0
  76. package/dist/components/core/states/index.js +3 -2
  77. package/dist/components/core/table/DataTable.js +108 -0
  78. package/dist/components/core/table/JsonTableOutput.js +75 -0
  79. package/dist/components/core/table/TableActions.js +75 -0
  80. package/dist/components/core/table/TableBody.js +130 -0
  81. package/dist/components/core/table/TableBulkActions.js +47 -0
  82. package/dist/components/core/table/TableHeader.js +103 -0
  83. package/dist/components/core/table/TablePagination.js +102 -0
  84. package/dist/components/core/table/TableSettings.js +117 -0
  85. package/dist/components/core/table/index.js +9 -709
  86. package/dist/components/core/tabs/AppTabContainer.js +17 -0
  87. package/dist/components/core/tabs/AppTabHeader.js +19 -0
  88. package/dist/components/core/tabs/AppTabs.js +56 -0
  89. package/dist/components/core/tabs/AppVerticalTabs.js +105 -0
  90. package/dist/components/core/tabs/index.js +5 -188
  91. package/dist/{theme-DSumNHLX.js → components/core/theme/ThemeSelector.js} +13 -12
  92. package/dist/components/core/theme/index.js +1 -1
  93. package/dist/components/index.js +117 -34
  94. package/dist/components/ui/accordion.js +34 -0
  95. package/dist/components/ui/alert-dialog.js +54 -0
  96. package/dist/{alert-REQGK9bR.js → components/ui/alert.js} +2 -2
  97. package/dist/components/ui/aspect-ratio.js +5 -0
  98. package/dist/components/ui/avatar.js +25 -0
  99. package/dist/components/ui/badge.js +22 -0
  100. package/dist/components/ui/breadcrumb.js +60 -0
  101. package/dist/{tooltip-_geGvbS7.js → components/ui/button.js} +7 -17
  102. package/dist/components/ui/calendar.js +44 -0
  103. package/dist/components/ui/card.js +42 -0
  104. package/dist/components/ui/carousel.js +115 -0
  105. package/dist/{chart-wW-fwL3s.js → components/ui/chart.js} +51 -89
  106. package/dist/components/ui/checkbox.js +31 -0
  107. package/dist/components/ui/collapsible.js +5 -0
  108. package/dist/components/ui/command.js +84 -0
  109. package/dist/components/ui/context-menu.js +71 -0
  110. package/dist/components/ui/control.js +5 -0
  111. package/dist/components/ui/dialog.js +49 -0
  112. package/dist/components/ui/drawer.js +47 -0
  113. package/dist/components/ui/dropdown-menu.js +72 -0
  114. package/dist/components/ui/form.js +78 -0
  115. package/dist/components/ui/hover-card.js +15 -0
  116. package/dist/components/ui/index.js +49 -9
  117. package/dist/components/ui/input-otp.js +41 -0
  118. package/dist/components/ui/input.js +14 -0
  119. package/dist/components/ui/label.js +14 -0
  120. package/dist/components/ui/menubar.js +86 -0
  121. package/dist/components/ui/navigation-menu.js +58 -0
  122. package/dist/components/ui/pagination.js +62 -0
  123. package/dist/components/ui/popover.js +15 -0
  124. package/dist/components/ui/progress.js +17 -0
  125. package/dist/components/ui/radio-group.js +24 -0
  126. package/dist/components/ui/resizable.js +18 -0
  127. package/dist/components/ui/scroll-area.js +29 -0
  128. package/dist/{select-KWMg2_7Z.js → components/ui/select.js} +3 -3
  129. package/dist/components/ui/separator.js +15 -0
  130. package/dist/components/ui/sheet.js +58 -0
  131. package/dist/components/ui/simple-table.js +57 -0
  132. package/dist/{skeleton-D6Ga4BLw.js → components/ui/skeleton.js} +2 -2
  133. package/dist/components/ui/slider.js +17 -0
  134. package/dist/components/ui/sonner.js +23 -0
  135. package/dist/components/ui/switch.js +14 -0
  136. package/dist/components/ui/tabs.js +58 -0
  137. package/dist/components/ui/textarea.js +12 -0
  138. package/dist/components/ui/toast.js +53 -0
  139. package/dist/components/ui/toaster.js +22 -0
  140. package/dist/components/ui/toggle-group.js +37 -0
  141. package/dist/components/ui/toggle.js +34 -0
  142. package/dist/components/ui/tooltip.js +14 -0
  143. package/dist/{datatable-COQcYUrk.js → constants/datatable.js} +1 -1
  144. package/dist/constants/index.js +3 -5
  145. package/dist/constants/search.js +4 -0
  146. package/dist/contexts/index.js +3 -1
  147. package/dist/{sidebar.context-BahtU6hE.js → contexts/page.context.js} +2 -2
  148. package/dist/contexts/sidebar.context.js +5 -0
  149. package/dist/helpers/changelog.helper.js +69 -0
  150. package/dist/helpers/index.js +6 -166
  151. package/dist/{markdown.helper-YJE2H5KQ.js → helpers/markdown.helper.js} +1 -1
  152. package/dist/helpers/supabase.helper.js +41 -0
  153. package/dist/helpers/table.helper.js +56 -0
  154. package/dist/{tailwind.helper-CJaRYBmL.js → helpers/tailwind.helper.js} +1 -1
  155. package/dist/hooks/behavior/index.js +10 -1
  156. package/dist/hooks/behavior/useConfirmDeleteDialog.js +21 -0
  157. package/dist/hooks/behavior/useConfirmationDialog.js +23 -0
  158. package/dist/hooks/behavior/useDebounce.js +14 -0
  159. package/dist/hooks/behavior/useDebouncedValue.js +15 -0
  160. package/dist/hooks/behavior/useDialog.js +21 -0
  161. package/dist/hooks/behavior/usePage.js +10 -0
  162. package/dist/hooks/behavior/useSidebar.js +10 -0
  163. package/dist/hooks/behavior/useTable.js +83 -0
  164. package/dist/hooks/behavior/useUrlState.js +46 -0
  165. package/dist/hooks/index.js +20 -11
  166. package/dist/hooks/ui/index.js +11 -10
  167. package/dist/{useFixedColumns-Bo-Az3Hp.js → hooks/ui/useDataTable.js} +16 -52
  168. package/dist/{useDocumentTitle-VoQkict_.js → hooks/ui/useDocumentTitle.js} +2 -2
  169. package/dist/hooks/ui/useFixedColumns.js +38 -0
  170. package/dist/{useLanguage-DRnSb5H1.js → hooks/ui/useLanguage.js} +3 -3
  171. package/dist/{useMobile-pTQ8lWvt.js → hooks/ui/useMobile.js} +1 -1
  172. package/dist/{useNotifications-CyhTruIG.js → hooks/ui/useNotifications.js} +2 -2
  173. package/dist/{useScrollFade-D9kqJBDh.js → hooks/ui/useScrollFade.js} +1 -1
  174. package/dist/{ui-nQGnCss1.js → hooks/ui/useServerTable.js} +2 -2
  175. package/dist/{useTheme-DIZjiF5F.js → hooks/ui/useTheme.js} +3 -3
  176. package/dist/{useToast-UeDRLovh.js → hooks/ui/useToast.js} +1 -1
  177. package/dist/i18n/index.js +4 -1
  178. package/dist/i18n/krosoftLocales.js +13 -0
  179. package/dist/i18n/useDateFnsLocale.js +13 -0
  180. package/dist/i18n/useKrosoftTranslation.js +13 -0
  181. package/dist/locales/en.json.js +174 -0
  182. package/dist/locales/fr.json.js +174 -0
  183. package/dist/providers/SidebarProvider.js +42 -0
  184. package/dist/providers/index.js +1 -42
  185. package/dist/pwa/PwaUpdater.js +30 -0
  186. package/dist/pwa/index.js +3 -50
  187. package/dist/pwa/pwaUpdateToast.js +25 -0
  188. package/dist/seasonal/EffectSwitch.js +24 -0
  189. package/dist/seasonal/EmojiSnowfall.js +24 -0
  190. package/dist/seasonal/HalloweenEffect.js +17 -0
  191. package/dist/seasonal/SeasonalEffects.js +8 -0
  192. package/dist/seasonal/SeasonalEffectsSettings.js +35 -0
  193. package/dist/seasonal/SnowEffect.js +12 -0
  194. package/dist/seasonal/index.js +7 -120
  195. package/dist/seasonal/overlayStyle.js +12 -0
  196. package/dist/seasonal/seasons.js +7 -0
  197. package/dist/seasonal/useSeasonalEffects.js +20 -0
  198. package/dist/seasonal/useStoredToggle.js +21 -0
  199. package/dist/tailwind/index.js +7 -53
  200. package/dist/tokens/apply.js +16 -0
  201. package/dist/tokens/index.js +3 -38
  202. package/dist/tokens/radius.js +26 -0
  203. package/dist/types/index.js +0 -1
  204. package/dist/vendor/tailwindcss/lib/public/create-plugin.js +19 -0
  205. package/dist/vendor/tailwindcss/lib/util/createPlugin.js +30 -0
  206. package/dist/vendor/tailwindcss/plugin.js +10 -0
  207. package/package.json +4 -4
  208. package/dist/AppMarkdown-CAxm82x0.js +0 -171
  209. package/dist/MultiSelect-DPN046kI.js +0 -228
  210. package/dist/SingleSelect-DLY5WylQ.js +0 -313
  211. package/dist/behavior-B0BYivtN.js +0 -201
  212. package/dist/cards-DPzVebUM.js +0 -132
  213. package/dist/changelog-DyPFIscf.js +0 -257
  214. package/dist/charts-C7rKxkli.js +0 -342
  215. package/dist/dialogs-CG9Q7pqY.js +0 -269
  216. package/dist/i18n-BhLphJa3.js +0 -364
  217. package/dist/navbar-DD0V0pNE.js +0 -432
  218. package/dist/sheet-cWJO_wkT.js +0 -225
  219. package/dist/switch-DspImmo_.js +0 -24
  220. package/dist/ui-Fxy95kSJ.js +0 -1163
@@ -1,432 +0,0 @@
1
- import { t as e } from "./tailwind.helper-CJaRYBmL.js";
2
- import { t } from "./i18n-BhLphJa3.js";
3
- import { c as n, i as r, n as i, r as a, t as o } from "./tooltip-_geGvbS7.js";
4
- import { C as s, S as c, b as l, d as u, g as d, h as f, i as p, l as m, m as h, p as g, r as _, t as v, v as y, x as b, y as x } from "./sheet-cWJO_wkT.js";
5
- import { t as S } from "./skeleton-D6Ga4BLw.js";
6
- import { l as C } from "./behavior-B0BYivtN.js";
7
- import * as w from "react";
8
- import { Fragment as T, jsx as E, jsxs as D } from "react/jsx-runtime";
9
- import { BellIcon as O, ChevronDownIcon as k, ClockIcon as A, LoaderCircleIcon as j, MenuIcon as M, SearchIcon as N, Trash2Icon as P, XIcon as F } from "lucide-react";
10
- //#region src/components/core/navbar/GlobalSearch.tsx
11
- var I = ({ groups: r, search: i, onSearch: a, onSelect: o, loading: u = !1, open: d, onOpenChange: f, trigger: p = !0, triggerLabel: m, shortcut: h = !0, shortcutLabel: g = "Ctrl+K", history: _, onHistorySelect: v, onHistoryRemove: S, historyHeading: C, removeFromHistoryLabel: O, placeholder: k, emptyLabel: M, loadingLabel: P, title: I, description: L, hint: R, className: z }) => {
12
- let { t: B } = t(), [V, H] = w.useState(!1), U = d !== void 0, W = U ? d : V, G = w.useCallback((e) => {
13
- U || H(e), f?.(e);
14
- }, [U, f]);
15
- w.useEffect(() => {
16
- if (!h) return;
17
- let e = (e) => {
18
- e.key.toLowerCase() === "k" && (e.metaKey || e.ctrlKey) && (e.preventDefault(), G(!W));
19
- };
20
- return window.addEventListener("keydown", e), () => {
21
- window.removeEventListener("keydown", e);
22
- };
23
- }, [
24
- h,
25
- W,
26
- G
27
- ]);
28
- let K = (e) => {
29
- G(!1), a(""), o(e);
30
- }, q = r.some((e) => e.items.length > 0), J = _ ?? [], Y = i.trim() === "" && J.length > 0;
31
- return /* @__PURE__ */ D(T, { children: [p && /* @__PURE__ */ E(n, {
32
- variant: "ghost",
33
- size: "icon",
34
- "aria-label": m ?? B("search.trigger"),
35
- title: h ? `${m ?? B("search.trigger")} (${g})` : m ?? B("search.trigger"),
36
- className: "rounded-full",
37
- onClick: () => {
38
- G(!0);
39
- },
40
- children: /* @__PURE__ */ E(N, { className: "size-4" })
41
- }), /* @__PURE__ */ D(y, {
42
- open: W,
43
- onOpenChange: G,
44
- title: I ?? B("search.globalTitle"),
45
- description: L ?? B("search.globalDescription"),
46
- shouldFilter: !1,
47
- className: z,
48
- children: [
49
- /* @__PURE__ */ E(b, {
50
- value: i,
51
- onValueChange: a,
52
- placeholder: k ?? B("search.placeholder")
53
- }),
54
- /* @__PURE__ */ D(s, { children: [
55
- u && /* @__PURE__ */ D("div", {
56
- className: "flex items-center justify-center gap-2 py-6 text-sm text-muted-foreground",
57
- children: [/* @__PURE__ */ E(j, { className: "size-4 animate-spin" }), P ?? B("search.loading")]
58
- }),
59
- !q && !Y && !u && /* @__PURE__ */ E(x, { children: M ?? B("states.noResultDot") }),
60
- Y && /* @__PURE__ */ E(l, {
61
- heading: C ?? B("search.historyTitle"),
62
- children: J.map((e) => /* @__PURE__ */ D(c, {
63
- value: `history-${e}`,
64
- className: "gap-3 px-2 py-2",
65
- onSelect: () => {
66
- v?.(e);
67
- },
68
- children: [
69
- /* @__PURE__ */ E("span", {
70
- className: "flex size-8 shrink-0 items-center justify-center rounded-lg bg-muted text-muted-foreground",
71
- children: /* @__PURE__ */ E(A, { className: "size-4" })
72
- }),
73
- /* @__PURE__ */ E("span", {
74
- className: "min-w-0 flex-1 truncate font-medium",
75
- children: e
76
- }),
77
- S && /* @__PURE__ */ E(n, {
78
- type: "button",
79
- variant: "ghost",
80
- size: "icon",
81
- className: "size-7 shrink-0 text-muted-foreground hover:text-destructive",
82
- "aria-label": O ?? B("search.removeFromHistory"),
83
- title: O ?? B("search.removeFromHistory"),
84
- onPointerDown: (e) => {
85
- e.preventDefault(), e.stopPropagation();
86
- },
87
- onClick: (t) => {
88
- t.stopPropagation(), S(e);
89
- },
90
- children: /* @__PURE__ */ E(F, { className: "size-4" })
91
- })
92
- ]
93
- }, `history-${e}`))
94
- }),
95
- r.map((t) => t.items.length === 0 ? null : /* @__PURE__ */ E(l, {
96
- heading: t.heading,
97
- children: t.items.map((t) => {
98
- let n = t.icon;
99
- return /* @__PURE__ */ D(c, {
100
- value: t.key,
101
- className: "gap-3 px-2 py-2",
102
- onSelect: () => {
103
- K(t);
104
- },
105
- children: [n && /* @__PURE__ */ E("span", {
106
- className: e("flex size-8 shrink-0 items-center justify-center rounded-lg bg-muted text-muted-foreground", t.iconClassName),
107
- children: /* @__PURE__ */ E(n, { className: "size-4" })
108
- }), /* @__PURE__ */ D("span", {
109
- className: "flex min-w-0 flex-1 flex-col",
110
- children: [/* @__PURE__ */ E("span", {
111
- className: "truncate font-medium",
112
- children: t.label
113
- }), t.description !== void 0 && t.description !== "" && /* @__PURE__ */ E("span", {
114
- className: "truncate text-xs text-muted-foreground",
115
- children: t.description
116
- })]
117
- })]
118
- }, t.key);
119
- })
120
- }, t.heading))
121
- ] }),
122
- R !== void 0 && q && !u && /* @__PURE__ */ E("div", {
123
- className: "border-t border-border p-2 text-center text-xs text-muted-foreground",
124
- children: R
125
- })
126
- ]
127
- })] });
128
- }, L = 9, R = ({ items: r, onSelect: i, onMarkAllAsRead: a, onRemove: o, onSeeAll: s, isLoading: c = !1, unreadCount: l, maxBadgeCount: d = L, open: p, onOpenChange: m, triggerLabel: _, title: v, emptyLabel: y, loadingLabel: b, markAllAsReadLabel: x, removeLabel: S, seeAllLabel: C, className: T, contentClassName: k, badgeClassName: A, itemClassName: j, unreadItemClassName: M }) => {
129
- let { t: N } = t(), [F, I] = w.useState(!1), R = p !== void 0, z = R ? p : F, B = (e) => {
130
- R || I(e), m?.(e);
131
- }, V = l ?? r.filter((e) => !e.read).length, H = _ ?? N("notifications.trigger"), U = (e) => {
132
- B(!1), i?.(e);
133
- };
134
- return /* @__PURE__ */ D(g, {
135
- open: z,
136
- onOpenChange: B,
137
- children: [/* @__PURE__ */ E(f, {
138
- asChild: !0,
139
- children: /* @__PURE__ */ D(n, {
140
- type: "button",
141
- variant: "ghost",
142
- size: "icon",
143
- className: e("relative rounded-control", T),
144
- "aria-label": V > 0 ? `${H} (${String(V)})` : H,
145
- title: H,
146
- children: [/* @__PURE__ */ E(O, { className: "size-4" }), V > 0 && /* @__PURE__ */ E("span", {
147
- className: e("absolute right-1 top-1 flex size-4 items-center justify-center rounded-full bg-primary text-[10px] font-bold leading-none text-primary-foreground", A),
148
- children: V > d ? `${String(d)}+` : V
149
- })]
150
- })
151
- }), /* @__PURE__ */ D(h, {
152
- align: "end",
153
- className: e("w-80 p-0", k),
154
- children: [
155
- /* @__PURE__ */ D("div", {
156
- className: "flex items-center justify-between gap-2 border-b px-3 py-2",
157
- children: [/* @__PURE__ */ E("span", {
158
- className: "text-sm font-medium",
159
- children: v ?? N("notifications.title")
160
- }), a && V > 0 && /* @__PURE__ */ E(n, {
161
- type: "button",
162
- variant: "ghost",
163
- size: "sm",
164
- className: "h-7 text-xs",
165
- onClick: a,
166
- children: x ?? N("notifications.markAllAsRead")
167
- })]
168
- }),
169
- c && /* @__PURE__ */ E("p", {
170
- className: "px-3 py-6 text-center text-sm text-muted-foreground",
171
- children: b ?? N("states.loading")
172
- }),
173
- !c && r.length === 0 && /* @__PURE__ */ E("p", {
174
- className: "px-3 py-6 text-center text-sm text-muted-foreground",
175
- children: y ?? N("notifications.empty")
176
- }),
177
- !c && r.length > 0 && /* @__PURE__ */ E(u, {
178
- viewportClassName: "max-h-96",
179
- children: /* @__PURE__ */ E("ul", {
180
- className: "divide-y",
181
- children: r.map((t) => {
182
- let r = t.icon;
183
- return /* @__PURE__ */ D("li", {
184
- className: e("flex items-start gap-2 px-3 py-2", !t.read && (M ?? "bg-accent/40"), j),
185
- children: [/* @__PURE__ */ D("button", {
186
- type: "button",
187
- className: "flex min-w-0 flex-1 items-start gap-2 rounded-sm text-left focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring",
188
- onClick: () => {
189
- U(t);
190
- },
191
- children: [r && /* @__PURE__ */ E("span", {
192
- className: e("mt-0.5 flex size-6 shrink-0 items-center justify-center rounded-md bg-muted text-muted-foreground", t.iconClassName),
193
- children: /* @__PURE__ */ E(r, { className: "size-3.5" })
194
- }), /* @__PURE__ */ D("span", {
195
- className: "min-w-0 flex-1 space-y-0.5",
196
- children: [
197
- /* @__PURE__ */ D("span", {
198
- className: "flex items-center gap-2",
199
- children: [!t.read && /* @__PURE__ */ E("span", {
200
- className: "size-1.5 shrink-0 rounded-full bg-primary",
201
- "aria-hidden": !0
202
- }), /* @__PURE__ */ E("span", {
203
- className: e("truncate text-sm", !t.read && "font-medium"),
204
- children: t.title
205
- })]
206
- }),
207
- t.description && /* @__PURE__ */ E("span", {
208
- className: "block text-xs text-muted-foreground",
209
- children: t.description
210
- }),
211
- t.date && /* @__PURE__ */ E("span", {
212
- className: "block text-xs text-muted-foreground/60",
213
- children: t.date
214
- })
215
- ]
216
- })]
217
- }), o && /* @__PURE__ */ E(n, {
218
- type: "button",
219
- variant: "ghost",
220
- size: "icon",
221
- className: "size-7 shrink-0 text-muted-foreground hover:text-destructive",
222
- onClick: () => {
223
- o(t);
224
- },
225
- "aria-label": S ?? N("notifications.remove"),
226
- title: S ?? N("notifications.remove"),
227
- children: /* @__PURE__ */ E(P, { className: "size-3.5" })
228
- })]
229
- }, t.key);
230
- })
231
- })
232
- }),
233
- s && /* @__PURE__ */ E("div", {
234
- className: "border-t p-1",
235
- children: /* @__PURE__ */ E(n, {
236
- type: "button",
237
- variant: "ghost",
238
- size: "sm",
239
- className: "h-8 w-full justify-center text-xs font-medium",
240
- onClick: () => {
241
- B(!1), s?.();
242
- },
243
- children: C ?? N("notifications.seeAll")
244
- })
245
- })
246
- ]
247
- })]
248
- });
249
- }, z = (e, t, n) => t === e ? !0 : e === "/" || !t.startsWith(`${e}/`) ? !1 : !n.some((n) => n !== e && n.startsWith(`${e}/`) && (t === n || t.startsWith(`${n}/`))), B = ({ path: t, icon: n, label: a, badge: s, subItems: c, currentPath: l, collapsed: u, dense: d = !1, onItemClick: f }) => {
250
- let p = c?.map((e) => e.path) ?? [], [m, h] = w.useState(c?.some((e) => z(e.path, l, p)) ?? !1), g = t ? l === t || t !== "/" && l.startsWith(`${t}/`) : !1, _ = c?.some((e) => z(e.path, l, p)), v = g || !u && _, y = /* @__PURE__ */ D("a", {
251
- href: t ?? "#",
252
- onClick: (e) => {
253
- e.ctrlKey || e.metaKey || e.button === 1 || (e.preventDefault(), c && c.length > 0 ? u || h(!m) : t && f(t));
254
- },
255
- className: e("flex items-center cursor-pointer transition-all duration-200 group rounded-control", d ? "gap-2.5 mb-0.5" : "gap-3 mb-1", u ? d ? "justify-center p-2 h-9 w-9 mx-auto" : "justify-center p-3 h-12 w-12 mx-auto" : d ? "px-3 py-1.5 h-9" : "px-4 py-3 h-12", v ? "bg-sidebar-primary/10 text-sidebar-primary font-semibold border border-sidebar-primary/40 [&_svg]:text-sidebar-primary" : "border border-transparent hover:bg-sidebar-accent text-sidebar-foreground hover:text-sidebar-accent-foreground"),
256
- children: [/* @__PURE__ */ E("div", {
257
- className: e("flex-shrink-0 transition-transform group-hover:scale-110", u ? "flex items-center justify-center" : ""),
258
- children: /* @__PURE__ */ E(n, { className: e("size-4", v && "text-sidebar-primary") })
259
- }), !u && /* @__PURE__ */ D(T, { children: [
260
- /* @__PURE__ */ E("span", {
261
- className: e("flex-grow transition-opacity duration-150", v ? "font-semibold" : "font-medium", d ? "text-sm" : ""),
262
- children: a
263
- }),
264
- s !== void 0 && /* @__PURE__ */ E("span", {
265
- className: "bg-red-500 text-white text-xs rounded-full py-1 min-w-[20px] text-center px-2 font-semibold",
266
- children: s
267
- }),
268
- c && c.length > 0 && /* @__PURE__ */ E(k, { className: e("size-4 transition-transform duration-200", m ? "rotate-180" : "") })
269
- ] })]
270
- });
271
- return /* @__PURE__ */ D(T, { children: [u ? /* @__PURE__ */ D(o, { children: [/* @__PURE__ */ E(r, {
272
- asChild: !0,
273
- children: y
274
- }), /* @__PURE__ */ E(i, {
275
- side: "right",
276
- sideOffset: 6,
277
- className: "rounded-surface z-[99999] flex gap-2 bg-sidebar text-sidebar-foreground border border-sidebar-border py-2 text-sm shadow-lg",
278
- children: /* @__PURE__ */ E("div", {
279
- className: "flex flex-col gap-2",
280
- children: /* @__PURE__ */ D("div", {
281
- className: "flex items-center gap-2",
282
- children: [/* @__PURE__ */ E("p", {
283
- className: "font-semibold",
284
- children: a
285
- }), s !== void 0 && /* @__PURE__ */ D("span", {
286
- className: "ml-1 text-xs",
287
- children: [
288
- "(",
289
- s,
290
- ")"
291
- ]
292
- })]
293
- })
294
- })
295
- })] }) : y, !u && c && c.length > 0 && m && /* @__PURE__ */ E("div", {
296
- className: e("flex flex-col ml-4 pl-4 border-l-2 border-sidebar-border/50 animate-in slide-in-from-top-2 fade-in duration-200", d ? "gap-0.5 mb-0.5" : "gap-1 mb-2"),
297
- children: c.map((t, n) => {
298
- let r = z(t.path, l, p);
299
- return /* @__PURE__ */ D("a", {
300
- href: t.path,
301
- onClick: (e) => {
302
- e.ctrlKey || e.metaKey || e.button === 1 || (e.preventDefault(), f(t.path));
303
- },
304
- className: e("flex items-center justify-between rounded-control text-sm transition-all duration-200", d ? "px-3 py-1" : "px-4 py-2", r ? "bg-sidebar-accent/50 text-sidebar-primary font-semibold" : "text-sidebar-muted hover:bg-sidebar-accent hover:text-sidebar-foreground"),
305
- children: [/* @__PURE__ */ E("span", { children: t.label }), t.badge !== void 0 && /* @__PURE__ */ E("span", {
306
- className: "bg-sidebar-primary/20 text-sidebar-primary text-[10px] rounded-full py-0.5 px-2 font-semibold",
307
- children: t.badge
308
- })]
309
- }, n);
310
- })
311
- })] });
312
- }, V = ({ groups: n, currentPath: r, onItemClick: i, slots: o, search: s, dense: c = !1, loading: l = !1, showCloseButton: u = !0 }) => {
313
- let { t: f } = t(), { enabled: h = !1, placeholder: g } = s ?? {}, { header: y, footer: b } = o ?? {}, { collapsed: x, isMobile: T, setCollapsed: O } = C(), [k, A] = w.useState(""), j = !T && x, M = !x, P = (e) => {
314
- i(e), T && O(!0);
315
- }, F = k.trim().toLowerCase(), I = F === "" ? n : n.map((e) => ({
316
- ...e,
317
- items: e.items.filter((e) => e.label.toLowerCase().includes(F) || (e.subItems?.some((e) => e.label.toLowerCase().includes(F)) ?? !1))
318
- })).filter((e) => e.items.length > 0), L = /* @__PURE__ */ D("div", {
319
- className: "flex flex-col h-full bg-sidebar text-sidebar-foreground",
320
- children: [
321
- y,
322
- h && !j && /* @__PURE__ */ E("div", {
323
- className: e("px-4", c ? "pt-2" : "pt-4"),
324
- children: /* @__PURE__ */ D("div", {
325
- className: "relative",
326
- children: [/* @__PURE__ */ E(N, { className: "absolute left-3 top-1/2 size-4 -translate-y-1/2 text-sidebar-muted" }), /* @__PURE__ */ E(d, {
327
- type: "search",
328
- value: k,
329
- onChange: (e) => {
330
- A(e.target.value);
331
- },
332
- placeholder: g ?? f("search.placeholder"),
333
- className: e("bg-sidebar-accent/40 border-sidebar-border pl-9 text-sidebar-foreground placeholder:text-sidebar-muted", c ? "h-8 text-sm" : "h-9")
334
- })]
335
- })
336
- }),
337
- /* @__PURE__ */ E("div", {
338
- className: e("flex-1 overflow-y-auto scrollbar-modern", j ? "px-0" : "px-2", c ? "py-2" : "py-4"),
339
- children: l ? Array.from({ length: 5 }).map((t, n) => /* @__PURE__ */ D("div", {
340
- className: e("flex items-center gap-3", c ? "mb-1 h-9" : "mb-2 h-12", j ? "justify-center px-3" : "px-4"),
341
- children: [/* @__PURE__ */ E(S, { className: "size-5 flex-shrink-0 rounded-control" }), !j && /* @__PURE__ */ E(S, { className: "h-4 flex-1" })]
342
- }, n)) : I.map((t, n) => /* @__PURE__ */ D("div", {
343
- className: c ? "mb-7" : "mb-10",
344
- children: [!j && t.title !== void 0 && t.title !== "" && /* @__PURE__ */ E("h3", {
345
- className: e("px-4 text-xs uppercase tracking-wider font-semibold text-sidebar-muted", c ? "mb-3" : "mb-4"),
346
- children: t.title
347
- }), /* @__PURE__ */ E("nav", {
348
- className: e("flex flex-col", c ? "gap-0.5" : "gap-1"),
349
- children: t.items.map((e, t) => /* @__PURE__ */ E(B, {
350
- ...e,
351
- currentPath: r,
352
- collapsed: j,
353
- dense: c,
354
- onItemClick: P
355
- }, t))
356
- })]
357
- }, n))
358
- }),
359
- b && /* @__PURE__ */ E("div", {
360
- className: e("border-t border-sidebar-border", c ? "p-2" : "p-4", j ? "flex justify-center" : ""),
361
- children: b
362
- })
363
- ]
364
- });
365
- return T ? /* @__PURE__ */ E(v, {
366
- open: M,
367
- onOpenChange: (e) => {
368
- O(!e);
369
- },
370
- children: /* @__PURE__ */ D(_, {
371
- side: "left",
372
- className: e("w-[16rem] p-0 bg-sidebar border-r border-sidebar-border overflow-hidden", u ? "[&>button]:text-sidebar-foreground" : "[&>button]:hidden"),
373
- children: [
374
- /* @__PURE__ */ E(m, {
375
- className: "sr-only",
376
- children: f("sidebar.menu")
377
- }),
378
- /* @__PURE__ */ E(p, {
379
- className: "sr-only",
380
- children: f("sidebar.description")
381
- }),
382
- L
383
- ]
384
- })
385
- }) : /* @__PURE__ */ E(a, {
386
- delayDuration: 0,
387
- children: /* @__PURE__ */ E("aside", {
388
- className: e("flex flex-col bg-sidebar h-screen border-r border-sidebar-border transition-all duration-300", j ? "w-[--navbar-width-icon]" : "w-[--navbar-width]", "flex"),
389
- style: {
390
- "--navbar-width": "16rem",
391
- "--navbar-width-icon": "4rem"
392
- },
393
- children: L
394
- })
395
- });
396
- }, H = ({ name: t = "appname", subName: n = "appsubname", icon: r, dense: i = !1 }) => {
397
- let { collapsed: a, isMobile: o } = C(), s = !o && a;
398
- return /* @__PURE__ */ D("div", {
399
- className: e("flex items-center flex-shrink-0 gap-3 px-4", i ? "h-14" : "h-16 md:h-20", s ? "justify-center" : ""),
400
- children: [r !== void 0 && /* @__PURE__ */ E("div", {
401
- className: "flex-shrink-0 text-sidebar-foreground",
402
- children: /* @__PURE__ */ E(r, { className: i ? "size-5" : "size-6" })
403
- }), !s && /* @__PURE__ */ D("div", {
404
- className: "flex flex-col",
405
- children: [/* @__PURE__ */ E("h1", {
406
- className: e("font-bold text-sidebar-foreground leading-tight", i ? "text-base" : "text-lg"),
407
- children: t
408
- }), /* @__PURE__ */ E("span", {
409
- className: e("text-sidebar-muted font-medium", i ? "text-[11px]" : "text-xs"),
410
- children: n
411
- })]
412
- })]
413
- });
414
- }, U = ({ collapsed: t, isMobile: r, onToggleSidebar: i, actionsNode: a, userMenuNode: o }) => /* @__PURE__ */ D("header", {
415
- className: e("fixed top-0 right-0 z-[60] h-16 md:h-20 bg-topbar text-topbar-foreground flex items-center justify-between px-4 transition-all duration-300", r && "left-0", !r && t && "left-[5rem]", !r && !t && "left-[16rem]"),
416
- tabIndex: -1,
417
- children: [/* @__PURE__ */ E("div", {
418
- className: "flex items-center min-w-0 flex-1",
419
- children: /* @__PURE__ */ E(n, {
420
- variant: "ghost",
421
- size: "icon",
422
- onClick: i,
423
- className: "text-topbar-foreground hover:bg-topbar-accent hover:text-topbar-accent-foreground",
424
- children: /* @__PURE__ */ E(M, { className: "size-4" })
425
- })
426
- }), /* @__PURE__ */ D("div", {
427
- className: "flex items-center gap-2 md:gap-4 flex-shrink-0",
428
- children: [a, o]
429
- })]
430
- });
431
- //#endregion
432
- export { R as a, B as i, H as n, I as o, V as r, U as t };
@@ -1,225 +0,0 @@
1
- import { t as e } from "./tailwind.helper-CJaRYBmL.js";
2
- import { t } from "./i18n-BhLphJa3.js";
3
- import { a as n } from "./tooltip-_geGvbS7.js";
4
- import * as r from "react";
5
- import { jsx as i, jsxs as a } from "react/jsx-runtime";
6
- import { SearchIcon as o, X as s } from "lucide-react";
7
- import { cva as c } from "class-variance-authority";
8
- import { Command as l } from "cmdk";
9
- import * as u from "@radix-ui/react-dialog";
10
- import * as d from "@radix-ui/react-popover";
11
- import * as f from "@radix-ui/react-scroll-area";
12
- //#region src/components/ui/dialog.tsx
13
- var p = u.Root, m = u.Trigger, h = u.Portal, g = u.Close, _ = r.forwardRef(({ className: t, ...n }, r) => /* @__PURE__ */ i(u.Overlay, {
14
- ref: r,
15
- className: e("fixed inset-0 z-[70] bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0", t),
16
- ...n
17
- }));
18
- _.displayName = u.Overlay.displayName;
19
- var v = "w-full max-w-none h-[100dvh] max-h-[100dvh] content-start rounded-none sm:h-auto sm:max-h-[95vh] sm:max-w-lg sm:rounded-surface", y = r.forwardRef(({ className: t, children: n, ...r }, o) => /* @__PURE__ */ a(h, { children: [/* @__PURE__ */ i(_, {}), /* @__PURE__ */ a(u.Content, {
20
- ref: o,
21
- className: e("fixed left-[50%] top-[50%] z-[70] grid overflow-y-auto translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%]", v, t),
22
- ...r,
23
- children: [n, /* @__PURE__ */ a(u.Close, {
24
- className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity data-[state=open]:bg-accent data-[state=open]:text-muted-foreground hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none",
25
- children: [/* @__PURE__ */ i(s, { className: "size-4" }), /* @__PURE__ */ i("span", {
26
- className: "sr-only",
27
- children: "Close"
28
- })]
29
- })]
30
- })] }));
31
- y.displayName = u.Content.displayName;
32
- var b = ({ className: t, ...n }) => /* @__PURE__ */ i("div", {
33
- className: e("flex flex-col space-y-1.5 text-center sm:text-left", t),
34
- ...n
35
- });
36
- b.displayName = "DialogHeader";
37
- var x = ({ className: t, ...n }) => /* @__PURE__ */ i("div", {
38
- className: e("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", t),
39
- ...n
40
- });
41
- x.displayName = "DialogFooter";
42
- var S = r.forwardRef(({ className: t, ...n }, r) => /* @__PURE__ */ i(u.Title, {
43
- ref: r,
44
- className: e("text-lg font-semibold leading-none tracking-tight", t),
45
- ...n
46
- }));
47
- S.displayName = u.Title.displayName;
48
- var C = r.forwardRef(({ className: t, ...n }, r) => /* @__PURE__ */ i(u.Description, {
49
- ref: r,
50
- className: e("text-sm text-muted-foreground", t),
51
- ...n
52
- }));
53
- C.displayName = u.Description.displayName;
54
- //#endregion
55
- //#region src/components/ui/command.tsx
56
- var w = r.forwardRef(({ className: t, ...n }, r) => /* @__PURE__ */ i(l, {
57
- ref: r,
58
- className: e("flex h-full w-full flex-col overflow-hidden rounded-surface bg-popover text-popover-foreground", t),
59
- ...n
60
- }));
61
- w.displayName = l.displayName;
62
- var T = ({ title: n, description: r, shouldFilter: o, className: s, children: c, ...l }) => {
63
- let { t: u } = t();
64
- return /* @__PURE__ */ i(p, {
65
- ...l,
66
- children: /* @__PURE__ */ a(y, {
67
- className: "flex flex-col overflow-hidden p-0 shadow-lg",
68
- children: [
69
- /* @__PURE__ */ i(S, {
70
- className: "sr-only",
71
- children: n ?? u("search.commandTitle")
72
- }),
73
- /* @__PURE__ */ i(C, {
74
- className: "sr-only",
75
- children: r ?? u("search.commandDescription")
76
- }),
77
- /* @__PURE__ */ i(w, {
78
- shouldFilter: o,
79
- className: e("[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:size-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3", "[&_[cmdk-list]]:max-h-none [&_[cmdk-list]]:min-h-0 [&_[cmdk-list]]:flex-1 sm:[&_[cmdk-list]]:max-h-[300px] sm:[&_[cmdk-list]]:flex-none", s),
80
- children: c
81
- })
82
- ]
83
- })
84
- });
85
- }, E = r.forwardRef(({ className: t, ...n }, r) => /* @__PURE__ */ a("div", {
86
- className: "flex items-center border-b px-3",
87
- "cmdk-input-wrapper": "",
88
- children: [/* @__PURE__ */ i(o, { className: "mr-2 size-4 shrink-0 opacity-50" }), /* @__PURE__ */ i(l.Input, {
89
- ref: r,
90
- className: e("flex h-11 w-full rounded-control bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50", t),
91
- ...n
92
- })]
93
- }));
94
- E.displayName = l.Input.displayName;
95
- var D = r.forwardRef(({ className: t, ...n }, r) => /* @__PURE__ */ i(l.List, {
96
- ref: r,
97
- className: e("max-h-[300px] overflow-y-auto overflow-x-hidden", t),
98
- ...n
99
- }));
100
- D.displayName = l.List.displayName;
101
- var O = r.forwardRef((e, t) => /* @__PURE__ */ i(l.Empty, {
102
- ref: t,
103
- className: "py-6 text-center text-sm",
104
- ...e
105
- }));
106
- O.displayName = l.Empty.displayName;
107
- var k = r.forwardRef(({ className: t, ...n }, r) => /* @__PURE__ */ i(l.Group, {
108
- ref: r,
109
- className: e("overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground", t),
110
- ...n
111
- }));
112
- k.displayName = l.Group.displayName;
113
- var A = r.forwardRef(({ className: t, ...n }, r) => /* @__PURE__ */ i(l.Separator, {
114
- ref: r,
115
- className: e("-mx-1 h-px bg-border", t),
116
- ...n
117
- }));
118
- A.displayName = l.Separator.displayName;
119
- var j = r.forwardRef(({ className: t, ...n }, r) => /* @__PURE__ */ i(l.Item, {
120
- ref: r,
121
- className: e("relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected='true']:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50", t),
122
- ...n
123
- }));
124
- j.displayName = l.Item.displayName;
125
- var M = ({ className: t, ...n }) => /* @__PURE__ */ i("span", {
126
- className: e("ml-auto text-xs tracking-widest text-muted-foreground", t),
127
- ...n
128
- });
129
- M.displayName = "CommandShortcut";
130
- //#endregion
131
- //#region src/components/ui/input.tsx
132
- var N = r.forwardRef(({ className: t, type: r, ...a }, o) => /* @__PURE__ */ i("input", {
133
- type: r,
134
- className: e(n, "flex w-full text-base file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 md:text-sm", t),
135
- ref: o,
136
- ...a
137
- }));
138
- N.displayName = "Input";
139
- //#endregion
140
- //#region src/components/ui/popover.tsx
141
- var P = d.Root, F = d.Trigger, I = r.forwardRef(({ className: t, align: n = "center", sideOffset: r = 4, ...a }, o) => /* @__PURE__ */ i(d.Portal, { children: /* @__PURE__ */ i(d.Content, {
142
- ref: o,
143
- align: n,
144
- sideOffset: r,
145
- className: e("z-[100] w-72 rounded-surface border bg-popover p-4 text-popover-foreground shadow-md outline-none 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", t),
146
- ...a
147
- }) }));
148
- I.displayName = d.Content.displayName;
149
- //#endregion
150
- //#region src/components/ui/scroll-area.tsx
151
- var L = r.forwardRef(({ className: t, viewportClassName: n, children: r, ...o }, s) => /* @__PURE__ */ a(f.Root, {
152
- ref: s,
153
- className: e("relative overflow-hidden", t),
154
- ...o,
155
- children: [
156
- /* @__PURE__ */ i(f.Viewport, {
157
- className: e("h-full w-full rounded-[inherit]", n),
158
- children: r
159
- }),
160
- /* @__PURE__ */ i(R, {}),
161
- /* @__PURE__ */ i(f.Corner, {})
162
- ]
163
- }));
164
- L.displayName = f.Root.displayName;
165
- var R = r.forwardRef(({ className: t, orientation: n = "vertical", ...r }, a) => /* @__PURE__ */ i(f.ScrollAreaScrollbar, {
166
- ref: a,
167
- orientation: n,
168
- className: e("flex touch-none select-none transition-colors", n === "vertical" && "h-full w-2.5 border-l border-l-transparent p-[1px]", n === "horizontal" && "h-2.5 flex-col border-t border-t-transparent p-[1px]", t),
169
- ...r,
170
- children: /* @__PURE__ */ i(f.ScrollAreaThumb, { className: "relative flex-1 rounded-full bg-border" })
171
- }));
172
- R.displayName = f.ScrollAreaScrollbar.displayName;
173
- //#endregion
174
- //#region src/components/ui/sheet.tsx
175
- var z = u.Root, B = u.Trigger, V = u.Close, H = u.Portal, U = r.forwardRef(({ className: t, ...n }, r) => /* @__PURE__ */ i(u.Overlay, {
176
- className: e("fixed inset-0 z-[70] bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0", t),
177
- ...n,
178
- ref: r
179
- }));
180
- U.displayName = u.Overlay.displayName;
181
- var W = c("fixed z-[70] gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500", {
182
- variants: { side: {
183
- top: "inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",
184
- bottom: "inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",
185
- left: "inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm",
186
- right: "inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm"
187
- } },
188
- defaultVariants: { side: "right" }
189
- }), G = r.forwardRef(({ side: t = "right", className: n, children: r, ...o }, c) => /* @__PURE__ */ a(H, { children: [/* @__PURE__ */ i(U, {}), /* @__PURE__ */ a(u.Content, {
190
- ref: c,
191
- className: e(W({ side: t }), n),
192
- ...o,
193
- children: [r, /* @__PURE__ */ a(u.Close, {
194
- className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity data-[state=open]:bg-secondary hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none",
195
- children: [/* @__PURE__ */ i(s, { className: "size-4" }), /* @__PURE__ */ i("span", {
196
- className: "sr-only",
197
- children: "Close"
198
- })]
199
- })]
200
- })] }));
201
- G.displayName = u.Content.displayName;
202
- var K = ({ className: t, ...n }) => /* @__PURE__ */ i("div", {
203
- className: e("flex flex-col space-y-2 text-center sm:text-left", t),
204
- ...n
205
- });
206
- K.displayName = "SheetHeader";
207
- var q = ({ className: t, ...n }) => /* @__PURE__ */ i("div", {
208
- className: e("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", t),
209
- ...n
210
- });
211
- q.displayName = "SheetFooter";
212
- var J = r.forwardRef(({ className: t, ...n }, r) => /* @__PURE__ */ i(u.Title, {
213
- ref: r,
214
- className: e("text-lg font-semibold text-foreground", t),
215
- ...n
216
- }));
217
- J.displayName = u.Title.displayName;
218
- var Y = r.forwardRef(({ className: t, ...n }, r) => /* @__PURE__ */ i(u.Description, {
219
- ref: r,
220
- className: e("text-sm text-muted-foreground", t),
221
- ...n
222
- }));
223
- Y.displayName = u.Description.displayName;
224
- //#endregion
225
- export { x as A, D as C, g as D, p as E, m as F, _ as M, h as N, y as O, S as P, j as S, M as T, w as _, q as a, k as b, H as c, L as d, R as f, N as g, F as h, Y as i, b as j, C as k, J as l, I as m, V as n, K as o, P as p, G as r, U as s, z as t, B as u, T as v, A as w, E as x, O as y };