@krosoft/react 0.0.261 → 0.0.263

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 (106) hide show
  1. package/dist/AppActions-D8KKXpq-.js +60 -0
  2. package/dist/{AppSubTitle-C8zoMJo_.js → AppSubTitle-CVhjWRBp.js} +7 -7
  3. package/dist/{AppTitle-BR4JFZfp.js → AppTitle-DBGJRsjU.js} +6 -6
  4. package/dist/{ErrorAlert-DClCk3Ey.js → ErrorAlert-6ECy_Dox.js} +5 -5
  5. package/dist/{GenericForm-JqObtUCQ.js → GenericForm-C86_Jk7X.js} +104 -105
  6. package/dist/{ImageInput-BLIo5LYH.js → ImageInput-DvHgBYsy.js} +5 -5
  7. package/dist/{MultiSelect-B0Ke0cfS.js → MultiSelect-TGu_k3KM.js} +7 -7
  8. package/dist/{SearchInput-CXZd2rSc.js → SearchInput-Csflv8Az.js} +31 -31
  9. package/dist/{behavior-DDtrNBAq.js → behavior-C4WdfbR1.js} +1 -1
  10. package/dist/{cards-Ct4wFYa8.js → cards-nqZOcSkh.js} +42 -42
  11. package/dist/{charts-CwT9AFWj.js → charts-BfeSrTmX.js} +1 -1
  12. package/dist/components/core/cards/index.js +1 -1
  13. package/dist/components/core/charts/index.js +1 -1
  14. package/dist/components/core/dialogs/index.js +3 -3
  15. package/dist/components/core/filters/ActiveFilters.d.ts +2 -2
  16. package/dist/components/core/filters/ActiveFilters.d.ts.map +1 -1
  17. package/dist/components/core/filters/SearchableFilterPill.d.ts +2 -2
  18. package/dist/components/core/filters/SearchableFilterPill.d.ts.map +1 -1
  19. package/dist/components/core/filters/TableFilter.d.ts.map +1 -1
  20. package/dist/components/core/filters/index.js +127 -127
  21. package/dist/components/core/forms/GenericForm.d.ts.map +1 -1
  22. package/dist/components/core/forms/index.js +1 -1
  23. package/dist/components/core/index.js +19 -19
  24. package/dist/components/core/inputs/index.js +4 -4
  25. package/dist/components/core/language/index.js +1 -1
  26. package/dist/components/core/layouts/index.js +26 -26
  27. package/dist/components/core/navbar/NotificationsBell.d.ts +8 -2
  28. package/dist/components/core/navbar/NotificationsBell.d.ts.map +1 -1
  29. package/dist/components/core/navbar/index.js +1 -1
  30. package/dist/components/core/states/index.js +2 -2
  31. package/dist/components/core/table/DataTable.d.ts +4 -19
  32. package/dist/components/core/table/DataTable.d.ts.map +1 -1
  33. package/dist/components/core/table/TableActions.d.ts +2 -2
  34. package/dist/components/core/table/TableActions.d.ts.map +1 -1
  35. package/dist/components/core/table/TableBody.d.ts +6 -6
  36. package/dist/components/core/table/TableBody.d.ts.map +1 -1
  37. package/dist/components/core/table/TableBulkActions.d.ts +2 -2
  38. package/dist/components/core/table/TableBulkActions.d.ts.map +1 -1
  39. package/dist/components/core/table/TableHeader.d.ts +2 -2
  40. package/dist/components/core/table/TableHeader.d.ts.map +1 -1
  41. package/dist/components/core/table/TablePagination.d.ts.map +1 -1
  42. package/dist/components/core/table/TableSettings.d.ts +2 -2
  43. package/dist/components/core/table/TableSettings.d.ts.map +1 -1
  44. package/dist/components/core/table/index.js +1 -1
  45. package/dist/components/core/tabs/AppVerticalTabs.d.ts.map +1 -1
  46. package/dist/components/core/tabs/index.js +39 -40
  47. package/dist/components/core/theme/index.js +1 -1
  48. package/dist/components/index.js +19 -19
  49. package/dist/components/ui/index.js +2 -2
  50. package/dist/constants/datatable.d.ts +1 -1
  51. package/dist/dialogs-BiPcEbRx.js +207 -0
  52. package/dist/helpers/table.helper.d.ts +4 -4
  53. package/dist/helpers/table.helper.d.ts.map +1 -1
  54. package/dist/hooks/behavior/index.js +1 -1
  55. package/dist/hooks/index.js +6 -6
  56. package/dist/hooks/ui/index.js +5 -5
  57. package/dist/hooks/ui/useDataTable.d.ts +1 -1
  58. package/dist/hooks/ui/useDataTable.d.ts.map +1 -1
  59. package/dist/i18n/index.js +1 -1
  60. package/dist/i18n/krosoftLocales.d.ts +22 -0
  61. package/dist/i18n/krosoftLocales.d.ts.map +1 -1
  62. package/dist/i18n/useKrosoftTranslation.d.ts +9 -6
  63. package/dist/i18n/useKrosoftTranslation.d.ts.map +1 -1
  64. package/dist/{i18n-DW5zKBEK.js → i18n-CevI9Cgk.js} +35 -13
  65. package/dist/{inputs-CNDApo_M.js → inputs-BUXmTc40.js} +3 -3
  66. package/dist/{language-CK_kDejF.js → language-DeQC57bX.js} +9 -9
  67. package/dist/{navbar-UsCqs4DK.js → navbar-Cl4welok.js} +75 -62
  68. package/dist/pwa/index.js +4 -4
  69. package/dist/{sheet-_rrCMue7.js → sheet-RYwa4-Nl.js} +7 -7
  70. package/dist/{states-BusGNKku.js → states-C6lWnADN.js} +2 -2
  71. package/dist/{table-CZ5Ogd4w.js → table-BWEBIVqj.js} +235 -242
  72. package/dist/{theme-QayeX440.js → theme-Dwc4zNXG.js} +9 -9
  73. package/dist/types/AppAction.d.ts +1 -1
  74. package/dist/types/AppAction.d.ts.map +1 -1
  75. package/dist/types/{BulkAction.d.ts → DataTableBulkAction.d.ts} +3 -3
  76. package/dist/types/DataTableBulkAction.d.ts.map +1 -0
  77. package/dist/types/{ColumnDef.d.ts → DataTableColumn.d.ts} +3 -3
  78. package/dist/types/DataTableColumn.d.ts.map +1 -0
  79. package/dist/types/DataTableConfig.d.ts +21 -5
  80. package/dist/types/DataTableConfig.d.ts.map +1 -1
  81. package/dist/types/{RowAction.d.ts → DataTableRowAction.d.ts} +3 -3
  82. package/dist/types/DataTableRowAction.d.ts.map +1 -0
  83. package/dist/types/DataTableServerState.d.ts +20 -0
  84. package/dist/types/DataTableServerState.d.ts.map +1 -0
  85. package/dist/types/FilterFieldConfig.d.ts +2 -2
  86. package/dist/types/FilterFieldConfig.d.ts.map +1 -1
  87. package/dist/types/FilterSection.d.ts +1 -1
  88. package/dist/types/FilterSection.d.ts.map +1 -1
  89. package/dist/types/UseDataTableProps.d.ts +10 -16
  90. package/dist/types/UseDataTableProps.d.ts.map +1 -1
  91. package/dist/types/UseDataTableResult.d.ts +3 -3
  92. package/dist/types/UseDataTableResult.d.ts.map +1 -1
  93. package/dist/types/index.d.ts +4 -3
  94. package/dist/types/index.d.ts.map +1 -1
  95. package/dist/{ui-hnbBp9RZ.js → ui-D7YSs2kF.js} +1 -1
  96. package/dist/{ui-Dg7lq9J8.js → ui-IEH46J4v.js} +4 -4
  97. package/dist/{useDocumentTitle-D7MywIeB.js → useDocumentTitle-C5TsEDqh.js} +4 -4
  98. package/dist/{useFixedColumns-DnzqhbfT.js → useFixedColumns-BVZs3wbh.js} +27 -27
  99. package/dist/{useLanguage-B1dusDJk.js → useLanguage-DdVIzhME.js} +1 -1
  100. package/dist/{useTheme-D1APOG9I.js → useTheme-ZzPZl0MM.js} +1 -1
  101. package/package.json +2 -2
  102. package/dist/AppActions-CcU3ClFS.js +0 -60
  103. package/dist/dialogs-BDtZIxQa.js +0 -208
  104. package/dist/types/BulkAction.d.ts.map +0 -1
  105. package/dist/types/ColumnDef.d.ts.map +0 -1
  106. package/dist/types/RowAction.d.ts.map +0 -1
@@ -1,11 +1,11 @@
1
1
  import { t as e } from "../../../tailwind.helper-CJaRYBmL.js";
2
- import { At as t, Pn as n, bn as r } from "../../../ui-hnbBp9RZ.js";
3
- import { a as i, s as a } from "../../../tooltip-BmZ9Bfou.js";
4
- import { t as o } from "../../../i18n-DW5zKBEK.js";
5
- import { a as s, g as c, h as l, l as u, m as d, o as f, p, r as m, t as h, u as g } from "../../../sheet-_rrCMue7.js";
2
+ import { t } from "../../../i18n-CevI9Cgk.js";
3
+ import { At as n, Pn as r, bn as i } from "../../../ui-D7YSs2kF.js";
4
+ import { a, s as o } from "../../../tooltip-BmZ9Bfou.js";
5
+ import { a as s, g as c, h as l, l as u, m as d, o as f, p, r as m, t as h, u as g } from "../../../sheet-RYwa4-Nl.js";
6
6
  import { i as _, l as v, n as y, t as b, u as x } from "../../../select-DmLScQKX.js";
7
- import { t as S } from "../../../MultiSelect-B0Ke0cfS.js";
8
- import { i as C, n as w, r as T, t as E } from "../../../SearchInput-CXZd2rSc.js";
7
+ import { t as S } from "../../../MultiSelect-TGu_k3KM.js";
8
+ import { i as C, n as w, r as T, t as E } from "../../../SearchInput-Csflv8Az.js";
9
9
  import { useEffect as D, useMemo as O, useState as k } from "react";
10
10
  import { jsx as A, jsxs as j } from "react/jsx-runtime";
11
11
  import { getLocale as M } from "@krosoft/core/helpers";
@@ -16,47 +16,47 @@ var L = (e, t, n, r = {}) => {
16
16
  let i = String(t), a = r[`${e}_${i}`];
17
17
  return a === void 0 ? e.includes("ok") || t === "true" || t === "false" ? n(t === "true" ? "filters.yes" : "filters.no") : i : a;
18
18
  };
19
- function R({ filters: e, onRemoveFilter: t, onClearAll: r, filterLabels: i = {}, optionLabels: a = {} }) {
20
- let { t: s } = o(), c = Object.entries(e).filter(([e, t]) => !(t == null || t === "" || Array.isArray(t) && t.length === 0));
19
+ function R({ filters: e, onRemoveFilter: n, onClearAll: i, filterLabelKeys: a = {}, optionLabels: o = {} }) {
20
+ let { t: s } = t(), c = Object.entries(e).filter(([e, t]) => !(t == null || t === "" || Array.isArray(t) && t.length === 0));
21
21
  return c.length === 0 ? null : /* @__PURE__ */ j("div", {
22
22
  className: "flex flex-wrap items-center gap-2 mb-4",
23
23
  children: [
24
24
  /* @__PURE__ */ A("span", {
25
25
  className: "text-sm text-gray-600 font-medium",
26
- children: "Filtres actifs :"
26
+ children: s("filters.active")
27
27
  }),
28
- c.flatMap(([e, r]) => {
29
- let o = i[e] ?? e;
30
- if (Array.isArray(r)) return r.map((r) => {
31
- let i = L(e, r, s, a);
32
- return /* @__PURE__ */ j(n, {
28
+ c.flatMap(([e, t]) => {
29
+ let i = a[e], c = i === void 0 ? e : s(i);
30
+ if (Array.isArray(t)) return t.map((t) => {
31
+ let i = L(e, t, s, o);
32
+ return /* @__PURE__ */ j(r, {
33
33
  variant: "secondary",
34
34
  className: "flex items-center gap-1 px-3 py-1 bg-blue-50 text-blue-700 border border-blue-200 hover:bg-blue-100",
35
35
  children: [
36
- o,
36
+ c,
37
37
  ": ",
38
38
  i,
39
39
  /* @__PURE__ */ A("button", {
40
40
  onClick: () => {
41
- t(e, r);
41
+ n(e, t);
42
42
  },
43
43
  className: "ml-1 hover:bg-blue-200 rounded-full p-0.5",
44
44
  children: /* @__PURE__ */ A(I, { className: "size-4" })
45
45
  })
46
46
  ]
47
- }, `${e}_${String(r)}`);
47
+ }, `${e}_${String(t)}`);
48
48
  });
49
- let c = L(e, r, s, a);
50
- return /* @__PURE__ */ j(n, {
49
+ let l = L(e, t, s, o);
50
+ return /* @__PURE__ */ j(r, {
51
51
  variant: "secondary",
52
52
  className: "flex items-center gap-1 px-3 py-1 bg-blue-50 text-blue-700 border border-blue-200 hover:bg-blue-100",
53
53
  children: [
54
- o,
55
- ": ",
56
54
  c,
55
+ ": ",
56
+ l,
57
57
  /* @__PURE__ */ A("button", {
58
58
  onClick: () => {
59
- t(e);
59
+ n(e);
60
60
  },
61
61
  className: "ml-1 hover:bg-blue-200 rounded-full p-0.5",
62
62
  children: /* @__PURE__ */ A(I, { className: "size-4" })
@@ -65,82 +65,82 @@ function R({ filters: e, onRemoveFilter: t, onClearAll: r, filterLabels: i = {},
65
65
  }, e);
66
66
  }),
67
67
  c.length > 0 && /* @__PURE__ */ A("button", {
68
- onClick: r,
68
+ onClick: i,
69
69
  className: "text-xs text-red-500 hover:text-red-600 transition-colors font-medium ml-auto",
70
- children: "Effacer tout"
70
+ children: s("filters.clearAll")
71
71
  })
72
72
  ]
73
73
  });
74
74
  }
75
75
  //#endregion
76
76
  //#region src/components/core/filters/FilterField.tsx
77
- var z = ({ field: t, value: n, onChange: r, onToggleMultiSelect: i }) => {
78
- let { t: a } = o();
79
- switch (t.type) {
77
+ var z = ({ field: n, value: r, onChange: i, onToggleMultiSelect: a }) => {
78
+ let { t: o } = t();
79
+ switch (n.type) {
80
80
  case "text": return /* @__PURE__ */ A(c, {
81
- placeholder: t.placeholder,
82
- value: n ?? "",
81
+ placeholder: n.placeholder,
82
+ value: r ?? "",
83
83
  onChange: (e) => {
84
- r(e.target.value);
84
+ i(e.target.value);
85
85
  }
86
86
  });
87
87
  case "number": return /* @__PURE__ */ A(c, {
88
88
  type: "number",
89
- placeholder: t.placeholder,
90
- value: n ?? "",
89
+ placeholder: n.placeholder,
90
+ value: r ?? "",
91
91
  onChange: (e) => {
92
- r(e.target.value);
92
+ i(e.target.value);
93
93
  },
94
- min: t.min,
95
- max: t.max
94
+ min: n.min,
95
+ max: n.max
96
96
  });
97
- case "select": return t.searchable === !0 ? /* @__PURE__ */ A(w, {
98
- options: t.options ?? [],
99
- value: n,
100
- onChange: r,
101
- placeholder: t.placeholder,
102
- searchPlaceholder: t.searchPlaceholder
97
+ case "select": return n.searchable === !0 ? /* @__PURE__ */ A(w, {
98
+ options: n.options ?? [],
99
+ value: r,
100
+ onChange: i,
101
+ placeholder: n.placeholder,
102
+ searchPlaceholder: n.searchPlaceholder
103
103
  }) : /* @__PURE__ */ j(b, {
104
- value: n ?? "",
105
- onValueChange: r,
104
+ value: r ?? "",
105
+ onValueChange: i,
106
106
  children: [/* @__PURE__ */ A(v, {
107
- className: e((n === void 0 || n === "") && "text-muted-foreground"),
108
- children: /* @__PURE__ */ A(x, { placeholder: t.placeholder })
109
- }), /* @__PURE__ */ A(y, { children: t.options?.map((e) => /* @__PURE__ */ A(_, {
107
+ className: e((r === void 0 || r === "") && "text-muted-foreground"),
108
+ children: /* @__PURE__ */ A(x, { placeholder: n.placeholder })
109
+ }), /* @__PURE__ */ A(y, { children: n.options?.map((e) => /* @__PURE__ */ A(_, {
110
110
  value: e.value,
111
111
  children: e.label
112
112
  }, e.value)) })]
113
113
  });
114
114
  case "date": return /* @__PURE__ */ A(C, {
115
- date: n,
116
- onDateChange: r,
117
- placeholder: t.placeholder ?? a("date.pickDate")
115
+ date: r,
116
+ onDateChange: i,
117
+ placeholder: n.placeholder ?? o("date.pickDate")
118
118
  });
119
119
  case "date-range": return /* @__PURE__ */ A(T, {
120
- value: n,
121
- onChange: r,
122
- placeholder: t.placeholder
120
+ value: r,
121
+ onChange: i,
122
+ placeholder: n.placeholder
123
123
  });
124
124
  case "multi-select": return /* @__PURE__ */ A(S, {
125
- options: t.options ?? [],
126
- selected: n ?? [],
127
- onToggle: i,
125
+ options: n.options ?? [],
126
+ selected: r ?? [],
127
+ onToggle: a,
128
128
  onClear: () => {
129
- r([]);
129
+ i([]);
130
130
  },
131
- onSelectAll: r,
132
- placeholder: t.placeholder,
133
- searchable: t.searchable,
134
- searchPlaceholder: t.searchPlaceholder
131
+ onSelectAll: i,
132
+ placeholder: n.placeholder,
133
+ searchable: n.searchable,
134
+ searchPlaceholder: n.searchPlaceholder
135
135
  });
136
136
  default: return null;
137
137
  }
138
138
  }, B = (e) => !(e == null || e === "" || Array.isArray(e) && e.length === 0);
139
- function V({ sections: e, filters: n, onFiltersChange: r, buttonText: i, sheetTitle: c }) {
140
- let { t: l } = o(), [d, p] = k(!1), [_, v] = k(n);
139
+ function V({ sections: e, filters: r, onFiltersChange: i, buttonText: a, sheetTitle: c }) {
140
+ let { t: l } = t(), [d, p] = k(!1), [_, v] = k(r);
141
141
  D(() => {
142
- v(n);
143
- }, [n, d]);
142
+ v(r);
143
+ }, [r, d]);
144
144
  let y = (e, t) => {
145
145
  v((n) => ({
146
146
  ...n,
@@ -150,24 +150,24 @@ function V({ sections: e, filters: n, onFiltersChange: r, buttonText: i, sheetTi
150
150
  let n = _[e], r = Array.isArray(n) ? n : [], i = r.includes(t) ? r.filter((e) => e !== t) : [...r, t];
151
151
  y(e, i);
152
152
  }, x = () => {
153
- r(_), p(!1);
153
+ i(_), p(!1);
154
154
  }, S = () => {
155
- v({}), r({}), p(!1);
155
+ v({}), i({}), p(!1);
156
156
  }, C = O(() => {
157
157
  let t = new Set(e.flatMap((e) => e.filters.map((e) => e.key)));
158
- return Object.entries(n).filter(([e, n]) => t.has(e) && B(n)).length;
159
- }, [e, n]);
158
+ return Object.entries(r).filter(([e, n]) => t.has(e) && B(n)).length;
159
+ }, [e, r]);
160
160
  return /* @__PURE__ */ j(h, {
161
161
  open: d,
162
162
  onOpenChange: p,
163
163
  children: [/* @__PURE__ */ A(g, {
164
164
  asChild: !0,
165
- children: /* @__PURE__ */ j(a, {
165
+ children: /* @__PURE__ */ j(o, {
166
166
  variant: "outline",
167
167
  className: "gap-2",
168
168
  children: [
169
169
  /* @__PURE__ */ A(P, { className: "size-4 shrink-0" }),
170
- i ?? l("filters.more"),
170
+ a ?? l("filters.more"),
171
171
  C > 0 && /* @__PURE__ */ A("span", {
172
172
  className: "ml-1 flex h-5 min-w-5 items-center justify-center rounded-full bg-primary px-1.5 text-xs font-semibold text-primary-foreground",
173
173
  children: C
@@ -186,16 +186,16 @@ function V({ sections: e, filters: n, onFiltersChange: r, buttonText: i, sheetTi
186
186
  className: "flex-1 overflow-y-auto p-6 pt-6",
187
187
  children: /* @__PURE__ */ A("div", {
188
188
  className: "space-y-6",
189
- children: e.map((e, n) => /* @__PURE__ */ j("div", {
189
+ children: e.map((e, t) => /* @__PURE__ */ j("div", {
190
190
  className: "space-y-4",
191
191
  children: [/* @__PURE__ */ A("h3", {
192
192
  className: "font-semibold text-sm text-gray-900 dark:text-gray-100 border-b pb-2",
193
- children: e.title
193
+ children: l(e.titleKey)
194
194
  }), e.filters.map((e) => /* @__PURE__ */ j("div", {
195
195
  className: "space-y-2",
196
- children: [/* @__PURE__ */ A(t, {
196
+ children: [/* @__PURE__ */ A(n, {
197
197
  htmlFor: e.key,
198
- children: e.label
198
+ children: l(e.labelKey)
199
199
  }), /* @__PURE__ */ A(z, {
200
200
  field: e,
201
201
  value: _[e.key],
@@ -207,20 +207,20 @@ function V({ sections: e, filters: n, onFiltersChange: r, buttonText: i, sheetTi
207
207
  }
208
208
  })]
209
209
  }, e.key))]
210
- }, n))
210
+ }, t))
211
211
  })
212
212
  }),
213
213
  /* @__PURE__ */ j(s, {
214
214
  className: "gap-2 p-6 border-t bg-white dark:bg-gray-950",
215
- children: [/* @__PURE__ */ A(a, {
215
+ children: [/* @__PURE__ */ A(o, {
216
216
  variant: "outline",
217
217
  className: "flex-1",
218
218
  onClick: S,
219
- children: "Effacer les filtres"
220
- }), /* @__PURE__ */ A(a, {
219
+ children: l("filters.clear")
220
+ }), /* @__PURE__ */ A(o, {
221
221
  className: "flex-1 bg-orange-500 hover:bg-orange-600 text-white",
222
222
  onClick: x,
223
- children: "Rechercher"
223
+ children: l("filters.apply")
224
224
  })]
225
225
  })
226
226
  ]
@@ -229,8 +229,8 @@ function V({ sections: e, filters: n, onFiltersChange: r, buttonText: i, sheetTi
229
229
  }
230
230
  //#endregion
231
231
  //#region src/components/core/filters/SearchableFilterPill.tsx
232
- function H({ label: t, options: n, selected: a, onToggle: s, onClear: c, onSelectAll: u, searchable: f = !1, searchPlaceholder: m }) {
233
- let { t: h } = o(), [g, _] = k(""), v = a.length > 0, y = O(() => g === "" ? n : n.filter((e) => e.label.toLowerCase().includes(g.toLowerCase())), [n, g]), b = O(() => y.length !== 0 && y.every((e) => a.includes(e.value)), [y, a]);
232
+ function H({ labelKey: n, options: r, selected: o, onToggle: s, onClear: c, onSelectAll: u, searchable: f = !1, searchPlaceholder: m }) {
233
+ let { t: h } = t(), [g, _] = k(""), v = o.length > 0, y = O(() => g === "" ? r : r.filter((e) => e.label.toLowerCase().includes(g.toLowerCase())), [r, g]), b = O(() => y.length !== 0 && y.every((e) => o.includes(e.value)), [y, o]);
234
234
  return /* @__PURE__ */ j(p, {
235
235
  onOpenChange: () => {
236
236
  _("");
@@ -238,12 +238,12 @@ function H({ label: t, options: n, selected: a, onToggle: s, onClear: c, onSelec
238
238
  children: [/* @__PURE__ */ A(l, {
239
239
  asChild: !0,
240
240
  children: /* @__PURE__ */ j("button", {
241
- className: e(i, "inline-flex items-center gap-1.5 whitespace-nowrap transition-colors", v ? "border-primary bg-primary/10 text-primary font-medium" : "hover:bg-muted"),
241
+ className: e(a, "inline-flex items-center gap-1.5 whitespace-nowrap transition-colors", v ? "border-primary bg-primary/10 text-primary font-medium" : "hover:bg-muted"),
242
242
  children: [
243
- t,
244
- a.length > 0 && /* @__PURE__ */ A("span", {
243
+ h(n),
244
+ o.length > 0 && /* @__PURE__ */ A("span", {
245
245
  className: "flex h-4 min-w-[16px] items-center justify-center rounded-full bg-primary px-1 text-[10px] font-bold text-primary-foreground",
246
- children: a.length
246
+ children: o.length
247
247
  }),
248
248
  /* @__PURE__ */ A(N, { className: "size-3.5 opacity-60" })
249
249
  ]
@@ -272,26 +272,26 @@ function H({ label: t, options: n, selected: a, onToggle: s, onClear: c, onSelec
272
272
  children: [
273
273
  y.length > 0 && /* @__PURE__ */ j("label", {
274
274
  className: "flex items-center gap-2.5 rounded-md px-2 py-2 text-sm hover:bg-muted cursor-pointer transition-colors",
275
- children: [/* @__PURE__ */ A(r, {
275
+ children: [/* @__PURE__ */ A(i, {
276
276
  checked: b,
277
277
  onCheckedChange: () => {
278
278
  if (b) {
279
279
  if (u !== void 0) {
280
280
  let e = y.map((e) => e.value);
281
- u(a.filter((t) => !e.includes(t)));
282
- } else c === void 0 ? a.forEach((e) => {
281
+ u(o.filter((t) => !e.includes(t)));
282
+ } else c === void 0 ? o.forEach((e) => {
283
283
  s(e);
284
284
  }) : c();
285
285
  } else if (u !== void 0) {
286
- let e = [...a];
286
+ let e = [...o];
287
287
  y.forEach((t) => {
288
288
  e.includes(t.value) || e.push(t.value);
289
289
  }), u(e);
290
290
  } else y.forEach((e) => {
291
- a.includes(e.value) || s(e.value);
291
+ o.includes(e.value) || s(e.value);
292
292
  });
293
293
  }
294
- }), "Tout sélectionner"]
294
+ }), h("filters.selectAll")]
295
295
  }),
296
296
  y.length === 0 && /* @__PURE__ */ A("p", {
297
297
  className: "px-2 py-3 text-center text-xs text-muted-foreground",
@@ -300,8 +300,8 @@ function H({ label: t, options: n, selected: a, onToggle: s, onClear: c, onSelec
300
300
  y.map((e) => /* @__PURE__ */ j("label", {
301
301
  className: "flex items-center gap-2.5 rounded-md px-2 py-2 text-sm hover:bg-muted cursor-pointer transition-colors",
302
302
  children: [
303
- /* @__PURE__ */ A(r, {
304
- checked: a.includes(e.value),
303
+ /* @__PURE__ */ A(i, {
304
+ checked: o.includes(e.value),
305
305
  onCheckedChange: () => {
306
306
  s(e.value);
307
307
  }
@@ -315,16 +315,16 @@ function H({ label: t, options: n, selected: a, onToggle: s, onClear: c, onSelec
315
315
  }, e.value))
316
316
  ]
317
317
  }),
318
- a.length > 0 && /* @__PURE__ */ A("div", {
318
+ o.length > 0 && /* @__PURE__ */ A("div", {
319
319
  className: "border-t border-border p-1.5",
320
320
  children: /* @__PURE__ */ A("button", {
321
321
  onClick: () => {
322
- c === void 0 ? a.forEach((e) => {
322
+ c === void 0 ? o.forEach((e) => {
323
323
  s(e);
324
324
  }) : c();
325
325
  },
326
326
  className: "w-full rounded-md px-2 py-1.5 text-xs text-muted-foreground hover:text-foreground hover:bg-muted transition-colors text-center",
327
- children: "Tout désélectionner"
327
+ children: h("filters.deselectAll")
328
328
  })
329
329
  })
330
330
  ]
@@ -333,65 +333,65 @@ function H({ label: t, options: n, selected: a, onToggle: s, onClear: c, onSelec
333
333
  }
334
334
  //#endregion
335
335
  //#region src/components/core/filters/TableFilter.tsx
336
- function U({ searchQuery: e, onSearchChange: t, searchPlaceholder: n, filters: r, onFiltersChange: i, sections: a, advancedButtonText: s = "Filtres", sheetTitle: c }) {
337
- let { t: l } = o(), u = (e, t) => {
338
- let n = r[e], a = Array.isArray(n) ? n : [], o = a.includes(t) ? a.filter((e) => e !== t) : [...a, t], s = { ...r };
339
- o.length === 0 ? delete s[e] : s[e] = o, i(s);
336
+ function U({ searchQuery: e, onSearchChange: n, searchPlaceholder: r, filters: i, onFiltersChange: a, sections: o, advancedButtonText: s, sheetTitle: c }) {
337
+ let { t: l } = t(), u = (e, t) => {
338
+ let n = i[e], r = Array.isArray(n) ? n : [], o = r.includes(t) ? r.filter((e) => e !== t) : [...r, t], s = { ...i };
339
+ o.length === 0 ? delete s[e] : s[e] = o, a(s);
340
340
  }, d = (e) => {
341
- let t = { ...r };
342
- delete t[e], i(t);
341
+ let t = { ...i };
342
+ delete t[e], a(t);
343
343
  }, f = () => {
344
- i({});
344
+ a({});
345
345
  }, p = (e, t) => {
346
- let n = { ...r }, a = n[e];
347
- Array.isArray(a) ? t === void 0 ? delete n[e] : (n[e] = a.filter((e) => e !== t), Array.isArray(n[e]) && n[e].length === 0 && delete n[e]) : delete n[e], i(n);
346
+ let n = { ...i }, r = n[e];
347
+ Array.isArray(r) ? t === void 0 ? delete n[e] : (n[e] = r.filter((e) => e !== t), Array.isArray(n[e]) && n[e].length === 0 && delete n[e]) : delete n[e], a(n);
348
348
  }, m = O(() => {
349
349
  let e = [];
350
- return a.forEach((t) => {
350
+ return o.forEach((t) => {
351
351
  t.filters.forEach((t) => {
352
352
  t.isQuickFilter === !0 && e.push({
353
353
  key: t.key,
354
- label: t.label,
354
+ labelKey: t.labelKey,
355
355
  options: t.options ?? [],
356
356
  searchable: t.searchable,
357
357
  searchPlaceholder: t.searchPlaceholder
358
358
  });
359
359
  });
360
360
  }), e;
361
- }, [a]), h = O(() => {
361
+ }, [o]), h = O(() => {
362
362
  let e = {};
363
- return a.forEach((t) => {
363
+ return o.forEach((t) => {
364
364
  t.filters.forEach((t) => {
365
- e[t.key] = t.badgeLabel ?? t.label;
365
+ e[t.key] = t.badgeLabelKey ?? t.labelKey;
366
366
  });
367
367
  }), e;
368
- }, [a]), g = O(() => {
368
+ }, [o]), g = O(() => {
369
369
  let e = {};
370
- return a.forEach((t) => {
370
+ return o.forEach((t) => {
371
371
  t.filters.forEach((t) => {
372
372
  t.options !== void 0 && t.options.forEach((n) => {
373
373
  e[`${t.key}_${n.value}`] = n.label;
374
374
  });
375
375
  });
376
376
  }), e;
377
- }, [a]);
377
+ }, [o]);
378
378
  return /* @__PURE__ */ j("div", {
379
379
  className: "space-y-4 w-full",
380
380
  children: [/* @__PURE__ */ j("div", {
381
381
  className: "flex flex-wrap items-center gap-3 justify-between",
382
382
  children: [/* @__PURE__ */ j("div", {
383
383
  className: "flex flex-wrap items-center gap-3",
384
- children: [t === void 0 ? null : /* @__PURE__ */ A(E, {
384
+ children: [n === void 0 ? null : /* @__PURE__ */ A(E, {
385
385
  searchQuery: e,
386
- onSearch: t,
386
+ onSearch: n,
387
387
  onClear: () => {
388
- t("");
388
+ n("");
389
389
  },
390
- placeholder: n ?? l("search.placeholder")
390
+ placeholder: r ?? l("search.placeholder")
391
391
  }), m.map((e) => /* @__PURE__ */ A(H, {
392
- label: e.label,
392
+ labelKey: e.labelKey,
393
393
  options: e.options,
394
- selected: Array.isArray(r[e.key]) ? r[e.key] : [],
394
+ selected: Array.isArray(i[e.key]) ? i[e.key] : [],
395
395
  onToggle: (t) => {
396
396
  u(e.key, t);
397
397
  },
@@ -399,26 +399,26 @@ function U({ searchQuery: e, onSearchChange: t, searchPlaceholder: n, filters: r
399
399
  d(e.key);
400
400
  },
401
401
  onSelectAll: (t) => {
402
- i({
403
- ...r,
402
+ a({
403
+ ...i,
404
404
  [e.key]: t
405
405
  });
406
406
  },
407
407
  searchable: e.searchable,
408
408
  searchPlaceholder: e.searchPlaceholder
409
409
  }, e.key))]
410
- }), a.length > 0 && /* @__PURE__ */ A(V, {
411
- sections: a,
412
- filters: r,
413
- onFiltersChange: i,
410
+ }), o.length > 0 && /* @__PURE__ */ A(V, {
411
+ sections: o,
412
+ filters: i,
413
+ onFiltersChange: a,
414
414
  buttonText: s,
415
415
  sheetTitle: c
416
416
  })]
417
417
  }), /* @__PURE__ */ A(R, {
418
- filters: r,
418
+ filters: i,
419
419
  onRemoveFilter: p,
420
420
  onClearAll: f,
421
- filterLabels: h,
421
+ filterLabelKeys: h,
422
422
  optionLabels: g
423
423
  })]
424
424
  });
@@ -1 +1 @@
1
- {"version":3,"file":"GenericForm.d.ts","sourceRoot":"","sources":["../../../../src/components/core/forms/GenericForm.tsx"],"names":[],"mappings":"AA0BA,OAAO,EAAa,UAAU,EAAgF,MAAM,SAAS,CAAC;AAE9H,OAAO,KAAmB,MAAM,OAAO,CAAC;AAMxC;;GAEG;AACH,UAAU,gBAAgB,CAAC,CAAC;IAC1B;;;OAGG;IACH,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IACzC;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;IACrB;;OAEG;IACH,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB;;OAEG;IACH,WAAW,CAAC,EAAE,CAAC,CAAC;IAChB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;OAEG;IACH,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IAChD;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;CAC7B;AAED;;;GAGG;AACH,eAAO,MAAM,WAAW,GAAI,CAAC,EAAG,wHAW7B,gBAAgB,CAAC,CAAC,CAAC,KAAG,KAAK,CAAC,YAAY,GAAG,IAya7C,CAAC"}
1
+ {"version":3,"file":"GenericForm.d.ts","sourceRoot":"","sources":["../../../../src/components/core/forms/GenericForm.tsx"],"names":[],"mappings":"AA0BA,OAAO,EAAa,UAAU,EAAgF,MAAM,SAAS,CAAC;AAE9H,OAAO,KAAmB,MAAM,OAAO,CAAC;AAKxC;;GAEG;AACH,UAAU,gBAAgB,CAAC,CAAC;IAC1B;;;OAGG;IACH,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IACzC;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;IACrB;;OAEG;IACH,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB;;OAEG;IACH,WAAW,CAAC,EAAE,CAAC,CAAC;IAChB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;OAEG;IACH,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IAChD;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;CAC7B;AAED;;;GAGG;AACH,eAAO,MAAM,WAAW,GAAI,CAAC,EAAG,wHAW7B,gBAAgB,CAAC,CAAC,CAAC,KAAG,KAAK,CAAC,YAAY,GAAG,IAwa7C,CAAC"}
@@ -1,2 +1,2 @@
1
- import { t as e } from "../../../GenericForm-JqObtUCQ.js";
1
+ import { t as e } from "../../../GenericForm-C86_Jk7X.js";
2
2
  export { e as GenericForm };
@@ -1,24 +1,24 @@
1
- import { a as e, i as t, n, o as r, r as i, t as a } from "../../cards-Ct4wFYa8.js";
2
- import { I as o } from "../../ui-hnbBp9RZ.js";
3
- import { A as s, D as c, E as l, F as u, M as d, N as f, O as p, P as m, j as h, k as g } from "../../sheet-_rrCMue7.js";
4
- import { a as _, c as v, i as y, n as b, o as x, r as S, s as C, t as w } from "../../charts-CwT9AFWj.js";
5
- import { n as T, r as E, t as D } from "../../dialogs-BDtZIxQa.js";
6
- import { t as O } from "../../ImageInput-BLIo5LYH.js";
7
- import { t as k } from "../../AppActions-CcU3ClFS.js";
8
- import { t as A } from "../../AppSubTitle-C8zoMJo_.js";
9
- import { t as j } from "../../MultiSelect-B0Ke0cfS.js";
10
- import { t as M } from "../../GenericForm-JqObtUCQ.js";
11
- import { t as N } from "../../ErrorAlert-DClCk3Ey.js";
12
- import { i as P, n as F, r as I, t as L } from "../../SearchInput-CXZd2rSc.js";
1
+ import { a as e, i as t, n, o as r, r as i, t as a } from "../../cards-nqZOcSkh.js";
2
+ import { I as o } from "../../ui-D7YSs2kF.js";
3
+ import { A as s, D as c, E as l, F as u, M as d, N as f, O as p, P as m, j as h, k as g } from "../../sheet-RYwa4-Nl.js";
4
+ import { a as _, c as v, i as y, n as b, o as x, r as S, s as C, t as w } from "../../charts-BfeSrTmX.js";
5
+ import { n as T, r as E, t as D } from "../../dialogs-BiPcEbRx.js";
6
+ import { t as O } from "../../ImageInput-DvHgBYsy.js";
7
+ import { t as k } from "../../AppActions-D8KKXpq-.js";
8
+ import { t as A } from "../../AppSubTitle-CVhjWRBp.js";
9
+ import { t as j } from "../../MultiSelect-TGu_k3KM.js";
10
+ import { t as M } from "../../GenericForm-C86_Jk7X.js";
11
+ import { t as N } from "../../ErrorAlert-6ECy_Dox.js";
12
+ import { i as P, n as F, r as I, t as L } from "../../SearchInput-Csflv8Az.js";
13
13
  import { ActiveFilters as R, AdvancedFilters as z, FilterField as B, SearchableFilterPill as V, TableFilter as H } from "./filters/index.js";
14
14
  import "./forms/index.js";
15
- import { t as U } from "../../inputs-CNDApo_M.js";
16
- import { t as W } from "../../language-CK_kDejF.js";
17
- import { t as G } from "../../AppTitle-BR4JFZfp.js";
18
- import { n as K, t as q } from "../../states-BusGNKku.js";
15
+ import { t as U } from "../../inputs-BUXmTc40.js";
16
+ import { t as W } from "../../language-DeQC57bX.js";
17
+ import { t as G } from "../../AppTitle-DBGJRsjU.js";
18
+ import { n as K, t as q } from "../../states-C6lWnADN.js";
19
19
  import { AppPageHeader as J, KpiCardsLayout as Y } from "./layouts/index.js";
20
- import { a as X, i as Z, n as Q, o as $, r as ee, t as te } from "../../navbar-UsCqs4DK.js";
21
- import { a as ne, c as re, i as ie, n as ae, o as oe, r as se, s as ce, t as le } from "../../table-CZ5Ogd4w.js";
20
+ import { a as X, i as Z, n as Q, o as $, r as ee, t as te } from "../../navbar-Cl4welok.js";
21
+ import { a as ne, c as re, i as ie, n as ae, o as oe, r as se, s as ce, t as le } from "../../table-BWEBIVqj.js";
22
22
  import { AppTabContainer as ue, AppTabHeader as de, AppTabs as fe, AppVerticalTabs as pe } from "./tabs/index.js";
23
- import { t as me } from "../../theme-QayeX440.js";
23
+ import { t as me } from "../../theme-Dwc4zNXG.js";
24
24
  export { R as ActiveFilters, z as AdvancedFilters, k as AppActions, E as AppDialog, J as AppPageHeader, A as AppSubTitle, ue as AppTabContainer, de as AppTabHeader, fe as AppTabs, G as AppTitle, pe as AppVerticalTabs, v as BarChartHorizontal, C as BarChartVertical, _ as CHART_COLORS, y as ChartCard, S as CircularGauge, D as ConfirmationDialog, r as DashboardCard, ae as DataTable, P as DatePicker, I as DateRangePicker, l as Dialog, c as DialogClose, p as DialogContent, g as DialogDescription, s as DialogFooter, h as DialogHeader, d as DialogOverlay, f as DialogPortal, m as DialogTitle, u as DialogTrigger, N as ErrorAlert, K as ErrorState, B as FilterField, T as FormDialog, M as GenericForm, $ as GlobalSearch, O as ImageInput, le as JsonTableOutput, e as KpiCard, t as KpiCards, Y as KpiCardsLayout, W as LanguageSelector, b as LineChart, q as LoadingState, i as MetricCard, j as MultiSelect, X as NotificationsBell, w as PieChart, o as Progress, U as RatingInput, L as SearchInput, V as SearchableFilterPill, F as SearchableSelect, ee as Sidebar, Q as SidebarHeader, Z as SidebarNavItem, n as SkeletonCard, a as SkeletonCards, re as TableActions, ce as TableBody, oe as TableBulkActions, H as TableFilter, ne as TableHeader, ie as TablePagination, se as TableSettings, me as ThemeSelector, te as Topbar, x as getChartColor };
@@ -1,5 +1,5 @@
1
- import { t as e } from "../../../ImageInput-BLIo5LYH.js";
2
- import { t } from "../../../MultiSelect-B0Ke0cfS.js";
3
- import { i as n, n as r, r as i, t as a } from "../../../SearchInput-CXZd2rSc.js";
4
- import { t as o } from "../../../inputs-CNDApo_M.js";
1
+ import { t as e } from "../../../ImageInput-DvHgBYsy.js";
2
+ import { t } from "../../../MultiSelect-TGu_k3KM.js";
3
+ import { i as n, n as r, r as i, t as a } from "../../../SearchInput-Csflv8Az.js";
4
+ import { t as o } from "../../../inputs-BUXmTc40.js";
5
5
  export { n as DatePicker, i as DateRangePicker, e as ImageInput, t as MultiSelect, o as RatingInput, a as SearchInput, r as SearchableSelect };
@@ -1,2 +1,2 @@
1
- import { t as e } from "../../../language-CK_kDejF.js";
1
+ import { t as e } from "../../../language-DeQC57bX.js";
2
2
  export { e as LanguageSelector };