@krosoft/react 0.0.297 → 0.0.298

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 (67) hide show
  1. package/README.md +16 -0
  2. package/dist/{AppActions-BMh044Sc.js → AppActions-DCFvzqFN.js} +43 -19
  3. package/dist/{AppSubTitle-BfZTloah.js → AppSubTitle-Cmu-4o-a.js} +2 -2
  4. package/dist/{AppTitle-BZ5jQWbs.js → AppTitle-CBY03gZy.js} +1 -1
  5. package/dist/{ErrorAlert-0L-Dwqu8.js → ErrorAlert-CpxyT2oM.js} +1 -1
  6. package/dist/{GenericForm-BV8n9y1n.js → GenericForm-fiF_fEUb.js} +8 -8
  7. package/dist/{ImageInput-BdOxyamZ.js → ImageInput-BGe_bc79.js} +3 -3
  8. package/dist/MultiSelect-xNfIdYS9.js +148 -0
  9. package/dist/{SearchInput-81oecSco.js → SearchInput-pJFU2KVz.js} +119 -119
  10. package/dist/{behavior-CFsFoY50.js → behavior-B8iZAgve.js} +3 -4
  11. package/dist/{cards-BFa9EQc6.js → cards-hgOitfgK.js} +2 -2
  12. package/dist/{charts-C7MWuqi9.js → charts-CS1Ao2Go.js} +1 -1
  13. package/dist/components/core/cards/index.js +1 -1
  14. package/dist/components/core/charts/index.js +1 -1
  15. package/dist/components/core/dialogs/ConfirmationDialog.d.ts.map +1 -1
  16. package/dist/components/core/dialogs/index.js +3 -3
  17. package/dist/components/core/filters/index.js +6 -6
  18. package/dist/components/core/forms/index.js +1 -1
  19. package/dist/components/core/index.js +18 -18
  20. package/dist/components/core/inputs/MultiSelect.d.ts +3 -1
  21. package/dist/components/core/inputs/MultiSelect.d.ts.map +1 -1
  22. package/dist/components/core/inputs/SingleSelect.d.ts +7 -1
  23. package/dist/components/core/inputs/SingleSelect.d.ts.map +1 -1
  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/AppActions.d.ts.map +1 -1
  27. package/dist/components/core/layouts/index.js +9 -9
  28. package/dist/components/core/navbar/index.js +1 -1
  29. package/dist/components/core/states/index.js +2 -2
  30. package/dist/components/core/table/index.js +4 -4
  31. package/dist/components/core/tabs/index.js +6 -6
  32. package/dist/components/core/theme/index.js +1 -1
  33. package/dist/components/index.js +26 -26
  34. package/dist/components/ui/control.d.ts +13 -0
  35. package/dist/components/ui/control.d.ts.map +1 -1
  36. package/dist/components/ui/index.d.ts +1 -1
  37. package/dist/components/ui/index.d.ts.map +1 -1
  38. package/dist/components/ui/index.js +6 -6
  39. package/dist/{dialogs-D2NqMYEb.js → dialogs-CU6kEVHZ.js} +6 -7
  40. package/dist/hooks/behavior/index.js +1 -1
  41. package/dist/hooks/behavior/useConfirmDeleteDialog.d.ts.map +1 -1
  42. package/dist/hooks/index.js +5 -5
  43. package/dist/hooks/ui/index.js +4 -4
  44. package/dist/i18n/index.js +1 -1
  45. package/dist/i18n/krosoftLocales.d.ts +2 -0
  46. package/dist/i18n/krosoftLocales.d.ts.map +1 -1
  47. package/dist/{i18n-d2p0RJo9.js → i18n-TbpdvUJO.js} +2 -0
  48. package/dist/{inputs-V2h_AcMW.js → inputs-Cb0xGJ-E.js} +3 -3
  49. package/dist/{language-9nbLYpqG.js → language-DcRIOaqX.js} +7 -7
  50. package/dist/{navbar-BLdw6QDi.js → navbar-CRdXfxxM.js} +37 -37
  51. package/dist/pwa/index.js +1 -1
  52. package/dist/{select-CfhuieLs.js → select-KWMg2_7Z.js} +1 -1
  53. package/dist/{sheet-DRzg-JWH.js → sheet-Dyu9stsE.js} +2 -2
  54. package/dist/{states-C4MdmAbW.js → states-__YoT7H3.js} +2 -2
  55. package/dist/{theme-2eQs7CHF.js → theme-CHrjFJTd.js} +7 -7
  56. package/dist/{tooltip-Bu3wNhtW.js → tooltip-_geGvbS7.js} +3 -3
  57. package/dist/types/AppAction.d.ts +28 -10
  58. package/dist/types/AppAction.d.ts.map +1 -1
  59. package/dist/types/ConfirmDialogConfig.d.ts +0 -1
  60. package/dist/types/ConfirmDialogConfig.d.ts.map +1 -1
  61. package/dist/{ui-d1qh5cWB.js → ui-BAFhAfBh.js} +3 -3
  62. package/dist/{ui-DVtB9U8H.js → ui-Ce0ULzME.js} +21 -21
  63. package/dist/{useDocumentTitle-FqaDq5xD.js → useDocumentTitle-DN2FTz2t.js} +1 -1
  64. package/dist/{useLanguage-BVUtoDnh.js → useLanguage-Bo6n3OCS.js} +1 -1
  65. package/dist/{useTheme-CNx4iolb.js → useTheme-DU7ABdZ1.js} +1 -1
  66. package/package.json +1 -1
  67. package/dist/MultiSelect-Dmt1iWgB.js +0 -148
@@ -1,15 +1,15 @@
1
1
  import { t as e } from "./tailwind.helper-CJaRYBmL.js";
2
- import { t } from "./i18n-d2p0RJo9.js";
3
- import { i as n, n as r, r as i, s as a, t as o } from "./tooltip-Bu3wNhtW.js";
4
- import { C as s, S as c, b as l, d as u, g as d, h as f, i as p, l as m, m as h, p as g, r as _, t as v, v as y, x as b, y as x } from "./sheet-DRzg-JWH.js";
2
+ import { t } from "./i18n-TbpdvUJO.js";
3
+ import { c as n, i as r, n as i, r as a, t as o } from "./tooltip-_geGvbS7.js";
4
+ import { C as s, S as c, b as l, d as u, g as d, h as f, i as p, l as m, m as h, p as g, r as _, t as v, v as y, x as b, y as x } from "./sheet-Dyu9stsE.js";
5
5
  import { t as S } from "./skeleton-D6Ga4BLw.js";
6
- import { c as C } from "./behavior-CFsFoY50.js";
6
+ import { c as C } from "./behavior-B8iZAgve.js";
7
7
  import "./hooks/index.js";
8
8
  import * as w from "react";
9
9
  import { Fragment as T, jsx as E, jsxs as D } from "react/jsx-runtime";
10
10
  import { BellIcon as O, ChevronDownIcon as k, LoaderCircleIcon as A, MenuIcon as j, SearchIcon as M, Trash2Icon as N } from "lucide-react";
11
11
  //#region src/components/core/navbar/GlobalSearch.tsx
12
- var P = ({ groups: n, search: r, onSearch: i, onSelect: o, loading: u = !1, open: d, onOpenChange: f, trigger: p = !0, triggerLabel: m, shortcut: h = !0, shortcutLabel: g = "Ctrl+K", placeholder: _, emptyLabel: v, loadingLabel: S, title: C, description: O, hint: k, className: j }) => {
12
+ var P = ({ groups: r, search: i, onSearch: a, onSelect: o, loading: u = !1, open: d, onOpenChange: f, trigger: p = !0, triggerLabel: m, shortcut: h = !0, shortcutLabel: g = "Ctrl+K", placeholder: _, emptyLabel: v, loadingLabel: S, title: C, description: O, hint: k, className: j }) => {
13
13
  let { t: N } = t(), [P, F] = w.useState(!1), I = d !== void 0, L = I ? d : P, R = w.useCallback((e) => {
14
14
  I || F(e), f?.(e);
15
15
  }, [I, f]);
@@ -27,9 +27,9 @@ var P = ({ groups: n, search: r, onSearch: i, onSelect: o, loading: u = !1, open
27
27
  R
28
28
  ]);
29
29
  let z = (e) => {
30
- R(!1), i(""), o(e);
31
- }, B = n.some((e) => e.items.length > 0);
32
- return /* @__PURE__ */ D(T, { children: [p && /* @__PURE__ */ E(a, {
30
+ R(!1), a(""), o(e);
31
+ }, B = r.some((e) => e.items.length > 0);
32
+ return /* @__PURE__ */ D(T, { children: [p && /* @__PURE__ */ E(n, {
33
33
  variant: "ghost",
34
34
  size: "icon",
35
35
  "aria-label": m ?? N("search.trigger"),
@@ -48,8 +48,8 @@ var P = ({ groups: n, search: r, onSearch: i, onSelect: o, loading: u = !1, open
48
48
  className: j,
49
49
  children: [
50
50
  /* @__PURE__ */ E(b, {
51
- value: r,
52
- onValueChange: i,
51
+ value: i,
52
+ onValueChange: a,
53
53
  placeholder: _ ?? N("search.placeholder")
54
54
  }),
55
55
  /* @__PURE__ */ D(s, { children: [
@@ -58,7 +58,7 @@ var P = ({ groups: n, search: r, onSearch: i, onSelect: o, loading: u = !1, open
58
58
  children: [/* @__PURE__ */ E(A, { className: "size-4 animate-spin" }), S ?? N("search.loading")]
59
59
  }),
60
60
  !B && !u && /* @__PURE__ */ E(x, { children: v ?? N("states.noResultDot") }),
61
- n.map((t) => t.items.length === 0 ? null : /* @__PURE__ */ E(l, {
61
+ r.map((t) => t.items.length === 0 ? null : /* @__PURE__ */ E(l, {
62
62
  heading: t.heading,
63
63
  children: t.items.map((t) => {
64
64
  let n = t.icon;
@@ -91,18 +91,18 @@ var P = ({ groups: n, search: r, onSearch: i, onSelect: o, loading: u = !1, open
91
91
  })
92
92
  ]
93
93
  })] });
94
- }, F = 9, I = ({ items: n, onSelect: r, onMarkAllAsRead: i, onRemove: o, onSeeAll: s, isLoading: c = !1, unreadCount: l, maxBadgeCount: d = F, open: p, onOpenChange: m, triggerLabel: _, title: v, emptyLabel: y, loadingLabel: b, markAllAsReadLabel: x, removeLabel: S, seeAllLabel: C, className: T, contentClassName: k, badgeClassName: A, itemClassName: j, unreadItemClassName: M }) => {
94
+ }, F = 9, I = ({ items: r, onSelect: i, onMarkAllAsRead: a, onRemove: o, onSeeAll: s, isLoading: c = !1, unreadCount: l, maxBadgeCount: d = F, open: p, onOpenChange: m, triggerLabel: _, title: v, emptyLabel: y, loadingLabel: b, markAllAsReadLabel: x, removeLabel: S, seeAllLabel: C, className: T, contentClassName: k, badgeClassName: A, itemClassName: j, unreadItemClassName: M }) => {
95
95
  let { t: P } = t(), [I, L] = w.useState(!1), R = p !== void 0, z = R ? p : I, B = (e) => {
96
96
  R || L(e), m?.(e);
97
- }, V = l ?? n.filter((e) => !e.read).length, H = _ ?? P("notifications.trigger"), U = (e) => {
98
- B(!1), r?.(e);
97
+ }, V = l ?? r.filter((e) => !e.read).length, H = _ ?? P("notifications.trigger"), U = (e) => {
98
+ B(!1), i?.(e);
99
99
  };
100
100
  return /* @__PURE__ */ D(g, {
101
101
  open: z,
102
102
  onOpenChange: B,
103
103
  children: [/* @__PURE__ */ E(f, {
104
104
  asChild: !0,
105
- children: /* @__PURE__ */ D(a, {
105
+ children: /* @__PURE__ */ D(n, {
106
106
  type: "button",
107
107
  variant: "ghost",
108
108
  size: "icon",
@@ -123,12 +123,12 @@ var P = ({ groups: n, search: r, onSearch: i, onSelect: o, loading: u = !1, open
123
123
  children: [/* @__PURE__ */ E("span", {
124
124
  className: "text-sm font-medium",
125
125
  children: v ?? P("notifications.title")
126
- }), i && V > 0 && /* @__PURE__ */ E(a, {
126
+ }), a && V > 0 && /* @__PURE__ */ E(n, {
127
127
  type: "button",
128
128
  variant: "ghost",
129
129
  size: "sm",
130
130
  className: "h-7 text-xs",
131
- onClick: i,
131
+ onClick: a,
132
132
  children: x ?? P("notifications.markAllAsRead")
133
133
  })]
134
134
  }),
@@ -136,16 +136,16 @@ var P = ({ groups: n, search: r, onSearch: i, onSelect: o, loading: u = !1, open
136
136
  className: "px-3 py-6 text-center text-sm text-muted-foreground",
137
137
  children: b ?? P("states.loading")
138
138
  }),
139
- !c && n.length === 0 && /* @__PURE__ */ E("p", {
139
+ !c && r.length === 0 && /* @__PURE__ */ E("p", {
140
140
  className: "px-3 py-6 text-center text-sm text-muted-foreground",
141
141
  children: y ?? P("notifications.empty")
142
142
  }),
143
- !c && n.length > 0 && /* @__PURE__ */ E(u, {
143
+ !c && r.length > 0 && /* @__PURE__ */ E(u, {
144
144
  viewportClassName: "max-h-96",
145
145
  children: /* @__PURE__ */ E("ul", {
146
146
  className: "divide-y",
147
- children: n.map((t) => {
148
- let n = t.icon;
147
+ children: r.map((t) => {
148
+ let r = t.icon;
149
149
  return /* @__PURE__ */ D("li", {
150
150
  className: e("flex items-start gap-2 px-3 py-2", !t.read && (M ?? "bg-accent/40"), j),
151
151
  children: [/* @__PURE__ */ D("button", {
@@ -154,9 +154,9 @@ var P = ({ groups: n, search: r, onSearch: i, onSelect: o, loading: u = !1, open
154
154
  onClick: () => {
155
155
  U(t);
156
156
  },
157
- children: [n && /* @__PURE__ */ E("span", {
157
+ children: [r && /* @__PURE__ */ E("span", {
158
158
  className: e("mt-0.5 flex size-6 shrink-0 items-center justify-center rounded-md bg-muted text-muted-foreground", t.iconClassName),
159
- children: /* @__PURE__ */ E(n, { className: "size-3.5" })
159
+ children: /* @__PURE__ */ E(r, { className: "size-3.5" })
160
160
  }), /* @__PURE__ */ D("span", {
161
161
  className: "min-w-0 flex-1 space-y-0.5",
162
162
  children: [
@@ -180,7 +180,7 @@ var P = ({ groups: n, search: r, onSearch: i, onSelect: o, loading: u = !1, open
180
180
  })
181
181
  ]
182
182
  })]
183
- }), o && /* @__PURE__ */ E(a, {
183
+ }), o && /* @__PURE__ */ E(n, {
184
184
  type: "button",
185
185
  variant: "ghost",
186
186
  size: "icon",
@@ -198,7 +198,7 @@ var P = ({ groups: n, search: r, onSearch: i, onSelect: o, loading: u = !1, open
198
198
  }),
199
199
  s && /* @__PURE__ */ E("div", {
200
200
  className: "border-t p-1",
201
- children: /* @__PURE__ */ E(a, {
201
+ children: /* @__PURE__ */ E(n, {
202
202
  type: "button",
203
203
  variant: "ghost",
204
204
  size: "sm",
@@ -212,7 +212,7 @@ var P = ({ groups: n, search: r, onSearch: i, onSelect: o, loading: u = !1, open
212
212
  ]
213
213
  })]
214
214
  });
215
- }, L = (e, t, n) => t === e ? !0 : e === "/" || !t.startsWith(`${e}/`) ? !1 : !n.some((n) => n !== e && n.startsWith(`${e}/`) && (t === n || t.startsWith(`${n}/`))), R = ({ path: t, icon: i, label: a, badge: s, subItems: c, currentPath: l, collapsed: u, dense: d = !1, onItemClick: f }) => {
215
+ }, L = (e, t, n) => t === e ? !0 : e === "/" || !t.startsWith(`${e}/`) ? !1 : !n.some((n) => n !== e && n.startsWith(`${e}/`) && (t === n || t.startsWith(`${n}/`))), R = ({ path: t, icon: n, label: a, badge: s, subItems: c, currentPath: l, collapsed: u, dense: d = !1, onItemClick: f }) => {
216
216
  let p = c?.map((e) => e.path) ?? [], [m, h] = w.useState(c?.some((e) => L(e.path, l, p)) ?? !1), g = t ? l === t || t !== "/" && l.startsWith(`${t}/`) : !1, _ = c?.some((e) => L(e.path, l, p)), v = g || !u && _, y = /* @__PURE__ */ D("a", {
217
217
  href: t ?? "#",
218
218
  onClick: (e) => {
@@ -221,7 +221,7 @@ var P = ({ groups: n, search: r, onSearch: i, onSelect: o, loading: u = !1, open
221
221
  className: e("flex items-center cursor-pointer transition-all duration-200 group rounded-control", d ? "gap-2.5 mb-0.5" : "gap-3 mb-1", u ? d ? "justify-center p-2 h-9 w-9 mx-auto" : "justify-center p-3 h-12 w-12 mx-auto" : d ? "px-3 py-1.5 h-9" : "px-4 py-3 h-12", v ? "bg-sidebar-primary/10 text-sidebar-primary font-semibold border border-sidebar-primary/40 [&_svg]:text-sidebar-primary" : "border border-transparent hover:bg-sidebar-accent text-sidebar-foreground hover:text-sidebar-accent-foreground"),
222
222
  children: [/* @__PURE__ */ E("div", {
223
223
  className: e("flex-shrink-0 transition-transform group-hover:scale-110", u ? "flex items-center justify-center" : ""),
224
- children: /* @__PURE__ */ E(i, { className: e("size-4", v && "text-sidebar-primary") })
224
+ children: /* @__PURE__ */ E(n, { className: e("size-4", v && "text-sidebar-primary") })
225
225
  }), !u && /* @__PURE__ */ D(T, { children: [
226
226
  /* @__PURE__ */ E("span", {
227
227
  className: e("flex-grow transition-opacity duration-150", v ? "font-semibold" : "font-medium", d ? "text-sm" : ""),
@@ -234,10 +234,10 @@ var P = ({ groups: n, search: r, onSearch: i, onSelect: o, loading: u = !1, open
234
234
  c && c.length > 0 && /* @__PURE__ */ E(k, { className: e("size-4 transition-transform duration-200", m ? "rotate-180" : "") })
235
235
  ] })]
236
236
  });
237
- return /* @__PURE__ */ D(T, { children: [u ? /* @__PURE__ */ D(o, { children: [/* @__PURE__ */ E(n, {
237
+ return /* @__PURE__ */ D(T, { children: [u ? /* @__PURE__ */ D(o, { children: [/* @__PURE__ */ E(r, {
238
238
  asChild: !0,
239
239
  children: y
240
- }), /* @__PURE__ */ E(r, {
240
+ }), /* @__PURE__ */ E(i, {
241
241
  side: "right",
242
242
  sideOffset: 6,
243
243
  className: "rounded-surface z-[99999] flex gap-2 bg-sidebar text-sidebar-foreground border border-sidebar-border py-2 text-sm shadow-lg",
@@ -275,9 +275,9 @@ var P = ({ groups: n, search: r, onSearch: i, onSelect: o, loading: u = !1, open
275
275
  }, n);
276
276
  })
277
277
  })] });
278
- }, z = ({ groups: n, currentPath: r, onItemClick: a, slots: o, search: s, dense: c = !1, loading: l = !1, showCloseButton: u = !0 }) => {
278
+ }, z = ({ groups: n, currentPath: r, onItemClick: i, slots: o, search: s, dense: c = !1, loading: l = !1, showCloseButton: u = !0 }) => {
279
279
  let { t: f } = t(), { enabled: h = !1, placeholder: g } = s ?? {}, { header: y, footer: b } = o ?? {}, { collapsed: x, isMobile: T, setCollapsed: O } = C(), [k, A] = w.useState(""), j = !T && x, N = !x, P = (e) => {
280
- a(e), T && O(!0);
280
+ i(e), T && O(!0);
281
281
  }, F = k.trim().toLowerCase(), I = F === "" ? n : n.map((e) => ({
282
282
  ...e,
283
283
  items: e.items.filter((e) => e.label.toLowerCase().includes(F) || (e.subItems?.some((e) => e.label.toLowerCase().includes(F)) ?? !1))
@@ -348,7 +348,7 @@ var P = ({ groups: n, search: r, onSearch: i, onSelect: o, loading: u = !1, open
348
348
  L
349
349
  ]
350
350
  })
351
- }) : /* @__PURE__ */ E(i, {
351
+ }) : /* @__PURE__ */ E(a, {
352
352
  delayDuration: 0,
353
353
  children: /* @__PURE__ */ E("aside", {
354
354
  className: e("flex flex-col bg-sidebar h-screen border-r border-sidebar-border transition-all duration-300", j ? "w-[--navbar-width-icon]" : "w-[--navbar-width]", "flex"),
@@ -377,21 +377,21 @@ var P = ({ groups: n, search: r, onSearch: i, onSelect: o, loading: u = !1, open
377
377
  })]
378
378
  })]
379
379
  });
380
- }, V = ({ collapsed: t, isMobile: n, onToggleSidebar: r, actionsNode: i, userMenuNode: o }) => /* @__PURE__ */ D("header", {
381
- className: e("fixed top-0 right-0 z-[60] h-16 md:h-20 bg-topbar text-topbar-foreground flex items-center justify-between px-4 transition-all duration-300", n && "left-0", !n && t && "left-[5rem]", !n && !t && "left-[16rem]"),
380
+ }, V = ({ collapsed: t, isMobile: r, onToggleSidebar: i, actionsNode: a, userMenuNode: o }) => /* @__PURE__ */ D("header", {
381
+ className: e("fixed top-0 right-0 z-[60] h-16 md:h-20 bg-topbar text-topbar-foreground flex items-center justify-between px-4 transition-all duration-300", r && "left-0", !r && t && "left-[5rem]", !r && !t && "left-[16rem]"),
382
382
  tabIndex: -1,
383
383
  children: [/* @__PURE__ */ E("div", {
384
384
  className: "flex items-center min-w-0 flex-1",
385
- children: /* @__PURE__ */ E(a, {
385
+ children: /* @__PURE__ */ E(n, {
386
386
  variant: "ghost",
387
387
  size: "icon",
388
- onClick: r,
388
+ onClick: i,
389
389
  className: "text-topbar-foreground hover:bg-topbar-accent hover:text-topbar-accent-foreground",
390
390
  children: /* @__PURE__ */ E(j, { className: "size-4" })
391
391
  })
392
392
  }), /* @__PURE__ */ D("div", {
393
393
  className: "flex items-center gap-2 md:gap-4 flex-shrink-0",
394
- children: [i, o]
394
+ children: [a, o]
395
395
  })]
396
396
  });
397
397
  //#endregion
package/dist/pwa/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { t as e } from "../i18n-d2p0RJo9.js";
1
+ import { t as e } from "../i18n-TbpdvUJO.js";
2
2
  import { useEffect as t } from "react";
3
3
  import { toast as n } from "sonner";
4
4
  import { useRegisterSW as r } from "virtual:pwa-register/react";
@@ -1,5 +1,5 @@
1
1
  import { t as e } from "./tailwind.helper-CJaRYBmL.js";
2
- import { o as t } from "./tooltip-Bu3wNhtW.js";
2
+ import { s as t } from "./tooltip-_geGvbS7.js";
3
3
  import * as n from "react";
4
4
  import { jsx as r, jsxs as i } from "react/jsx-runtime";
5
5
  import { CheckIcon as a, ChevronDownIcon as o, ChevronUpIcon as s, XIcon as c } from "lucide-react";
@@ -1,7 +1,7 @@
1
1
  import { t as e } from "./tailwind.helper-CJaRYBmL.js";
2
2
  import "./helpers/index.js";
3
- import { t } from "./i18n-d2p0RJo9.js";
4
- import { a as n } from "./tooltip-Bu3wNhtW.js";
3
+ import { t } from "./i18n-TbpdvUJO.js";
4
+ import { a as n } from "./tooltip-_geGvbS7.js";
5
5
  import * as r from "react";
6
6
  import { jsx as i, jsxs as a } from "react/jsx-runtime";
7
7
  import { SearchIcon as o, X as s } from "lucide-react";
@@ -1,5 +1,5 @@
1
- import { t as e } from "./i18n-d2p0RJo9.js";
2
- import "./ErrorAlert-0L-Dwqu8.js";
1
+ import { t as e } from "./i18n-TbpdvUJO.js";
2
+ import "./ErrorAlert-CpxyT2oM.js";
3
3
  import { jsx as t, jsxs as n } from "react/jsx-runtime";
4
4
  import { Loader2Icon as r } from "lucide-react";
5
5
  //#region src/components/core/states/ErrorState.tsx
@@ -1,7 +1,7 @@
1
- import { t as e } from "./i18n-d2p0RJo9.js";
2
- import { i as t, n, r, s as i, t as a } from "./tooltip-Bu3wNhtW.js";
3
- import { i as o, l as s, n as c, t as l, u } from "./select-CfhuieLs.js";
4
- import { t as d } from "./useTheme-CNx4iolb.js";
1
+ import { t as e } from "./i18n-TbpdvUJO.js";
2
+ import { c as t, i as n, n as r, r as i, t as a } from "./tooltip-_geGvbS7.js";
3
+ import { i as o, l as s, n as c, t as l, u } from "./select-KWMg2_7Z.js";
4
+ import { t as d } from "./useTheme-DU7ABdZ1.js";
5
5
  import "react";
6
6
  import { jsx as f, jsxs as p } from "react/jsx-runtime";
7
7
  //#region src/components/core/theme/ThemeSelector.tsx
@@ -9,9 +9,9 @@ function m({ themeOptions: m, variant: h = "select", id: g, className: _ }) {
9
9
  let { t: v } = e(), { theme: y, handleThemeChange: b, currentThemeOption: x, nextThemeOption: S, cycleTheme: C } = d(m);
10
10
  if (h === "mini") {
11
11
  let e = x?.icon;
12
- return /* @__PURE__ */ f(r, { children: /* @__PURE__ */ p(a, { children: [/* @__PURE__ */ f(t, {
12
+ return /* @__PURE__ */ f(i, { children: /* @__PURE__ */ p(a, { children: [/* @__PURE__ */ f(n, {
13
13
  asChild: !0,
14
- children: /* @__PURE__ */ p(i, {
14
+ children: /* @__PURE__ */ p(t, {
15
15
  id: g,
16
16
  variant: "ghost",
17
17
  size: "icon",
@@ -22,7 +22,7 @@ function m({ themeOptions: m, variant: h = "select", id: g, className: _ }) {
22
22
  children: ["Thème actuel : ", x?.label]
23
23
  })]
24
24
  })
25
- }), /* @__PURE__ */ p(n, {
25
+ }), /* @__PURE__ */ p(r, {
26
26
  side: "bottom",
27
27
  align: "center",
28
28
  children: ["Passer en ", S?.label]
@@ -39,12 +39,12 @@ var o = r("inline-flex items-center justify-center gap-2 whitespace-nowrap round
39
39
  s.displayName = "Button";
40
40
  //#endregion
41
41
  //#region src/components/ui/control.ts
42
- var c = "h-10 rounded-control border border-input bg-background px-3 py-2 text-sm ring-offset-background disabled:cursor-not-allowed disabled:opacity-50", l = e(c, "flex items-center justify-between outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 [&>span]:line-clamp-1"), u = a.Provider, d = a.Root, f = a.Trigger, p = t.forwardRef(({ className: t, sideOffset: r = 4, ...i }, o) => /* @__PURE__ */ n(a.Content, {
42
+ var c = "h-10 rounded-control border border-input bg-background px-3 py-2 text-sm ring-offset-background disabled:cursor-not-allowed disabled:opacity-50", l = e(c, "flex items-center justify-between outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 [&>span]:line-clamp-1"), u = "w-full md:w-[200px]", d = a.Provider, f = a.Root, p = a.Trigger, m = t.forwardRef(({ className: t, sideOffset: r = 4, ...i }, o) => /* @__PURE__ */ n(a.Content, {
43
43
  ref: o,
44
44
  sideOffset: r,
45
45
  className: e("z-50 overflow-hidden rounded-surface border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2", t),
46
46
  ...i
47
47
  }));
48
- p.displayName = a.Content.displayName;
48
+ m.displayName = a.Content.displayName;
49
49
  //#endregion
50
- export { c as a, o as c, f as i, p as n, l as o, u as r, s, d as t };
50
+ export { c as a, s as c, p as i, o as l, m as n, u as o, d as r, l as s, f as t };
@@ -1,19 +1,37 @@
1
1
  import type { ButtonVariantType } from "./ButtonVariantType";
2
- export type AppAction = {
2
+ /** Champs communs à toutes les formes d'action, quelle que soit la façon dont elles sont déclenchées. */
3
+ interface AppActionBase {
3
4
  icon?: React.ElementType;
4
- labelKey: string;
5
5
  variant?: ButtonVariantType;
6
- onClick: () => void | Promise<void>;
7
6
  disabled?: boolean;
8
- children?: never;
9
7
  className?: string;
10
- } | {
11
- icon?: React.ElementType;
8
+ }
9
+ export type AppAction = (AppActionBase & {
10
+ labelKey: string;
11
+ onClick: () => void | Promise<void>;
12
+ type?: never;
13
+ form?: never;
14
+ children?: never;
15
+ })
16
+ /**
17
+ * Action qui soumet un formulaire rendu ailleurs dans la page (`GenericForm` avec `id`).
18
+ * Le bouton porte `type="submit" form="<id>"` : la soumission passe par le formulaire
19
+ * lui-même — validation comprise — plutôt que par une fonction de submit remontée.
20
+ * Repliée sur `requestSubmit()` dans le menu mobile, où l'action n'est pas un `<button>`.
21
+ */
22
+ | (AppActionBase & {
23
+ labelKey: string;
24
+ onClick?: never;
25
+ type: "submit";
26
+ /** `id` du `<form>` visé. Requis : le menu mobile n'a que lui pour retrouver le formulaire. */
27
+ form: string;
28
+ children?: never;
29
+ }) | (AppActionBase & {
12
30
  labelKey?: string;
13
- variant?: ButtonVariantType;
14
31
  onClick?: never;
15
- disabled?: boolean;
32
+ type?: never;
33
+ form?: never;
16
34
  children: AppAction[];
17
- className?: string;
18
- };
35
+ });
36
+ export {};
19
37
  //# sourceMappingURL=AppAction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AppAction.d.ts","sourceRoot":"","sources":["../../src/types/AppAction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,MAAM,MAAM,SAAS,GACjB;IACE,IAAI,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,OAAO,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GACD;IACE,IAAI,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,OAAO,CAAC,EAAE,KAAK,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,SAAS,EAAE,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC"}
1
+ {"version":3,"file":"AppAction.d.ts","sourceRoot":"","sources":["../../src/types/AppAction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,yGAAyG;AACzG,UAAU,aAAa;IACrB,IAAI,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC;IACzB,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,SAAS,GACjB,CAAC,aAAa,GAAG;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,QAAQ,CAAC,EAAE,KAAK,CAAC;CAClB,CAAC;AACJ;;;;;GAKG;GACD,CAAC,aAAa,GAAG;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,KAAK,CAAC;IAChB,IAAI,EAAE,QAAQ,CAAC;IACf,+FAA+F;IAC/F,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,KAAK,CAAC;CAClB,CAAC,GACF,CAAC,aAAa,GAAG;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,KAAK,CAAC;IAChB,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE,SAAS,EAAE,CAAC;CACvB,CAAC,CAAC"}
@@ -8,7 +8,6 @@ export interface ConfirmDialogConfig {
8
8
  loadingKey?: string;
9
9
  icon?: React.ElementType;
10
10
  titleClassName?: string;
11
- headerClassName?: string;
12
11
  openDialog: (id: string, name: string) => void;
13
12
  onClose: () => void;
14
13
  onConfirm: () => Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"ConfirmDialogConfig.d.ts","sourceRoot":"","sources":["../../src/types/ConfirmDialogConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAChC"}
1
+ {"version":3,"file":"ConfirmDialogConfig.d.ts","sourceRoot":"","sources":["../../src/types/ConfirmDialogConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAChC"}
@@ -2,11 +2,11 @@ import "./useScrollFade-D9kqJBDh.js";
2
2
  import "./useToast-UeDRLovh.js";
3
3
  import "./useMobile-pTQ8lWvt.js";
4
4
  import "./useNotifications-CyhTruIG.js";
5
- import "./useLanguage-BVUtoDnh.js";
6
- import "./useDocumentTitle-FqaDq5xD.js";
5
+ import "./useLanguage-Bo6n3OCS.js";
6
+ import "./useDocumentTitle-DN2FTz2t.js";
7
7
  import "./useFixedColumns-DPVEdA6b.js";
8
8
  import "./constants/index.js";
9
- import "./useTheme-CNx4iolb.js";
9
+ import "./useTheme-DU7ABdZ1.js";
10
10
  import { useCallback as e, useEffect as t, useState as n } from "react";
11
11
  //#region src/hooks/ui/useServerTable.ts
12
12
  function r(r, i = "nom", a = {}) {
@@ -2,9 +2,9 @@ import { t as e } from "./tailwind.helper-CJaRYBmL.js";
2
2
  import "./helpers/index.js";
3
3
  import "./chart-Dq3AIrue.js";
4
4
  import "./alert-REQGK9bR.js";
5
- import { c as t, s as n } from "./tooltip-Bu3wNhtW.js";
6
- import "./sheet-DRzg-JWH.js";
7
- import "./select-CfhuieLs.js";
5
+ import { c as t, l as n } from "./tooltip-_geGvbS7.js";
6
+ import "./sheet-Dyu9stsE.js";
7
+ import "./select-KWMg2_7Z.js";
8
8
  import "./skeleton-D6Ga4BLw.js";
9
9
  import { t as r } from "./useScrollFade-D9kqJBDh.js";
10
10
  import { n as i } from "./useToast-UeDRLovh.js";
@@ -105,15 +105,15 @@ var je = a.forwardRef(({ className: t, ...n }, r) => /* @__PURE__ */ o(x.Descrip
105
105
  ...n
106
106
  }));
107
107
  je.displayName = x.Description.displayName;
108
- var Me = a.forwardRef(({ className: n, ...r }, i) => /* @__PURE__ */ o(x.Action, {
108
+ var Me = a.forwardRef(({ className: t, ...r }, i) => /* @__PURE__ */ o(x.Action, {
109
109
  ref: i,
110
- className: e(t(), n),
110
+ className: e(n(), t),
111
111
  ...r
112
112
  }));
113
113
  Me.displayName = x.Action.displayName;
114
- var Ne = a.forwardRef(({ className: n, ...r }, i) => /* @__PURE__ */ o(x.Cancel, {
114
+ var Ne = a.forwardRef(({ className: t, ...r }, i) => /* @__PURE__ */ o(x.Cancel, {
115
115
  ref: i,
116
- className: e(t({ variant: "outline" }), "mt-2 sm:mt-0", n),
116
+ className: e(n({ variant: "outline" }), "mt-2 sm:mt-0", t),
117
117
  ...r
118
118
  }));
119
119
  Ne.displayName = x.Cancel.displayName;
@@ -210,23 +210,23 @@ var Ke = ({ className: t, ...n }) => /* @__PURE__ */ s("span", {
210
210
  Ke.displayName = "BreadcrumbElipssis";
211
211
  //#endregion
212
212
  //#region src/components/ui/calendar.tsx
213
- function qe({ className: n, classNames: r, showOutsideDays: i = !0, ...a }) {
213
+ function qe({ className: t, classNames: r, showOutsideDays: i = !0, ...a }) {
214
214
  return /* @__PURE__ */ o(se, {
215
215
  showOutsideDays: i,
216
- className: e("p-3 pointer-events-auto", n),
216
+ className: e("p-3 pointer-events-auto", t),
217
217
  classNames: {
218
218
  months: "flex flex-col gap-2 relative sm:flex-row",
219
219
  month: "flex flex-col gap-4",
220
220
  month_caption: "flex justify-center pt-1 relative items-center w-full",
221
221
  caption_label: "text-sm font-medium",
222
222
  nav: "flex items-center gap-1 absolute h-7 w-full z-10",
223
- button_previous: e(t({ variant: "outline" }), "h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100", "absolute left-1"),
224
- button_next: e(t({ variant: "outline" }), "h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100", "absolute right-1"),
223
+ button_previous: e(n({ variant: "outline" }), "h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100", "absolute left-1"),
224
+ button_next: e(n({ variant: "outline" }), "h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100", "absolute right-1"),
225
225
  weekdays: "flex justify-center",
226
226
  weekday: "text-muted-foreground rounded-control w-9 font-normal text-[0.8rem] text-center flex items-center justify-center",
227
227
  week: "flex w-full mt-2",
228
228
  day: e("group relative size-9 p-0 text-center text-sm focus-within:relative focus-within:z-20", "[&:has([aria-selected].day-range-end)]:rounded-r-control", "[&:has([aria-selected])]:bg-accent", "first:[&:has([aria-selected])]:rounded-l-control", "last:[&:has([aria-selected])]:rounded-r-control", "[&:has([aria-selected].day-outside)]:bg-accent/50"),
229
- day_button: e(t({ variant: "ghost" }), "size-9 p-0 font-normal aria-selected:opacity-100"),
229
+ day_button: e(n({ variant: "ghost" }), "size-9 p-0 font-normal aria-selected:opacity-100"),
230
230
  range_start: "day-range-start rounded-l-control",
231
231
  range_end: "day-range-end rounded-r-control",
232
232
  selected: "bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground focus:bg-primary focus:text-primary-foreground",
@@ -319,13 +319,13 @@ var Ze = a.forwardRef(({ className: t, ...n }, r) => {
319
319
  });
320
320
  });
321
321
  Ze.displayName = "CarouselItem";
322
- var Qe = a.forwardRef(({ className: t, variant: r = "outline", size: i = "icon", ...a }, c) => {
322
+ var Qe = a.forwardRef(({ className: n, variant: r = "outline", size: i = "icon", ...a }, c) => {
323
323
  let { orientation: u, scrollPrev: d, canScrollPrev: f } = B();
324
- return /* @__PURE__ */ s(n, {
324
+ return /* @__PURE__ */ s(t, {
325
325
  ref: c,
326
326
  variant: r,
327
327
  size: i,
328
- className: e("absolute h-8 w-8 rounded-control", u === "horizontal" ? "-left-12 top-1/2 -translate-y-1/2" : "-top-12 left-1/2 -translate-x-1/2 rotate-90", t),
328
+ className: e("absolute h-8 w-8 rounded-control", u === "horizontal" ? "-left-12 top-1/2 -translate-y-1/2" : "-top-12 left-1/2 -translate-x-1/2 rotate-90", n),
329
329
  disabled: !f,
330
330
  onClick: d,
331
331
  ...a,
@@ -336,13 +336,13 @@ var Qe = a.forwardRef(({ className: t, variant: r = "outline", size: i = "icon",
336
336
  });
337
337
  });
338
338
  Qe.displayName = "CarouselPrevious";
339
- var $e = a.forwardRef(({ className: t, variant: r = "outline", size: i = "icon", ...a }, c) => {
339
+ var $e = a.forwardRef(({ className: n, variant: r = "outline", size: i = "icon", ...a }, c) => {
340
340
  let { orientation: l, scrollNext: d, canScrollNext: f } = B();
341
- return /* @__PURE__ */ s(n, {
341
+ return /* @__PURE__ */ s(t, {
342
342
  ref: c,
343
343
  variant: r,
344
344
  size: i,
345
- className: e("absolute h-8 w-8 rounded-control", l === "horizontal" ? "-right-12 top-1/2 -translate-y-1/2" : "-bottom-12 left-1/2 -translate-x-1/2 rotate-90", t),
345
+ className: e("absolute h-8 w-8 rounded-control", l === "horizontal" ? "-right-12 top-1/2 -translate-y-1/2" : "-bottom-12 left-1/2 -translate-x-1/2 rotate-90", n),
346
346
  disabled: !f,
347
347
  onClick: d,
348
348
  ...a,
@@ -827,12 +827,12 @@ var Nn = a.forwardRef(({ className: t, ...n }, r) => /* @__PURE__ */ o("li", {
827
827
  ...n
828
828
  }));
829
829
  Nn.displayName = "PaginationItem";
830
- var G = ({ className: n, isActive: r, size: i = "icon", ...a }) => /* @__PURE__ */ o("a", {
830
+ var G = ({ className: t, isActive: r, size: i = "icon", ...a }) => /* @__PURE__ */ o("a", {
831
831
  "aria-current": r ? "page" : void 0,
832
- className: e(t({
832
+ className: e(n({
833
833
  variant: r ? "outline" : "ghost",
834
834
  size: i
835
- }), n),
835
+ }), t),
836
836
  ...a
837
837
  });
838
838
  G.displayName = "PaginationLink";
@@ -1,4 +1,4 @@
1
- import { t as e } from "./i18n-d2p0RJo9.js";
1
+ import { t as e } from "./i18n-TbpdvUJO.js";
2
2
  import { useEffect as t } from "react";
3
3
  //#region src/hooks/ui/useDocumentTitle.ts
4
4
  var n = (n, r, i) => {
@@ -1,4 +1,4 @@
1
- import { t as e } from "./i18n-d2p0RJo9.js";
1
+ import { t as e } from "./i18n-TbpdvUJO.js";
2
2
  import { t } from "./useNotifications-CyhTruIG.js";
3
3
  import { useTranslation as n } from "react-i18next";
4
4
  //#region src/hooks/ui/useLanguage.ts
@@ -1,4 +1,4 @@
1
- import { t as e } from "./i18n-d2p0RJo9.js";
1
+ import { t as e } from "./i18n-TbpdvUJO.js";
2
2
  import { t } from "./useNotifications-CyhTruIG.js";
3
3
  import { useTheme as n } from "next-themes";
4
4
  //#region src/hooks/ui/useTheme.ts
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@krosoft/react",
3
- "version": "0.0.297",
3
+ "version": "0.0.298",
4
4
  "description": "Krosoft shared React package",
5
5
  "type": "module",
6
6
  "scripts": {