@krosoft/react 0.0.238 → 0.0.239

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 (109) hide show
  1. package/dist/AppActions-C_0YI75w.js +60 -0
  2. package/dist/AppSubTitle-tqqV9nuT.js +19 -0
  3. package/dist/AppTitle-BR4JFZfp.js +19 -0
  4. package/dist/ErrorAlert-BDqDHUUc.js +27 -0
  5. package/dist/GenericForm-CWXT5wiv.js +310 -0
  6. package/dist/ImageInput-CN2ozjpc.js +80 -0
  7. package/dist/MultiSelect-BF0zL0B0.js +134 -0
  8. package/dist/SearchInput-BJPT0SbB.js +255 -0
  9. package/dist/alert-REQGK9bR.js +32 -0
  10. package/dist/behavior-BR_V9Rpe.js +76 -0
  11. package/dist/cards-Cta6x49J.js +126 -0
  12. package/dist/chart-Dq3AIrue.js +166 -0
  13. package/dist/charts-CXhVUqLH.js +328 -0
  14. package/dist/components/core/cards/index.js +2 -10
  15. package/dist/components/core/charts/index.js +2 -11
  16. package/dist/components/core/dialogs/index.js +4 -19
  17. package/dist/components/core/filters/index.js +426 -7
  18. package/dist/components/core/forms/index.js +2 -4
  19. package/dist/components/core/index.js +24 -97
  20. package/dist/components/core/inputs/index.js +4 -11
  21. package/dist/components/core/language/index.js +2 -4
  22. package/dist/components/core/layouts/index.js +50 -11
  23. package/dist/components/core/navbar/index.js +2 -9
  24. package/dist/components/core/states/index.js +3 -8
  25. package/dist/components/core/table/index.js +2 -15
  26. package/dist/components/core/tabs/index.js +188 -6
  27. package/dist/components/core/theme/index.js +2 -4
  28. package/dist/components/index.js +28 -322
  29. package/dist/components/ui/index.js +8 -240
  30. package/dist/contexts/index.js +2 -5
  31. package/dist/dialogs-BGHSClsq.js +208 -0
  32. package/dist/helpers/index.js +39 -46
  33. package/dist/hooks/behavior/index.js +2 -10
  34. package/dist/hooks/index.js +11 -30
  35. package/dist/hooks/ui/index.js +10 -22
  36. package/dist/i18n/index.js +2 -10
  37. package/dist/i18n-Dw99bRmg.js +190 -0
  38. package/dist/language-DxHhlpgN.js +58 -0
  39. package/dist/navbar-Bc5OQWRI.js +385 -0
  40. package/dist/providers/index.js +42 -49
  41. package/dist/pwa/index.js +32 -34
  42. package/dist/select-ULiTPOr5.js +81 -0
  43. package/dist/sheet-CRrYTZrl.js +226 -0
  44. package/dist/sidebar.context-BahtU6hE.js +5 -0
  45. package/dist/skeleton-D6Ga4BLw.js +11 -0
  46. package/dist/states-N8-LjFng.js +26 -0
  47. package/dist/table-muUyiaK6.js +571 -0
  48. package/dist/tailwind/index.js +126 -156
  49. package/dist/tailwind.helper-CJaRYBmL.js +8 -0
  50. package/dist/theme-B_n0F6R4.js +57 -0
  51. package/dist/tokens/index.js +37 -46
  52. package/dist/tooltip-B2dzyfs9.js +50 -0
  53. package/dist/types/forms/index.js +0 -1
  54. package/dist/types/index.js +1 -1
  55. package/dist/ui-CiX0E_bn.js +1165 -0
  56. package/dist/ui-DSVBO3iM.js +46 -0
  57. package/dist/useDocumentTitle-D7MywIeB.js +19 -0
  58. package/dist/useFixedColumns-DfAX30tT.js +147 -0
  59. package/dist/useLanguage-DN3CuBv5.js +19 -0
  60. package/dist/useMobile-pTQ8lWvt.js +16 -0
  61. package/dist/useNotifications-CyhTruIG.js +20 -0
  62. package/dist/useScrollFade-D9kqJBDh.js +27 -0
  63. package/dist/useTheme-DVfcJ-Qd.js +25 -0
  64. package/dist/useToast-UeDRLovh.js +103 -0
  65. package/package.json +2 -2
  66. package/dist/AppActions-BFwztl-1.js +0 -76
  67. package/dist/AppSubTitle-BTN0YAc7.js +0 -13
  68. package/dist/AppTitle-D15YXeMx.js +0 -13
  69. package/dist/AppVerticalTabs-B7XXtAVj.js +0 -103
  70. package/dist/ConfirmationDialog-Dj4WdnHg.js +0 -188
  71. package/dist/DataTable-CjrR27Di.js +0 -638
  72. package/dist/ErrorAlert-B99Xb_Hg.js +0 -23
  73. package/dist/ErrorState-CkeS_IBT.js +0 -14
  74. package/dist/GenericForm-CydibLHU.js +0 -343
  75. package/dist/ImageInput-DoOOvvth.js +0 -70
  76. package/dist/KpiCardsLayout-Bq4xQ3i8.js +0 -43
  77. package/dist/LanguageSelector-C7E51rCQ.js +0 -47
  78. package/dist/LoadingState-BN0YaPSs.js +0 -9
  79. package/dist/MetricCard-B0xnFyim.js +0 -53
  80. package/dist/MultiSelect-DbH7LrsD.js +0 -149
  81. package/dist/PieChart-uozNJtEx.js +0 -295
  82. package/dist/SearchInput-DIZ5Yt6L.js +0 -246
  83. package/dist/SkeletonCards-B9C4cNMr.js +0 -75
  84. package/dist/TableFilter-CmEVF5Bo.js +0 -422
  85. package/dist/ThemeSelector-CLi4_epH.js +0 -52
  86. package/dist/Topbar-Clby5_uj.js +0 -431
  87. package/dist/alert-B9F1N9Qk.js +0 -30
  88. package/dist/chart-DntJZGxB.js +0 -181
  89. package/dist/select-BpjFWqAY.js +0 -96
  90. package/dist/sheet-XYI-ezvY.js +0 -292
  91. package/dist/sidebar.context-D5nywlmP.js +0 -6
  92. package/dist/skeleton-BX4RcsiK.js +0 -8
  93. package/dist/tailwind.helper-B6yFEsav.js +0 -8
  94. package/dist/toaster-CyzB1m5z.js +0 -75
  95. package/dist/toggle-group-iZqnrTj7.js +0 -1276
  96. package/dist/tooltip-DVeqVwqV.js +0 -61
  97. package/dist/useDateFnsLocale-D6VExZ8U.js +0 -11
  98. package/dist/useDocumentTitle-WNwdPz-I.js +0 -14
  99. package/dist/useFixedColumns-CKZyu4PD.js +0 -161
  100. package/dist/useKrosoftTranslation-BTp46G94.js +0 -47
  101. package/dist/useLanguage-C9jI2nwn.js +0 -19
  102. package/dist/useMobile-DN1_OMDB.js +0 -16
  103. package/dist/useNotifications-zbUhCvF_.js +0 -12
  104. package/dist/usePage-BQm6tdJD.js +0 -84
  105. package/dist/useScrollFade-BA4KqJYp.js +0 -23
  106. package/dist/useServerTable-UvTY6L1N.js +0 -38
  107. package/dist/useSidebar-BJuALHqQ.js +0 -11
  108. package/dist/useTheme-DS6ZjdzM.js +0 -27
  109. package/dist/useToast-BFTk4lWz.js +0 -100
@@ -1,50 +1,43 @@
1
- import { jsx as S } from "react/jsx-runtime";
2
- import { S as E } from "../sidebar.context-D5nywlmP.js";
3
- import * as t from "react";
4
- import "date-fns/locale";
5
- import "react-i18next";
6
- import "lucide-react";
7
- import { u as C } from "../useMobile-DN1_OMDB.js";
8
- import "next-themes";
9
- const m = "sidebar:collapsed", y = 3600 * 24 * 7, _ = "b", b = (n) => {
10
- if (typeof document > "u")
11
- return n;
12
- const s = document.cookie.split("; ").find((a) => a.startsWith(`${m}=`));
13
- return s === void 0 ? n : s.split("=")[1] === "true";
14
- }, R = ({
15
- children: n,
16
- defaultCollapsed: s = !1,
17
- collapsed: a,
18
- onCollapsedChange: d
19
- }) => {
20
- const l = C(), [p, u] = t.useState(() => b(s)), i = a ?? p, r = t.useCallback(
21
- (e) => {
22
- const o = typeof e == "function" ? e(i) : e;
23
- d ? d(o) : u(o), typeof document < "u" && (document.cookie = `${m}=${String(o)}; path=/; max-age=${String(y)}`);
24
- },
25
- [d, i]
26
- ), c = t.useCallback(() => {
27
- r((e) => !e);
28
- }, [r]);
29
- t.useEffect(() => {
30
- const e = (o) => {
31
- o.key === _ && (o.metaKey || o.ctrlKey) && (o.preventDefault(), c());
32
- };
33
- return window.addEventListener("keydown", e), () => {
34
- window.removeEventListener("keydown", e);
35
- };
36
- }, [c]);
37
- const f = t.useMemo(
38
- () => ({
39
- collapsed: i,
40
- setCollapsed: r,
41
- isMobile: l,
42
- toggleSidebar: c
43
- }),
44
- [i, r, l, c]
45
- );
46
- return /* @__PURE__ */ S(E.Provider, { value: f, children: n });
47
- };
48
- export {
49
- R as SidebarProvider
1
+ import { t as e } from "../useMobile-pTQ8lWvt.js";
2
+ import { t } from "../sidebar.context-BahtU6hE.js";
3
+ import "../hooks/index.js";
4
+ import * as n from "react";
5
+ import { jsx as r } from "react/jsx-runtime";
6
+ //#region src/providers/SidebarProvider.tsx
7
+ var i = "sidebar:collapsed", a = 604800, o = "b", s = (e) => {
8
+ if (typeof document > "u") return e;
9
+ let t = document.cookie.split("; ").find((e) => e.startsWith(`${i}=`));
10
+ return t === void 0 ? e : t.split("=")[1] === "true";
11
+ }, c = ({ children: c, defaultCollapsed: l = !1, collapsed: u, onCollapsedChange: d }) => {
12
+ let f = e(), [p, m] = n.useState(() => s(l)), h = u ?? p, g = n.useCallback((e) => {
13
+ let t = typeof e == "function" ? e(h) : e;
14
+ d ? d(t) : m(t), typeof document < "u" && (document.cookie = `${i}=${String(t)}; path=/; max-age=${String(a)}`);
15
+ }, [d, h]), _ = n.useCallback(() => {
16
+ g((e) => !e);
17
+ }, [g]);
18
+ n.useEffect(() => {
19
+ let e = (e) => {
20
+ e.key === o && (e.metaKey || e.ctrlKey) && (e.preventDefault(), _());
21
+ };
22
+ return window.addEventListener("keydown", e), () => {
23
+ window.removeEventListener("keydown", e);
24
+ };
25
+ }, [_]);
26
+ let v = n.useMemo(() => ({
27
+ collapsed: h,
28
+ setCollapsed: g,
29
+ isMobile: f,
30
+ toggleSidebar: _
31
+ }), [
32
+ h,
33
+ g,
34
+ f,
35
+ _
36
+ ]);
37
+ return /* @__PURE__ */ r(t.Provider, {
38
+ value: v,
39
+ children: c
40
+ });
50
41
  };
42
+ //#endregion
43
+ export { c as SidebarProvider };
package/dist/pwa/index.js CHANGED
@@ -1,35 +1,33 @@
1
- import { useEffect as n } from "react";
2
- import { useTranslation as a } from "react-i18next";
3
- import { toast as u } from "sonner";
4
- import { useRegisterSW as d } from "virtual:pwa-register/react";
5
- const f = 3600 * 1e3, v = ({ checkIntervalMs: i = f } = {}) => {
6
- const { t: e } = a(), {
7
- needRefresh: [t, r],
8
- updateServiceWorker: o
9
- } = d({
10
- onRegisteredSW(l, s) {
11
- s && setInterval(() => void s.update(), i);
12
- }
13
- });
14
- return n(() => {
15
- t && u(e("pwa.updateAvailable"), {
16
- // Aucune expiration : la proposition reste tant que l'utilisateur ne tranche pas.
17
- duration: 1 / 0,
18
- // Sans ce bouton, un toast permanent ne se fermerait qu'au balayage sur mobile.
19
- closeButton: !0,
20
- dismissible: !0,
21
- action: {
22
- label: e("pwa.updateAction"),
23
- onClick: () => {
24
- o(!0);
25
- }
26
- },
27
- onDismiss: () => {
28
- r(!1);
29
- }
30
- });
31
- }, [t, r, e, o]), null;
32
- };
33
- export {
34
- v as PwaUpdater
1
+ import { useEffect as e } from "react";
2
+ import { useTranslation as t } from "react-i18next";
3
+ import { toast as n } from "sonner";
4
+ import { useRegisterSW as r } from "virtual:pwa-register/react";
5
+ //#region src/pwa/PwaUpdater.tsx
6
+ var i = 36e5, a = ({ checkIntervalMs: a = i } = {}) => {
7
+ let { t: o } = t(), { needRefresh: [s, c], updateServiceWorker: l } = r({ onRegisteredSW(e, t) {
8
+ t && setInterval(() => void t.update(), a);
9
+ } });
10
+ return e(() => {
11
+ s && n(o("pwa.updateAvailable"), {
12
+ duration: Infinity,
13
+ closeButton: !0,
14
+ dismissible: !0,
15
+ action: {
16
+ label: o("pwa.updateAction"),
17
+ onClick: () => {
18
+ l(!0);
19
+ }
20
+ },
21
+ onDismiss: () => {
22
+ c(!1);
23
+ }
24
+ });
25
+ }, [
26
+ s,
27
+ c,
28
+ o,
29
+ l
30
+ ]), null;
35
31
  };
32
+ //#endregion
33
+ export { a as PwaUpdater };
@@ -0,0 +1,81 @@
1
+ import { t as e } from "./tailwind.helper-CJaRYBmL.js";
2
+ import { o as t } from "./tooltip-B2dzyfs9.js";
3
+ import * as n from "react";
4
+ import { jsx as r, jsxs as i } from "react/jsx-runtime";
5
+ import { CheckIcon as a, ChevronDownIcon as o, ChevronUpIcon as s, XIcon as c } from "lucide-react";
6
+ import * as l from "@radix-ui/react-select";
7
+ //#region src/components/ui/select.tsx
8
+ var u = l.Root, d = l.Group, f = l.Value, p = n.forwardRef(({ className: n, children: a, onClear: s, ...u }, d) => /* @__PURE__ */ i(l.Trigger, {
9
+ ref: d,
10
+ className: e(t, "w-full placeholder:text-muted-foreground", n),
11
+ ...u,
12
+ children: [a, /* @__PURE__ */ i("div", {
13
+ className: "flex items-center gap-1",
14
+ children: [s && /* @__PURE__ */ r("span", {
15
+ role: "button",
16
+ tabIndex: -1,
17
+ onPointerDown: (e) => {
18
+ e.preventDefault(), e.stopPropagation(), s(e);
19
+ },
20
+ className: "text-muted-foreground hover:text-foreground",
21
+ children: /* @__PURE__ */ r(c, { className: "size-4" })
22
+ }), /* @__PURE__ */ r(l.Icon, {
23
+ asChild: !0,
24
+ children: /* @__PURE__ */ r(o, { className: "size-4 opacity-50" })
25
+ })]
26
+ })]
27
+ }));
28
+ p.displayName = l.Trigger.displayName;
29
+ var m = n.forwardRef(({ className: t, ...n }, i) => /* @__PURE__ */ r(l.ScrollUpButton, {
30
+ ref: i,
31
+ className: e("flex cursor-default items-center justify-center py-1", t),
32
+ ...n,
33
+ children: /* @__PURE__ */ r(s, { className: "size-4" })
34
+ }));
35
+ m.displayName = l.ScrollUpButton.displayName;
36
+ var h = n.forwardRef(({ className: t, ...n }, i) => /* @__PURE__ */ r(l.ScrollDownButton, {
37
+ ref: i,
38
+ className: e("flex cursor-default items-center justify-center py-1", t),
39
+ ...n,
40
+ children: /* @__PURE__ */ r(o, { className: "size-4" })
41
+ }));
42
+ h.displayName = l.ScrollDownButton.displayName;
43
+ var g = n.forwardRef(({ className: t, children: n, position: a = "popper", ...o }, s) => /* @__PURE__ */ r(l.Portal, { children: /* @__PURE__ */ i(l.Content, {
44
+ ref: s,
45
+ className: e("relative z-[100] max-h-96 min-w-[8rem] overflow-hidden rounded-surface border bg-popover text-popover-foreground shadow-md 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", a === "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", t),
46
+ position: a,
47
+ ...o,
48
+ children: [
49
+ /* @__PURE__ */ r(m, {}),
50
+ /* @__PURE__ */ r(l.Viewport, {
51
+ className: e("p-1", a === "popper" && "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),
52
+ children: n
53
+ }),
54
+ /* @__PURE__ */ r(h, {})
55
+ ]
56
+ }) }));
57
+ g.displayName = l.Content.displayName;
58
+ var _ = n.forwardRef(({ className: t, ...n }, i) => /* @__PURE__ */ r(l.Label, {
59
+ ref: i,
60
+ className: e("py-1.5 pl-8 pr-2 text-sm font-semibold", t),
61
+ ...n
62
+ }));
63
+ _.displayName = l.Label.displayName;
64
+ var v = n.forwardRef(({ className: t, children: n, ...o }, s) => /* @__PURE__ */ i(l.Item, {
65
+ ref: s,
66
+ className: e("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50", t),
67
+ ...o,
68
+ children: [/* @__PURE__ */ r("span", {
69
+ className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center",
70
+ children: /* @__PURE__ */ r(l.ItemIndicator, { children: /* @__PURE__ */ r(a, { className: "size-4" }) })
71
+ }), /* @__PURE__ */ r(l.ItemText, { children: n })]
72
+ }));
73
+ v.displayName = l.Item.displayName;
74
+ var y = n.forwardRef(({ className: t, ...n }, i) => /* @__PURE__ */ r(l.Separator, {
75
+ ref: i,
76
+ className: e("-mx-1 my-1 h-px bg-muted", t),
77
+ ...n
78
+ }));
79
+ y.displayName = l.Separator.displayName;
80
+ //#endregion
81
+ export { _ as a, y as c, v as i, p as l, g as n, h as o, d as r, m as s, u as t, f as u };
@@ -0,0 +1,226 @@
1
+ import { t as e } from "./tailwind.helper-CJaRYBmL.js";
2
+ import "./helpers/index.js";
3
+ import { a as t } from "./tooltip-B2dzyfs9.js";
4
+ import { t as n } from "./i18n-Dw99bRmg.js";
5
+ import * as r from "react";
6
+ import { jsx as i, jsxs as a } from "react/jsx-runtime";
7
+ import { SearchIcon as o, X as s } from "lucide-react";
8
+ import { cva as c } from "class-variance-authority";
9
+ import { Command as l } from "cmdk";
10
+ import * as u from "@radix-ui/react-dialog";
11
+ import * as d from "@radix-ui/react-popover";
12
+ import * as f from "@radix-ui/react-scroll-area";
13
+ //#region src/components/ui/dialog.tsx
14
+ var p = u.Root, m = u.Trigger, h = u.Portal, g = u.Close, _ = r.forwardRef(({ className: t, ...n }, r) => /* @__PURE__ */ i(u.Overlay, {
15
+ ref: r,
16
+ 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),
17
+ ...n
18
+ }));
19
+ _.displayName = u.Overlay.displayName;
20
+ 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, {
21
+ ref: o,
22
+ 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),
23
+ ...r,
24
+ children: [n, /* @__PURE__ */ a(u.Close, {
25
+ 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",
26
+ children: [/* @__PURE__ */ i(s, { className: "size-4" }), /* @__PURE__ */ i("span", {
27
+ className: "sr-only",
28
+ children: "Close"
29
+ })]
30
+ })]
31
+ })] }));
32
+ y.displayName = u.Content.displayName;
33
+ var b = ({ className: t, ...n }) => /* @__PURE__ */ i("div", {
34
+ className: e("flex flex-col space-y-1.5 text-center sm:text-left", t),
35
+ ...n
36
+ });
37
+ b.displayName = "DialogHeader";
38
+ var x = ({ className: t, ...n }) => /* @__PURE__ */ i("div", {
39
+ className: e("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", t),
40
+ ...n
41
+ });
42
+ x.displayName = "DialogFooter";
43
+ var S = r.forwardRef(({ className: t, ...n }, r) => /* @__PURE__ */ i(u.Title, {
44
+ ref: r,
45
+ className: e("text-lg font-semibold leading-none tracking-tight", t),
46
+ ...n
47
+ }));
48
+ S.displayName = u.Title.displayName;
49
+ var C = r.forwardRef(({ className: t, ...n }, r) => /* @__PURE__ */ i(u.Description, {
50
+ ref: r,
51
+ className: e("text-sm text-muted-foreground", t),
52
+ ...n
53
+ }));
54
+ C.displayName = u.Description.displayName;
55
+ //#endregion
56
+ //#region src/components/ui/command.tsx
57
+ var w = r.forwardRef(({ className: t, ...n }, r) => /* @__PURE__ */ i(l, {
58
+ ref: r,
59
+ className: e("flex h-full w-full flex-col overflow-hidden rounded-surface bg-popover text-popover-foreground", t),
60
+ ...n
61
+ }));
62
+ w.displayName = l.displayName;
63
+ var T = ({ title: t, description: r, shouldFilter: o, className: s, children: c, ...l }) => {
64
+ let { t: u } = n();
65
+ return /* @__PURE__ */ i(p, {
66
+ ...l,
67
+ children: /* @__PURE__ */ a(y, {
68
+ className: "flex flex-col overflow-hidden p-0 shadow-lg",
69
+ children: [
70
+ /* @__PURE__ */ i(S, {
71
+ className: "sr-only",
72
+ children: t ?? u("search.commandTitle")
73
+ }),
74
+ /* @__PURE__ */ i(C, {
75
+ className: "sr-only",
76
+ children: r ?? u("search.commandDescription")
77
+ }),
78
+ /* @__PURE__ */ i(w, {
79
+ shouldFilter: o,
80
+ 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),
81
+ children: c
82
+ })
83
+ ]
84
+ })
85
+ });
86
+ }, E = r.forwardRef(({ className: t, ...n }, r) => /* @__PURE__ */ a("div", {
87
+ className: "flex items-center border-b px-3",
88
+ "cmdk-input-wrapper": "",
89
+ children: [/* @__PURE__ */ i(o, { className: "mr-2 size-4 shrink-0 opacity-50" }), /* @__PURE__ */ i(l.Input, {
90
+ ref: r,
91
+ 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),
92
+ ...n
93
+ })]
94
+ }));
95
+ E.displayName = l.Input.displayName;
96
+ var D = r.forwardRef(({ className: t, ...n }, r) => /* @__PURE__ */ i(l.List, {
97
+ ref: r,
98
+ className: e("max-h-[300px] overflow-y-auto overflow-x-hidden", t),
99
+ ...n
100
+ }));
101
+ D.displayName = l.List.displayName;
102
+ var O = r.forwardRef((e, t) => /* @__PURE__ */ i(l.Empty, {
103
+ ref: t,
104
+ className: "py-6 text-center text-sm",
105
+ ...e
106
+ }));
107
+ O.displayName = l.Empty.displayName;
108
+ var k = r.forwardRef(({ className: t, ...n }, r) => /* @__PURE__ */ i(l.Group, {
109
+ ref: r,
110
+ 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),
111
+ ...n
112
+ }));
113
+ k.displayName = l.Group.displayName;
114
+ var A = r.forwardRef(({ className: t, ...n }, r) => /* @__PURE__ */ i(l.Separator, {
115
+ ref: r,
116
+ className: e("-mx-1 h-px bg-border", t),
117
+ ...n
118
+ }));
119
+ A.displayName = l.Separator.displayName;
120
+ var j = r.forwardRef(({ className: t, ...n }, r) => /* @__PURE__ */ i(l.Item, {
121
+ ref: r,
122
+ 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),
123
+ ...n
124
+ }));
125
+ j.displayName = l.Item.displayName;
126
+ var M = ({ className: t, ...n }) => /* @__PURE__ */ i("span", {
127
+ className: e("ml-auto text-xs tracking-widest text-muted-foreground", t),
128
+ ...n
129
+ });
130
+ M.displayName = "CommandShortcut";
131
+ //#endregion
132
+ //#region src/components/ui/input.tsx
133
+ var N = r.forwardRef(({ className: n, type: r, ...a }, o) => /* @__PURE__ */ i("input", {
134
+ type: r,
135
+ className: e(t, "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", n),
136
+ ref: o,
137
+ ...a
138
+ }));
139
+ N.displayName = "Input";
140
+ //#endregion
141
+ //#region src/components/ui/popover.tsx
142
+ 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, {
143
+ ref: o,
144
+ align: n,
145
+ sideOffset: r,
146
+ 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),
147
+ ...a
148
+ }) }));
149
+ I.displayName = d.Content.displayName;
150
+ //#endregion
151
+ //#region src/components/ui/scroll-area.tsx
152
+ var L = r.forwardRef(({ className: t, children: n, ...r }, o) => /* @__PURE__ */ a(f.Root, {
153
+ ref: o,
154
+ className: e("relative overflow-hidden", t),
155
+ ...r,
156
+ children: [
157
+ /* @__PURE__ */ i(f.Viewport, {
158
+ className: "h-full w-full rounded-[inherit]",
159
+ children: n
160
+ }),
161
+ /* @__PURE__ */ i(R, {}),
162
+ /* @__PURE__ */ i(f.Corner, {})
163
+ ]
164
+ }));
165
+ L.displayName = f.Root.displayName;
166
+ var R = r.forwardRef(({ className: t, orientation: n = "vertical", ...r }, a) => /* @__PURE__ */ i(f.ScrollAreaScrollbar, {
167
+ ref: a,
168
+ orientation: n,
169
+ 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),
170
+ ...r,
171
+ children: /* @__PURE__ */ i(f.ScrollAreaThumb, { className: "relative flex-1 rounded-full bg-border" })
172
+ }));
173
+ R.displayName = f.ScrollAreaScrollbar.displayName;
174
+ //#endregion
175
+ //#region src/components/ui/sheet.tsx
176
+ var z = u.Root, B = u.Trigger, V = u.Close, H = u.Portal, U = r.forwardRef(({ className: t, ...n }, r) => /* @__PURE__ */ i(u.Overlay, {
177
+ 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),
178
+ ...n,
179
+ ref: r
180
+ }));
181
+ U.displayName = u.Overlay.displayName;
182
+ 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", {
183
+ variants: { side: {
184
+ top: "inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",
185
+ bottom: "inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",
186
+ 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",
187
+ 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"
188
+ } },
189
+ defaultVariants: { side: "right" }
190
+ }), G = r.forwardRef(({ side: t = "right", className: n, children: r, ...o }, c) => /* @__PURE__ */ a(H, { children: [/* @__PURE__ */ i(U, {}), /* @__PURE__ */ a(u.Content, {
191
+ ref: c,
192
+ className: e(W({ side: t }), n),
193
+ ...o,
194
+ children: [r, /* @__PURE__ */ a(u.Close, {
195
+ 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",
196
+ children: [/* @__PURE__ */ i(s, { className: "size-4" }), /* @__PURE__ */ i("span", {
197
+ className: "sr-only",
198
+ children: "Close"
199
+ })]
200
+ })]
201
+ })] }));
202
+ G.displayName = u.Content.displayName;
203
+ var K = ({ className: t, ...n }) => /* @__PURE__ */ i("div", {
204
+ className: e("flex flex-col space-y-2 text-center sm:text-left", t),
205
+ ...n
206
+ });
207
+ K.displayName = "SheetHeader";
208
+ var q = ({ className: t, ...n }) => /* @__PURE__ */ i("div", {
209
+ className: e("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", t),
210
+ ...n
211
+ });
212
+ q.displayName = "SheetFooter";
213
+ var J = r.forwardRef(({ className: t, ...n }, r) => /* @__PURE__ */ i(u.Title, {
214
+ ref: r,
215
+ className: e("text-lg font-semibold text-foreground", t),
216
+ ...n
217
+ }));
218
+ J.displayName = u.Title.displayName;
219
+ var Y = r.forwardRef(({ className: t, ...n }, r) => /* @__PURE__ */ i(u.Description, {
220
+ ref: r,
221
+ className: e("text-sm text-muted-foreground", t),
222
+ ...n
223
+ }));
224
+ Y.displayName = u.Description.displayName;
225
+ //#endregion
226
+ 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 };
@@ -0,0 +1,5 @@
1
+ import { createContext as e } from "react";
2
+ //#region src/contexts/page.context.ts
3
+ var t = e({}), n = e(void 0);
4
+ //#endregion
5
+ export { t as n, n as t };
@@ -0,0 +1,11 @@
1
+ import { t as e } from "./tailwind.helper-CJaRYBmL.js";
2
+ import { jsx as t } from "react/jsx-runtime";
3
+ //#region src/components/ui/skeleton.tsx
4
+ function n({ className: n, ...r }) {
5
+ return /* @__PURE__ */ t("div", {
6
+ className: e("animate-pulse rounded-control bg-muted", n),
7
+ ...r
8
+ });
9
+ }
10
+ //#endregion
11
+ export { n as t };
@@ -0,0 +1,26 @@
1
+ import { t as e } from "./i18n-Dw99bRmg.js";
2
+ import "./ErrorAlert-BDqDHUUc.js";
3
+ import { jsx as t, jsxs as n } from "react/jsx-runtime";
4
+ import { Loader2Icon as r } from "lucide-react";
5
+ //#region src/components/core/states/ErrorState.tsx
6
+ var i = ({ message: r }) => {
7
+ let { t: i } = e();
8
+ return /* @__PURE__ */ n("div", {
9
+ className: "p-6 border border-destructive bg-destructive/10 text-destructive rounded-surface animate-fade-in",
10
+ children: [/* @__PURE__ */ t("p", {
11
+ className: "font-semibold mb-2",
12
+ children: i("states.error")
13
+ }), r !== void 0 && r !== "" ? /* @__PURE__ */ t("p", {
14
+ className: "text-sm opacity-80",
15
+ children: r
16
+ }) : null]
17
+ });
18
+ }, a = ({ message: e }) => /* @__PURE__ */ n("div", {
19
+ className: "flex flex-col items-center justify-center p-12 text-muted-foreground animate-fade-in",
20
+ children: [/* @__PURE__ */ t(r, { className: "size-8 animate-spin mb-4 text-primary" }), e !== void 0 && e !== "" ? /* @__PURE__ */ t("p", {
21
+ className: "font-semibold text-sm",
22
+ children: e
23
+ }) : null]
24
+ });
25
+ //#endregion
26
+ export { i as n, a as t };