@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,3 +1,3 @@
1
1
  export declare const pagesSizes: number[];
2
- export declare const defaultPageSize: number;
2
+ export declare const pageSizeDefault: number;
3
3
  //# sourceMappingURL=datatable.d.ts.map
@@ -0,0 +1,207 @@
1
+ import { t as e } from "./i18n-CevI9Cgk.js";
2
+ import { Bn as t, Gn as n, Hn as r, I as i, Kn as a, Un as o, Wn as s, qn as c } from "./ui-D7YSs2kF.js";
3
+ import { n as l, t as u } from "./alert-REQGK9bR.js";
4
+ import { s as d } from "./tooltip-BmZ9Bfou.js";
5
+ import { E as f, O as p, P as m, j as h, k as g } from "./sheet-RYwa4-Nl.js";
6
+ import { t as _ } from "./GenericForm-C86_Jk7X.js";
7
+ import { t as v } from "./ErrorAlert-6ECy_Dox.js";
8
+ import { useEffect as y, useState as b } from "react";
9
+ import { Fragment as x, jsx as S, jsxs as C } from "react/jsx-runtime";
10
+ import { AlertCircleIcon as w, Pen as T, Save as E, X as D } from "lucide-react";
11
+ //#region src/components/core/dialogs/AppDialog.tsx
12
+ function O({ open: t, onOpenChange: n, config: r, isLoading: a, error: o, children: s }) {
13
+ let { t: c } = e(), { title: _, description: v, icon: y, maxWidth: b = "sm:max-w-xl", actions: x } = r;
14
+ return /* @__PURE__ */ S(f, {
15
+ open: t,
16
+ onOpenChange: n,
17
+ children: /* @__PURE__ */ C(p, {
18
+ className: `${b} max-h-[100dvh] sm:max-h-[90vh] border-0 shadow-2xl p-0 flex flex-col overflow-hidden`,
19
+ children: [
20
+ a === !0 ? /* @__PURE__ */ S("div", {
21
+ className: "absolute top-0 left-0 right-0 z-10",
22
+ children: /* @__PURE__ */ S(i, {
23
+ indeterminate: !0,
24
+ className: "h-1 rounded-none"
25
+ })
26
+ }) : null,
27
+ /* @__PURE__ */ C(h, {
28
+ className: "bg-gradient-to-r from-slate-900 to-purple-700 p-4 sm:p-6 sm:rounded-t-surface shrink-0",
29
+ children: [/* @__PURE__ */ C(m, {
30
+ className: "text-xl sm:text-2xl font-bold flex items-center gap-2 text-white",
31
+ children: [y === void 0 ? null : /* @__PURE__ */ S("div", {
32
+ className: "p-2 bg-white/20 rounded-control",
33
+ children: /* @__PURE__ */ S(y, { className: "size-4 text-white" })
34
+ }), c(_)]
35
+ }), v !== void 0 && v !== "" ? /* @__PURE__ */ S(g, {
36
+ className: "text-indigo-100 text-base",
37
+ children: c(v)
38
+ }) : null]
39
+ }),
40
+ o == null ? null : /* @__PURE__ */ S("div", {
41
+ className: "px-6 ",
42
+ children: /* @__PURE__ */ C(u, {
43
+ variant: "destructive",
44
+ className: "max-w-full",
45
+ children: [/* @__PURE__ */ S(w, { className: "size-4" }), /* @__PURE__ */ S(l, {
46
+ className: "break-words overflow-wrap-anywhere max-w-full",
47
+ children: o.message
48
+ })]
49
+ })
50
+ }),
51
+ /* @__PURE__ */ S("div", {
52
+ className: "flex-1 overflow-y-auto px-4 sm:px-6 py-4",
53
+ children: s
54
+ }),
55
+ x !== void 0 && x.length > 0 ? /* @__PURE__ */ S("div", {
56
+ className: "sm:rounded-b-surface border-t border-gray-200 dark:border-gray-700 shrink-0 p-4 sm:p-6 light:bg-gradient-to-r light:from-gray-50 light:to-gray-100 dark:bg-gray-950",
57
+ children: /* @__PURE__ */ S("div", {
58
+ className: "flex justify-end gap-3",
59
+ children: x.map((e, t) => /* @__PURE__ */ C(d, {
60
+ variant: e.variant ?? "default",
61
+ onClick: e.onClick,
62
+ disabled: e.disabled === !0 || a === !0,
63
+ children: [e.icon === void 0 ? null : /* @__PURE__ */ S(e.icon, { className: "size-4" }), c(e.label)]
64
+ }, t))
65
+ })
66
+ }) : null
67
+ ]
68
+ })
69
+ });
70
+ }
71
+ //#endregion
72
+ //#region src/components/core/dialogs/FormDialog.tsx
73
+ function k({ open: t, onOpenChange: n, data: r, title: i, headerBadge: a, schema: o, onSave: s, customFooter: c, defaultEditing: l = !1, footerActions: u = !0, saveLabel: f = "Sauvegarder", cancelLabel: p, hideSaveIcon: m = !1, maxWidth: h = "sm:max-w-4xl", isLoading: g = !1 }) {
74
+ let { t: v } = e(), [w, k] = b(l), [A, j] = b(!1), [M, N] = b(null);
75
+ if (y(() => {
76
+ t && k(l);
77
+ }, [t, l]), r == null) return null;
78
+ let P = () => {
79
+ w ? s !== void 0 && M && M() : k(!0);
80
+ }, F = () => {
81
+ k(!1);
82
+ }, I = () => {
83
+ s !== void 0 && M && M();
84
+ }, L = async (e) => {
85
+ if (s) {
86
+ j(!0);
87
+ try {
88
+ await s(e), k(!1);
89
+ } catch (e) {
90
+ console.error(e);
91
+ } finally {
92
+ j(!1);
93
+ }
94
+ }
95
+ }, R = [];
96
+ s !== void 0 && (w ? (p !== "" && R.push({
97
+ label: p ?? v("actions.cancel"),
98
+ onClick: F,
99
+ variant: "outline",
100
+ disabled: A || g,
101
+ icon: D
102
+ }), R.push({
103
+ label: A ? "Enregistrement..." : f,
104
+ onClick: I,
105
+ variant: "default",
106
+ disabled: A || g,
107
+ icon: m ? void 0 : E
108
+ })) : R.push({
109
+ label: v("actions.edit"),
110
+ onClick: P,
111
+ variant: "outline",
112
+ icon: T
113
+ }));
114
+ let z = {
115
+ title: i(r),
116
+ maxWidth: h,
117
+ actions: u ? R : []
118
+ };
119
+ return /* @__PURE__ */ S(O, {
120
+ open: t,
121
+ onOpenChange: (e) => {
122
+ n(e), e || F();
123
+ },
124
+ config: z,
125
+ isLoading: A || g,
126
+ children: /* @__PURE__ */ C("div", { children: [
127
+ a === void 0 ? null : /* @__PURE__ */ S("div", {
128
+ className: "mb-4",
129
+ children: a(r)
130
+ }),
131
+ /* @__PURE__ */ S(_, {
132
+ schema: o,
133
+ initialData: r,
134
+ disabled: !w,
135
+ onSubmit: (e) => {
136
+ L(e);
137
+ },
138
+ renderActions: !1,
139
+ onRegisterSubmit: (e) => {
140
+ N(() => e);
141
+ },
142
+ isLoading: A || g
143
+ }),
144
+ c === void 0 ? null : c(r),
145
+ s !== void 0 && !u ? /* @__PURE__ */ S("div", {
146
+ className: "flex justify-end gap-2 border-t pt-4 mt-6",
147
+ children: w ? /* @__PURE__ */ C(x, { children: [p === "" ? null : /* @__PURE__ */ C(d, {
148
+ onClick: F,
149
+ variant: "outline",
150
+ size: "sm",
151
+ disabled: A || g,
152
+ children: [/* @__PURE__ */ S(D, { className: "size-4 mr-2" }), p ?? v("actions.cancel")]
153
+ }), /* @__PURE__ */ C(d, {
154
+ onClick: I,
155
+ size: "sm",
156
+ disabled: A || g,
157
+ className: "text-white",
158
+ children: [m ? null : /* @__PURE__ */ S(E, { className: "size-4 mr-2" }), A ? "Enregistrement..." : f]
159
+ })] }) : /* @__PURE__ */ C(d, {
160
+ onClick: P,
161
+ variant: "outline",
162
+ size: "sm",
163
+ children: [/* @__PURE__ */ S(T, { className: "size-4 mr-2" }), "Modifier"]
164
+ })
165
+ }) : null
166
+ ] })
167
+ });
168
+ }
169
+ //#endregion
170
+ //#region src/components/core/dialogs/ConfirmationDialog.tsx
171
+ function A({ isLoading: i, error: l, config: u, destructive: f = !1 }) {
172
+ let { t: p } = e();
173
+ return u ? /* @__PURE__ */ S(t, {
174
+ open: u.isOpen,
175
+ onOpenChange: (e) => {
176
+ !e && !i && u.onClose();
177
+ },
178
+ children: /* @__PURE__ */ C(o, { children: [
179
+ /* @__PURE__ */ C(a, { children: [
180
+ /* @__PURE__ */ C(c, {
181
+ className: u.titleClassName,
182
+ children: [u.icon && /* @__PURE__ */ S(u.icon, { className: "size-4" }), p(u.title)]
183
+ }),
184
+ u.headerClassName && /* @__PURE__ */ S(a, { className: u.headerClassName }),
185
+ /* @__PURE__ */ S(s, { children: p(u.description) }),
186
+ u.itemName && /* @__PURE__ */ S(s, { children: /* @__PURE__ */ S("span", {
187
+ className: "font-semibold block my-2",
188
+ children: u.itemName
189
+ }) })
190
+ ] }),
191
+ /* @__PURE__ */ S(v, { error: l instanceof Error ? null : l }),
192
+ /* @__PURE__ */ C(n, { children: [/* @__PURE__ */ S(r, {
193
+ disabled: i,
194
+ children: p("common.buttons.cancel")
195
+ }), /* @__PURE__ */ S(d, {
196
+ onClick: (e) => {
197
+ e.preventDefault(), u.onConfirm();
198
+ },
199
+ disabled: i,
200
+ className: f ? "bg-destructive text-destructive-foreground hover:bg-destructive/90" : "",
201
+ children: i ? p(u.loadingKey || "common.buttons.loading") : u.confirmKey
202
+ })] })
203
+ ] })
204
+ }) : null;
205
+ }
206
+ //#endregion
207
+ export { k as n, O as r, A as t };
@@ -1,18 +1,18 @@
1
1
  import type { FixedColumnOffset } from "../hooks/ui/useFixedColumns";
2
- import type { ColumnDef } from "../types";
2
+ import type { DataTableColumn } from "../types";
3
3
  import type React from "react";
4
4
  export type ColumnAlignment = "left" | "center" | "right";
5
5
  /**
6
6
  * Alignement horizontal d'une colonne, en-tête compris.
7
7
  *
8
- * `align` sur le `ColumnDef` fait autorité. À défaut, l'alignement est déduit de `className` :
8
+ * `align` sur le `DataTableColumn` fait autorité. À défaut, l'alignement est déduit de `className` :
9
9
  * poser `text-right` sur une colonne de nombres est le réflexe naturel, et l'en-tête doit suivre
10
10
  * ses cellules sans qu'on ait à le déclarer deux fois.
11
11
  */
12
- export declare function getColumnAlignment<T>(column: ColumnDef<T>): ColumnAlignment;
12
+ export declare function getColumnAlignment<T>(column: DataTableColumn<T>): ColumnAlignment;
13
13
  /** Classe d'alignement à poser sur la cellule, quand elle ne vient pas déjà de `className`. */
14
14
  export declare function getAlignmentClass(alignment: ColumnAlignment): string;
15
- /** Clés internes des deux colonnes qui n'ont pas de `ColumnDef` : la sélection et les actions. */
15
+ /** Clés internes des deux colonnes qui n'ont pas de `DataTableColumn` : la sélection et les actions. */
16
16
  export declare const SELECTION_COLUMN_KEY = "__selection__";
17
17
  export declare const ACTIONS_COLUMN_KEY = "__actions__";
18
18
  export interface FixedCellProps {
@@ -1 +1 @@
1
- {"version":3,"file":"table.helper.d.ts","sourceRoot":"","sources":["../../src/helpers/table.helper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;AAQ1D;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,eAAe,CAO3E;AAED,+FAA+F;AAC/F,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,eAAe,GAAG,MAAM,CAEpE;AAMD,kGAAkG;AAClG,eAAO,MAAM,oBAAoB,kBAAkB,CAAC;AACpD,eAAO,MAAM,kBAAkB,gBAAgB,CAAC;AAOhD,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC;CAC5B;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,GAAG,SAAS,EAAE,OAAO,EAAE,QAAQ,GAAG,MAAM,GAAG,cAAc,CAqBnH"}
1
+ {"version":3,"file":"table.helper.d.ts","sourceRoot":"","sources":["../../src/helpers/table.helper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;AAQ1D;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,eAAe,CAOjF;AAED,+FAA+F;AAC/F,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,eAAe,GAAG,MAAM,CAEpE;AAMD,wGAAwG;AACxG,eAAO,MAAM,oBAAoB,kBAAkB,CAAC;AACpD,eAAO,MAAM,kBAAkB,gBAAgB,CAAC;AAOhD,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC;CAC5B;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,GAAG,SAAS,EAAE,OAAO,EAAE,QAAQ,GAAG,MAAM,GAAG,cAAc,CAqBnH"}
@@ -1,2 +1,2 @@
1
- import { a as e, c as t, d as n, f as r, i, l as a, n as o, o as s, p as c, r as l, s as u, t as d, u as f } from "../../behavior-DDtrNBAq.js";
1
+ import { a as e, c as t, d as n, f as r, i, l as a, n as o, o as s, p as c, r as l, s as u, t as d, u as f } from "../../behavior-C4WdfbR1.js";
2
2
  export { d as URL_DATE_FORMAT, o as parseDateRange, l as serializeDateRange, n as useConfirmDeleteDialog, r as useConfirmationDialog, f as useDebouncedValue, c as useDialog, a as usePage, t as useSidebar, i as useUrlArrayState, e as useUrlDateRangeState, s as useUrlNumberState, u as useUrlState };
@@ -2,10 +2,10 @@ import { t as e } from "../useScrollFade-D9kqJBDh.js";
2
2
  import { n as t, t as n } from "../useToast-UeDRLovh.js";
3
3
  import { t as r } from "../useMobile-pTQ8lWvt.js";
4
4
  import { t as i } from "../useNotifications-CyhTruIG.js";
5
- import { t as a } from "../useLanguage-B1dusDJk.js";
6
- import { t as o } from "../useDocumentTitle-D7MywIeB.js";
7
- import { a as s, c, d as l, f as u, i as d, l as f, n as p, o as m, p as h, r as g, s as _, t as v, u as y } from "../behavior-DDtrNBAq.js";
8
- import { n as b, t as x } from "../useFixedColumns-DnzqhbfT.js";
9
- import { t as S } from "../ui-Dg7lq9J8.js";
10
- import { t as C } from "../useTheme-D1APOG9I.js";
5
+ import { t as a } from "../useLanguage-DdVIzhME.js";
6
+ import { t as o } from "../useDocumentTitle-C5TsEDqh.js";
7
+ import { a as s, c, d as l, f as u, i as d, l as f, n as p, o as m, p as h, r as g, s as _, t as v, u as y } from "../behavior-C4WdfbR1.js";
8
+ import { n as b, t as x } from "../useFixedColumns-BVZs3wbh.js";
9
+ import { t as S } from "../ui-IEH46J4v.js";
10
+ import { t as C } from "../useTheme-ZzPZl0MM.js";
11
11
  export { v as URL_DATE_FORMAT, p as parseDateRange, g as serializeDateRange, n as toast, l as useConfirmDeleteDialog, u as useConfirmationDialog, b as useDataTable, y as useDebouncedValue, h as useDialog, o as useDocumentTitle, x as useFixedColumns, a as useLanguage, r as useMobile, i as useNotifications, f as usePage, e as useScrollFade, S as useServerTable, c as useSidebar, C as useTheme, t as useToast, d as useUrlArrayState, s as useUrlDateRangeState, m as useUrlNumberState, _ as useUrlState };
@@ -2,9 +2,9 @@ import { t as e } from "../../useScrollFade-D9kqJBDh.js";
2
2
  import { n as t, t as n } from "../../useToast-UeDRLovh.js";
3
3
  import { t as r } from "../../useMobile-pTQ8lWvt.js";
4
4
  import { t as i } from "../../useNotifications-CyhTruIG.js";
5
- import { t as a } from "../../useLanguage-B1dusDJk.js";
6
- import { t as o } from "../../useDocumentTitle-D7MywIeB.js";
7
- import { n as s, t as c } from "../../useFixedColumns-DnzqhbfT.js";
8
- import { t as l } from "../../ui-Dg7lq9J8.js";
9
- import { t as u } from "../../useTheme-D1APOG9I.js";
5
+ import { t as a } from "../../useLanguage-DdVIzhME.js";
6
+ import { t as o } from "../../useDocumentTitle-C5TsEDqh.js";
7
+ import { n as s, t as c } from "../../useFixedColumns-BVZs3wbh.js";
8
+ import { t as l } from "../../ui-IEH46J4v.js";
9
+ import { t as u } from "../../useTheme-ZzPZl0MM.js";
10
10
  export { n as toast, s as useDataTable, o as useDocumentTitle, c as useFixedColumns, a as useLanguage, r as useMobile, i as useNotifications, e as useScrollFade, l as useServerTable, u as useTheme, t as useToast };
@@ -1,4 +1,4 @@
1
1
  import { UseDataTableProps } from "../../types/UseDataTableProps";
2
2
  import { UseDataTableResult } from "../../types/UseDataTableResult";
3
- export declare function useDataTable<T>({ data, columns, getRowId, defaultPageSize, actions, bulkActions, columnVisibility, totalRows, currentPage: controlledCurrentPage, pageSize: controlledPageSize, onPageChange, onPageSizeChange, sortColumn: controlledSortColumn, sortDirection: controlledSortDirection, onSortChange, }: UseDataTableProps<T>): UseDataTableResult<T>;
3
+ export declare function useDataTable<T>({ data, columns, rowKey, pageSizeDefault, actions, bulkActions, columnVisibility, server, }: UseDataTableProps<T>): UseDataTableResult<T>;
4
4
  //# sourceMappingURL=useDataTable.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDataTable.d.ts","sourceRoot":"","sources":["../../../src/hooks/ui/useDataTable.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AA6BhE,wBAAgB,YAAY,CAAC,CAAC,EAAE,EAC9B,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,eAAe,EACf,OAAO,EACP,WAAW,EACX,gBAAuB,EACvB,SAAS,EACT,WAAW,EAAE,qBAAqB,EAClC,QAAQ,EAAE,kBAAkB,EAC5B,YAAY,EACZ,gBAAgB,EAChB,UAAU,EAAE,oBAAoB,EAChC,aAAa,EAAE,uBAAuB,EACtC,YAAY,GACb,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAiR9C"}
1
+ {"version":3,"file":"useDataTable.d.ts","sourceRoot":"","sources":["../../../src/hooks/ui/useDataTable.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AA6BhE,wBAAgB,YAAY,CAAC,CAAC,EAAE,EAC9B,IAAI,EACJ,OAAO,EACP,MAAM,EACN,eAAe,EACf,OAAO,EACP,WAAW,EACX,gBAAuB,EACvB,MAAM,GACP,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,CA2R9C"}
@@ -1,2 +1,2 @@
1
- import { a as e, i as t, n, o as r, r as i, t as a } from "../i18n-DW5zKBEK.js";
1
+ import { a as e, i as t, n, o as r, r as i, t as a } from "../i18n-CevI9Cgk.js";
2
2
  export { t as KROSOFT_NAMESPACE, n as dateFnsLocale, e as krosoftLocales, r as registerKrosoftLocales, i as useDateFnsLocale, a as useKrosoftTranslation };
@@ -42,6 +42,7 @@ export declare const krosoftLocales: {
42
42
  empty: string;
43
43
  markAllAsRead: string;
44
44
  remove: string;
45
+ seeAll: string;
45
46
  };
46
47
  select: {
47
48
  placeholder: string;
@@ -58,6 +59,12 @@ export declare const krosoftLocales: {
58
59
  filters: {
59
60
  advanced: string;
60
61
  more: string;
62
+ active: string;
63
+ apply: string;
64
+ clear: string;
65
+ clearAll: string;
66
+ selectAll: string;
67
+ deselectAll: string;
61
68
  yes: string;
62
69
  no: string;
63
70
  };
@@ -75,6 +82,10 @@ export declare const krosoftLocales: {
75
82
  table: {
76
83
  previousPage: string;
77
84
  nextPage: string;
85
+ selectedCount: string;
86
+ clearSelection: string;
87
+ rangeOfTotal: string;
88
+ perPage: string;
78
89
  };
79
90
  sidebar: {
80
91
  menu: string;
@@ -128,6 +139,7 @@ export declare const krosoftLocales: {
128
139
  empty: string;
129
140
  markAllAsRead: string;
130
141
  remove: string;
142
+ seeAll: string;
131
143
  };
132
144
  select: {
133
145
  placeholder: string;
@@ -144,6 +156,12 @@ export declare const krosoftLocales: {
144
156
  filters: {
145
157
  advanced: string;
146
158
  more: string;
159
+ active: string;
160
+ apply: string;
161
+ clear: string;
162
+ clearAll: string;
163
+ selectAll: string;
164
+ deselectAll: string;
147
165
  yes: string;
148
166
  no: string;
149
167
  };
@@ -161,6 +179,10 @@ export declare const krosoftLocales: {
161
179
  table: {
162
180
  previousPage: string;
163
181
  nextPage: string;
182
+ selectedCount: string;
183
+ clearSelection: string;
184
+ rangeOfTotal: string;
185
+ perPage: string;
164
186
  };
165
187
  sidebar: {
166
188
  menu: string;
@@ -1 +1 @@
1
- {"version":3,"file":"krosoftLocales.d.ts","sourceRoot":"","sources":["../../src/i18n/krosoftLocales.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,YAAY,CAAC;AAE3C,8FAA8F;AAC9F,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAa,CAAC;AAEzC,gGAAgG;AAChG,UAAU,QAAQ;IAChB,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC;IACjH,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC;CAC1D;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,sBAAsB,GAAI,MAAM,QAAQ,EAAE,gBAAuB;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAO,KAAG,IAM5G,CAAC"}
1
+ {"version":3,"file":"krosoftLocales.d.ts","sourceRoot":"","sources":["../../src/i18n/krosoftLocales.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,YAAY,CAAC;AAE3C,8FAA8F;AAC9F,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAa,CAAC;AAEzC,gGAAgG;AAChG,UAAU,QAAQ;IAChB,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC;IACjH,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC;CAC1D;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,sBAAsB,GAAI,MAAM,QAAQ,EAAE,gBAAuB;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAO,KAAG,IAM5G,CAAC"}
@@ -1,12 +1,15 @@
1
1
  type InterpolationValues = Record<string, string | number>;
2
2
  /**
3
- * Traduction des libellés propres au package.
3
+ * Traduction unifiée du package : un seul `t`, que la clé vienne de
4
+ * l'application (`headerKey`, `labelKey`, `emptyKey`…) ou du package lui-même.
4
5
  *
5
- * Deux modes, sans configuration à choisir :
6
- * - l'application a appelé `registerKrosoftLocales` : les libellés suivent sa
7
- * langue et ses éventuelles surcharges ;
8
- * - elle ne l'a pas fait, ou n'utilise pas i18next : on retombe sur le français
9
- * embarqué, ce qui préserve le comportement des applications existantes.
6
+ * Résolution, dans l'ordre :
7
+ * 1. le namespace de l'application une clé qu'elle a enregistrée (ou une
8
+ * surcharge d'un libellé du package) gagne toujours ;
9
+ * 2. le namespace `krosoft`, si l'application a appelé `registerKrosoftLocales` :
10
+ * les libellés du package suivent alors sa langue ;
11
+ * 3. le français embarqué du package ;
12
+ * 4. la clé elle-même — le repli i18next habituel.
10
13
  */
11
14
  export declare const useKrosoftTranslation: () => {
12
15
  t: (key: string, values?: InterpolationValues) => string;
@@ -1 +1 @@
1
- {"version":3,"file":"useKrosoftTranslation.d.ts","sourceRoot":"","sources":["../../src/i18n/useKrosoftTranslation.ts"],"names":[],"mappings":"AAIA,KAAK,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;AAe3D;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB,QAAO;IAAE,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,mBAAmB,KAAK,MAAM,CAAA;CAgBlG,CAAC"}
1
+ {"version":3,"file":"useKrosoftTranslation.d.ts","sourceRoot":"","sources":["../../src/i18n/useKrosoftTranslation.ts"],"names":[],"mappings":"AAIA,KAAK,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;AAe3D;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,qBAAqB,QAAO;IAAE,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,mBAAmB,KAAK,MAAM,CAAA;CAqBlG,CAAC"}
@@ -1,5 +1,5 @@
1
- import { useTranslation as e } from "react-i18next";
2
- import { enGB as t, fr as n } from "date-fns/locale";
1
+ import { enGB as e, fr as t } from "date-fns/locale";
2
+ import { useTranslation as n } from "react-i18next";
3
3
  var r = {
4
4
  actions: {
5
5
  cancel: "Cancel",
@@ -35,7 +35,8 @@ var r = {
35
35
  title: "Notifications",
36
36
  empty: "No notifications.",
37
37
  markAllAsRead: "Mark all as read",
38
- remove: "Delete notification"
38
+ remove: "Delete notification",
39
+ seeAll: "See all"
39
40
  },
40
41
  select: {
41
42
  placeholder: "Select...",
@@ -52,6 +53,12 @@ var r = {
52
53
  filters: {
53
54
  advanced: "Advanced filters",
54
55
  more: "More filters",
56
+ active: "Active filters:",
57
+ apply: "Search",
58
+ clear: "Clear filters",
59
+ clearAll: "Clear all",
60
+ selectAll: "Select all",
61
+ deselectAll: "Deselect all",
55
62
  yes: "Yes",
56
63
  no: "No"
57
64
  },
@@ -68,7 +75,11 @@ var r = {
68
75
  },
69
76
  table: {
70
77
  previousPage: "Previous page",
71
- nextPage: "Next page"
78
+ nextPage: "Next page",
79
+ selectedCount: "{{count}} selected",
80
+ clearSelection: "Clear selection",
81
+ rangeOfTotal: "{{range}} of {{total}}",
82
+ perPage: "{{count}} / page"
72
83
  },
73
84
  sidebar: {
74
85
  menu: "Navigation menu",
@@ -120,7 +131,8 @@ var r = {
120
131
  title: "Notifications",
121
132
  empty: "Aucune notification.",
122
133
  markAllAsRead: "Tout marquer comme lu",
123
- remove: "Supprimer la notification"
134
+ remove: "Supprimer la notification",
135
+ seeAll: "Voir tout"
124
136
  },
125
137
  select: {
126
138
  placeholder: "Sélectionner...",
@@ -137,6 +149,12 @@ var r = {
137
149
  filters: {
138
150
  advanced: "Filtres avancés",
139
151
  more: "Plus de filtres",
152
+ active: "Filtres actifs :",
153
+ apply: "Rechercher",
154
+ clear: "Effacer les filtres",
155
+ clearAll: "Effacer tout",
156
+ selectAll: "Tout sélectionner",
157
+ deselectAll: "Tout désélectionner",
140
158
  yes: "Oui",
141
159
  no: "Non"
142
160
  },
@@ -153,7 +171,11 @@ var r = {
153
171
  },
154
172
  table: {
155
173
  previousPage: "Page précédente",
156
- nextPage: "Page suivante"
174
+ nextPage: "Page suivante",
175
+ selectedCount: "{{count}} sélectionné(s)",
176
+ clearSelection: "Désélectionner",
177
+ rangeOfTotal: "{{range}} sur {{total}}",
178
+ perPage: "{{count}} / page"
157
179
  },
158
180
  sidebar: {
159
181
  menu: "Menu de navigation",
@@ -178,17 +200,17 @@ var r = {
178
200
  e.addResourceBundle?.(n, a, r, !0, t);
179
201
  });
180
202
  }, c = {
181
- fr: n,
182
- en: t
183
- }, l = n, u = (e) => e === void 0 ? l : c[e.split("-")[0]] ?? l, d = () => {
184
- let { i18n: t, ready: n } = e(a, { useSuspense: !1 });
185
- return u(n ? t.resolvedLanguage ?? t.language : void 0);
203
+ fr: t,
204
+ en: e
205
+ }, l = t, u = (e) => e === void 0 ? l : c[e.split("-")[0]] ?? l, d = () => {
206
+ let { i18n: e, ready: t } = n(a, { useSuspense: !1 });
207
+ return u(t ? e.resolvedLanguage ?? e.language : void 0);
186
208
  }, f = (e) => {
187
209
  let t = e.split(".").reduce((e, t) => typeof e == "object" && e ? e[t] : void 0, i);
188
210
  return typeof t == "string" ? t : void 0;
189
211
  }, p = (e, t) => t === void 0 ? e : e.replace(/\{\{(\w+)\}\}/g, (e, n) => n in t ? String(t[n]) : e), m = () => {
190
- let { t, i18n: n, ready: r } = e(a, { useSuspense: !1 });
191
- return { t: (e, i) => r && n.exists(e, { ns: "krosoft" }) ? t(e, i ?? {}) : p(f(e) ?? e, i) };
212
+ let { t: e, i18n: t, ready: r } = n(a, { useSuspense: !1 }), { t: i } = n(void 0, { useSuspense: !1 });
213
+ return { t: (n, a) => r && t.exists(n) ? i(n, a ?? {}) : r && t.exists(n, { ns: "krosoft" }) ? e(n, a ?? {}) : p(f(n) ?? n, a) };
192
214
  };
193
215
  //#endregion
194
216
  export { o as a, a as i, u as n, s as o, d as r, m as t };
@@ -1,7 +1,7 @@
1
1
  import { t as e } from "./tailwind.helper-CJaRYBmL.js";
2
- import "./ImageInput-BLIo5LYH.js";
3
- import "./MultiSelect-B0Ke0cfS.js";
4
- import "./SearchInput-CXZd2rSc.js";
2
+ import "./ImageInput-DvHgBYsy.js";
3
+ import "./MultiSelect-TGu_k3KM.js";
4
+ import "./SearchInput-Csflv8Az.js";
5
5
  import { jsx as t } from "react/jsx-runtime";
6
6
  import { Heart as n, Star as r } from "lucide-react";
7
7
  //#region src/components/core/inputs/RatingInput.tsx
@@ -1,29 +1,29 @@
1
- import { i as e, n as t, r as n, s as r, t as i } from "./tooltip-BmZ9Bfou.js";
2
- import { t as a } from "./i18n-DW5zKBEK.js";
1
+ import { t as e } from "./i18n-CevI9Cgk.js";
2
+ import { i as t, n, r, s as i, t as a } from "./tooltip-BmZ9Bfou.js";
3
3
  import { i as o, l as s, n as c, t as l, u } from "./select-DmLScQKX.js";
4
- import { t as d } from "./useLanguage-B1dusDJk.js";
4
+ import { t as d } from "./useLanguage-DdVIzhME.js";
5
5
  import "react";
6
6
  import { jsx as f, jsxs as p } from "react/jsx-runtime";
7
7
  import { LanguagesIcon as m } from "lucide-react";
8
8
  //#region src/components/core/language/LanguageSelector.tsx
9
9
  function h({ languageOptions: h, variant: g = "select", id: _, className: v }) {
10
- let { t: y } = a(), { currentLanguageOption: b, nextLanguageOption: x, changeLanguage: S, cycleLanguage: C } = d(h);
10
+ let { t: y } = e(), { currentLanguageOption: b, nextLanguageOption: x, changeLanguage: S, cycleLanguage: C } = d(h);
11
11
  if (g === "mini") {
12
- let a = b?.icon ?? m;
13
- return /* @__PURE__ */ f(n, { children: /* @__PURE__ */ p(i, { children: [/* @__PURE__ */ f(e, {
12
+ let e = b?.icon ?? m;
13
+ return /* @__PURE__ */ f(r, { children: /* @__PURE__ */ p(a, { children: [/* @__PURE__ */ f(t, {
14
14
  asChild: !0,
15
- children: /* @__PURE__ */ p(r, {
15
+ children: /* @__PURE__ */ p(i, {
16
16
  id: _,
17
17
  variant: "ghost",
18
18
  size: "icon",
19
19
  onClick: C,
20
20
  className: v,
21
- children: [/* @__PURE__ */ f(a, { className: "size-4" }), /* @__PURE__ */ f("span", {
21
+ children: [/* @__PURE__ */ f(e, { className: "size-4" }), /* @__PURE__ */ f("span", {
22
22
  className: "sr-only",
23
23
  children: y("language.current", { language: b?.label ?? "" })
24
24
  })]
25
25
  })
26
- }), /* @__PURE__ */ f(t, {
26
+ }), /* @__PURE__ */ f(n, {
27
27
  side: "bottom",
28
28
  align: "center",
29
29
  children: y("language.switchTo", { language: x?.label ?? "" })