@zentauri-ui/zentauri-components 1.7.0 → 1.7.1
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/README.md +9 -5
- package/cli/index.mjs +1 -0
- package/cli/registry.json +2 -0
- package/dist/chunk-6QQUQLPB.js +107 -0
- package/dist/chunk-6QQUQLPB.js.map +1 -0
- package/dist/chunk-K6IZANTI.mjs +80 -0
- package/dist/chunk-K6IZANTI.mjs.map +1 -0
- package/dist/chunk-MTTXLC2V.mjs +100 -0
- package/dist/chunk-MTTXLC2V.mjs.map +1 -0
- package/dist/chunk-PHEUJ4EF.js +84 -0
- package/dist/chunk-PHEUJ4EF.js.map +1 -0
- package/dist/design-system/checkbox.d.ts +32 -0
- package/dist/design-system/checkbox.d.ts.map +1 -0
- package/dist/design-system/index.d.ts +2 -0
- package/dist/design-system/index.d.ts.map +1 -1
- package/dist/design-system/radio-group.d.ts +37 -0
- package/dist/design-system/radio-group.d.ts.map +1 -0
- package/dist/ui/checkbox/animated/animations.d.ts +32 -0
- package/dist/ui/checkbox/animated/animations.d.ts.map +1 -0
- package/dist/ui/checkbox/animated/checkbox-animated.d.ts +6 -0
- package/dist/ui/checkbox/animated/checkbox-animated.d.ts.map +1 -0
- package/dist/ui/checkbox/animated/index.d.ts +4 -0
- package/dist/ui/checkbox/animated/index.d.ts.map +1 -0
- package/dist/ui/checkbox/animated/types.d.ts +8 -0
- package/dist/ui/checkbox/animated/types.d.ts.map +1 -0
- package/dist/ui/checkbox/animated.js +153 -0
- package/dist/ui/checkbox/animated.js.map +1 -0
- package/dist/ui/checkbox/animated.mjs +150 -0
- package/dist/ui/checkbox/animated.mjs.map +1 -0
- package/dist/ui/checkbox/checkbox-base.d.ts +6 -0
- package/dist/ui/checkbox/checkbox-base.d.ts.map +1 -0
- package/dist/ui/checkbox/checkbox.d.ts +6 -0
- package/dist/ui/checkbox/checkbox.d.ts.map +1 -0
- package/dist/ui/checkbox/index.d.ts +4 -0
- package/dist/ui/checkbox/index.d.ts.map +1 -0
- package/dist/ui/checkbox/types.d.ts +19 -0
- package/dist/ui/checkbox/types.d.ts.map +1 -0
- package/dist/ui/checkbox/variants.d.ts +11 -0
- package/dist/ui/checkbox/variants.d.ts.map +1 -0
- package/dist/ui/checkbox.js +150 -0
- package/dist/ui/checkbox.js.map +1 -0
- package/dist/ui/checkbox.mjs +137 -0
- package/dist/ui/checkbox.mjs.map +1 -0
- package/dist/ui/radio-group/animated/animations.d.ts +32 -0
- package/dist/ui/radio-group/animated/animations.d.ts.map +1 -0
- package/dist/ui/radio-group/animated/index.d.ts +4 -0
- package/dist/ui/radio-group/animated/index.d.ts.map +1 -0
- package/dist/ui/radio-group/animated/radio-group-animated.d.ts +10 -0
- package/dist/ui/radio-group/animated/radio-group-animated.d.ts.map +1 -0
- package/dist/ui/radio-group/animated/types.d.ts +11 -0
- package/dist/ui/radio-group/animated/types.d.ts.map +1 -0
- package/dist/ui/radio-group/animated.js +177 -0
- package/dist/ui/radio-group/animated.js.map +1 -0
- package/dist/ui/radio-group/animated.mjs +173 -0
- package/dist/ui/radio-group/animated.mjs.map +1 -0
- package/dist/ui/radio-group/index.d.ts +4 -0
- package/dist/ui/radio-group/index.d.ts.map +1 -0
- package/dist/ui/radio-group/radio-group-context.d.ts +13 -0
- package/dist/ui/radio-group/radio-group-context.d.ts.map +1 -0
- package/dist/ui/radio-group/radio-group.d.ts +10 -0
- package/dist/ui/radio-group/radio-group.d.ts.map +1 -0
- package/dist/ui/radio-group/types.d.ts +26 -0
- package/dist/ui/radio-group/types.d.ts.map +1 -0
- package/dist/ui/radio-group/variants.d.ts +14 -0
- package/dist/ui/radio-group/variants.d.ts.map +1 -0
- package/dist/ui/radio-group.js +171 -0
- package/dist/ui/radio-group.js.map +1 -0
- package/dist/ui/radio-group.mjs +153 -0
- package/dist/ui/radio-group.mjs.map +1 -0
- package/package.json +1 -1
- package/src/design-system/checkbox.ts +47 -0
- package/src/design-system/index.ts +2 -0
- package/src/design-system/radio-group.ts +54 -0
- package/src/ui/checkbox/animated/animations.ts +12 -0
- package/src/ui/checkbox/animated/checkbox-animated.tsx +145 -0
- package/src/ui/checkbox/animated/index.ts +9 -0
- package/src/ui/checkbox/animated/types.ts +9 -0
- package/src/ui/checkbox/checkbox-base.tsx +134 -0
- package/src/ui/checkbox/checkbox.test.tsx +53 -0
- package/src/ui/checkbox/checkbox.tsx +8 -0
- package/src/ui/checkbox/index.ts +15 -0
- package/src/ui/checkbox/types.ts +40 -0
- package/src/ui/checkbox/variants.ts +50 -0
- package/src/ui/radio-group/animated/animations.ts +12 -0
- package/src/ui/radio-group/animated/index.ts +10 -0
- package/src/ui/radio-group/animated/radio-group-animated.tsx +173 -0
- package/src/ui/radio-group/animated/types.ts +13 -0
- package/src/ui/radio-group/index.ts +19 -0
- package/src/ui/radio-group/radio-group-context.ts +23 -0
- package/src/ui/radio-group/radio-group.test.tsx +61 -0
- package/src/ui/radio-group/radio-group.tsx +159 -0
- package/src/ui/radio-group/types.ts +62 -0
- package/src/ui/radio-group/variants.ts +61 -0
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { RadioGroupContext, radioGroupRootVariants, useRadioGroupContext, radioGroupIndicatorVariants, radioGroupControlVariants, radioGroupItemVariants } from '../../chunk-MTTXLC2V.mjs';
|
|
3
|
+
import { cn } from '../../chunk-4D54YOL6.mjs';
|
|
4
|
+
import { motion } from 'framer-motion';
|
|
5
|
+
import { useId, useState, useCallback } from 'react';
|
|
6
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
7
|
+
|
|
8
|
+
// src/ui/radio-group/animated/animations.ts
|
|
9
|
+
var radioGroupAnimationPresets = {
|
|
10
|
+
pop: {
|
|
11
|
+
initial: { scale: 0.35, opacity: 0 },
|
|
12
|
+
animate: { scale: 1, opacity: 1 },
|
|
13
|
+
transition: { type: "spring", stiffness: 520, damping: 28 }
|
|
14
|
+
},
|
|
15
|
+
fade: {
|
|
16
|
+
initial: { scale: 0.85, opacity: 0 },
|
|
17
|
+
animate: { scale: 1, opacity: 1 },
|
|
18
|
+
transition: { duration: 0.16, ease: "easeOut" }
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
function RadioGroupAnimated(props) {
|
|
22
|
+
const {
|
|
23
|
+
className,
|
|
24
|
+
value,
|
|
25
|
+
defaultValue,
|
|
26
|
+
name,
|
|
27
|
+
disabled,
|
|
28
|
+
required,
|
|
29
|
+
onValueChange,
|
|
30
|
+
orientation,
|
|
31
|
+
appearance,
|
|
32
|
+
size,
|
|
33
|
+
children,
|
|
34
|
+
ref,
|
|
35
|
+
animation: _animation,
|
|
36
|
+
...rest
|
|
37
|
+
} = props;
|
|
38
|
+
const generatedName = useId();
|
|
39
|
+
const isControlled = value !== void 0;
|
|
40
|
+
const [uncontrolled, setUncontrolled] = useState(defaultValue);
|
|
41
|
+
const resolvedValue = isControlled ? value : uncontrolled;
|
|
42
|
+
const setValue = useCallback(
|
|
43
|
+
(next) => {
|
|
44
|
+
if (!isControlled) {
|
|
45
|
+
setUncontrolled(next);
|
|
46
|
+
}
|
|
47
|
+
onValueChange?.(next);
|
|
48
|
+
},
|
|
49
|
+
[isControlled, onValueChange]
|
|
50
|
+
);
|
|
51
|
+
return /* @__PURE__ */ jsx(
|
|
52
|
+
RadioGroupContext.Provider,
|
|
53
|
+
{
|
|
54
|
+
value: {
|
|
55
|
+
value: resolvedValue,
|
|
56
|
+
name: name ?? generatedName,
|
|
57
|
+
disabled,
|
|
58
|
+
required,
|
|
59
|
+
appearance: appearance ?? void 0,
|
|
60
|
+
size: size ?? void 0,
|
|
61
|
+
onValueChange: setValue
|
|
62
|
+
},
|
|
63
|
+
children: /* @__PURE__ */ jsx(
|
|
64
|
+
"div",
|
|
65
|
+
{
|
|
66
|
+
ref,
|
|
67
|
+
role: "radiogroup",
|
|
68
|
+
"data-slot": "radio-group",
|
|
69
|
+
"data-orientation": orientation ?? "vertical",
|
|
70
|
+
className: cn(radioGroupRootVariants({ orientation }), className),
|
|
71
|
+
...rest,
|
|
72
|
+
children
|
|
73
|
+
}
|
|
74
|
+
)
|
|
75
|
+
}
|
|
76
|
+
);
|
|
77
|
+
}
|
|
78
|
+
RadioGroupAnimated.displayName = "RadioGroup";
|
|
79
|
+
function RadioGroupItemAnimated(props) {
|
|
80
|
+
const {
|
|
81
|
+
className,
|
|
82
|
+
rootClassName,
|
|
83
|
+
controlClassName,
|
|
84
|
+
indicatorClassName,
|
|
85
|
+
value,
|
|
86
|
+
appearance: appearanceProp,
|
|
87
|
+
size: sizeProp,
|
|
88
|
+
disabled: disabledProp,
|
|
89
|
+
required: requiredProp,
|
|
90
|
+
children,
|
|
91
|
+
label,
|
|
92
|
+
id,
|
|
93
|
+
ref,
|
|
94
|
+
"aria-label": ariaLabel,
|
|
95
|
+
animation = "pop",
|
|
96
|
+
...rest
|
|
97
|
+
} = props;
|
|
98
|
+
const generatedId = useId();
|
|
99
|
+
const context = useRadioGroupContext();
|
|
100
|
+
const controlId = id ?? generatedId;
|
|
101
|
+
const checked = context?.value === value;
|
|
102
|
+
const disabled = disabledProp ?? context?.disabled;
|
|
103
|
+
const required = requiredProp ?? context?.required;
|
|
104
|
+
const appearance = appearanceProp ?? context?.appearance;
|
|
105
|
+
const size = sizeProp ?? context?.size;
|
|
106
|
+
const labelContent = label ?? children;
|
|
107
|
+
const hasVisibleLabel = labelContent !== void 0 && labelContent !== null && labelContent !== false;
|
|
108
|
+
const motionPreset = radioGroupAnimationPresets[animation];
|
|
109
|
+
return /* @__PURE__ */ jsxs(
|
|
110
|
+
"label",
|
|
111
|
+
{
|
|
112
|
+
className: cn(radioGroupItemVariants({ size }), rootClassName, className),
|
|
113
|
+
"data-disabled": disabled ? "true" : void 0,
|
|
114
|
+
"data-state": checked ? "checked" : "unchecked",
|
|
115
|
+
htmlFor: controlId,
|
|
116
|
+
children: [
|
|
117
|
+
/* @__PURE__ */ jsx(
|
|
118
|
+
"input",
|
|
119
|
+
{
|
|
120
|
+
ref,
|
|
121
|
+
id: controlId,
|
|
122
|
+
type: "radio",
|
|
123
|
+
"data-slot": "radio-group-item",
|
|
124
|
+
className: "peer sr-only",
|
|
125
|
+
name: context?.name,
|
|
126
|
+
value,
|
|
127
|
+
checked,
|
|
128
|
+
disabled,
|
|
129
|
+
required,
|
|
130
|
+
"aria-label": ariaLabel ?? (hasVisibleLabel ? void 0 : value),
|
|
131
|
+
onChange: (event) => {
|
|
132
|
+
if (event.currentTarget.checked) {
|
|
133
|
+
context?.onValueChange(value);
|
|
134
|
+
}
|
|
135
|
+
},
|
|
136
|
+
...rest
|
|
137
|
+
}
|
|
138
|
+
),
|
|
139
|
+
/* @__PURE__ */ jsx(
|
|
140
|
+
"span",
|
|
141
|
+
{
|
|
142
|
+
"aria-hidden": "true",
|
|
143
|
+
className: cn(
|
|
144
|
+
radioGroupControlVariants({ appearance, size }),
|
|
145
|
+
controlClassName
|
|
146
|
+
),
|
|
147
|
+
"data-slot": "radio-group-control",
|
|
148
|
+
children: checked && /* @__PURE__ */ jsx(
|
|
149
|
+
motion.span,
|
|
150
|
+
{
|
|
151
|
+
className: cn(
|
|
152
|
+
radioGroupIndicatorVariants({ size }),
|
|
153
|
+
"opacity-100",
|
|
154
|
+
indicatorClassName
|
|
155
|
+
),
|
|
156
|
+
"data-slot": "radio-group-indicator",
|
|
157
|
+
initial: motionPreset.initial,
|
|
158
|
+
animate: motionPreset.animate,
|
|
159
|
+
transition: motionPreset.transition
|
|
160
|
+
}
|
|
161
|
+
)
|
|
162
|
+
}
|
|
163
|
+
),
|
|
164
|
+
hasVisibleLabel && /* @__PURE__ */ jsx("span", { className: "min-w-0 leading-6", "data-slot": "radio-group-label", children: labelContent })
|
|
165
|
+
]
|
|
166
|
+
}
|
|
167
|
+
);
|
|
168
|
+
}
|
|
169
|
+
RadioGroupItemAnimated.displayName = "RadioGroupItem";
|
|
170
|
+
|
|
171
|
+
export { RadioGroupAnimated, RadioGroupItemAnimated, radioGroupAnimationPresets };
|
|
172
|
+
//# sourceMappingURL=animated.mjs.map
|
|
173
|
+
//# sourceMappingURL=animated.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/ui/radio-group/animated/animations.ts","../../../src/ui/radio-group/animated/radio-group-animated.tsx"],"names":[],"mappings":";;;;;;;AAAO,IAAM,0BAAA,GAA6B;AAAA,EACxC,GAAA,EAAK;AAAA,IACH,OAAA,EAAS,EAAE,KAAA,EAAO,IAAA,EAAM,SAAS,CAAA,EAAE;AAAA,IACnC,OAAA,EAAS,EAAE,KAAA,EAAO,CAAA,EAAG,SAAS,CAAA,EAAE;AAAA,IAChC,YAAY,EAAE,IAAA,EAAM,UAAU,SAAA,EAAW,GAAA,EAAK,SAAS,EAAA;AAAG,GAC5D;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,OAAA,EAAS,EAAE,KAAA,EAAO,IAAA,EAAM,SAAS,CAAA,EAAE;AAAA,IACnC,OAAA,EAAS,EAAE,KAAA,EAAO,CAAA,EAAG,SAAS,CAAA,EAAE;AAAA,IAChC,UAAA,EAAY,EAAE,QAAA,EAAU,IAAA,EAAM,MAAM,SAAA;AAAU;AAElD;ACYO,SAAS,mBAAmB,KAAA,EAAgC;AACjE,EAAA,MAAM;AAAA,IACJ,SAAA;AAAA,IACA,KAAA;AAAA,IACA,YAAA;AAAA,IACA,IAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA;AAAA,IACA,aAAA;AAAA,IACA,WAAA;AAAA,IACA,UAAA;AAAA,IACA,IAAA;AAAA,IACA,QAAA;AAAA,IACA,GAAA;AAAA,IACA,SAAA,EAAW,UAAA;AAAA,IACX,GAAG;AAAA,GACL,GAAI,KAAA;AACJ,EAAA,MAAM,gBAAgB,KAAA,EAAM;AAC5B,EAAA,MAAM,eAAe,KAAA,KAAU,MAAA;AAC/B,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAI,SAAS,YAAY,CAAA;AAC7D,EAAA,MAAM,aAAA,GAAgB,eAAe,KAAA,GAAQ,YAAA;AAE7C,EAAA,MAAM,QAAA,GAAW,WAAA;AAAA,IACf,CAAC,IAAA,KAAiB;AAChB,MAAA,IAAI,CAAC,YAAA,EAAc;AACjB,QAAA,eAAA,CAAgB,IAAI,CAAA;AAAA,MACtB;AACA,MAAA,aAAA,GAAgB,IAAI,CAAA;AAAA,IACtB,CAAA;AAAA,IACA,CAAC,cAAc,aAAa;AAAA,GAC9B;AAEA,EAAA,uBACE,GAAA;AAAA,IAAC,iBAAA,CAAkB,QAAA;AAAA,IAAlB;AAAA,MACC,KAAA,EAAO;AAAA,QACL,KAAA,EAAO,aAAA;AAAA,QACP,MAAM,IAAA,IAAQ,aAAA;AAAA,QACd,QAAA;AAAA,QACA,QAAA;AAAA,QACA,YAAY,UAAA,IAAc,MAAA;AAAA,QAC1B,MAAM,IAAA,IAAQ,MAAA;AAAA,QACd,aAAA,EAAe;AAAA,OACjB;AAAA,MAEA,QAAA,kBAAA,GAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,GAAA;AAAA,UACA,IAAA,EAAK,YAAA;AAAA,UACL,WAAA,EAAU,aAAA;AAAA,UACV,oBAAkB,WAAA,IAAe,UAAA;AAAA,UACjC,WAAW,EAAA,CAAG,sBAAA,CAAuB,EAAE,WAAA,EAAa,GAAG,SAAS,CAAA;AAAA,UAC/D,GAAG,IAAA;AAAA,UAEH;AAAA;AAAA;AACH;AAAA,GACF;AAEJ;AAEA,kBAAA,CAAmB,WAAA,GAAc,YAAA;AAE1B,SAAS,uBAAuB,KAAA,EAAoC;AACzE,EAAA,MAAM;AAAA,IACJ,SAAA;AAAA,IACA,aAAA;AAAA,IACA,gBAAA;AAAA,IACA,kBAAA;AAAA,IACA,KAAA;AAAA,IACA,UAAA,EAAY,cAAA;AAAA,IACZ,IAAA,EAAM,QAAA;AAAA,IACN,QAAA,EAAU,YAAA;AAAA,IACV,QAAA,EAAU,YAAA;AAAA,IACV,QAAA;AAAA,IACA,KAAA;AAAA,IACA,EAAA;AAAA,IACA,GAAA;AAAA,IACA,YAAA,EAAc,SAAA;AAAA,IACd,SAAA,GAAY,KAAA;AAAA,IACZ,GAAG;AAAA,GACL,GAAI,KAAA;AACJ,EAAA,MAAM,cAAc,KAAA,EAAM;AAC1B,EAAA,MAAM,UAAU,oBAAA,EAAqB;AACrC,EAAA,MAAM,YAAY,EAAA,IAAM,WAAA;AACxB,EAAA,MAAM,OAAA,GAAU,SAAS,KAAA,KAAU,KAAA;AACnC,EAAA,MAAM,QAAA,GAAW,gBAAgB,OAAA,EAAS,QAAA;AAC1C,EAAA,MAAM,QAAA,GAAW,gBAAgB,OAAA,EAAS,QAAA;AAC1C,EAAA,MAAM,UAAA,GAAa,kBAAkB,OAAA,EAAS,UAAA;AAC9C,EAAA,MAAM,IAAA,GAAO,YAAY,OAAA,EAAS,IAAA;AAClC,EAAA,MAAM,eAAe,KAAA,IAAS,QAAA;AAC9B,EAAA,MAAM,eAAA,GACJ,YAAA,KAAiB,MAAA,IAAa,YAAA,KAAiB,QAAQ,YAAA,KAAiB,KAAA;AAC1E,EAAA,MAAM,YAAA,GAAe,2BAA2B,SAAS,CAAA;AAEzD,EAAA,uBACE,IAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,GAAG,sBAAA,CAAuB,EAAE,MAAM,CAAA,EAAG,eAAe,SAAS,CAAA;AAAA,MACxE,eAAA,EAAe,WAAW,MAAA,GAAS,MAAA;AAAA,MACnC,YAAA,EAAY,UAAU,SAAA,GAAY,WAAA;AAAA,MAClC,OAAA,EAAS,SAAA;AAAA,MAET,QAAA,EAAA;AAAA,wBAAA,GAAA;AAAA,UAAC,OAAA;AAAA,UAAA;AAAA,YACC,GAAA;AAAA,YACA,EAAA,EAAI,SAAA;AAAA,YACJ,IAAA,EAAK,OAAA;AAAA,YACL,WAAA,EAAU,kBAAA;AAAA,YACV,SAAA,EAAU,cAAA;AAAA,YACV,MAAM,OAAA,EAAS,IAAA;AAAA,YACf,KAAA;AAAA,YACA,OAAA;AAAA,YACA,QAAA;AAAA,YACA,QAAA;AAAA,YACA,YAAA,EAAY,SAAA,KAAc,eAAA,GAAkB,MAAA,GAAY,KAAA,CAAA;AAAA,YACxD,QAAA,EAAU,CAAC,KAAA,KAAU;AACnB,cAAA,IAAI,KAAA,CAAM,cAAc,OAAA,EAAS;AAC/B,gBAAA,OAAA,EAAS,cAAc,KAAK,CAAA;AAAA,cAC9B;AAAA,YACF,CAAA;AAAA,YACC,GAAG;AAAA;AAAA,SACN;AAAA,wBACA,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,aAAA,EAAY,MAAA;AAAA,YACZ,SAAA,EAAW,EAAA;AAAA,cACT,yBAAA,CAA0B,EAAE,UAAA,EAAY,IAAA,EAAM,CAAA;AAAA,cAC9C;AAAA,aACF;AAAA,YACA,WAAA,EAAU,qBAAA;AAAA,YAET,QAAA,EAAA,OAAA,oBACC,GAAA;AAAA,cAAC,MAAA,CAAO,IAAA;AAAA,cAAP;AAAA,gBACC,SAAA,EAAW,EAAA;AAAA,kBACT,2BAAA,CAA4B,EAAE,IAAA,EAAM,CAAA;AAAA,kBACpC,aAAA;AAAA,kBACA;AAAA,iBACF;AAAA,gBACA,WAAA,EAAU,uBAAA;AAAA,gBACV,SAAS,YAAA,CAAa,OAAA;AAAA,gBACtB,SAAS,YAAA,CAAa,OAAA;AAAA,gBACtB,YAAY,YAAA,CAAa;AAAA;AAAA;AAC3B;AAAA,SAEJ;AAAA,QACC,mCACC,GAAA,CAAC,MAAA,EAAA,EAAK,WAAU,mBAAA,EAAoB,WAAA,EAAU,qBAC3C,QAAA,EAAA,YAAA,EACH;AAAA;AAAA;AAAA,GAEJ;AAEJ;AAEA,sBAAA,CAAuB,WAAA,GAAc,gBAAA","file":"animated.mjs","sourcesContent":["export const radioGroupAnimationPresets = {\n pop: {\n initial: { scale: 0.35, opacity: 0 },\n animate: { scale: 1, opacity: 1 },\n transition: { type: \"spring\", stiffness: 520, damping: 28 },\n },\n fade: {\n initial: { scale: 0.85, opacity: 0 },\n animate: { scale: 1, opacity: 1 },\n transition: { duration: 0.16, ease: \"easeOut\" },\n },\n} as const;\n","\"use client\";\n\nimport { motion } from \"framer-motion\";\nimport { useCallback, useId, useState } from \"react\";\n\nimport { cn } from \"../../../lib/utils\";\n\nimport { radioGroupAnimationPresets } from \"./animations\";\nimport type {\n RadioGroupAnimatedProps,\n RadioGroupItemAnimatedProps,\n} from \"./types\";\nimport {\n RadioGroupContext,\n useRadioGroupContext,\n} from \"../radio-group-context\";\nimport {\n radioGroupControlVariants,\n radioGroupIndicatorVariants,\n radioGroupItemVariants,\n radioGroupRootVariants,\n} from \"../variants\";\n\nexport function RadioGroupAnimated(props: RadioGroupAnimatedProps) {\n const {\n className,\n value,\n defaultValue,\n name,\n disabled,\n required,\n onValueChange,\n orientation,\n appearance,\n size,\n children,\n ref,\n animation: _animation,\n ...rest\n } = props;\n const generatedName = useId();\n const isControlled = value !== undefined;\n const [uncontrolled, setUncontrolled] = useState(defaultValue);\n const resolvedValue = isControlled ? value : uncontrolled;\n\n const setValue = useCallback(\n (next: string) => {\n if (!isControlled) {\n setUncontrolled(next);\n }\n onValueChange?.(next);\n },\n [isControlled, onValueChange],\n );\n\n return (\n <RadioGroupContext.Provider\n value={{\n value: resolvedValue,\n name: name ?? generatedName,\n disabled,\n required,\n appearance: appearance ?? undefined,\n size: size ?? undefined,\n onValueChange: setValue,\n }}\n >\n <div\n ref={ref}\n role=\"radiogroup\"\n data-slot=\"radio-group\"\n data-orientation={orientation ?? \"vertical\"}\n className={cn(radioGroupRootVariants({ orientation }), className)}\n {...rest}\n >\n {children}\n </div>\n </RadioGroupContext.Provider>\n );\n}\n\nRadioGroupAnimated.displayName = \"RadioGroup\";\n\nexport function RadioGroupItemAnimated(props: RadioGroupItemAnimatedProps) {\n const {\n className,\n rootClassName,\n controlClassName,\n indicatorClassName,\n value,\n appearance: appearanceProp,\n size: sizeProp,\n disabled: disabledProp,\n required: requiredProp,\n children,\n label,\n id,\n ref,\n \"aria-label\": ariaLabel,\n animation = \"pop\",\n ...rest\n } = props;\n const generatedId = useId();\n const context = useRadioGroupContext();\n const controlId = id ?? generatedId;\n const checked = context?.value === value;\n const disabled = disabledProp ?? context?.disabled;\n const required = requiredProp ?? context?.required;\n const appearance = appearanceProp ?? context?.appearance;\n const size = sizeProp ?? context?.size;\n const labelContent = label ?? children;\n const hasVisibleLabel =\n labelContent !== undefined && labelContent !== null && labelContent !== false;\n const motionPreset = radioGroupAnimationPresets[animation];\n\n return (\n <label\n className={cn(radioGroupItemVariants({ size }), rootClassName, className)}\n data-disabled={disabled ? \"true\" : undefined}\n data-state={checked ? \"checked\" : \"unchecked\"}\n htmlFor={controlId}\n >\n <input\n ref={ref}\n id={controlId}\n type=\"radio\"\n data-slot=\"radio-group-item\"\n className=\"peer sr-only\"\n name={context?.name}\n value={value}\n checked={checked}\n disabled={disabled}\n required={required}\n aria-label={ariaLabel ?? (hasVisibleLabel ? undefined : value)}\n onChange={(event) => {\n if (event.currentTarget.checked) {\n context?.onValueChange(value);\n }\n }}\n {...rest}\n />\n <span\n aria-hidden=\"true\"\n className={cn(\n radioGroupControlVariants({ appearance, size }),\n controlClassName,\n )}\n data-slot=\"radio-group-control\"\n >\n {checked && (\n <motion.span\n className={cn(\n radioGroupIndicatorVariants({ size }),\n \"opacity-100\",\n indicatorClassName,\n )}\n data-slot=\"radio-group-indicator\"\n initial={motionPreset.initial}\n animate={motionPreset.animate}\n transition={motionPreset.transition}\n />\n )}\n </span>\n {hasVisibleLabel && (\n <span className=\"min-w-0 leading-6\" data-slot=\"radio-group-label\">\n {labelContent}\n </span>\n )}\n </label>\n );\n}\n\nRadioGroupItemAnimated.displayName = \"RadioGroupItem\";\n"]}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { RadioGroup, RadioGroupItem } from "./radio-group";
|
|
2
|
+
export type { RadioGroupAppearance, RadioGroupControlVariantProps, RadioGroupIndicatorVariantProps, RadioGroupItemProps, RadioGroupItemVariantProps, RadioGroupProps, RadioGroupRootVariantProps, RadioGroupSize, } from "./types";
|
|
3
|
+
export { radioGroupControlVariants, radioGroupIndicatorVariants, radioGroupItemVariants, radioGroupRootVariants, } from "./variants";
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/radio-group/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC3D,YAAY,EACV,oBAAoB,EACpB,6BAA6B,EAC7B,+BAA+B,EAC/B,mBAAmB,EACnB,0BAA0B,EAC1B,eAAe,EACf,0BAA0B,EAC1B,cAAc,GACf,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,yBAAyB,EACzB,2BAA2B,EAC3B,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { RadioGroupAppearance, RadioGroupSize } from "./types";
|
|
2
|
+
export type RadioGroupContextValue = {
|
|
3
|
+
value: string | undefined;
|
|
4
|
+
name: string;
|
|
5
|
+
disabled?: boolean;
|
|
6
|
+
required?: boolean;
|
|
7
|
+
appearance?: RadioGroupAppearance;
|
|
8
|
+
size?: RadioGroupSize;
|
|
9
|
+
onValueChange: (value: string) => void;
|
|
10
|
+
};
|
|
11
|
+
export declare const RadioGroupContext: import("react").Context<RadioGroupContextValue | null>;
|
|
12
|
+
export declare function useRadioGroupContext(): RadioGroupContextValue | null;
|
|
13
|
+
//# sourceMappingURL=radio-group-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"radio-group-context.d.ts","sourceRoot":"","sources":["../../../src/ui/radio-group/radio-group-context.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEpE,MAAM,MAAM,sBAAsB,GAAG;IACnC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,oBAAoB,CAAC;IAClC,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC,CAAC;AAEF,eAAO,MAAM,iBAAiB,wDAE7B,CAAC;AAEF,wBAAgB,oBAAoB,kCAEnC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { RadioGroupItemProps, RadioGroupProps } from "./types";
|
|
2
|
+
export declare function RadioGroup(props: RadioGroupProps): import("react/jsx-runtime").JSX.Element;
|
|
3
|
+
export declare namespace RadioGroup {
|
|
4
|
+
var displayName: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function RadioGroupItem(props: RadioGroupItemProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export declare namespace RadioGroupItem {
|
|
8
|
+
var displayName: string;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=radio-group.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"radio-group.d.ts","sourceRoot":"","sources":["../../../src/ui/radio-group/radio-group.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAQpE,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,2CAuDhD;yBAvDe,UAAU;;;AA2D1B,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,2CA+ExD;yBA/Ee,cAAc"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { VariantProps } from "class-variance-authority";
|
|
2
|
+
import type { ComponentPropsWithRef, ReactNode } from "react";
|
|
3
|
+
import type { radioGroupControlVariants, radioGroupIndicatorVariants, radioGroupItemVariants, radioGroupRootVariants } from "./variants";
|
|
4
|
+
export type RadioGroupRootVariantProps = VariantProps<typeof radioGroupRootVariants>;
|
|
5
|
+
export type RadioGroupItemVariantProps = VariantProps<typeof radioGroupItemVariants>;
|
|
6
|
+
export type RadioGroupControlVariantProps = VariantProps<typeof radioGroupControlVariants>;
|
|
7
|
+
export type RadioGroupIndicatorVariantProps = VariantProps<typeof radioGroupIndicatorVariants>;
|
|
8
|
+
export type RadioGroupAppearance = NonNullable<RadioGroupControlVariantProps["appearance"]>;
|
|
9
|
+
export type RadioGroupSize = NonNullable<RadioGroupItemVariantProps["size"]>;
|
|
10
|
+
export type RadioGroupProps = RadioGroupRootVariantProps & Pick<RadioGroupControlVariantProps, "appearance"> & RadioGroupItemVariantProps & Omit<ComponentPropsWithRef<"div">, "defaultValue" | "dir" | "onChange" | "role"> & {
|
|
11
|
+
value?: string;
|
|
12
|
+
defaultValue?: string;
|
|
13
|
+
name?: string;
|
|
14
|
+
disabled?: boolean;
|
|
15
|
+
required?: boolean;
|
|
16
|
+
onValueChange?: (value: string) => void;
|
|
17
|
+
};
|
|
18
|
+
export type RadioGroupItemProps = RadioGroupItemVariantProps & RadioGroupControlVariantProps & Omit<ComponentPropsWithRef<"input">, "type" | "size" | "name" | "checked" | "defaultChecked" | "onChange" | "children"> & {
|
|
19
|
+
value: string;
|
|
20
|
+
label?: ReactNode;
|
|
21
|
+
children?: ReactNode;
|
|
22
|
+
rootClassName?: string;
|
|
23
|
+
controlClassName?: string;
|
|
24
|
+
indicatorClassName?: string;
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/ui/radio-group/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAE9D,OAAO,KAAK,EACV,yBAAyB,EACzB,2BAA2B,EAC3B,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,0BAA0B,GAAG,YAAY,CACnD,OAAO,sBAAsB,CAC9B,CAAC;AACF,MAAM,MAAM,0BAA0B,GAAG,YAAY,CACnD,OAAO,sBAAsB,CAC9B,CAAC;AACF,MAAM,MAAM,6BAA6B,GAAG,YAAY,CACtD,OAAO,yBAAyB,CACjC,CAAC;AACF,MAAM,MAAM,+BAA+B,GAAG,YAAY,CACxD,OAAO,2BAA2B,CACnC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,WAAW,CAC5C,6BAA6B,CAAC,YAAY,CAAC,CAC5C,CAAC;AACF,MAAM,MAAM,cAAc,GAAG,WAAW,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC,CAAC;AAE7E,MAAM,MAAM,eAAe,GAAG,0BAA0B,GACtD,IAAI,CAAC,6BAA6B,EAAE,YAAY,CAAC,GACjD,0BAA0B,GAC1B,IAAI,CACF,qBAAqB,CAAC,KAAK,CAAC,EAC5B,cAAc,GAAG,KAAK,GAAG,UAAU,GAAG,MAAM,CAC7C,GAAG;IACF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC,CAAC;AAEJ,MAAM,MAAM,mBAAmB,GAAG,0BAA0B,GAC1D,6BAA6B,GAC7B,IAAI,CACF,qBAAqB,CAAC,OAAO,CAAC,EAC5B,MAAM,GACN,MAAM,GACN,MAAM,GACN,SAAS,GACT,gBAAgB,GAChB,UAAU,GACV,UAAU,CACb,GAAG;IACF,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export declare const radioGroupRootVariants: (props?: ({
|
|
2
|
+
orientation?: "horizontal" | "vertical" | null | undefined;
|
|
3
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
4
|
+
export declare const radioGroupItemVariants: (props?: ({
|
|
5
|
+
size?: "md" | "sm" | "lg" | null | undefined;
|
|
6
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
7
|
+
export declare const radioGroupControlVariants: (props?: ({
|
|
8
|
+
appearance?: "default" | "violet" | "amber" | "indigo" | "pink" | "error" | "success" | "warning" | "info" | null | undefined;
|
|
9
|
+
size?: "md" | "sm" | "lg" | null | undefined;
|
|
10
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
11
|
+
export declare const radioGroupIndicatorVariants: (props?: ({
|
|
12
|
+
size?: "md" | "sm" | "lg" | null | undefined;
|
|
13
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
14
|
+
//# sourceMappingURL=variants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"variants.d.ts","sourceRoot":"","sources":["../../../src/ui/radio-group/variants.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,sBAAsB;;8EAOjC,CAAC;AAEH,eAAO,MAAM,sBAAsB;;8EAWjC,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;8EAapC,CAAC;AAEH,eAAO,MAAM,2BAA2B;;8EAWtC,CAAC"}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var chunk6QQUQLPB_js = require('../chunk-6QQUQLPB.js');
|
|
5
|
+
var chunkZS5756ZC_js = require('../chunk-ZS5756ZC.js');
|
|
6
|
+
var react = require('react');
|
|
7
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
8
|
+
|
|
9
|
+
function RadioGroup(props) {
|
|
10
|
+
const {
|
|
11
|
+
className,
|
|
12
|
+
value,
|
|
13
|
+
defaultValue,
|
|
14
|
+
name,
|
|
15
|
+
disabled,
|
|
16
|
+
required,
|
|
17
|
+
onValueChange,
|
|
18
|
+
orientation,
|
|
19
|
+
appearance,
|
|
20
|
+
size,
|
|
21
|
+
children,
|
|
22
|
+
ref,
|
|
23
|
+
...rest
|
|
24
|
+
} = props;
|
|
25
|
+
const generatedName = react.useId();
|
|
26
|
+
const isControlled = value !== void 0;
|
|
27
|
+
const [uncontrolled, setUncontrolled] = react.useState(defaultValue);
|
|
28
|
+
const resolvedValue = isControlled ? value : uncontrolled;
|
|
29
|
+
const setValue = react.useCallback(
|
|
30
|
+
(next) => {
|
|
31
|
+
if (!isControlled) {
|
|
32
|
+
setUncontrolled(next);
|
|
33
|
+
}
|
|
34
|
+
onValueChange?.(next);
|
|
35
|
+
},
|
|
36
|
+
[isControlled, onValueChange]
|
|
37
|
+
);
|
|
38
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
39
|
+
chunk6QQUQLPB_js.RadioGroupContext.Provider,
|
|
40
|
+
{
|
|
41
|
+
value: {
|
|
42
|
+
value: resolvedValue,
|
|
43
|
+
name: name ?? generatedName,
|
|
44
|
+
disabled,
|
|
45
|
+
required,
|
|
46
|
+
appearance: appearance ?? void 0,
|
|
47
|
+
size: size ?? void 0,
|
|
48
|
+
onValueChange: setValue
|
|
49
|
+
},
|
|
50
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
51
|
+
"div",
|
|
52
|
+
{
|
|
53
|
+
ref,
|
|
54
|
+
role: "radiogroup",
|
|
55
|
+
"data-slot": "radio-group",
|
|
56
|
+
"data-orientation": orientation ?? "vertical",
|
|
57
|
+
className: chunkZS5756ZC_js.cn(chunk6QQUQLPB_js.radioGroupRootVariants({ orientation }), className),
|
|
58
|
+
...rest,
|
|
59
|
+
children
|
|
60
|
+
}
|
|
61
|
+
)
|
|
62
|
+
}
|
|
63
|
+
);
|
|
64
|
+
}
|
|
65
|
+
RadioGroup.displayName = "RadioGroup";
|
|
66
|
+
function RadioGroupItem(props) {
|
|
67
|
+
const {
|
|
68
|
+
className,
|
|
69
|
+
rootClassName,
|
|
70
|
+
controlClassName,
|
|
71
|
+
indicatorClassName,
|
|
72
|
+
value,
|
|
73
|
+
appearance: appearanceProp,
|
|
74
|
+
size: sizeProp,
|
|
75
|
+
disabled: disabledProp,
|
|
76
|
+
required: requiredProp,
|
|
77
|
+
children,
|
|
78
|
+
label,
|
|
79
|
+
id,
|
|
80
|
+
ref,
|
|
81
|
+
"aria-label": ariaLabel,
|
|
82
|
+
...rest
|
|
83
|
+
} = props;
|
|
84
|
+
const generatedId = react.useId();
|
|
85
|
+
const context = chunk6QQUQLPB_js.useRadioGroupContext();
|
|
86
|
+
const controlId = id ?? generatedId;
|
|
87
|
+
const checked = context?.value === value;
|
|
88
|
+
const disabled = disabledProp ?? context?.disabled;
|
|
89
|
+
const required = requiredProp ?? context?.required;
|
|
90
|
+
const appearance = appearanceProp ?? context?.appearance;
|
|
91
|
+
const size = sizeProp ?? context?.size;
|
|
92
|
+
const labelContent = label ?? children;
|
|
93
|
+
const hasVisibleLabel = labelContent !== void 0 && labelContent !== null && labelContent !== false;
|
|
94
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
95
|
+
"label",
|
|
96
|
+
{
|
|
97
|
+
className: chunkZS5756ZC_js.cn(chunk6QQUQLPB_js.radioGroupItemVariants({ size }), rootClassName, className),
|
|
98
|
+
"data-disabled": disabled ? "true" : void 0,
|
|
99
|
+
"data-state": checked ? "checked" : "unchecked",
|
|
100
|
+
htmlFor: controlId,
|
|
101
|
+
children: [
|
|
102
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
103
|
+
"input",
|
|
104
|
+
{
|
|
105
|
+
ref,
|
|
106
|
+
id: controlId,
|
|
107
|
+
type: "radio",
|
|
108
|
+
"data-slot": "radio-group-item",
|
|
109
|
+
className: "peer sr-only",
|
|
110
|
+
name: context?.name,
|
|
111
|
+
value,
|
|
112
|
+
checked,
|
|
113
|
+
disabled,
|
|
114
|
+
required,
|
|
115
|
+
"aria-label": ariaLabel ?? (hasVisibleLabel ? void 0 : value),
|
|
116
|
+
onChange: (event) => {
|
|
117
|
+
if (event.currentTarget.checked) {
|
|
118
|
+
context?.onValueChange(value);
|
|
119
|
+
}
|
|
120
|
+
},
|
|
121
|
+
...rest
|
|
122
|
+
}
|
|
123
|
+
),
|
|
124
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
125
|
+
"span",
|
|
126
|
+
{
|
|
127
|
+
"aria-hidden": "true",
|
|
128
|
+
className: chunkZS5756ZC_js.cn(
|
|
129
|
+
chunk6QQUQLPB_js.radioGroupControlVariants({ appearance, size }),
|
|
130
|
+
controlClassName
|
|
131
|
+
),
|
|
132
|
+
"data-slot": "radio-group-control",
|
|
133
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
134
|
+
"span",
|
|
135
|
+
{
|
|
136
|
+
className: chunkZS5756ZC_js.cn(
|
|
137
|
+
chunk6QQUQLPB_js.radioGroupIndicatorVariants({ size }),
|
|
138
|
+
indicatorClassName
|
|
139
|
+
),
|
|
140
|
+
"data-slot": "radio-group-indicator"
|
|
141
|
+
}
|
|
142
|
+
)
|
|
143
|
+
}
|
|
144
|
+
),
|
|
145
|
+
hasVisibleLabel && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "min-w-0 leading-6", "data-slot": "radio-group-label", children: labelContent })
|
|
146
|
+
]
|
|
147
|
+
}
|
|
148
|
+
);
|
|
149
|
+
}
|
|
150
|
+
RadioGroupItem.displayName = "RadioGroupItem";
|
|
151
|
+
|
|
152
|
+
Object.defineProperty(exports, "radioGroupControlVariants", {
|
|
153
|
+
enumerable: true,
|
|
154
|
+
get: function () { return chunk6QQUQLPB_js.radioGroupControlVariants; }
|
|
155
|
+
});
|
|
156
|
+
Object.defineProperty(exports, "radioGroupIndicatorVariants", {
|
|
157
|
+
enumerable: true,
|
|
158
|
+
get: function () { return chunk6QQUQLPB_js.radioGroupIndicatorVariants; }
|
|
159
|
+
});
|
|
160
|
+
Object.defineProperty(exports, "radioGroupItemVariants", {
|
|
161
|
+
enumerable: true,
|
|
162
|
+
get: function () { return chunk6QQUQLPB_js.radioGroupItemVariants; }
|
|
163
|
+
});
|
|
164
|
+
Object.defineProperty(exports, "radioGroupRootVariants", {
|
|
165
|
+
enumerable: true,
|
|
166
|
+
get: function () { return chunk6QQUQLPB_js.radioGroupRootVariants; }
|
|
167
|
+
});
|
|
168
|
+
exports.RadioGroup = RadioGroup;
|
|
169
|
+
exports.RadioGroupItem = RadioGroupItem;
|
|
170
|
+
//# sourceMappingURL=radio-group.js.map
|
|
171
|
+
//# sourceMappingURL=radio-group.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/ui/radio-group/radio-group.tsx"],"names":["useId","useState","useCallback","jsx","RadioGroupContext","cn","radioGroupRootVariants","useRadioGroupContext","jsxs","radioGroupItemVariants","radioGroupControlVariants","radioGroupIndicatorVariants"],"mappings":"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","file":"radio-group.js","sourcesContent":["\"use client\";\n\nimport { useCallback, useId, useState } from \"react\";\n\nimport { cn } from \"../../lib/utils\";\n\nimport {\n RadioGroupContext,\n useRadioGroupContext,\n} from \"./radio-group-context\";\nimport type { RadioGroupItemProps, RadioGroupProps } from \"./types\";\nimport {\n radioGroupControlVariants,\n radioGroupIndicatorVariants,\n radioGroupItemVariants,\n radioGroupRootVariants,\n} from \"./variants\";\n\nexport function RadioGroup(props: RadioGroupProps) {\n const {\n className,\n value,\n defaultValue,\n name,\n disabled,\n required,\n onValueChange,\n orientation,\n appearance,\n size,\n children,\n ref,\n ...rest\n } = props;\n const generatedName = useId();\n const isControlled = value !== undefined;\n const [uncontrolled, setUncontrolled] = useState(defaultValue);\n const resolvedValue = isControlled ? value : uncontrolled;\n\n const setValue = useCallback(\n (next: string) => {\n if (!isControlled) {\n setUncontrolled(next);\n }\n onValueChange?.(next);\n },\n [isControlled, onValueChange],\n );\n\n return (\n <RadioGroupContext.Provider\n value={{\n value: resolvedValue,\n name: name ?? generatedName,\n disabled,\n required,\n appearance: appearance ?? undefined,\n size: size ?? undefined,\n onValueChange: setValue,\n }}\n >\n <div\n ref={ref}\n role=\"radiogroup\"\n data-slot=\"radio-group\"\n data-orientation={orientation ?? \"vertical\"}\n className={cn(radioGroupRootVariants({ orientation }), className)}\n {...rest}\n >\n {children}\n </div>\n </RadioGroupContext.Provider>\n );\n}\n\nRadioGroup.displayName = \"RadioGroup\";\n\nexport function RadioGroupItem(props: RadioGroupItemProps) {\n const {\n className,\n rootClassName,\n controlClassName,\n indicatorClassName,\n value,\n appearance: appearanceProp,\n size: sizeProp,\n disabled: disabledProp,\n required: requiredProp,\n children,\n label,\n id,\n ref,\n \"aria-label\": ariaLabel,\n ...rest\n } = props;\n const generatedId = useId();\n const context = useRadioGroupContext();\n const controlId = id ?? generatedId;\n const checked = context?.value === value;\n const disabled = disabledProp ?? context?.disabled;\n const required = requiredProp ?? context?.required;\n const appearance = appearanceProp ?? context?.appearance;\n const size = sizeProp ?? context?.size;\n const labelContent = label ?? children;\n const hasVisibleLabel =\n labelContent !== undefined && labelContent !== null && labelContent !== false;\n\n return (\n <label\n className={cn(radioGroupItemVariants({ size }), rootClassName, className)}\n data-disabled={disabled ? \"true\" : undefined}\n data-state={checked ? \"checked\" : \"unchecked\"}\n htmlFor={controlId}\n >\n <input\n ref={ref}\n id={controlId}\n type=\"radio\"\n data-slot=\"radio-group-item\"\n className=\"peer sr-only\"\n name={context?.name}\n value={value}\n checked={checked}\n disabled={disabled}\n required={required}\n aria-label={ariaLabel ?? (hasVisibleLabel ? undefined : value)}\n onChange={(event) => {\n if (event.currentTarget.checked) {\n context?.onValueChange(value);\n }\n }}\n {...rest}\n />\n <span\n aria-hidden=\"true\"\n className={cn(\n radioGroupControlVariants({ appearance, size }),\n controlClassName,\n )}\n data-slot=\"radio-group-control\"\n >\n <span\n className={cn(\n radioGroupIndicatorVariants({ size }),\n indicatorClassName,\n )}\n data-slot=\"radio-group-indicator\"\n />\n </span>\n {hasVisibleLabel && (\n <span className=\"min-w-0 leading-6\" data-slot=\"radio-group-label\">\n {labelContent}\n </span>\n )}\n </label>\n );\n}\n\nRadioGroupItem.displayName = \"RadioGroupItem\";\n"]}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { RadioGroupContext, radioGroupRootVariants, useRadioGroupContext, radioGroupIndicatorVariants, radioGroupControlVariants, radioGroupItemVariants } from '../chunk-MTTXLC2V.mjs';
|
|
3
|
+
export { radioGroupControlVariants, radioGroupIndicatorVariants, radioGroupItemVariants, radioGroupRootVariants } from '../chunk-MTTXLC2V.mjs';
|
|
4
|
+
import { cn } from '../chunk-4D54YOL6.mjs';
|
|
5
|
+
import { useId, useState, useCallback } from 'react';
|
|
6
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
7
|
+
|
|
8
|
+
function RadioGroup(props) {
|
|
9
|
+
const {
|
|
10
|
+
className,
|
|
11
|
+
value,
|
|
12
|
+
defaultValue,
|
|
13
|
+
name,
|
|
14
|
+
disabled,
|
|
15
|
+
required,
|
|
16
|
+
onValueChange,
|
|
17
|
+
orientation,
|
|
18
|
+
appearance,
|
|
19
|
+
size,
|
|
20
|
+
children,
|
|
21
|
+
ref,
|
|
22
|
+
...rest
|
|
23
|
+
} = props;
|
|
24
|
+
const generatedName = useId();
|
|
25
|
+
const isControlled = value !== void 0;
|
|
26
|
+
const [uncontrolled, setUncontrolled] = useState(defaultValue);
|
|
27
|
+
const resolvedValue = isControlled ? value : uncontrolled;
|
|
28
|
+
const setValue = useCallback(
|
|
29
|
+
(next) => {
|
|
30
|
+
if (!isControlled) {
|
|
31
|
+
setUncontrolled(next);
|
|
32
|
+
}
|
|
33
|
+
onValueChange?.(next);
|
|
34
|
+
},
|
|
35
|
+
[isControlled, onValueChange]
|
|
36
|
+
);
|
|
37
|
+
return /* @__PURE__ */ jsx(
|
|
38
|
+
RadioGroupContext.Provider,
|
|
39
|
+
{
|
|
40
|
+
value: {
|
|
41
|
+
value: resolvedValue,
|
|
42
|
+
name: name ?? generatedName,
|
|
43
|
+
disabled,
|
|
44
|
+
required,
|
|
45
|
+
appearance: appearance ?? void 0,
|
|
46
|
+
size: size ?? void 0,
|
|
47
|
+
onValueChange: setValue
|
|
48
|
+
},
|
|
49
|
+
children: /* @__PURE__ */ jsx(
|
|
50
|
+
"div",
|
|
51
|
+
{
|
|
52
|
+
ref,
|
|
53
|
+
role: "radiogroup",
|
|
54
|
+
"data-slot": "radio-group",
|
|
55
|
+
"data-orientation": orientation ?? "vertical",
|
|
56
|
+
className: cn(radioGroupRootVariants({ orientation }), className),
|
|
57
|
+
...rest,
|
|
58
|
+
children
|
|
59
|
+
}
|
|
60
|
+
)
|
|
61
|
+
}
|
|
62
|
+
);
|
|
63
|
+
}
|
|
64
|
+
RadioGroup.displayName = "RadioGroup";
|
|
65
|
+
function RadioGroupItem(props) {
|
|
66
|
+
const {
|
|
67
|
+
className,
|
|
68
|
+
rootClassName,
|
|
69
|
+
controlClassName,
|
|
70
|
+
indicatorClassName,
|
|
71
|
+
value,
|
|
72
|
+
appearance: appearanceProp,
|
|
73
|
+
size: sizeProp,
|
|
74
|
+
disabled: disabledProp,
|
|
75
|
+
required: requiredProp,
|
|
76
|
+
children,
|
|
77
|
+
label,
|
|
78
|
+
id,
|
|
79
|
+
ref,
|
|
80
|
+
"aria-label": ariaLabel,
|
|
81
|
+
...rest
|
|
82
|
+
} = props;
|
|
83
|
+
const generatedId = useId();
|
|
84
|
+
const context = useRadioGroupContext();
|
|
85
|
+
const controlId = id ?? generatedId;
|
|
86
|
+
const checked = context?.value === value;
|
|
87
|
+
const disabled = disabledProp ?? context?.disabled;
|
|
88
|
+
const required = requiredProp ?? context?.required;
|
|
89
|
+
const appearance = appearanceProp ?? context?.appearance;
|
|
90
|
+
const size = sizeProp ?? context?.size;
|
|
91
|
+
const labelContent = label ?? children;
|
|
92
|
+
const hasVisibleLabel = labelContent !== void 0 && labelContent !== null && labelContent !== false;
|
|
93
|
+
return /* @__PURE__ */ jsxs(
|
|
94
|
+
"label",
|
|
95
|
+
{
|
|
96
|
+
className: cn(radioGroupItemVariants({ size }), rootClassName, className),
|
|
97
|
+
"data-disabled": disabled ? "true" : void 0,
|
|
98
|
+
"data-state": checked ? "checked" : "unchecked",
|
|
99
|
+
htmlFor: controlId,
|
|
100
|
+
children: [
|
|
101
|
+
/* @__PURE__ */ jsx(
|
|
102
|
+
"input",
|
|
103
|
+
{
|
|
104
|
+
ref,
|
|
105
|
+
id: controlId,
|
|
106
|
+
type: "radio",
|
|
107
|
+
"data-slot": "radio-group-item",
|
|
108
|
+
className: "peer sr-only",
|
|
109
|
+
name: context?.name,
|
|
110
|
+
value,
|
|
111
|
+
checked,
|
|
112
|
+
disabled,
|
|
113
|
+
required,
|
|
114
|
+
"aria-label": ariaLabel ?? (hasVisibleLabel ? void 0 : value),
|
|
115
|
+
onChange: (event) => {
|
|
116
|
+
if (event.currentTarget.checked) {
|
|
117
|
+
context?.onValueChange(value);
|
|
118
|
+
}
|
|
119
|
+
},
|
|
120
|
+
...rest
|
|
121
|
+
}
|
|
122
|
+
),
|
|
123
|
+
/* @__PURE__ */ jsx(
|
|
124
|
+
"span",
|
|
125
|
+
{
|
|
126
|
+
"aria-hidden": "true",
|
|
127
|
+
className: cn(
|
|
128
|
+
radioGroupControlVariants({ appearance, size }),
|
|
129
|
+
controlClassName
|
|
130
|
+
),
|
|
131
|
+
"data-slot": "radio-group-control",
|
|
132
|
+
children: /* @__PURE__ */ jsx(
|
|
133
|
+
"span",
|
|
134
|
+
{
|
|
135
|
+
className: cn(
|
|
136
|
+
radioGroupIndicatorVariants({ size }),
|
|
137
|
+
indicatorClassName
|
|
138
|
+
),
|
|
139
|
+
"data-slot": "radio-group-indicator"
|
|
140
|
+
}
|
|
141
|
+
)
|
|
142
|
+
}
|
|
143
|
+
),
|
|
144
|
+
hasVisibleLabel && /* @__PURE__ */ jsx("span", { className: "min-w-0 leading-6", "data-slot": "radio-group-label", children: labelContent })
|
|
145
|
+
]
|
|
146
|
+
}
|
|
147
|
+
);
|
|
148
|
+
}
|
|
149
|
+
RadioGroupItem.displayName = "RadioGroupItem";
|
|
150
|
+
|
|
151
|
+
export { RadioGroup, RadioGroupItem };
|
|
152
|
+
//# sourceMappingURL=radio-group.mjs.map
|
|
153
|
+
//# sourceMappingURL=radio-group.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/ui/radio-group/radio-group.tsx"],"names":[],"mappings":";;;;;;AAkBO,SAAS,WAAW,KAAA,EAAwB;AACjD,EAAA,MAAM;AAAA,IACJ,SAAA;AAAA,IACA,KAAA;AAAA,IACA,YAAA;AAAA,IACA,IAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA;AAAA,IACA,aAAA;AAAA,IACA,WAAA;AAAA,IACA,UAAA;AAAA,IACA,IAAA;AAAA,IACA,QAAA;AAAA,IACA,GAAA;AAAA,IACA,GAAG;AAAA,GACL,GAAI,KAAA;AACJ,EAAA,MAAM,gBAAgB,KAAA,EAAM;AAC5B,EAAA,MAAM,eAAe,KAAA,KAAU,MAAA;AAC/B,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAI,SAAS,YAAY,CAAA;AAC7D,EAAA,MAAM,aAAA,GAAgB,eAAe,KAAA,GAAQ,YAAA;AAE7C,EAAA,MAAM,QAAA,GAAW,WAAA;AAAA,IACf,CAAC,IAAA,KAAiB;AAChB,MAAA,IAAI,CAAC,YAAA,EAAc;AACjB,QAAA,eAAA,CAAgB,IAAI,CAAA;AAAA,MACtB;AACA,MAAA,aAAA,GAAgB,IAAI,CAAA;AAAA,IACtB,CAAA;AAAA,IACA,CAAC,cAAc,aAAa;AAAA,GAC9B;AAEA,EAAA,uBACE,GAAA;AAAA,IAAC,iBAAA,CAAkB,QAAA;AAAA,IAAlB;AAAA,MACC,KAAA,EAAO;AAAA,QACL,KAAA,EAAO,aAAA;AAAA,QACP,MAAM,IAAA,IAAQ,aAAA;AAAA,QACd,QAAA;AAAA,QACA,QAAA;AAAA,QACA,YAAY,UAAA,IAAc,MAAA;AAAA,QAC1B,MAAM,IAAA,IAAQ,MAAA;AAAA,QACd,aAAA,EAAe;AAAA,OACjB;AAAA,MAEA,QAAA,kBAAA,GAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,GAAA;AAAA,UACA,IAAA,EAAK,YAAA;AAAA,UACL,WAAA,EAAU,aAAA;AAAA,UACV,oBAAkB,WAAA,IAAe,UAAA;AAAA,UACjC,WAAW,EAAA,CAAG,sBAAA,CAAuB,EAAE,WAAA,EAAa,GAAG,SAAS,CAAA;AAAA,UAC/D,GAAG,IAAA;AAAA,UAEH;AAAA;AAAA;AACH;AAAA,GACF;AAEJ;AAEA,UAAA,CAAW,WAAA,GAAc,YAAA;AAElB,SAAS,eAAe,KAAA,EAA4B;AACzD,EAAA,MAAM;AAAA,IACJ,SAAA;AAAA,IACA,aAAA;AAAA,IACA,gBAAA;AAAA,IACA,kBAAA;AAAA,IACA,KAAA;AAAA,IACA,UAAA,EAAY,cAAA;AAAA,IACZ,IAAA,EAAM,QAAA;AAAA,IACN,QAAA,EAAU,YAAA;AAAA,IACV,QAAA,EAAU,YAAA;AAAA,IACV,QAAA;AAAA,IACA,KAAA;AAAA,IACA,EAAA;AAAA,IACA,GAAA;AAAA,IACA,YAAA,EAAc,SAAA;AAAA,IACd,GAAG;AAAA,GACL,GAAI,KAAA;AACJ,EAAA,MAAM,cAAc,KAAA,EAAM;AAC1B,EAAA,MAAM,UAAU,oBAAA,EAAqB;AACrC,EAAA,MAAM,YAAY,EAAA,IAAM,WAAA;AACxB,EAAA,MAAM,OAAA,GAAU,SAAS,KAAA,KAAU,KAAA;AACnC,EAAA,MAAM,QAAA,GAAW,gBAAgB,OAAA,EAAS,QAAA;AAC1C,EAAA,MAAM,QAAA,GAAW,gBAAgB,OAAA,EAAS,QAAA;AAC1C,EAAA,MAAM,UAAA,GAAa,kBAAkB,OAAA,EAAS,UAAA;AAC9C,EAAA,MAAM,IAAA,GAAO,YAAY,OAAA,EAAS,IAAA;AAClC,EAAA,MAAM,eAAe,KAAA,IAAS,QAAA;AAC9B,EAAA,MAAM,eAAA,GACJ,YAAA,KAAiB,MAAA,IAAa,YAAA,KAAiB,QAAQ,YAAA,KAAiB,KAAA;AAE1E,EAAA,uBACE,IAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,GAAG,sBAAA,CAAuB,EAAE,MAAM,CAAA,EAAG,eAAe,SAAS,CAAA;AAAA,MACxE,eAAA,EAAe,WAAW,MAAA,GAAS,MAAA;AAAA,MACnC,YAAA,EAAY,UAAU,SAAA,GAAY,WAAA;AAAA,MAClC,OAAA,EAAS,SAAA;AAAA,MAET,QAAA,EAAA;AAAA,wBAAA,GAAA;AAAA,UAAC,OAAA;AAAA,UAAA;AAAA,YACC,GAAA;AAAA,YACA,EAAA,EAAI,SAAA;AAAA,YACJ,IAAA,EAAK,OAAA;AAAA,YACL,WAAA,EAAU,kBAAA;AAAA,YACV,SAAA,EAAU,cAAA;AAAA,YACV,MAAM,OAAA,EAAS,IAAA;AAAA,YACf,KAAA;AAAA,YACA,OAAA;AAAA,YACA,QAAA;AAAA,YACA,QAAA;AAAA,YACA,YAAA,EAAY,SAAA,KAAc,eAAA,GAAkB,MAAA,GAAY,KAAA,CAAA;AAAA,YACxD,QAAA,EAAU,CAAC,KAAA,KAAU;AACnB,cAAA,IAAI,KAAA,CAAM,cAAc,OAAA,EAAS;AAC/B,gBAAA,OAAA,EAAS,cAAc,KAAK,CAAA;AAAA,cAC9B;AAAA,YACF,CAAA;AAAA,YACC,GAAG;AAAA;AAAA,SACN;AAAA,wBACA,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,aAAA,EAAY,MAAA;AAAA,YACZ,SAAA,EAAW,EAAA;AAAA,cACT,yBAAA,CAA0B,EAAE,UAAA,EAAY,IAAA,EAAM,CAAA;AAAA,cAC9C;AAAA,aACF;AAAA,YACA,WAAA,EAAU,qBAAA;AAAA,YAEV,QAAA,kBAAA,GAAA;AAAA,cAAC,MAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAW,EAAA;AAAA,kBACT,2BAAA,CAA4B,EAAE,IAAA,EAAM,CAAA;AAAA,kBACpC;AAAA,iBACF;AAAA,gBACA,WAAA,EAAU;AAAA;AAAA;AACZ;AAAA,SACF;AAAA,QACC,mCACC,GAAA,CAAC,MAAA,EAAA,EAAK,WAAU,mBAAA,EAAoB,WAAA,EAAU,qBAC3C,QAAA,EAAA,YAAA,EACH;AAAA;AAAA;AAAA,GAEJ;AAEJ;AAEA,cAAA,CAAe,WAAA,GAAc,gBAAA","file":"radio-group.mjs","sourcesContent":["\"use client\";\n\nimport { useCallback, useId, useState } from \"react\";\n\nimport { cn } from \"../../lib/utils\";\n\nimport {\n RadioGroupContext,\n useRadioGroupContext,\n} from \"./radio-group-context\";\nimport type { RadioGroupItemProps, RadioGroupProps } from \"./types\";\nimport {\n radioGroupControlVariants,\n radioGroupIndicatorVariants,\n radioGroupItemVariants,\n radioGroupRootVariants,\n} from \"./variants\";\n\nexport function RadioGroup(props: RadioGroupProps) {\n const {\n className,\n value,\n defaultValue,\n name,\n disabled,\n required,\n onValueChange,\n orientation,\n appearance,\n size,\n children,\n ref,\n ...rest\n } = props;\n const generatedName = useId();\n const isControlled = value !== undefined;\n const [uncontrolled, setUncontrolled] = useState(defaultValue);\n const resolvedValue = isControlled ? value : uncontrolled;\n\n const setValue = useCallback(\n (next: string) => {\n if (!isControlled) {\n setUncontrolled(next);\n }\n onValueChange?.(next);\n },\n [isControlled, onValueChange],\n );\n\n return (\n <RadioGroupContext.Provider\n value={{\n value: resolvedValue,\n name: name ?? generatedName,\n disabled,\n required,\n appearance: appearance ?? undefined,\n size: size ?? undefined,\n onValueChange: setValue,\n }}\n >\n <div\n ref={ref}\n role=\"radiogroup\"\n data-slot=\"radio-group\"\n data-orientation={orientation ?? \"vertical\"}\n className={cn(radioGroupRootVariants({ orientation }), className)}\n {...rest}\n >\n {children}\n </div>\n </RadioGroupContext.Provider>\n );\n}\n\nRadioGroup.displayName = \"RadioGroup\";\n\nexport function RadioGroupItem(props: RadioGroupItemProps) {\n const {\n className,\n rootClassName,\n controlClassName,\n indicatorClassName,\n value,\n appearance: appearanceProp,\n size: sizeProp,\n disabled: disabledProp,\n required: requiredProp,\n children,\n label,\n id,\n ref,\n \"aria-label\": ariaLabel,\n ...rest\n } = props;\n const generatedId = useId();\n const context = useRadioGroupContext();\n const controlId = id ?? generatedId;\n const checked = context?.value === value;\n const disabled = disabledProp ?? context?.disabled;\n const required = requiredProp ?? context?.required;\n const appearance = appearanceProp ?? context?.appearance;\n const size = sizeProp ?? context?.size;\n const labelContent = label ?? children;\n const hasVisibleLabel =\n labelContent !== undefined && labelContent !== null && labelContent !== false;\n\n return (\n <label\n className={cn(radioGroupItemVariants({ size }), rootClassName, className)}\n data-disabled={disabled ? \"true\" : undefined}\n data-state={checked ? \"checked\" : \"unchecked\"}\n htmlFor={controlId}\n >\n <input\n ref={ref}\n id={controlId}\n type=\"radio\"\n data-slot=\"radio-group-item\"\n className=\"peer sr-only\"\n name={context?.name}\n value={value}\n checked={checked}\n disabled={disabled}\n required={required}\n aria-label={ariaLabel ?? (hasVisibleLabel ? undefined : value)}\n onChange={(event) => {\n if (event.currentTarget.checked) {\n context?.onValueChange(value);\n }\n }}\n {...rest}\n />\n <span\n aria-hidden=\"true\"\n className={cn(\n radioGroupControlVariants({ appearance, size }),\n controlClassName,\n )}\n data-slot=\"radio-group-control\"\n >\n <span\n className={cn(\n radioGroupIndicatorVariants({ size }),\n indicatorClassName,\n )}\n data-slot=\"radio-group-indicator\"\n />\n </span>\n {hasVisibleLabel && (\n <span className=\"min-w-0 leading-6\" data-slot=\"radio-group-label\">\n {labelContent}\n </span>\n )}\n </label>\n );\n}\n\nRadioGroupItem.displayName = \"RadioGroupItem\";\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zentauri-ui/zentauri-components",
|
|
3
|
-
"version": "1.7.
|
|
3
|
+
"version": "1.7.1",
|
|
4
4
|
"description": "React + Tailwind UI kit with charts, ESM/CJS builds, per-entry exports, and a zentauri-components / zentauri-ui CLI to vendor UI or hook source into your app",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"files": [
|