@krosoft/react 0.0.218 → 0.0.220

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 (88) hide show
  1. package/README.md +31 -0
  2. package/dist/{AppActions-BCXERyyB.js → AppActions-BFmagl91.js} +1 -1
  3. package/dist/{AppSubTitle-H8ElNObI.js → AppSubTitle-BMQMoehZ.js} +1 -1
  4. package/dist/AppVerticalTabs-0DrrDO3S.js +101 -0
  5. package/dist/{ConfirmationDialog-BmxaMEYz.js → ConfirmationDialog-CFsh-Eui.js} +62 -61
  6. package/dist/DataTable-Cpbp6yse.js +551 -0
  7. package/dist/ErrorAlert-D_203tKa.js +21 -0
  8. package/dist/ErrorState-DfJ009uc.js +12 -0
  9. package/dist/GenericForm-q9dvYl_h.js +342 -0
  10. package/dist/ImageInput-BYXz8wM1.js +68 -0
  11. package/dist/{KpiCardsLayout-XZTxB8FV.js → KpiCardsLayout-B-lMaUMA.js} +4 -4
  12. package/dist/{MultiSelect-Cj8vgAXJ.js → MultiSelect-Dkz1dgXo.js} +52 -51
  13. package/dist/{PieChart-D6y5EQnh.js → PieChart-bDy_V9Xt.js} +82 -81
  14. package/dist/SearchInput-CJ2YZpmB.js +244 -0
  15. package/dist/{SkeletonCards-CYo_lvKx.js → SkeletonCards-Bg2ygjwy.js} +1 -1
  16. package/dist/{TableFilter-DbnGaGKL.js → TableFilter-u6F06nMx.js} +133 -130
  17. package/dist/ThemeSelector-BRpEgvX8.js +49 -0
  18. package/dist/Topbar-bIyAunNd.js +318 -0
  19. package/dist/components/core/cards/index.js +1 -1
  20. package/dist/components/core/charts/ChartCard.d.ts.map +1 -1
  21. package/dist/components/core/charts/index.js +1 -1
  22. package/dist/components/core/dialogs/FormDialog.d.ts.map +1 -1
  23. package/dist/components/core/dialogs/index.js +2 -2
  24. package/dist/components/core/filters/ActiveFilters.d.ts.map +1 -1
  25. package/dist/components/core/filters/AdvancedFilters.d.ts.map +1 -1
  26. package/dist/components/core/filters/FilterField.d.ts.map +1 -1
  27. package/dist/components/core/filters/SearchableFilterPill.d.ts.map +1 -1
  28. package/dist/components/core/filters/TableFilter.d.ts.map +1 -1
  29. package/dist/components/core/filters/index.js +1 -1
  30. package/dist/components/core/forms/GenericForm.d.ts.map +1 -1
  31. package/dist/components/core/forms/index.js +1 -1
  32. package/dist/components/core/index.js +18 -18
  33. package/dist/components/core/inputs/DateRangePicker.d.ts.map +1 -1
  34. package/dist/components/core/inputs/ImageInput.d.ts.map +1 -1
  35. package/dist/components/core/inputs/MultiSelect.d.ts.map +1 -1
  36. package/dist/components/core/inputs/SearchInput.d.ts +1 -1
  37. package/dist/components/core/inputs/SearchInput.d.ts.map +1 -1
  38. package/dist/components/core/inputs/SearchableSelect.d.ts.map +1 -1
  39. package/dist/components/core/inputs/index.js +3 -3
  40. package/dist/components/core/layouts/index.js +3 -3
  41. package/dist/components/core/navbar/GlobalSearch.d.ts.map +1 -1
  42. package/dist/components/core/navbar/Sidebar.d.ts.map +1 -1
  43. package/dist/components/core/navbar/index.js +1 -1
  44. package/dist/components/core/states/ErrorAlert.d.ts.map +1 -1
  45. package/dist/components/core/states/ErrorState.d.ts.map +1 -1
  46. package/dist/components/core/states/index.js +2 -2
  47. package/dist/components/core/table/DataTable.d.ts.map +1 -1
  48. package/dist/components/core/table/TableBody.d.ts +1 -1
  49. package/dist/components/core/table/TableBody.d.ts.map +1 -1
  50. package/dist/components/core/table/TablePagination.d.ts.map +1 -1
  51. package/dist/components/core/table/index.js +1 -1
  52. package/dist/components/core/tabs/AppVerticalTabs.d.ts.map +1 -1
  53. package/dist/components/core/tabs/index.js +1 -1
  54. package/dist/components/core/theme/ThemeSelector.d.ts.map +1 -1
  55. package/dist/components/core/theme/index.js +1 -1
  56. package/dist/components/index.js +18 -18
  57. package/dist/components/ui/command.d.ts.map +1 -1
  58. package/dist/components/ui/index.js +1 -1
  59. package/dist/hooks/behavior/index.js +1 -1
  60. package/dist/hooks/behavior/useConfirmDeleteDialog.d.ts +1 -1
  61. package/dist/hooks/behavior/useConfirmDeleteDialog.d.ts.map +1 -1
  62. package/dist/hooks/index.js +2 -2
  63. package/dist/hooks/ui/index.js +1 -1
  64. package/dist/hooks/ui/useTheme.d.ts.map +1 -1
  65. package/dist/i18n/index.d.ts +3 -0
  66. package/dist/i18n/index.d.ts.map +1 -0
  67. package/dist/i18n/index.js +7 -0
  68. package/dist/i18n/krosoftLocales.d.ts +175 -0
  69. package/dist/i18n/krosoftLocales.d.ts.map +1 -0
  70. package/dist/i18n/useKrosoftTranslation.d.ts +15 -0
  71. package/dist/i18n/useKrosoftTranslation.d.ts.map +1 -0
  72. package/dist/providers/index.js +1 -1
  73. package/dist/{sheet-BQmtrGf2.js → sheet-CDqLa-FP.js} +105 -108
  74. package/dist/useKrosoftTranslation-DdcylBY2.js +43 -0
  75. package/dist/usePage-Bhb81ffo.js +82 -0
  76. package/dist/useTheme-Cmw14Zxi.js +25 -0
  77. package/package.json +1 -1
  78. package/dist/AppVerticalTabs-aJmAVu6F.js +0 -100
  79. package/dist/DataTable-0-lae9KY.js +0 -550
  80. package/dist/ErrorAlert-SrIcU1mM.js +0 -17
  81. package/dist/ErrorState-CmaxuJyW.js +0 -8
  82. package/dist/GenericForm-DJR7PD-i.js +0 -341
  83. package/dist/ImageInput-DYe2XPNZ.js +0 -67
  84. package/dist/SearchInput-oeq0NBIc.js +0 -251
  85. package/dist/ThemeSelector-BFC37dSl.js +0 -48
  86. package/dist/Topbar-DUq-UeR0.js +0 -306
  87. package/dist/usePage-BFE9lxI1.js +0 -84
  88. package/dist/useTheme-CSr_h5xJ.js +0 -24
@@ -1,28 +1,29 @@
1
1
  import { jsxs as m, jsx as e } from "react/jsx-runtime";
2
- import { f as N, j as x, k as y, C as A, d as R, e as V, b as P, a as S, g as B, h as H } from "./chart-DntJZGxB.js";
2
+ import { f as N, j as x, k as y, C as R, d as A, e as V, b as P, a as S, g as B, h as H } from "./chart-DntJZGxB.js";
3
3
  import { c as C } from "./tailwind.helper-B6yFEsav.js";
4
- import * as v from "react";
5
- import { BarChart as T, CartesianGrid as M, XAxis as w, YAxis as D, Bar as j, LineChart as O, Line as _, PieChart as $, Pie as E } from "recharts";
6
- import { S as I } from "./skeleton-BX4RcsiK.js";
7
- import { u as G } from "./useMobile-DN1_OMDB.js";
8
- const L = (r, t) => r ? (n, s) => /* @__PURE__ */ m("div", { className: "flex flex-1 justify-between gap-4", children: [
9
- /* @__PURE__ */ e("span", { className: "text-muted-foreground", children: t ?? String(s) }),
10
- /* @__PURE__ */ e("span", { className: "font-mono font-medium tabular-nums text-foreground", children: r(Number(n)) })
11
- ] }) : void 0, z = (r, t) => t > 0 && r.length > t ? `${r.slice(0, t)}…` : r, F = ({
12
- data: r,
13
- label: t = "Valeur",
4
+ import * as p from "react";
5
+ import { BarChart as b, CartesianGrid as M, XAxis as w, YAxis as D, Bar as j, LineChart as O, Line as _, PieChart as $, Pie as E } from "recharts";
6
+ import { u as I } from "./useKrosoftTranslation-DdcylBY2.js";
7
+ import { S as G } from "./skeleton-BX4RcsiK.js";
8
+ import { u as z } from "./useMobile-DN1_OMDB.js";
9
+ const L = (t, r) => t ? (n, s) => /* @__PURE__ */ m("div", { className: "flex flex-1 justify-between gap-4", children: [
10
+ /* @__PURE__ */ e("span", { className: "text-muted-foreground", children: r ?? String(s) }),
11
+ /* @__PURE__ */ e("span", { className: "font-mono font-medium tabular-nums text-foreground", children: t(Number(n)) })
12
+ ] }) : void 0, U = (t, r) => r > 0 && t.length > r ? `${t.slice(0, r)}…` : t, te = ({
13
+ data: t,
14
+ label: r = "Valeur",
14
15
  color: a = "hsl(var(--primary))",
15
16
  categoryWidth: n = 140,
16
17
  maxLabelLength: s = 22,
17
18
  valueFormatter: o,
18
- onSelect: d,
19
+ onSelect: c,
19
20
  className: h
20
21
  }) => {
21
- const u = v.useMemo(() => ({ value: { label: t, color: a } }), [t, a]), f = v.useMemo(() => L(o, t), [o, t]), i = v.useMemo(
22
- () => r.some((l) => l.color !== void 0) ? r.map((l) => ({ ...l, fill: l.color ?? a })) : r,
23
- [r, a]
22
+ const u = p.useMemo(() => ({ value: { label: r, color: a } }), [r, a]), f = p.useMemo(() => L(o, r), [o, r]), i = p.useMemo(
23
+ () => t.some((l) => l.color !== void 0) ? t.map((l) => ({ ...l, fill: l.color ?? a })) : t,
24
+ [t, a]
24
25
  );
25
- return /* @__PURE__ */ e(N, { config: u, className: C("aspect-auto size-full", h), children: /* @__PURE__ */ m(T, { data: i, layout: "vertical", margin: { top: 5, right: 20, left: 0, bottom: 5 }, children: [
26
+ return /* @__PURE__ */ e(N, { config: u, className: C("aspect-auto size-full", h), children: /* @__PURE__ */ m(b, { data: i, layout: "vertical", margin: { top: 5, right: 20, left: 0, bottom: 5 }, children: [
26
27
  /* @__PURE__ */ e(M, { strokeDasharray: "3 3", horizontal: !1 }),
27
28
  /* @__PURE__ */ e(
28
29
  w,
@@ -44,7 +45,7 @@ const L = (r, t) => r ? (n, s) => /* @__PURE__ */ m("div", { className: "flex fl
44
45
  width: n,
45
46
  tickLine: !1,
46
47
  axisLine: !1,
47
- tickFormatter: (l) => z(String(l), s)
48
+ tickFormatter: (l) => U(String(l), s)
48
49
  }
49
50
  ),
50
51
  /* @__PURE__ */ e(x, { content: /* @__PURE__ */ e(y, { formatter: f }) }),
@@ -54,28 +55,28 @@ const L = (r, t) => r ? (n, s) => /* @__PURE__ */ m("div", { className: "flex fl
54
55
  dataKey: "value",
55
56
  fill: "var(--color-value)",
56
57
  radius: [0, 4, 4, 0],
57
- className: d ? "cursor-pointer" : void 0,
58
- onClick: d ? (l, c) => {
59
- d(r[c], c);
58
+ className: c ? "cursor-pointer" : void 0,
59
+ onClick: c ? (l, d) => {
60
+ c(t[d], d);
60
61
  } : void 0
61
62
  }
62
63
  )
63
64
  ] }) });
64
- }, ee = ({
65
- data: r,
66
- label: t = "Valeur",
65
+ }, re = ({
66
+ data: t,
67
+ label: r = "Valeur",
67
68
  color: a = "hsl(var(--primary))",
68
69
  labelAngle: n,
69
70
  valueFormatter: s,
70
71
  allowDecimals: o = !1,
71
- onSelect: d,
72
+ onSelect: c,
72
73
  className: h
73
74
  }) => {
74
- const u = v.useMemo(() => ({ value: { label: t, color: a } }), [t, a]), f = v.useMemo(() => L(s, t), [s, t]), i = n !== void 0 && n !== 0, l = v.useMemo(
75
- () => r.some((c) => c.color !== void 0) ? r.map((c) => ({ ...c, fill: c.color ?? a })) : r,
76
- [r, a]
75
+ const u = p.useMemo(() => ({ value: { label: r, color: a } }), [r, a]), f = p.useMemo(() => L(s, r), [s, r]), i = n !== void 0 && n !== 0, l = p.useMemo(
76
+ () => t.some((d) => d.color !== void 0) ? t.map((d) => ({ ...d, fill: d.color ?? a })) : t,
77
+ [t, a]
77
78
  );
78
- return /* @__PURE__ */ e(N, { config: u, className: C("aspect-auto size-full", h), children: /* @__PURE__ */ m(T, { data: l, margin: { top: 10, right: 10, left: 0, bottom: i ? 20 : 10 }, children: [
79
+ return /* @__PURE__ */ e(N, { config: u, className: C("aspect-auto size-full", h), children: /* @__PURE__ */ m(b, { data: l, margin: { top: 10, right: 10, left: 0, bottom: i ? 20 : 10 }, children: [
79
80
  /* @__PURE__ */ e(M, { strokeDasharray: "3 3", vertical: !1 }),
80
81
  /* @__PURE__ */ e(
81
82
  w,
@@ -96,7 +97,7 @@ const L = (r, t) => r ? (n, s) => /* @__PURE__ */ m("div", { className: "flex fl
96
97
  tickLine: !1,
97
98
  axisLine: !1,
98
99
  width: s ? 48 : 32,
99
- tickFormatter: s ? (c) => s(Number(c)) : void 0
100
+ tickFormatter: s ? (d) => s(Number(d)) : void 0
100
101
  }
101
102
  ),
102
103
  /* @__PURE__ */ e(x, { content: /* @__PURE__ */ e(y, { formatter: f }) }),
@@ -106,9 +107,9 @@ const L = (r, t) => r ? (n, s) => /* @__PURE__ */ m("div", { className: "flex fl
106
107
  dataKey: "value",
107
108
  fill: "var(--color-value)",
108
109
  radius: [4, 4, 0, 0],
109
- className: d ? "cursor-pointer" : void 0,
110
- onClick: d ? (c, g) => {
111
- d(r[g], g);
110
+ className: c ? "cursor-pointer" : void 0,
111
+ onClick: c ? (d, g) => {
112
+ c(t[g], g);
112
113
  } : void 0
113
114
  }
114
115
  )
@@ -119,50 +120,50 @@ const L = (r, t) => r ? (n, s) => /* @__PURE__ */ m("div", { className: "flex fl
119
120
  "hsl(var(--k-chart-3))",
120
121
  "hsl(var(--k-chart-4))",
121
122
  "hsl(var(--k-chart-5))"
122
- ], b = (r) => K[r % K.length], re = ({
123
- title: r,
124
- description: t,
123
+ ], T = (t) => K[t % K.length], ae = ({
124
+ title: t,
125
+ description: r,
125
126
  icon: a,
126
127
  actions: n,
127
128
  footer: s,
128
129
  isLoading: o = !1,
129
- isEmpty: d = !1,
130
- emptyLabel: h = "Aucune donnée disponible",
130
+ isEmpty: c = !1,
131
+ emptyLabel: h,
131
132
  height: u = 300,
132
133
  className: f,
133
134
  contentClassName: i,
134
135
  children: l
135
136
  }) => {
136
- const c = a, g = () => o ? /* @__PURE__ */ e(I, { className: "size-full rounded-surface" }) : d ? /* @__PURE__ */ e("div", { className: "flex size-full items-center justify-center", children: /* @__PURE__ */ e("p", { className: "text-sm text-muted-foreground", children: h }) }) : l;
137
- return /* @__PURE__ */ m(A, { className: f, children: [
138
- /* @__PURE__ */ e(R, { children: /* @__PURE__ */ m("div", { className: "flex flex-col gap-2 sm:flex-row sm:items-start sm:justify-between", children: [
137
+ const { t: d } = I(), g = a, v = () => o ? /* @__PURE__ */ e(G, { className: "size-full rounded-surface" }) : c ? /* @__PURE__ */ e("div", { className: "flex size-full items-center justify-center", children: /* @__PURE__ */ e("p", { className: "text-sm text-muted-foreground", children: h ?? d("states.noData") }) }) : l;
138
+ return /* @__PURE__ */ m(R, { className: f, children: [
139
+ /* @__PURE__ */ e(A, { children: /* @__PURE__ */ m("div", { className: "flex flex-col gap-2 sm:flex-row sm:items-start sm:justify-between", children: [
139
140
  /* @__PURE__ */ m("div", { className: "min-w-0", children: [
140
141
  /* @__PURE__ */ m(V, { className: "flex items-center gap-2", children: [
141
- c && /* @__PURE__ */ e(c, { className: "size-5 shrink-0" }),
142
- /* @__PURE__ */ e("span", { className: "truncate", children: r })
142
+ g && /* @__PURE__ */ e(g, { className: "size-5 shrink-0" }),
143
+ /* @__PURE__ */ e("span", { className: "truncate", children: t })
143
144
  ] }),
144
- t !== void 0 && t !== "" ? /* @__PURE__ */ e(P, { children: t }) : null
145
+ r !== void 0 && r !== "" ? /* @__PURE__ */ e(P, { children: r }) : null
145
146
  ] }),
146
147
  n != null ? /* @__PURE__ */ e("div", { className: "shrink-0", children: n }) : null
147
148
  ] }) }),
148
149
  /* @__PURE__ */ m(S, { children: [
149
- /* @__PURE__ */ e("div", { className: C("w-full", i), style: u === null ? void 0 : { height: u }, children: g() }),
150
- !o && !d && s !== void 0 && s !== null ? /* @__PURE__ */ e("div", { className: "mt-4", children: s }) : null
150
+ /* @__PURE__ */ e("div", { className: C("w-full", i), style: u === null ? void 0 : { height: u }, children: v() }),
151
+ !o && !c && s !== void 0 && s !== null ? /* @__PURE__ */ e("div", { className: "mt-4", children: s }) : null
151
152
  ] })
152
153
  ] });
153
- }, U = { warning: 50, danger: 80 }, W = (r, t) => r >= t.danger ? "hsl(var(--destructive))" : r >= t.warning ? "hsl(var(--k-warning))" : "hsl(var(--k-success))", te = ({
154
- value: r,
155
- max: t = 100,
154
+ }, W = { warning: 50, danger: 80 }, X = (t, r) => t >= r.danger ? "hsl(var(--destructive))" : t >= r.warning ? "hsl(var(--k-warning))" : "hsl(var(--k-success))", se = ({
155
+ value: t,
156
+ max: r = 100,
156
157
  size: a = 120,
157
158
  strokeWidth: n = 8,
158
159
  label: s,
159
160
  unit: o = "%",
160
- color: d,
161
- thresholds: h = U,
161
+ color: c,
162
+ thresholds: h = W,
162
163
  valueFormatter: u = (i) => i.toFixed(1),
163
164
  className: f
164
165
  }) => {
165
- const i = (a - n) / 2, l = i * 2 * Math.PI, c = t > 0 ? Math.min(100, Math.max(0, r / t * 100)) : 0, g = d ?? W(c, h);
166
+ const i = (a - n) / 2, l = i * 2 * Math.PI, d = r > 0 ? Math.min(100, Math.max(0, t / r * 100)) : 0, g = c ?? X(d, h);
166
167
  return /* @__PURE__ */ m("div", { className: C("flex flex-col items-center gap-2", f), children: [
167
168
  /* @__PURE__ */ m("div", { className: "relative", style: { width: a, height: a }, children: [
168
169
  /* @__PURE__ */ m("svg", { width: a, height: a, className: "-rotate-90", children: [
@@ -177,31 +178,31 @@ const L = (r, t) => r ? (n, s) => /* @__PURE__ */ m("div", { className: "flex fl
177
178
  strokeWidth: n,
178
179
  fill: "transparent",
179
180
  strokeDasharray: l,
180
- strokeDashoffset: l - c / 100 * l,
181
+ strokeDashoffset: l - d / 100 * l,
181
182
  strokeLinecap: "round",
182
183
  className: "transition-all duration-500 ease-out"
183
184
  }
184
185
  )
185
186
  ] }),
186
187
  /* @__PURE__ */ m("div", { className: "absolute inset-0 flex flex-col items-center justify-center", children: [
187
- /* @__PURE__ */ e("span", { className: "text-2xl font-bold text-card-foreground", children: u(r) }),
188
+ /* @__PURE__ */ e("span", { className: "text-2xl font-bold text-card-foreground", children: u(t) }),
188
189
  o !== "" && /* @__PURE__ */ e("span", { className: "text-sm text-muted-foreground", children: o })
189
190
  ] })
190
191
  ] }),
191
192
  s !== void 0 && s !== "" ? /* @__PURE__ */ e("span", { className: "text-sm font-medium text-muted-foreground", children: s }) : null
192
193
  ] });
193
- }, ae = ({
194
- data: r,
195
- label: t = "Valeur",
194
+ }, ie = ({
195
+ data: t,
196
+ label: r = "Valeur",
196
197
  color: a = "hsl(var(--primary))",
197
198
  yAxisDomain: n,
198
199
  valueFormatter: s,
199
200
  labelFormatter: o,
200
- showDots: d = !0,
201
+ showDots: c = !0,
201
202
  className: h
202
203
  }) => {
203
- const u = v.useMemo(() => ({ value: { label: t, color: a } }), [t, a]), f = v.useMemo(() => L(s, t), [s, t]);
204
- return /* @__PURE__ */ e(N, { config: u, className: C("aspect-auto size-full", h), children: /* @__PURE__ */ m(O, { data: r, margin: { top: 10, right: 20, left: 0, bottom: 10 }, children: [
204
+ const u = p.useMemo(() => ({ value: { label: r, color: a } }), [r, a]), f = p.useMemo(() => L(s, r), [s, r]);
205
+ return /* @__PURE__ */ e(N, { config: u, className: C("aspect-auto size-full", h), children: /* @__PURE__ */ m(O, { data: t, margin: { top: 10, right: 20, left: 0, bottom: 10 }, children: [
205
206
  /* @__PURE__ */ e(M, { strokeDasharray: "3 3", vertical: !1 }),
206
207
  /* @__PURE__ */ e(
207
208
  w,
@@ -237,25 +238,25 @@ const L = (r, t) => r ? (n, s) => /* @__PURE__ */ m("div", { className: "flex fl
237
238
  dataKey: "value",
238
239
  stroke: "var(--color-value)",
239
240
  strokeWidth: 2,
240
- dot: d ? { fill: "var(--color-value)", strokeWidth: 0, r: 3 } : !1,
241
+ dot: c ? { fill: "var(--color-value)", strokeWidth: 0, r: 3 } : !1,
241
242
  activeDot: { r: 5, strokeWidth: 2, className: "stroke-background" }
242
243
  }
243
244
  )
244
245
  ] }) });
245
- }, se = ({
246
- data: r,
247
- innerRadius: t,
246
+ }, ne = ({
247
+ data: t,
248
+ innerRadius: r,
248
249
  outerRadius: a,
249
250
  showLegend: n = !0,
250
251
  showLabels: s = !1,
251
252
  valueFormatter: o,
252
- onSelect: d,
253
+ onSelect: c,
253
254
  className: h
254
255
  }) => {
255
- const u = G(), f = v.useMemo(() => r.map((p, k) => ({ ...p, fill: p.color ?? b(k) })), [r]), i = v.useMemo(
256
- () => Object.fromEntries(r.map((p, k) => [p.name, { label: p.name, color: p.color ?? b(k) }])),
257
- [r]
258
- ), l = v.useMemo(() => L(o), [o]), c = t ?? (u ? 45 : 60), g = a ?? (u ? 80 : 100);
256
+ const u = z(), f = p.useMemo(() => t.map((v, k) => ({ ...v, fill: v.color ?? T(k) })), [t]), i = p.useMemo(
257
+ () => Object.fromEntries(t.map((v, k) => [v.name, { label: v.name, color: v.color ?? T(k) }])),
258
+ [t]
259
+ ), l = p.useMemo(() => L(o), [o]), d = r ?? (u ? 45 : 60), g = a ?? (u ? 80 : 100);
259
260
  return /* @__PURE__ */ e(N, { config: i, className: C("aspect-auto size-full", h), children: /* @__PURE__ */ m($, { children: [
260
261
  /* @__PURE__ */ e(x, { content: /* @__PURE__ */ e(y, { nameKey: "name", hideLabel: !0, formatter: l }) }),
261
262
  /* @__PURE__ */ e(
@@ -266,14 +267,14 @@ const L = (r, t) => r ? (n, s) => /* @__PURE__ */ m("div", { className: "flex fl
266
267
  nameKey: "name",
267
268
  cx: "50%",
268
269
  cy: n ? "45%" : "50%",
269
- innerRadius: c,
270
+ innerRadius: d,
270
271
  outerRadius: g,
271
- paddingAngle: c > 0 ? 2 : 0,
272
- label: s ? ({ name: p, value: k }) => `${String(p)} (${String(k)})` : void 0,
272
+ paddingAngle: d > 0 ? 2 : 0,
273
+ label: s ? ({ name: v, value: k }) => `${String(v)} (${String(k)})` : void 0,
273
274
  isAnimationActive: !1,
274
- className: C("stroke-background", d && "cursor-pointer"),
275
- onClick: d ? (p, k) => {
276
- d(r[k], k);
275
+ className: C("stroke-background", c && "cursor-pointer"),
276
+ onClick: c ? (v, k) => {
277
+ c(t[k], k);
277
278
  } : void 0
278
279
  }
279
280
  ),
@@ -281,12 +282,12 @@ const L = (r, t) => r ? (n, s) => /* @__PURE__ */ m("div", { className: "flex fl
281
282
  ] }) });
282
283
  };
283
284
  export {
284
- F as B,
285
+ te as B,
285
286
  K as C,
286
- ae as L,
287
- se as P,
288
- ee as a,
289
- re as b,
290
- te as c,
291
- b as g
287
+ ie as L,
288
+ ne as P,
289
+ re as a,
290
+ ae as b,
291
+ se as c,
292
+ T as g
292
293
  };
@@ -0,0 +1,244 @@
1
+ import { jsxs as a, jsx as e } from "react/jsx-runtime";
2
+ import * as M from "react";
3
+ import { useState as S, useRef as G, useEffect as X, useMemo as F } from "react";
4
+ import { C as j, b0 as R, b2 as _, b1 as O } from "./toggle-group-DLLrEwv2.js";
5
+ import "./alert-B9F1N9Qk.js";
6
+ import "@radix-ui/react-aspect-ratio";
7
+ import { B as v, f as H } from "./tooltip-DVeqVwqV.js";
8
+ import "./chart-DntJZGxB.js";
9
+ import "@radix-ui/react-collapsible";
10
+ import { C as J, m as Q, o as U, k as W, l as Y, n as T, I as Z } from "./sheet-CDqLa-FP.js";
11
+ import { CalendarIcon as A, XIcon as I, ChevronDownIcon as ee, CheckIcon as te, PlusIcon as re, SearchIcon as ae } from "lucide-react";
12
+ import "react-resizable-panels";
13
+ import { c as g } from "./tailwind.helper-B6yFEsav.js";
14
+ import "./select-BpjFWqAY.js";
15
+ import "next-themes";
16
+ import "sonner";
17
+ import { format as x } from "date-fns";
18
+ import { fr as k } from "date-fns/locale";
19
+ import { u as P } from "./useKrosoftTranslation-DdcylBY2.js";
20
+ const ke = ({ date: r, onDateChange: n, placeholder: p }) => {
21
+ const [c, s] = S(!1), i = G(null);
22
+ X(() => {
23
+ if (!c) return;
24
+ const o = (u) => {
25
+ i.current !== null && !i.current.contains(u.target) && s(!1);
26
+ };
27
+ return document.addEventListener("mousedown", o), () => {
28
+ document.removeEventListener("mousedown", o);
29
+ };
30
+ }, [c]);
31
+ const f = () => {
32
+ s((o) => !o);
33
+ }, d = (o) => {
34
+ n(o), s(!1);
35
+ };
36
+ return /* @__PURE__ */ a("div", { ref: i, className: "relative w-full", children: [
37
+ /* @__PURE__ */ a(
38
+ v,
39
+ {
40
+ variant: "outline",
41
+ type: "button",
42
+ onClick: f,
43
+ className: g(
44
+ "w-full justify-start text-left font-normal focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",
45
+ c && "ring-2 ring-ring ring-offset-2",
46
+ r === void 0 && "text-muted-foreground"
47
+ ),
48
+ children: [
49
+ /* @__PURE__ */ e(A, { className: "mr-2 size-4 shrink-0" }),
50
+ r !== void 0 ? x(r, "dd/MM/yyyy", { locale: k }) : /* @__PURE__ */ e("span", { children: p })
51
+ ]
52
+ }
53
+ ),
54
+ c ? /* @__PURE__ */ e("div", { className: "absolute left-0 top-[calc(100%+4px)] z-[100] rounded-surface border bg-popover text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 slide-in-from-top-2", children: /* @__PURE__ */ e(j, { mode: "single", selected: r, onSelect: d }) }) : null
55
+ ] });
56
+ }, we = ({ value: r, onChange: n, placeholder: p, className: c }) => {
57
+ const { t: s } = P(), [i, f] = M.useState(!1), [d, o] = M.useState(r);
58
+ M.useEffect(() => {
59
+ i && o(r);
60
+ }, [i, r]);
61
+ const u = (l) => {
62
+ l.stopPropagation(), n(void 0), f(!1);
63
+ }, h = () => {
64
+ n(d), f(!1);
65
+ }, w = () => {
66
+ o(r), f(!1);
67
+ }, y = () => {
68
+ o(void 0);
69
+ }, N = (l) => l != null && l.from ? !l.to || l.from.getTime() === l.to.getTime() ? x(l.from, "dd MMM yyyy", { locale: k }) : `${x(l.from, "dd MMM yyyy", { locale: k })} - ${x(l.to, "dd MMM yyyy", { locale: k })}` : p ?? s("date.pickPeriod");
70
+ return /* @__PURE__ */ e("div", { className: g("grid gap-2", c), children: /* @__PURE__ */ a(R, { open: i, onOpenChange: f, children: [
71
+ /* @__PURE__ */ e(_, { asChild: !0, children: /* @__PURE__ */ a(v, { id: "date", variant: "outline", className: g("w-[300px] justify-start text-left font-normal", !(r != null && r.from) && "text-muted-foreground"), children: [
72
+ /* @__PURE__ */ e(A, { className: "mr-2 size-4" }),
73
+ N(r),
74
+ (r == null ? void 0 : r.from) && /* @__PURE__ */ e(
75
+ v,
76
+ {
77
+ type: "button",
78
+ variant: "ghost",
79
+ size: "icon",
80
+ "aria-label": s("date.clearPeriod"),
81
+ className: "ml-auto h-5 w-5 opacity-50 hover:opacity-100",
82
+ onClick: u,
83
+ children: /* @__PURE__ */ e(I, { className: "size-4" })
84
+ }
85
+ )
86
+ ] }) }),
87
+ /* @__PURE__ */ a(O, { className: "w-auto p-0", align: "start", side: "bottom", sideOffset: 4, children: [
88
+ /* @__PURE__ */ e(
89
+ j,
90
+ {
91
+ mode: "range",
92
+ defaultMonth: d == null ? void 0 : d.from,
93
+ selected: d,
94
+ onSelect: o,
95
+ numberOfMonths: 2,
96
+ weekStartsOn: 1,
97
+ className: "pointer-events-auto p-3"
98
+ }
99
+ ),
100
+ /* @__PURE__ */ a("div", { className: "flex items-center justify-between border-t border-border px-3 py-2", children: [
101
+ /* @__PURE__ */ e(v, { variant: "ghost", size: "sm", onClick: y, children: "Effacer" }),
102
+ /* @__PURE__ */ a("div", { className: "flex gap-2", children: [
103
+ /* @__PURE__ */ e(v, { variant: "ghost", size: "sm", onClick: w, children: "Annuler" }),
104
+ /* @__PURE__ */ e(v, { size: "sm", onClick: h, children: "Appliquer" })
105
+ ] })
106
+ ] })
107
+ ] })
108
+ ] }) });
109
+ }, ze = ({
110
+ options: r = [],
111
+ value: n,
112
+ onChange: p,
113
+ onClear: c,
114
+ onCreate: s,
115
+ placeholder: i,
116
+ searchPlaceholder: f,
117
+ emptyLabel: d,
118
+ createLabel: o,
119
+ disabled: u = !1,
120
+ modal: h = !0,
121
+ className: w
122
+ }) => {
123
+ const { t: y } = P(), [N, l] = S(!1), [D, E] = S(""), C = n !== void 0 && n !== "", m = F(() => C ? r.find((t) => t.value === n) : void 0, [C, r, n]), V = C ? (m == null ? void 0 : m.label) ?? n : void 0, b = D.trim(), L = s !== void 0 && b !== "" && !r.some((t) => t.label.toLowerCase() === b.toLowerCase()), z = (t) => {
124
+ l(t), t || E("");
125
+ }, B = (t) => {
126
+ p(t), z(!1);
127
+ }, K = () => {
128
+ s == null || s(b), z(!1);
129
+ };
130
+ return /* @__PURE__ */ a(R, { open: N, onOpenChange: z, modal: h, children: [
131
+ /* @__PURE__ */ e(_, { asChild: !0, children: /* @__PURE__ */ a(
132
+ "button",
133
+ {
134
+ type: "button",
135
+ role: "combobox",
136
+ "aria-expanded": N,
137
+ disabled: u,
138
+ className: g(
139
+ H,
140
+ "w-full",
141
+ "data-[state=open]:ring-2 data-[state=open]:ring-ring data-[state=open]:ring-offset-2",
142
+ !C && "text-muted-foreground",
143
+ w
144
+ ),
145
+ children: [
146
+ /* @__PURE__ */ a("span", { className: "flex items-center truncate", children: [
147
+ (m == null ? void 0 : m.color) && /* @__PURE__ */ e("span", { className: "mr-2 size-2.5 shrink-0 rounded-full", style: { backgroundColor: m.color } }),
148
+ /* @__PURE__ */ e("span", { className: "truncate", children: V ?? i ?? y("select.placeholder") }),
149
+ (m == null ? void 0 : m.description) !== void 0 && /* @__PURE__ */ a("span", { className: "ml-1 truncate text-muted-foreground", children: [
150
+ "(",
151
+ m.description,
152
+ ")"
153
+ ] })
154
+ ] }),
155
+ /* @__PURE__ */ a("div", { className: "flex items-center gap-1", children: [
156
+ c && C && !u && /* @__PURE__ */ e(
157
+ "span",
158
+ {
159
+ role: "button",
160
+ tabIndex: -1,
161
+ onClick: (t) => {
162
+ t.stopPropagation();
163
+ },
164
+ onPointerDown: (t) => {
165
+ t.preventDefault(), t.stopPropagation(), c();
166
+ },
167
+ className: "text-muted-foreground hover:text-foreground",
168
+ children: /* @__PURE__ */ e(I, { className: "size-4" })
169
+ }
170
+ ),
171
+ /* @__PURE__ */ e(ee, { className: g("size-4 shrink-0 opacity-50 transition-transform", N && "rotate-180") })
172
+ ] })
173
+ ]
174
+ }
175
+ ) }),
176
+ /* @__PURE__ */ e(O, { className: "w-[var(--radix-popover-trigger-width)] p-0", align: "start", children: /* @__PURE__ */ a(
177
+ J,
178
+ {
179
+ filter: (t, $, q) => (q ?? []).join(" ").toLowerCase().includes($.trim().toLowerCase()) ? 1 : 0,
180
+ children: [
181
+ /* @__PURE__ */ e(Q, { placeholder: f ?? y("search.placeholder"), value: D, onValueChange: E }),
182
+ /* @__PURE__ */ a(U, { children: [
183
+ !L && /* @__PURE__ */ e(W, { children: d ?? y("states.noResult") }),
184
+ /* @__PURE__ */ a(Y, { children: [
185
+ r.map((t) => /* @__PURE__ */ a(
186
+ T,
187
+ {
188
+ value: t.value,
189
+ keywords: [t.label, t.description ?? ""],
190
+ onSelect: () => {
191
+ B(t.value);
192
+ },
193
+ children: [
194
+ /* @__PURE__ */ e(te, { className: g("mr-2 size-4 shrink-0", n === t.value ? "opacity-100" : "opacity-0") }),
195
+ t.color !== void 0 && /* @__PURE__ */ e("span", { className: "mr-2 size-2.5 shrink-0 rounded-full", style: { backgroundColor: t.color } }),
196
+ /* @__PURE__ */ e("span", { className: "truncate", children: t.label }),
197
+ t.description !== void 0 && /* @__PURE__ */ a("span", { className: "ml-1 truncate text-muted-foreground", children: [
198
+ "(",
199
+ t.description,
200
+ ")"
201
+ ] })
202
+ ]
203
+ },
204
+ t.value
205
+ )),
206
+ L && /* @__PURE__ */ a(T, { forceMount: !0, value: "__create__", onSelect: K, children: [
207
+ /* @__PURE__ */ e(re, { className: "mr-2 size-4 shrink-0" }),
208
+ /* @__PURE__ */ e("span", { className: "truncate", children: o ? o(b) : y("select.create", { search: b }) })
209
+ ] })
210
+ ] })
211
+ ] })
212
+ ]
213
+ }
214
+ ) })
215
+ ] });
216
+ }, Me = ({ searchQuery: r, search: n, placeholder: p, onSearch: c, onSubmit: s, onClear: i, className: f }) => {
217
+ const { t: d } = P(), o = r ?? n ?? "", u = () => {
218
+ c(""), i !== void 0 && i();
219
+ };
220
+ return /* @__PURE__ */ a("div", { className: g("relative h-fit w-full md:w-64", f), children: [
221
+ /* @__PURE__ */ e(ae, { className: "absolute left-3 top-1/2 transform -translate-y-1/2 text-muted-foreground w-4 h-4" }),
222
+ /* @__PURE__ */ e(
223
+ Z,
224
+ {
225
+ placeholder: p ?? d("search.placeholder"),
226
+ value: o,
227
+ onChange: (h) => {
228
+ c(h.target.value);
229
+ },
230
+ className: "pl-8",
231
+ onKeyDown: (h) => {
232
+ h.key === "Enter" && s !== void 0 && (h.preventDefault(), s());
233
+ }
234
+ }
235
+ ),
236
+ o !== "" ? /* @__PURE__ */ e("button", { onClick: u, className: "absolute right-3 top-1/2 -translate-y-1/2 text-gray-500 hover:text-gray-700", type: "button", children: /* @__PURE__ */ e(I, { className: "size-4" }) }) : null
237
+ ] });
238
+ };
239
+ export {
240
+ ke as D,
241
+ Me as S,
242
+ we as a,
243
+ ze as b
244
+ };
@@ -8,7 +8,7 @@ import "@radix-ui/react-aspect-ratio";
8
8
  import "./tooltip-DVeqVwqV.js";
9
9
  import { C as c, d as p, e as v, a as h } from "./chart-DntJZGxB.js";
10
10
  import "@radix-ui/react-collapsible";
11
- import "./sheet-BQmtrGf2.js";
11
+ import "./sheet-CDqLa-FP.js";
12
12
  import "lucide-react";
13
13
  import "react-resizable-panels";
14
14
  import "./select-BpjFWqAY.js";