@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
package/README.md CHANGED
@@ -127,3 +127,19 @@ applyTokenPreset(radiusPresets, "round"); // pose les variables sur <html>
127
127
  | `tokensToStyle` | Les mêmes variables en `style` React, pour un sous-arbre |
128
128
 
129
129
  C'est aussi ce qui rend la suite extensible : une nouvelle famille de tokens (densité, élévation…) ne demande ni attribut dédié ni preset CSS, seulement un objet à côté de `radiusPresets` et ses variables dans `:root`.
130
+
131
+ ## Soumettre un formulaire depuis une barre d'actions
132
+
133
+ `GenericForm` accepte un `id` posé sur son `<form>`. Un bouton rendu ailleurs dans la page — pied d'`AppDialog`, en-tête d'`AppPageHeader` — le soumet en le visant par `form`, plutôt qu'en remontant une fonction de submit :
134
+
135
+ ```tsx
136
+ const formId = useId();
137
+
138
+ <AppPageHeader
139
+ titleKey="Modifier l'achat"
140
+ actions={[{ labelKey: "Sauvegarder", type: "submit", form: formId }]}
141
+ />
142
+ <GenericForm id={formId} schema={schema} onSubmit={onSubmit} renderActions={false} />;
143
+ ```
144
+
145
+ Une action `type: "submit"` porte donc `form` au lieu d'`onClick` — les deux s'excluent. La validation reste celle du formulaire, et rien ne transite par une ref. Sur mobile, où les actions passent en menu déroulant et ne sont plus des `<button>`, `AppActions` retombe sur `requestSubmit()` du formulaire ciblé : c'est pourquoi `form` y est requis.
@@ -1,14 +1,18 @@
1
1
  import { t as e } from "./tailwind.helper-CJaRYBmL.js";
2
- import { t } from "./i18n-d2p0RJo9.js";
3
- import { Bt as n, Ft as r, Gt as i, Nt as a, jt as o } from "./ui-DVtB9U8H.js";
4
- import { s } from "./tooltip-Bu3wNhtW.js";
2
+ import { t } from "./i18n-TbpdvUJO.js";
3
+ import { Bt as n, Ft as r, Gt as i, Nt as a, jt as o } from "./ui-Ce0ULzME.js";
4
+ import { c as s } from "./tooltip-_geGvbS7.js";
5
5
  import { t as c } from "./useMobile-pTQ8lWvt.js";
6
6
  import { jsx as l, jsxs as u } from "react/jsx-runtime";
7
7
  import { MoreVerticalIcon as d } from "lucide-react";
8
8
  //#region src/components/core/layouts/AppActions.tsx
9
- function f({ actions: f, className: p }) {
10
- let { t: m } = t(), h = c();
11
- return !f || f.length === 0 ? null : h ? /* @__PURE__ */ u(o, { children: [/* @__PURE__ */ l(i, {
9
+ var f = (e) => {
10
+ let t = document.getElementById(e);
11
+ t instanceof HTMLFormElement && t.requestSubmit();
12
+ };
13
+ function p({ actions: p, className: m }) {
14
+ let { t: h } = t(), g = c();
15
+ return !p || p.length === 0 ? null : g ? /* @__PURE__ */ u(o, { children: [/* @__PURE__ */ l(i, {
12
16
  asChild: !0,
13
17
  children: /* @__PURE__ */ l(s, {
14
18
  variant: "outline",
@@ -18,43 +22,63 @@ function f({ actions: f, className: p }) {
18
22
  }), /* @__PURE__ */ l(a, {
19
23
  align: "end",
20
24
  className: "min-w-48",
21
- children: f.map((t, i) => t ? t.children && t.children.length > 0 ? /* @__PURE__ */ u("div", { children: [i > 0 && /* @__PURE__ */ l(n, {}), t.children.map((t, n) => t ? /* @__PURE__ */ u(r, {
22
- onClick: () => void t.onClick?.(),
25
+ children: p.map((t, i) => t ? t.children && t.children.length > 0 ? /* @__PURE__ */ u("div", { children: [i > 0 && /* @__PURE__ */ l(n, {}), t.children.map((t, n) => t ? /* @__PURE__ */ u(r, {
26
+ onClick: () => {
27
+ if (t.type === "submit") {
28
+ f(t.form);
29
+ return;
30
+ }
31
+ t.onClick?.();
32
+ },
23
33
  disabled: t.disabled,
24
34
  className: e("gap-2", t.className),
25
- children: [t.icon && /* @__PURE__ */ l(t.icon, { className: "size-4" }), t.labelKey && m(t.labelKey)]
35
+ children: [t.icon && /* @__PURE__ */ l(t.icon, { className: "size-4" }), t.labelKey && h(t.labelKey)]
26
36
  }, n) : null)] }, i) : /* @__PURE__ */ u(r, {
27
- onClick: () => void t.onClick?.(),
37
+ onClick: () => {
38
+ if (t.type === "submit") {
39
+ f(t.form);
40
+ return;
41
+ }
42
+ t.onClick?.();
43
+ },
28
44
  disabled: t.disabled,
29
45
  className: e("gap-2", t.className),
30
- children: [t.icon && /* @__PURE__ */ l(t.icon, { className: "size-4" }), t.labelKey && m(t.labelKey)]
46
+ children: [t.icon && /* @__PURE__ */ l(t.icon, { className: "size-4" }), t.labelKey && h(t.labelKey)]
31
47
  }, i) : null)
32
48
  })] }) : ((t) => /* @__PURE__ */ l("div", {
33
- className: e("flex gap-2", p),
49
+ className: e("flex gap-2", m),
34
50
  children: t.map((t, n) => t ? t.children && t.children.length > 0 ? /* @__PURE__ */ u(o, { children: [/* @__PURE__ */ l(i, {
35
51
  asChild: !0,
36
52
  children: /* @__PURE__ */ u(s, {
37
53
  variant: t.variant,
38
54
  disabled: t.disabled,
39
55
  className: e("gap-2", t.className),
40
- children: [t.icon && /* @__PURE__ */ l(t.icon, { className: "size-4" }), t.labelKey && m(t.labelKey)]
56
+ children: [t.icon && /* @__PURE__ */ l(t.icon, { className: "size-4" }), t.labelKey && h(t.labelKey)]
41
57
  })
42
58
  }), /* @__PURE__ */ l(a, {
43
59
  align: "end",
44
60
  children: t.children.map((t, n) => t ? /* @__PURE__ */ u(r, {
45
- onClick: () => void t.onClick?.(),
61
+ onClick: () => {
62
+ if (t.type === "submit") {
63
+ f(t.form);
64
+ return;
65
+ }
66
+ t.onClick?.();
67
+ },
46
68
  disabled: t.disabled,
47
69
  className: e("gap-2", t.className),
48
- children: [t.icon && /* @__PURE__ */ l(t.icon, { className: "size-4" }), t.labelKey && m(t.labelKey)]
70
+ children: [t.icon && /* @__PURE__ */ l(t.icon, { className: "size-4" }), t.labelKey && h(t.labelKey)]
49
71
  }, n) : null)
50
72
  })] }, n) : /* @__PURE__ */ u(s, {
51
73
  variant: t.variant,
52
- onClick: () => void t.onClick?.(),
74
+ type: t.type,
75
+ form: t.form,
76
+ onClick: t.onClick ? () => void t.onClick?.() : void 0,
53
77
  disabled: t.disabled,
54
78
  className: e("gap-2", t.className),
55
- children: [t.icon && /* @__PURE__ */ l(t.icon, { className: "size-4" }), t.labelKey && m(t.labelKey)]
79
+ children: [t.icon && /* @__PURE__ */ l(t.icon, { className: "size-4" }), t.labelKey && h(t.labelKey)]
56
80
  }, n) : null)
57
- }))(f);
81
+ }))(p);
58
82
  }
59
83
  //#endregion
60
- export { f as t };
84
+ export { p as t };
@@ -1,5 +1,5 @@
1
- import { t as e } from "./i18n-d2p0RJo9.js";
2
- import { t } from "./AppActions-BMh044Sc.js";
1
+ import { t as e } from "./i18n-TbpdvUJO.js";
2
+ import { t } from "./AppActions-DCFvzqFN.js";
3
3
  import { jsx as n, jsxs as r } from "react/jsx-runtime";
4
4
  //#region src/components/core/layouts/AppSubTitle.tsx
5
5
  function i({ titleKey: i, actions: a, className: o }) {
@@ -1,5 +1,5 @@
1
1
  import { t as e } from "./tailwind.helper-CJaRYBmL.js";
2
- import { t } from "./i18n-d2p0RJo9.js";
2
+ import { t } from "./i18n-TbpdvUJO.js";
3
3
  import { jsx as n, jsxs as r } from "react/jsx-runtime";
4
4
  //#region src/components/core/layouts/AppTitle.tsx
5
5
  function i({ titleKey: i, descriptionKey: a, isSubTitle: o }) {
@@ -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 { n as t, t as n } from "./alert-REQGK9bR.js";
3
3
  import "react";
4
4
  import { jsx as r, jsxs as i } from "react/jsx-runtime";
@@ -1,14 +1,14 @@
1
1
  import { t as e } from "./tailwind.helper-CJaRYBmL.js";
2
2
  import { c as t, d as n, s as r } from "./chart-Dq3AIrue.js";
3
- import { t as i } from "./i18n-d2p0RJo9.js";
4
- import { Ct as a, Dt as o, Et as s, Ot as c, St as l, Tt as u, bn as d, p as f } from "./ui-DVtB9U8H.js";
5
- import { s as p } from "./tooltip-Bu3wNhtW.js";
6
- import { g as m } from "./sheet-DRzg-JWH.js";
7
- import { i as h, l as g, n as ee, t as _, u as v } from "./select-CfhuieLs.js";
3
+ import { t as i } from "./i18n-TbpdvUJO.js";
4
+ import { Ct as a, Dt as o, Et as s, Ot as c, St as l, Tt as u, bn as d, p as f } from "./ui-Ce0ULzME.js";
5
+ import { c as p } from "./tooltip-_geGvbS7.js";
6
+ import { g as m } from "./sheet-Dyu9stsE.js";
7
+ import { i as h, l as g, n as ee, t as _, u as v } from "./select-KWMg2_7Z.js";
8
8
  import { n as y } from "./useToast-UeDRLovh.js";
9
- import { t as b } from "./ImageInput-BdOxyamZ.js";
10
- import { t as x } from "./AppSubTitle-BfZTloah.js";
11
- import { t as S } from "./MultiSelect-Dmt1iWgB.js";
9
+ import { t as b } from "./ImageInput-BGe_bc79.js";
10
+ import { t as x } from "./AppSubTitle-Cmu-4o-a.js";
11
+ import { t as S } from "./MultiSelect-xNfIdYS9.js";
12
12
  import { useEffect as C, useRef as w, useState as T } from "react";
13
13
  import { jsx as E, jsxs as D } from "react/jsx-runtime";
14
14
  import { useForm as O } from "react-hook-form";
@@ -1,7 +1,7 @@
1
1
  import { t as e } from "./tailwind.helper-CJaRYBmL.js";
2
- import { t } from "./i18n-d2p0RJo9.js";
3
- import "./ui-DVtB9U8H.js";
4
- import { s as n } from "./tooltip-Bu3wNhtW.js";
2
+ import { t } from "./i18n-TbpdvUJO.js";
3
+ import "./ui-Ce0ULzME.js";
4
+ import { c as n } from "./tooltip-_geGvbS7.js";
5
5
  import { t as r } from "./useNotifications-CyhTruIG.js";
6
6
  import { forwardRef as i, useRef as a } from "react";
7
7
  import { jsx as o, jsxs as s } from "react/jsx-runtime";
@@ -0,0 +1,148 @@
1
+ import { t as e } from "./tailwind.helper-CJaRYBmL.js";
2
+ import { t } from "./i18n-TbpdvUJO.js";
3
+ import { bn as n } from "./ui-Ce0ULzME.js";
4
+ import { a as r, o as i, s as a } from "./tooltip-_geGvbS7.js";
5
+ import { h as o, m as s, p as c } from "./sheet-Dyu9stsE.js";
6
+ import { useMemo as l, useState as u } from "react";
7
+ import { jsx as d, jsxs as f } from "react/jsx-runtime";
8
+ import { ChevronDownIcon as p, SearchIcon as m, XIcon as h } from "lucide-react";
9
+ import { Command as g } from "cmdk";
10
+ //#region src/components/core/inputs/MultiSelect.tsx
11
+ var _ = ({ options: _, selected: v, onToggle: y, onClear: b, onSelectAll: x, variant: S = "input", placeholder: C, labelKey: w, searchable: T = !1, searchPlaceholder: E, disabled: D = !1, maxCount: O, className: k, ...A }) => {
12
+ let { t: j } = t(), [M, N] = u(""), [P, F] = u(!1), I = S === "pill", L = S === "input" ? void 0 : i, R = l(() => M === "" ? _ : _.filter((e) => e.label.toLowerCase().includes(M.toLowerCase())), [_, M]), z = l(() => R.filter((e) => e.disabled !== !0).map((e) => e.value), [R]), B = l(() => v.filter((e) => _.find((t) => t.value === e)?.disabled === !0), [_, v]), V = l(() => z.length !== 0 && z.every((e) => v.includes(e)), [z, v]), H = l(() => v.map((e) => _.find((t) => t.value === e)?.label ?? e), [_, v]), U = O !== void 0 && O > 0 ? H.slice(0, O) : H, W = H.length - U.length, G = (e) => {
13
+ F(e), e || N("");
14
+ }, K = () => {
15
+ B.length > 0 ? x === void 0 ? v.filter((e) => !B.includes(e)).forEach((e) => {
16
+ y(e);
17
+ }) : x(B) : b === void 0 ? x === void 0 ? v.forEach((e) => {
18
+ y(e);
19
+ }) : x([]) : b();
20
+ }, q = () => {
21
+ if (V) x === void 0 ? b !== void 0 && v.every((e) => z.includes(e)) ? b() : z.forEach((e) => {
22
+ y(e);
23
+ }) : x(v.filter((e) => !z.includes(e)));
24
+ else if (x !== void 0) {
25
+ let e = [...v];
26
+ z.forEach((t) => {
27
+ e.includes(t) || e.push(t);
28
+ }), x(e);
29
+ } else z.forEach((e) => {
30
+ v.includes(e) || y(e);
31
+ });
32
+ }, J = I ? /* @__PURE__ */ f("button", {
33
+ ...A,
34
+ type: "button",
35
+ disabled: D,
36
+ className: e(r, "inline-flex items-center justify-between gap-1.5 whitespace-nowrap transition-colors", v.length > 0 ? "border-primary bg-primary/10 text-primary font-medium" : "hover:bg-muted", L, k),
37
+ children: [/* @__PURE__ */ d("span", {
38
+ className: "truncate",
39
+ children: w === void 0 ? C ?? j("select.placeholder") : j(w)
40
+ }), /* @__PURE__ */ f("div", {
41
+ className: "flex shrink-0 items-center gap-1.5",
42
+ children: [v.length > 0 && /* @__PURE__ */ d("span", {
43
+ className: "flex h-4 min-w-[16px] items-center justify-center rounded-full bg-primary px-1 text-[10px] font-bold text-primary-foreground",
44
+ children: v.length
45
+ }), /* @__PURE__ */ d(p, { className: e("size-3.5 opacity-60 transition-transform", P && "rotate-180") })]
46
+ })]
47
+ }) : /* @__PURE__ */ f("button", {
48
+ ...A,
49
+ type: "button",
50
+ disabled: D,
51
+ className: e(a, "w-full", L, P && "ring-2 ring-ring ring-offset-2", v.length === 0 && "text-muted-foreground", k),
52
+ children: [/* @__PURE__ */ d("span", {
53
+ className: "truncate",
54
+ children: v.length === 0 ? C ?? j("select.placeholder") : U.join(", ")
55
+ }), /* @__PURE__ */ f("div", {
56
+ className: "flex shrink-0 items-center gap-1",
57
+ children: [
58
+ W > 0 && /* @__PURE__ */ f("span", {
59
+ className: "rounded-control bg-muted px-1.5 py-0.5 text-xs font-medium text-foreground",
60
+ children: ["+", W]
61
+ }),
62
+ v.length > 0 && !D && /* @__PURE__ */ d("span", {
63
+ role: "button",
64
+ tabIndex: -1,
65
+ onClick: (e) => {
66
+ e.stopPropagation();
67
+ },
68
+ onPointerDown: (e) => {
69
+ e.preventDefault(), e.stopPropagation(), K();
70
+ },
71
+ className: "text-muted-foreground hover:text-foreground",
72
+ children: /* @__PURE__ */ d(h, { className: "size-4" })
73
+ }),
74
+ /* @__PURE__ */ d(p, { className: e("size-4 opacity-50 shrink-0 transition-transform", P && "rotate-180") })
75
+ ]
76
+ })]
77
+ });
78
+ return /* @__PURE__ */ f(c, {
79
+ open: P,
80
+ onOpenChange: G,
81
+ children: [/* @__PURE__ */ d(o, {
82
+ asChild: !0,
83
+ children: J
84
+ }), /* @__PURE__ */ f(s, {
85
+ className: e("p-0", I ? "w-72 max-w-[var(--radix-popover-content-available-width)]" : "w-[var(--radix-popover-trigger-width)]"),
86
+ align: "start",
87
+ children: [/* @__PURE__ */ f(g, {
88
+ shouldFilter: !1,
89
+ className: "flex flex-col",
90
+ children: [T ? /* @__PURE__ */ d("div", {
91
+ className: "border-b border-border p-2",
92
+ children: /* @__PURE__ */ f("div", {
93
+ className: "relative",
94
+ children: [/* @__PURE__ */ d(m, { className: "absolute left-2 top-1/2 h-3.5 w-3.5 -translate-y-1/2 text-muted-foreground" }), /* @__PURE__ */ d(g.Input, {
95
+ value: M,
96
+ onValueChange: N,
97
+ placeholder: E ?? j("search.placeholder"),
98
+ className: "w-full rounded-control bg-muted/50 py-1.5 pl-7 pr-2 text-sm text-foreground placeholder:text-muted-foreground outline-none focus:ring-1 focus:ring-ring",
99
+ autoFocus: !0
100
+ })]
101
+ })
102
+ }) : /* @__PURE__ */ d(g.Input, {
103
+ autoFocus: !0,
104
+ tabIndex: -1,
105
+ className: "sr-only"
106
+ }), /* @__PURE__ */ f(g.List, {
107
+ className: "flex flex-col gap-0.5 max-h-56 overflow-y-auto overflow-x-hidden p-1.5 scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-muted-foreground/20 scrollbar-track-transparent [&::-webkit-scrollbar]:w-1.5 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-thumb]:bg-muted-foreground/20 [&::-webkit-scrollbar-track]:bg-transparent",
108
+ children: [R.length === 0 && /* @__PURE__ */ d("p", {
109
+ className: "px-2 py-3 text-center text-xs text-muted-foreground",
110
+ children: j("states.noResult")
111
+ }), R.map((e) => /* @__PURE__ */ f(g.Item, {
112
+ value: e.value,
113
+ disabled: e.disabled,
114
+ onSelect: () => {
115
+ y(e.value);
116
+ },
117
+ className: "flex min-w-0 items-center gap-2.5 rounded-md px-2 py-2 text-sm cursor-pointer transition-colors data-[selected=true]:bg-muted data-[disabled=true]:cursor-not-allowed data-[disabled=true]:opacity-50",
118
+ children: [
119
+ /* @__PURE__ */ d("span", {
120
+ className: "pointer-events-none shrink-0",
121
+ children: /* @__PURE__ */ d(n, { checked: v.includes(e.value) })
122
+ }),
123
+ e.color && /* @__PURE__ */ d("span", {
124
+ className: "size-2.5 shrink-0 rounded-full",
125
+ style: { backgroundColor: e.color }
126
+ }),
127
+ /* @__PURE__ */ d("span", {
128
+ className: "min-w-0 flex-1 truncate",
129
+ title: e.label,
130
+ children: e.label
131
+ })
132
+ ]
133
+ }, e.value))]
134
+ })]
135
+ }), z.length > 0 && /* @__PURE__ */ d("div", {
136
+ className: "border-t border-border p-1.5",
137
+ children: /* @__PURE__ */ d("button", {
138
+ type: "button",
139
+ onClick: q,
140
+ 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",
141
+ children: j(V ? "filters.deselectAll" : "filters.selectAll")
142
+ })
143
+ })]
144
+ })]
145
+ });
146
+ };
147
+ //#endregion
148
+ export { _ as t };