@kanzo-tech/ui 0.11.0 → 0.13.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/analytics.d.ts +1 -0
- package/dist/analytics.d.ts.map +1 -1
- package/dist/charts/chart-inputs.d.ts +6 -5
- package/dist/charts/chart-inputs.d.ts.map +1 -1
- package/dist/charts/chart-inputs.js +78 -77
- package/dist/charts/chart-inputs.js.map +1 -1
- package/dist/charts/chart-marks.d.ts +2 -1
- package/dist/charts/chart-marks.d.ts.map +1 -1
- package/dist/charts/chart-marks.js.map +1 -1
- package/dist/charts/chart-root.d.ts +8 -3
- package/dist/charts/chart-root.d.ts.map +1 -1
- package/dist/charts/chart-root.js +60 -60
- package/dist/charts/chart-root.js.map +1 -1
- package/dist/charts/chart-spec.d.ts +11 -4
- package/dist/charts/chart-spec.d.ts.map +1 -1
- package/dist/charts/chart-spec.js +44 -40
- package/dist/charts/chart-spec.js.map +1 -1
- package/dist/charts/chart-stat.d.ts +3 -2
- package/dist/charts/chart-stat.d.ts.map +1 -1
- package/dist/charts/chart-stat.js +10 -9
- package/dist/charts/chart-stat.js.map +1 -1
- package/dist/composites/language-picker.d.ts +51 -0
- package/dist/composites/language-picker.d.ts.map +1 -0
- package/dist/composites/language-picker.js +165 -0
- package/dist/composites/language-picker.js.map +1 -0
- package/dist/index.d.ts +8 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +687 -677
- package/dist/index.js.map +1 -1
- package/dist/lib/control-size.d.ts +26 -0
- package/dist/lib/control-size.d.ts.map +1 -0
- package/dist/lib/control-size.js +11 -0
- package/dist/lib/control-size.js.map +1 -0
- package/dist/lib/use-async-collection.d.ts +57 -0
- package/dist/lib/use-async-collection.d.ts.map +1 -0
- package/dist/lib/use-async-collection.js +43 -0
- package/dist/lib/use-async-collection.js.map +1 -0
- package/dist/lib/use-debounced-commit.d.ts +28 -0
- package/dist/lib/use-debounced-commit.d.ts.map +1 -0
- package/dist/lib/use-debounced-commit.js +26 -0
- package/dist/lib/use-debounced-commit.js.map +1 -0
- package/dist/shark-parity.divergences.d.ts.map +1 -1
- package/dist/simples/button.d.ts.map +1 -1
- package/dist/simples/button.js +34 -33
- package/dist/simples/button.js.map +1 -1
- package/dist/simples/checkbox.d.ts.map +1 -1
- package/dist/simples/checkbox.js +42 -42
- package/dist/simples/checkbox.js.map +1 -1
- package/dist/simples/combobox.d.ts.map +1 -1
- package/dist/simples/combobox.js +48 -49
- package/dist/simples/combobox.js.map +1 -1
- package/dist/simples/date-picker.d.ts +58 -2
- package/dist/simples/date-picker.d.ts.map +1 -1
- package/dist/simples/date-picker.js +210 -73
- package/dist/simples/date-picker.js.map +1 -1
- package/dist/simples/field.d.ts +35 -2
- package/dist/simples/field.d.ts.map +1 -1
- package/dist/simples/field.js +146 -116
- package/dist/simples/field.js.map +1 -1
- package/dist/simples/input-group.d.ts +9 -9
- package/dist/simples/input-group.d.ts.map +1 -1
- package/dist/simples/input-group.js +68 -78
- package/dist/simples/input-group.js.map +1 -1
- package/dist/simples/input.d.ts +9 -9
- package/dist/simples/input.d.ts.map +1 -1
- package/dist/simples/input.js +13 -14
- package/dist/simples/input.js.map +1 -1
- package/dist/simples/locale.d.ts +4 -0
- package/dist/simples/locale.d.ts.map +1 -0
- package/dist/simples/locale.js +8 -0
- package/dist/simples/locale.js.map +1 -0
- package/dist/simples/native-select.d.ts +9 -9
- package/dist/simples/native-select.d.ts.map +1 -1
- package/dist/simples/native-select.js +29 -28
- package/dist/simples/native-select.js.map +1 -1
- package/dist/simples/number-input.d.ts +9 -9
- package/dist/simples/number-input.d.ts.map +1 -1
- package/dist/simples/number-input.js +27 -27
- package/dist/simples/number-input.js.map +1 -1
- package/dist/simples/password-input.d.ts.map +1 -1
- package/dist/simples/password-input.js +24 -20
- package/dist/simples/password-input.js.map +1 -1
- package/dist/simples/pin-input.d.ts +9 -9
- package/dist/simples/pin-input.d.ts.map +1 -1
- package/dist/simples/pin-input.js +30 -29
- package/dist/simples/pin-input.js.map +1 -1
- package/dist/simples/radio-group.d.ts.map +1 -1
- package/dist/simples/radio-group.js +44 -43
- package/dist/simples/radio-group.js.map +1 -1
- package/dist/simples/segment-group.d.ts +8 -0
- package/dist/simples/segment-group.d.ts.map +1 -1
- package/dist/simples/segment-group.js +66 -52
- package/dist/simples/segment-group.js.map +1 -1
- package/dist/simples/switch.d.ts.map +1 -1
- package/dist/simples/switch.js +18 -12
- package/dist/simples/switch.js.map +1 -1
- package/dist/simples/tags-input.d.ts.map +1 -1
- package/dist/simples/tags-input.js +44 -39
- package/dist/simples/tags-input.js.map +1 -1
- package/dist/simples/toggle.d.ts +9 -9
- package/dist/simples/toggle.d.ts.map +1 -1
- package/dist/simples/toggle.js +24 -23
- package/dist/simples/toggle.js.map +1 -1
- package/package.json +5 -5
package/dist/simples/field.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { jsx as
|
|
1
|
+
import { jsx as r, jsxs as u } from "react/jsx-runtime";
|
|
2
2
|
import { ark as d } from "@ark-ui/react/factory";
|
|
3
3
|
import { useFieldContext as m, Field as i } from "@ark-ui/react/field";
|
|
4
4
|
import { Fieldset as n } from "@ark-ui/react/fieldset";
|
|
5
|
-
import { tv as
|
|
6
|
-
import { cn as
|
|
5
|
+
import { tv as f } from "tailwind-variants";
|
|
6
|
+
import { cn as l } from "../lib/cn.js";
|
|
7
7
|
import { Separator as p } from "./separator.js";
|
|
8
|
-
const
|
|
8
|
+
const V = m, g = f({
|
|
9
9
|
base: [
|
|
10
10
|
"group/field",
|
|
11
11
|
"w-full",
|
|
@@ -42,86 +42,102 @@ const w = m, g = u({
|
|
|
42
42
|
orientation: "vertical",
|
|
43
43
|
reverse: !1
|
|
44
44
|
}
|
|
45
|
-
}),
|
|
46
|
-
const { orientation:
|
|
47
|
-
return /* @__PURE__ */
|
|
45
|
+
}), H = (a) => {
|
|
46
|
+
const { orientation: e = "vertical", reverse: t = !1, className: o, slot: s, ...c } = a;
|
|
47
|
+
return /* @__PURE__ */ r(
|
|
48
48
|
i.Root,
|
|
49
49
|
{
|
|
50
|
-
className:
|
|
51
|
-
"data-orientation":
|
|
50
|
+
className: l(g({ orientation: e, reverse: t }), o),
|
|
51
|
+
"data-orientation": e,
|
|
52
52
|
...c,
|
|
53
53
|
"data-slot": s ?? "field"
|
|
54
54
|
}
|
|
55
55
|
);
|
|
56
56
|
}, S = (a) => {
|
|
57
|
-
const { className:
|
|
58
|
-
return /* @__PURE__ */
|
|
57
|
+
const { className: e, slot: t, ...o } = a;
|
|
58
|
+
return /* @__PURE__ */ r(
|
|
59
59
|
n.Root,
|
|
60
60
|
{
|
|
61
|
-
className:
|
|
61
|
+
className: l(
|
|
62
62
|
"flex flex-col gap-6",
|
|
63
63
|
"has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3",
|
|
64
64
|
"data-invalid:text-destructive-foreground",
|
|
65
65
|
"dark:data-invalid:text-destructive-foreground",
|
|
66
|
-
|
|
66
|
+
e
|
|
67
67
|
),
|
|
68
|
-
...
|
|
69
|
-
"data-slot":
|
|
68
|
+
...o,
|
|
69
|
+
"data-slot": t ?? "field-set"
|
|
70
70
|
}
|
|
71
71
|
);
|
|
72
72
|
}, T = (a) => {
|
|
73
|
-
const { variant:
|
|
74
|
-
return /* @__PURE__ */
|
|
73
|
+
const { variant: e = "legend", className: t, slot: o, ...s } = a;
|
|
74
|
+
return /* @__PURE__ */ r(
|
|
75
75
|
n.Legend,
|
|
76
76
|
{
|
|
77
|
-
className:
|
|
77
|
+
className: l(
|
|
78
78
|
"mb-3 font-medium",
|
|
79
79
|
"data-[variant=legend]:text-base",
|
|
80
80
|
"data-[variant=label]:text-sm",
|
|
81
|
-
|
|
81
|
+
t
|
|
82
82
|
),
|
|
83
|
-
"data-variant":
|
|
83
|
+
"data-variant": e,
|
|
84
84
|
...s,
|
|
85
|
-
"data-slot":
|
|
85
|
+
"data-slot": o ?? "field-legend"
|
|
86
86
|
}
|
|
87
87
|
);
|
|
88
|
-
},
|
|
89
|
-
|
|
90
|
-
|
|
88
|
+
}, x = f({
|
|
89
|
+
base: [
|
|
90
|
+
"group/field-group @container/field-group",
|
|
91
|
+
"w-full gap-4",
|
|
92
|
+
"data-[data-slot=checkbox-group]:gap-3",
|
|
93
|
+
"*:data-[slot=field-group]:gap-4"
|
|
94
|
+
],
|
|
95
|
+
variants: {
|
|
96
|
+
// A closed set of counts, each a whole class, so a caller overrides one per breakpoint with a
|
|
97
|
+
// class of its own — `columns={1} className="sm:grid-cols-2"`. It was a `--columns` custom
|
|
98
|
+
// property written to `style`, as `RadioGroup` does, and an inline property beats every class,
|
|
99
|
+
// so that override was the one thing it could not express.
|
|
100
|
+
columns: {
|
|
101
|
+
stack: "flex flex-col",
|
|
102
|
+
1: "grid grid-cols-1",
|
|
103
|
+
2: "grid grid-cols-2",
|
|
104
|
+
3: "grid grid-cols-3",
|
|
105
|
+
4: "grid grid-cols-4",
|
|
106
|
+
auto: "grid grid-cols-[repeat(auto-fit,minmax(14rem,1fr))]"
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
defaultVariants: { columns: "stack" }
|
|
110
|
+
}), E = (a) => {
|
|
111
|
+
const { columns: e = "stack", className: t, slot: o, ...s } = a;
|
|
112
|
+
return /* @__PURE__ */ r(
|
|
91
113
|
d.div,
|
|
92
114
|
{
|
|
93
|
-
className:
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
"data-[data-slot=checkbox-group]:gap-3",
|
|
97
|
-
"*:data-[slot=field-group]:gap-4",
|
|
98
|
-
t
|
|
99
|
-
),
|
|
100
|
-
...l,
|
|
101
|
-
"data-slot": e ?? "field-group"
|
|
115
|
+
className: l(x({ columns: e }), t),
|
|
116
|
+
...s,
|
|
117
|
+
"data-slot": o ?? "field-group"
|
|
102
118
|
}
|
|
103
119
|
);
|
|
104
|
-
},
|
|
105
|
-
const { className:
|
|
106
|
-
return /* @__PURE__ */
|
|
120
|
+
}, L = (a) => {
|
|
121
|
+
const { className: e, slot: t, ...o } = a;
|
|
122
|
+
return /* @__PURE__ */ r(
|
|
107
123
|
d.div,
|
|
108
124
|
{
|
|
109
|
-
className:
|
|
125
|
+
className: l(
|
|
110
126
|
"group/field-content",
|
|
111
127
|
"flex flex-1 flex-col gap-1.5",
|
|
112
128
|
"leading-snug",
|
|
113
|
-
|
|
129
|
+
e
|
|
114
130
|
),
|
|
115
|
-
...
|
|
116
|
-
"data-slot":
|
|
131
|
+
...o,
|
|
132
|
+
"data-slot": t ?? "field-content"
|
|
117
133
|
}
|
|
118
134
|
);
|
|
119
|
-
},
|
|
120
|
-
const { className:
|
|
121
|
-
return /* @__PURE__ */
|
|
135
|
+
}, R = (a) => {
|
|
136
|
+
const { className: e, slot: t, ...o } = a;
|
|
137
|
+
return /* @__PURE__ */ r(
|
|
122
138
|
i.Label,
|
|
123
139
|
{
|
|
124
|
-
className:
|
|
140
|
+
className: l(
|
|
125
141
|
"group/field-label peer/field-label",
|
|
126
142
|
"select-none font-medium text-sm leading-snug",
|
|
127
143
|
"flex w-fit gap-1",
|
|
@@ -129,23 +145,23 @@ const w = m, g = u({
|
|
|
129
145
|
"has-data-[state=checked]:border-primary has-data-[state=checked]:bg-primary/5",
|
|
130
146
|
"group-data-disabled/field:opacity-64",
|
|
131
147
|
"dark:has-data-[state=checked]:bg-primary/10",
|
|
132
|
-
|
|
148
|
+
e
|
|
133
149
|
),
|
|
134
|
-
...
|
|
135
|
-
"data-slot":
|
|
150
|
+
...o,
|
|
151
|
+
"data-slot": t ?? "field-label"
|
|
136
152
|
}
|
|
137
153
|
);
|
|
138
|
-
},
|
|
139
|
-
const { className:
|
|
140
|
-
return /* @__PURE__ */
|
|
154
|
+
}, q = (a) => {
|
|
155
|
+
const { className: e, children: t, slot: o, fallback: s, ...c } = a;
|
|
156
|
+
return /* @__PURE__ */ r(
|
|
141
157
|
i.RequiredIndicator,
|
|
142
158
|
{
|
|
143
159
|
"aria-hidden": !0,
|
|
144
|
-
className:
|
|
160
|
+
className: l(
|
|
145
161
|
"select-none text-destructive-foreground text-sm",
|
|
146
|
-
|
|
162
|
+
e
|
|
147
163
|
),
|
|
148
|
-
fallback: s == null ? null : /* @__PURE__ */
|
|
164
|
+
fallback: s == null ? null : /* @__PURE__ */ r(
|
|
149
165
|
"span",
|
|
150
166
|
{
|
|
151
167
|
className: "select-none font-normal text-muted-foreground text-sm",
|
|
@@ -154,32 +170,32 @@ const w = m, g = u({
|
|
|
154
170
|
}
|
|
155
171
|
),
|
|
156
172
|
...c,
|
|
157
|
-
"data-slot":
|
|
158
|
-
children:
|
|
173
|
+
"data-slot": o ?? "field-required-indicator",
|
|
174
|
+
children: t ?? "*"
|
|
159
175
|
}
|
|
160
176
|
);
|
|
161
|
-
},
|
|
162
|
-
const { className:
|
|
163
|
-
return /* @__PURE__ */
|
|
177
|
+
}, z = (a) => {
|
|
178
|
+
const { className: e, slot: t, ...o } = a;
|
|
179
|
+
return /* @__PURE__ */ r(
|
|
164
180
|
d.div,
|
|
165
181
|
{
|
|
166
|
-
className:
|
|
182
|
+
className: l(
|
|
167
183
|
"w-fit",
|
|
168
184
|
"flex items-center gap-2",
|
|
169
185
|
"font-medium text-sm leading-snug",
|
|
170
186
|
"group-data-[disabled=true]/field:opacity-64",
|
|
171
|
-
|
|
187
|
+
e
|
|
172
188
|
),
|
|
173
|
-
...
|
|
174
|
-
"data-slot":
|
|
189
|
+
...o,
|
|
190
|
+
"data-slot": t ?? "field-title"
|
|
175
191
|
}
|
|
176
192
|
);
|
|
177
|
-
},
|
|
178
|
-
const { className:
|
|
179
|
-
return /* @__PURE__ */
|
|
193
|
+
}, j = (a) => {
|
|
194
|
+
const { className: e, slot: t, ...o } = a;
|
|
195
|
+
return /* @__PURE__ */ r(
|
|
180
196
|
d.p,
|
|
181
197
|
{
|
|
182
|
-
className:
|
|
198
|
+
className: l(
|
|
183
199
|
"pointer-events-none",
|
|
184
200
|
"font-normal text-muted-foreground text-sm leading-normal",
|
|
185
201
|
"group-has-data-[orientation=horizontal]/field:text-balance",
|
|
@@ -187,107 +203,121 @@ const w = m, g = u({
|
|
|
187
203
|
"nth-last-2:-mt-1 last:mt-0 [[data-variant=legend]+&]:-mt-1.5",
|
|
188
204
|
"in-[[data-slot=field]:has([data-slot=radio-group-item])]:ms-6 in-[[data-slot=field]:has([data-slot=radio-group-item])]:-mt-1.5!",
|
|
189
205
|
"[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4",
|
|
190
|
-
|
|
206
|
+
e
|
|
191
207
|
),
|
|
192
|
-
...
|
|
193
|
-
"data-slot":
|
|
208
|
+
...o,
|
|
209
|
+
"data-slot": t ?? "field-description"
|
|
194
210
|
}
|
|
195
211
|
);
|
|
196
|
-
},
|
|
197
|
-
const { className:
|
|
198
|
-
return /* @__PURE__ */
|
|
212
|
+
}, C = (a) => {
|
|
213
|
+
const { className: e, children: t, slot: o, ...s } = a;
|
|
214
|
+
return /* @__PURE__ */ u(
|
|
199
215
|
d.div,
|
|
200
216
|
{
|
|
201
|
-
className:
|
|
217
|
+
className: l(
|
|
202
218
|
"relative",
|
|
203
219
|
"h-5",
|
|
204
220
|
"-my-2 group-data-[variant=outline]/field-group:-mb-2",
|
|
205
221
|
"text-sm",
|
|
206
|
-
|
|
222
|
+
e
|
|
207
223
|
),
|
|
208
|
-
"data-content": !!
|
|
224
|
+
"data-content": !!t,
|
|
209
225
|
...s,
|
|
210
|
-
"data-slot":
|
|
226
|
+
"data-slot": o ?? "field-separator",
|
|
211
227
|
children: [
|
|
212
|
-
/* @__PURE__ */
|
|
213
|
-
!!
|
|
228
|
+
/* @__PURE__ */ r(p, { className: "absolute inset-0 top-1/2" }),
|
|
229
|
+
!!t && /* @__PURE__ */ r(
|
|
214
230
|
"span",
|
|
215
231
|
{
|
|
216
|
-
className:
|
|
232
|
+
className: l(
|
|
217
233
|
"relative block",
|
|
218
234
|
"w-fit",
|
|
219
235
|
"mx-auto px-2",
|
|
220
236
|
"bg-background",
|
|
221
237
|
"text-muted-foreground text-sm"
|
|
222
238
|
),
|
|
223
|
-
children:
|
|
239
|
+
children: t
|
|
224
240
|
}
|
|
225
241
|
)
|
|
226
242
|
]
|
|
227
243
|
}
|
|
228
244
|
);
|
|
229
|
-
},
|
|
230
|
-
|
|
231
|
-
|
|
245
|
+
}, v = f({
|
|
246
|
+
base: "text-sm",
|
|
247
|
+
variants: {
|
|
248
|
+
// `muted` is what a helper always was. The two others are for a message that is neither
|
|
249
|
+
// guidance nor an error: a warning the value survives, or a note about what it will do. They
|
|
250
|
+
// are text colours and nothing else — a message that must block belongs in `FieldError`.
|
|
251
|
+
tone: {
|
|
252
|
+
muted: "text-muted-foreground",
|
|
253
|
+
info: "text-info-foreground",
|
|
254
|
+
warning: "text-warning-foreground"
|
|
255
|
+
}
|
|
256
|
+
},
|
|
257
|
+
defaultVariants: { tone: "muted" }
|
|
258
|
+
}), G = (a) => {
|
|
259
|
+
const { tone: e = "muted", className: t, slot: o, ...s } = a;
|
|
260
|
+
return /* @__PURE__ */ r(
|
|
232
261
|
i.HelperText,
|
|
233
262
|
{
|
|
234
|
-
className:
|
|
235
|
-
|
|
236
|
-
|
|
263
|
+
className: l(v({ tone: e }), t),
|
|
264
|
+
"data-tone": e,
|
|
265
|
+
...s,
|
|
266
|
+
"data-slot": o ?? "field-helper"
|
|
237
267
|
}
|
|
238
268
|
);
|
|
239
269
|
}, I = (a) => {
|
|
240
|
-
const { className:
|
|
241
|
-
return /* @__PURE__ */
|
|
270
|
+
const { className: e, slot: t, ...o } = a;
|
|
271
|
+
return /* @__PURE__ */ r(
|
|
242
272
|
i.ErrorText,
|
|
243
273
|
{
|
|
244
|
-
className:
|
|
274
|
+
className: l(
|
|
245
275
|
"font-normal text-destructive-foreground text-sm",
|
|
246
|
-
|
|
276
|
+
e
|
|
247
277
|
),
|
|
248
|
-
...
|
|
249
|
-
"data-slot":
|
|
278
|
+
...o,
|
|
279
|
+
"data-slot": t ?? "field-error"
|
|
250
280
|
}
|
|
251
281
|
);
|
|
252
|
-
},
|
|
253
|
-
const { className:
|
|
254
|
-
return /* @__PURE__ */
|
|
282
|
+
}, D = (a) => {
|
|
283
|
+
const { className: e, slot: t, ...o } = a;
|
|
284
|
+
return /* @__PURE__ */ r(
|
|
255
285
|
n.HelperText,
|
|
256
286
|
{
|
|
257
|
-
className:
|
|
258
|
-
...
|
|
259
|
-
"data-slot":
|
|
287
|
+
className: l("text-muted-foreground text-sm", e),
|
|
288
|
+
...o,
|
|
289
|
+
"data-slot": t ?? "field-set-helper"
|
|
260
290
|
}
|
|
261
291
|
);
|
|
262
|
-
},
|
|
263
|
-
const { className:
|
|
264
|
-
return /* @__PURE__ */
|
|
292
|
+
}, $ = (a) => {
|
|
293
|
+
const { className: e, slot: t, ...o } = a;
|
|
294
|
+
return /* @__PURE__ */ r(
|
|
265
295
|
n.ErrorText,
|
|
266
296
|
{
|
|
267
|
-
className:
|
|
297
|
+
className: l(
|
|
268
298
|
"font-normal text-destructive-foreground text-sm",
|
|
269
|
-
|
|
299
|
+
e
|
|
270
300
|
),
|
|
271
|
-
...
|
|
272
|
-
"data-slot":
|
|
301
|
+
...o,
|
|
302
|
+
"data-slot": t ?? "field-set-error"
|
|
273
303
|
}
|
|
274
304
|
);
|
|
275
305
|
};
|
|
276
306
|
export {
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
307
|
+
H as Field,
|
|
308
|
+
L as FieldContent,
|
|
309
|
+
j as FieldDescription,
|
|
280
310
|
I as FieldError,
|
|
281
311
|
E as FieldGroup,
|
|
282
|
-
|
|
283
|
-
|
|
312
|
+
G as FieldHelper,
|
|
313
|
+
R as FieldLabel,
|
|
284
314
|
T as FieldLegend,
|
|
285
|
-
|
|
286
|
-
|
|
315
|
+
q as FieldRequiredIndicator,
|
|
316
|
+
C as FieldSeparator,
|
|
287
317
|
S as FieldSet,
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
318
|
+
$ as FieldSetError,
|
|
319
|
+
D as FieldSetHelper,
|
|
320
|
+
z as FieldTitle,
|
|
321
|
+
V as useField
|
|
292
322
|
};
|
|
293
323
|
//# sourceMappingURL=field.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field.js","sources":["../../src/simples/field.tsx"],"sourcesContent":["import { ark } from \"@ark-ui/react/factory\";\nimport {\n Field as ArkField,\n useFieldContext as useArkFieldContext,\n} from \"@ark-ui/react/field\";\nimport { Fieldset as ArkFieldset } from \"@ark-ui/react/fieldset\";\nimport type React from \"react\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\nimport { cn } from \"../lib/cn\";\nimport { Separator } from \"./separator\";\n\nexport const useField = useArkFieldContext;\n\nconst fieldVariants = tv({\n base: [\n \"group/field\",\n \"w-full\",\n \"flex gap-2\",\n \"data-invalid:text-destructive-foreground\",\n \"dark:data-invalid:text-destructive-foreground\",\n ],\n variants: {\n orientation: {\n vertical: [\"flex-col *:w-full [&>.sr-only]:w-auto\"],\n horizontal: [\n \"flex-row items-center\",\n \"*:data-[slot=field-label]:flex-auto\",\n \"has-[>[data-slot=field-content]]:items-start has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px\",\n ],\n responsive: [\n \"flex-col *:w-full [&>.sr-only]:w-auto\",\n \"@md/field-group:flex-row @md/field-group:items-center @md/field-group:*:w-auto\",\n \"@md/field-group:*:data-[slot=field-label]:flex-auto\",\n \"@md/field-group:has-[>[data-slot=field-content]]:items-start\",\n \"@md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px\",\n ],\n },\n reverse: {\n true: [\n \"data-[orientation=horizontal]:flex-row-reverse\",\n \"data-[orientation=vertical]:flex-col-reverse\",\n \"data-[orientation=responsive]:flex-col-reverse\",\n \"data-[orientation=responsive]:@md/field-group:flex-row-reverse\",\n ],\n },\n },\n defaultVariants: {\n orientation: \"vertical\",\n reverse: false,\n },\n});\n\ninterface FieldProps\n extends React.ComponentProps<typeof ArkField.Root>,\n VariantProps<typeof fieldVariants> {}\n\nexport const Field = (props: FieldProps) => {\n const { orientation = \"vertical\", reverse = false, className, slot, ...rest } = props;\n\n return (\n <ArkField.Root\n className={cn(fieldVariants({ orientation, reverse }), className)}\n data-orientation={orientation}\n {...rest}\n data-slot={slot ?? \"field\"}\n />\n );\n};\n\nexport const FieldSet = (\n props: React.ComponentProps<typeof ArkFieldset.Root>\n) => {\n const { className, slot, ...rest } = props;\n\n return (\n <ArkFieldset.Root\n className={cn(\n \"flex flex-col gap-6\",\n \"has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3\",\n \"data-invalid:text-destructive-foreground\",\n \"dark:data-invalid:text-destructive-foreground\",\n className\n )}\n {...rest}\n data-slot={slot ?? \"field-set\"}\n />\n );\n};\n\ninterface FieldLegendProps\n extends React.ComponentProps<typeof ArkFieldset.Legend> {\n /**\n * The variant of the legend.\n */\n variant?: \"legend\" | \"label\";\n}\n\nexport const FieldLegend = (props: FieldLegendProps) => {\n const { variant = \"legend\", className, slot, ...rest } = props;\n\n return (\n <ArkFieldset.Legend\n className={cn(\n \"mb-3 font-medium\",\n \"data-[variant=legend]:text-base\",\n \"data-[variant=label]:text-sm\",\n className\n )}\n data-variant={variant}\n {...rest}\n data-slot={slot ?? \"field-legend\"}\n />\n );\n};\n\nexport const FieldGroup = (props: React.ComponentProps<typeof ark.div>) => {\n const { className, slot, ...rest } = props;\n\n return (\n <ark.div\n className={cn(\n \"group/field-group @container/field-group\",\n \"flex w-full flex-col gap-4\",\n \"data-[data-slot=checkbox-group]:gap-3\",\n \"*:data-[slot=field-group]:gap-4\",\n className\n )}\n {...rest}\n data-slot={slot ?? \"field-group\"}\n />\n );\n};\n\nexport const FieldContent = (props: React.ComponentProps<typeof ark.div>) => {\n const { className, slot, ...rest } = props;\n\n return (\n <ark.div\n className={cn(\n \"group/field-content\",\n \"flex flex-1 flex-col gap-1.5\",\n \"leading-snug\",\n className\n )}\n {...rest}\n data-slot={slot ?? \"field-content\"}\n />\n );\n};\n\nexport const FieldLabel = (\n props: React.ComponentProps<typeof ArkField.Label>\n) => {\n const { className, slot, ...rest } = props;\n\n return (\n <ArkField.Label\n className={cn(\n \"group/field-label peer/field-label\",\n \"select-none font-medium text-sm leading-snug\",\n \"flex w-fit gap-1\",\n \"has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col has-[>[data-slot=field]]:rounded-xl has-[>[data-slot=field]]:border *:data-[slot=field]:p-2.5\",\n \"has-data-[state=checked]:border-primary has-data-[state=checked]:bg-primary/5\",\n \"group-data-disabled/field:opacity-64\",\n \"dark:has-data-[state=checked]:bg-primary/10\",\n className\n )}\n {...rest}\n data-slot={slot ?? \"field-label\"}\n />\n );\n};\n\n/**\n * The `*` of a required field and, through Ark's `fallback`, what an optional one says instead —\n * one part, so a form marks one of the two and never both. The asterisk is hidden from assistive\n * tech because the control's `required` already announces it; the fallback is not, because nothing\n * else says a field is optional. Its text is the host's: this library ships no product copy.\n */\nexport const FieldRequiredIndicator = (\n props: React.ComponentProps<typeof ArkField.RequiredIndicator>\n) => {\n const { className, children, slot, fallback, ...rest } = props;\n\n return (\n <ArkField.RequiredIndicator\n aria-hidden\n className={cn(\n \"select-none text-destructive-foreground text-sm\",\n className\n )}\n fallback={\n fallback == null ? null : (\n <span\n className=\"select-none font-normal text-muted-foreground text-sm\"\n data-slot=\"field-optional-indicator\"\n >\n {fallback}\n </span>\n )\n }\n {...rest}\n data-slot={slot ?? \"field-required-indicator\"}\n >\n {children ?? \"*\"}\n </ArkField.RequiredIndicator>\n );\n};\n\nexport const FieldTitle = (props: React.ComponentProps<typeof ark.div>) => {\n const { className, slot, ...rest } = props;\n\n return (\n <ark.div\n className={cn(\n \"w-fit\",\n \"flex items-center gap-2\",\n \"font-medium text-sm leading-snug\",\n \"group-data-[disabled=true]/field:opacity-64\",\n className\n )}\n {...rest}\n data-slot={slot ?? \"field-title\"}\n />\n );\n};\n\nexport const FieldDescription = (props: React.ComponentProps<typeof ark.p>) => {\n const { className, slot, ...rest } = props;\n\n return (\n <ark.p\n className={cn(\n \"pointer-events-none\",\n \"font-normal text-muted-foreground text-sm leading-normal\",\n \"group-has-data-[orientation=horizontal]/field:text-balance\",\n \"@md/field-group:group-data-[orientation=responsive]/field:text-balance\",\n \"nth-last-2:-mt-1 last:mt-0 [[data-variant=legend]+&]:-mt-1.5\",\n \"in-[[data-slot=field]:has([data-slot=radio-group-item])]:ms-6 in-[[data-slot=field]:has([data-slot=radio-group-item])]:-mt-1.5!\",\n \"[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4\",\n className\n )}\n {...rest}\n data-slot={slot ?? \"field-description\"}\n />\n );\n};\n\nexport const FieldSeparator = (props: React.ComponentProps<typeof ark.div>) => {\n const { className, children, slot, ...rest } = props;\n\n return (\n <ark.div\n className={cn(\n \"relative\",\n \"h-5\",\n \"-my-2 group-data-[variant=outline]/field-group:-mb-2\",\n \"text-sm\",\n className\n )}\n data-content={!!children}\n {...rest}\n data-slot={slot ?? \"field-separator\"}\n >\n <Separator className=\"absolute inset-0 top-1/2\" />\n\n {!!children && (\n <span\n className={cn(\n \"relative block\",\n \"w-fit\",\n \"mx-auto px-2\",\n \"bg-background\",\n \"text-muted-foreground text-sm\"\n )}\n >\n {children}\n </span>\n )}\n </ark.div>\n );\n};\n\nexport const FieldHelper = (\n props: React.ComponentProps<typeof ArkField.HelperText>\n) => {\n const { className, slot, ...rest } = props;\n\n return (\n <ArkField.HelperText\n className={cn(\"text-muted-foreground text-sm\", className)}\n {...rest}\n data-slot={slot ?? \"field-helper\"}\n />\n );\n};\n\nexport const FieldError = (\n props: React.ComponentProps<typeof ArkField.ErrorText>\n) => {\n const { className, slot, ...rest } = props;\n\n return (\n <ArkField.ErrorText\n className={cn(\n \"font-normal text-destructive-foreground text-sm\",\n className\n )}\n {...rest}\n data-slot={slot ?? \"field-error\"}\n />\n );\n};\n\n// The two below look like copies of the two above and are not: these are the fieldset machine's\n// message parts, describing the whole `FieldSet`, while `FieldHelper` / `FieldError` come from the\n// field machine and describe one control. Same typography, different scope — and a `FieldSet` needs\n// its own, because a group-level message wired to a single field is announced on the wrong control.\n\nexport const FieldSetHelper = (\n props: React.ComponentProps<typeof ArkFieldset.HelperText>\n) => {\n const { className, slot, ...rest } = props;\n\n return (\n <ArkFieldset.HelperText\n className={cn(\"text-muted-foreground text-sm\", className)}\n {...rest}\n data-slot={slot ?? \"field-set-helper\"}\n />\n );\n};\n\nexport const FieldSetError = (\n props: React.ComponentProps<typeof ArkFieldset.ErrorText>\n) => {\n const { className, slot, ...rest } = props;\n\n return (\n <ArkFieldset.ErrorText\n className={cn(\n \"font-normal text-destructive-foreground text-sm\",\n className\n )}\n {...rest}\n data-slot={slot ?? \"field-set-error\"}\n />\n );\n};\n"],"names":["useField","useArkFieldContext","fieldVariants","tv","Field","props","orientation","reverse","className","slot","rest","jsx","ArkField","cn","FieldSet","ArkFieldset","FieldLegend","variant","FieldGroup","ark","FieldContent","FieldLabel","FieldRequiredIndicator","children","fallback","FieldTitle","FieldDescription","FieldSeparator","jsxs","Separator","FieldHelper","FieldError","FieldSetHelper","FieldSetError"],"mappings":";;;;;;;AAWO,MAAMA,IAAWC,GAElBC,IAAgBC,EAAG;AAAA,EACvB,MAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAAA,EAEF,UAAU;AAAA,IACR,aAAa;AAAA,MACX,UAAU,CAAC,uCAAuC;AAAA,MAClD,YAAY;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAAA,MAEF,YAAY;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAAA,IACF;AAAA,IAEF,SAAS;AAAA,MACP,MAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAAA,IACF;AAAA,EACF;AAAA,EAEF,iBAAiB;AAAA,IACf,aAAa;AAAA,IACb,SAAS;AAAA,EAAA;AAEb,CAAC,GAMYC,IAAQ,CAACC,MAAsB;AAC1C,QAAM,EAAE,aAAAC,IAAc,YAAY,SAAAC,IAAU,IAAO,WAAAC,GAAW,MAAAC,GAAM,GAAGC,EAAA,IAASL;AAEhF,SACE,gBAAAM;AAAA,IAACC,EAAS;AAAA,IAAT;AAAA,MACC,WAAWC,EAAGX,EAAc,EAAE,aAAAI,GAAa,SAAAC,EAAA,CAAS,GAAGC,CAAS;AAAA,MAChE,oBAAkBF;AAAA,MACjB,GAAGI;AAAA,MACJ,aAAWD,KAAQ;AAAA,IAAA;AAAA,EAAA;AAGzB,GAEaK,IAAW,CACtBT,MACG;AACH,QAAM,EAAE,WAAAG,GAAW,MAAAC,GAAM,GAAGC,MAASL;AAErC,SACE,gBAAAM;AAAA,IAACI,EAAY;AAAA,IAAZ;AAAA,MACC,WAAWF;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACAL;AAAA,MAAA;AAAA,MAED,GAAGE;AAAA,MACJ,aAAWD,KAAQ;AAAA,IAAA;AAAA,EAAA;AAGzB,GAUaO,IAAc,CAACX,MAA4B;AACtD,QAAM,EAAE,SAAAY,IAAU,UAAU,WAAAT,GAAW,MAAAC,GAAM,GAAGC,MAASL;AAEzD,SACE,gBAAAM;AAAA,IAACI,EAAY;AAAA,IAAZ;AAAA,MACC,WAAWF;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACAL;AAAA,MAAA;AAAA,MAEF,gBAAcS;AAAA,MACb,GAAGP;AAAA,MACJ,aAAWD,KAAQ;AAAA,IAAA;AAAA,EAAA;AAGzB,GAEaS,IAAa,CAACb,MAAgD;AACzE,QAAM,EAAE,WAAAG,GAAW,MAAAC,GAAM,GAAGC,MAASL;AAErC,SACE,gBAAAM;AAAA,IAACQ,EAAI;AAAA,IAAJ;AAAA,MACC,WAAWN;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACAL;AAAA,MAAA;AAAA,MAED,GAAGE;AAAA,MACJ,aAAWD,KAAQ;AAAA,IAAA;AAAA,EAAA;AAGzB,GAEaW,IAAe,CAACf,MAAgD;AAC3E,QAAM,EAAE,WAAAG,GAAW,MAAAC,GAAM,GAAGC,MAASL;AAErC,SACE,gBAAAM;AAAA,IAACQ,EAAI;AAAA,IAAJ;AAAA,MACC,WAAWN;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACAL;AAAA,MAAA;AAAA,MAED,GAAGE;AAAA,MACJ,aAAWD,KAAQ;AAAA,IAAA;AAAA,EAAA;AAGzB,GAEaY,IAAa,CACxBhB,MACG;AACH,QAAM,EAAE,WAAAG,GAAW,MAAAC,GAAM,GAAGC,MAASL;AAErC,SACE,gBAAAM;AAAA,IAACC,EAAS;AAAA,IAAT;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACAL;AAAA,MAAA;AAAA,MAED,GAAGE;AAAA,MACJ,aAAWD,KAAQ;AAAA,IAAA;AAAA,EAAA;AAGzB,GAQaa,IAAyB,CACpCjB,MACG;AACH,QAAM,EAAE,WAAAG,GAAW,UAAAe,GAAU,MAAAd,GAAM,UAAAe,GAAU,GAAGd,MAASL;AAEzD,SACE,gBAAAM;AAAA,IAACC,EAAS;AAAA,IAAT;AAAA,MACC,eAAW;AAAA,MACX,WAAWC;AAAA,QACT;AAAA,QACAL;AAAA,MAAA;AAAA,MAEF,UACEgB,KAAY,OAAO,OACjB,gBAAAb;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAU;AAAA,UACV,aAAU;AAAA,UAET,UAAAa;AAAA,QAAA;AAAA,MAAA;AAAA,MAIN,GAAGd;AAAA,MACJ,aAAWD,KAAQ;AAAA,MAElB,UAAAc,KAAY;AAAA,IAAA;AAAA,EAAA;AAGnB,GAEaE,IAAa,CAACpB,MAAgD;AACzE,QAAM,EAAE,WAAAG,GAAW,MAAAC,GAAM,GAAGC,MAASL;AAErC,SACE,gBAAAM;AAAA,IAACQ,EAAI;AAAA,IAAJ;AAAA,MACC,WAAWN;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACAL;AAAA,MAAA;AAAA,MAED,GAAGE;AAAA,MACJ,aAAWD,KAAQ;AAAA,IAAA;AAAA,EAAA;AAGzB,GAEaiB,IAAmB,CAACrB,MAA8C;AAC7E,QAAM,EAAE,WAAAG,GAAW,MAAAC,GAAM,GAAGC,MAASL;AAErC,SACE,gBAAAM;AAAA,IAACQ,EAAI;AAAA,IAAJ;AAAA,MACC,WAAWN;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACAL;AAAA,MAAA;AAAA,MAED,GAAGE;AAAA,MACJ,aAAWD,KAAQ;AAAA,IAAA;AAAA,EAAA;AAGzB,GAEakB,IAAiB,CAACtB,MAAgD;AAC7E,QAAM,EAAE,WAAAG,GAAW,UAAAe,GAAU,MAAAd,GAAM,GAAGC,MAASL;AAE/C,SACE,gBAAAuB;AAAA,IAACT,EAAI;AAAA,IAAJ;AAAA,MACC,WAAWN;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACAL;AAAA,MAAA;AAAA,MAEF,gBAAc,CAAC,CAACe;AAAA,MACf,GAAGb;AAAA,MACJ,aAAWD,KAAQ;AAAA,MAEnB,UAAA;AAAA,QAAA,gBAAAE,EAACkB,GAAA,EAAU,WAAU,2BAAA,CAA2B;AAAA,QAE/C,CAAC,CAACN,KACD,gBAAAZ;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAWE;AAAA,cACT;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YAAA;AAAA,YAGD,UAAAU;AAAA,UAAA;AAAA,QAAA;AAAA,MACH;AAAA,IAAA;AAAA,EAAA;AAIR,GAEaO,IAAc,CACzBzB,MACG;AACH,QAAM,EAAE,WAAAG,GAAW,MAAAC,GAAM,GAAGC,MAASL;AAErC,SACE,gBAAAM;AAAA,IAACC,EAAS;AAAA,IAAT;AAAA,MACC,WAAWC,EAAG,iCAAiCL,CAAS;AAAA,MACvD,GAAGE;AAAA,MACJ,aAAWD,KAAQ;AAAA,IAAA;AAAA,EAAA;AAGzB,GAEasB,IAAa,CACxB1B,MACG;AACH,QAAM,EAAE,WAAAG,GAAW,MAAAC,GAAM,GAAGC,MAASL;AAErC,SACE,gBAAAM;AAAA,IAACC,EAAS;AAAA,IAAT;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACAL;AAAA,MAAA;AAAA,MAED,GAAGE;AAAA,MACJ,aAAWD,KAAQ;AAAA,IAAA;AAAA,EAAA;AAGzB,GAOauB,IAAiB,CAC5B3B,MACG;AACH,QAAM,EAAE,WAAAG,GAAW,MAAAC,GAAM,GAAGC,MAASL;AAErC,SACE,gBAAAM;AAAA,IAACI,EAAY;AAAA,IAAZ;AAAA,MACC,WAAWF,EAAG,iCAAiCL,CAAS;AAAA,MACvD,GAAGE;AAAA,MACJ,aAAWD,KAAQ;AAAA,IAAA;AAAA,EAAA;AAGzB,GAEawB,IAAgB,CAC3B5B,MACG;AACH,QAAM,EAAE,WAAAG,GAAW,MAAAC,GAAM,GAAGC,MAASL;AAErC,SACE,gBAAAM;AAAA,IAACI,EAAY;AAAA,IAAZ;AAAA,MACC,WAAWF;AAAA,QACT;AAAA,QACAL;AAAA,MAAA;AAAA,MAED,GAAGE;AAAA,MACJ,aAAWD,KAAQ;AAAA,IAAA;AAAA,EAAA;AAGzB;"}
|
|
1
|
+
{"version":3,"file":"field.js","sources":["../../src/simples/field.tsx"],"sourcesContent":["import { ark } from \"@ark-ui/react/factory\";\nimport {\n Field as ArkField,\n useFieldContext as useArkFieldContext,\n} from \"@ark-ui/react/field\";\nimport { Fieldset as ArkFieldset } from \"@ark-ui/react/fieldset\";\nimport type React from \"react\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\nimport { cn } from \"../lib/cn\";\nimport { Separator } from \"./separator\";\n\nexport const useField = useArkFieldContext;\n\nconst fieldVariants = tv({\n base: [\n \"group/field\",\n \"w-full\",\n \"flex gap-2\",\n \"data-invalid:text-destructive-foreground\",\n \"dark:data-invalid:text-destructive-foreground\",\n ],\n variants: {\n orientation: {\n vertical: [\"flex-col *:w-full [&>.sr-only]:w-auto\"],\n horizontal: [\n \"flex-row items-center\",\n \"*:data-[slot=field-label]:flex-auto\",\n \"has-[>[data-slot=field-content]]:items-start has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px\",\n ],\n responsive: [\n \"flex-col *:w-full [&>.sr-only]:w-auto\",\n \"@md/field-group:flex-row @md/field-group:items-center @md/field-group:*:w-auto\",\n \"@md/field-group:*:data-[slot=field-label]:flex-auto\",\n \"@md/field-group:has-[>[data-slot=field-content]]:items-start\",\n \"@md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px\",\n ],\n },\n reverse: {\n true: [\n \"data-[orientation=horizontal]:flex-row-reverse\",\n \"data-[orientation=vertical]:flex-col-reverse\",\n \"data-[orientation=responsive]:flex-col-reverse\",\n \"data-[orientation=responsive]:@md/field-group:flex-row-reverse\",\n ],\n },\n },\n defaultVariants: {\n orientation: \"vertical\",\n reverse: false,\n },\n});\n\ninterface FieldProps\n extends React.ComponentProps<typeof ArkField.Root>,\n VariantProps<typeof fieldVariants> {}\n\nexport const Field = (props: FieldProps) => {\n const { orientation = \"vertical\", reverse = false, className, slot, ...rest } = props;\n\n return (\n <ArkField.Root\n className={cn(fieldVariants({ orientation, reverse }), className)}\n data-orientation={orientation}\n {...rest}\n data-slot={slot ?? \"field\"}\n />\n );\n};\n\nexport const FieldSet = (\n props: React.ComponentProps<typeof ArkFieldset.Root>\n) => {\n const { className, slot, ...rest } = props;\n\n return (\n <ArkFieldset.Root\n className={cn(\n \"flex flex-col gap-6\",\n \"has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3\",\n \"data-invalid:text-destructive-foreground\",\n \"dark:data-invalid:text-destructive-foreground\",\n className\n )}\n {...rest}\n data-slot={slot ?? \"field-set\"}\n />\n );\n};\n\ninterface FieldLegendProps\n extends React.ComponentProps<typeof ArkFieldset.Legend> {\n /**\n * The variant of the legend.\n */\n variant?: \"legend\" | \"label\";\n}\n\nexport const FieldLegend = (props: FieldLegendProps) => {\n const { variant = \"legend\", className, slot, ...rest } = props;\n\n return (\n <ArkFieldset.Legend\n className={cn(\n \"mb-3 font-medium\",\n \"data-[variant=legend]:text-base\",\n \"data-[variant=label]:text-sm\",\n className\n )}\n data-variant={variant}\n {...rest}\n data-slot={slot ?? \"field-legend\"}\n />\n );\n};\n\nconst fieldGroupVariants = tv({\n base: [\n \"group/field-group @container/field-group\",\n \"w-full gap-4\",\n \"data-[data-slot=checkbox-group]:gap-3\",\n \"*:data-[slot=field-group]:gap-4\",\n ],\n variants: {\n // A closed set of counts, each a whole class, so a caller overrides one per breakpoint with a\n // class of its own — `columns={1} className=\"sm:grid-cols-2\"`. It was a `--columns` custom\n // property written to `style`, as `RadioGroup` does, and an inline property beats every class,\n // so that override was the one thing it could not express.\n columns: {\n stack: \"flex flex-col\",\n 1: \"grid grid-cols-1\",\n 2: \"grid grid-cols-2\",\n 3: \"grid grid-cols-3\",\n 4: \"grid grid-cols-4\",\n auto: \"grid grid-cols-[repeat(auto-fit,minmax(14rem,1fr))]\",\n },\n },\n defaultVariants: { columns: \"stack\" },\n});\n\ninterface FieldGroupProps extends React.ComponentProps<typeof ark.div> {\n /**\n * Lay the fields out in a grid: one to four equal columns, or `\"auto\"` to fit as many as the\n * width allows. Omitted, they stack. A field that should span the row takes `col-span-full`.\n */\n columns?: 1 | 2 | 3 | 4 | \"auto\";\n}\n\nexport const FieldGroup = (props: FieldGroupProps) => {\n const { columns = \"stack\", className, slot, ...rest } = props;\n\n return (\n <ark.div\n className={cn(fieldGroupVariants({ columns }), className)}\n {...rest}\n data-slot={slot ?? \"field-group\"}\n />\n );\n};\n\nexport const FieldContent = (props: React.ComponentProps<typeof ark.div>) => {\n const { className, slot, ...rest } = props;\n\n return (\n <ark.div\n className={cn(\n \"group/field-content\",\n \"flex flex-1 flex-col gap-1.5\",\n \"leading-snug\",\n className\n )}\n {...rest}\n data-slot={slot ?? \"field-content\"}\n />\n );\n};\n\nexport const FieldLabel = (\n props: React.ComponentProps<typeof ArkField.Label>\n) => {\n const { className, slot, ...rest } = props;\n\n return (\n <ArkField.Label\n className={cn(\n \"group/field-label peer/field-label\",\n \"select-none font-medium text-sm leading-snug\",\n \"flex w-fit gap-1\",\n \"has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col has-[>[data-slot=field]]:rounded-xl has-[>[data-slot=field]]:border *:data-[slot=field]:p-2.5\",\n \"has-data-[state=checked]:border-primary has-data-[state=checked]:bg-primary/5\",\n \"group-data-disabled/field:opacity-64\",\n \"dark:has-data-[state=checked]:bg-primary/10\",\n className\n )}\n {...rest}\n data-slot={slot ?? \"field-label\"}\n />\n );\n};\n\n/**\n * The `*` of a required field and, through Ark's `fallback`, what an optional one says instead —\n * one part, so a form marks one of the two and never both. The asterisk is hidden from assistive\n * tech because the control's `required` already announces it; the fallback is not, because nothing\n * else says a field is optional. Its text is the host's: this library ships no product copy.\n */\nexport const FieldRequiredIndicator = (\n props: React.ComponentProps<typeof ArkField.RequiredIndicator>\n) => {\n const { className, children, slot, fallback, ...rest } = props;\n\n return (\n <ArkField.RequiredIndicator\n aria-hidden\n className={cn(\n \"select-none text-destructive-foreground text-sm\",\n className\n )}\n fallback={\n fallback == null ? null : (\n <span\n className=\"select-none font-normal text-muted-foreground text-sm\"\n data-slot=\"field-optional-indicator\"\n >\n {fallback}\n </span>\n )\n }\n {...rest}\n data-slot={slot ?? \"field-required-indicator\"}\n >\n {children ?? \"*\"}\n </ArkField.RequiredIndicator>\n );\n};\n\nexport const FieldTitle = (props: React.ComponentProps<typeof ark.div>) => {\n const { className, slot, ...rest } = props;\n\n return (\n <ark.div\n className={cn(\n \"w-fit\",\n \"flex items-center gap-2\",\n \"font-medium text-sm leading-snug\",\n \"group-data-[disabled=true]/field:opacity-64\",\n className\n )}\n {...rest}\n data-slot={slot ?? \"field-title\"}\n />\n );\n};\n\nexport const FieldDescription = (props: React.ComponentProps<typeof ark.p>) => {\n const { className, slot, ...rest } = props;\n\n return (\n <ark.p\n className={cn(\n \"pointer-events-none\",\n \"font-normal text-muted-foreground text-sm leading-normal\",\n \"group-has-data-[orientation=horizontal]/field:text-balance\",\n \"@md/field-group:group-data-[orientation=responsive]/field:text-balance\",\n \"nth-last-2:-mt-1 last:mt-0 [[data-variant=legend]+&]:-mt-1.5\",\n \"in-[[data-slot=field]:has([data-slot=radio-group-item])]:ms-6 in-[[data-slot=field]:has([data-slot=radio-group-item])]:-mt-1.5!\",\n \"[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4\",\n className\n )}\n {...rest}\n data-slot={slot ?? \"field-description\"}\n />\n );\n};\n\nexport const FieldSeparator = (props: React.ComponentProps<typeof ark.div>) => {\n const { className, children, slot, ...rest } = props;\n\n return (\n <ark.div\n className={cn(\n \"relative\",\n \"h-5\",\n \"-my-2 group-data-[variant=outline]/field-group:-mb-2\",\n \"text-sm\",\n className\n )}\n data-content={!!children}\n {...rest}\n data-slot={slot ?? \"field-separator\"}\n >\n <Separator className=\"absolute inset-0 top-1/2\" />\n\n {!!children && (\n <span\n className={cn(\n \"relative block\",\n \"w-fit\",\n \"mx-auto px-2\",\n \"bg-background\",\n \"text-muted-foreground text-sm\"\n )}\n >\n {children}\n </span>\n )}\n </ark.div>\n );\n};\n\nconst fieldHelperVariants = tv({\n base: \"text-sm\",\n variants: {\n // `muted` is what a helper always was. The two others are for a message that is neither\n // guidance nor an error: a warning the value survives, or a note about what it will do. They\n // are text colours and nothing else — a message that must block belongs in `FieldError`.\n tone: {\n muted: \"text-muted-foreground\",\n info: \"text-info-foreground\",\n warning: \"text-warning-foreground\",\n },\n },\n defaultVariants: { tone: \"muted\" },\n});\n\ninterface FieldHelperProps\n extends React.ComponentProps<typeof ArkField.HelperText>,\n VariantProps<typeof fieldHelperVariants> {}\n\n/**\n * The one message wired into the control's `aria-describedby`, and there is one per `Field`: Ark\n * gives every `HelperText` the same id, so a second would collide. A warning beside a description\n * is therefore this part with a `tone` for the warning and `FieldDescription` for the description.\n */\nexport const FieldHelper = (props: FieldHelperProps) => {\n const { tone = \"muted\", className, slot, ...rest } = props;\n\n return (\n <ArkField.HelperText\n className={cn(fieldHelperVariants({ tone }), className)}\n data-tone={tone}\n {...rest}\n data-slot={slot ?? \"field-helper\"}\n />\n );\n};\n\nexport const FieldError = (\n props: React.ComponentProps<typeof ArkField.ErrorText>\n) => {\n const { className, slot, ...rest } = props;\n\n return (\n <ArkField.ErrorText\n className={cn(\n \"font-normal text-destructive-foreground text-sm\",\n className\n )}\n {...rest}\n data-slot={slot ?? \"field-error\"}\n />\n );\n};\n\n// The two below look like copies of the two above and are not: these are the fieldset machine's\n// message parts, describing the whole `FieldSet`, while `FieldHelper` / `FieldError` come from the\n// field machine and describe one control. Same typography, different scope — and a `FieldSet` needs\n// its own, because a group-level message wired to a single field is announced on the wrong control.\n\nexport const FieldSetHelper = (\n props: React.ComponentProps<typeof ArkFieldset.HelperText>\n) => {\n const { className, slot, ...rest } = props;\n\n return (\n <ArkFieldset.HelperText\n className={cn(\"text-muted-foreground text-sm\", className)}\n {...rest}\n data-slot={slot ?? \"field-set-helper\"}\n />\n );\n};\n\nexport const FieldSetError = (\n props: React.ComponentProps<typeof ArkFieldset.ErrorText>\n) => {\n const { className, slot, ...rest } = props;\n\n return (\n <ArkFieldset.ErrorText\n className={cn(\n \"font-normal text-destructive-foreground text-sm\",\n className\n )}\n {...rest}\n data-slot={slot ?? \"field-set-error\"}\n />\n );\n};\n"],"names":["useField","useArkFieldContext","fieldVariants","tv","Field","props","orientation","reverse","className","slot","rest","jsx","ArkField","cn","FieldSet","ArkFieldset","FieldLegend","variant","fieldGroupVariants","FieldGroup","columns","ark","FieldContent","FieldLabel","FieldRequiredIndicator","children","fallback","FieldTitle","FieldDescription","FieldSeparator","jsxs","Separator","fieldHelperVariants","FieldHelper","tone","FieldError","FieldSetHelper","FieldSetError"],"mappings":"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"}
|
|
@@ -6,21 +6,21 @@ import { Input } from './input';
|
|
|
6
6
|
import { Textarea } from './textarea';
|
|
7
7
|
declare const inpuGroupVariants: import('tailwind-variants').TVReturnType<{
|
|
8
8
|
size: {
|
|
9
|
-
sm:
|
|
10
|
-
md:
|
|
11
|
-
lg:
|
|
9
|
+
readonly sm: "[--size:calc(var(--size-field)*7)]";
|
|
10
|
+
readonly md: "[--size:calc(var(--size-field)*8)]";
|
|
11
|
+
readonly lg: "[--size:calc(var(--size-field)*9)]";
|
|
12
12
|
};
|
|
13
13
|
}, undefined, string[], {
|
|
14
14
|
size: {
|
|
15
|
-
sm:
|
|
16
|
-
md:
|
|
17
|
-
lg:
|
|
15
|
+
readonly sm: "[--size:calc(var(--size-field)*7)]";
|
|
16
|
+
readonly md: "[--size:calc(var(--size-field)*8)]";
|
|
17
|
+
readonly lg: "[--size:calc(var(--size-field)*9)]";
|
|
18
18
|
};
|
|
19
19
|
}, undefined, import('tailwind-variants').TVReturnType<{
|
|
20
20
|
size: {
|
|
21
|
-
sm:
|
|
22
|
-
md:
|
|
23
|
-
lg:
|
|
21
|
+
readonly sm: "[--size:calc(var(--size-field)*7)]";
|
|
22
|
+
readonly md: "[--size:calc(var(--size-field)*8)]";
|
|
23
|
+
readonly lg: "[--size:calc(var(--size-field)*9)]";
|
|
24
24
|
};
|
|
25
25
|
}, undefined, string[], unknown, unknown, undefined>>;
|
|
26
26
|
export interface InputGroupProps extends React.ComponentProps<typeof ark.div>, VariantProps<typeof inpuGroupVariants> {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input-group.d.ts","sourceRoot":"","sources":["../../src/simples/input-group.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAC5C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAM,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"input-group.d.ts","sourceRoot":"","sources":["../../src/simples/input-group.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAC5C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAM,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAG1D,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,QAAA,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;qDAoCrB,CAAC;AAEH,MAAM,WAAW,eACf,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,EAC1C,YAAY,CAAC,OAAO,iBAAiB,CAAC;CAAG;AAE7C,eAAO,MAAM,UAAU,GAAI,OAAO,eAAe,sBAYhD,CAAC;AAEF,QAAA,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;qDA8C3B,CAAC;AAEH,UAAU,oBACR,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,EAC1C,YAAY,CAAC,OAAO,uBAAuB,CAAC;CAAG;AAEnD,eAAO,MAAM,eAAe,GAAI,OAAO,oBAAoB,sBAkB1D,CAAC;AAEF,QAAA,MAAM,wBAAwB;;QAUxB;;;;;;;;;;;;WAYG;;;;;;QAZH;;;;;;;;;;;;WAYG;;;;;;QAZH;;;;;;;;;;;;WAYG;;;;qDAWP,CAAC;AAEH,UAAU,qBACR,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,EAAE,MAAM,CAAC,EACvD,YAAY,CAAC,OAAO,wBAAwB,CAAC;CAAG;AAEpD,eAAO,MAAM,gBAAgB,GAAI,OAAO,qBAAqB,sBAoB5D,CAAC;AAEF,eAAO,MAAM,cAAc,GACzB,OAAO,KAAK,CAAC,cAAc,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,sBAgB7C,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,OAAO,KAAK,CAAC,cAAc,CAAC,OAAO,KAAK,CAAC,sBAoBxE,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAC7B,OAAO,KAAK,CAAC,cAAc,CAAC,OAAO,QAAQ,CAAC,sBAmB7C,CAAC"}
|