@krosoft/react 0.0.381 → 0.0.383

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
@@ -0,0 +1,13 @@
1
+ //#region \0rolldown/runtime.js
2
+ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescriptor, r = Object.getOwnPropertyNames, i = Object.getPrototypeOf, a = Object.prototype.hasOwnProperty, o = (e, t) => () => (t || (e((t = { exports: {} }).exports, t, t.exports), e = null), t.exports), s = (e, i, o, s) => {
3
+ if (i && typeof i == "object" || typeof i == "function") for (var c = r(i), l = 0, u = c.length, d; l < u; l++) d = c[l], !a.call(e, d) && d !== o && t(e, d, {
4
+ get: ((e) => i[e]).bind(null, d),
5
+ enumerable: !(s = n(i, d)) || s.enumerable
6
+ });
7
+ return e;
8
+ }, c = (n, r, o) => (o = n == null ? {} : e(i(n)), s(r || !n || !n.__esModule || !a.call(n, "default") ? t(o, "default", {
9
+ value: n,
10
+ enumerable: !0
11
+ }) : o, n));
12
+ //#endregion
13
+ export { o as __commonJSMin, c as __toESM };
@@ -0,0 +1,18 @@
1
+ import { cn as e } from "../../../helpers/tailwind.helper.js";
2
+ import { Card as t, CardContent as n, CardHeader as r, CardTitle as i } from "../../ui/card.js";
3
+ import { useKrosoftTranslation as a } from "../../../i18n/useKrosoftTranslation.js";
4
+ import "react";
5
+ import { jsx as o, jsxs as s } from "react/jsx-runtime";
6
+ //#region src/components/core/cards/DashboardCard.tsx
7
+ var c = ({ titleKey: c, icon: l, className: u, children: d }) => {
8
+ let { t: f } = a();
9
+ return /* @__PURE__ */ s(t, {
10
+ className: e("bg-gray-50 dark:bg-gray-950", u),
11
+ children: [/* @__PURE__ */ o(r, { children: /* @__PURE__ */ s(i, {
12
+ className: "flex items-center gap-2",
13
+ children: [l && /* @__PURE__ */ o(l, { className: "mr-2 size-4" }), /* @__PURE__ */ o("span", { children: f(c) })]
14
+ }) }), /* @__PURE__ */ o(n, { children: d })]
15
+ });
16
+ };
17
+ //#endregion
18
+ export { c as DashboardCard };
@@ -0,0 +1,36 @@
1
+ import { cn as e } from "../../../helpers/tailwind.helper.js";
2
+ import { Card as t, CardContent as n, CardHeader as r, CardTitle as i } from "../../ui/card.js";
3
+ import { useKrosoftTranslation as a } from "../../../i18n/useKrosoftTranslation.js";
4
+ import { Skeleton as o } from "../../ui/skeleton.js";
5
+ import "react";
6
+ import { Fragment as s, jsx as c, jsxs as l } from "react/jsx-runtime";
7
+ import { formatNumber as u } from "@krosoft/core/helpers";
8
+ //#region src/components/core/cards/KpiCard.tsx
9
+ var d = ({ titleKey: d, value: f, valueClassName: p, icon: m, iconClassName: h, description: g, descriptionClassName: _, onClick: v, isLoading: y, error: b }) => {
10
+ let { t: x } = a();
11
+ return /* @__PURE__ */ l(t, {
12
+ className: e(v === void 0 ? "" : "hover:border-primary cursor-pointer"),
13
+ onClick: v,
14
+ children: [/* @__PURE__ */ l(r, {
15
+ className: "flex flex-row items-center justify-between space-y-0 pb-2",
16
+ children: [/* @__PURE__ */ c(i, {
17
+ className: "text-sm font-medium",
18
+ children: x(d)
19
+ }), /* @__PURE__ */ c(m, { className: e("size-6 text-muted-foreground", h) })]
20
+ }), /* @__PURE__ */ c(n, { children: y ? /* @__PURE__ */ l(s, { children: [/* @__PURE__ */ c(o, { className: "h-8 w-24 mb-1" }), /* @__PURE__ */ c(o, { className: "h-3 w-32" })] }) : b ? /* @__PURE__ */ l(s, { children: [/* @__PURE__ */ c("div", {
21
+ className: "text-2xl font-bold text-destructive",
22
+ children: "—"
23
+ }), /* @__PURE__ */ c("p", {
24
+ className: "text-xs text-destructive",
25
+ children: b
26
+ })] }) : /* @__PURE__ */ l(s, { children: [/* @__PURE__ */ c("div", {
27
+ className: e("text-2xl font-bold", p),
28
+ children: typeof f == "number" ? u(f) : f instanceof Date ? f.toLocaleDateString() : f
29
+ }), /* @__PURE__ */ c("p", {
30
+ className: e("text-xs text-muted-foreground", _),
31
+ children: g
32
+ })] }) })]
33
+ });
34
+ };
35
+ //#endregion
36
+ export { d as KpiCard };
@@ -0,0 +1,29 @@
1
+ import { cn as e } from "../../../helpers/tailwind.helper.js";
2
+ import { KpiCard as t } from "./KpiCard.js";
3
+ import "react";
4
+ import { jsx as n } from "react/jsx-runtime";
5
+ //#region src/components/core/cards/KpiCards.tsx
6
+ var r = {
7
+ 1: "lg:grid-cols-1",
8
+ 2: "lg:grid-cols-2",
9
+ 3: "lg:grid-cols-3",
10
+ 4: "lg:grid-cols-4",
11
+ 5: "lg:grid-cols-5",
12
+ 6: "lg:grid-cols-6"
13
+ }, i = 4, a = ({ stats: a, columns: o = i, isLoading: s, error: c }) => /* @__PURE__ */ n("div", {
14
+ className: e("grid gap-4 md:grid-cols-2", r[o] ?? r[i]),
15
+ children: a.map((e) => /* @__PURE__ */ n(t, {
16
+ titleKey: e.titleKey,
17
+ value: e.value,
18
+ valueClassName: e.valueClassName,
19
+ icon: e.icon,
20
+ iconClassName: e.iconClassName,
21
+ description: e.description,
22
+ descriptionClassName: e.descriptionClassName,
23
+ onClick: e.onClick,
24
+ isLoading: s,
25
+ error: c
26
+ }, e.titleKey))
27
+ });
28
+ //#endregion
29
+ export { a as KpiCards };
@@ -0,0 +1,63 @@
1
+ import { Card as e, CardContent as t, CardTitle as n } from "../../ui/card.js";
2
+ import "react";
3
+ import { jsx as r, jsxs as i } from "react/jsx-runtime";
4
+ //#region src/components/core/cards/MetricCard.tsx
5
+ var a = {
6
+ blue: "bg-gradient-to-br from-blue-500 to-cyan-500 text-white",
7
+ green: "bg-gradient-to-br from-green-500 to-emerald-500 text-white",
8
+ orange: "bg-gradient-to-br from-orange-500 to-yellow-500 text-white",
9
+ red: "bg-gradient-to-br from-red-500 to-pink-500 text-white",
10
+ purple: "bg-gradient-to-br from-purple-500 to-indigo-500 text-white",
11
+ accent: "bg-accent/10 text-accent",
12
+ success: "bg-success/10 text-success",
13
+ info: "bg-info/10 text-info",
14
+ warning: "bg-warning/10 text-warning",
15
+ destructive: "bg-destructive/10 text-destructive"
16
+ }, o = {
17
+ sm: "size-4",
18
+ md: "size-5",
19
+ lg: "size-6"
20
+ }, s = (e) => e === "up" ? "↑" : e === "down" ? "↓" : "", c = (e) => e === "up" ? "text-green-600" : e === "down" ? "text-red-600" : "text-muted-foreground", l = ({ title: l, value: u, unit: d, subtitle: f, icon: p, iconSize: m = "md", trend: h, trendValue: g, color: _ = "blue", children: v }) => {
21
+ let y = p;
22
+ return /* @__PURE__ */ r(e, {
23
+ className: "relative overflow-hidden bg-card border shadow-lg hover:shadow-xl transition-all duration-300",
24
+ children: /* @__PURE__ */ i(t, {
25
+ className: "pt-6",
26
+ children: [/* @__PURE__ */ i("div", {
27
+ className: "flex items-start justify-between",
28
+ children: [/* @__PURE__ */ i("div", { children: [
29
+ /* @__PURE__ */ r(n, {
30
+ className: "text-sm font-medium text-muted-foreground",
31
+ children: l
32
+ }),
33
+ /* @__PURE__ */ i("div", {
34
+ className: "flex items-baseline space-x-2 mt-1",
35
+ children: [/* @__PURE__ */ r("div", {
36
+ className: "text-2xl font-bold text-card-foreground",
37
+ children: typeof u == "number" ? u.toFixed(1) : u
38
+ }), d && /* @__PURE__ */ r("div", {
39
+ className: "text-sm text-muted-foreground font-medium",
40
+ children: d
41
+ })]
42
+ }),
43
+ f && /* @__PURE__ */ r("div", {
44
+ className: "mt-1 text-xs text-muted-foreground",
45
+ children: f
46
+ }),
47
+ h && g && /* @__PURE__ */ i("div", {
48
+ className: `flex items-center space-x-1 mt-2 text-xs ${c(h)}`,
49
+ children: [/* @__PURE__ */ r("span", { children: s(h) }), /* @__PURE__ */ r("span", { children: g })]
50
+ })
51
+ ] }), /* @__PURE__ */ r("div", {
52
+ className: `p-2 rounded-control ${a[_]} shadow-lg`,
53
+ children: /* @__PURE__ */ r(y, { className: o[m] })
54
+ })]
55
+ }), v && /* @__PURE__ */ r("div", {
56
+ className: "mt-4",
57
+ children: v
58
+ })]
59
+ })
60
+ });
61
+ };
62
+ //#endregion
63
+ export { l as MetricCard };
@@ -0,0 +1,13 @@
1
+ import { Card as e, CardContent as t, CardHeader as n } from "../../ui/card.js";
2
+ import "react";
3
+ import { jsx as r, jsxs as i } from "react/jsx-runtime";
4
+ //#region src/components/core/cards/SkeletonCard.tsx
5
+ var a = () => /* @__PURE__ */ i(e, {
6
+ className: "animate-pulse",
7
+ children: [/* @__PURE__ */ r(n, { children: /* @__PURE__ */ r("div", { className: "h-6 bg-muted rounded w-1/4" }) }), /* @__PURE__ */ r(t, { children: /* @__PURE__ */ i("div", {
8
+ className: "space-y-2",
9
+ children: [/* @__PURE__ */ r("div", { className: "h-4 bg-muted rounded" }), /* @__PURE__ */ r("div", { className: "h-4 bg-muted rounded w-3/4" })]
10
+ }) })]
11
+ });
12
+ //#endregion
13
+ export { a as SkeletonCard };
@@ -0,0 +1,11 @@
1
+ import { SkeletonCard as e } from "./SkeletonCard.js";
2
+ import "react";
3
+ import { jsx as t } from "react/jsx-runtime";
4
+ //#region src/components/core/cards/SkeletonCards.tsx
5
+ var n = ({ count: n = 1 }) => /* @__PURE__ */ t("div", {
6
+ className: "grid gap-6",
7
+ style: { gridTemplateColumns: `repeat(${n}, minmax(0, 1fr))` },
8
+ children: Array.from({ length: n }).map((n, r) => /* @__PURE__ */ t(e, {}, r))
9
+ });
10
+ //#endregion
11
+ export { n as SkeletonCards };
@@ -1 +1,7 @@
1
- export { o as DashboardCard, a as KpiCard, i as KpiCards, r as MetricCard, n as SkeletonCard, t as SkeletonCards } from "../../../cards-DPzVebUM.js";
1
+ import { DashboardCard as e } from "./DashboardCard.js";
2
+ import { KpiCard as t } from "./KpiCard.js";
3
+ import { KpiCards as n } from "./KpiCards.js";
4
+ import { MetricCard as r } from "./MetricCard.js";
5
+ import { SkeletonCard as i } from "./SkeletonCard.js";
6
+ import { SkeletonCards as a } from "./SkeletonCards.js";
7
+ export { e as DashboardCard, t as KpiCard, n as KpiCards, r as MetricCard, i as SkeletonCard, a as SkeletonCards };
@@ -0,0 +1,123 @@
1
+ import { filterChangelog as e, getChangelogItemAnchors as t, getChangelogTags as n, parseChangelog as r, splitChangelogItems as i } from "../../../helpers/changelog.helper.js";
2
+ import { cn as a } from "../../../helpers/tailwind.helper.js";
3
+ import { useKrosoftTranslation as o } from "../../../i18n/useKrosoftTranslation.js";
4
+ import { SearchInput as s } from "../inputs/SearchInput.js";
5
+ import { useNotifications as c } from "../../../hooks/ui/useNotifications.js";
6
+ import { AppChangelogEntry as l } from "./AppChangelogEntry.js";
7
+ import { AppChangelogNav as u } from "./AppChangelogNav.js";
8
+ import { AppChangelogTagFilter as d } from "./AppChangelogTagFilter.js";
9
+ import { useEffect as f, useMemo as p, useState as m } from "react";
10
+ import { jsx as h, jsxs as g } from "react/jsx-runtime";
11
+ import { useLocation as _, useNavigate as v } from "react-router-dom";
12
+ //#region src/components/core/changelog/AppChangelog.tsx
13
+ var y = "0px 0px -60% 0px", b = ({ content: b, showNav: x = !0, showSearch: S = !0 }) => {
14
+ let { t: C } = o(), { showSuccess: w, showError: T } = c(), E = _(), D = v(), [O, k] = m(""), [A, j] = m([]), [M, N] = m(), P = p(() => r(b), [b]), F = p(() => n(P), [P]), I = p(() => e(P, O, A), [
15
+ P,
16
+ O,
17
+ A
18
+ ]), L = (e) => {
19
+ j((t) => t.includes(e) ? t.filter((t) => t !== e) : [...t, e]);
20
+ }, R = p(() => {
21
+ let e = /* @__PURE__ */ new Map();
22
+ return I.forEach((n) => {
23
+ t(n.id, i(n.content)).forEach((t) => {
24
+ t !== void 0 && e.set(t, n.id);
25
+ });
26
+ }), e;
27
+ }, [I]), z = decodeURIComponent(E.hash.slice(1)), B = I.some((e) => e.id === z) ? z : R.get(z), V = B === void 0 ? void 0 : z, H = I.some((e) => e.id === M) ? M : B ?? I[0]?.id;
28
+ f(() => {
29
+ if (!V) return;
30
+ let e = requestAnimationFrame(() => {
31
+ document.getElementById(V)?.scrollIntoView({
32
+ behavior: "smooth",
33
+ block: "start"
34
+ });
35
+ });
36
+ return () => {
37
+ cancelAnimationFrame(e);
38
+ };
39
+ }, [V]), f(() => {
40
+ let e = /* @__PURE__ */ new Set(), t = new IntersectionObserver((t) => {
41
+ t.forEach((t) => {
42
+ t.isIntersecting ? e.add(t.target.id) : e.delete(t.target.id);
43
+ });
44
+ let n = I.find((t) => e.has(t.id));
45
+ n && N(n.id);
46
+ }, { rootMargin: y });
47
+ return I.forEach((e) => {
48
+ let n = document.getElementById(e.id);
49
+ n && t.observe(n);
50
+ }), () => {
51
+ t.disconnect();
52
+ };
53
+ }, [I]);
54
+ let U = (e) => {
55
+ D({
56
+ search: E.search,
57
+ hash: `#${e}`
58
+ }, { replace: !0 });
59
+ }, W = async (e) => {
60
+ U(e);
61
+ let t = `${window.location.origin}${E.pathname}${E.search}#${e}`;
62
+ try {
63
+ await navigator.clipboard.writeText(t), w(C("markdown.linkCopied"));
64
+ } catch {
65
+ T(C("markdown.linkCopyError"));
66
+ }
67
+ };
68
+ if (P.length === 0) return /* @__PURE__ */ h("p", {
69
+ className: "text-sm text-muted-foreground",
70
+ children: C("changelog.empty")
71
+ });
72
+ let G = /* @__PURE__ */ g("div", {
73
+ className: "flex flex-col gap-4",
74
+ children: [/* @__PURE__ */ h(s, {
75
+ search: O,
76
+ onSearch: k,
77
+ className: "md:w-full"
78
+ }), F.length > 0 ? /* @__PURE__ */ h(d, {
79
+ tags: F,
80
+ selected: A,
81
+ onToggle: L,
82
+ onClear: () => {
83
+ j([]);
84
+ }
85
+ }) : null]
86
+ });
87
+ return /* @__PURE__ */ g("div", {
88
+ className: "flex gap-10",
89
+ children: [x ? /* @__PURE__ */ g("aside", {
90
+ className: "sticky top-4 hidden max-h-[calc(100vh-2rem)] w-60 shrink-0 flex-col gap-8 self-start lg:flex",
91
+ children: [S ? G : null, I.length > 0 ? /* @__PURE__ */ h(u, {
92
+ entries: I,
93
+ activeId: H,
94
+ onSelect: U,
95
+ className: "min-h-0 flex-1 overflow-y-auto"
96
+ }) : null]
97
+ }) : null, /* @__PURE__ */ g("div", {
98
+ className: a("min-w-0 flex-1", x && "lg:border-l lg:pl-10"),
99
+ children: [
100
+ S ? /* @__PURE__ */ h("div", {
101
+ className: a("mb-6 md:max-w-md", x && "lg:hidden"),
102
+ children: G
103
+ }) : null,
104
+ I.length === 0 ? /* @__PURE__ */ h("p", {
105
+ className: "text-sm text-muted-foreground",
106
+ children: C("changelog.noResult")
107
+ }) : null,
108
+ /* @__PURE__ */ h("div", {
109
+ className: "divide-y",
110
+ children: I.map((e) => /* @__PURE__ */ h(l, {
111
+ entry: e,
112
+ onSelect: U,
113
+ onCopyLink: (e) => void W(e),
114
+ selectedTags: A,
115
+ linkedId: V
116
+ }, e.id))
117
+ })
118
+ ]
119
+ })]
120
+ });
121
+ };
122
+ //#endregion
123
+ export { b as AppChangelog };
@@ -0,0 +1,85 @@
1
+ import { getChangelogItemAnchors as e, splitChangelogItems as t } from "../../../helpers/changelog.helper.js";
2
+ import { cn as n } from "../../../helpers/tailwind.helper.js";
3
+ import { useDateFnsLocale as r } from "../../../i18n/useDateFnsLocale.js";
4
+ import { useKrosoftTranslation as i } from "../../../i18n/useKrosoftTranslation.js";
5
+ import { AppMarkdown as a } from "../markdown/AppMarkdown.js";
6
+ import { useMemo as o } from "react";
7
+ import { jsx as s, jsxs as c } from "react/jsx-runtime";
8
+ import { HashIcon as l, LinkIcon as u, TagIcon as d } from "lucide-react";
9
+ import { format as f } from "date-fns";
10
+ //#region src/components/core/changelog/AppChangelogEntry.tsx
11
+ var p = ({ entry: p, onSelect: m, onCopyLink: h, selectedTags: g, linkedId: _ }) => {
12
+ let { t: v } = i(), y = r(), b = o(() => t(p.content), [p.content]), x = o(() => e(p.id, b), [p.id, b]), S = p.date ? f(p.date, p.hasTime ? "d MMMM yyyy - HH:mm" : "d MMMM yyyy", { locale: y }) : void 0, C = (e) => {
13
+ e.preventDefault(), m(p.id);
14
+ }, w = /* @__PURE__ */ s("button", {
15
+ type: "button",
16
+ onClick: () => {
17
+ h(p.id);
18
+ },
19
+ title: v("markdown.copyLink"),
20
+ "aria-label": v("markdown.copyLink"),
21
+ className: "inline-flex shrink-0 text-muted-foreground transition-opacity hover:text-primary md:opacity-0 md:focus-visible:opacity-100 md:group-hover:opacity-100",
22
+ children: /* @__PURE__ */ s(u, { className: "size-4" })
23
+ });
24
+ return /* @__PURE__ */ c("article", {
25
+ id: p.id,
26
+ className: "group scroll-mt-4 py-8 first:pt-0",
27
+ children: [/* @__PURE__ */ c("div", {
28
+ className: "mb-4 flex flex-wrap items-center gap-x-3 gap-y-1",
29
+ children: [
30
+ p.version === void 0 ? null : /* @__PURE__ */ c("span", {
31
+ title: v("changelog.version", { version: p.version }),
32
+ className: "inline-flex items-center gap-1.5 rounded-full border border-primary/30 bg-primary/10 px-2.5 py-0.5 font-mono text-xs font-semibold text-primary",
33
+ children: [/* @__PURE__ */ s(d, {
34
+ className: "size-3",
35
+ "aria-hidden": "true"
36
+ }), p.version]
37
+ }),
38
+ p.title === void 0 ? null : /* @__PURE__ */ s("h2", {
39
+ className: "text-lg font-semibold leading-tight text-foreground",
40
+ children: p.title
41
+ }),
42
+ S === void 0 ? null : /* @__PURE__ */ s("a", {
43
+ href: `#${p.id}`,
44
+ onClick: C,
45
+ className: "text-sm font-medium text-muted-foreground hover:text-primary",
46
+ children: S
47
+ }),
48
+ w
49
+ ]
50
+ }), /* @__PURE__ */ s("div", {
51
+ className: "space-y-4 pl-4 sm:pl-6",
52
+ children: b.map((e, t) => {
53
+ let r = x[t];
54
+ return /* @__PURE__ */ c("div", {
55
+ id: r,
56
+ className: n("scroll-mt-4 rounded-md", r !== void 0 && r === _ && "-mx-3 bg-primary/5 px-3 py-2 ring-1 ring-primary/20"),
57
+ children: [e.tag === void 0 || r === void 0 ? null : /* @__PURE__ */ c("p", {
58
+ className: n("mb-1 flex items-center gap-1.5 text-sm font-semibold", g.includes(e.tag) ? "text-primary" : "text-foreground"),
59
+ children: [/* @__PURE__ */ s("button", {
60
+ type: "button",
61
+ onClick: () => {
62
+ h(r);
63
+ },
64
+ title: v("markdown.copyLink"),
65
+ "aria-label": v("markdown.copyLink"),
66
+ className: "inline-flex shrink-0 text-muted-foreground opacity-60 transition hover:text-primary hover:opacity-100",
67
+ children: /* @__PURE__ */ s(l, {
68
+ className: "size-3.5",
69
+ "aria-hidden": "true"
70
+ })
71
+ }), e.tag]
72
+ }), /* @__PURE__ */ s("div", {
73
+ className: n("min-w-0 [&>*:last-child]:mb-0", e.tag !== void 0 && "pl-5"),
74
+ children: /* @__PURE__ */ s(a, {
75
+ content: e.content,
76
+ headingAnchors: !1
77
+ })
78
+ })]
79
+ }, r ?? `item-${String(t)}`);
80
+ })
81
+ })]
82
+ });
83
+ };
84
+ //#endregion
85
+ export { p as AppChangelogEntry };
@@ -0,0 +1,39 @@
1
+ import { cn as e } from "../../../helpers/tailwind.helper.js";
2
+ import { useDateFnsLocale as t } from "../../../i18n/useDateFnsLocale.js";
3
+ import { useKrosoftTranslation as n } from "../../../i18n/useKrosoftTranslation.js";
4
+ import { jsx as r, jsxs as i } from "react/jsx-runtime";
5
+ import { format as a } from "date-fns";
6
+ //#region src/components/core/changelog/AppChangelogNav.tsx
7
+ var o = ({ entries: o, activeId: s, onSelect: c, className: l }) => {
8
+ let { t: u } = n(), d = t();
9
+ return /* @__PURE__ */ i("nav", {
10
+ "aria-label": u("changelog.nav"),
11
+ className: l,
12
+ children: [/* @__PURE__ */ r("p", {
13
+ className: "mb-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground",
14
+ children: u("changelog.nav")
15
+ }), /* @__PURE__ */ r("ul", {
16
+ className: "space-y-1",
17
+ children: o.map((t) => {
18
+ let n = t.id === s, o = t.date ? a(t.date, t.hasTime ? "d MMM yyyy - HH:mm" : "d MMM yyyy", { locale: d }) : void 0, l = t.title ?? o ?? t.heading, f = [t.version === void 0 ? void 0 : u("changelog.version", { version: t.version }), t.title === void 0 ? void 0 : o].filter(Boolean).join(" ");
19
+ return /* @__PURE__ */ r("li", { children: /* @__PURE__ */ i("a", {
20
+ href: `#${t.id}`,
21
+ onClick: (e) => {
22
+ e.preventDefault(), c(t.id);
23
+ },
24
+ "aria-current": n ? "location" : void 0,
25
+ className: e("block rounded-md border border-transparent px-3 py-1.5 text-sm text-muted-foreground transition-colors hover:text-foreground", n && "border-border bg-muted text-foreground"),
26
+ children: [/* @__PURE__ */ r("span", {
27
+ className: e("block", n && "font-semibold"),
28
+ children: l
29
+ }), f === "" ? null : /* @__PURE__ */ r("span", {
30
+ className: "mt-0.5 block whitespace-pre text-xs text-muted-foreground",
31
+ children: f
32
+ })]
33
+ }) }, t.id);
34
+ })
35
+ })]
36
+ });
37
+ };
38
+ //#endregion
39
+ export { o as AppChangelogNav };
@@ -0,0 +1,39 @@
1
+ import { cn as e } from "../../../helpers/tailwind.helper.js";
2
+ import { useKrosoftTranslation as t } from "../../../i18n/useKrosoftTranslation.js";
3
+ import { badgeVariants as n } from "../../ui/badge.js";
4
+ import { jsx as r, jsxs as i } from "react/jsx-runtime";
5
+ //#region src/components/core/changelog/AppChangelogTagFilter.tsx
6
+ var a = ({ tags: a, selected: o, onToggle: s, onClear: c, className: l }) => {
7
+ let { t: u } = t();
8
+ return /* @__PURE__ */ i("div", {
9
+ className: l,
10
+ children: [/* @__PURE__ */ i("div", {
11
+ className: "mb-2 flex items-center justify-between gap-2",
12
+ children: [/* @__PURE__ */ r("p", {
13
+ className: "text-xs font-semibold uppercase tracking-wide text-muted-foreground",
14
+ children: u("changelog.tagsPlaceholder")
15
+ }), o.length > 0 ? /* @__PURE__ */ r("button", {
16
+ type: "button",
17
+ onClick: c,
18
+ className: "text-xs text-muted-foreground hover:text-foreground",
19
+ children: u("actions.clear")
20
+ }) : null]
21
+ }), /* @__PURE__ */ r("div", {
22
+ className: "flex flex-wrap gap-1.5",
23
+ children: a.map((t) => {
24
+ let i = o.includes(t);
25
+ return /* @__PURE__ */ r("button", {
26
+ type: "button",
27
+ "aria-pressed": i,
28
+ onClick: () => {
29
+ s(t);
30
+ },
31
+ className: e(n({ variant: i ? "default" : "outline" }), "cursor-pointer font-medium focus:ring-0 focus-visible:ring-2", !i && "hover:bg-muted"),
32
+ children: t
33
+ }, t);
34
+ })
35
+ })]
36
+ });
37
+ };
38
+ //#endregion
39
+ export { a as AppChangelogTagFilter };
@@ -1 +1 @@
1
- export { t as AppChangelog } from "../../../changelog-DyPFIscf.js";
1
+ export { AppChangelog } from "./AppChangelog.js";
@@ -0,0 +1,80 @@
1
+ import { cn as e } from "../../../helpers/tailwind.helper.js";
2
+ import { ChartContainer as t, ChartTooltip as n, ChartTooltipContent as r } from "../../ui/chart.js";
3
+ import { buildTooltipValueFormatter as i } from "./chartTooltip.helper.js";
4
+ import * as a from "react";
5
+ import { jsx as o, jsxs as s } from "react/jsx-runtime";
6
+ import { Bar as c, BarChart as l, CartesianGrid as u, Rectangle as d, XAxis as f, YAxis as p } from "recharts";
7
+ //#region src/components/core/charts/BarChartHorizontal.tsx
8
+ var m = .35, h = (e, t) => t > 0 && e.length > t ? `${e.slice(0, t)}…` : e, g = ({ data: g, label: _ = "Valeur", color: v = "hsl(var(--primary))", categoryWidth: y = 140, maxLabelLength: b = 22, valueFormatter: x, onSelect: S, className: C }) => {
9
+ let [w, T] = a.useState(null), E = a.useMemo(() => ({ value: {
10
+ label: _,
11
+ color: v
12
+ } }), [_, v]), D = a.useMemo(() => i(x, _), [x, _]), O = a.useMemo(() => g.some((e) => e.color !== void 0) ? g.map((e) => ({
13
+ ...e,
14
+ fill: e.color ?? v
15
+ })) : g, [g, v]);
16
+ return /* @__PURE__ */ o(t, {
17
+ config: E,
18
+ className: e("aspect-auto size-full", C),
19
+ children: /* @__PURE__ */ s(l, {
20
+ data: O,
21
+ layout: "vertical",
22
+ margin: {
23
+ top: 5,
24
+ right: 20,
25
+ left: 0,
26
+ bottom: 5
27
+ },
28
+ children: [
29
+ /* @__PURE__ */ o(u, {
30
+ strokeDasharray: "3 3",
31
+ horizontal: !1
32
+ }),
33
+ /* @__PURE__ */ o(f, {
34
+ type: "number",
35
+ dataKey: "value",
36
+ allowDecimals: !1,
37
+ tickLine: !1,
38
+ axisLine: !1,
39
+ tickMargin: 8,
40
+ tickFormatter: x ? (e) => x(Number(e)) : void 0
41
+ }),
42
+ /* @__PURE__ */ o(p, {
43
+ type: "category",
44
+ dataKey: "name",
45
+ width: y,
46
+ tickLine: !1,
47
+ axisLine: !1,
48
+ tickFormatter: (e) => h(String(e), b)
49
+ }),
50
+ /* @__PURE__ */ o(n, { content: /* @__PURE__ */ o(r, { formatter: D }) }),
51
+ /* @__PURE__ */ o(c, {
52
+ dataKey: "value",
53
+ fill: "var(--color-value)",
54
+ radius: [
55
+ 0,
56
+ 4,
57
+ 4,
58
+ 0
59
+ ],
60
+ className: S ? "cursor-pointer" : void 0,
61
+ onMouseEnter: S ? (e, t) => {
62
+ T(t);
63
+ } : void 0,
64
+ onMouseLeave: S ? () => {
65
+ T(null);
66
+ } : void 0,
67
+ shape: (e) => /* @__PURE__ */ o(d, {
68
+ ...e,
69
+ fillOpacity: w !== null && w !== e.index ? m : 1
70
+ }),
71
+ onClick: S ? (e, t) => {
72
+ S(g[t], t);
73
+ } : void 0
74
+ })
75
+ ]
76
+ })
77
+ });
78
+ };
79
+ //#endregion
80
+ export { g as BarChartHorizontal };
@@ -0,0 +1,68 @@
1
+ import { cn as e } from "../../../helpers/tailwind.helper.js";
2
+ import { ChartContainer as t, ChartTooltip as n, ChartTooltipContent as r } from "../../ui/chart.js";
3
+ import { buildTooltipValueFormatter as i } from "./chartTooltip.helper.js";
4
+ import * as a from "react";
5
+ import { jsx as o, jsxs as s } from "react/jsx-runtime";
6
+ import { Bar as c, BarChart as l, CartesianGrid as u, XAxis as d, YAxis as f } from "recharts";
7
+ //#region src/components/core/charts/BarChartVertical.tsx
8
+ var p = ({ data: p, label: m = "Valeur", color: h = "hsl(var(--primary))", labelAngle: g, valueFormatter: _, allowDecimals: v = !1, onSelect: y, className: b }) => {
9
+ let x = a.useMemo(() => ({ value: {
10
+ label: m,
11
+ color: h
12
+ } }), [m, h]), S = a.useMemo(() => i(_, m), [_, m]), C = g !== void 0 && g !== 0, w = a.useMemo(() => p.some((e) => e.color !== void 0) ? p.map((e) => ({
13
+ ...e,
14
+ fill: e.color ?? h
15
+ })) : p, [p, h]);
16
+ return /* @__PURE__ */ o(t, {
17
+ config: x,
18
+ className: e("aspect-auto size-full", b),
19
+ children: /* @__PURE__ */ s(l, {
20
+ data: w,
21
+ margin: {
22
+ top: 10,
23
+ right: 10,
24
+ left: 0,
25
+ bottom: C ? 20 : 10
26
+ },
27
+ children: [
28
+ /* @__PURE__ */ o(u, {
29
+ strokeDasharray: "3 3",
30
+ vertical: !1
31
+ }),
32
+ /* @__PURE__ */ o(d, {
33
+ dataKey: "name",
34
+ angle: g,
35
+ textAnchor: C ? "end" : "middle",
36
+ height: C ? 50 : void 0,
37
+ tickLine: !1,
38
+ axisLine: !1,
39
+ tickMargin: 8
40
+ }),
41
+ /* @__PURE__ */ o(f, {
42
+ allowDecimals: v,
43
+ tickLine: !1,
44
+ axisLine: !1,
45
+ width: _ ? 48 : 32,
46
+ tickFormatter: _ ? (e) => _(Number(e)) : void 0
47
+ }),
48
+ /* @__PURE__ */ o(n, { content: /* @__PURE__ */ o(r, { formatter: S }) }),
49
+ /* @__PURE__ */ o(c, {
50
+ dataKey: "value",
51
+ fill: "var(--color-value)",
52
+ radius: [
53
+ 4,
54
+ 4,
55
+ 0,
56
+ 0
57
+ ],
58
+ className: y ? "cursor-pointer" : void 0,
59
+ onClick: y ? (e, t) => {
60
+ y(p[t], t);
61
+ } : void 0
62
+ })
63
+ ]
64
+ })
65
+ });
66
+ };
67
+ //#endregion
68
+ export { p as BarChartVertical };