@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.
Files changed (93) hide show
  1. package/README.md +9 -5
  2. package/cli/index.mjs +1 -0
  3. package/cli/registry.json +2 -0
  4. package/dist/chunk-6QQUQLPB.js +107 -0
  5. package/dist/chunk-6QQUQLPB.js.map +1 -0
  6. package/dist/chunk-K6IZANTI.mjs +80 -0
  7. package/dist/chunk-K6IZANTI.mjs.map +1 -0
  8. package/dist/chunk-MTTXLC2V.mjs +100 -0
  9. package/dist/chunk-MTTXLC2V.mjs.map +1 -0
  10. package/dist/chunk-PHEUJ4EF.js +84 -0
  11. package/dist/chunk-PHEUJ4EF.js.map +1 -0
  12. package/dist/design-system/checkbox.d.ts +32 -0
  13. package/dist/design-system/checkbox.d.ts.map +1 -0
  14. package/dist/design-system/index.d.ts +2 -0
  15. package/dist/design-system/index.d.ts.map +1 -1
  16. package/dist/design-system/radio-group.d.ts +37 -0
  17. package/dist/design-system/radio-group.d.ts.map +1 -0
  18. package/dist/ui/checkbox/animated/animations.d.ts +32 -0
  19. package/dist/ui/checkbox/animated/animations.d.ts.map +1 -0
  20. package/dist/ui/checkbox/animated/checkbox-animated.d.ts +6 -0
  21. package/dist/ui/checkbox/animated/checkbox-animated.d.ts.map +1 -0
  22. package/dist/ui/checkbox/animated/index.d.ts +4 -0
  23. package/dist/ui/checkbox/animated/index.d.ts.map +1 -0
  24. package/dist/ui/checkbox/animated/types.d.ts +8 -0
  25. package/dist/ui/checkbox/animated/types.d.ts.map +1 -0
  26. package/dist/ui/checkbox/animated.js +153 -0
  27. package/dist/ui/checkbox/animated.js.map +1 -0
  28. package/dist/ui/checkbox/animated.mjs +150 -0
  29. package/dist/ui/checkbox/animated.mjs.map +1 -0
  30. package/dist/ui/checkbox/checkbox-base.d.ts +6 -0
  31. package/dist/ui/checkbox/checkbox-base.d.ts.map +1 -0
  32. package/dist/ui/checkbox/checkbox.d.ts +6 -0
  33. package/dist/ui/checkbox/checkbox.d.ts.map +1 -0
  34. package/dist/ui/checkbox/index.d.ts +4 -0
  35. package/dist/ui/checkbox/index.d.ts.map +1 -0
  36. package/dist/ui/checkbox/types.d.ts +19 -0
  37. package/dist/ui/checkbox/types.d.ts.map +1 -0
  38. package/dist/ui/checkbox/variants.d.ts +11 -0
  39. package/dist/ui/checkbox/variants.d.ts.map +1 -0
  40. package/dist/ui/checkbox.js +150 -0
  41. package/dist/ui/checkbox.js.map +1 -0
  42. package/dist/ui/checkbox.mjs +137 -0
  43. package/dist/ui/checkbox.mjs.map +1 -0
  44. package/dist/ui/radio-group/animated/animations.d.ts +32 -0
  45. package/dist/ui/radio-group/animated/animations.d.ts.map +1 -0
  46. package/dist/ui/radio-group/animated/index.d.ts +4 -0
  47. package/dist/ui/radio-group/animated/index.d.ts.map +1 -0
  48. package/dist/ui/radio-group/animated/radio-group-animated.d.ts +10 -0
  49. package/dist/ui/radio-group/animated/radio-group-animated.d.ts.map +1 -0
  50. package/dist/ui/radio-group/animated/types.d.ts +11 -0
  51. package/dist/ui/radio-group/animated/types.d.ts.map +1 -0
  52. package/dist/ui/radio-group/animated.js +177 -0
  53. package/dist/ui/radio-group/animated.js.map +1 -0
  54. package/dist/ui/radio-group/animated.mjs +173 -0
  55. package/dist/ui/radio-group/animated.mjs.map +1 -0
  56. package/dist/ui/radio-group/index.d.ts +4 -0
  57. package/dist/ui/radio-group/index.d.ts.map +1 -0
  58. package/dist/ui/radio-group/radio-group-context.d.ts +13 -0
  59. package/dist/ui/radio-group/radio-group-context.d.ts.map +1 -0
  60. package/dist/ui/radio-group/radio-group.d.ts +10 -0
  61. package/dist/ui/radio-group/radio-group.d.ts.map +1 -0
  62. package/dist/ui/radio-group/types.d.ts +26 -0
  63. package/dist/ui/radio-group/types.d.ts.map +1 -0
  64. package/dist/ui/radio-group/variants.d.ts +14 -0
  65. package/dist/ui/radio-group/variants.d.ts.map +1 -0
  66. package/dist/ui/radio-group.js +171 -0
  67. package/dist/ui/radio-group.js.map +1 -0
  68. package/dist/ui/radio-group.mjs +153 -0
  69. package/dist/ui/radio-group.mjs.map +1 -0
  70. package/package.json +1 -1
  71. package/src/design-system/checkbox.ts +47 -0
  72. package/src/design-system/index.ts +2 -0
  73. package/src/design-system/radio-group.ts +54 -0
  74. package/src/ui/checkbox/animated/animations.ts +12 -0
  75. package/src/ui/checkbox/animated/checkbox-animated.tsx +145 -0
  76. package/src/ui/checkbox/animated/index.ts +9 -0
  77. package/src/ui/checkbox/animated/types.ts +9 -0
  78. package/src/ui/checkbox/checkbox-base.tsx +134 -0
  79. package/src/ui/checkbox/checkbox.test.tsx +53 -0
  80. package/src/ui/checkbox/checkbox.tsx +8 -0
  81. package/src/ui/checkbox/index.ts +15 -0
  82. package/src/ui/checkbox/types.ts +40 -0
  83. package/src/ui/checkbox/variants.ts +50 -0
  84. package/src/ui/radio-group/animated/animations.ts +12 -0
  85. package/src/ui/radio-group/animated/index.ts +10 -0
  86. package/src/ui/radio-group/animated/radio-group-animated.tsx +173 -0
  87. package/src/ui/radio-group/animated/types.ts +13 -0
  88. package/src/ui/radio-group/index.ts +19 -0
  89. package/src/ui/radio-group/radio-group-context.ts +23 -0
  90. package/src/ui/radio-group/radio-group.test.tsx +61 -0
  91. package/src/ui/radio-group/radio-group.tsx +159 -0
  92. package/src/ui/radio-group/types.ts +62 -0
  93. package/src/ui/radio-group/variants.ts +61 -0
@@ -0,0 +1,150 @@
1
+ "use client";
2
+ 'use strict';
3
+
4
+ var chunkPHEUJ4EF_js = require('../chunk-PHEUJ4EF.js');
5
+ var chunkZS5756ZC_js = require('../chunk-ZS5756ZC.js');
6
+ var react = require('react');
7
+ var jsxRuntime = require('react/jsx-runtime');
8
+
9
+ function resolveCheckboxState(checked, indeterminate) {
10
+ if (indeterminate) {
11
+ return "indeterminate";
12
+ }
13
+ return checked ? "checked" : "unchecked";
14
+ }
15
+ function CheckboxBase(props) {
16
+ const {
17
+ className,
18
+ rootClassName,
19
+ controlClassName,
20
+ indicatorClassName,
21
+ appearance,
22
+ size,
23
+ checked,
24
+ defaultChecked = false,
25
+ indeterminate,
26
+ onCheckedChange,
27
+ disabled,
28
+ children,
29
+ label,
30
+ id,
31
+ ref,
32
+ "aria-label": ariaLabel,
33
+ ...rest
34
+ } = props;
35
+ const generatedId = react.useId();
36
+ const controlId = id ?? generatedId;
37
+ const isControlled = checked !== void 0;
38
+ const [uncontrolled, setUncontrolled] = react.useState(defaultChecked);
39
+ const resolvedChecked = isControlled ? Boolean(checked) : uncontrolled;
40
+ const state = resolveCheckboxState(resolvedChecked, indeterminate);
41
+ const labelContent = label ?? children;
42
+ const hasVisibleLabel = labelContent !== void 0 && labelContent !== null && labelContent !== false;
43
+ const setChecked = react.useCallback(
44
+ (next) => {
45
+ if (!isControlled) {
46
+ setUncontrolled(next);
47
+ }
48
+ onCheckedChange?.(next);
49
+ },
50
+ [isControlled, onCheckedChange]
51
+ );
52
+ return /* @__PURE__ */ jsxRuntime.jsxs(
53
+ "label",
54
+ {
55
+ className: chunkZS5756ZC_js.cn(chunkPHEUJ4EF_js.checkboxRootVariants({ size }), rootClassName, className),
56
+ "data-disabled": disabled ? "true" : void 0,
57
+ "data-state": state,
58
+ htmlFor: controlId,
59
+ children: [
60
+ /* @__PURE__ */ jsxRuntime.jsx(
61
+ "input",
62
+ {
63
+ ref,
64
+ id: controlId,
65
+ type: "checkbox",
66
+ "data-slot": "checkbox",
67
+ className: "peer sr-only",
68
+ checked: resolvedChecked,
69
+ disabled,
70
+ "aria-checked": indeterminate ? "mixed" : resolvedChecked,
71
+ "aria-label": ariaLabel ?? (hasVisibleLabel ? void 0 : "Checkbox"),
72
+ onChange: (event) => setChecked(event.currentTarget.checked),
73
+ ...rest
74
+ }
75
+ ),
76
+ /* @__PURE__ */ jsxRuntime.jsx(
77
+ "span",
78
+ {
79
+ "aria-hidden": "true",
80
+ className: chunkZS5756ZC_js.cn(
81
+ chunkPHEUJ4EF_js.checkboxControlVariants({ appearance, size }),
82
+ controlClassName
83
+ ),
84
+ "data-slot": "checkbox-control",
85
+ children: state === "indeterminate" ? /* @__PURE__ */ jsxRuntime.jsx(
86
+ "svg",
87
+ {
88
+ viewBox: "0 0 16 16",
89
+ fill: "none",
90
+ className: chunkZS5756ZC_js.cn(
91
+ chunkPHEUJ4EF_js.checkboxIndicatorVariants({ size }),
92
+ indicatorClassName
93
+ ),
94
+ children: /* @__PURE__ */ jsxRuntime.jsx(
95
+ "path",
96
+ {
97
+ d: "M3.5 8H12.5",
98
+ strokeWidth: "2.4",
99
+ strokeLinecap: "round"
100
+ }
101
+ )
102
+ }
103
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
104
+ "svg",
105
+ {
106
+ viewBox: "0 0 16 16",
107
+ fill: "none",
108
+ className: chunkZS5756ZC_js.cn(
109
+ chunkPHEUJ4EF_js.checkboxIndicatorVariants({ size }),
110
+ indicatorClassName
111
+ ),
112
+ children: /* @__PURE__ */ jsxRuntime.jsx(
113
+ "path",
114
+ {
115
+ d: "M3.2 8.4L6.5 11.5L12.8 4.5",
116
+ strokeWidth: "2.2",
117
+ strokeLinecap: "round",
118
+ strokeLinejoin: "round"
119
+ }
120
+ )
121
+ }
122
+ )
123
+ }
124
+ ),
125
+ hasVisibleLabel && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "min-w-0 leading-6", "data-slot": "checkbox-label", children: labelContent })
126
+ ]
127
+ }
128
+ );
129
+ }
130
+ CheckboxBase.displayName = "Checkbox";
131
+ function Checkbox(props) {
132
+ return /* @__PURE__ */ jsxRuntime.jsx(CheckboxBase, { ...props });
133
+ }
134
+ Checkbox.displayName = "Checkbox";
135
+
136
+ Object.defineProperty(exports, "checkboxControlVariants", {
137
+ enumerable: true,
138
+ get: function () { return chunkPHEUJ4EF_js.checkboxControlVariants; }
139
+ });
140
+ Object.defineProperty(exports, "checkboxIndicatorVariants", {
141
+ enumerable: true,
142
+ get: function () { return chunkPHEUJ4EF_js.checkboxIndicatorVariants; }
143
+ });
144
+ Object.defineProperty(exports, "checkboxRootVariants", {
145
+ enumerable: true,
146
+ get: function () { return chunkPHEUJ4EF_js.checkboxRootVariants; }
147
+ });
148
+ exports.Checkbox = Checkbox;
149
+ //# sourceMappingURL=checkbox.js.map
150
+ //# sourceMappingURL=checkbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/ui/checkbox/checkbox-base.tsx","../../src/ui/checkbox/checkbox.tsx"],"names":["useId","useState","useCallback","jsxs","cn","checkboxRootVariants","jsx","checkboxControlVariants","checkboxIndicatorVariants"],"mappings":"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","file":"checkbox.js","sourcesContent":["\"use client\";\n\nimport { useCallback, useId, useState } from \"react\";\n\nimport { cn } from \"../../lib/utils\";\n\nimport type { CheckboxProps, CheckboxState } from \"./types\";\nimport {\n checkboxControlVariants,\n checkboxIndicatorVariants,\n checkboxRootVariants,\n} from \"./variants\";\n\nfunction resolveCheckboxState(\n checked: boolean,\n indeterminate: boolean | undefined,\n): CheckboxState {\n if (indeterminate) {\n return \"indeterminate\";\n }\n return checked ? \"checked\" : \"unchecked\";\n}\n\nexport function CheckboxBase(props: CheckboxProps) {\n const {\n className,\n rootClassName,\n controlClassName,\n indicatorClassName,\n appearance,\n size,\n checked,\n defaultChecked = false,\n indeterminate,\n onCheckedChange,\n disabled,\n children,\n label,\n id,\n ref,\n \"aria-label\": ariaLabel,\n ...rest\n } = props;\n const generatedId = useId();\n const controlId = id ?? generatedId;\n const isControlled = checked !== undefined;\n const [uncontrolled, setUncontrolled] = useState(defaultChecked);\n const resolvedChecked = isControlled ? Boolean(checked) : uncontrolled;\n const state = resolveCheckboxState(resolvedChecked, indeterminate);\n const labelContent = label ?? children;\n const hasVisibleLabel =\n labelContent !== undefined && labelContent !== null && labelContent !== false;\n\n const setChecked = useCallback(\n (next: boolean) => {\n if (!isControlled) {\n setUncontrolled(next);\n }\n onCheckedChange?.(next);\n },\n [isControlled, onCheckedChange],\n );\n\n return (\n <label\n className={cn(checkboxRootVariants({ size }), rootClassName, className)}\n data-disabled={disabled ? \"true\" : undefined}\n data-state={state}\n htmlFor={controlId}\n >\n <input\n ref={ref}\n id={controlId}\n type=\"checkbox\"\n data-slot=\"checkbox\"\n className=\"peer sr-only\"\n checked={resolvedChecked}\n disabled={disabled}\n aria-checked={indeterminate ? \"mixed\" : resolvedChecked}\n aria-label={ariaLabel ?? (hasVisibleLabel ? undefined : \"Checkbox\")}\n onChange={(event) => setChecked(event.currentTarget.checked)}\n {...rest}\n />\n <span\n aria-hidden=\"true\"\n className={cn(\n checkboxControlVariants({ appearance, size }),\n controlClassName,\n )}\n data-slot=\"checkbox-control\"\n >\n {state === \"indeterminate\" ? (\n <svg\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n className={cn(\n checkboxIndicatorVariants({ size }),\n indicatorClassName,\n )}\n >\n <path\n d=\"M3.5 8H12.5\"\n strokeWidth=\"2.4\"\n strokeLinecap=\"round\"\n />\n </svg>\n ) : (\n <svg\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n className={cn(\n checkboxIndicatorVariants({ size }),\n indicatorClassName,\n )}\n >\n <path\n d=\"M3.2 8.4L6.5 11.5L12.8 4.5\"\n strokeWidth=\"2.2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )}\n </span>\n {hasVisibleLabel && (\n <span className=\"min-w-0 leading-6\" data-slot=\"checkbox-label\">\n {labelContent}\n </span>\n )}\n </label>\n );\n}\n\nCheckboxBase.displayName = \"Checkbox\";\n","import { CheckboxBase } from \"./checkbox-base\";\nimport type { CheckboxProps } from \"./types\";\n\nexport function Checkbox(props: CheckboxProps) {\n return <CheckboxBase {...props} />;\n}\n\nCheckbox.displayName = \"Checkbox\";\n"]}
@@ -0,0 +1,137 @@
1
+ "use client";
2
+ import { checkboxIndicatorVariants, checkboxControlVariants, checkboxRootVariants } from '../chunk-K6IZANTI.mjs';
3
+ export { checkboxControlVariants, checkboxIndicatorVariants, checkboxRootVariants } from '../chunk-K6IZANTI.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 resolveCheckboxState(checked, indeterminate) {
9
+ if (indeterminate) {
10
+ return "indeterminate";
11
+ }
12
+ return checked ? "checked" : "unchecked";
13
+ }
14
+ function CheckboxBase(props) {
15
+ const {
16
+ className,
17
+ rootClassName,
18
+ controlClassName,
19
+ indicatorClassName,
20
+ appearance,
21
+ size,
22
+ checked,
23
+ defaultChecked = false,
24
+ indeterminate,
25
+ onCheckedChange,
26
+ disabled,
27
+ children,
28
+ label,
29
+ id,
30
+ ref,
31
+ "aria-label": ariaLabel,
32
+ ...rest
33
+ } = props;
34
+ const generatedId = useId();
35
+ const controlId = id ?? generatedId;
36
+ const isControlled = checked !== void 0;
37
+ const [uncontrolled, setUncontrolled] = useState(defaultChecked);
38
+ const resolvedChecked = isControlled ? Boolean(checked) : uncontrolled;
39
+ const state = resolveCheckboxState(resolvedChecked, indeterminate);
40
+ const labelContent = label ?? children;
41
+ const hasVisibleLabel = labelContent !== void 0 && labelContent !== null && labelContent !== false;
42
+ const setChecked = useCallback(
43
+ (next) => {
44
+ if (!isControlled) {
45
+ setUncontrolled(next);
46
+ }
47
+ onCheckedChange?.(next);
48
+ },
49
+ [isControlled, onCheckedChange]
50
+ );
51
+ return /* @__PURE__ */ jsxs(
52
+ "label",
53
+ {
54
+ className: cn(checkboxRootVariants({ size }), rootClassName, className),
55
+ "data-disabled": disabled ? "true" : void 0,
56
+ "data-state": state,
57
+ htmlFor: controlId,
58
+ children: [
59
+ /* @__PURE__ */ jsx(
60
+ "input",
61
+ {
62
+ ref,
63
+ id: controlId,
64
+ type: "checkbox",
65
+ "data-slot": "checkbox",
66
+ className: "peer sr-only",
67
+ checked: resolvedChecked,
68
+ disabled,
69
+ "aria-checked": indeterminate ? "mixed" : resolvedChecked,
70
+ "aria-label": ariaLabel ?? (hasVisibleLabel ? void 0 : "Checkbox"),
71
+ onChange: (event) => setChecked(event.currentTarget.checked),
72
+ ...rest
73
+ }
74
+ ),
75
+ /* @__PURE__ */ jsx(
76
+ "span",
77
+ {
78
+ "aria-hidden": "true",
79
+ className: cn(
80
+ checkboxControlVariants({ appearance, size }),
81
+ controlClassName
82
+ ),
83
+ "data-slot": "checkbox-control",
84
+ children: state === "indeterminate" ? /* @__PURE__ */ jsx(
85
+ "svg",
86
+ {
87
+ viewBox: "0 0 16 16",
88
+ fill: "none",
89
+ className: cn(
90
+ checkboxIndicatorVariants({ size }),
91
+ indicatorClassName
92
+ ),
93
+ children: /* @__PURE__ */ jsx(
94
+ "path",
95
+ {
96
+ d: "M3.5 8H12.5",
97
+ strokeWidth: "2.4",
98
+ strokeLinecap: "round"
99
+ }
100
+ )
101
+ }
102
+ ) : /* @__PURE__ */ jsx(
103
+ "svg",
104
+ {
105
+ viewBox: "0 0 16 16",
106
+ fill: "none",
107
+ className: cn(
108
+ checkboxIndicatorVariants({ size }),
109
+ indicatorClassName
110
+ ),
111
+ children: /* @__PURE__ */ jsx(
112
+ "path",
113
+ {
114
+ d: "M3.2 8.4L6.5 11.5L12.8 4.5",
115
+ strokeWidth: "2.2",
116
+ strokeLinecap: "round",
117
+ strokeLinejoin: "round"
118
+ }
119
+ )
120
+ }
121
+ )
122
+ }
123
+ ),
124
+ hasVisibleLabel && /* @__PURE__ */ jsx("span", { className: "min-w-0 leading-6", "data-slot": "checkbox-label", children: labelContent })
125
+ ]
126
+ }
127
+ );
128
+ }
129
+ CheckboxBase.displayName = "Checkbox";
130
+ function Checkbox(props) {
131
+ return /* @__PURE__ */ jsx(CheckboxBase, { ...props });
132
+ }
133
+ Checkbox.displayName = "Checkbox";
134
+
135
+ export { Checkbox };
136
+ //# sourceMappingURL=checkbox.mjs.map
137
+ //# sourceMappingURL=checkbox.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/ui/checkbox/checkbox-base.tsx","../../src/ui/checkbox/checkbox.tsx"],"names":["jsx"],"mappings":"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","file":"checkbox.mjs","sourcesContent":["\"use client\";\n\nimport { useCallback, useId, useState } from \"react\";\n\nimport { cn } from \"../../lib/utils\";\n\nimport type { CheckboxProps, CheckboxState } from \"./types\";\nimport {\n checkboxControlVariants,\n checkboxIndicatorVariants,\n checkboxRootVariants,\n} from \"./variants\";\n\nfunction resolveCheckboxState(\n checked: boolean,\n indeterminate: boolean | undefined,\n): CheckboxState {\n if (indeterminate) {\n return \"indeterminate\";\n }\n return checked ? \"checked\" : \"unchecked\";\n}\n\nexport function CheckboxBase(props: CheckboxProps) {\n const {\n className,\n rootClassName,\n controlClassName,\n indicatorClassName,\n appearance,\n size,\n checked,\n defaultChecked = false,\n indeterminate,\n onCheckedChange,\n disabled,\n children,\n label,\n id,\n ref,\n \"aria-label\": ariaLabel,\n ...rest\n } = props;\n const generatedId = useId();\n const controlId = id ?? generatedId;\n const isControlled = checked !== undefined;\n const [uncontrolled, setUncontrolled] = useState(defaultChecked);\n const resolvedChecked = isControlled ? Boolean(checked) : uncontrolled;\n const state = resolveCheckboxState(resolvedChecked, indeterminate);\n const labelContent = label ?? children;\n const hasVisibleLabel =\n labelContent !== undefined && labelContent !== null && labelContent !== false;\n\n const setChecked = useCallback(\n (next: boolean) => {\n if (!isControlled) {\n setUncontrolled(next);\n }\n onCheckedChange?.(next);\n },\n [isControlled, onCheckedChange],\n );\n\n return (\n <label\n className={cn(checkboxRootVariants({ size }), rootClassName, className)}\n data-disabled={disabled ? \"true\" : undefined}\n data-state={state}\n htmlFor={controlId}\n >\n <input\n ref={ref}\n id={controlId}\n type=\"checkbox\"\n data-slot=\"checkbox\"\n className=\"peer sr-only\"\n checked={resolvedChecked}\n disabled={disabled}\n aria-checked={indeterminate ? \"mixed\" : resolvedChecked}\n aria-label={ariaLabel ?? (hasVisibleLabel ? undefined : \"Checkbox\")}\n onChange={(event) => setChecked(event.currentTarget.checked)}\n {...rest}\n />\n <span\n aria-hidden=\"true\"\n className={cn(\n checkboxControlVariants({ appearance, size }),\n controlClassName,\n )}\n data-slot=\"checkbox-control\"\n >\n {state === \"indeterminate\" ? (\n <svg\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n className={cn(\n checkboxIndicatorVariants({ size }),\n indicatorClassName,\n )}\n >\n <path\n d=\"M3.5 8H12.5\"\n strokeWidth=\"2.4\"\n strokeLinecap=\"round\"\n />\n </svg>\n ) : (\n <svg\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n className={cn(\n checkboxIndicatorVariants({ size }),\n indicatorClassName,\n )}\n >\n <path\n d=\"M3.2 8.4L6.5 11.5L12.8 4.5\"\n strokeWidth=\"2.2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )}\n </span>\n {hasVisibleLabel && (\n <span className=\"min-w-0 leading-6\" data-slot=\"checkbox-label\">\n {labelContent}\n </span>\n )}\n </label>\n );\n}\n\nCheckboxBase.displayName = \"Checkbox\";\n","import { CheckboxBase } from \"./checkbox-base\";\nimport type { CheckboxProps } from \"./types\";\n\nexport function Checkbox(props: CheckboxProps) {\n return <CheckboxBase {...props} />;\n}\n\nCheckbox.displayName = \"Checkbox\";\n"]}
@@ -0,0 +1,32 @@
1
+ export declare const radioGroupAnimationPresets: {
2
+ readonly pop: {
3
+ readonly initial: {
4
+ readonly scale: 0.35;
5
+ readonly opacity: 0;
6
+ };
7
+ readonly animate: {
8
+ readonly scale: 1;
9
+ readonly opacity: 1;
10
+ };
11
+ readonly transition: {
12
+ readonly type: "spring";
13
+ readonly stiffness: 520;
14
+ readonly damping: 28;
15
+ };
16
+ };
17
+ readonly fade: {
18
+ readonly initial: {
19
+ readonly scale: 0.85;
20
+ readonly opacity: 0;
21
+ };
22
+ readonly animate: {
23
+ readonly scale: 1;
24
+ readonly opacity: 1;
25
+ };
26
+ readonly transition: {
27
+ readonly duration: 0.16;
28
+ readonly ease: "easeOut";
29
+ };
30
+ };
31
+ };
32
+ //# sourceMappingURL=animations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"animations.d.ts","sourceRoot":"","sources":["../../../../src/ui/radio-group/animated/animations.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAW7B,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { RadioGroupAnimated, RadioGroupItemAnimated } from "./radio-group-animated";
2
+ export type { RadioGroupAnimatedProps, RadioGroupAnimation, RadioGroupAnimationPresets, RadioGroupItemAnimatedProps, } from "./types";
3
+ export { radioGroupAnimationPresets } from "./animations";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ui/radio-group/animated/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACpF,YAAY,EACV,uBAAuB,EACvB,mBAAmB,EACnB,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { RadioGroupAnimatedProps, RadioGroupItemAnimatedProps } from "./types";
2
+ export declare function RadioGroupAnimated(props: RadioGroupAnimatedProps): import("react/jsx-runtime").JSX.Element;
3
+ export declare namespace RadioGroupAnimated {
4
+ var displayName: string;
5
+ }
6
+ export declare function RadioGroupItemAnimated(props: RadioGroupItemAnimatedProps): import("react/jsx-runtime").JSX.Element;
7
+ export declare namespace RadioGroupItemAnimated {
8
+ var displayName: string;
9
+ }
10
+ //# sourceMappingURL=radio-group-animated.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radio-group-animated.d.ts","sourceRoot":"","sources":["../../../../src/ui/radio-group/animated/radio-group-animated.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,uBAAuB,EACvB,2BAA2B,EAC5B,MAAM,SAAS,CAAC;AAYjB,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,2CAwDhE;yBAxDe,kBAAkB;;;AA4DlC,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,2BAA2B,2CAuFxE;yBAvFe,sBAAsB"}
@@ -0,0 +1,11 @@
1
+ import type { RadioGroupItemProps, RadioGroupProps } from "../types";
2
+ import type { radioGroupAnimationPresets } from "./animations";
3
+ export type RadioGroupAnimation = keyof typeof radioGroupAnimationPresets;
4
+ export type RadioGroupAnimationPresets = typeof radioGroupAnimationPresets;
5
+ export type RadioGroupAnimatedProps = RadioGroupProps & {
6
+ animation?: RadioGroupAnimation;
7
+ };
8
+ export type RadioGroupItemAnimatedProps = RadioGroupItemProps & {
9
+ animation?: RadioGroupAnimation;
10
+ };
11
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/ui/radio-group/animated/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AACrE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAE/D,MAAM,MAAM,mBAAmB,GAAG,MAAM,OAAO,0BAA0B,CAAC;AAC1E,MAAM,MAAM,0BAA0B,GAAG,OAAO,0BAA0B,CAAC;AAE3E,MAAM,MAAM,uBAAuB,GAAG,eAAe,GAAG;IACtD,SAAS,CAAC,EAAE,mBAAmB,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG,mBAAmB,GAAG;IAC9D,SAAS,CAAC,EAAE,mBAAmB,CAAC;CACjC,CAAC"}
@@ -0,0 +1,177 @@
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 framerMotion = require('framer-motion');
7
+ var react = require('react');
8
+ var jsxRuntime = require('react/jsx-runtime');
9
+
10
+ // src/ui/radio-group/animated/animations.ts
11
+ var radioGroupAnimationPresets = {
12
+ pop: {
13
+ initial: { scale: 0.35, opacity: 0 },
14
+ animate: { scale: 1, opacity: 1 },
15
+ transition: { type: "spring", stiffness: 520, damping: 28 }
16
+ },
17
+ fade: {
18
+ initial: { scale: 0.85, opacity: 0 },
19
+ animate: { scale: 1, opacity: 1 },
20
+ transition: { duration: 0.16, ease: "easeOut" }
21
+ }
22
+ };
23
+ function RadioGroupAnimated(props) {
24
+ const {
25
+ className,
26
+ value,
27
+ defaultValue,
28
+ name,
29
+ disabled,
30
+ required,
31
+ onValueChange,
32
+ orientation,
33
+ appearance,
34
+ size,
35
+ children,
36
+ ref,
37
+ animation: _animation,
38
+ ...rest
39
+ } = props;
40
+ const generatedName = react.useId();
41
+ const isControlled = value !== void 0;
42
+ const [uncontrolled, setUncontrolled] = react.useState(defaultValue);
43
+ const resolvedValue = isControlled ? value : uncontrolled;
44
+ const setValue = react.useCallback(
45
+ (next) => {
46
+ if (!isControlled) {
47
+ setUncontrolled(next);
48
+ }
49
+ onValueChange?.(next);
50
+ },
51
+ [isControlled, onValueChange]
52
+ );
53
+ return /* @__PURE__ */ jsxRuntime.jsx(
54
+ chunk6QQUQLPB_js.RadioGroupContext.Provider,
55
+ {
56
+ value: {
57
+ value: resolvedValue,
58
+ name: name ?? generatedName,
59
+ disabled,
60
+ required,
61
+ appearance: appearance ?? void 0,
62
+ size: size ?? void 0,
63
+ onValueChange: setValue
64
+ },
65
+ children: /* @__PURE__ */ jsxRuntime.jsx(
66
+ "div",
67
+ {
68
+ ref,
69
+ role: "radiogroup",
70
+ "data-slot": "radio-group",
71
+ "data-orientation": orientation ?? "vertical",
72
+ className: chunkZS5756ZC_js.cn(chunk6QQUQLPB_js.radioGroupRootVariants({ orientation }), className),
73
+ ...rest,
74
+ children
75
+ }
76
+ )
77
+ }
78
+ );
79
+ }
80
+ RadioGroupAnimated.displayName = "RadioGroup";
81
+ function RadioGroupItemAnimated(props) {
82
+ const {
83
+ className,
84
+ rootClassName,
85
+ controlClassName,
86
+ indicatorClassName,
87
+ value,
88
+ appearance: appearanceProp,
89
+ size: sizeProp,
90
+ disabled: disabledProp,
91
+ required: requiredProp,
92
+ children,
93
+ label,
94
+ id,
95
+ ref,
96
+ "aria-label": ariaLabel,
97
+ animation = "pop",
98
+ ...rest
99
+ } = props;
100
+ const generatedId = react.useId();
101
+ const context = chunk6QQUQLPB_js.useRadioGroupContext();
102
+ const controlId = id ?? generatedId;
103
+ const checked = context?.value === value;
104
+ const disabled = disabledProp ?? context?.disabled;
105
+ const required = requiredProp ?? context?.required;
106
+ const appearance = appearanceProp ?? context?.appearance;
107
+ const size = sizeProp ?? context?.size;
108
+ const labelContent = label ?? children;
109
+ const hasVisibleLabel = labelContent !== void 0 && labelContent !== null && labelContent !== false;
110
+ const motionPreset = radioGroupAnimationPresets[animation];
111
+ return /* @__PURE__ */ jsxRuntime.jsxs(
112
+ "label",
113
+ {
114
+ className: chunkZS5756ZC_js.cn(chunk6QQUQLPB_js.radioGroupItemVariants({ size }), rootClassName, className),
115
+ "data-disabled": disabled ? "true" : void 0,
116
+ "data-state": checked ? "checked" : "unchecked",
117
+ htmlFor: controlId,
118
+ children: [
119
+ /* @__PURE__ */ jsxRuntime.jsx(
120
+ "input",
121
+ {
122
+ ref,
123
+ id: controlId,
124
+ type: "radio",
125
+ "data-slot": "radio-group-item",
126
+ className: "peer sr-only",
127
+ name: context?.name,
128
+ value,
129
+ checked,
130
+ disabled,
131
+ required,
132
+ "aria-label": ariaLabel ?? (hasVisibleLabel ? void 0 : value),
133
+ onChange: (event) => {
134
+ if (event.currentTarget.checked) {
135
+ context?.onValueChange(value);
136
+ }
137
+ },
138
+ ...rest
139
+ }
140
+ ),
141
+ /* @__PURE__ */ jsxRuntime.jsx(
142
+ "span",
143
+ {
144
+ "aria-hidden": "true",
145
+ className: chunkZS5756ZC_js.cn(
146
+ chunk6QQUQLPB_js.radioGroupControlVariants({ appearance, size }),
147
+ controlClassName
148
+ ),
149
+ "data-slot": "radio-group-control",
150
+ children: checked && /* @__PURE__ */ jsxRuntime.jsx(
151
+ framerMotion.motion.span,
152
+ {
153
+ className: chunkZS5756ZC_js.cn(
154
+ chunk6QQUQLPB_js.radioGroupIndicatorVariants({ size }),
155
+ "opacity-100",
156
+ indicatorClassName
157
+ ),
158
+ "data-slot": "radio-group-indicator",
159
+ initial: motionPreset.initial,
160
+ animate: motionPreset.animate,
161
+ transition: motionPreset.transition
162
+ }
163
+ )
164
+ }
165
+ ),
166
+ hasVisibleLabel && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "min-w-0 leading-6", "data-slot": "radio-group-label", children: labelContent })
167
+ ]
168
+ }
169
+ );
170
+ }
171
+ RadioGroupItemAnimated.displayName = "RadioGroupItem";
172
+
173
+ exports.RadioGroupAnimated = RadioGroupAnimated;
174
+ exports.RadioGroupItemAnimated = RadioGroupItemAnimated;
175
+ exports.radioGroupAnimationPresets = radioGroupAnimationPresets;
176
+ //# sourceMappingURL=animated.js.map
177
+ //# sourceMappingURL=animated.js.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":["useId","useState","useCallback","jsx","RadioGroupContext","cn","radioGroupRootVariants","useRadioGroupContext","jsxs","radioGroupItemVariants","radioGroupControlVariants","motion","radioGroupIndicatorVariants"],"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,gBAAgBA,WAAA,EAAM;AAC5B,EAAA,MAAM,eAAe,KAAA,KAAU,MAAA;AAC/B,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAIC,eAAS,YAAY,CAAA;AAC7D,EAAA,MAAM,aAAA,GAAgB,eAAe,KAAA,GAAQ,YAAA;AAE7C,EAAA,MAAM,QAAA,GAAWC,iBAAA;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,uBACEC,cAAA;AAAA,IAACC,kCAAA,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,kBAAAD,cAAA;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,WAAWE,mBAAA,CAAGC,uCAAA,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,cAAcN,WAAA,EAAM;AAC1B,EAAA,MAAM,UAAUO,qCAAA,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,uBACEC,eAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAWH,oBAAGI,uCAAA,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,wBAAAN,cAAA;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,wBACAA,cAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,aAAA,EAAY,MAAA;AAAA,YACZ,SAAA,EAAWE,mBAAA;AAAA,cACTK,0CAAA,CAA0B,EAAE,UAAA,EAAY,IAAA,EAAM,CAAA;AAAA,cAC9C;AAAA,aACF;AAAA,YACA,WAAA,EAAU,qBAAA;AAAA,YAET,QAAA,EAAA,OAAA,oBACCP,cAAA;AAAA,cAACQ,mBAAA,CAAO,IAAA;AAAA,cAAP;AAAA,gBACC,SAAA,EAAWN,mBAAA;AAAA,kBACTO,4CAAA,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,mCACCT,cAAA,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.js","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"]}