@zentauri-ui/zentauri-components 1.7.0 → 1.7.2
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 +11 -5
- package/cli/index.mjs +1 -0
- package/cli/registry.json +3 -0
- package/dist/chunk-6QQUQLPB.js +107 -0
- package/dist/chunk-6QQUQLPB.js.map +1 -0
- package/dist/chunk-BC6M42HQ.mjs +251 -0
- package/dist/chunk-BC6M42HQ.mjs.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/chunk-QSPXPU72.js +259 -0
- package/dist/chunk-QSPXPU72.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 +3 -0
- package/dist/design-system/index.d.ts.map +1 -1
- package/dist/design-system/popover.d.ts +40 -0
- package/dist/design-system/popover.d.ts.map +1 -0
- 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/popover/animated/animations.d.ts +3 -0
- package/dist/ui/popover/animated/animations.d.ts.map +1 -0
- package/dist/ui/popover/animated/index.d.ts +4 -0
- package/dist/ui/popover/animated/index.d.ts.map +1 -0
- package/dist/ui/popover/animated/popover-content-animated.d.ts +3 -0
- package/dist/ui/popover/animated/popover-content-animated.d.ts.map +1 -0
- package/dist/ui/popover/animated/types.d.ts +9 -0
- package/dist/ui/popover/animated/types.d.ts.map +1 -0
- package/dist/ui/popover/animated.js +67 -0
- package/dist/ui/popover/animated.js.map +1 -0
- package/dist/ui/popover/animated.mjs +64 -0
- package/dist/ui/popover/animated.mjs.map +1 -0
- package/dist/ui/popover/index.d.ts +4 -0
- package/dist/ui/popover/index.d.ts.map +1 -0
- package/dist/ui/popover/popover-base.d.ts +8 -0
- package/dist/ui/popover/popover-base.d.ts.map +1 -0
- package/dist/ui/popover/popover.d.ts +2 -0
- package/dist/ui/popover/popover.d.ts.map +1 -0
- package/dist/ui/popover/types.d.ts +34 -0
- package/dist/ui/popover/types.d.ts.map +1 -0
- package/dist/ui/popover/variants.d.ts +6 -0
- package/dist/ui/popover/variants.d.ts.map +1 -0
- package/dist/ui/popover.js +34 -0
- package/dist/ui/popover.js.map +1 -0
- package/dist/ui/popover.mjs +5 -0
- package/dist/ui/popover.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 +3 -0
- package/src/design-system/popover.ts +66 -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/popover/animated/animations.ts +15 -0
- package/src/ui/popover/animated/index.ts +10 -0
- package/src/ui/popover/animated/popover-content-animated.tsx +54 -0
- package/src/ui/popover/animated/types.ts +18 -0
- package/src/ui/popover/index.ts +18 -0
- package/src/ui/popover/popover-base.tsx +261 -0
- package/src/ui/popover/popover.test.tsx +84 -0
- package/src/ui/popover/popover.tsx +8 -0
- package/src/ui/popover/types.ts +38 -0
- package/src/ui/popover/variants.ts +21 -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,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":"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","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.2",
|
|
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": [
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
export const zuiCheckboxRootBase =
|
|
2
|
+
"group inline-flex w-fit items-start gap-2.5 text-sm font-medium text-[color:var(--zui-checkbox-label-fg,oklch(20.8%_0.042_265.755))] dark:text-[color:var(--zui-checkbox-label-fg-dark,oklch(98.4%_0.003_247.858))] data-[disabled=true]:cursor-not-allowed data-[disabled=true]:opacity-50";
|
|
3
|
+
|
|
4
|
+
export const zuiCheckboxControlBase =
|
|
5
|
+
"grid shrink-0 place-items-center rounded-md border-2 border-[color:var(--zui-checkbox-border,#0000004d)] bg-[var(--zui-checkbox-bg,transparent)] text-[color:var(--zui-checkbox-fg,oklch(44.6%_0.043_257.281))] transition-[background-color,border-color,color,box-shadow] peer-focus-visible:outline-none peer-focus-visible:ring-2 peer-focus-visible:ring-[var(--zui-checkbox-ring-focus,oklch(44.6%_0.043_257.281_/_0.7))] peer-focus-visible:ring-offset-2 peer-focus-visible:ring-offset-[var(--zui-checkbox-ring-offset-focus,oklch(98.4%_0.003_247.858))] dark:border-[color:var(--zui-checkbox-border-dark,#ffffff4d)] dark:text-[color:var(--zui-checkbox-fg-dark,oklch(92.9%_0.013_255.508))] dark:peer-focus-visible:ring-[var(--zui-checkbox-ring-focus-dark,oklch(86.9%_0.022_252.894_/_0.7))] dark:peer-focus-visible:ring-offset-[var(--zui-checkbox-ring-offset-focus-dark,oklch(12.9%_0.042_264.695))] group-data-[disabled=true]:cursor-not-allowed";
|
|
6
|
+
|
|
7
|
+
export const zuiCheckboxIndicatorBase =
|
|
8
|
+
"pointer-events-none opacity-0 transition-opacity duration-150 stroke-white group-data-[state=checked]:opacity-100 group-data-[state=indeterminate]:opacity-100";
|
|
9
|
+
|
|
10
|
+
export const zuiCheckboxSizes = {
|
|
11
|
+
sm: {
|
|
12
|
+
root: "text-xs",
|
|
13
|
+
control: "mt-0.5 size-4 rounded-[0.35rem]",
|
|
14
|
+
indicator: "size-3",
|
|
15
|
+
},
|
|
16
|
+
md: {
|
|
17
|
+
root: "text-sm",
|
|
18
|
+
control: "mt-0.5 size-5",
|
|
19
|
+
indicator: "size-3.5",
|
|
20
|
+
},
|
|
21
|
+
lg: {
|
|
22
|
+
root: "text-base",
|
|
23
|
+
control: "mt-0.5 size-6",
|
|
24
|
+
indicator: "size-4",
|
|
25
|
+
},
|
|
26
|
+
} as const;
|
|
27
|
+
|
|
28
|
+
export const zuiCheckboxAppearances = {
|
|
29
|
+
default:
|
|
30
|
+
"group-data-[state=checked]:border-[color:var(--zui-checkbox-default-border-checked,oklch(44.6%_0.043_257.281))] group-data-[state=checked]:bg-[var(--zui-checkbox-default-bg-checked,oklch(44.6%_0.043_257.281))] group-data-[state=checked]:text-[color:var(--zui-checkbox-default-fg-checked,#ffffff)] group-data-[state=indeterminate]:border-[color:var(--zui-checkbox-default-border-checked,oklch(44.6%_0.043_257.281))] group-data-[state=indeterminate]:bg-[var(--zui-checkbox-default-bg-checked,oklch(44.6%_0.043_257.281))] group-data-[state=indeterminate]:text-[color:var(--zui-checkbox-default-fg-checked,#ffffff)]",
|
|
31
|
+
success:
|
|
32
|
+
"group-data-[state=checked]:border-[color:var(--zui-checkbox-success-border-checked,oklch(59.6%_0.145_163.225))] group-data-[state=checked]:bg-[var(--zui-checkbox-success-bg-checked,oklch(59.6%_0.145_163.225))] group-data-[state=checked]:text-[color:var(--zui-checkbox-success-fg-checked,#ffffff)] group-data-[state=indeterminate]:border-[color:var(--zui-checkbox-success-border-checked,oklch(59.6%_0.145_163.225))] group-data-[state=indeterminate]:bg-[var(--zui-checkbox-success-bg-checked,oklch(59.6%_0.145_163.225))]",
|
|
33
|
+
warning:
|
|
34
|
+
"group-data-[state=checked]:border-[color:var(--zui-checkbox-warning-border-checked,oklch(68.1%_0.162_75.834))] group-data-[state=checked]:bg-[var(--zui-checkbox-warning-bg-checked,oklch(68.1%_0.162_75.834))] group-data-[state=checked]:text-[color:var(--zui-checkbox-warning-fg-checked,#ffffff)] group-data-[state=indeterminate]:border-[color:var(--zui-checkbox-warning-border-checked,oklch(68.1%_0.162_75.834))] group-data-[state=indeterminate]:bg-[var(--zui-checkbox-warning-bg-checked,oklch(68.1%_0.162_75.834))]",
|
|
35
|
+
error:
|
|
36
|
+
"group-data-[state=checked]:border-[color:var(--zui-checkbox-error-border-checked,oklch(58.6%_0.253_17.585))] group-data-[state=checked]:bg-[var(--zui-checkbox-error-bg-checked,oklch(58.6%_0.253_17.585))] group-data-[state=checked]:text-[color:var(--zui-checkbox-error-fg-checked,#ffffff)] group-data-[state=indeterminate]:border-[color:var(--zui-checkbox-error-border-checked,oklch(58.6%_0.253_17.585))] group-data-[state=indeterminate]:bg-[var(--zui-checkbox-error-bg-checked,oklch(58.6%_0.253_17.585))]",
|
|
37
|
+
info:
|
|
38
|
+
"group-data-[state=checked]:border-[color:var(--zui-checkbox-info-border-checked,oklch(54.6%_0.245_262.881))] group-data-[state=checked]:bg-[var(--zui-checkbox-info-bg-checked,oklch(54.6%_0.245_262.881))] group-data-[state=checked]:text-[color:var(--zui-checkbox-info-fg-checked,#ffffff)] group-data-[state=indeterminate]:border-[color:var(--zui-checkbox-info-border-checked,oklch(54.6%_0.245_262.881))] group-data-[state=indeterminate]:bg-[var(--zui-checkbox-info-bg-checked,oklch(54.6%_0.245_262.881))]",
|
|
39
|
+
violet:
|
|
40
|
+
"group-data-[state=checked]:border-[color:var(--zui-checkbox-violet-border-checked,oklch(54.1%_0.281_293.009))] group-data-[state=checked]:bg-[var(--zui-checkbox-violet-bg-checked,oklch(54.1%_0.281_293.009))] group-data-[state=checked]:text-[color:var(--zui-checkbox-violet-fg-checked,#ffffff)] group-data-[state=indeterminate]:border-[color:var(--zui-checkbox-violet-border-checked,oklch(54.1%_0.281_293.009))] group-data-[state=indeterminate]:bg-[var(--zui-checkbox-violet-bg-checked,oklch(54.1%_0.281_293.009))]",
|
|
41
|
+
amber:
|
|
42
|
+
"group-data-[state=checked]:border-[color:var(--zui-checkbox-amber-border-checked,oklch(66.6%_0.179_58.318))] group-data-[state=checked]:bg-[var(--zui-checkbox-amber-bg-checked,oklch(66.6%_0.179_58.318))] group-data-[state=checked]:text-[color:var(--zui-checkbox-amber-fg-checked,#ffffff)] group-data-[state=indeterminate]:border-[color:var(--zui-checkbox-amber-border-checked,oklch(66.6%_0.179_58.318))] group-data-[state=indeterminate]:bg-[var(--zui-checkbox-amber-bg-checked,oklch(66.6%_0.179_58.318))]",
|
|
43
|
+
pink:
|
|
44
|
+
"group-data-[state=checked]:border-[color:var(--zui-checkbox-pink-border-checked,oklch(59.2%_0.249_0.584))] group-data-[state=checked]:bg-[var(--zui-checkbox-pink-bg-checked,oklch(59.2%_0.249_0.584))] group-data-[state=checked]:text-[color:var(--zui-checkbox-pink-fg-checked,#ffffff)] group-data-[state=indeterminate]:border-[color:var(--zui-checkbox-pink-border-checked,oklch(59.2%_0.249_0.584))] group-data-[state=indeterminate]:bg-[var(--zui-checkbox-pink-bg-checked,oklch(59.2%_0.249_0.584))]",
|
|
45
|
+
indigo:
|
|
46
|
+
"group-data-[state=checked]:border-[color:var(--zui-checkbox-indigo-border-checked,oklch(51.1%_0.262_276.966))] group-data-[state=checked]:bg-[var(--zui-checkbox-indigo-bg-checked,oklch(51.1%_0.262_276.966))] group-data-[state=checked]:text-[color:var(--zui-checkbox-indigo-fg-checked,#ffffff)] group-data-[state=indeterminate]:border-[color:var(--zui-checkbox-indigo-border-checked,oklch(51.1%_0.262_276.966))] group-data-[state=indeterminate]:bg-[var(--zui-checkbox-indigo-bg-checked,oklch(51.1%_0.262_276.966))]",
|
|
47
|
+
} as const;
|
|
@@ -5,6 +5,7 @@ export * from "./badge";
|
|
|
5
5
|
export * from "./breadcrumb";
|
|
6
6
|
export * from "./button";
|
|
7
7
|
export * from "./card";
|
|
8
|
+
export * from "./checkbox";
|
|
8
9
|
export * from "./divider";
|
|
9
10
|
export * from "./drawer";
|
|
10
11
|
export * from "./dropdown";
|
|
@@ -14,7 +15,9 @@ export * from "./file-upload";
|
|
|
14
15
|
export * from "./inputs";
|
|
15
16
|
export * from "./modal";
|
|
16
17
|
export * from "./pagination";
|
|
18
|
+
export * from "./popover";
|
|
17
19
|
export * from "./progress";
|
|
20
|
+
export * from "./radio-group";
|
|
18
21
|
export * from "./select";
|
|
19
22
|
export * from "./skeleton";
|
|
20
23
|
export * from "./slider";
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
export const zuiPopoverContentBase =
|
|
2
|
+
"absolute z-50 rounded-lg border shadow-lg transition-all duration-200 outline-none";
|
|
3
|
+
|
|
4
|
+
export const zuiPopoverContentVariants = {
|
|
5
|
+
default:
|
|
6
|
+
"border-[color:var(--zui-popover-default-border,oklch(20.8%_0.042_265.755_/_0.1))] dark:border-[color:var(--zui-popover-default-border-dark,#ffffff1a)] bg-[var(--zui-popover-default-bg,#ffffff)] dark:bg-[var(--zui-popover-default-bg-dark,oklch(20.8%_0.042_265.755))] text-[color:var(--zui-popover-default-fg,oklch(20.8%_0.042_265.755))] dark:text-[color:var(--zui-popover-default-fg-dark,oklch(96.8%_0.007_247.896))]",
|
|
7
|
+
outline:
|
|
8
|
+
"border-[color:var(--zui-popover-outline-border,oklch(37.3%_0.034_259.733))] dark:border-[color:var(--zui-popover-outline-border-dark,oklch(87.2%_0.01_258.338))] bg-[var(--zui-popover-outline-bg,#ffffff)] dark:bg-[var(--zui-popover-outline-bg-dark,#000000)] text-[color:var(--zui-popover-outline-fg,oklch(21%_0.034_264.665))] dark:text-[color:var(--zui-popover-outline-fg-dark,#ffffff)]",
|
|
9
|
+
ghost:
|
|
10
|
+
"border-transparent bg-[var(--zui-popover-ghost-bg,oklch(96.7%_0.003_264.542))] dark:bg-[var(--zui-popover-ghost-bg-dark,oklch(27.8%_0.033_256.848))] text-[color:var(--zui-popover-ghost-fg,oklch(21%_0.034_264.665))] dark:text-[color:var(--zui-popover-ghost-fg-dark,#ffffffe6)]",
|
|
11
|
+
glass:
|
|
12
|
+
"border-[color:var(--zui-popover-glass-border,#00000026)] dark:border-[color:var(--zui-popover-glass-border-dark,#ffffff26)] bg-[var(--zui-popover-glass-bg,#ffffffb3)] dark:bg-[var(--zui-popover-glass-bg-dark,#020617b3)] text-[color:var(--zui-popover-glass-fg,oklch(20.8%_0.042_265.755))] dark:text-[color:var(--zui-popover-glass-fg-dark,#ffffff)] backdrop-blur-md",
|
|
13
|
+
emerald:
|
|
14
|
+
"border-[color:var(--zui-popover-emerald-border,oklch(43.2%_0.095_166.913_/_0.35))] bg-[var(--zui-popover-emerald-bg,oklch(90.5%_0.093_164.15))] text-[color:var(--zui-popover-emerald-fg,oklch(37.8%_0.077_168.94))] dark:bg-[var(--zui-popover-emerald-bg-dark,oklch(26.2%_0.051_172.552))] dark:text-[color:var(--zui-popover-emerald-fg-dark,oklch(90.5%_0.093_164.15))]",
|
|
15
|
+
indigo:
|
|
16
|
+
"border-[color:var(--zui-popover-indigo-border,oklch(39.8%_0.195_277.366_/_0.35))] bg-[var(--zui-popover-indigo-bg,oklch(87%_0.065_274.039))] text-[color:var(--zui-popover-indigo-fg,oklch(35.9%_0.144_278.697))] dark:bg-[var(--zui-popover-indigo-bg-dark,oklch(25.7%_0.09_281.288))] dark:text-[color:var(--zui-popover-indigo-fg-dark,oklch(87%_0.065_274.039))]",
|
|
17
|
+
purple:
|
|
18
|
+
"border-[color:var(--zui-popover-purple-border,oklch(43.8%_0.218_303.724_/_0.35))] bg-[var(--zui-popover-purple-bg,oklch(90.2%_0.063_306.703))] text-[color:var(--zui-popover-purple-fg,oklch(38.1%_0.176_304.987))] dark:bg-[var(--zui-popover-purple-bg-dark,oklch(29.1%_0.149_302.717))] dark:text-[color:var(--zui-popover-purple-fg-dark,oklch(90.2%_0.063_306.703))]",
|
|
19
|
+
pink:
|
|
20
|
+
"border-[color:var(--zui-popover-pink-border,oklch(45.9%_0.187_3.815_/_0.35))] bg-[var(--zui-popover-pink-bg,oklch(89.9%_0.061_343.231))] text-[color:var(--zui-popover-pink-fg,oklch(40.8%_0.153_2.432))] dark:bg-[var(--zui-popover-pink-bg-dark,oklch(28.4%_0.109_3.907))] dark:text-[color:var(--zui-popover-pink-fg-dark,oklch(89.9%_0.061_343.231))]",
|
|
21
|
+
rose:
|
|
22
|
+
"border-[color:var(--zui-popover-rose-border,oklch(45.5%_0.188_13.697_/_0.35))] bg-[var(--zui-popover-rose-bg,oklch(89.2%_0.058_10.001))] text-[color:var(--zui-popover-rose-fg,oklch(41%_0.159_10.272))] dark:bg-[var(--zui-popover-rose-bg-dark,oklch(27.1%_0.105_12.094))] dark:text-[color:var(--zui-popover-rose-fg-dark,oklch(89.2%_0.058_10.001))]",
|
|
23
|
+
sky:
|
|
24
|
+
"border-[color:var(--zui-popover-sky-border,oklch(44.3%_0.11_240.79_/_0.35))] bg-[var(--zui-popover-sky-bg,oklch(90.1%_0.058_230.902))] text-[color:var(--zui-popover-sky-fg,oklch(39.1%_0.09_240.876))] dark:bg-[var(--zui-popover-sky-bg-dark,oklch(29.3%_0.066_243.157))] dark:text-[color:var(--zui-popover-sky-fg-dark,oklch(90.1%_0.058_230.902))]",
|
|
25
|
+
teal:
|
|
26
|
+
"border-[color:var(--zui-popover-teal-border,oklch(43.7%_0.078_188.216_/_0.35))] bg-[var(--zui-popover-teal-bg,oklch(91%_0.096_180.426))] text-[color:var(--zui-popover-teal-fg,oklch(38.6%_0.063_188.416))] dark:bg-[var(--zui-popover-teal-bg-dark,oklch(27.7%_0.046_192.524))] dark:text-[color:var(--zui-popover-teal-fg-dark,oklch(91%_0.096_180.426))]",
|
|
27
|
+
yellow:
|
|
28
|
+
"border-[color:var(--zui-popover-yellow-border,oklch(47.6%_0.114_61.907_/_0.35))] bg-[var(--zui-popover-yellow-bg,oklch(94.5%_0.129_101.54))] text-[color:var(--zui-popover-yellow-fg,oklch(42.1%_0.095_57.708))] dark:bg-[var(--zui-popover-yellow-bg-dark,oklch(28.6%_0.066_53.813))] dark:text-[color:var(--zui-popover-yellow-fg-dark,oklch(94.5%_0.129_101.54))]",
|
|
29
|
+
orange:
|
|
30
|
+
"border-[color:var(--zui-popover-orange-border,oklch(47%_0.157_37.304_/_0.35))] bg-[var(--zui-popover-orange-bg,oklch(90.1%_0.076_70.697))] text-[color:var(--zui-popover-orange-fg,oklch(40.8%_0.123_38.172))] dark:bg-[var(--zui-popover-orange-bg-dark,oklch(26.6%_0.079_36.259))] dark:text-[color:var(--zui-popover-orange-fg-dark,oklch(90.1%_0.076_70.697))]",
|
|
31
|
+
green:
|
|
32
|
+
"border-[color:var(--zui-popover-green-border,oklch(44.8%_0.119_151.328_/_0.35))] bg-[var(--zui-popover-green-bg,oklch(92.5%_0.084_155.995))] text-[color:var(--zui-popover-green-fg,oklch(39.3%_0.095_152.535))] dark:bg-[var(--zui-popover-green-bg-dark,oklch(26.6%_0.065_152.934))] dark:text-[color:var(--zui-popover-green-fg-dark,oklch(92.5%_0.084_155.995))]",
|
|
33
|
+
"gradient-blue":
|
|
34
|
+
"border-transparent bg-linear-to-r from-[var(--zui-popover-gradient-blue-from,oklch(42.4%_0.199_265.638))] to-[var(--zui-popover-gradient-blue-to,oklch(43.8%_0.218_303.724))] text-[color:var(--zui-popover-gradient-blue-fg,#ffffff)]",
|
|
35
|
+
"gradient-green":
|
|
36
|
+
"border-transparent bg-linear-to-r from-[var(--zui-popover-gradient-green-from,oklch(44.8%_0.119_151.328))] to-[var(--zui-popover-gradient-green-to,oklch(45.3%_0.124_130.933))] text-[color:var(--zui-popover-gradient-green-fg,#ffffff)]",
|
|
37
|
+
"gradient-red":
|
|
38
|
+
"border-transparent bg-linear-to-r from-[var(--zui-popover-gradient-red-from,oklch(44.4%_0.177_26.899))] to-[var(--zui-popover-gradient-red-to,oklch(45.9%_0.187_3.815))] text-[color:var(--zui-popover-gradient-red-fg,#ffffff)]",
|
|
39
|
+
"gradient-yellow":
|
|
40
|
+
"border-transparent bg-linear-to-r from-[var(--zui-popover-gradient-yellow-from,oklch(47.6%_0.114_61.907))] to-[var(--zui-popover-gradient-yellow-to,oklch(47%_0.157_37.304))] text-[color:var(--zui-popover-gradient-yellow-fg,#ffffff)]",
|
|
41
|
+
"gradient-purple":
|
|
42
|
+
"border-transparent bg-linear-to-r from-[var(--zui-popover-gradient-purple-from,oklch(43.8%_0.218_303.724))] to-[var(--zui-popover-gradient-purple-to,oklch(45.9%_0.187_3.815))] text-[color:var(--zui-popover-gradient-purple-fg,#ffffff)]",
|
|
43
|
+
"gradient-teal":
|
|
44
|
+
"border-transparent bg-linear-to-r from-[var(--zui-popover-gradient-teal-from,oklch(43.7%_0.078_188.216))] to-[var(--zui-popover-gradient-teal-to,oklch(45%_0.085_224.283))] text-[color:var(--zui-popover-gradient-teal-fg,#ffffff)]",
|
|
45
|
+
"gradient-indigo":
|
|
46
|
+
"border-transparent bg-linear-to-r from-[var(--zui-popover-gradient-indigo-from,oklch(39.8%_0.195_277.366))] to-[var(--zui-popover-gradient-indigo-to,oklch(43.8%_0.218_303.724))] text-[color:var(--zui-popover-gradient-indigo-fg,#ffffff)]",
|
|
47
|
+
"gradient-pink":
|
|
48
|
+
"border-transparent bg-linear-to-r from-[var(--zui-popover-gradient-pink-from,oklch(45.9%_0.187_3.815))] to-[var(--zui-popover-gradient-pink-to,oklch(45.5%_0.188_13.697))] text-[color:var(--zui-popover-gradient-pink-fg,#ffffff)]",
|
|
49
|
+
"gradient-orange":
|
|
50
|
+
"border-transparent bg-linear-to-r from-[var(--zui-popover-gradient-orange-from,oklch(47%_0.157_37.304))] to-[var(--zui-popover-gradient-orange-to,oklch(44.4%_0.177_26.899))] text-[color:var(--zui-popover-gradient-orange-fg,#ffffff)]",
|
|
51
|
+
} as const;
|
|
52
|
+
|
|
53
|
+
export const zuiPopoverContentSizes = {
|
|
54
|
+
sm: "p-3 text-sm",
|
|
55
|
+
md: "p-4 text-sm",
|
|
56
|
+
lg: "p-5 text-base",
|
|
57
|
+
} as const;
|
|
58
|
+
|
|
59
|
+
export const zuiPopoverContentWidths = {
|
|
60
|
+
xs: "min-w-50 md:min-w-xs",
|
|
61
|
+
sm: "min-w-50 md:min-w-sm",
|
|
62
|
+
md: "min-w-50 md:min-w-md",
|
|
63
|
+
lg: "min-w-50 md:min-w-lg",
|
|
64
|
+
xl: "min-w-50 md:min-w-xl",
|
|
65
|
+
"2xl": "min-w-50 md:min-w-2xl",
|
|
66
|
+
} as const;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
export const zuiRadioGroupRootBase = "grid gap-2";
|
|
2
|
+
|
|
3
|
+
export const zuiRadioGroupItemBase =
|
|
4
|
+
"group inline-flex w-fit items-start gap-2.5 text-sm font-medium text-[color:var(--zui-radio-label-fg,oklch(20.8%_0.042_265.755))] dark:text-[color:var(--zui-radio-label-fg-dark,oklch(98.4%_0.003_247.858))] data-[disabled=true]:cursor-not-allowed data-[disabled=true]:opacity-50";
|
|
5
|
+
|
|
6
|
+
export const zuiRadioGroupControlBase =
|
|
7
|
+
"grid shrink-0 place-items-center rounded-full border-2 border-[color:var(--zui-radio-border,#0000004d)] bg-[var(--zui-radio-bg,transparent)] transition-[background-color,border-color,box-shadow] peer-focus-visible:outline-none peer-focus-visible:ring-2 peer-focus-visible:ring-[var(--zui-radio-ring-focus,oklch(44.6%_0.043_257.281_/_0.7))] peer-focus-visible:ring-offset-2 peer-focus-visible:ring-offset-[var(--zui-radio-ring-offset-focus,oklch(98.4%_0.003_247.858))] dark:border-[color:var(--zui-radio-border-dark,#ffffff4d)] dark:peer-focus-visible:ring-[var(--zui-radio-ring-focus-dark,oklch(86.9%_0.022_252.894_/_0.7))] dark:peer-focus-visible:ring-offset-[var(--zui-radio-ring-offset-focus-dark,oklch(12.9%_0.042_264.695))] group-data-[disabled=true]:cursor-not-allowed";
|
|
8
|
+
|
|
9
|
+
export const zuiRadioGroupIndicatorBase =
|
|
10
|
+
"pointer-events-none block rounded-full opacity-0 transition-opacity duration-150 group-data-[state=checked]:opacity-100";
|
|
11
|
+
|
|
12
|
+
export const zuiRadioGroupSizes = {
|
|
13
|
+
sm: {
|
|
14
|
+
item: "text-xs",
|
|
15
|
+
control: "mt-0.5 size-4",
|
|
16
|
+
indicator: "size-1.5",
|
|
17
|
+
},
|
|
18
|
+
md: {
|
|
19
|
+
item: "text-sm",
|
|
20
|
+
control: "mt-0.5 size-5",
|
|
21
|
+
indicator: "size-2",
|
|
22
|
+
},
|
|
23
|
+
lg: {
|
|
24
|
+
item: "text-base",
|
|
25
|
+
control: "mt-0.5 size-6",
|
|
26
|
+
indicator: "size-2.5",
|
|
27
|
+
},
|
|
28
|
+
} as const;
|
|
29
|
+
|
|
30
|
+
export const zuiRadioGroupAppearances = {
|
|
31
|
+
default:
|
|
32
|
+
"group-data-[state=checked]:border-[color:var(--zui-radio-default-border-checked,oklch(44.6%_0.043_257.281))] [&_[data-slot=radio-group-indicator]]:bg-[var(--zui-radio-default-indicator-bg,oklch(44.6%_0.043_257.281))]",
|
|
33
|
+
success:
|
|
34
|
+
"group-data-[state=checked]:border-[color:var(--zui-radio-success-border-checked,oklch(59.6%_0.145_163.225))] [&_[data-slot=radio-group-indicator]]:bg-[var(--zui-radio-success-indicator-bg,oklch(59.6%_0.145_163.225))]",
|
|
35
|
+
warning:
|
|
36
|
+
"group-data-[state=checked]:border-[color:var(--zui-radio-warning-border-checked,oklch(68.1%_0.162_75.834))] [&_[data-slot=radio-group-indicator]]:bg-[var(--zui-radio-warning-indicator-bg,oklch(68.1%_0.162_75.834))]",
|
|
37
|
+
error:
|
|
38
|
+
"group-data-[state=checked]:border-[color:var(--zui-radio-error-border-checked,oklch(58.6%_0.253_17.585))] [&_[data-slot=radio-group-indicator]]:bg-[var(--zui-radio-error-indicator-bg,oklch(58.6%_0.253_17.585))]",
|
|
39
|
+
info:
|
|
40
|
+
"group-data-[state=checked]:border-[color:var(--zui-radio-info-border-checked,oklch(54.6%_0.245_262.881))] [&_[data-slot=radio-group-indicator]]:bg-[var(--zui-radio-info-indicator-bg,oklch(54.6%_0.245_262.881))]",
|
|
41
|
+
violet:
|
|
42
|
+
"group-data-[state=checked]:border-[color:var(--zui-radio-violet-border-checked,oklch(54.1%_0.281_293.009))] [&_[data-slot=radio-group-indicator]]:bg-[var(--zui-radio-violet-indicator-bg,oklch(54.1%_0.281_293.009))]",
|
|
43
|
+
amber:
|
|
44
|
+
"group-data-[state=checked]:border-[color:var(--zui-radio-amber-border-checked,oklch(66.6%_0.179_58.318))] [&_[data-slot=radio-group-indicator]]:bg-[var(--zui-radio-amber-indicator-bg,oklch(66.6%_0.179_58.318))]",
|
|
45
|
+
pink:
|
|
46
|
+
"group-data-[state=checked]:border-[color:var(--zui-radio-pink-border-checked,oklch(59.2%_0.249_0.584))] [&_[data-slot=radio-group-indicator]]:bg-[var(--zui-radio-pink-indicator-bg,oklch(59.2%_0.249_0.584))]",
|
|
47
|
+
indigo:
|
|
48
|
+
"group-data-[state=checked]:border-[color:var(--zui-radio-indigo-border-checked,oklch(51.1%_0.262_276.966))] [&_[data-slot=radio-group-indicator]]:bg-[var(--zui-radio-indigo-indicator-bg,oklch(51.1%_0.262_276.966))]",
|
|
49
|
+
} as const;
|
|
50
|
+
|
|
51
|
+
export const zuiRadioGroupOrientations = {
|
|
52
|
+
vertical: "grid gap-2",
|
|
53
|
+
horizontal: "flex flex-wrap gap-x-5 gap-y-2",
|
|
54
|
+
} as const;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export const checkboxAnimationPresets = {
|
|
2
|
+
draw: {
|
|
3
|
+
initial: { pathLength: 0, opacity: 0 },
|
|
4
|
+
animate: { pathLength: 1, opacity: 1 },
|
|
5
|
+
transition: { duration: 0.2, ease: "easeOut" },
|
|
6
|
+
},
|
|
7
|
+
spring: {
|
|
8
|
+
initial: { scale: 0.7, opacity: 0 },
|
|
9
|
+
animate: { scale: 1, opacity: 1 },
|
|
10
|
+
transition: { type: "spring", stiffness: 520, damping: 30 },
|
|
11
|
+
},
|
|
12
|
+
} as const;
|