@krosoft/react 0.0.123 → 0.0.125

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 (62) hide show
  1. package/dist/{AppActions-po4LjUcM.js → AppActions-BbAnhStS.js} +22 -18
  2. package/dist/{AppSubTitle-CWrsJYFJ.js → AppSubTitle-lg3d5NWc.js} +1 -1
  3. package/dist/{AppTitle-CDxWr_0y.js → AppTitle-uboDuil4.js} +1 -1
  4. package/dist/{AppVerticalTabs-CdqoObXx.js → AppVerticalTabs-CBijkDF_.js} +33 -49
  5. package/dist/ConfirmationDialog-Co5yl0yA.js +184 -0
  6. package/dist/{DataTable-CrJoeR_0.js → DataTable-DSIgTHZS.js} +174 -218
  7. package/dist/ErrorAlert-DH1onuyt.js +17 -0
  8. package/dist/GenericForm-QoeireeW.js +339 -0
  9. package/dist/ImageInput-DLTYJMwr.js +65 -0
  10. package/dist/KpiCardsLayout-C3LmSeL1.js +22 -0
  11. package/dist/{LoadingState-PhGi7HXH.js → LoadingState-BN0YaPSs.js} +3 -3
  12. package/dist/{MetricCard-C-ewNR_i.js → MetricCard-CPw-fiNS.js} +6 -6
  13. package/dist/{MultiSelect-BoisW4Kn.js → MultiSelect-CX051kfk.js} +32 -27
  14. package/dist/SearchInput-D6LmcOjp.js +249 -0
  15. package/dist/SkeletonCards-BIEnyOuZ.js +62 -0
  16. package/dist/{TableFilter-CLjQU36k.js → TableFilter-Wh_Womy4.js} +114 -123
  17. package/dist/{ThemeSelector--w3R6Ff3.js → ThemeSelector-Qv8QBlYq.js} +2 -2
  18. package/dist/{Topbar-DFu_OdSs.js → Topbar-DVww-tU8.js} +49 -59
  19. package/dist/{alert-B34E_4uH.js → alert-B78CiTYe.js} +2 -2
  20. package/dist/components/core/cards/index.js +2 -2
  21. package/dist/components/core/dialogs/index.js +2 -2
  22. package/dist/components/core/filters/index.js +1 -1
  23. package/dist/components/core/forms/index.js +1 -1
  24. package/dist/components/core/index.js +19 -19
  25. package/dist/components/core/inputs/index.js +3 -3
  26. package/dist/components/core/layouts/index.js +4 -4
  27. package/dist/components/core/navbar/index.js +1 -1
  28. package/dist/components/core/states/index.js +2 -2
  29. package/dist/components/core/table/index.js +1 -1
  30. package/dist/components/core/tabs/index.js +1 -1
  31. package/dist/components/core/theme/index.js +1 -1
  32. package/dist/components/index.js +270 -270
  33. package/dist/components/ui/index.js +213 -213
  34. package/dist/helpers/index.js +1 -1
  35. package/dist/hooks/behavior/index.js +1 -1
  36. package/dist/hooks/index.js +1 -1
  37. package/dist/select-MWzbMBAS.js +106 -0
  38. package/dist/tailwind.helper-B6yFEsav.js +8 -0
  39. package/dist/toaster-DTC8Duvh.js +75 -0
  40. package/dist/toggle-group-CSdAiS44.js +1694 -0
  41. package/dist/tooltip-BWyFpIxo.js +56 -0
  42. package/dist/useConfirmDeleteDialog-CiBQmRxg.js +65 -0
  43. package/package.json +3 -3
  44. package/dist/ConfirmationDialog-CkMyyh_3.js +0 -221
  45. package/dist/ErrorAlert-C6BbHHRZ.js +0 -33
  46. package/dist/GenericForm-CmwqEXiQ.js +0 -11410
  47. package/dist/ImageInput-C8HcxE8t.js +0 -82
  48. package/dist/KpiCardsLayout-CETMpB7A.js +0 -15
  49. package/dist/SearchInput-DJ_F3emq.js +0 -586
  50. package/dist/SkeletonCards-C5lXTSrB.js +0 -57
  51. package/dist/badge-CfWlt79h.js +0 -26
  52. package/dist/createLucideIcon-MP_wDWjs.js +0 -116
  53. package/dist/ellipsis-vertical-kB5yFb-i.js +0 -15
  54. package/dist/grip-vertical-DGywJXzS.js +0 -18
  55. package/dist/index-Be16PP7H.js +0 -34
  56. package/dist/loader-circle-CKy7u7JW.js +0 -11
  57. package/dist/select-DlQvLtI3.js +0 -1763
  58. package/dist/tailwind.helper-gWiv5-6R.js +0 -2278
  59. package/dist/toaster-CKoOjjKr.js +0 -134
  60. package/dist/toggle-group-wIgXZYDq.js +0 -29086
  61. package/dist/tooltip-YhBPXbcJ.js +0 -2477
  62. package/dist/useConfirmDeleteDialog-BOb3XFpz.js +0 -75
@@ -0,0 +1,56 @@
1
+ import { jsx as a } from "react/jsx-runtime";
2
+ import { c as n } from "./tailwind.helper-B6yFEsav.js";
3
+ import { Slot as m } from "@radix-ui/react-slot";
4
+ import { cva as p } from "class-variance-authority";
5
+ import * as s from "react";
6
+ import * as e from "@radix-ui/react-tooltip";
7
+ const f = p(
8
+ "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
9
+ {
10
+ variants: {
11
+ variant: {
12
+ default: "bg-primary text-primary-foreground hover:bg-primary/90",
13
+ destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90",
14
+ outline: "border border-input bg-background hover:bg-accent hover:text-accent-foreground",
15
+ secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
16
+ ghost: "hover:bg-accent hover:text-accent-foreground",
17
+ link: "text-primary underline-offset-4 hover:underline",
18
+ styled: "bg-gradient-to-r from-slate-900 to-purple-700 hover:from-slate-800 hover:to-purple-600 text-white shadow-lg shadow-purple-500/25 px-6 h-12"
19
+ },
20
+ size: {
21
+ default: "h-10 px-4 py-2",
22
+ sm: "h-9 rounded-md px-3",
23
+ lg: "h-11 rounded-md px-8",
24
+ icon: "h-10 w-10"
25
+ }
26
+ },
27
+ defaultVariants: {
28
+ variant: "default",
29
+ size: "default"
30
+ }
31
+ }
32
+ ), c = s.forwardRef(({ className: o, variant: t, size: r, asChild: i = !1, ...d }, l) => /* @__PURE__ */ a(i ? m : "button", { className: n(f({ variant: t, size: r, className: o })), ref: l, ...d }));
33
+ c.displayName = "Button";
34
+ const y = e.Provider, w = e.Root, T = e.Trigger, u = s.forwardRef(
35
+ ({ className: o, sideOffset: t = 4, ...r }, i) => /* @__PURE__ */ a(
36
+ e.Content,
37
+ {
38
+ ref: i,
39
+ sideOffset: t,
40
+ className: n(
41
+ "z-50 overflow-hidden rounded-md 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",
42
+ o
43
+ ),
44
+ ...r
45
+ }
46
+ )
47
+ );
48
+ u.displayName = e.Content.displayName;
49
+ export {
50
+ c as B,
51
+ w as T,
52
+ u as a,
53
+ y as b,
54
+ T as c,
55
+ f as d
56
+ };
@@ -0,0 +1,65 @@
1
+ import { TrashIcon as s } from "lucide-react";
2
+ import { useState as c } from "react";
3
+ const m = (e) => {
4
+ const [n, i] = c(null), t = (o, l) => {
5
+ var a;
6
+ (a = e == null ? void 0 : e.onReset) == null || a.call(e), i({ id: o, name: l });
7
+ }, r = () => {
8
+ i(null);
9
+ };
10
+ return {
11
+ id: (n == null ? void 0 : n.id) ?? null,
12
+ name: (n == null ? void 0 : n.name) ?? null,
13
+ isOpen: !!n,
14
+ openDialog: t,
15
+ onClose: r
16
+ };
17
+ }, u = ({
18
+ titleKey: e,
19
+ descriptionKey: n,
20
+ confirmKey: i = "Confirmer",
21
+ onConfirm: t,
22
+ onReset: r
23
+ }) => {
24
+ const o = m({ onReset: r }), l = async () => {
25
+ if (o.id)
26
+ try {
27
+ await t(o.id), o.onClose();
28
+ } catch (a) {
29
+ console.error("Error confirming action:", a);
30
+ }
31
+ };
32
+ return {
33
+ isOpen: o.isOpen,
34
+ itemName: o.name,
35
+ title: e,
36
+ description: n,
37
+ confirmKey: i,
38
+ openDialog: o.openDialog,
39
+ onClose: o.onClose,
40
+ onConfirm: l
41
+ };
42
+ }, d = ({
43
+ titleKey: e,
44
+ descriptionKey: n,
45
+ confirmKey: i = "Supprimer",
46
+ onConfirm: t,
47
+ onReset: r
48
+ }) => ({
49
+ ...u({
50
+ titleKey: e,
51
+ descriptionKey: n,
52
+ confirmKey: i,
53
+ onConfirm: t,
54
+ onReset: r
55
+ }),
56
+ loadingKey: "Suppression...",
57
+ icon: s,
58
+ titleClassName: "flex items-center gap-2 text-destructive",
59
+ headerClassName: "bg-gradient-to-r from-slate-900 to-purple-700 rounded-t-lg shrink-0"
60
+ });
61
+ export {
62
+ u as a,
63
+ m as b,
64
+ d as u
65
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@krosoft/react",
3
- "version": "0.0.123",
3
+ "version": "0.0.125",
4
4
  "description": "Krosoft shared React package",
5
5
  "type": "module",
6
6
  "scripts": {
@@ -82,6 +82,7 @@
82
82
  "lucide-react": "^1.17.0",
83
83
  "react-day-picker": "^10.0.1",
84
84
  "react-hook-form": "^7.77.0",
85
+ "react-resizable-panels": "^4.11.2",
85
86
  "recharts": "^3.8.1",
86
87
  "sonner": "^2.0.7",
87
88
  "tailwind-merge": "^2.6.1",
@@ -101,14 +102,13 @@
101
102
  "@types/react": "^19.2.16",
102
103
  "@types/react-dom": "^19.2.3",
103
104
  "autoprefixer": "^10.5.0",
104
- "eslint-plugin-storybook": "10.4.1",
105
+ "eslint-plugin-storybook": "10.4.2",
105
106
  "jsdom": "^29.1.1",
106
107
  "next-themes": "^0.4.6",
107
108
  "prettier": "^3.8.3",
108
109
  "react": "^19.2.7",
109
110
  "react-dom": "^19.2.7",
110
111
  "react-i18next": "^17.0.8",
111
- "react-resizable-panels": "^4.11.2",
112
112
  "react-router-dom": "^7.16.0",
113
113
  "storybook": "^10.4.2",
114
114
  "tailwindcss": "^3.4.19",
@@ -1,221 +0,0 @@
1
- import { jsx as e, jsxs as a, Fragment as q } from "react/jsx-runtime";
2
- import { D as G, b as K, P as V, e as B, h as R, c as W, m as X, p as J, s as M, t as Q, q as _, r as U, o as Y } from "./toggle-group-wIgXZYDq.js";
3
- import { A as Z, a as L } from "./alert-B34E_4uH.js";
4
- import { B as v } from "./tooltip-YhBPXbcJ.js";
5
- import { X as j } from "./select-DlQvLtI3.js";
6
- import "next-themes";
7
- import { useState as w, useEffect as ee } from "react";
8
- import { useTranslation as T } from "react-i18next";
9
- import { c as A } from "./createLucideIcon-MP_wDWjs.js";
10
- import { G as le } from "./GenericForm-CmwqEXiQ.js";
11
- import { E as ie } from "./ErrorAlert-C6BbHHRZ.js";
12
- /**
13
- * @license lucide-react v1.17.0 - ISC
14
- *
15
- * This source code is licensed under the ISC license.
16
- * See the LICENSE file in the root directory of this source tree.
17
- */
18
- const ae = [
19
- ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
20
- ["line", { x1: "12", x2: "12", y1: "8", y2: "12", key: "1pkeuh" }],
21
- ["line", { x1: "12", x2: "12.01", y1: "16", y2: "16", key: "4dfq90" }]
22
- ], re = A("circle-alert", ae);
23
- /**
24
- * @license lucide-react v1.17.0 - ISC
25
- *
26
- * This source code is licensed under the ISC license.
27
- * See the LICENSE file in the root directory of this source tree.
28
- */
29
- const se = [
30
- [
31
- "path",
32
- {
33
- d: "M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",
34
- key: "1a8usu"
35
- }
36
- ]
37
- ], H = A("pen", se);
38
- /**
39
- * @license lucide-react v1.17.0 - ISC
40
- *
41
- * This source code is licensed under the ISC license.
42
- * See the LICENSE file in the root directory of this source tree.
43
- */
44
- const te = [
45
- [
46
- "path",
47
- {
48
- d: "M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",
49
- key: "1c8476"
50
- }
51
- ],
52
- ["path", { d: "M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7", key: "1ydtos" }],
53
- ["path", { d: "M7 3v4a1 1 0 0 0 1 1h7", key: "t51u73" }]
54
- ], S = A("save", te);
55
- function ne({ open: s, onOpenChange: m, config: l, isLoading: u, error: r, children: f }) {
56
- const { t: i } = T(), { title: g, description: d, icon: p, maxWidth: b = "sm:max-w-xl", actions: n } = l;
57
- return /* @__PURE__ */ e(G, { open: s, onOpenChange: m, children: /* @__PURE__ */ a(K, { className: `${b} max-h-[90vh] border-0 shadow-2xl p-0 flex flex-col overflow-hidden`, children: [
58
- u === !0 ? /* @__PURE__ */ e("div", { className: "absolute top-0 left-0 right-0 z-10", children: /* @__PURE__ */ e(V, { indeterminate: !0, className: "h-1 rounded-none" }) }) : null,
59
- /* @__PURE__ */ a(B, { className: "bg-gradient-to-r from-slate-900 to-purple-700 p-6 rounded-t-lg shrink-0", children: [
60
- /* @__PURE__ */ a(R, { className: "text-2xl font-bold flex items-center gap-2 text-white", children: [
61
- p !== void 0 ? /* @__PURE__ */ e("div", { className: "p-2 bg-white/20 rounded-lg", children: /* @__PURE__ */ e(p, { className: "size-4 text-white" }) }) : null,
62
- i(g)
63
- ] }),
64
- d !== void 0 && d !== "" ? /* @__PURE__ */ e(W, { className: "text-indigo-100 text-base", children: i(d) }) : null
65
- ] }),
66
- r != null ? /* @__PURE__ */ e("div", { className: "px-6 ", children: /* @__PURE__ */ a(Z, { variant: "destructive", className: "max-w-full", children: [
67
- /* @__PURE__ */ e(re, { className: "size-4" }),
68
- /* @__PURE__ */ e(L, { className: "break-words overflow-wrap-anywhere max-w-full", children: r.message })
69
- ] }) }) : null,
70
- /* @__PURE__ */ e("div", { className: "flex-1 overflow-y-auto px-6 ", children: f }),
71
- n !== void 0 && n.length > 0 ? /* @__PURE__ */ e("div", { className: "rounded-b-lg border-t border-gray-200 dark:border-gray-700 shrink-0 p-6 light:bg-gradient-to-r light:from-gray-50 light:to-gray-100 dark:bg-gray-950", children: /* @__PURE__ */ e("div", { className: "flex justify-end gap-3", children: n.map((t, k) => /* @__PURE__ */ a(v, { variant: t.variant ?? "default", onClick: t.onClick, disabled: t.disabled === !0 || u === !0, children: [
72
- t.icon !== void 0 ? /* @__PURE__ */ e(t.icon, { className: "size-4" }) : null,
73
- i(t.label)
74
- ] }, k)) }) }) : null
75
- ] }) });
76
- }
77
- function Ne({
78
- open: s,
79
- onOpenChange: m,
80
- data: l,
81
- title: u,
82
- headerBadge: r,
83
- schema: f,
84
- onSave: i,
85
- customFooter: g,
86
- defaultEditing: d = !1,
87
- footerActions: p = !0,
88
- saveLabel: b = "Sauvegarder",
89
- cancelLabel: n = "Annuler",
90
- hideSaveIcon: t = !1,
91
- maxWidth: k = "sm:max-w-4xl",
92
- isLoading: h = !1
93
- }) {
94
- const [N, x] = w(d), [o, z] = w(!1), [y, I] = w(null);
95
- if (ee(() => {
96
- s && x(d);
97
- }, [s, d]), l == null) return null;
98
- const E = () => {
99
- N ? i !== void 0 && y && y() : x(!0);
100
- }, D = () => {
101
- x(!1);
102
- }, F = () => {
103
- i !== void 0 && y && y();
104
- }, O = async (c) => {
105
- if (i) {
106
- z(!0);
107
- try {
108
- await i(c), x(!1);
109
- } catch ($) {
110
- console.error($);
111
- } finally {
112
- z(!1);
113
- }
114
- }
115
- }, C = [];
116
- i !== void 0 && (N ? (n !== "" && C.push({
117
- label: n,
118
- onClick: D,
119
- variant: "outline",
120
- disabled: o || h,
121
- icon: j
122
- }), C.push({
123
- label: o ? "Enregistrement..." : b,
124
- onClick: F,
125
- variant: "default",
126
- disabled: o || h,
127
- icon: t ? void 0 : S
128
- })) : C.push({
129
- label: "Modifier",
130
- onClick: E,
131
- variant: "outline",
132
- icon: H
133
- }));
134
- const P = {
135
- title: u(l),
136
- maxWidth: k,
137
- actions: p ? C : []
138
- };
139
- return /* @__PURE__ */ e(
140
- ne,
141
- {
142
- open: s,
143
- onOpenChange: (c) => {
144
- m(c), c || D();
145
- },
146
- config: P,
147
- isLoading: o || h,
148
- children: /* @__PURE__ */ a("div", { className: "py-4", children: [
149
- r !== void 0 ? /* @__PURE__ */ e("div", { className: "mb-4", children: r(l) }) : null,
150
- /* @__PURE__ */ e(
151
- le,
152
- {
153
- schema: f,
154
- initialData: l,
155
- disabled: !N,
156
- onSubmit: (c) => {
157
- O(c);
158
- },
159
- renderActions: !1,
160
- onRegisterSubmit: (c) => {
161
- I(() => c);
162
- },
163
- isLoading: o || h
164
- }
165
- ),
166
- g !== void 0 ? g(l) : null,
167
- i !== void 0 && !p ? /* @__PURE__ */ e("div", { className: "flex justify-end gap-2 border-t pt-4 mt-6", children: N ? /* @__PURE__ */ a(q, { children: [
168
- n !== "" ? /* @__PURE__ */ a(v, { onClick: D, variant: "outline", size: "sm", disabled: o || h, children: [
169
- /* @__PURE__ */ e(j, { className: "size-4 mr-2" }),
170
- n
171
- ] }) : null,
172
- /* @__PURE__ */ a(v, { onClick: F, size: "sm", disabled: o || h, className: "text-white", children: [
173
- t ? null : /* @__PURE__ */ e(S, { className: "size-4 mr-2" }),
174
- o ? "Enregistrement..." : b
175
- ] })
176
- ] }) : /* @__PURE__ */ a(v, { onClick: E, variant: "outline", size: "sm", children: [
177
- /* @__PURE__ */ e(H, { className: "size-4 mr-2" }),
178
- "Modifier"
179
- ] }) }) : null
180
- ] })
181
- }
182
- );
183
- }
184
- function xe({ isLoading: s, error: m, config: l, destructive: u = !1 }) {
185
- const { t: r } = T();
186
- if (!l) return null;
187
- const f = (i) => {
188
- !i && !s && l.onClose();
189
- };
190
- return /* @__PURE__ */ e(X, { open: l.isOpen, onOpenChange: f, children: /* @__PURE__ */ a(J, { children: [
191
- /* @__PURE__ */ a(M, { children: [
192
- /* @__PURE__ */ a(Q, { className: l.titleClassName, children: [
193
- l.icon && /* @__PURE__ */ e(l.icon, { className: "size-4" }),
194
- r(l.title)
195
- ] }),
196
- l.headerClassName && /* @__PURE__ */ e(M, { className: l.headerClassName }),
197
- /* @__PURE__ */ e(_, { children: r(l.description) }),
198
- l.itemName && /* @__PURE__ */ e(_, { children: /* @__PURE__ */ e("span", { className: "font-semibold block my-2", children: l.itemName }) })
199
- ] }),
200
- /* @__PURE__ */ e(ie, { error: m instanceof Error ? null : m }),
201
- /* @__PURE__ */ a(U, { children: [
202
- /* @__PURE__ */ e(Y, { disabled: s, children: r("common.buttons.cancel") }),
203
- /* @__PURE__ */ e(
204
- v,
205
- {
206
- onClick: (i) => {
207
- i.preventDefault(), l.onConfirm();
208
- },
209
- disabled: s,
210
- className: u ? "bg-destructive text-destructive-foreground hover:bg-destructive/90" : "",
211
- children: s ? r(l.loadingKey || "common.buttons.loading") : l.confirmKey
212
- }
213
- )
214
- ] })
215
- ] }) });
216
- }
217
- export {
218
- ne as A,
219
- xe as C,
220
- Ne as F
221
- };
@@ -1,33 +0,0 @@
1
- import { jsxs as r, jsx as s } from "react/jsx-runtime";
2
- import { A as t, a as l } from "./alert-B34E_4uH.js";
3
- import { c as n } from "./createLucideIcon-MP_wDWjs.js";
4
- /**
5
- * @license lucide-react v1.17.0 - ISC
6
- *
7
- * This source code is licensed under the ISC license.
8
- * See the LICENSE file in the root directory of this source tree.
9
- */
10
- const c = [
11
- [
12
- "path",
13
- {
14
- d: "m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",
15
- key: "wmoenq"
16
- }
17
- ],
18
- ["path", { d: "M12 9v4", key: "juzpu7" }],
19
- ["path", { d: "M12 17h.01", key: "p32p05" }]
20
- ], d = n("triangle-alert", c), h = ({ error: e }) => e ? /* @__PURE__ */ r(t, { variant: "destructive", children: [
21
- /* @__PURE__ */ s(d, { className: "size-4" }),
22
- /* @__PURE__ */ r(l, { children: [
23
- /* @__PURE__ */ r("div", { className: "flex items-center space-x-2", children: [
24
- /* @__PURE__ */ s("span", { className: "font-semibold", children: "Erreur :" }),
25
- /* @__PURE__ */ s("span", { children: e.code }),
26
- /* @__PURE__ */ s("span", { children: e.message })
27
- ] }),
28
- e.errors && e.errors.length > 0 && /* @__PURE__ */ s("ul", { className: "mt-2 list-disc list-inside", children: e.errors.map((a, i) => /* @__PURE__ */ s("li", { children: a }, i)) })
29
- ] })
30
- ] }) : null;
31
- export {
32
- h as E
33
- };