@floegence/floe-webapp-core 0.86.76 → 0.87.0
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.
- package/dist/components/index.d.ts +2 -0
- package/dist/components/ui/Accordion.d.ts +16 -0
- package/dist/components/ui/Accordion.js +59 -0
- package/dist/components/ui/Breadcrumb.d.ts +14 -0
- package/dist/components/ui/Breadcrumb.js +72 -0
- package/dist/components/ui/Calendar.d.ts +17 -0
- package/dist/components/ui/Calendar.js +151 -0
- package/dist/components/ui/Checkbox.js +137 -130
- package/dist/components/ui/DataTable.d.ts +33 -0
- package/dist/components/ui/DataTable.js +269 -0
- package/dist/components/ui/DatePicker.d.ts +35 -0
- package/dist/components/ui/DatePicker.js +198 -0
- package/dist/components/ui/Dropdown.d.ts +4 -20
- package/dist/components/ui/Dropdown.js +195 -231
- package/dist/components/ui/Form.d.ts +24 -5
- package/dist/components/ui/Form.js +179 -128
- package/dist/components/ui/Input.d.ts +6 -0
- package/dist/components/ui/Input.js +237 -189
- package/dist/components/ui/Pagination.js +211 -162
- package/dist/components/ui/Popover.d.ts +6 -1
- package/dist/components/ui/Popover.js +75 -56
- package/dist/components/ui/Select.d.ts +46 -0
- package/dist/components/ui/Select.js +414 -0
- package/dist/components/ui/Slider.d.ts +7 -0
- package/dist/components/ui/Slider.js +28 -0
- package/dist/components/ui/Switch.js +41 -32
- package/dist/components/ui/Table.d.ts +9 -0
- package/dist/components/ui/Table.js +97 -0
- package/dist/components/ui/calendarModel.d.ts +6 -0
- package/dist/components/ui/calendarModel.js +37 -0
- package/dist/components/ui/controllable.d.ts +7 -0
- package/dist/components/ui/controllable.js +10 -0
- package/dist/components/ui/dataTableModel.d.ts +18 -0
- package/dist/components/ui/dataTableModel.js +18 -0
- package/dist/components/ui/formFieldContext.d.ts +26 -0
- package/dist/components/ui/formFieldContext.js +40 -0
- package/dist/components/ui/index.d.ts +13 -1
- package/dist/components/ui/picker/PickerBase.js +106 -112
- package/dist/context/LocaleContext.d.ts +55 -0
- package/dist/context/LocaleContext.js +80 -0
- package/dist/context/index.d.ts +1 -0
- package/dist/full.d.ts +2 -0
- package/dist/full.js +776 -737
- package/dist/index.js +111 -107
- package/dist/styles.css +1 -1
- package/dist/ui.js +223 -184
- package/package.json +1 -1
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
import { type JSX, type Accessor } from 'solid-js';
|
|
2
|
-
|
|
2
|
+
import { useFormControl } from './formFieldContext';
|
|
3
|
+
export interface FormProps extends Omit<JSX.FormHTMLAttributes<HTMLFormElement>, 'onSubmit' | 'onReset'> {
|
|
3
4
|
/** Called when form is submitted */
|
|
4
|
-
onSubmit?: (e: SubmitEvent
|
|
5
|
+
onSubmit?: (e: SubmitEvent, context: {
|
|
6
|
+
form: HTMLFormElement;
|
|
7
|
+
data: FormData;
|
|
8
|
+
}) => void | Promise<void>;
|
|
9
|
+
/** Host-owned validation. Return field messages; undefined means valid. */
|
|
10
|
+
validate?: (data: FormData) => Record<string, string> | undefined | Promise<Record<string, string> | undefined>;
|
|
11
|
+
onReset?: (event: Event) => void;
|
|
12
|
+
onSubmitError?: (error: unknown) => void;
|
|
5
13
|
/** Additional class names */
|
|
6
14
|
class?: string;
|
|
7
15
|
children: JSX.Element;
|
|
@@ -12,6 +20,13 @@ export interface FormProps extends Omit<JSX.FormHTMLAttributes<HTMLFormElement>,
|
|
|
12
20
|
*/
|
|
13
21
|
export declare function Form(props: FormProps): JSX.Element;
|
|
14
22
|
export interface FormFieldProps {
|
|
23
|
+
/** Put explicit control identities here so the label shares the same ID. */
|
|
24
|
+
id?: string;
|
|
25
|
+
error?: string;
|
|
26
|
+
description?: string;
|
|
27
|
+
required?: boolean;
|
|
28
|
+
disabled?: boolean;
|
|
29
|
+
readOnly?: boolean;
|
|
15
30
|
/** Field name for identification */
|
|
16
31
|
name?: string;
|
|
17
32
|
/** Additional class names */
|
|
@@ -36,11 +51,11 @@ export declare function FormLabel(props: FormLabelProps): JSX.Element;
|
|
|
36
51
|
export interface FormControlProps {
|
|
37
52
|
/** Additional class names */
|
|
38
53
|
class?: string;
|
|
39
|
-
children: JSX.Element;
|
|
54
|
+
children: JSX.Element | ((control: ReturnType<typeof useFormControl>) => JSX.Element);
|
|
40
55
|
}
|
|
41
56
|
/**
|
|
42
|
-
*
|
|
43
|
-
*
|
|
57
|
+
* Layout wrapper. Floe inputs consume the context directly. Custom controls
|
|
58
|
+
* can use the render function to spread the same reactive field properties.
|
|
44
59
|
*/
|
|
45
60
|
export declare function FormControl(props: FormControlProps): JSX.Element;
|
|
46
61
|
export interface FormDescriptionProps {
|
|
@@ -55,6 +70,10 @@ export declare function FormDescription(props: FormDescriptionProps): JSX.Elemen
|
|
|
55
70
|
export interface FormMessageProps {
|
|
56
71
|
/** Error message to display */
|
|
57
72
|
error?: string;
|
|
73
|
+
/** Issues from validators implementing Standard Schema. */
|
|
74
|
+
errors?: readonly {
|
|
75
|
+
message: string;
|
|
76
|
+
}[];
|
|
58
77
|
/** Additional class names */
|
|
59
78
|
class?: string;
|
|
60
79
|
children?: JSX.Element;
|
|
@@ -1,230 +1,281 @@
|
|
|
1
|
-
import { createComponent as f, spread as
|
|
2
|
-
import { splitProps as
|
|
3
|
-
import { cn as
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
import { createComponent as f, spread as _, mergeProps as y, insert as a, memo as L, effect as b, className as F, setAttribute as C, template as d } from "solid-js/web";
|
|
2
|
+
import { splitProps as $, createSignal as S, onCleanup as I, createUniqueId as j, Show as x, For as O, createContext as A, useContext as R } from "solid-js";
|
|
3
|
+
import { cn as g } from "../../utils/cn.js";
|
|
4
|
+
import { useFormField as q, useFormControl as B, FormFieldContext as T } from "./formFieldContext.js";
|
|
5
|
+
var V = /* @__PURE__ */ d("<form>"), H = /* @__PURE__ */ d('<p class="text-caption text-muted-foreground">'), E = /* @__PURE__ */ d("<div>"), N = /* @__PURE__ */ d('<span class="text-error ml-0.5"aria-hidden=true>*'), U = /* @__PURE__ */ d("<label>"), z = /* @__PURE__ */ d("<div data-field-control>"), G = /* @__PURE__ */ d("<p>"), J = /* @__PURE__ */ d("<ul>"), K = /* @__PURE__ */ d("<div role=alert>"), Q = /* @__PURE__ */ d("<li>"), W = /* @__PURE__ */ d('<h3 class="text-sm font-medium text-foreground">'), X = /* @__PURE__ */ d('<p class="text-[length:var(--floe-type-caption)] text-[var(--floe-ink-soft)]">'), Y = /* @__PURE__ */ d("<div class=space-y-0.5>"), Z = /* @__PURE__ */ d("<div><div class=space-y-3>"), ee = /* @__PURE__ */ d('<div><div class="flex-1 h-px bg-border"></div><span class="text-[length:var(--floe-type-caption)] text-[var(--floe-ink-quiet)] uppercase tracking-[0.06em]"></span><div class="flex-1 h-px bg-border">');
|
|
6
|
+
const M = A();
|
|
7
|
+
function P() {
|
|
8
|
+
return R(M);
|
|
8
9
|
}
|
|
9
|
-
function
|
|
10
|
-
const [e,
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
10
|
+
function se(l) {
|
|
11
|
+
const [e, r] = $(l, ["onSubmit", "onReset", "validate", "onSubmitError", "class", "children"]), [s, t] = S(!1), [n, o] = S({});
|
|
12
|
+
let c = 0;
|
|
13
|
+
I(() => {
|
|
14
|
+
c++;
|
|
15
|
+
});
|
|
16
|
+
const v = async (u) => {
|
|
17
|
+
if (u.preventDefault(), s()) return;
|
|
18
|
+
const i = u.currentTarget, m = new FormData(i, u.submitter), h = ++c;
|
|
19
|
+
t(!0);
|
|
20
|
+
try {
|
|
21
|
+
const p = e.validate ? await e.validate(m) : void 0;
|
|
22
|
+
if (h !== c) return;
|
|
23
|
+
if (o(p ?? {}), p && Object.values(p).some(Boolean)) {
|
|
24
|
+
const k = Array.from(i.elements).find((D) => "name" in D && p[String(D.name)]);
|
|
25
|
+
k instanceof HTMLElement && (k.closest("[data-field]")?.querySelector('[role="combobox"]') ?? k).focus();
|
|
26
|
+
return;
|
|
17
27
|
}
|
|
28
|
+
await e.onSubmit?.(u, {
|
|
29
|
+
form: i,
|
|
30
|
+
data: m
|
|
31
|
+
});
|
|
32
|
+
} catch (p) {
|
|
33
|
+
if (h !== c) return;
|
|
34
|
+
if (e.onSubmitError) e.onSubmitError(p);
|
|
35
|
+
else throw p;
|
|
36
|
+
} finally {
|
|
37
|
+
h === c && t(!1);
|
|
18
38
|
}
|
|
19
|
-
},
|
|
20
|
-
isSubmitting:
|
|
21
|
-
setSubmitting: t
|
|
39
|
+
}, w = {
|
|
40
|
+
isSubmitting: s,
|
|
41
|
+
setSubmitting: t,
|
|
42
|
+
errors: n
|
|
22
43
|
};
|
|
23
|
-
return f(
|
|
24
|
-
value:
|
|
44
|
+
return f(M.Provider, {
|
|
45
|
+
value: w,
|
|
25
46
|
get children() {
|
|
26
|
-
var
|
|
27
|
-
return
|
|
47
|
+
var u = V();
|
|
48
|
+
return u.addEventListener("reset", (i) => {
|
|
49
|
+
e.onReset?.(i), !i.defaultPrevented && (c++, o({}), t(!1));
|
|
50
|
+
}), u.addEventListener("submit", v), _(u, y({
|
|
51
|
+
get "aria-busy"() {
|
|
52
|
+
return s() || void 0;
|
|
53
|
+
},
|
|
28
54
|
get class() {
|
|
29
|
-
return
|
|
55
|
+
return g("space-y-4", e.class);
|
|
30
56
|
}
|
|
31
|
-
},
|
|
57
|
+
}, r), !1, !0), a(u, () => e.children), u;
|
|
32
58
|
}
|
|
33
59
|
});
|
|
34
60
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
61
|
+
function ie(l) {
|
|
62
|
+
const e = P(), [r, s] = $(l, ["id", "name", "error", "description", "required", "disabled", "readOnly", "class", "children"]), t = j(), n = () => r.id ?? `field-${t}`, [o, c] = S([]), [v, w] = S([]), u = {
|
|
63
|
+
id: n,
|
|
64
|
+
name: () => r.name,
|
|
65
|
+
error: () => r.error || (r.name ? e?.errors()[r.name] : void 0) || v().map((i) => i.error()).find(Boolean),
|
|
66
|
+
required: () => r.required,
|
|
67
|
+
disabled: () => r.disabled,
|
|
68
|
+
readOnly: () => r.readOnly,
|
|
69
|
+
descriptionIds: () => [...r.description ? [`${n()}-helper`] : [], ...o()],
|
|
70
|
+
messageIds: () => [...r.error || r.name && e?.errors()[r.name] ? [`${n()}-error`] : [], ...v().filter((i) => i.error()).map((i) => i.id)],
|
|
71
|
+
registerDescription: (i) => (c((m) => [...m, i]), () => c((m) => m.filter((h) => h !== i))),
|
|
72
|
+
registerMessage: (i, m) => (w((h) => [...h, {
|
|
73
|
+
id: i,
|
|
74
|
+
error: m
|
|
75
|
+
}]), () => w((h) => h.filter((p) => p.id !== i)))
|
|
49
76
|
};
|
|
50
|
-
return f(
|
|
51
|
-
value:
|
|
77
|
+
return f(T.Provider, {
|
|
78
|
+
value: u,
|
|
52
79
|
get children() {
|
|
53
|
-
var
|
|
54
|
-
return
|
|
80
|
+
var i = E();
|
|
81
|
+
return _(i, y({
|
|
55
82
|
get class() {
|
|
56
|
-
return
|
|
83
|
+
return g("space-y-1.5", r.class);
|
|
57
84
|
},
|
|
58
85
|
get "data-field"() {
|
|
59
|
-
return
|
|
86
|
+
return r.name;
|
|
60
87
|
}
|
|
61
|
-
},
|
|
88
|
+
}, s), !1, !0), a(i, () => r.children, null), a(i, f(x, {
|
|
89
|
+
get when() {
|
|
90
|
+
return r.description;
|
|
91
|
+
},
|
|
92
|
+
get children() {
|
|
93
|
+
var m = H();
|
|
94
|
+
return a(m, () => r.description), b(() => C(m, "id", `${n()}-helper`)), m;
|
|
95
|
+
}
|
|
96
|
+
}), null), i;
|
|
62
97
|
}
|
|
63
98
|
});
|
|
64
99
|
}
|
|
65
|
-
function
|
|
66
|
-
const [e,
|
|
100
|
+
function oe(l) {
|
|
101
|
+
const [e, r] = $(l, ["required", "class", "children"]), s = q();
|
|
67
102
|
return (() => {
|
|
68
|
-
var t =
|
|
69
|
-
return
|
|
103
|
+
var t = U();
|
|
104
|
+
return _(t, y({
|
|
70
105
|
get for() {
|
|
71
|
-
return
|
|
106
|
+
return s?.id();
|
|
72
107
|
},
|
|
73
108
|
get class() {
|
|
74
|
-
return
|
|
109
|
+
return g("block text-xs font-medium text-foreground", s?.error() && "text-error", e.class);
|
|
75
110
|
}
|
|
76
|
-
},
|
|
111
|
+
}, r), !1, !0), a(t, () => e.children, null), a(t, f(x, {
|
|
77
112
|
get when() {
|
|
78
|
-
return e.required;
|
|
113
|
+
return e.required ?? s?.required();
|
|
79
114
|
},
|
|
80
115
|
get children() {
|
|
81
|
-
return
|
|
116
|
+
return N();
|
|
82
117
|
}
|
|
83
118
|
}), null), t;
|
|
84
119
|
})();
|
|
85
120
|
}
|
|
86
|
-
function
|
|
87
|
-
const [e] =
|
|
121
|
+
function ae(l) {
|
|
122
|
+
const [e] = $(l, ["class", "children"]), r = q(), s = B();
|
|
88
123
|
return (() => {
|
|
89
|
-
var
|
|
90
|
-
return
|
|
91
|
-
var
|
|
92
|
-
return
|
|
124
|
+
var t = z();
|
|
125
|
+
return a(t, (() => {
|
|
126
|
+
var n = L(() => typeof e.children == "function");
|
|
127
|
+
return () => n() ? e.children(s) : e.children;
|
|
128
|
+
})()), b((n) => {
|
|
129
|
+
var o = g("relative", e.class), c = r?.id();
|
|
130
|
+
return o !== n.e && F(t, n.e = o), c !== n.t && C(t, "data-field-id", n.t = c), n;
|
|
93
131
|
}, {
|
|
94
132
|
e: void 0,
|
|
95
133
|
t: void 0
|
|
96
|
-
}),
|
|
134
|
+
}), t;
|
|
97
135
|
})();
|
|
98
136
|
}
|
|
99
|
-
function
|
|
100
|
-
const [e] =
|
|
101
|
-
return (() => {
|
|
102
|
-
var
|
|
103
|
-
return
|
|
104
|
-
var s = n.helperId, i = u("text-[length:var(--floe-type-caption)] text-[var(--floe-ink-soft)]", e.class);
|
|
105
|
-
return s !== t.e && $(r, "id", t.e = s), i !== t.t && p(r, t.t = i), t;
|
|
106
|
-
}, {
|
|
107
|
-
e: void 0,
|
|
108
|
-
t: void 0
|
|
109
|
-
}), r;
|
|
137
|
+
function ce(l) {
|
|
138
|
+
const [e] = $(l, ["class", "children"]), r = q(), s = j(), t = `${r?.id() ?? s}-description-${s}`;
|
|
139
|
+
return r && I(r.registerDescription(t)), (() => {
|
|
140
|
+
var n = G();
|
|
141
|
+
return C(n, "id", t), a(n, () => e.children), b(() => F(n, g("text-[length:var(--floe-type-caption)] text-[var(--floe-ink-soft)]", e.class))), n;
|
|
110
142
|
})();
|
|
111
143
|
}
|
|
112
|
-
function
|
|
113
|
-
const
|
|
114
|
-
return f(
|
|
144
|
+
function de(l) {
|
|
145
|
+
const e = q(), r = j(), s = `message-${r}`, t = () => l.error || l.errors?.map((n) => n.message).join(" ") || (l.children ? String(l.children) : void 0);
|
|
146
|
+
return e && I(e.registerMessage(s, () => t())), f(x, {
|
|
115
147
|
get when() {
|
|
116
|
-
return
|
|
148
|
+
return t() || e?.error();
|
|
117
149
|
},
|
|
118
150
|
get children() {
|
|
119
|
-
var
|
|
120
|
-
return
|
|
121
|
-
|
|
122
|
-
|
|
151
|
+
var n = K();
|
|
152
|
+
return a(n, f(x, {
|
|
153
|
+
get when() {
|
|
154
|
+
return l.errors?.length;
|
|
155
|
+
},
|
|
156
|
+
get fallback() {
|
|
157
|
+
return l.error ?? l.children ?? e?.error();
|
|
158
|
+
},
|
|
159
|
+
get children() {
|
|
160
|
+
var o = J();
|
|
161
|
+
return a(o, f(O, {
|
|
162
|
+
get each() {
|
|
163
|
+
return l.errors;
|
|
164
|
+
},
|
|
165
|
+
children: (c) => (() => {
|
|
166
|
+
var v = Q();
|
|
167
|
+
return a(v, () => c.message), v;
|
|
168
|
+
})()
|
|
169
|
+
})), o;
|
|
170
|
+
}
|
|
171
|
+
})), b((o) => {
|
|
172
|
+
var c = t() ? s : `${e?.id() ?? r}-error`, v = g("text-caption text-error", l.class);
|
|
173
|
+
return c !== o.e && C(n, "id", o.e = c), v !== o.t && F(n, o.t = v), o;
|
|
123
174
|
}, {
|
|
124
175
|
e: void 0,
|
|
125
176
|
t: void 0
|
|
126
|
-
}),
|
|
177
|
+
}), n;
|
|
127
178
|
}
|
|
128
179
|
});
|
|
129
180
|
}
|
|
130
|
-
function
|
|
131
|
-
const [e,
|
|
181
|
+
function ue(l) {
|
|
182
|
+
const [e, r] = $(l, ["align", "class", "children"]), s = {
|
|
132
183
|
start: "justify-start",
|
|
133
184
|
center: "justify-center",
|
|
134
185
|
end: "justify-end",
|
|
135
186
|
between: "justify-between"
|
|
136
187
|
};
|
|
137
188
|
return (() => {
|
|
138
|
-
var t =
|
|
139
|
-
return
|
|
189
|
+
var t = E();
|
|
190
|
+
return _(t, y({
|
|
140
191
|
get class() {
|
|
141
|
-
return
|
|
192
|
+
return g("flex items-center gap-2 pt-2", s[e.align ?? "end"], e.class);
|
|
142
193
|
}
|
|
143
|
-
},
|
|
194
|
+
}, r), !1, !0), a(t, () => e.children), t;
|
|
144
195
|
})();
|
|
145
196
|
}
|
|
146
|
-
function
|
|
147
|
-
const [e,
|
|
197
|
+
function me(l) {
|
|
198
|
+
const [e, r] = $(l, ["title", "description", "class", "children"]);
|
|
148
199
|
return (() => {
|
|
149
|
-
var
|
|
150
|
-
return
|
|
200
|
+
var s = Z(), t = s.firstChild;
|
|
201
|
+
return _(s, y({
|
|
151
202
|
get class() {
|
|
152
|
-
return
|
|
203
|
+
return g("space-y-3", e.class);
|
|
153
204
|
}
|
|
154
|
-
},
|
|
205
|
+
}, r), !1, !0), a(s, f(x, {
|
|
155
206
|
get when() {
|
|
156
207
|
return e.title || e.description;
|
|
157
208
|
},
|
|
158
209
|
get children() {
|
|
159
|
-
var
|
|
160
|
-
return
|
|
210
|
+
var n = Y();
|
|
211
|
+
return a(n, f(x, {
|
|
161
212
|
get when() {
|
|
162
213
|
return e.title;
|
|
163
214
|
},
|
|
164
215
|
get children() {
|
|
165
|
-
var
|
|
166
|
-
return
|
|
216
|
+
var o = W();
|
|
217
|
+
return a(o, () => e.title), o;
|
|
167
218
|
}
|
|
168
|
-
}), null),
|
|
219
|
+
}), null), a(n, f(x, {
|
|
169
220
|
get when() {
|
|
170
221
|
return e.description;
|
|
171
222
|
},
|
|
172
223
|
get children() {
|
|
173
|
-
var
|
|
174
|
-
return
|
|
224
|
+
var o = X();
|
|
225
|
+
return a(o, () => e.description), o;
|
|
175
226
|
}
|
|
176
|
-
}), null),
|
|
227
|
+
}), null), n;
|
|
177
228
|
}
|
|
178
|
-
}), t),
|
|
229
|
+
}), t), a(t, () => e.children), s;
|
|
179
230
|
})();
|
|
180
231
|
}
|
|
181
|
-
function
|
|
182
|
-
const [e] =
|
|
183
|
-
return f(
|
|
232
|
+
function fe(l) {
|
|
233
|
+
const [e] = $(l, ["label", "class"]);
|
|
234
|
+
return f(x, {
|
|
184
235
|
get when() {
|
|
185
236
|
return e.label;
|
|
186
237
|
},
|
|
187
238
|
get fallback() {
|
|
188
239
|
return (() => {
|
|
189
|
-
var
|
|
190
|
-
return
|
|
240
|
+
var r = E();
|
|
241
|
+
return b(() => F(r, g("h-px bg-border my-4", e.class))), r;
|
|
191
242
|
})();
|
|
192
243
|
},
|
|
193
244
|
get children() {
|
|
194
|
-
var
|
|
195
|
-
return
|
|
245
|
+
var r = ee(), s = r.firstChild, t = s.nextSibling;
|
|
246
|
+
return a(t, () => e.label), b(() => F(r, g("flex items-center gap-3 my-4", e.class))), r;
|
|
196
247
|
}
|
|
197
248
|
});
|
|
198
249
|
}
|
|
199
|
-
function
|
|
200
|
-
const [e,
|
|
250
|
+
function ge(l) {
|
|
251
|
+
const [e, r] = $(l, ["cols", "class", "children"]), s = {
|
|
201
252
|
1: "grid-cols-1",
|
|
202
253
|
2: "sm:grid-cols-2",
|
|
203
254
|
3: "sm:grid-cols-3",
|
|
204
255
|
4: "sm:grid-cols-4"
|
|
205
256
|
};
|
|
206
257
|
return (() => {
|
|
207
|
-
var t =
|
|
208
|
-
return
|
|
258
|
+
var t = E();
|
|
259
|
+
return _(t, y({
|
|
209
260
|
get class() {
|
|
210
|
-
return
|
|
261
|
+
return g("grid gap-3 grid-cols-1", s[e.cols ?? 2], e.class);
|
|
211
262
|
}
|
|
212
|
-
},
|
|
263
|
+
}, r), !1, !0), a(t, () => e.children), t;
|
|
213
264
|
})();
|
|
214
265
|
}
|
|
215
|
-
function
|
|
216
|
-
return
|
|
266
|
+
function ve() {
|
|
267
|
+
return P()?.isSubmitting;
|
|
217
268
|
}
|
|
218
269
|
export {
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
270
|
+
se as Form,
|
|
271
|
+
ue as FormActions,
|
|
272
|
+
ae as FormControl,
|
|
273
|
+
ce as FormDescription,
|
|
274
|
+
fe as FormDivider,
|
|
275
|
+
ie as FormField,
|
|
276
|
+
oe as FormLabel,
|
|
277
|
+
de as FormMessage,
|
|
278
|
+
ge as FormRow,
|
|
279
|
+
me as FormSection,
|
|
280
|
+
ve as useFormSubmitting
|
|
230
281
|
};
|
|
@@ -27,6 +27,12 @@ export declare function Textarea(props: TextareaProps): JSX.Element;
|
|
|
27
27
|
* NumberInput - Number input with increment/decrement buttons
|
|
28
28
|
*/
|
|
29
29
|
export interface NumberInputProps {
|
|
30
|
+
id?: string;
|
|
31
|
+
name?: string;
|
|
32
|
+
required?: boolean;
|
|
33
|
+
ariaLabel?: string;
|
|
34
|
+
ariaDescribedBy?: string;
|
|
35
|
+
readOnly?: boolean;
|
|
30
36
|
/** Current value */
|
|
31
37
|
value: number;
|
|
32
38
|
/** Called when value changes */
|