@spark-ui/components 17.2.5-beta.0 → 17.3.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/{FormFieldRequiredIndicator-CtgkvPZo.js → FormFieldRequiredIndicator-CEB8Ez-q.js} +2 -2
- package/dist/{FormFieldRequiredIndicator-CtgkvPZo.js.map → FormFieldRequiredIndicator-CEB8Ez-q.js.map} +1 -1
- package/dist/{FormFieldRequiredIndicator-DOGQ_HxO.mjs → FormFieldRequiredIndicator-CzdpinIz.mjs} +2 -2
- package/dist/{FormFieldRequiredIndicator-DOGQ_HxO.mjs.map → FormFieldRequiredIndicator-CzdpinIz.mjs.map} +1 -1
- package/dist/avatar/index.js +1 -1
- package/dist/avatar/index.mjs +1 -1
- package/dist/button/index.js +1 -1
- package/dist/button/index.mjs +1 -1
- package/dist/{button-CvvFH9fU.js → button-B-sMnDc_.js} +2 -2
- package/dist/{button-CvvFH9fU.js.map → button-B-sMnDc_.js.map} +1 -1
- package/dist/{button-CaQkq3cR.mjs → button-C6nlNPdv.mjs} +26 -25
- package/dist/{button-CaQkq3cR.mjs.map → button-C6nlNPdv.mjs.map} +1 -1
- package/dist/carousel/index.js +1 -1
- package/dist/carousel/index.mjs +1 -1
- package/dist/checkbox/index.js +1 -2
- package/dist/checkbox/index.mjs +2 -216
- package/dist/checkbox-DjwbAH09.js +2 -0
- package/dist/checkbox-DjwbAH09.js.map +1 -0
- package/dist/checkbox-xsURzANi.mjs +216 -0
- package/dist/checkbox-xsURzANi.mjs.map +1 -0
- package/dist/chip/index.js +1 -1
- package/dist/chip/index.js.map +1 -1
- package/dist/chip/index.mjs +1 -1
- package/dist/chip/index.mjs.map +1 -1
- package/dist/combobox/index.js +1 -1
- package/dist/combobox/index.js.map +1 -1
- package/dist/combobox/index.mjs +3 -3
- package/dist/combobox/index.mjs.map +1 -1
- package/dist/dialog/index.js +1 -1
- package/dist/dialog/index.mjs +2 -2
- package/dist/drawer/index.js +1 -1
- package/dist/drawer/index.mjs +2 -2
- package/dist/dropdown/index.js +1 -1
- package/dist/dropdown/index.js.map +1 -1
- package/dist/dropdown/index.mjs +2 -2
- package/dist/dropdown/index.mjs.map +1 -1
- package/dist/file-upload/index.js +1 -1
- package/dist/file-upload/index.mjs +3 -3
- package/dist/form-field/index.js +1 -1
- package/dist/form-field/index.mjs +1 -1
- package/dist/{form-field-Bu_0E9tb.js → form-field-81wzFxM0.js} +2 -2
- package/dist/{form-field-Bu_0E9tb.js.map → form-field-81wzFxM0.js.map} +1 -1
- package/dist/{form-field-B8QzM655.mjs → form-field-GTAuK_nO.mjs} +3 -3
- package/dist/{form-field-B8QzM655.mjs.map → form-field-GTAuK_nO.mjs.map} +1 -1
- package/dist/icon-button/index.js +1 -1
- package/dist/icon-button/index.mjs +1 -1
- package/dist/icon-button-CYz_Fitz.js +2 -0
- package/dist/{icon-button-D1Lg6gvI.js.map → icon-button-CYz_Fitz.js.map} +1 -1
- package/dist/{icon-button-C669hs83.mjs → icon-button-DpucUC_L.mjs} +3 -3
- package/dist/{icon-button-C669hs83.mjs.map → icon-button-DpucUC_L.mjs.map} +1 -1
- package/dist/input/index.js +1 -1
- package/dist/input/index.mjs +1 -1
- package/dist/{input-C8JGTQf_.js → input-BUSYZ_VO.js} +2 -2
- package/dist/input-BUSYZ_VO.js.map +1 -0
- package/dist/{input-n-ocJBNV.mjs → input-CiWFuTs_.mjs} +7 -7
- package/dist/input-CiWFuTs_.mjs.map +1 -0
- package/dist/label/index.js +1 -1
- package/dist/label/index.mjs +1 -1
- package/dist/{label-DU0p0d-f.js → label-BCSEss4U.js} +1 -1
- package/dist/{label-DU0p0d-f.js.map → label-BCSEss4U.js.map} +1 -1
- package/dist/{label-BqRlrca0.mjs → label-DDBRKLUX.mjs} +1 -1
- package/dist/{label-BqRlrca0.mjs.map → label-DDBRKLUX.mjs.map} +1 -1
- package/dist/pagination/index.js +1 -1
- package/dist/pagination/index.js.map +1 -1
- package/dist/pagination/index.mjs +14 -14
- package/dist/pagination/index.mjs.map +1 -1
- package/dist/popover/index.js +1 -1
- package/dist/popover/index.mjs +1 -1
- package/dist/{popover-DeJQ91qR.js → popover-CrKp_TKk.js} +2 -2
- package/dist/{popover-DeJQ91qR.js.map → popover-CrKp_TKk.js.map} +1 -1
- package/dist/{popover-BC8GjGp3.mjs → popover-DsBY8eYl.mjs} +2 -2
- package/dist/{popover-BC8GjGp3.mjs.map → popover-DsBY8eYl.mjs.map} +1 -1
- package/dist/progress/index.js +1 -1
- package/dist/progress/index.mjs +1 -1
- package/dist/{progress-rJZcPJsZ.js → progress-BjqJSRnK.js} +1 -1
- package/dist/{progress-rJZcPJsZ.js.map → progress-BjqJSRnK.js.map} +1 -1
- package/dist/{progress-cEf3tFbn.mjs → progress-C3w4PmxY.mjs} +1 -1
- package/dist/{progress-cEf3tFbn.mjs.map → progress-C3w4PmxY.mjs.map} +1 -1
- package/dist/rating/index.js +1 -1
- package/dist/rating/index.mjs +1 -1
- package/dist/scrolling-list/index.js +1 -1
- package/dist/scrolling-list/index.mjs +2 -2
- package/dist/select/index.js +1 -1
- package/dist/select/index.js.map +1 -1
- package/dist/select/index.mjs +1 -1
- package/dist/select/index.mjs.map +1 -1
- package/dist/slider/index.js +1 -1
- package/dist/slider/index.mjs +2 -2
- package/dist/src/button/Button.d.ts +7 -1
- package/dist/src/table/ResizableTableContainer.d.ts +9 -0
- package/dist/src/table/Table.d.ts +45 -0
- package/dist/src/table/Table.styles.d.ts +11 -0
- package/dist/src/table/TableBody.d.ts +8 -0
- package/dist/src/table/TableBulkBar.d.ts +27 -0
- package/dist/src/table/TableCell.d.ts +10 -0
- package/dist/src/table/TableColumn.d.ts +12 -0
- package/dist/src/table/TableContext.d.ts +28 -0
- package/dist/src/table/TableHeader.d.ts +10 -0
- package/dist/src/table/TableHeaderSelectionCheckbox.d.ts +13 -0
- package/dist/src/table/TableRow.d.ts +8 -0
- package/dist/src/table/TableSelectionCheckbox.d.ts +7 -0
- package/dist/src/table/index.d.mts +31 -0
- package/dist/src/table/index.d.ts +31 -0
- package/dist/src/table/table-utils.d.ts +2 -0
- package/dist/src/table/useTablePagination.d.ts +76 -0
- package/dist/src/table/useTableSort.d.ts +38 -0
- package/dist/src/toast/Toast.styles.d.ts +0 -4
- package/dist/stepper/index.js +1 -1
- package/dist/stepper/index.mjs +2 -2
- package/dist/switch/index.js +1 -1
- package/dist/switch/index.mjs +2 -2
- package/dist/table/index.js +2 -0
- package/dist/table/index.js.map +1 -0
- package/dist/table/index.mjs +529 -0
- package/dist/table/index.mjs.map +1 -0
- package/dist/tabs/index.js +1 -1
- package/dist/tabs/index.mjs +3 -3
- package/dist/tag/index.js +1 -1
- package/dist/tag/index.js.map +1 -1
- package/dist/tag/index.mjs +2 -2
- package/dist/tag/index.mjs.map +1 -1
- package/dist/textarea/index.js +1 -1
- package/dist/textarea/index.js.map +1 -1
- package/dist/textarea/index.mjs +2 -2
- package/dist/textarea/index.mjs.map +1 -1
- package/dist/toast/index.js +1 -1
- package/dist/toast/index.js.map +1 -1
- package/dist/toast/index.mjs +2 -17
- package/dist/toast/index.mjs.map +1 -1
- package/dist/{useRenderSlot-Xxf_s88b.js → useRenderSlot-C4UVWhDN.js} +1 -1
- package/dist/{useRenderSlot-Xxf_s88b.js.map → useRenderSlot-C4UVWhDN.js.map} +1 -1
- package/dist/{useRenderSlot-DP4fYerF.mjs → useRenderSlot-DKIwoqpO.mjs} +1 -1
- package/dist/{useRenderSlot-DP4fYerF.mjs.map → useRenderSlot-DKIwoqpO.mjs.map} +1 -1
- package/package.json +5 -4
- package/dist/checkbox/index.js.map +0 -1
- package/dist/checkbox/index.mjs.map +0 -1
- package/dist/icon-button-D1Lg6gvI.js +0 -2
- package/dist/input-C8JGTQf_.js.map +0 -1
- package/dist/input-n-ocJBNV.mjs.map +0 -1
- package/dist/snackbar/index.js +0 -2
- package/dist/snackbar/index.js.map +0 -1
- package/dist/snackbar/index.mjs +0 -409
- package/dist/snackbar/index.mjs.map +0 -1
- package/dist/src/snackbar/Snackbar.d.ts +0 -29
- package/dist/src/snackbar/SnackbarItem.d.ts +0 -49
- package/dist/src/snackbar/SnackbarItem.styles.d.ts +0 -10
- package/dist/src/snackbar/SnackbarItemAction.d.ts +0 -10
- package/dist/src/snackbar/SnackbarItemClose.d.ts +0 -9
- package/dist/src/snackbar/SnackbarItemContext.d.ts +0 -8
- package/dist/src/snackbar/SnackbarItemIcon.d.ts +0 -7
- package/dist/src/snackbar/SnackbarRegion.d.ts +0 -30
- package/dist/src/snackbar/SnackbarRegion.styles.d.ts +0 -5
- package/dist/src/snackbar/index.d.mts +0 -13
- package/dist/src/snackbar/index.d.ts +0 -13
- package/dist/src/snackbar/snackbarVariants.d.ts +0 -74
- package/dist/src/snackbar/useSnackbarGlobalStore.d.ts +0 -18
- package/dist/src/snackbar/useSwipe.d.ts +0 -15
package/dist/checkbox/index.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`})
|
|
2
|
-
//# sourceMappingURL=index.js.map
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../checkbox-DjwbAH09.js`);exports.Checkbox=e.n,exports.CheckboxGroup=e.t;
|
package/dist/checkbox/index.mjs
CHANGED
|
@@ -1,216 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
import { cva as n, cx as r } from "class-variance-authority";
|
|
4
|
-
import { createContext as i, useContext as a, useEffect as o, useId as s, useMemo as c, useRef as l } from "react";
|
|
5
|
-
import { Checkbox as u } from "radix-ui";
|
|
6
|
-
import { Fragment as d, jsx as f, jsxs as p } from "react/jsx-runtime";
|
|
7
|
-
import { makeVariants as m } from "@spark-ui/internal-utils";
|
|
8
|
-
import { useMergeRefs as h } from "@spark-ui/hooks/use-merge-refs";
|
|
9
|
-
import { useFormFieldControl as g } from "@spark-ui/components/form-field";
|
|
10
|
-
import { Check as _ } from "@spark-ui/icons/Check";
|
|
11
|
-
import { Minus as v } from "@spark-ui/icons/Minus";
|
|
12
|
-
import { useCombinedState as y } from "@spark-ui/hooks/use-combined-state";
|
|
13
|
-
//#region src/checkbox/CheckboxGroupContext.tsx
|
|
14
|
-
var b = i({}), x = () => a(b), S = u.CheckboxIndicator, C = (e) => /* @__PURE__ */ f(S, {
|
|
15
|
-
className: "flex size-full items-center justify-center",
|
|
16
|
-
...e
|
|
17
|
-
});
|
|
18
|
-
C.displayName = "CheckboxIndicator";
|
|
19
|
-
//#endregion
|
|
20
|
-
//#region src/checkbox/CheckboxInput.styles.ts
|
|
21
|
-
var w = n([
|
|
22
|
-
"size-sz-24 shrink-0 items-center justify-center rounded-sm border-md bg-transparent",
|
|
23
|
-
"disabled:cursor-not-allowed disabled:opacity-dim-3 disabled:hover:ring-0",
|
|
24
|
-
"focus-visible:u-outline",
|
|
25
|
-
"hover:ring-4 hover:cursor-pointer",
|
|
26
|
-
"u-shadow-border-transition"
|
|
27
|
-
], {
|
|
28
|
-
variants: { intent: m({
|
|
29
|
-
main: [
|
|
30
|
-
"text-on-main",
|
|
31
|
-
"hover:ring-main-container",
|
|
32
|
-
"data-[state=unchecked]:border-outline",
|
|
33
|
-
"data-[state=indeterminate]:border-main data-[state=indeterminate]:bg-main",
|
|
34
|
-
"data-[state=checked]:border-main data-[state=checked]:bg-main"
|
|
35
|
-
],
|
|
36
|
-
support: [
|
|
37
|
-
"text-on-support",
|
|
38
|
-
"hover:ring-support-container",
|
|
39
|
-
"data-[state=unchecked]:border-outline",
|
|
40
|
-
"data-[state=indeterminate]:border-support data-[state=indeterminate]:bg-support",
|
|
41
|
-
"data-[state=checked]:border-support data-[state=checked]:bg-support"
|
|
42
|
-
],
|
|
43
|
-
accent: [
|
|
44
|
-
"text-on-accent",
|
|
45
|
-
"hover:ring-accent-container",
|
|
46
|
-
"data-[state=unchecked]:border-outline",
|
|
47
|
-
"data-[state=indeterminate]:border-accent data-[state=indeterminate]:bg-accent",
|
|
48
|
-
"data-[state=checked]:border-accent data-[state=checked]:bg-accent"
|
|
49
|
-
],
|
|
50
|
-
success: [
|
|
51
|
-
"text-on-success",
|
|
52
|
-
"hover:ring-success-container",
|
|
53
|
-
"data-[state=unchecked]:border-success",
|
|
54
|
-
"data-[state=indeterminate]:border-success data-[state=indeterminate]:bg-success",
|
|
55
|
-
"data-[state=checked]:border-success data-[state=checked]:bg-success"
|
|
56
|
-
],
|
|
57
|
-
alert: [
|
|
58
|
-
"text-on-alert",
|
|
59
|
-
"hover:ring-alert-container",
|
|
60
|
-
"data-[state=unchecked]:border-alert",
|
|
61
|
-
"data-[state=indeterminate]:border-alert data-[state=indeterminate]:bg-alert",
|
|
62
|
-
"data-[state=checked]:border-alert data-[state=checked]:bg-alert"
|
|
63
|
-
],
|
|
64
|
-
error: [
|
|
65
|
-
"text-on-error",
|
|
66
|
-
"hover:ring-error-container",
|
|
67
|
-
"data-[state=unchecked]:border-error",
|
|
68
|
-
"data-[state=indeterminate]:border-error data-[state=indeterminate]:bg-error",
|
|
69
|
-
"data-[state=checked]:border-error data-[state=checked]:bg-error"
|
|
70
|
-
],
|
|
71
|
-
info: [
|
|
72
|
-
"text-on-info",
|
|
73
|
-
"hover:ring-info-container",
|
|
74
|
-
"data-[state=unchecked]:border-info",
|
|
75
|
-
"data-[state=indeterminate]:border-info data-[state=indeterminate]:bg-info",
|
|
76
|
-
"data-[state=checked]:border-info data-[state=checked]:bg-info"
|
|
77
|
-
],
|
|
78
|
-
neutral: [
|
|
79
|
-
"text-on-neutral",
|
|
80
|
-
"hover:ring-neutral-container",
|
|
81
|
-
"data-[state=unchecked]:border-outline",
|
|
82
|
-
"data-[state=indeterminate]:border-neutral data-[state=indeterminate]:bg-neutral",
|
|
83
|
-
"data-[state=checked]:border-neutral data-[state=checked]:bg-neutral"
|
|
84
|
-
]
|
|
85
|
-
}) },
|
|
86
|
-
defaultVariants: { intent: "support" }
|
|
87
|
-
}), T = u.Checkbox, E = ({ className: t, icon: n = /* @__PURE__ */ f(_, {}), indeterminateIcon: r = /* @__PURE__ */ f(v, {}), intent: i, checked: a, ref: o, ...s }) => /* @__PURE__ */ f(T, {
|
|
88
|
-
ref: o,
|
|
89
|
-
className: w({
|
|
90
|
-
intent: i,
|
|
91
|
-
className: t
|
|
92
|
-
}),
|
|
93
|
-
checked: a,
|
|
94
|
-
...s,
|
|
95
|
-
children: /* @__PURE__ */ f(C, { children: /* @__PURE__ */ f(e, {
|
|
96
|
-
size: "sm",
|
|
97
|
-
children: a === "indeterminate" ? r : n
|
|
98
|
-
}) })
|
|
99
|
-
});
|
|
100
|
-
E.displayName = "CheckboxInput";
|
|
101
|
-
//#endregion
|
|
102
|
-
//#region src/checkbox/CheckboxLabel.styles.ts
|
|
103
|
-
var D = n("grow", {
|
|
104
|
-
variants: { disabled: {
|
|
105
|
-
true: ["text-neutral/dim-2", "cursor-not-allowed"],
|
|
106
|
-
false: ["cursor-pointer"]
|
|
107
|
-
} },
|
|
108
|
-
defaultVariants: { disabled: !1 }
|
|
109
|
-
}), O = ({ disabled: e, ...n }) => /* @__PURE__ */ f(t, {
|
|
110
|
-
className: D({ disabled: e }),
|
|
111
|
-
...n
|
|
112
|
-
});
|
|
113
|
-
O.displayName = "CheckboxLabel";
|
|
114
|
-
//#endregion
|
|
115
|
-
//#region src/checkbox/Checkbox.tsx
|
|
116
|
-
var k = ":checkbox", A = ({ id: e, className: t, intent: n, checked: i, value: a, disabled: o, reverse: u = !1, onCheckedChange: m, children: _, ref: v, ...y }) => {
|
|
117
|
-
let b = `${k}-${s()}`, S = e || b, C = `${k}-${s()}`, w = g(), T = x(), D = l(null), A = h(v, D), j = ({ fieldState: e, groupState: t, checkboxIntent: n }) => {
|
|
118
|
-
let r = e.name ?? t.name, i = e.isRequired ?? t.isRequired, a = e.state ?? t.state, o = e.isInvalid ?? t.isInvalid, s = e.id !== t.id;
|
|
119
|
-
return {
|
|
120
|
-
name: r,
|
|
121
|
-
isRequired: i,
|
|
122
|
-
isInvalid: o,
|
|
123
|
-
id: s ? e.id : void 0,
|
|
124
|
-
description: s ? e.description : void 0,
|
|
125
|
-
intent: a ?? n ?? t.intent
|
|
126
|
-
};
|
|
127
|
-
}, M = a ? T.value?.includes(a) : i, N = (e) => {
|
|
128
|
-
m?.(e);
|
|
129
|
-
let t = D.current?.value;
|
|
130
|
-
t && T.onCheckedChange && T.onCheckedChange(e, t);
|
|
131
|
-
}, { id: P, name: F, isInvalid: I, description: L, intent: R, isRequired: z } = j({
|
|
132
|
-
fieldState: w,
|
|
133
|
-
groupState: T,
|
|
134
|
-
checkboxIntent: n
|
|
135
|
-
}), B = c(() => T ? z ? !T.value?.length : !1 : z, [T, z]), V = _ && /* @__PURE__ */ f(O, {
|
|
136
|
-
disabled: o,
|
|
137
|
-
htmlFor: P || S,
|
|
138
|
-
id: C,
|
|
139
|
-
children: _
|
|
140
|
-
}), H = /* @__PURE__ */ f(E, {
|
|
141
|
-
ref: A,
|
|
142
|
-
id: P || S,
|
|
143
|
-
name: F,
|
|
144
|
-
value: a,
|
|
145
|
-
intent: R,
|
|
146
|
-
checked: M,
|
|
147
|
-
disabled: o,
|
|
148
|
-
required: B,
|
|
149
|
-
"aria-describedby": L,
|
|
150
|
-
"aria-invalid": I,
|
|
151
|
-
onCheckedChange: N,
|
|
152
|
-
"aria-labelledby": _ ? C : w.labelId,
|
|
153
|
-
...y
|
|
154
|
-
}), U = T.reverse || u ? /* @__PURE__ */ p(d, { children: [V, H] }) : /* @__PURE__ */ p(d, { children: [H, V] });
|
|
155
|
-
return /* @__PURE__ */ f("span", {
|
|
156
|
-
"data-spark-component": "checkbox",
|
|
157
|
-
className: r("gap-md text-body-1 relative flex items-start", t),
|
|
158
|
-
children: U
|
|
159
|
-
});
|
|
160
|
-
};
|
|
161
|
-
A.displayName = "Checkbox";
|
|
162
|
-
//#endregion
|
|
163
|
-
//#region src/checkbox/CheckboxGroup.styles.ts
|
|
164
|
-
var j = n(["flex"], { variants: { orientation: {
|
|
165
|
-
vertical: ["flex-col", "gap-lg"],
|
|
166
|
-
horizontal: ["gap-xl"]
|
|
167
|
-
} } }), M = ({ name: e, value: t, defaultValue: n, className: r, intent: i, orientation: a = "vertical", onCheckedChange: s, reverse: u = !1, children: d, ref: p, ...m }) => {
|
|
168
|
-
let [h, _] = y(t, n), v = g(), x = l(s), { id: S, labelId: C, description: w, state: T, isInvalid: E, isRequired: D } = v, O = e ?? v.name, k = c(() => ({
|
|
169
|
-
id: S,
|
|
170
|
-
name: O,
|
|
171
|
-
value: h,
|
|
172
|
-
intent: i,
|
|
173
|
-
state: T,
|
|
174
|
-
isInvalid: E,
|
|
175
|
-
description: w,
|
|
176
|
-
isRequired: D,
|
|
177
|
-
reverse: u,
|
|
178
|
-
onCheckedChange: (e, t) => {
|
|
179
|
-
let n = h || [], r = e ? [...n, t] : n.filter((e) => e !== t);
|
|
180
|
-
_(r), x.current && x.current(r);
|
|
181
|
-
}
|
|
182
|
-
}), [
|
|
183
|
-
S,
|
|
184
|
-
O,
|
|
185
|
-
h,
|
|
186
|
-
i,
|
|
187
|
-
T,
|
|
188
|
-
E,
|
|
189
|
-
w,
|
|
190
|
-
D,
|
|
191
|
-
_,
|
|
192
|
-
u
|
|
193
|
-
]);
|
|
194
|
-
return o(() => {
|
|
195
|
-
x.current = s;
|
|
196
|
-
}, [s]), /* @__PURE__ */ f(b.Provider, {
|
|
197
|
-
value: k,
|
|
198
|
-
children: /* @__PURE__ */ f("div", {
|
|
199
|
-
ref: p,
|
|
200
|
-
className: j({
|
|
201
|
-
className: r,
|
|
202
|
-
orientation: a
|
|
203
|
-
}),
|
|
204
|
-
role: "group",
|
|
205
|
-
"aria-labelledby": C,
|
|
206
|
-
"aria-describedby": w,
|
|
207
|
-
...m,
|
|
208
|
-
children: d
|
|
209
|
-
})
|
|
210
|
-
});
|
|
211
|
-
};
|
|
212
|
-
M.displayName = "CheckboxGroup";
|
|
213
|
-
//#endregion
|
|
214
|
-
export { A as Checkbox, M as CheckboxGroup };
|
|
215
|
-
|
|
216
|
-
//# sourceMappingURL=index.mjs.map
|
|
1
|
+
import { n as e, t } from "../checkbox-xsURzANi.mjs";
|
|
2
|
+
export { e as Checkbox, t as CheckboxGroup };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
require(`./chunk-C91j1N6u.js`);const e=require(`./icon-CRPcdgYp.js`),t=require(`./label-BCSEss4U.js`);let n=require(`class-variance-authority`),r=require(`react`),i=require(`radix-ui`),a=require(`react/jsx-runtime`),o=require(`@spark-ui/internal-utils`),s=require(`@spark-ui/hooks/use-merge-refs`),c=require(`@spark-ui/components/form-field`),l=require(`@spark-ui/icons/Check`),u=require(`@spark-ui/icons/Minus`),d=require(`@spark-ui/hooks/use-combined-state`);var f=(0,r.createContext)({}),p=()=>(0,r.useContext)(f),m=i.Checkbox.CheckboxIndicator,h=e=>(0,a.jsx)(m,{className:`flex size-full items-center justify-center`,...e});h.displayName=`CheckboxIndicator`;var g=(0,n.cva)([`size-sz-24 shrink-0 items-center justify-center rounded-sm border-md bg-transparent`,`disabled:cursor-not-allowed disabled:opacity-dim-3 disabled:hover:ring-0`,`focus-visible:u-outline`,`hover:ring-4 hover:cursor-pointer`,`u-shadow-border-transition`],{variants:{intent:(0,o.makeVariants)({main:[`text-on-main`,`hover:ring-main-container`,`data-[state=unchecked]:border-outline`,`data-[state=indeterminate]:border-main data-[state=indeterminate]:bg-main`,`data-[state=checked]:border-main data-[state=checked]:bg-main`],support:[`text-on-support`,`hover:ring-support-container`,`data-[state=unchecked]:border-outline`,`data-[state=indeterminate]:border-support data-[state=indeterminate]:bg-support`,`data-[state=checked]:border-support data-[state=checked]:bg-support`],accent:[`text-on-accent`,`hover:ring-accent-container`,`data-[state=unchecked]:border-outline`,`data-[state=indeterminate]:border-accent data-[state=indeterminate]:bg-accent`,`data-[state=checked]:border-accent data-[state=checked]:bg-accent`],success:[`text-on-success`,`hover:ring-success-container`,`data-[state=unchecked]:border-success`,`data-[state=indeterminate]:border-success data-[state=indeterminate]:bg-success`,`data-[state=checked]:border-success data-[state=checked]:bg-success`],alert:[`text-on-alert`,`hover:ring-alert-container`,`data-[state=unchecked]:border-alert`,`data-[state=indeterminate]:border-alert data-[state=indeterminate]:bg-alert`,`data-[state=checked]:border-alert data-[state=checked]:bg-alert`],error:[`text-on-error`,`hover:ring-error-container`,`data-[state=unchecked]:border-error`,`data-[state=indeterminate]:border-error data-[state=indeterminate]:bg-error`,`data-[state=checked]:border-error data-[state=checked]:bg-error`],info:[`text-on-info`,`hover:ring-info-container`,`data-[state=unchecked]:border-info`,`data-[state=indeterminate]:border-info data-[state=indeterminate]:bg-info`,`data-[state=checked]:border-info data-[state=checked]:bg-info`],neutral:[`text-on-neutral`,`hover:ring-neutral-container`,`data-[state=unchecked]:border-outline`,`data-[state=indeterminate]:border-neutral data-[state=indeterminate]:bg-neutral`,`data-[state=checked]:border-neutral data-[state=checked]:bg-neutral`]})},defaultVariants:{intent:`support`}}),_=i.Checkbox.Checkbox,v=({className:t,icon:n=(0,a.jsx)(l.Check,{}),indeterminateIcon:r=(0,a.jsx)(u.Minus,{}),intent:i,checked:o,ref:s,...c})=>(0,a.jsx)(_,{ref:s,className:g({intent:i,className:t}),checked:o,...c,children:(0,a.jsx)(h,{children:(0,a.jsx)(e.t,{size:`sm`,children:o===`indeterminate`?r:n})})});v.displayName=`CheckboxInput`;var y=(0,n.cva)(`grow`,{variants:{disabled:{true:[`text-neutral/dim-2`,`cursor-not-allowed`],false:[`cursor-pointer`]}},defaultVariants:{disabled:!1}}),b=({disabled:e,...n})=>(0,a.jsx)(t.t,{className:y({disabled:e}),...n});b.displayName=`CheckboxLabel`;var x=`:checkbox`,S=({id:e,className:t,intent:i,checked:o,value:l,disabled:u,reverse:d=!1,onCheckedChange:f,children:m,ref:h,...g})=>{let _=`${x}-${(0,r.useId)()}`,y=e||_,S=`${x}-${(0,r.useId)()}`,C=(0,c.useFormFieldControl)(),w=p(),T=(0,r.useRef)(null),E=(0,s.useMergeRefs)(h,T),D=({fieldState:e,groupState:t,checkboxIntent:n})=>{let r=e.name??t.name,i=e.isRequired??t.isRequired,a=e.state??t.state,o=e.isInvalid??t.isInvalid,s=e.id!==t.id;return{name:r,isRequired:i,isInvalid:o,id:s?e.id:void 0,description:s?e.description:void 0,intent:a??n??t.intent}},O=l?w.value?.includes(l):o,k=e=>{f?.(e);let t=T.current?.value;t&&w.onCheckedChange&&w.onCheckedChange(e,t)},{id:A,name:j,isInvalid:M,description:N,intent:P,isRequired:F}=D({fieldState:C,groupState:w,checkboxIntent:i}),I=(0,r.useMemo)(()=>w?F?!w.value?.length:!1:F,[w,F]),L=m&&(0,a.jsx)(b,{disabled:u,htmlFor:A||y,id:S,children:m}),R=(0,a.jsx)(v,{ref:E,id:A||y,name:j,value:l,intent:P,checked:O,disabled:u,required:I,"aria-describedby":N,"aria-invalid":M,onCheckedChange:k,"aria-labelledby":m?S:C.labelId,...g}),z=w.reverse||d?(0,a.jsxs)(a.Fragment,{children:[L,R]}):(0,a.jsxs)(a.Fragment,{children:[R,L]});return(0,a.jsx)(`span`,{"data-spark-component":`checkbox`,className:(0,n.cx)(`gap-md text-body-1 relative flex items-start`,t),children:z})};S.displayName=`Checkbox`;var C=(0,n.cva)([`flex`],{variants:{orientation:{vertical:[`flex-col`,`gap-lg`],horizontal:[`gap-xl`]}}}),w=({name:e,value:t,defaultValue:n,className:i,intent:o,orientation:s=`vertical`,onCheckedChange:l,reverse:u=!1,children:p,ref:m,...h})=>{let[g,_]=(0,d.useCombinedState)(t,n),v=(0,c.useFormFieldControl)(),y=(0,r.useRef)(l),{id:b,labelId:x,description:S,state:w,isInvalid:T,isRequired:E}=v,D=e??v.name,O=(0,r.useMemo)(()=>({id:b,name:D,value:g,intent:o,state:w,isInvalid:T,description:S,isRequired:E,reverse:u,onCheckedChange:(e,t)=>{let n=g||[],r=e?[...n,t]:n.filter(e=>e!==t);_(r),y.current&&y.current(r)}}),[b,D,g,o,w,T,S,E,_,u]);return(0,r.useEffect)(()=>{y.current=l},[l]),(0,a.jsx)(f.Provider,{value:O,children:(0,a.jsx)(`div`,{ref:m,className:C({className:i,orientation:s}),role:`group`,"aria-labelledby":x,"aria-describedby":S,...h,children:p})})};w.displayName=`CheckboxGroup`,Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return w}});
|
|
2
|
+
//# sourceMappingURL=checkbox-DjwbAH09.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkbox-DjwbAH09.js","names":[],"sources":["../src/checkbox/CheckboxGroupContext.tsx","../src/checkbox/CheckboxIndicator.tsx","../src/checkbox/CheckboxInput.styles.ts","../src/checkbox/CheckboxInput.tsx","../src/checkbox/CheckboxLabel.styles.ts","../src/checkbox/CheckboxLabel.tsx","../src/checkbox/Checkbox.tsx","../src/checkbox/CheckboxGroup.styles.ts","../src/checkbox/CheckboxGroup.tsx"],"sourcesContent":["import { createContext, useContext } from 'react'\n\nimport { CheckboxInputStylesProps } from './CheckboxInput.styles'\n\nexport interface CheckboxGroupContextState extends Pick<CheckboxInputStylesProps, 'intent'> {\n /**\n * The id of the checkbox group.\n */\n id: string\n /**\n * The name of the group. Submitted with its owning form as part of a name/value pair.\n */\n name?: string\n /**\n * The value of the checkbox group.\n */\n value?: string[]\n /**\n * A set of ids separated by a space used to describe the input component given by a set of messages.\n */\n description?: string\n /**\n * The validation state of the checkbox group.\n */\n state?: 'error' | 'success' | 'alert'\n /**\n * If true, the checkbox group will be invalid.\n */\n isInvalid?: boolean\n /**\n * If true, the checkbox group will be required.\n */\n isRequired?: boolean\n /**\n * Callback used to update or notify the value of the checkbox group.\n */\n onCheckedChange?: (checked: boolean, changed: string) => void\n /**\n * When true, the label will be placed on the left side of the Checkbox\n */\n reverse?: boolean\n}\n\nexport const CheckboxGroupContext = createContext<Partial<CheckboxGroupContextState>>({})\n\nexport const useCheckboxGroup = () => {\n const context = useContext(CheckboxGroupContext)\n\n return context\n}\n","import { Checkbox } from 'radix-ui'\nimport { Ref } from 'react'\n\nconst CheckboxIndicatorPrimitive = Checkbox.CheckboxIndicator\n\nexport type CheckboxIndicatorProps = Checkbox.CheckboxIndicatorProps & {\n ref?: Ref<HTMLSpanElement>\n}\n\nexport const CheckboxIndicator = (props: CheckboxIndicatorProps) => (\n <CheckboxIndicatorPrimitive className=\"flex size-full items-center justify-center\" {...props} />\n)\n\nCheckboxIndicator.displayName = 'CheckboxIndicator'\n","import { makeVariants } from '@spark-ui/internal-utils'\nimport { cva, VariantProps } from 'class-variance-authority'\n\nexport const checkboxInputStyles = cva(\n [\n 'size-sz-24 shrink-0 items-center justify-center rounded-sm border-md bg-transparent',\n 'disabled:cursor-not-allowed disabled:opacity-dim-3 disabled:hover:ring-0',\n 'focus-visible:u-outline',\n 'hover:ring-4 hover:cursor-pointer',\n 'u-shadow-border-transition',\n ],\n {\n variants: {\n /**\n * Color scheme of the checkbox.\n */\n intent: makeVariants<\n 'intent',\n ['main', 'support', 'accent', 'success', 'alert', 'error', 'info', 'neutral']\n >({\n main: [\n 'text-on-main',\n 'hover:ring-main-container',\n 'data-[state=unchecked]:border-outline',\n 'data-[state=indeterminate]:border-main data-[state=indeterminate]:bg-main',\n 'data-[state=checked]:border-main data-[state=checked]:bg-main',\n ],\n support: [\n 'text-on-support',\n 'hover:ring-support-container',\n 'data-[state=unchecked]:border-outline',\n 'data-[state=indeterminate]:border-support data-[state=indeterminate]:bg-support',\n 'data-[state=checked]:border-support data-[state=checked]:bg-support',\n ],\n accent: [\n 'text-on-accent',\n 'hover:ring-accent-container',\n 'data-[state=unchecked]:border-outline',\n 'data-[state=indeterminate]:border-accent data-[state=indeterminate]:bg-accent',\n 'data-[state=checked]:border-accent data-[state=checked]:bg-accent',\n ],\n success: [\n 'text-on-success',\n 'hover:ring-success-container',\n 'data-[state=unchecked]:border-success',\n 'data-[state=indeterminate]:border-success data-[state=indeterminate]:bg-success',\n 'data-[state=checked]:border-success data-[state=checked]:bg-success',\n ],\n alert: [\n 'text-on-alert',\n 'hover:ring-alert-container',\n 'data-[state=unchecked]:border-alert',\n 'data-[state=indeterminate]:border-alert data-[state=indeterminate]:bg-alert',\n 'data-[state=checked]:border-alert data-[state=checked]:bg-alert',\n ],\n error: [\n 'text-on-error',\n 'hover:ring-error-container',\n 'data-[state=unchecked]:border-error',\n 'data-[state=indeterminate]:border-error data-[state=indeterminate]:bg-error',\n 'data-[state=checked]:border-error data-[state=checked]:bg-error',\n ],\n info: [\n 'text-on-info',\n 'hover:ring-info-container',\n 'data-[state=unchecked]:border-info',\n 'data-[state=indeterminate]:border-info data-[state=indeterminate]:bg-info',\n 'data-[state=checked]:border-info data-[state=checked]:bg-info',\n ],\n neutral: [\n 'text-on-neutral',\n 'hover:ring-neutral-container',\n 'data-[state=unchecked]:border-outline',\n 'data-[state=indeterminate]:border-neutral data-[state=indeterminate]:bg-neutral',\n 'data-[state=checked]:border-neutral data-[state=checked]:bg-neutral',\n ],\n }),\n },\n defaultVariants: {\n intent: 'support',\n },\n }\n)\n\nexport type CheckboxInputStylesProps = VariantProps<typeof checkboxInputStyles>\n","import { Check } from '@spark-ui/icons/Check'\nimport { Minus } from '@spark-ui/icons/Minus'\nimport { Checkbox } from 'radix-ui'\nimport { ComponentPropsWithoutRef, ReactNode, Ref } from 'react'\n\nimport { Icon } from '../icon'\nimport { CheckboxIndicator } from './CheckboxIndicator'\nimport { checkboxInputStyles, type CheckboxInputStylesProps } from './CheckboxInput.styles'\n\ntype CheckedStatus = boolean | 'indeterminate'\n\nconst CheckboxPrimitive = Checkbox.Checkbox\n\nexport interface CheckboxInputProps\n extends\n CheckboxInputStylesProps,\n Omit<ComponentPropsWithoutRef<'button'>, 'onChange' | 'value' | 'checked' | 'defaultChecked'> {\n /**\n * The checked icon to use.\n */\n icon?: ReactNode\n /**\n * The indeterminate icon to use.\n */\n indeterminateIcon?: ReactNode\n /**\n * The checked state of the checkbox when it is initially rendered. Use when you do not need to control its checked state.\n */\n defaultChecked?: boolean\n /**\n * The controlled checked state of the checkbox. Must be used in conjunction with onCheckedChange.\n */\n checked?: CheckedStatus\n /**\n * When true, prevents the user from interacting with the checkbox.\n */\n disabled?: boolean\n /**\n * When true, indicates that the user must check the checkbox before the owning form can be submitted.\n */\n required?: boolean\n /**\n * The name of the checkbox. Submitted with its owning form as part of a name/value pair.\n */\n name?: string\n /**\n * The value given as data when submitted with a name.\n */\n value?: string\n /**\n * Event handler called when the checked state of the checkbox changes.\n */\n onCheckedChange?: (checked: boolean) => void\n ref?: Ref<HTMLButtonElement>\n}\n\nexport const CheckboxInput = ({\n className,\n icon = <Check />,\n indeterminateIcon = <Minus />,\n intent,\n checked,\n ref,\n ...others\n}: CheckboxInputProps) => (\n <CheckboxPrimitive\n ref={ref}\n className={checkboxInputStyles({ intent, className })}\n checked={checked}\n {...others}\n >\n <CheckboxIndicator>\n <Icon size=\"sm\">{checked === 'indeterminate' ? indeterminateIcon : icon}</Icon>\n </CheckboxIndicator>\n </CheckboxPrimitive>\n)\n\nCheckboxInput.displayName = 'CheckboxInput'\n","import { cva, VariantProps } from 'class-variance-authority'\n\nexport const labelStyles = cva('grow', {\n variants: {\n disabled: {\n true: ['text-neutral/dim-2', 'cursor-not-allowed'],\n false: ['cursor-pointer'],\n },\n },\n defaultVariants: {\n disabled: false,\n },\n})\n\nexport type LabelStylesProps = VariantProps<typeof labelStyles>\n","import { Label, LabelProps } from '../label'\nimport { labelStyles, type LabelStylesProps } from './CheckboxLabel.styles'\n\nexport interface CheckboxLabelProps extends LabelProps, LabelStylesProps {\n /**\n * When true, prevents the user from interacting with the checkbox item.\n */\n disabled?: boolean\n}\n\nexport const CheckboxLabel = ({ disabled, ...others }: CheckboxLabelProps) => (\n <Label className={labelStyles({ disabled })} {...others} />\n)\n\nCheckboxLabel.displayName = 'CheckboxLabel'\n","import { useFormFieldControl } from '@spark-ui/components/form-field'\nimport { useMergeRefs } from '@spark-ui/hooks/use-merge-refs'\nimport { cx } from 'class-variance-authority'\nimport { Ref, useId, useMemo, useRef } from 'react'\n\nimport { CheckboxGroupContextState, useCheckboxGroup } from './CheckboxGroupContext'\nimport { CheckboxInput, CheckboxInputProps } from './CheckboxInput'\nimport { CheckboxLabel } from './CheckboxLabel'\n\nexport type CheckboxProps = CheckboxInputProps &\n Pick<CheckboxGroupContextState, 'reverse'> & {\n ref?: Ref<HTMLButtonElement>\n }\n\nconst ID_PREFIX = ':checkbox'\n\n// oxlint-disable-next-line max-lines-per-function\nexport const Checkbox = ({\n id: idProp,\n className,\n intent: intentProp,\n checked: checkedProp,\n value,\n disabled,\n reverse = false,\n onCheckedChange,\n children,\n ref: forwardedRef,\n ...others\n}: CheckboxProps) => {\n const checkboxId = `${ID_PREFIX}-${useId()}`\n const innerId = idProp || checkboxId\n\n const innerLabelId = `${ID_PREFIX}-${useId()}`\n\n const field = useFormFieldControl()\n const group = useCheckboxGroup()\n\n const rootRef = useRef<HTMLButtonElement | undefined>(null)\n const ref = useMergeRefs(forwardedRef, rootRef)\n\n const getCheckboxAttributes = ({\n fieldState,\n groupState,\n checkboxIntent,\n }: {\n fieldState: ReturnType<typeof useFormFieldControl>\n groupState: ReturnType<typeof useCheckboxGroup>\n checkboxIntent: CheckboxInputProps['intent']\n }) => {\n const name = fieldState.name ?? groupState.name\n const isRequired = fieldState.isRequired ?? groupState.isRequired\n const state = fieldState.state ?? groupState.state\n const isInvalid = fieldState.isInvalid ?? groupState.isInvalid\n\n const isFieldEnclosed = fieldState.id !== groupState.id\n const id = isFieldEnclosed ? fieldState.id : undefined\n const description = isFieldEnclosed ? fieldState.description : undefined\n\n const intent = state ?? checkboxIntent ?? groupState.intent\n\n return { name, isRequired, isInvalid, id, description, intent }\n }\n\n const checked = value ? group.value?.includes(value) : checkedProp\n\n const handleCheckedChange = (isChecked: boolean) => {\n onCheckedChange?.(isChecked)\n\n const rootRefValue = rootRef.current?.value\n if (rootRefValue && group.onCheckedChange) {\n group.onCheckedChange(isChecked, rootRefValue)\n }\n }\n\n const {\n id,\n name,\n isInvalid,\n description,\n intent,\n isRequired: isRequiredAttr,\n } = getCheckboxAttributes({\n fieldState: field,\n groupState: group,\n checkboxIntent: intentProp,\n })\n\n const isRequired = useMemo(() => {\n if (!group) return isRequiredAttr\n\n return isRequiredAttr ? !group.value?.length : false\n }, [group, isRequiredAttr])\n\n const checkboxLabel = children && (\n <CheckboxLabel disabled={disabled} htmlFor={id || innerId} id={innerLabelId}>\n {children}\n </CheckboxLabel>\n )\n\n const checkboxInput = (\n <CheckboxInput\n ref={ref}\n id={id || innerId}\n name={name}\n value={value}\n intent={intent}\n checked={checked}\n disabled={disabled}\n required={isRequired}\n aria-describedby={description}\n aria-invalid={isInvalid}\n onCheckedChange={handleCheckedChange}\n aria-labelledby={children ? innerLabelId : field.labelId}\n {...others}\n />\n )\n\n const content =\n group.reverse || reverse ? (\n <>\n {checkboxLabel}\n {checkboxInput}\n </>\n ) : (\n <>\n {checkboxInput}\n {checkboxLabel}\n </>\n )\n\n return (\n <span\n data-spark-component=\"checkbox\"\n className={cx('gap-md text-body-1 relative flex items-start', className)}\n >\n {content}\n </span>\n )\n}\n\nCheckbox.displayName = 'Checkbox'\n","import { cva, VariantProps } from 'class-variance-authority'\n\nexport const checkboxGroupStyles = cva(['flex'], {\n variants: {\n /**\n * Prop to set the orientation of the checkbox group which could be `vertical` or `horizontal`.\n */\n orientation: {\n vertical: ['flex-col', 'gap-lg'],\n horizontal: ['gap-xl'],\n },\n },\n})\n\nexport type CheckboxGroupStylesProps = VariantProps<typeof checkboxGroupStyles>\n","import { useFormFieldControl } from '@spark-ui/components/form-field'\nimport { useCombinedState } from '@spark-ui/hooks/use-combined-state'\nimport { ComponentPropsWithoutRef, Ref, useEffect, useMemo, useRef } from 'react'\n\nimport { checkboxGroupStyles, CheckboxGroupStylesProps } from './CheckboxGroup.styles'\nimport { CheckboxGroupContext, CheckboxGroupContextState } from './CheckboxGroupContext'\n\nexport interface CheckboxGroupProps\n extends\n Omit<ComponentPropsWithoutRef<'div'>, 'value' | 'defaultValue' | 'onChange'>,\n CheckboxGroupStylesProps,\n Pick<CheckboxGroupContextState, 'intent' | 'name' | 'value' | 'reverse'> {\n /**\n * The initial value of the checkbox group\n */\n defaultValue?: string[]\n /**\n * The callback fired when any children Checkbox is checked or unchecked\n */\n onCheckedChange?: (value: string[]) => void\n ref?: Ref<HTMLDivElement>\n}\n\nexport const CheckboxGroup = ({\n name: nameProp,\n value: valueProp,\n defaultValue,\n className,\n intent,\n orientation = 'vertical',\n onCheckedChange: onCheckedChangeProp,\n reverse = false,\n children,\n ref,\n ...others\n}: CheckboxGroupProps) => {\n const [value, setValue] = useCombinedState(valueProp, defaultValue)\n const field = useFormFieldControl()\n const onCheckedChangeRef = useRef(onCheckedChangeProp)\n\n const { id, labelId, description, state, isInvalid, isRequired } = field\n const name = nameProp ?? field.name\n\n const current = useMemo(() => {\n const handleCheckedChange = (checked: boolean, changed: string) => {\n const values = value || []\n const modified = checked\n ? [...values, changed]\n : values.filter((val: string) => val !== changed)\n\n setValue(modified)\n\n if (onCheckedChangeRef.current) {\n onCheckedChangeRef.current(modified)\n }\n }\n\n return {\n id,\n name,\n value,\n intent,\n state,\n isInvalid,\n description,\n isRequired,\n reverse,\n onCheckedChange: handleCheckedChange,\n }\n }, [id, name, value, intent, state, isInvalid, description, isRequired, setValue, reverse])\n\n useEffect(() => {\n onCheckedChangeRef.current = onCheckedChangeProp\n }, [onCheckedChangeProp])\n\n return (\n <CheckboxGroupContext.Provider value={current}>\n <div\n ref={ref}\n className={checkboxGroupStyles({ className, orientation })}\n role=\"group\"\n aria-labelledby={labelId}\n aria-describedby={description}\n {...others}\n >\n {children}\n </div>\n </CheckboxGroupContext.Provider>\n )\n}\n\nCheckboxGroup.displayName = 'CheckboxGroup'\n"],"mappings":"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"}
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
import { t as e } from "./icon-D05Uqh8_.mjs";
|
|
2
|
+
import { t } from "./label-DDBRKLUX.mjs";
|
|
3
|
+
import { cva as n, cx as r } from "class-variance-authority";
|
|
4
|
+
import { createContext as i, useContext as a, useEffect as o, useId as s, useMemo as c, useRef as l } from "react";
|
|
5
|
+
import { Checkbox as u } from "radix-ui";
|
|
6
|
+
import { Fragment as d, jsx as f, jsxs as p } from "react/jsx-runtime";
|
|
7
|
+
import { makeVariants as m } from "@spark-ui/internal-utils";
|
|
8
|
+
import { useMergeRefs as h } from "@spark-ui/hooks/use-merge-refs";
|
|
9
|
+
import { useFormFieldControl as g } from "@spark-ui/components/form-field";
|
|
10
|
+
import { Check as _ } from "@spark-ui/icons/Check";
|
|
11
|
+
import { Minus as v } from "@spark-ui/icons/Minus";
|
|
12
|
+
import { useCombinedState as y } from "@spark-ui/hooks/use-combined-state";
|
|
13
|
+
//#region src/checkbox/CheckboxGroupContext.tsx
|
|
14
|
+
var b = i({}), x = () => a(b), S = u.CheckboxIndicator, C = (e) => /* @__PURE__ */ f(S, {
|
|
15
|
+
className: "flex size-full items-center justify-center",
|
|
16
|
+
...e
|
|
17
|
+
});
|
|
18
|
+
C.displayName = "CheckboxIndicator";
|
|
19
|
+
//#endregion
|
|
20
|
+
//#region src/checkbox/CheckboxInput.styles.ts
|
|
21
|
+
var w = n([
|
|
22
|
+
"size-sz-24 shrink-0 items-center justify-center rounded-sm border-md bg-transparent",
|
|
23
|
+
"disabled:cursor-not-allowed disabled:opacity-dim-3 disabled:hover:ring-0",
|
|
24
|
+
"focus-visible:u-outline",
|
|
25
|
+
"hover:ring-4 hover:cursor-pointer",
|
|
26
|
+
"u-shadow-border-transition"
|
|
27
|
+
], {
|
|
28
|
+
variants: { intent: m({
|
|
29
|
+
main: [
|
|
30
|
+
"text-on-main",
|
|
31
|
+
"hover:ring-main-container",
|
|
32
|
+
"data-[state=unchecked]:border-outline",
|
|
33
|
+
"data-[state=indeterminate]:border-main data-[state=indeterminate]:bg-main",
|
|
34
|
+
"data-[state=checked]:border-main data-[state=checked]:bg-main"
|
|
35
|
+
],
|
|
36
|
+
support: [
|
|
37
|
+
"text-on-support",
|
|
38
|
+
"hover:ring-support-container",
|
|
39
|
+
"data-[state=unchecked]:border-outline",
|
|
40
|
+
"data-[state=indeterminate]:border-support data-[state=indeterminate]:bg-support",
|
|
41
|
+
"data-[state=checked]:border-support data-[state=checked]:bg-support"
|
|
42
|
+
],
|
|
43
|
+
accent: [
|
|
44
|
+
"text-on-accent",
|
|
45
|
+
"hover:ring-accent-container",
|
|
46
|
+
"data-[state=unchecked]:border-outline",
|
|
47
|
+
"data-[state=indeterminate]:border-accent data-[state=indeterminate]:bg-accent",
|
|
48
|
+
"data-[state=checked]:border-accent data-[state=checked]:bg-accent"
|
|
49
|
+
],
|
|
50
|
+
success: [
|
|
51
|
+
"text-on-success",
|
|
52
|
+
"hover:ring-success-container",
|
|
53
|
+
"data-[state=unchecked]:border-success",
|
|
54
|
+
"data-[state=indeterminate]:border-success data-[state=indeterminate]:bg-success",
|
|
55
|
+
"data-[state=checked]:border-success data-[state=checked]:bg-success"
|
|
56
|
+
],
|
|
57
|
+
alert: [
|
|
58
|
+
"text-on-alert",
|
|
59
|
+
"hover:ring-alert-container",
|
|
60
|
+
"data-[state=unchecked]:border-alert",
|
|
61
|
+
"data-[state=indeterminate]:border-alert data-[state=indeterminate]:bg-alert",
|
|
62
|
+
"data-[state=checked]:border-alert data-[state=checked]:bg-alert"
|
|
63
|
+
],
|
|
64
|
+
error: [
|
|
65
|
+
"text-on-error",
|
|
66
|
+
"hover:ring-error-container",
|
|
67
|
+
"data-[state=unchecked]:border-error",
|
|
68
|
+
"data-[state=indeterminate]:border-error data-[state=indeterminate]:bg-error",
|
|
69
|
+
"data-[state=checked]:border-error data-[state=checked]:bg-error"
|
|
70
|
+
],
|
|
71
|
+
info: [
|
|
72
|
+
"text-on-info",
|
|
73
|
+
"hover:ring-info-container",
|
|
74
|
+
"data-[state=unchecked]:border-info",
|
|
75
|
+
"data-[state=indeterminate]:border-info data-[state=indeterminate]:bg-info",
|
|
76
|
+
"data-[state=checked]:border-info data-[state=checked]:bg-info"
|
|
77
|
+
],
|
|
78
|
+
neutral: [
|
|
79
|
+
"text-on-neutral",
|
|
80
|
+
"hover:ring-neutral-container",
|
|
81
|
+
"data-[state=unchecked]:border-outline",
|
|
82
|
+
"data-[state=indeterminate]:border-neutral data-[state=indeterminate]:bg-neutral",
|
|
83
|
+
"data-[state=checked]:border-neutral data-[state=checked]:bg-neutral"
|
|
84
|
+
]
|
|
85
|
+
}) },
|
|
86
|
+
defaultVariants: { intent: "support" }
|
|
87
|
+
}), T = u.Checkbox, E = ({ className: t, icon: n = /* @__PURE__ */ f(_, {}), indeterminateIcon: r = /* @__PURE__ */ f(v, {}), intent: i, checked: a, ref: o, ...s }) => /* @__PURE__ */ f(T, {
|
|
88
|
+
ref: o,
|
|
89
|
+
className: w({
|
|
90
|
+
intent: i,
|
|
91
|
+
className: t
|
|
92
|
+
}),
|
|
93
|
+
checked: a,
|
|
94
|
+
...s,
|
|
95
|
+
children: /* @__PURE__ */ f(C, { children: /* @__PURE__ */ f(e, {
|
|
96
|
+
size: "sm",
|
|
97
|
+
children: a === "indeterminate" ? r : n
|
|
98
|
+
}) })
|
|
99
|
+
});
|
|
100
|
+
E.displayName = "CheckboxInput";
|
|
101
|
+
//#endregion
|
|
102
|
+
//#region src/checkbox/CheckboxLabel.styles.ts
|
|
103
|
+
var D = n("grow", {
|
|
104
|
+
variants: { disabled: {
|
|
105
|
+
true: ["text-neutral/dim-2", "cursor-not-allowed"],
|
|
106
|
+
false: ["cursor-pointer"]
|
|
107
|
+
} },
|
|
108
|
+
defaultVariants: { disabled: !1 }
|
|
109
|
+
}), O = ({ disabled: e, ...n }) => /* @__PURE__ */ f(t, {
|
|
110
|
+
className: D({ disabled: e }),
|
|
111
|
+
...n
|
|
112
|
+
});
|
|
113
|
+
O.displayName = "CheckboxLabel";
|
|
114
|
+
//#endregion
|
|
115
|
+
//#region src/checkbox/Checkbox.tsx
|
|
116
|
+
var k = ":checkbox", A = ({ id: e, className: t, intent: n, checked: i, value: a, disabled: o, reverse: u = !1, onCheckedChange: m, children: _, ref: v, ...y }) => {
|
|
117
|
+
let b = `${k}-${s()}`, S = e || b, C = `${k}-${s()}`, w = g(), T = x(), D = l(null), A = h(v, D), j = ({ fieldState: e, groupState: t, checkboxIntent: n }) => {
|
|
118
|
+
let r = e.name ?? t.name, i = e.isRequired ?? t.isRequired, a = e.state ?? t.state, o = e.isInvalid ?? t.isInvalid, s = e.id !== t.id;
|
|
119
|
+
return {
|
|
120
|
+
name: r,
|
|
121
|
+
isRequired: i,
|
|
122
|
+
isInvalid: o,
|
|
123
|
+
id: s ? e.id : void 0,
|
|
124
|
+
description: s ? e.description : void 0,
|
|
125
|
+
intent: a ?? n ?? t.intent
|
|
126
|
+
};
|
|
127
|
+
}, M = a ? T.value?.includes(a) : i, N = (e) => {
|
|
128
|
+
m?.(e);
|
|
129
|
+
let t = D.current?.value;
|
|
130
|
+
t && T.onCheckedChange && T.onCheckedChange(e, t);
|
|
131
|
+
}, { id: P, name: F, isInvalid: I, description: L, intent: R, isRequired: z } = j({
|
|
132
|
+
fieldState: w,
|
|
133
|
+
groupState: T,
|
|
134
|
+
checkboxIntent: n
|
|
135
|
+
}), B = c(() => T ? z ? !T.value?.length : !1 : z, [T, z]), V = _ && /* @__PURE__ */ f(O, {
|
|
136
|
+
disabled: o,
|
|
137
|
+
htmlFor: P || S,
|
|
138
|
+
id: C,
|
|
139
|
+
children: _
|
|
140
|
+
}), H = /* @__PURE__ */ f(E, {
|
|
141
|
+
ref: A,
|
|
142
|
+
id: P || S,
|
|
143
|
+
name: F,
|
|
144
|
+
value: a,
|
|
145
|
+
intent: R,
|
|
146
|
+
checked: M,
|
|
147
|
+
disabled: o,
|
|
148
|
+
required: B,
|
|
149
|
+
"aria-describedby": L,
|
|
150
|
+
"aria-invalid": I,
|
|
151
|
+
onCheckedChange: N,
|
|
152
|
+
"aria-labelledby": _ ? C : w.labelId,
|
|
153
|
+
...y
|
|
154
|
+
}), U = T.reverse || u ? /* @__PURE__ */ p(d, { children: [V, H] }) : /* @__PURE__ */ p(d, { children: [H, V] });
|
|
155
|
+
return /* @__PURE__ */ f("span", {
|
|
156
|
+
"data-spark-component": "checkbox",
|
|
157
|
+
className: r("gap-md text-body-1 relative flex items-start", t),
|
|
158
|
+
children: U
|
|
159
|
+
});
|
|
160
|
+
};
|
|
161
|
+
A.displayName = "Checkbox";
|
|
162
|
+
//#endregion
|
|
163
|
+
//#region src/checkbox/CheckboxGroup.styles.ts
|
|
164
|
+
var j = n(["flex"], { variants: { orientation: {
|
|
165
|
+
vertical: ["flex-col", "gap-lg"],
|
|
166
|
+
horizontal: ["gap-xl"]
|
|
167
|
+
} } }), M = ({ name: e, value: t, defaultValue: n, className: r, intent: i, orientation: a = "vertical", onCheckedChange: s, reverse: u = !1, children: d, ref: p, ...m }) => {
|
|
168
|
+
let [h, _] = y(t, n), v = g(), x = l(s), { id: S, labelId: C, description: w, state: T, isInvalid: E, isRequired: D } = v, O = e ?? v.name, k = c(() => ({
|
|
169
|
+
id: S,
|
|
170
|
+
name: O,
|
|
171
|
+
value: h,
|
|
172
|
+
intent: i,
|
|
173
|
+
state: T,
|
|
174
|
+
isInvalid: E,
|
|
175
|
+
description: w,
|
|
176
|
+
isRequired: D,
|
|
177
|
+
reverse: u,
|
|
178
|
+
onCheckedChange: (e, t) => {
|
|
179
|
+
let n = h || [], r = e ? [...n, t] : n.filter((e) => e !== t);
|
|
180
|
+
_(r), x.current && x.current(r);
|
|
181
|
+
}
|
|
182
|
+
}), [
|
|
183
|
+
S,
|
|
184
|
+
O,
|
|
185
|
+
h,
|
|
186
|
+
i,
|
|
187
|
+
T,
|
|
188
|
+
E,
|
|
189
|
+
w,
|
|
190
|
+
D,
|
|
191
|
+
_,
|
|
192
|
+
u
|
|
193
|
+
]);
|
|
194
|
+
return o(() => {
|
|
195
|
+
x.current = s;
|
|
196
|
+
}, [s]), /* @__PURE__ */ f(b.Provider, {
|
|
197
|
+
value: k,
|
|
198
|
+
children: /* @__PURE__ */ f("div", {
|
|
199
|
+
ref: p,
|
|
200
|
+
className: j({
|
|
201
|
+
className: r,
|
|
202
|
+
orientation: a
|
|
203
|
+
}),
|
|
204
|
+
role: "group",
|
|
205
|
+
"aria-labelledby": C,
|
|
206
|
+
"aria-describedby": w,
|
|
207
|
+
...m,
|
|
208
|
+
children: d
|
|
209
|
+
})
|
|
210
|
+
});
|
|
211
|
+
};
|
|
212
|
+
M.displayName = "CheckboxGroup";
|
|
213
|
+
//#endregion
|
|
214
|
+
export { A as n, M as t };
|
|
215
|
+
|
|
216
|
+
//# sourceMappingURL=checkbox-xsURzANi.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkbox-xsURzANi.mjs","names":[],"sources":["../src/checkbox/CheckboxGroupContext.tsx","../src/checkbox/CheckboxIndicator.tsx","../src/checkbox/CheckboxInput.styles.ts","../src/checkbox/CheckboxInput.tsx","../src/checkbox/CheckboxLabel.styles.ts","../src/checkbox/CheckboxLabel.tsx","../src/checkbox/Checkbox.tsx","../src/checkbox/CheckboxGroup.styles.ts","../src/checkbox/CheckboxGroup.tsx"],"sourcesContent":["import { createContext, useContext } from 'react'\n\nimport { CheckboxInputStylesProps } from './CheckboxInput.styles'\n\nexport interface CheckboxGroupContextState extends Pick<CheckboxInputStylesProps, 'intent'> {\n /**\n * The id of the checkbox group.\n */\n id: string\n /**\n * The name of the group. Submitted with its owning form as part of a name/value pair.\n */\n name?: string\n /**\n * The value of the checkbox group.\n */\n value?: string[]\n /**\n * A set of ids separated by a space used to describe the input component given by a set of messages.\n */\n description?: string\n /**\n * The validation state of the checkbox group.\n */\n state?: 'error' | 'success' | 'alert'\n /**\n * If true, the checkbox group will be invalid.\n */\n isInvalid?: boolean\n /**\n * If true, the checkbox group will be required.\n */\n isRequired?: boolean\n /**\n * Callback used to update or notify the value of the checkbox group.\n */\n onCheckedChange?: (checked: boolean, changed: string) => void\n /**\n * When true, the label will be placed on the left side of the Checkbox\n */\n reverse?: boolean\n}\n\nexport const CheckboxGroupContext = createContext<Partial<CheckboxGroupContextState>>({})\n\nexport const useCheckboxGroup = () => {\n const context = useContext(CheckboxGroupContext)\n\n return context\n}\n","import { Checkbox } from 'radix-ui'\nimport { Ref } from 'react'\n\nconst CheckboxIndicatorPrimitive = Checkbox.CheckboxIndicator\n\nexport type CheckboxIndicatorProps = Checkbox.CheckboxIndicatorProps & {\n ref?: Ref<HTMLSpanElement>\n}\n\nexport const CheckboxIndicator = (props: CheckboxIndicatorProps) => (\n <CheckboxIndicatorPrimitive className=\"flex size-full items-center justify-center\" {...props} />\n)\n\nCheckboxIndicator.displayName = 'CheckboxIndicator'\n","import { makeVariants } from '@spark-ui/internal-utils'\nimport { cva, VariantProps } from 'class-variance-authority'\n\nexport const checkboxInputStyles = cva(\n [\n 'size-sz-24 shrink-0 items-center justify-center rounded-sm border-md bg-transparent',\n 'disabled:cursor-not-allowed disabled:opacity-dim-3 disabled:hover:ring-0',\n 'focus-visible:u-outline',\n 'hover:ring-4 hover:cursor-pointer',\n 'u-shadow-border-transition',\n ],\n {\n variants: {\n /**\n * Color scheme of the checkbox.\n */\n intent: makeVariants<\n 'intent',\n ['main', 'support', 'accent', 'success', 'alert', 'error', 'info', 'neutral']\n >({\n main: [\n 'text-on-main',\n 'hover:ring-main-container',\n 'data-[state=unchecked]:border-outline',\n 'data-[state=indeterminate]:border-main data-[state=indeterminate]:bg-main',\n 'data-[state=checked]:border-main data-[state=checked]:bg-main',\n ],\n support: [\n 'text-on-support',\n 'hover:ring-support-container',\n 'data-[state=unchecked]:border-outline',\n 'data-[state=indeterminate]:border-support data-[state=indeterminate]:bg-support',\n 'data-[state=checked]:border-support data-[state=checked]:bg-support',\n ],\n accent: [\n 'text-on-accent',\n 'hover:ring-accent-container',\n 'data-[state=unchecked]:border-outline',\n 'data-[state=indeterminate]:border-accent data-[state=indeterminate]:bg-accent',\n 'data-[state=checked]:border-accent data-[state=checked]:bg-accent',\n ],\n success: [\n 'text-on-success',\n 'hover:ring-success-container',\n 'data-[state=unchecked]:border-success',\n 'data-[state=indeterminate]:border-success data-[state=indeterminate]:bg-success',\n 'data-[state=checked]:border-success data-[state=checked]:bg-success',\n ],\n alert: [\n 'text-on-alert',\n 'hover:ring-alert-container',\n 'data-[state=unchecked]:border-alert',\n 'data-[state=indeterminate]:border-alert data-[state=indeterminate]:bg-alert',\n 'data-[state=checked]:border-alert data-[state=checked]:bg-alert',\n ],\n error: [\n 'text-on-error',\n 'hover:ring-error-container',\n 'data-[state=unchecked]:border-error',\n 'data-[state=indeterminate]:border-error data-[state=indeterminate]:bg-error',\n 'data-[state=checked]:border-error data-[state=checked]:bg-error',\n ],\n info: [\n 'text-on-info',\n 'hover:ring-info-container',\n 'data-[state=unchecked]:border-info',\n 'data-[state=indeterminate]:border-info data-[state=indeterminate]:bg-info',\n 'data-[state=checked]:border-info data-[state=checked]:bg-info',\n ],\n neutral: [\n 'text-on-neutral',\n 'hover:ring-neutral-container',\n 'data-[state=unchecked]:border-outline',\n 'data-[state=indeterminate]:border-neutral data-[state=indeterminate]:bg-neutral',\n 'data-[state=checked]:border-neutral data-[state=checked]:bg-neutral',\n ],\n }),\n },\n defaultVariants: {\n intent: 'support',\n },\n }\n)\n\nexport type CheckboxInputStylesProps = VariantProps<typeof checkboxInputStyles>\n","import { Check } from '@spark-ui/icons/Check'\nimport { Minus } from '@spark-ui/icons/Minus'\nimport { Checkbox } from 'radix-ui'\nimport { ComponentPropsWithoutRef, ReactNode, Ref } from 'react'\n\nimport { Icon } from '../icon'\nimport { CheckboxIndicator } from './CheckboxIndicator'\nimport { checkboxInputStyles, type CheckboxInputStylesProps } from './CheckboxInput.styles'\n\ntype CheckedStatus = boolean | 'indeterminate'\n\nconst CheckboxPrimitive = Checkbox.Checkbox\n\nexport interface CheckboxInputProps\n extends\n CheckboxInputStylesProps,\n Omit<ComponentPropsWithoutRef<'button'>, 'onChange' | 'value' | 'checked' | 'defaultChecked'> {\n /**\n * The checked icon to use.\n */\n icon?: ReactNode\n /**\n * The indeterminate icon to use.\n */\n indeterminateIcon?: ReactNode\n /**\n * The checked state of the checkbox when it is initially rendered. Use when you do not need to control its checked state.\n */\n defaultChecked?: boolean\n /**\n * The controlled checked state of the checkbox. Must be used in conjunction with onCheckedChange.\n */\n checked?: CheckedStatus\n /**\n * When true, prevents the user from interacting with the checkbox.\n */\n disabled?: boolean\n /**\n * When true, indicates that the user must check the checkbox before the owning form can be submitted.\n */\n required?: boolean\n /**\n * The name of the checkbox. Submitted with its owning form as part of a name/value pair.\n */\n name?: string\n /**\n * The value given as data when submitted with a name.\n */\n value?: string\n /**\n * Event handler called when the checked state of the checkbox changes.\n */\n onCheckedChange?: (checked: boolean) => void\n ref?: Ref<HTMLButtonElement>\n}\n\nexport const CheckboxInput = ({\n className,\n icon = <Check />,\n indeterminateIcon = <Minus />,\n intent,\n checked,\n ref,\n ...others\n}: CheckboxInputProps) => (\n <CheckboxPrimitive\n ref={ref}\n className={checkboxInputStyles({ intent, className })}\n checked={checked}\n {...others}\n >\n <CheckboxIndicator>\n <Icon size=\"sm\">{checked === 'indeterminate' ? indeterminateIcon : icon}</Icon>\n </CheckboxIndicator>\n </CheckboxPrimitive>\n)\n\nCheckboxInput.displayName = 'CheckboxInput'\n","import { cva, VariantProps } from 'class-variance-authority'\n\nexport const labelStyles = cva('grow', {\n variants: {\n disabled: {\n true: ['text-neutral/dim-2', 'cursor-not-allowed'],\n false: ['cursor-pointer'],\n },\n },\n defaultVariants: {\n disabled: false,\n },\n})\n\nexport type LabelStylesProps = VariantProps<typeof labelStyles>\n","import { Label, LabelProps } from '../label'\nimport { labelStyles, type LabelStylesProps } from './CheckboxLabel.styles'\n\nexport interface CheckboxLabelProps extends LabelProps, LabelStylesProps {\n /**\n * When true, prevents the user from interacting with the checkbox item.\n */\n disabled?: boolean\n}\n\nexport const CheckboxLabel = ({ disabled, ...others }: CheckboxLabelProps) => (\n <Label className={labelStyles({ disabled })} {...others} />\n)\n\nCheckboxLabel.displayName = 'CheckboxLabel'\n","import { useFormFieldControl } from '@spark-ui/components/form-field'\nimport { useMergeRefs } from '@spark-ui/hooks/use-merge-refs'\nimport { cx } from 'class-variance-authority'\nimport { Ref, useId, useMemo, useRef } from 'react'\n\nimport { CheckboxGroupContextState, useCheckboxGroup } from './CheckboxGroupContext'\nimport { CheckboxInput, CheckboxInputProps } from './CheckboxInput'\nimport { CheckboxLabel } from './CheckboxLabel'\n\nexport type CheckboxProps = CheckboxInputProps &\n Pick<CheckboxGroupContextState, 'reverse'> & {\n ref?: Ref<HTMLButtonElement>\n }\n\nconst ID_PREFIX = ':checkbox'\n\n// oxlint-disable-next-line max-lines-per-function\nexport const Checkbox = ({\n id: idProp,\n className,\n intent: intentProp,\n checked: checkedProp,\n value,\n disabled,\n reverse = false,\n onCheckedChange,\n children,\n ref: forwardedRef,\n ...others\n}: CheckboxProps) => {\n const checkboxId = `${ID_PREFIX}-${useId()}`\n const innerId = idProp || checkboxId\n\n const innerLabelId = `${ID_PREFIX}-${useId()}`\n\n const field = useFormFieldControl()\n const group = useCheckboxGroup()\n\n const rootRef = useRef<HTMLButtonElement | undefined>(null)\n const ref = useMergeRefs(forwardedRef, rootRef)\n\n const getCheckboxAttributes = ({\n fieldState,\n groupState,\n checkboxIntent,\n }: {\n fieldState: ReturnType<typeof useFormFieldControl>\n groupState: ReturnType<typeof useCheckboxGroup>\n checkboxIntent: CheckboxInputProps['intent']\n }) => {\n const name = fieldState.name ?? groupState.name\n const isRequired = fieldState.isRequired ?? groupState.isRequired\n const state = fieldState.state ?? groupState.state\n const isInvalid = fieldState.isInvalid ?? groupState.isInvalid\n\n const isFieldEnclosed = fieldState.id !== groupState.id\n const id = isFieldEnclosed ? fieldState.id : undefined\n const description = isFieldEnclosed ? fieldState.description : undefined\n\n const intent = state ?? checkboxIntent ?? groupState.intent\n\n return { name, isRequired, isInvalid, id, description, intent }\n }\n\n const checked = value ? group.value?.includes(value) : checkedProp\n\n const handleCheckedChange = (isChecked: boolean) => {\n onCheckedChange?.(isChecked)\n\n const rootRefValue = rootRef.current?.value\n if (rootRefValue && group.onCheckedChange) {\n group.onCheckedChange(isChecked, rootRefValue)\n }\n }\n\n const {\n id,\n name,\n isInvalid,\n description,\n intent,\n isRequired: isRequiredAttr,\n } = getCheckboxAttributes({\n fieldState: field,\n groupState: group,\n checkboxIntent: intentProp,\n })\n\n const isRequired = useMemo(() => {\n if (!group) return isRequiredAttr\n\n return isRequiredAttr ? !group.value?.length : false\n }, [group, isRequiredAttr])\n\n const checkboxLabel = children && (\n <CheckboxLabel disabled={disabled} htmlFor={id || innerId} id={innerLabelId}>\n {children}\n </CheckboxLabel>\n )\n\n const checkboxInput = (\n <CheckboxInput\n ref={ref}\n id={id || innerId}\n name={name}\n value={value}\n intent={intent}\n checked={checked}\n disabled={disabled}\n required={isRequired}\n aria-describedby={description}\n aria-invalid={isInvalid}\n onCheckedChange={handleCheckedChange}\n aria-labelledby={children ? innerLabelId : field.labelId}\n {...others}\n />\n )\n\n const content =\n group.reverse || reverse ? (\n <>\n {checkboxLabel}\n {checkboxInput}\n </>\n ) : (\n <>\n {checkboxInput}\n {checkboxLabel}\n </>\n )\n\n return (\n <span\n data-spark-component=\"checkbox\"\n className={cx('gap-md text-body-1 relative flex items-start', className)}\n >\n {content}\n </span>\n )\n}\n\nCheckbox.displayName = 'Checkbox'\n","import { cva, VariantProps } from 'class-variance-authority'\n\nexport const checkboxGroupStyles = cva(['flex'], {\n variants: {\n /**\n * Prop to set the orientation of the checkbox group which could be `vertical` or `horizontal`.\n */\n orientation: {\n vertical: ['flex-col', 'gap-lg'],\n horizontal: ['gap-xl'],\n },\n },\n})\n\nexport type CheckboxGroupStylesProps = VariantProps<typeof checkboxGroupStyles>\n","import { useFormFieldControl } from '@spark-ui/components/form-field'\nimport { useCombinedState } from '@spark-ui/hooks/use-combined-state'\nimport { ComponentPropsWithoutRef, Ref, useEffect, useMemo, useRef } from 'react'\n\nimport { checkboxGroupStyles, CheckboxGroupStylesProps } from './CheckboxGroup.styles'\nimport { CheckboxGroupContext, CheckboxGroupContextState } from './CheckboxGroupContext'\n\nexport interface CheckboxGroupProps\n extends\n Omit<ComponentPropsWithoutRef<'div'>, 'value' | 'defaultValue' | 'onChange'>,\n CheckboxGroupStylesProps,\n Pick<CheckboxGroupContextState, 'intent' | 'name' | 'value' | 'reverse'> {\n /**\n * The initial value of the checkbox group\n */\n defaultValue?: string[]\n /**\n * The callback fired when any children Checkbox is checked or unchecked\n */\n onCheckedChange?: (value: string[]) => void\n ref?: Ref<HTMLDivElement>\n}\n\nexport const CheckboxGroup = ({\n name: nameProp,\n value: valueProp,\n defaultValue,\n className,\n intent,\n orientation = 'vertical',\n onCheckedChange: onCheckedChangeProp,\n reverse = false,\n children,\n ref,\n ...others\n}: CheckboxGroupProps) => {\n const [value, setValue] = useCombinedState(valueProp, defaultValue)\n const field = useFormFieldControl()\n const onCheckedChangeRef = useRef(onCheckedChangeProp)\n\n const { id, labelId, description, state, isInvalid, isRequired } = field\n const name = nameProp ?? field.name\n\n const current = useMemo(() => {\n const handleCheckedChange = (checked: boolean, changed: string) => {\n const values = value || []\n const modified = checked\n ? [...values, changed]\n : values.filter((val: string) => val !== changed)\n\n setValue(modified)\n\n if (onCheckedChangeRef.current) {\n onCheckedChangeRef.current(modified)\n }\n }\n\n return {\n id,\n name,\n value,\n intent,\n state,\n isInvalid,\n description,\n isRequired,\n reverse,\n onCheckedChange: handleCheckedChange,\n }\n }, [id, name, value, intent, state, isInvalid, description, isRequired, setValue, reverse])\n\n useEffect(() => {\n onCheckedChangeRef.current = onCheckedChangeProp\n }, [onCheckedChangeProp])\n\n return (\n <CheckboxGroupContext.Provider value={current}>\n <div\n ref={ref}\n className={checkboxGroupStyles({ className, orientation })}\n role=\"group\"\n aria-labelledby={labelId}\n aria-describedby={description}\n {...others}\n >\n {children}\n </div>\n </CheckboxGroupContext.Provider>\n )\n}\n\nCheckboxGroup.displayName = 'CheckboxGroup'\n"],"mappings":"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"}
|
package/dist/chip/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../chunk-C91j1N6u.js`);const e=require(`../slot/index.js`),t=require(`../icon-CRPcdgYp.js`);let n=require(`class-variance-authority`),r=require(`react`),i=require(`react/jsx-runtime`),a=require(`@spark-ui/internal-utils`),o=require(`@spark-ui/hooks/use-combined-state`),s=require(`emulate-tab`),c=require(`@spark-ui/icons/Close`);var l=[{design:`outlined`,intent:`main`,class:(0,a.tw)([`enabled:hover:bg-main/dim-5`,`enabled:active:bg-main/dim-5`,`focus-visible:bg-main/dim-5`,`aria-pressed:bg-main-container aria-pressed:text-on-main-container aria-pressed:enabled:hover:bg-main-container/dim-1`,`text-main`])},{design:`outlined`,intent:`support`,class:(0,a.tw)([`enabled:hover:bg-support/dim-5`,`enabled:active:bg-support/dim-5`,`focus-visible:bg-support/dim-5`,`aria-pressed:bg-support-container aria-pressed:text-on-support-container aria-pressed:enabled:hover:bg-support-container/dim-1`,`text-support`])},{intent:`accent`,design:`outlined`,class:(0,a.tw)([`enabled:hover:bg-accent/dim-5`,`enabled:active:bg-accent/dim-5`,`focus-visible:bg-accent/dim-5`,`aria-pressed:bg-accent-container`,`aria-pressed:bg-accent-container aria-pressed:text-on-accent-container aria-pressed:enabled:hover:bg-accent-container/dim-1`,`text-accent`])},{design:`outlined`,intent:`success`,class:(0,a.tw)([`enabled:hover:bg-success/dim-5`,`enabled:active:bg-success/dim-5`,`focus-visible:bg-success/dim-5`,`aria-pressed:bg-success-container aria-pressed:text-on-success-container aria-pressed:enabled:hover:bg-success-container/dim-1`,`text-success`])},{intent:`alert`,design:`outlined`,class:(0,a.tw)([`enabled:hover:bg-alert/dim-5`,`enabled:active:bg-alert/dim-5`,`focus-visible:bg-alert/dim-5`,`aria-pressed:bg-alert-container aria-pressed:text-on-alert-container aria-pressed:enabled:hover:bg-alert-container/dim-1`,`text-alert`])},{design:`outlined`,intent:`danger`,class:(0,a.tw)([`enabled:hover:bg-error/dim-5`,`enabled:active:bg-error/dim-5`,`focus-visible:bg-error/dim-5`,`aria-pressed:bg-error-container aria-pressed:text-on-error-container aria-pressed:enabled:hover:bg-error-container/dim-1`,`text-error`])},{design:`outlined`,intent:`info`,class:(0,a.tw)([`enabled:hover:bg-info/dim-5`,`enabled:active:bg-info/dim-5`,`focus-visible:bg-info/dim-5`,`aria-pressed:bg-info-container aria-pressed:text-on-info-container aria-pressed:enabled:hover:bg-info-container/dim-1`,`text-info`])},{design:`outlined`,intent:`neutral`,class:(0,a.tw)([`enabled:hover:bg-neutral/dim-5`,`enabled:active:bg-neutral/dim-5`,`focus-visible:bg-neutral/dim-5`,`aria-pressed:bg-neutral-container aria-pressed:text-on-neutral-container aria-pressed:enabled:hover:bg-neutral-container/dim-1`,`text-neutral`])},{design:`outlined`,intent:`surface`,class:(0,a.tw)([`enabled:hover:bg-surface/dim-5`,`enabled:active:bg-surface/dim-5`,`focus-visible:bg-surface/dim-5`,`aria-pressed:bg-surface aria-pressed:text-on-surface aria-pressed:enabled:hover:bg-surface-hovered`,`text-surface`])},{design:`outlined`,hasClearButton:!1,class:(0,a.tw)([`px-[calc(var(--spacing-md)-var(--border-width-sm))]`])},{design:`outlined`,hasClearButton:!0,class:(0,a.tw)([`pl-[calc(var(--spacing-md)-var(--border-width-sm))]`])}],u=[{intent:`main`,design:`tinted`,class:(0,a.tw)([`bg-main-container`,`enabled:hover:bg-main-container-hovered`,`enabled:active:bg-main-container-hovered`,`focus-visible:bg-main-container-hovered`,`aria-pressed:bg-main aria-pressed:text-on-main aria-pressed:enabled:hover:bg-main/dim-1`,`text-on-main-container`])},{intent:`support`,design:`tinted`,class:(0,a.tw)([`bg-support-container`,`enabled:hover:bg-support-container-hovered`,`enabled:active:bg-support-container-hovered`,`focus-visible:bg-support-container-hovered`,`aria-pressed:bg-support aria-pressed:text-on-support aria-pressed:enabled:hover:bg-support/dim-1`,`text-on-support-container`])},{intent:`accent`,design:`tinted`,class:(0,a.tw)([`bg-accent-container`,`enabled:hover:bg-accent-container-hovered`,`enabled:active:bg-accent-container-hovered`,`focus-visible:bg-accent-container-hovered`,`aria-pressed:bg-accent aria-pressed:text-on-accent aria-pressed:enabled:hover:bg-accent/dim-1`,`text-on-accent-container`])},{intent:`success`,design:`tinted`,class:(0,a.tw)([`bg-success-container`,`enabled:hover:bg-success-container-hovered`,`enabled:active:bg-success-container-hovered`,`focus-visible:bg-success-container-hovered`,`aria-pressed:bg-success aria-pressed:text-on-success aria-pressed:enabled:hover:bg-success/dim-1`,`text-on-success-container`])},{intent:`alert`,design:`tinted`,class:(0,a.tw)([`bg-alert-container`,`enabled:hover:bg-alert-container-hovered`,`enabled:active:bg-alert-container-hovered`,`focus-visible:bg-alert-container-hovered`,`aria-pressed:bg-alert aria-pressed:text-on-alert aria-pressed:enabled:hover:bg-alert/dim-1`,`text-on-alert-container`])},{intent:`danger`,design:`tinted`,class:(0,a.tw)([`bg-error-container`,`enabled:hover:bg-error-container-hovered`,`enabled:active:bg-error-container-hovered`,`focus-visible:bg-error-container-hovered`,`aria-pressed:bg-error aria-pressed:text-on-error aria-pressed:enabled:hover:bg-error/dim-1`,`text-on-error-container`])},{intent:`info`,design:`tinted`,class:(0,a.tw)([`bg-info-container`,`enabled:hover:bg-info-container-hovered`,`enabled:active:bg-info-container-hovered`,`focus-visible:bg-info-container-hovered`,`aria-pressed:bg-info aria-pressed:text-on-info aria-pressed:enabled:hover:bg-info/dim-1`,`text-on-info-container`])},{intent:`neutral`,design:`tinted`,class:(0,a.tw)([`bg-neutral-container`,`enabled:hover:bg-neutral-container-hovered`,`enabled:active:bg-neutral-container-hovered`,`focus-visible:bg-neutral-container-hovered`,`aria-pressed:bg-neutral aria-pressed:text-on-neutral aria-pressed:enabled:hover:bg-neutral/dim-1`,`text-on-neutral-container`])},{intent:`surface`,design:`tinted`,class:(0,a.tw)([`bg-surface/dim-1`,`enabled:hover:bg-surface-hovered/dim-1`,`enabled:active:bg-surface-hovered/dim-1`,`focus-visible:bg-surface-hovered/dim-1`,`aria-pressed:bg-surface aria-pressed:text-on-surface aria-pressed:enabled:hover:bg-surface-hovered`,`text-on-surface/dim-1`])},{design:`tinted`,hasClearButton:!1,class:(0,a.tw)([`px-md`])},{design:`tinted`,hasClearButton:!0,class:(0,a.tw)([`pl-md`])}],d=[{intent:`main`,design:`dashed`,class:(0,a.tw)([`enabled:hover:bg-main/dim-5`,`enabled:active:bg-main/dim-5`,`focus-visible:bg-main/dim-5`,`aria-pressed:bg-main-container aria-pressed:text-on-main-container aria-pressed:enabled:hover:bg-main-container/dim-1`,`text-main`])},{intent:`support`,design:`dashed`,class:(0,a.tw)([`enabled:hover:bg-support/dim-5`,`enabled:active:bg-support/dim-5`,`focus-visible:bg-support/dim-5`,`aria-pressed:bg-support-container aria-pressed:text-on-support-container aria-pressed:enabled:hover:bg-support-container/dim-1`,`text-support`])},{intent:`accent`,design:`dashed`,class:(0,a.tw)([`enabled:hover:bg-accent/dim-5`,`enabled:active:bg-accent/dim-5`,`focus-visible:bg-accent/dim-5`,`aria-pressed:bg-accent-container aria-pressed:text-on-accent-container aria-pressed:enabled:hover:bg-accent-container/dim-1`,`text-accent`])},{intent:`success`,design:`dashed`,class:(0,a.tw)([`enabled:hover:bg-success/dim-5`,`enabled:active:bg-success/dim-5`,`focus-visible:bg-success/dim-5`,`aria-pressed:bg-success-container aria-pressed:text-on-success-container aria-pressed:enabled:hover:bg-success-container/dim-1`,`text-success`])},{intent:`alert`,design:`dashed`,class:(0,a.tw)([`enabled:hover:bg-alert/dim-5`,`enabled:active:bg-alert/dim-5`,`focus-visible:bg-alert/dim-5`,`aria-pressed:bg-alert-container aria-pressed:text-on-alert-container aria-pressed:enabled:hover:bg-alert-container/dim-1`,`text-alert`])},{intent:`danger`,design:`dashed`,class:(0,a.tw)([`enabled:hover:bg-error/dim-5`,`enabled:active:bg-error/dim-5`,`focus-visible:bg-error/dim-5`,`aria-pressed:bg-error-container aria-pressed:text-on-error-container aria-pressed:enabled:hover:bg-error-container/dim-1`,`text-error`])},{intent:`info`,design:`dashed`,class:(0,a.tw)([`enabled:hover:bg-info/dim-5`,`enabled:active:bg-info/dim-5`,`focus-visible:bg-info/dim-5`,`aria-pressed:bg-info-container aria-pressed:text-on-info-container aria-pressed:enabled:hover:bg-info-container/dim-1`,`text-info`])},{intent:`neutral`,design:`dashed`,class:(0,a.tw)([`enabled:hover:bg-neutral/dim-5`,`enabled:active:bg-neutral/dim-5`,`focus-visible:bg-neutral/dim-5`,`aria-pressed:bg-neutral-container aria-pressed:text-on-neutral-container aria-pressed:enabled:hover:bg-neutral-container/dim-1`,`text-neutral`])},{intent:`surface`,design:`dashed`,class:(0,a.tw)([`enabled:hover:bg-surface/dim-5`,`enabled:active:bg-surface/dim-5`,`focus-visible:bg-surface/dim-5`,`aria-pressed:bg-surface aria-pressed:text-on-surface aria-pressed:enabled:hover:bg-surface-hovered`,`text-surface`])},{design:`dashed`,hasClearButton:!1,class:(0,a.tw)([`px-[calc(var(--spacing-md)-var(--border-width-sm))]`])},{design:`dashed`,hasClearButton:!0,class:(0,a.tw)([`pl-[calc(var(--spacing-md)-var(--border-width-sm))]`])}],f=(0,n.cva)([`box-border inline-flex h-sz-32 flex-nowrap items-center justify-center rounded-full text-body-1 font-regular`,`focus-visible:u-outline`,`ease-out duration-150`],{variants:{design:(0,a.makeVariants)({outlined:[`bg-transparent border-sm border-solid border-current`],tinted:[``],dashed:[`bg-transparent border-sm border-dashed shadow-none focus-visible:border-outline-high`]}),intent:(0,a.makeVariants)({main:[],support:[],accent:[],success:[],alert:[],danger:[],info:[],neutral:[],surface:[]}),disabled:{true:[`cursor-not-allowed`,`opacity-dim-3`]},hasClearButton:{true:[],false:[]}},compoundVariants:[...l,...u,...d],defaultVariants:{design:`outlined`,intent:`support`}}),p=(0,r.createContext)({}),m=()=>(0,r.useContext)(p)||{},h=e=>e?e.type.displayName:``,g=e=>(...t)=>r.Children.toArray(e).filter(r.isValidElement).find(e=>{let n=h(e);return t.includes(n||``)}),_=({onClick:t,asChild:n,pressed:r,defaultPressed:a,disabled:c,value:l,defaultValue:u,children:d,onClear:f})=>{let[p,m]=(0,o.useCombinedState)(r,a),[h]=(0,o.useCombinedState)(l,u),_=g(d),v=_(`Chip.LeadingIcon`),y=_(`Chip.TrailingIcon`),b=_(`Chip.Content`),x=_(`Chip.ClearButton`),S=(t||p)!==void 0,C=[v,b,x].every(e=>e===void 0)?(0,i.jsx)(`span`,{className:`inline-block grow truncate`,children:d}):(0,i.jsxs)(i.Fragment,{children:[v,b,v===void 0?y:null,x]}),w=e=>{x&&!c&&[`Delete`,`Backspace`].includes(e.key)&&f&&(f(),e.key===`Delete`&&(0,s.emulateTab)(),e.key===`Backspace`&&s.emulateTab.backwards())};return S?{Element:n?e.Slot:`button`,chipProps:{type:`button`,...p!==void 0&&{"aria-pressed":p,"data-state":p?`on`:`off`},onClick:e=>{p!==void 0&&m(!p),t&&t(e,{pressed:p,value:h})},onKeyDown:w,disabled:c,children:C},compoundElements:{leadingIcon:v,trailingIcon:y,content:b,clearButton:x}}:{Element:n?e.Slot:`div`,chipProps:{"aria-disabled":c,children:C,onKeyDown:w},compoundElements:{leadingIcon:v,trailingIcon:y,content:b,clearButton:x}}},v=({design:e=`outlined`,disabled:t,children:n,intent:r=`support`,defaultPressed:a,pressed:o,asChild:s,className:c,onClick:l,onClear:u,ref:d,...m})=>{let{Element:h,chipProps:{children:g,...v},compoundElements:y}=_({asChild:s,pressed:o,defaultPressed:a,onClick:l,disabled:!!t,value:m.value,defaultValue:m.defaultValue,children:n,onClear:u}),{clearButton:b}=y;return(0,i.jsx)(p.Provider,{value:{disabled:t,design:e,intent:r,onClear:u},children:(0,i.jsx)(h,{ref:d,className:f({className:c,design:e,disabled:t,intent:r,hasClearButton:!!b}),...v,...m,"data-spark-component":`chip`,children:g})})};v.displayName=`Chip`;var y=(0,n.cva)([`ml-md flex h-full items-center justify-center focus-visible:outline-hidden`],{variants:{disabled:{false:[`cursor-pointer`],true:[`cursor-not-allowed`]},isBordered:{false:[`pr-md`],true:[`pr-[7px]`]},design:{outlined:[],tinted:[],dashed:[]}},compoundVariants:[{design:`outlined`,disabled:!1,class:(0,a.tw)([`hover:opacity-dim-1`])},{design:`outlined`,disabled:!0,class:(0,a.tw)([`opacity-dim-3`])},{design:`tinted`,disabled:!1,class:(0,a.tw)([`hover:opacity-dim-1`])},{design:`tinted`,disabled:!0,class:(0,a.tw)([`opacity-dim-3`])},{design:`dashed`,disabled:!1,class:(0,a.tw)([`hover:opacity-dim-1`])},{design:`dashed`,disabled:!0,class:(0,a.tw)([`opacity-dim-3`])}]}),b=(0,n.cva)([`rounded-full p-sz-2 [font-size:var(--spacing-sz-8)] border-sm`,`focus-visible:u-outline`],{variants:{disabled:{true:[`cursor-not-allowed`],false:[`cursor-pointer`]}},defaultVariants:{disabled:!1}}),x=({children:e=(0,i.jsx)(t.t,{children:(0,i.jsx)(c.Close,{})}),tabIndex:n=0,label:a,ref:o})=>{let{design:s,disabled:l,onClear:u}=m(),d=(0,r.useCallback)(e=>{e.stopPropagation(),!l&&u&&u(e)},[l,u]);return(0,i.jsx)(`span`,{className:y({isBordered:[`outline`,`dashed`].includes(`${s}`),disabled:!!l,design:s}),onClick:d,ref:o,children:(0,i.jsx)(`button`,{tabIndex:n,type:`button`,disabled:!!l,className:b({disabled:l}),"aria-label":a,children:e&&(0,r.cloneElement)(e,{ariaLabel:a})})})};x.displayName=`Chip.ClearButton`;var S=({children:e,className:t,ref:r})=>(0,i.jsx)(`span`,{className:(0,n.cx)(`inline-block grow truncate`,t),ref:r,children:e});S.displayName=`Chip.Content`;var C=({children:e,className:t,ref:r})=>(0,i.jsx)(`span`,{className:(0,n.cx)(`flex h-full items-center justify-center`,t),ref:r,children:e});C.displayName=`Chip.Icon`;var w=({className:e,ref:t,...r})=>(0,i.jsx)(C,{className:(0,n.cx)(`mr-sm`,e),ref:t,...r});w.displayName=`Chip.LeadingIcon`;var T=({className:e,ref:t,...r})=>(0,i.jsx)(C,{className:(0,n.cx)(`ml-md`,e),ref:t,...r});T.displayName=`Chip.TrailingIcon`;var E=Object.assign(v,{Content:S,LeadingIcon:w,TrailingIcon:T,ClearButton:x});E.displayName=`Chip`,E.ClearButton.displayName=`Chip.ClearButton`,E.Content.displayName=`Chip.Content`,E.LeadingIcon.displayName=`Chip.LeadingIcon`,E.TrailingIcon.displayName=`Chip.TrailingIcon`,exports.Chip=E;
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../chunk-C91j1N6u.js`);const e=require(`../slot/index.js`),t=require(`../icon-CRPcdgYp.js`);let n=require(`class-variance-authority`),r=require(`react`),i=require(`react/jsx-runtime`),a=require(`@spark-ui/internal-utils`),o=require(`@spark-ui/hooks/use-combined-state`),s=require(`emulate-tab`),c=require(`@spark-ui/icons/Close`);var l=[{design:`outlined`,intent:`main`,class:(0,a.tw)([`enabled:hover:bg-main/dim-5`,`enabled:active:bg-main/dim-5`,`focus-visible:bg-main/dim-5`,`aria-pressed:bg-main-container aria-pressed:text-on-main-container aria-pressed:enabled:hover:bg-main-container/dim-1`,`text-main`])},{design:`outlined`,intent:`support`,class:(0,a.tw)([`enabled:hover:bg-support/dim-5`,`enabled:active:bg-support/dim-5`,`focus-visible:bg-support/dim-5`,`aria-pressed:bg-support-container aria-pressed:text-on-support-container aria-pressed:enabled:hover:bg-support-container/dim-1`,`text-support`])},{intent:`accent`,design:`outlined`,class:(0,a.tw)([`enabled:hover:bg-accent/dim-5`,`enabled:active:bg-accent/dim-5`,`focus-visible:bg-accent/dim-5`,`aria-pressed:bg-accent-container`,`aria-pressed:bg-accent-container aria-pressed:text-on-accent-container aria-pressed:enabled:hover:bg-accent-container/dim-1`,`text-accent`])},{design:`outlined`,intent:`success`,class:(0,a.tw)([`enabled:hover:bg-success/dim-5`,`enabled:active:bg-success/dim-5`,`focus-visible:bg-success/dim-5`,`aria-pressed:bg-success-container aria-pressed:text-on-success-container aria-pressed:enabled:hover:bg-success-container/dim-1`,`text-success`])},{intent:`alert`,design:`outlined`,class:(0,a.tw)([`enabled:hover:bg-alert/dim-5`,`enabled:active:bg-alert/dim-5`,`focus-visible:bg-alert/dim-5`,`aria-pressed:bg-alert-container aria-pressed:text-on-alert-container aria-pressed:enabled:hover:bg-alert-container/dim-1`,`text-alert`])},{design:`outlined`,intent:`danger`,class:(0,a.tw)([`enabled:hover:bg-error/dim-5`,`enabled:active:bg-error/dim-5`,`focus-visible:bg-error/dim-5`,`aria-pressed:bg-error-container aria-pressed:text-on-error-container aria-pressed:enabled:hover:bg-error-container/dim-1`,`text-error`])},{design:`outlined`,intent:`info`,class:(0,a.tw)([`enabled:hover:bg-info/dim-5`,`enabled:active:bg-info/dim-5`,`focus-visible:bg-info/dim-5`,`aria-pressed:bg-info-container aria-pressed:text-on-info-container aria-pressed:enabled:hover:bg-info-container/dim-1`,`text-info`])},{design:`outlined`,intent:`neutral`,class:(0,a.tw)([`enabled:hover:bg-neutral/dim-5`,`enabled:active:bg-neutral/dim-5`,`focus-visible:bg-neutral/dim-5`,`aria-pressed:bg-neutral-container aria-pressed:text-on-neutral-container aria-pressed:enabled:hover:bg-neutral-container/dim-1`,`text-neutral`])},{design:`outlined`,intent:`surface`,class:(0,a.tw)([`enabled:hover:bg-surface/dim-5`,`enabled:active:bg-surface/dim-5`,`focus-visible:bg-surface/dim-5`,`aria-pressed:bg-surface aria-pressed:text-on-surface aria-pressed:enabled:hover:bg-surface-hovered`,`text-surface`])},{design:`outlined`,hasClearButton:!1,class:(0,a.tw)([`px-[calc(var(--spacing-md)-var(--border-width-sm))]`])},{design:`outlined`,hasClearButton:!0,class:(0,a.tw)([`pl-[calc(var(--spacing-md)-var(--border-width-sm))]`])}],u=[{intent:`main`,design:`tinted`,class:(0,a.tw)([`bg-main-container`,`enabled:hover:bg-main-container-hovered`,`enabled:active:bg-main-container-hovered`,`focus-visible:bg-main-container-hovered`,`aria-pressed:bg-main aria-pressed:text-on-main aria-pressed:enabled:hover:bg-main/dim-1`,`text-on-main-container`])},{intent:`support`,design:`tinted`,class:(0,a.tw)([`bg-support-container`,`enabled:hover:bg-support-container-hovered`,`enabled:active:bg-support-container-hovered`,`focus-visible:bg-support-container-hovered`,`aria-pressed:bg-support aria-pressed:text-on-support aria-pressed:enabled:hover:bg-support/dim-1`,`text-on-support-container`])},{intent:`accent`,design:`tinted`,class:(0,a.tw)([`bg-accent-container`,`enabled:hover:bg-accent-container-hovered`,`enabled:active:bg-accent-container-hovered`,`focus-visible:bg-accent-container-hovered`,`aria-pressed:bg-accent aria-pressed:text-on-accent aria-pressed:enabled:hover:bg-accent/dim-1`,`text-on-accent-container`])},{intent:`success`,design:`tinted`,class:(0,a.tw)([`bg-success-container`,`enabled:hover:bg-success-container-hovered`,`enabled:active:bg-success-container-hovered`,`focus-visible:bg-success-container-hovered`,`aria-pressed:bg-success aria-pressed:text-on-success aria-pressed:enabled:hover:bg-success/dim-1`,`text-on-success-container`])},{intent:`alert`,design:`tinted`,class:(0,a.tw)([`bg-alert-container`,`enabled:hover:bg-alert-container-hovered`,`enabled:active:bg-alert-container-hovered`,`focus-visible:bg-alert-container-hovered`,`aria-pressed:bg-alert aria-pressed:text-on-alert aria-pressed:enabled:hover:bg-alert/dim-1`,`text-on-alert-container`])},{intent:`danger`,design:`tinted`,class:(0,a.tw)([`bg-error-container`,`enabled:hover:bg-error-container-hovered`,`enabled:active:bg-error-container-hovered`,`focus-visible:bg-error-container-hovered`,`aria-pressed:bg-error aria-pressed:text-on-error aria-pressed:enabled:hover:bg-error/dim-1`,`text-on-error-container`])},{intent:`info`,design:`tinted`,class:(0,a.tw)([`bg-info-container`,`enabled:hover:bg-info-container-hovered`,`enabled:active:bg-info-container-hovered`,`focus-visible:bg-info-container-hovered`,`aria-pressed:bg-info aria-pressed:text-on-info aria-pressed:enabled:hover:bg-info/dim-1`,`text-on-info-container`])},{intent:`neutral`,design:`tinted`,class:(0,a.tw)([`bg-neutral-container`,`enabled:hover:bg-neutral-container-hovered`,`enabled:active:bg-neutral-container-hovered`,`focus-visible:bg-neutral-container-hovered`,`aria-pressed:bg-neutral aria-pressed:text-on-neutral aria-pressed:enabled:hover:bg-neutral/dim-1`,`text-on-neutral-container`])},{intent:`surface`,design:`tinted`,class:(0,a.tw)([`bg-surface/dim-1`,`enabled:hover:bg-surface-hovered/dim-1`,`enabled:active:bg-surface-hovered/dim-1`,`focus-visible:bg-surface-hovered/dim-1`,`aria-pressed:bg-surface aria-pressed:text-on-surface aria-pressed:enabled:hover:bg-surface-hovered`,`text-on-surface/dim-1`])},{design:`tinted`,hasClearButton:!1,class:(0,a.tw)([`px-md`])},{design:`tinted`,hasClearButton:!0,class:(0,a.tw)([`pl-md`])}],d=[{intent:`main`,design:`dashed`,class:(0,a.tw)([`enabled:hover:bg-main/dim-5`,`enabled:active:bg-main/dim-5`,`focus-visible:bg-main/dim-5`,`aria-pressed:bg-main-container aria-pressed:text-on-main-container aria-pressed:enabled:hover:bg-main-container/dim-1`,`text-main`])},{intent:`support`,design:`dashed`,class:(0,a.tw)([`enabled:hover:bg-support/dim-5`,`enabled:active:bg-support/dim-5`,`focus-visible:bg-support/dim-5`,`aria-pressed:bg-support-container aria-pressed:text-on-support-container aria-pressed:enabled:hover:bg-support-container/dim-1`,`text-support`])},{intent:`accent`,design:`dashed`,class:(0,a.tw)([`enabled:hover:bg-accent/dim-5`,`enabled:active:bg-accent/dim-5`,`focus-visible:bg-accent/dim-5`,`aria-pressed:bg-accent-container aria-pressed:text-on-accent-container aria-pressed:enabled:hover:bg-accent-container/dim-1`,`text-accent`])},{intent:`success`,design:`dashed`,class:(0,a.tw)([`enabled:hover:bg-success/dim-5`,`enabled:active:bg-success/dim-5`,`focus-visible:bg-success/dim-5`,`aria-pressed:bg-success-container aria-pressed:text-on-success-container aria-pressed:enabled:hover:bg-success-container/dim-1`,`text-success`])},{intent:`alert`,design:`dashed`,class:(0,a.tw)([`enabled:hover:bg-alert/dim-5`,`enabled:active:bg-alert/dim-5`,`focus-visible:bg-alert/dim-5`,`aria-pressed:bg-alert-container aria-pressed:text-on-alert-container aria-pressed:enabled:hover:bg-alert-container/dim-1`,`text-alert`])},{intent:`danger`,design:`dashed`,class:(0,a.tw)([`enabled:hover:bg-error/dim-5`,`enabled:active:bg-error/dim-5`,`focus-visible:bg-error/dim-5`,`aria-pressed:bg-error-container aria-pressed:text-on-error-container aria-pressed:enabled:hover:bg-error-container/dim-1`,`text-error`])},{intent:`info`,design:`dashed`,class:(0,a.tw)([`enabled:hover:bg-info/dim-5`,`enabled:active:bg-info/dim-5`,`focus-visible:bg-info/dim-5`,`aria-pressed:bg-info-container aria-pressed:text-on-info-container aria-pressed:enabled:hover:bg-info-container/dim-1`,`text-info`])},{intent:`neutral`,design:`dashed`,class:(0,a.tw)([`enabled:hover:bg-neutral/dim-5`,`enabled:active:bg-neutral/dim-5`,`focus-visible:bg-neutral/dim-5`,`aria-pressed:bg-neutral-container aria-pressed:text-on-neutral-container aria-pressed:enabled:hover:bg-neutral-container/dim-1`,`text-neutral`])},{intent:`surface`,design:`dashed`,class:(0,a.tw)([`enabled:hover:bg-surface/dim-5`,`enabled:active:bg-surface/dim-5`,`focus-visible:bg-surface/dim-5`,`aria-pressed:bg-surface aria-pressed:text-on-surface aria-pressed:enabled:hover:bg-surface-hovered`,`text-surface`])},{design:`dashed`,hasClearButton:!1,class:(0,a.tw)([`px-[calc(var(--spacing-md)-var(--border-width-sm))]`])},{design:`dashed`,hasClearButton:!0,class:(0,a.tw)([`pl-[calc(var(--spacing-md)-var(--border-width-sm))]`])}],f=(0,n.cva)([`box-border inline-flex h-sz-32 flex-nowrap items-center justify-center rounded-md text-body-1 font-regular`,`focus-visible:u-outline`,`ease-out duration-150`],{variants:{design:(0,a.makeVariants)({outlined:[`bg-transparent border-sm border-solid border-current`],tinted:[``],dashed:[`bg-transparent border-sm border-dashed shadow-none focus-visible:border-outline-high`]}),intent:(0,a.makeVariants)({main:[],support:[],accent:[],success:[],alert:[],danger:[],info:[],neutral:[],surface:[]}),disabled:{true:[`cursor-not-allowed`,`opacity-dim-3`]},hasClearButton:{true:[],false:[]}},compoundVariants:[...l,...u,...d],defaultVariants:{design:`outlined`,intent:`support`}}),p=(0,r.createContext)({}),m=()=>(0,r.useContext)(p)||{},h=e=>e?e.type.displayName:``,g=e=>(...t)=>r.Children.toArray(e).filter(r.isValidElement).find(e=>{let n=h(e);return t.includes(n||``)}),_=({onClick:t,asChild:n,pressed:r,defaultPressed:a,disabled:c,value:l,defaultValue:u,children:d,onClear:f})=>{let[p,m]=(0,o.useCombinedState)(r,a),[h]=(0,o.useCombinedState)(l,u),_=g(d),v=_(`Chip.LeadingIcon`),y=_(`Chip.TrailingIcon`),b=_(`Chip.Content`),x=_(`Chip.ClearButton`),S=(t||p)!==void 0,C=[v,b,x].every(e=>e===void 0)?(0,i.jsx)(`span`,{className:`inline-block grow truncate`,children:d}):(0,i.jsxs)(i.Fragment,{children:[v,b,v===void 0?y:null,x]}),w=e=>{x&&!c&&[`Delete`,`Backspace`].includes(e.key)&&f&&(f(),e.key===`Delete`&&(0,s.emulateTab)(),e.key===`Backspace`&&s.emulateTab.backwards())};return S?{Element:n?e.Slot:`button`,chipProps:{type:`button`,...p!==void 0&&{"aria-pressed":p,"data-state":p?`on`:`off`},onClick:e=>{p!==void 0&&m(!p),t&&t(e,{pressed:p,value:h})},onKeyDown:w,disabled:c,children:C},compoundElements:{leadingIcon:v,trailingIcon:y,content:b,clearButton:x}}:{Element:n?e.Slot:`div`,chipProps:{"aria-disabled":c,children:C,onKeyDown:w},compoundElements:{leadingIcon:v,trailingIcon:y,content:b,clearButton:x}}},v=({design:e=`outlined`,disabled:t,children:n,intent:r=`support`,defaultPressed:a,pressed:o,asChild:s,className:c,onClick:l,onClear:u,ref:d,...m})=>{let{Element:h,chipProps:{children:g,...v},compoundElements:y}=_({asChild:s,pressed:o,defaultPressed:a,onClick:l,disabled:!!t,value:m.value,defaultValue:m.defaultValue,children:n,onClear:u}),{clearButton:b}=y;return(0,i.jsx)(p.Provider,{value:{disabled:t,design:e,intent:r,onClear:u},children:(0,i.jsx)(h,{ref:d,className:f({className:c,design:e,disabled:t,intent:r,hasClearButton:!!b}),...v,...m,"data-spark-component":`chip`,children:g})})};v.displayName=`Chip`;var y=(0,n.cva)([`ml-md flex h-full items-center justify-center focus-visible:outline-hidden`],{variants:{disabled:{false:[`cursor-pointer`],true:[`cursor-not-allowed`]},isBordered:{false:[`pr-md`],true:[`pr-[7px]`]},design:{outlined:[],tinted:[],dashed:[]}},compoundVariants:[{design:`outlined`,disabled:!1,class:(0,a.tw)([`hover:opacity-dim-1`])},{design:`outlined`,disabled:!0,class:(0,a.tw)([`opacity-dim-3`])},{design:`tinted`,disabled:!1,class:(0,a.tw)([`hover:opacity-dim-1`])},{design:`tinted`,disabled:!0,class:(0,a.tw)([`opacity-dim-3`])},{design:`dashed`,disabled:!1,class:(0,a.tw)([`hover:opacity-dim-1`])},{design:`dashed`,disabled:!0,class:(0,a.tw)([`opacity-dim-3`])}]}),b=(0,n.cva)([`rounded-full p-sz-2 [font-size:var(--spacing-sz-8)] border-sm`,`focus-visible:u-outline`],{variants:{disabled:{true:[`cursor-not-allowed`],false:[`cursor-pointer`]}},defaultVariants:{disabled:!1}}),x=({children:e=(0,i.jsx)(t.t,{children:(0,i.jsx)(c.Close,{})}),tabIndex:n=0,label:a,ref:o})=>{let{design:s,disabled:l,onClear:u}=m(),d=(0,r.useCallback)(e=>{e.stopPropagation(),!l&&u&&u(e)},[l,u]);return(0,i.jsx)(`span`,{className:y({isBordered:[`outline`,`dashed`].includes(`${s}`),disabled:!!l,design:s}),onClick:d,ref:o,children:(0,i.jsx)(`button`,{tabIndex:n,type:`button`,disabled:!!l,className:b({disabled:l}),"aria-label":a,children:e&&(0,r.cloneElement)(e,{ariaLabel:a})})})};x.displayName=`Chip.ClearButton`;var S=({children:e,className:t,ref:r})=>(0,i.jsx)(`span`,{className:(0,n.cx)(`inline-block grow truncate`,t),ref:r,children:e});S.displayName=`Chip.Content`;var C=({children:e,className:t,ref:r})=>(0,i.jsx)(`span`,{className:(0,n.cx)(`flex h-full items-center justify-center`,t),ref:r,children:e});C.displayName=`Chip.Icon`;var w=({className:e,ref:t,...r})=>(0,i.jsx)(C,{className:(0,n.cx)(`mr-sm`,e),ref:t,...r});w.displayName=`Chip.LeadingIcon`;var T=({className:e,ref:t,...r})=>(0,i.jsx)(C,{className:(0,n.cx)(`ml-md`,e),ref:t,...r});T.displayName=`Chip.TrailingIcon`;var E=Object.assign(v,{Content:S,LeadingIcon:w,TrailingIcon:T,ClearButton:x});E.displayName=`Chip`,E.ClearButton.displayName=`Chip.ClearButton`,E.Content.displayName=`Chip.Content`,E.LeadingIcon.displayName=`Chip.LeadingIcon`,E.TrailingIcon.displayName=`Chip.TrailingIcon`,exports.Chip=E;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|