@zentauri-ui/zentauri-components 0.0.93 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +77 -34
- package/dist/chunk-B23TPTVG.mjs +11 -0
- package/dist/chunk-B23TPTVG.mjs.map +1 -0
- package/dist/{chunk-BZSIXBA7.js → chunk-BITDSQMR.js} +8 -6
- package/dist/chunk-BITDSQMR.js.map +1 -0
- package/dist/{chunk-VJHD7QZH.mjs → chunk-BORK3BJO.mjs} +4 -7
- package/dist/chunk-BORK3BJO.mjs.map +1 -0
- package/dist/chunk-WZ2GOU2J.js +13 -0
- package/dist/chunk-WZ2GOU2J.js.map +1 -0
- package/dist/ui/accordion.d.mts +1 -1
- package/dist/ui/accordion.d.ts +1 -1
- package/dist/ui/accordion.js +80 -61
- package/dist/ui/accordion.js.map +1 -1
- package/dist/ui/accordion.mjs +46 -39
- package/dist/ui/accordion.mjs.map +1 -1
- package/dist/ui/alert.d.mts +1 -1
- package/dist/ui/alert.d.ts +1 -1
- package/dist/ui/alert.js +57 -46
- package/dist/ui/alert.js.map +1 -1
- package/dist/ui/alert.mjs +28 -30
- package/dist/ui/alert.mjs.map +1 -1
- package/dist/ui/avatar.d.mts +59 -0
- package/dist/ui/avatar.d.ts +59 -0
- package/dist/ui/avatar.js +221 -0
- package/dist/ui/avatar.js.map +1 -0
- package/dist/ui/avatar.mjs +211 -0
- package/dist/ui/avatar.mjs.map +1 -0
- package/dist/ui/badge.js +20 -25
- package/dist/ui/badge.js.map +1 -1
- package/dist/ui/badge.mjs +8 -20
- package/dist/ui/badge.mjs.map +1 -1
- package/dist/ui/breadcrumb.d.mts +71 -0
- package/dist/ui/breadcrumb.d.ts +71 -0
- package/dist/ui/breadcrumb.js +174 -0
- package/dist/ui/breadcrumb.js.map +1 -0
- package/dist/ui/breadcrumb.mjs +161 -0
- package/dist/ui/breadcrumb.mjs.map +1 -0
- package/dist/ui/buttons.js +19 -21
- package/dist/ui/buttons.js.map +1 -1
- package/dist/ui/buttons.mjs +8 -18
- package/dist/ui/buttons.mjs.map +1 -1
- package/dist/ui/card.js +59 -54
- package/dist/ui/card.js.map +1 -1
- package/dist/ui/card.mjs +29 -39
- package/dist/ui/card.mjs.map +1 -1
- package/dist/ui/divider.js +39 -35
- package/dist/ui/divider.js.map +1 -1
- package/dist/ui/divider.mjs +18 -23
- package/dist/ui/divider.mjs.map +1 -1
- package/dist/ui/drawer.d.mts +1 -1
- package/dist/ui/drawer.d.ts +1 -1
- package/dist/ui/drawer.js +106 -73
- package/dist/ui/drawer.js.map +1 -1
- package/dist/ui/drawer.mjs +64 -45
- package/dist/ui/drawer.mjs.map +1 -1
- package/dist/ui/dropdown.js +42 -48
- package/dist/ui/dropdown.js.map +1 -1
- package/dist/ui/dropdown.mjs +13 -29
- package/dist/ui/dropdown.mjs.map +1 -1
- package/dist/ui/empty-state.d.mts +3 -3
- package/dist/ui/empty-state.d.ts +3 -3
- package/dist/ui/empty-state.js +83 -59
- package/dist/ui/empty-state.js.map +1 -1
- package/dist/ui/empty-state.mjs +64 -52
- package/dist/ui/empty-state.mjs.map +1 -1
- package/dist/ui/file-upload.d.mts +32 -0
- package/dist/ui/file-upload.d.ts +32 -0
- package/dist/ui/file-upload.js +142 -0
- package/dist/ui/file-upload.js.map +1 -0
- package/dist/ui/file-upload.mjs +139 -0
- package/dist/ui/file-upload.mjs.map +1 -0
- package/dist/ui/inputs.js +26 -31
- package/dist/ui/inputs.js.map +1 -1
- package/dist/ui/inputs.mjs +8 -19
- package/dist/ui/inputs.mjs.map +1 -1
- package/dist/ui/modal.d.mts +1 -1
- package/dist/ui/modal.d.ts +1 -1
- package/dist/ui/modal.js +116 -78
- package/dist/ui/modal.js.map +1 -1
- package/dist/ui/modal.mjs +74 -51
- package/dist/ui/modal.mjs.map +1 -1
- package/dist/ui/pagination.js +47 -60
- package/dist/ui/pagination.js.map +1 -1
- package/dist/ui/pagination.mjs +10 -32
- package/dist/ui/pagination.mjs.map +1 -1
- package/dist/ui/progress.js +70 -58
- package/dist/ui/progress.js.map +1 -1
- package/dist/ui/progress.mjs +44 -43
- package/dist/ui/progress.mjs.map +1 -1
- package/dist/ui/select.js +73 -81
- package/dist/ui/select.js.map +1 -1
- package/dist/ui/select.mjs +38 -59
- package/dist/ui/select.mjs.map +1 -1
- package/dist/ui/skeleton.js +45 -50
- package/dist/ui/skeleton.js.map +1 -1
- package/dist/ui/skeleton.mjs +8 -25
- package/dist/ui/skeleton.mjs.map +1 -1
- package/dist/ui/slider.d.mts +83 -0
- package/dist/ui/slider.d.ts +83 -0
- package/dist/ui/slider.js +521 -0
- package/dist/ui/slider.js.map +1 -0
- package/dist/ui/slider.mjs +511 -0
- package/dist/ui/slider.mjs.map +1 -0
- package/dist/ui/spinner.js +37 -38
- package/dist/ui/spinner.js.map +1 -1
- package/dist/ui/spinner.mjs +11 -18
- package/dist/ui/spinner.mjs.map +1 -1
- package/dist/ui/stepper.d.mts +64 -0
- package/dist/ui/stepper.d.ts +64 -0
- package/dist/ui/stepper.js +207 -0
- package/dist/ui/stepper.js.map +1 -0
- package/dist/ui/stepper.mjs +198 -0
- package/dist/ui/stepper.mjs.map +1 -0
- package/dist/ui/table.js +77 -79
- package/dist/ui/table.js.map +1 -1
- package/dist/ui/table.mjs +43 -60
- package/dist/ui/table.mjs.map +1 -1
- package/dist/ui/tabs.js +75 -75
- package/dist/ui/tabs.js.map +1 -1
- package/dist/ui/tabs.mjs +48 -59
- package/dist/ui/tabs.mjs.map +1 -1
- package/dist/ui/toast.d.mts +2 -2
- package/dist/ui/toast.d.ts +2 -2
- package/dist/ui/toast.js +111 -88
- package/dist/ui/toast.js.map +1 -1
- package/dist/ui/toast.mjs +77 -69
- package/dist/ui/toast.mjs.map +1 -1
- package/dist/ui/toggle.js +26 -28
- package/dist/ui/toggle.js.map +1 -1
- package/dist/ui/toggle.mjs +12 -21
- package/dist/ui/toggle.mjs.map +1 -1
- package/dist/ui/tooltip.js +29 -36
- package/dist/ui/tooltip.js.map +1 -1
- package/dist/ui/tooltip.mjs +8 -23
- package/dist/ui/tooltip.mjs.map +1 -1
- package/package.json +5 -3
- package/dist/chunk-BZSIXBA7.js.map +0 -1
- package/dist/chunk-E5UX537J.js +0 -11
- package/dist/chunk-E5UX537J.js.map +0 -1
- package/dist/chunk-MEWYFWBX.mjs +0 -14
- package/dist/chunk-MEWYFWBX.mjs.map +0 -1
- package/dist/chunk-VJHD7QZH.mjs.map +0 -1
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var chunkWZ2GOU2J_js = require('../chunk-WZ2GOU2J.js');
|
|
5
|
+
var react = require('react');
|
|
6
|
+
var classVarianceAuthority = require('class-variance-authority');
|
|
7
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
8
|
+
|
|
9
|
+
var stepperVariants = classVarianceAuthority.cva("flex w-full", {
|
|
10
|
+
variants: {
|
|
11
|
+
orientation: {
|
|
12
|
+
horizontal: "flex-row flex-wrap items-start gap-4",
|
|
13
|
+
vertical: "flex-col gap-6"
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
defaultVariants: {
|
|
17
|
+
orientation: "horizontal"
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
var stepperItemVariants = classVarianceAuthority.cva("relative flex gap-3", {
|
|
21
|
+
variants: {
|
|
22
|
+
orientation: {
|
|
23
|
+
horizontal: "min-w-0 flex-col items-center text-center",
|
|
24
|
+
vertical: "flex-row items-start text-left"
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
defaultVariants: {
|
|
28
|
+
orientation: "horizontal"
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
var stepperIndicatorVariants = classVarianceAuthority.cva(
|
|
32
|
+
"grid size-9 shrink-0 place-items-center rounded-full border text-sm font-semibold transition-colors",
|
|
33
|
+
{
|
|
34
|
+
variants: {
|
|
35
|
+
appearance: {
|
|
36
|
+
complete: "border-emerald-500/60 bg-emerald-500/20 text-emerald-100 ring-2 ring-emerald-400/30",
|
|
37
|
+
current: "border-violet-400 bg-violet-500/20 text-white ring-2 ring-violet-400/50",
|
|
38
|
+
upcoming: "border-white/15 bg-white/5 text-slate-400",
|
|
39
|
+
sky: "border-sky-500/60 bg-sky-500/20 text-sky-100 ring-2 ring-sky-400/30",
|
|
40
|
+
rose: "border-rose-500/60 bg-rose-500/20 text-rose-100 ring-2 ring-rose-400/30",
|
|
41
|
+
purple: "border-purple-500/60 bg-purple-500/20 text-purple-100 ring-2 ring-purple-400/30",
|
|
42
|
+
pink: "border-pink-500/60 bg-pink-500/20 text-pink-100 ring-2 ring-pink-400/30",
|
|
43
|
+
orange: "border-orange-500/60 bg-orange-500/20 text-orange-100 ring-2 ring-orange-400/30",
|
|
44
|
+
yellow: "border-yellow-500/60 bg-yellow-500/20 text-yellow-100 ring-2 ring-yellow-400/30",
|
|
45
|
+
teal: "border-teal-500/60 bg-teal-500/20 text-teal-100 ring-2 ring-teal-400/30",
|
|
46
|
+
indigo: "border-indigo-500/60 bg-indigo-500/20 text-indigo-100 ring-2 ring-indigo-400/30",
|
|
47
|
+
emerald: "border-emerald-500/60 bg-emerald-500/20 text-emerald-100 ring-2 ring-emerald-400/30",
|
|
48
|
+
gray: "border-gray-500/60 bg-gray-500/20 text-gray-100 ring-2 ring-gray-400/30",
|
|
49
|
+
violet: "border-violet-500/60 bg-violet-500/20 text-violet-100 ring-2 ring-violet-400/30",
|
|
50
|
+
"gradient-blue": "border-blue-500/60 bg-blue-500/20 text-blue-100 ring-2 ring-blue-400/30",
|
|
51
|
+
"gradient-green": "border-green-500/60 bg-green-500/20 text-green-100 ring-2 ring-green-400/30",
|
|
52
|
+
"gradient-red": "border-red-500/60 bg-red-500/20 text-red-100 ring-2 ring-red-400/30",
|
|
53
|
+
"gradient-yellow": "border-yellow-500/60 bg-yellow-500/20 text-yellow-100 ring-2 ring-yellow-400/30",
|
|
54
|
+
"gradient-purple": "border-purple-500/60 bg-purple-500/20 text-purple-100 ring-2 ring-purple-400/30",
|
|
55
|
+
"gradient-teal": "border-teal-500/60 bg-teal-500/20 text-teal-100 ring-2 ring-teal-400/30",
|
|
56
|
+
"gradient-indigo": "border-indigo-500/60 bg-indigo-500/20 text-indigo-100 ring-2 ring-indigo-400/30",
|
|
57
|
+
"gradient-pink": "border-pink-500/60 bg-pink-500/20 text-pink-100 ring-2 ring-pink-400/30",
|
|
58
|
+
"gradient-orange": "border-orange-500/60 bg-orange-500/20 text-orange-100 ring-2 ring-orange-400/30"
|
|
59
|
+
},
|
|
60
|
+
size: {
|
|
61
|
+
sm: "size-8 text-xs",
|
|
62
|
+
md: "size-9 text-sm",
|
|
63
|
+
lg: "size-10 text-base"
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
defaultVariants: {
|
|
67
|
+
appearance: "upcoming",
|
|
68
|
+
size: "md"
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
);
|
|
72
|
+
var StepperContext = react.createContext(null);
|
|
73
|
+
function useStepper(component) {
|
|
74
|
+
const ctx = react.useContext(StepperContext);
|
|
75
|
+
if (!ctx) {
|
|
76
|
+
throw new Error(`${component} must be used within <Stepper>`);
|
|
77
|
+
}
|
|
78
|
+
return ctx;
|
|
79
|
+
}
|
|
80
|
+
var StepperIndexContext = react.createContext(null);
|
|
81
|
+
function useStepperIndex(component) {
|
|
82
|
+
const index = react.useContext(StepperIndexContext);
|
|
83
|
+
if (index === null) {
|
|
84
|
+
throw new Error(`${component} must be used within <StepperItem>`);
|
|
85
|
+
}
|
|
86
|
+
return index;
|
|
87
|
+
}
|
|
88
|
+
function Stepper({
|
|
89
|
+
className,
|
|
90
|
+
orientation = "horizontal",
|
|
91
|
+
size = "md",
|
|
92
|
+
children,
|
|
93
|
+
ref,
|
|
94
|
+
...rest
|
|
95
|
+
}) {
|
|
96
|
+
const items = react.useMemo(
|
|
97
|
+
() => react.Children.toArray(children).filter(react.isValidElement),
|
|
98
|
+
[children]
|
|
99
|
+
);
|
|
100
|
+
const ctx = react.useMemo(
|
|
101
|
+
() => ({
|
|
102
|
+
orientation: orientation ?? "horizontal",
|
|
103
|
+
size: size ?? "md",
|
|
104
|
+
total: items.length
|
|
105
|
+
}),
|
|
106
|
+
[items.length, orientation, size]
|
|
107
|
+
);
|
|
108
|
+
return /* @__PURE__ */ jsxRuntime.jsx(StepperContext.Provider, { value: ctx, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
109
|
+
"div",
|
|
110
|
+
{
|
|
111
|
+
ref,
|
|
112
|
+
"data-slot": "stepper",
|
|
113
|
+
role: "list",
|
|
114
|
+
className: chunkWZ2GOU2J_js.cn(stepperVariants({ orientation }), className),
|
|
115
|
+
...rest,
|
|
116
|
+
children: items.map((child, index) => /* @__PURE__ */ jsxRuntime.jsx(StepperIndexContext.Provider, { value: index, children: child }, index))
|
|
117
|
+
}
|
|
118
|
+
) });
|
|
119
|
+
}
|
|
120
|
+
Stepper.displayName = "Stepper";
|
|
121
|
+
function StepperItem({
|
|
122
|
+
className,
|
|
123
|
+
ref,
|
|
124
|
+
children,
|
|
125
|
+
...rest
|
|
126
|
+
}) {
|
|
127
|
+
const { orientation } = useStepper("StepperItem");
|
|
128
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
129
|
+
"div",
|
|
130
|
+
{
|
|
131
|
+
ref,
|
|
132
|
+
"data-slot": "stepper-item",
|
|
133
|
+
role: "listitem",
|
|
134
|
+
className: chunkWZ2GOU2J_js.cn(stepperItemVariants({ orientation }), className),
|
|
135
|
+
...rest,
|
|
136
|
+
children
|
|
137
|
+
}
|
|
138
|
+
);
|
|
139
|
+
}
|
|
140
|
+
StepperItem.displayName = "StepperItem";
|
|
141
|
+
function StepperIndicator({
|
|
142
|
+
className,
|
|
143
|
+
ref,
|
|
144
|
+
children,
|
|
145
|
+
appearance,
|
|
146
|
+
...rest
|
|
147
|
+
}) {
|
|
148
|
+
const { size } = useStepper("StepperIndicator");
|
|
149
|
+
const index = useStepperIndex("StepperIndicator");
|
|
150
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
151
|
+
"div",
|
|
152
|
+
{
|
|
153
|
+
ref,
|
|
154
|
+
"data-slot": "stepper-indicator",
|
|
155
|
+
className: chunkWZ2GOU2J_js.cn(stepperIndicatorVariants({ appearance, size }), className),
|
|
156
|
+
...rest,
|
|
157
|
+
children: children ?? index + 1
|
|
158
|
+
}
|
|
159
|
+
);
|
|
160
|
+
}
|
|
161
|
+
StepperIndicator.displayName = "StepperIndicator";
|
|
162
|
+
function StepperTitle({
|
|
163
|
+
className,
|
|
164
|
+
ref,
|
|
165
|
+
...rest
|
|
166
|
+
}) {
|
|
167
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
168
|
+
"div",
|
|
169
|
+
{
|
|
170
|
+
ref,
|
|
171
|
+
"data-slot": "stepper-title",
|
|
172
|
+
className: chunkWZ2GOU2J_js.cn(
|
|
173
|
+
"mt-3 text-sm font-semibold",
|
|
174
|
+
className
|
|
175
|
+
),
|
|
176
|
+
...rest
|
|
177
|
+
}
|
|
178
|
+
);
|
|
179
|
+
}
|
|
180
|
+
StepperTitle.displayName = "StepperTitle";
|
|
181
|
+
function StepperDescription({
|
|
182
|
+
className,
|
|
183
|
+
ref,
|
|
184
|
+
...rest
|
|
185
|
+
}) {
|
|
186
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
187
|
+
"p",
|
|
188
|
+
{
|
|
189
|
+
ref,
|
|
190
|
+
"data-slot": "stepper-description",
|
|
191
|
+
className: chunkWZ2GOU2J_js.cn("mt-1 text-xs text-slate-400", className),
|
|
192
|
+
...rest
|
|
193
|
+
}
|
|
194
|
+
);
|
|
195
|
+
}
|
|
196
|
+
StepperDescription.displayName = "StepperDescription";
|
|
197
|
+
|
|
198
|
+
exports.Stepper = Stepper;
|
|
199
|
+
exports.StepperDescription = StepperDescription;
|
|
200
|
+
exports.StepperIndicator = StepperIndicator;
|
|
201
|
+
exports.StepperItem = StepperItem;
|
|
202
|
+
exports.StepperTitle = StepperTitle;
|
|
203
|
+
exports.stepperIndicatorVariants = stepperIndicatorVariants;
|
|
204
|
+
exports.stepperItemVariants = stepperItemVariants;
|
|
205
|
+
exports.stepperVariants = stepperVariants;
|
|
206
|
+
//# sourceMappingURL=stepper.js.map
|
|
207
|
+
//# sourceMappingURL=stepper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/ui/stepper/variants.ts","../../src/ui/stepper/stepper.tsx"],"names":["cva","createContext","useContext","useMemo","Children","isValidElement","jsx","cn"],"mappings":";;;;;;;AAEO,IAAM,eAAA,GAAkBA,2BAAI,aAAA,EAAe;AAAA,EAChD,QAAA,EAAU;AAAA,IACR,WAAA,EAAa;AAAA,MACX,UAAA,EAAY,sCAAA;AAAA,MACZ,QAAA,EAAU;AAAA;AACZ,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,WAAA,EAAa;AAAA;AAEjB,CAAC;AAEM,IAAM,mBAAA,GAAsBA,2BAAI,qBAAA,EAAuB;AAAA,EAC5D,QAAA,EAAU;AAAA,IACR,WAAA,EAAa;AAAA,MACX,UAAA,EAAY,2CAAA;AAAA,MACZ,QAAA,EAAU;AAAA;AACZ,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,WAAA,EAAa;AAAA;AAEjB,CAAC;AAEM,IAAM,wBAAA,GAA2BA,0BAAA;AAAA,EACtC,qGAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,UAAA,EAAY;AAAA,QACV,QAAA,EACE,qFAAA;AAAA,QACF,OAAA,EACE,yEAAA;AAAA,QACF,QAAA,EAAU,2CAAA;AAAA,QACV,GAAA,EAAK,qEAAA;AAAA,QACL,IAAA,EAAM,yEAAA;AAAA,QACN,MAAA,EAAQ,iFAAA;AAAA,QACR,IAAA,EAAM,yEAAA;AAAA,QACN,MAAA,EAAQ,iFAAA;AAAA,QACR,MAAA,EAAQ,iFAAA;AAAA,QACR,IAAA,EAAM,yEAAA;AAAA,QACN,MAAA,EAAQ,iFAAA;AAAA,QACR,OAAA,EAAS,qFAAA;AAAA,QACT,IAAA,EAAM,yEAAA;AAAA,QACN,MAAA,EAAQ,iFAAA;AAAA,QACR,eAAA,EAAiB,yEAAA;AAAA,QACjB,gBAAA,EAAkB,6EAAA;AAAA,QAClB,cAAA,EAAgB,qEAAA;AAAA,QAChB,iBAAA,EAAmB,iFAAA;AAAA,QACnB,iBAAA,EAAmB,iFAAA;AAAA,QACnB,eAAA,EAAiB,yEAAA;AAAA,QACjB,iBAAA,EAAmB,iFAAA;AAAA,QACnB,eAAA,EAAiB,yEAAA;AAAA,QACjB,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,gBAAA;AAAA,QACJ,EAAA,EAAI,gBAAA;AAAA,QACJ,EAAA,EAAI;AAAA;AACN,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,UAAA,EAAY,UAAA;AAAA,MACZ,IAAA,EAAM;AAAA;AACR;AAEJ;ACxCA,IAAM,cAAA,GAAiBC,oBAAiC,IAAI,CAAA;AAE5D,SAAS,WAAW,SAAA,EAA+B;AACjD,EAAA,MAAM,GAAA,GAAMC,iBAAW,cAAc,CAAA;AACrC,EAAA,IAAI,CAAC,GAAA,EAAK;AACR,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,EAAG,SAAS,CAAA,8BAAA,CAAgC,CAAA;AAAA,EAC9D;AACA,EAAA,OAAO,GAAA;AACT;AAEA,IAAM,mBAAA,GAAsBD,oBAA6B,IAAI,CAAA;AAE7D,SAAS,gBAAgB,SAAA,EAA2B;AAClD,EAAA,MAAM,KAAA,GAAQC,iBAAW,mBAAmB,CAAA;AAC5C,EAAA,IAAI,UAAU,IAAA,EAAM;AAClB,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,EAAG,SAAS,CAAA,kCAAA,CAAoC,CAAA;AAAA,EAClE;AACA,EAAA,OAAO,KAAA;AACT;AAGO,SAAS,OAAA,CAAQ;AAAA,EACtB,SAAA;AAAA,EACA,WAAA,GAAc,YAAA;AAAA,EACd,IAAA,GAAO,IAAA;AAAA,EACP,QAAA;AAAA,EACA,GAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAiD;AAC/C,EAAA,MAAM,KAAA,GAAQC,aAAA;AAAA,IACZ,MAAMC,cAAA,CAAS,OAAA,CAAQ,QAAQ,CAAA,CAAE,OAAOC,oBAAc,CAAA;AAAA,IACtD,CAAC,QAAQ;AAAA,GACX;AACA,EAAA,MAAM,GAAA,GAAMF,aAAA;AAAA,IACV,OAAO;AAAA,MACL,aAAa,WAAA,IAAe,YAAA;AAAA,MAC5B,MAAM,IAAA,IAAQ,IAAA;AAAA,MACd,OAAO,KAAA,CAAM;AAAA,KACf,CAAA;AAAA,IACA,CAAC,KAAA,CAAM,MAAA,EAAQ,WAAA,EAAa,IAAI;AAAA,GAClC;AAEA,EAAA,uBACEG,cAAA,CAAC,cAAA,CAAe,QAAA,EAAf,EAAwB,OAAO,GAAA,EAC9B,QAAA,kBAAAA,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,WAAA,EAAU,SAAA;AAAA,MACV,IAAA,EAAK,MAAA;AAAA,MACL,WAAWC,mBAAA,CAAG,eAAA,CAAgB,EAAE,WAAA,EAAa,GAAG,SAAS,CAAA;AAAA,MACxD,GAAG,IAAA;AAAA,MAEH,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,KAAA,EAAO,KAAA,qBACjBD,cAAA,CAAC,mBAAA,CAAoB,QAAA,EAApB,EAAyC,KAAA,EAAO,KAAA,EAC9C,QAAA,EAAA,KAAA,EAAA,EADgC,KAEnC,CACD;AAAA;AAAA,GACH,EACF,CAAA;AAEJ;AAEA,OAAA,CAAQ,WAAA,GAAc,SAAA;AAEf,SAAS,WAAA,CAAY;AAAA,EAC1B,SAAA;AAAA,EACA,GAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAA2D;AACzD,EAAA,MAAM,EAAE,WAAA,EAAY,GAAI,UAAA,CAAW,aAAa,CAAA;AAChD,EAAA,uBACEA,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,WAAA,EAAU,cAAA;AAAA,MACV,IAAA,EAAK,UAAA;AAAA,MACL,WAAWC,mBAAA,CAAG,mBAAA,CAAoB,EAAE,WAAA,EAAa,GAAG,SAAS,CAAA;AAAA,MAC5D,GAAG,IAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ;AAEA,WAAA,CAAY,WAAA,GAAc,aAAA;AAEnB,SAAS,gBAAA,CAAiB;AAAA,EAC/B,SAAA;AAAA,EACA,GAAA;AAAA,EACA,QAAA;AAAA,EACA,UAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAgE;AAC9D,EAAA,MAAM,EAAE,IAAA,EAAK,GAAI,UAAA,CAAW,kBAAkB,CAAA;AAC9C,EAAA,MAAM,KAAA,GAAQ,gBAAgB,kBAAkB,CAAA;AAChD,EAAA,uBACED,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,WAAA,EAAU,mBAAA;AAAA,MACV,SAAA,EAAWC,oBAAG,wBAAA,CAAyB,EAAE,YAAY,IAAA,EAAM,GAAG,SAAS,CAAA;AAAA,MACtE,GAAG,IAAA;AAAA,MAEH,sBAAY,KAAA,GAAQ;AAAA;AAAA,GACvB;AAEJ;AAEA,gBAAA,CAAiB,WAAA,GAAc,kBAAA;AAExB,SAAS,YAAA,CAAa;AAAA,EAC3B,SAAA;AAAA,EACA,GAAA;AAAA,EACA,GAAG;AACL,CAAA,EAA4D;AAC1D,EAAA,uBACED,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,WAAA,EAAU,eAAA;AAAA,MACV,SAAA,EAAWC,mBAAA;AAAA,QACT,4BAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,YAAA,CAAa,WAAA,GAAc,cAAA;AAEpB,SAAS,kBAAA,CAAmB;AAAA,EACjC,SAAA;AAAA,EACA,GAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAwE;AACtE,EAAA,uBACED,cAAA;AAAA,IAAC,GAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,WAAA,EAAU,qBAAA;AAAA,MACV,SAAA,EAAWC,mBAAA,CAAG,6BAAA,EAA+B,SAAS,CAAA;AAAA,MACrD,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,kBAAA,CAAmB,WAAA,GAAc,oBAAA","file":"stepper.js","sourcesContent":["import { cva } from \"class-variance-authority\";\n\nexport const stepperVariants = cva(\"flex w-full\", {\n variants: {\n orientation: {\n horizontal: \"flex-row flex-wrap items-start gap-4\",\n vertical: \"flex-col gap-6\",\n },\n },\n defaultVariants: {\n orientation: \"horizontal\",\n },\n});\n\nexport const stepperItemVariants = cva(\"relative flex gap-3\", {\n variants: {\n orientation: {\n horizontal: \"min-w-0 flex-col items-center text-center\",\n vertical: \"flex-row items-start text-left\",\n },\n },\n defaultVariants: {\n orientation: \"horizontal\",\n },\n});\n\nexport const stepperIndicatorVariants = cva(\n \"grid size-9 shrink-0 place-items-center rounded-full border text-sm font-semibold transition-colors\",\n {\n variants: {\n appearance: {\n complete:\n \"border-emerald-500/60 bg-emerald-500/20 text-emerald-100 ring-2 ring-emerald-400/30\",\n current:\n \"border-violet-400 bg-violet-500/20 text-white ring-2 ring-violet-400/50\",\n upcoming: \"border-white/15 bg-white/5 text-slate-400\",\n sky: \"border-sky-500/60 bg-sky-500/20 text-sky-100 ring-2 ring-sky-400/30\",\n rose: \"border-rose-500/60 bg-rose-500/20 text-rose-100 ring-2 ring-rose-400/30\",\n purple: \"border-purple-500/60 bg-purple-500/20 text-purple-100 ring-2 ring-purple-400/30\",\n pink: \"border-pink-500/60 bg-pink-500/20 text-pink-100 ring-2 ring-pink-400/30\",\n orange: \"border-orange-500/60 bg-orange-500/20 text-orange-100 ring-2 ring-orange-400/30\",\n yellow: \"border-yellow-500/60 bg-yellow-500/20 text-yellow-100 ring-2 ring-yellow-400/30\",\n teal: \"border-teal-500/60 bg-teal-500/20 text-teal-100 ring-2 ring-teal-400/30\",\n indigo: \"border-indigo-500/60 bg-indigo-500/20 text-indigo-100 ring-2 ring-indigo-400/30\",\n emerald: \"border-emerald-500/60 bg-emerald-500/20 text-emerald-100 ring-2 ring-emerald-400/30\",\n gray: \"border-gray-500/60 bg-gray-500/20 text-gray-100 ring-2 ring-gray-400/30\",\n violet: \"border-violet-500/60 bg-violet-500/20 text-violet-100 ring-2 ring-violet-400/30\",\n \"gradient-blue\": \"border-blue-500/60 bg-blue-500/20 text-blue-100 ring-2 ring-blue-400/30\",\n \"gradient-green\": \"border-green-500/60 bg-green-500/20 text-green-100 ring-2 ring-green-400/30\",\n \"gradient-red\": \"border-red-500/60 bg-red-500/20 text-red-100 ring-2 ring-red-400/30\",\n \"gradient-yellow\": \"border-yellow-500/60 bg-yellow-500/20 text-yellow-100 ring-2 ring-yellow-400/30\",\n \"gradient-purple\": \"border-purple-500/60 bg-purple-500/20 text-purple-100 ring-2 ring-purple-400/30\",\n \"gradient-teal\": \"border-teal-500/60 bg-teal-500/20 text-teal-100 ring-2 ring-teal-400/30\",\n \"gradient-indigo\": \"border-indigo-500/60 bg-indigo-500/20 text-indigo-100 ring-2 ring-indigo-400/30\",\n \"gradient-pink\": \"border-pink-500/60 bg-pink-500/20 text-pink-100 ring-2 ring-pink-400/30\",\n \"gradient-orange\": \"border-orange-500/60 bg-orange-500/20 text-orange-100 ring-2 ring-orange-400/30\",\n },\n size: {\n sm: \"size-8 text-xs\",\n md: \"size-9 text-sm\",\n lg: \"size-10 text-base\",\n },\n },\n defaultVariants: {\n appearance: \"upcoming\",\n size: \"md\",\n },\n },\n);\n","\"use client\";\n\nimport {\n Children,\n createContext,\n isValidElement,\n useContext,\n useMemo,\n type Ref,\n} from \"react\";\n\nimport { cn } from \"../../lib/utils\";\n\nimport type {\n StepperCtx,\n StepperDescriptionProps,\n StepperIndicatorProps,\n StepperItemProps,\n StepperProps,\n StepperTitleProps,\n} from \"./types\";\nimport {\n stepperIndicatorVariants,\n stepperItemVariants,\n stepperVariants,\n} from \"./variants\";\n\n\nconst StepperContext = createContext<StepperCtx | null>(null);\n\nfunction useStepper(component: string): StepperCtx {\n const ctx = useContext(StepperContext);\n if (!ctx) {\n throw new Error(`${component} must be used within <Stepper>`);\n }\n return ctx;\n}\n\nconst StepperIndexContext = createContext<number | null>(null);\n\nfunction useStepperIndex(component: string): number {\n const index = useContext(StepperIndexContext);\n if (index === null) {\n throw new Error(`${component} must be used within <StepperItem>`);\n }\n return index;\n}\n\n\nexport function Stepper({\n className,\n orientation = \"horizontal\",\n size = \"md\",\n children,\n ref,\n ...rest\n}: StepperProps & { ref?: Ref<HTMLDivElement> }) {\n const items = useMemo(\n () => Children.toArray(children).filter(isValidElement),\n [children],\n );\n const ctx = useMemo(\n () => ({\n orientation: orientation ?? \"horizontal\",\n size: size ?? \"md\",\n total: items.length,\n }),\n [items.length, orientation, size],\n );\n\n return (\n <StepperContext.Provider value={ctx}>\n <div\n ref={ref}\n data-slot=\"stepper\"\n role=\"list\"\n className={cn(stepperVariants({ orientation }), className)}\n {...rest}\n >\n {items.map((child, index) => (\n <StepperIndexContext.Provider key={index} value={index}>\n {child}\n </StepperIndexContext.Provider>\n ))}\n </div>\n </StepperContext.Provider>\n );\n}\n\nStepper.displayName = \"Stepper\";\n\nexport function StepperItem({\n className,\n ref,\n children,\n ...rest\n}: StepperItemProps & { ref?: React.Ref<HTMLDivElement> }) {\n const { orientation } = useStepper(\"StepperItem\");\n return (\n <div\n ref={ref}\n data-slot=\"stepper-item\"\n role=\"listitem\"\n className={cn(stepperItemVariants({ orientation }), className)}\n {...rest}\n >\n {children}\n </div>\n );\n}\n\nStepperItem.displayName = \"StepperItem\";\n\nexport function StepperIndicator({\n className,\n ref,\n children,\n appearance,\n ...rest\n}: StepperIndicatorProps & { ref?: React.Ref<HTMLDivElement> }) {\n const { size } = useStepper(\"StepperIndicator\");\n const index = useStepperIndex(\"StepperIndicator\");\n return (\n <div\n ref={ref}\n data-slot=\"stepper-indicator\"\n className={cn(stepperIndicatorVariants({ appearance, size }), className)}\n {...rest}\n >\n {children ?? index + 1}\n </div>\n );\n}\n\nStepperIndicator.displayName = \"StepperIndicator\";\n\nexport function StepperTitle({\n className,\n ref,\n ...rest\n}: StepperTitleProps & { ref?: React.Ref<HTMLDivElement> }) {\n return (\n <div\n ref={ref}\n data-slot=\"stepper-title\"\n className={cn(\n \"mt-3 text-sm font-semibold\",\n className,\n )}\n {...rest}\n />\n );\n}\n\nStepperTitle.displayName = \"StepperTitle\";\n\nexport function StepperDescription({\n className,\n ref,\n ...rest\n}: StepperDescriptionProps & { ref?: React.Ref<HTMLParagraphElement> }) {\n return (\n <p\n ref={ref}\n data-slot=\"stepper-description\"\n className={cn(\"mt-1 text-xs text-slate-400\", className)}\n {...rest}\n />\n );\n}\n\nStepperDescription.displayName = \"StepperDescription\";\n"]}
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn } from '../chunk-B23TPTVG.mjs';
|
|
3
|
+
import { createContext, useMemo, Children, isValidElement, useContext } from 'react';
|
|
4
|
+
import { cva } from 'class-variance-authority';
|
|
5
|
+
import { jsx } from 'react/jsx-runtime';
|
|
6
|
+
|
|
7
|
+
var stepperVariants = cva("flex w-full", {
|
|
8
|
+
variants: {
|
|
9
|
+
orientation: {
|
|
10
|
+
horizontal: "flex-row flex-wrap items-start gap-4",
|
|
11
|
+
vertical: "flex-col gap-6"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
defaultVariants: {
|
|
15
|
+
orientation: "horizontal"
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
var stepperItemVariants = cva("relative flex gap-3", {
|
|
19
|
+
variants: {
|
|
20
|
+
orientation: {
|
|
21
|
+
horizontal: "min-w-0 flex-col items-center text-center",
|
|
22
|
+
vertical: "flex-row items-start text-left"
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
defaultVariants: {
|
|
26
|
+
orientation: "horizontal"
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
var stepperIndicatorVariants = cva(
|
|
30
|
+
"grid size-9 shrink-0 place-items-center rounded-full border text-sm font-semibold transition-colors",
|
|
31
|
+
{
|
|
32
|
+
variants: {
|
|
33
|
+
appearance: {
|
|
34
|
+
complete: "border-emerald-500/60 bg-emerald-500/20 text-emerald-100 ring-2 ring-emerald-400/30",
|
|
35
|
+
current: "border-violet-400 bg-violet-500/20 text-white ring-2 ring-violet-400/50",
|
|
36
|
+
upcoming: "border-white/15 bg-white/5 text-slate-400",
|
|
37
|
+
sky: "border-sky-500/60 bg-sky-500/20 text-sky-100 ring-2 ring-sky-400/30",
|
|
38
|
+
rose: "border-rose-500/60 bg-rose-500/20 text-rose-100 ring-2 ring-rose-400/30",
|
|
39
|
+
purple: "border-purple-500/60 bg-purple-500/20 text-purple-100 ring-2 ring-purple-400/30",
|
|
40
|
+
pink: "border-pink-500/60 bg-pink-500/20 text-pink-100 ring-2 ring-pink-400/30",
|
|
41
|
+
orange: "border-orange-500/60 bg-orange-500/20 text-orange-100 ring-2 ring-orange-400/30",
|
|
42
|
+
yellow: "border-yellow-500/60 bg-yellow-500/20 text-yellow-100 ring-2 ring-yellow-400/30",
|
|
43
|
+
teal: "border-teal-500/60 bg-teal-500/20 text-teal-100 ring-2 ring-teal-400/30",
|
|
44
|
+
indigo: "border-indigo-500/60 bg-indigo-500/20 text-indigo-100 ring-2 ring-indigo-400/30",
|
|
45
|
+
emerald: "border-emerald-500/60 bg-emerald-500/20 text-emerald-100 ring-2 ring-emerald-400/30",
|
|
46
|
+
gray: "border-gray-500/60 bg-gray-500/20 text-gray-100 ring-2 ring-gray-400/30",
|
|
47
|
+
violet: "border-violet-500/60 bg-violet-500/20 text-violet-100 ring-2 ring-violet-400/30",
|
|
48
|
+
"gradient-blue": "border-blue-500/60 bg-blue-500/20 text-blue-100 ring-2 ring-blue-400/30",
|
|
49
|
+
"gradient-green": "border-green-500/60 bg-green-500/20 text-green-100 ring-2 ring-green-400/30",
|
|
50
|
+
"gradient-red": "border-red-500/60 bg-red-500/20 text-red-100 ring-2 ring-red-400/30",
|
|
51
|
+
"gradient-yellow": "border-yellow-500/60 bg-yellow-500/20 text-yellow-100 ring-2 ring-yellow-400/30",
|
|
52
|
+
"gradient-purple": "border-purple-500/60 bg-purple-500/20 text-purple-100 ring-2 ring-purple-400/30",
|
|
53
|
+
"gradient-teal": "border-teal-500/60 bg-teal-500/20 text-teal-100 ring-2 ring-teal-400/30",
|
|
54
|
+
"gradient-indigo": "border-indigo-500/60 bg-indigo-500/20 text-indigo-100 ring-2 ring-indigo-400/30",
|
|
55
|
+
"gradient-pink": "border-pink-500/60 bg-pink-500/20 text-pink-100 ring-2 ring-pink-400/30",
|
|
56
|
+
"gradient-orange": "border-orange-500/60 bg-orange-500/20 text-orange-100 ring-2 ring-orange-400/30"
|
|
57
|
+
},
|
|
58
|
+
size: {
|
|
59
|
+
sm: "size-8 text-xs",
|
|
60
|
+
md: "size-9 text-sm",
|
|
61
|
+
lg: "size-10 text-base"
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
defaultVariants: {
|
|
65
|
+
appearance: "upcoming",
|
|
66
|
+
size: "md"
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
);
|
|
70
|
+
var StepperContext = createContext(null);
|
|
71
|
+
function useStepper(component) {
|
|
72
|
+
const ctx = useContext(StepperContext);
|
|
73
|
+
if (!ctx) {
|
|
74
|
+
throw new Error(`${component} must be used within <Stepper>`);
|
|
75
|
+
}
|
|
76
|
+
return ctx;
|
|
77
|
+
}
|
|
78
|
+
var StepperIndexContext = createContext(null);
|
|
79
|
+
function useStepperIndex(component) {
|
|
80
|
+
const index = useContext(StepperIndexContext);
|
|
81
|
+
if (index === null) {
|
|
82
|
+
throw new Error(`${component} must be used within <StepperItem>`);
|
|
83
|
+
}
|
|
84
|
+
return index;
|
|
85
|
+
}
|
|
86
|
+
function Stepper({
|
|
87
|
+
className,
|
|
88
|
+
orientation = "horizontal",
|
|
89
|
+
size = "md",
|
|
90
|
+
children,
|
|
91
|
+
ref,
|
|
92
|
+
...rest
|
|
93
|
+
}) {
|
|
94
|
+
const items = useMemo(
|
|
95
|
+
() => Children.toArray(children).filter(isValidElement),
|
|
96
|
+
[children]
|
|
97
|
+
);
|
|
98
|
+
const ctx = useMemo(
|
|
99
|
+
() => ({
|
|
100
|
+
orientation: orientation ?? "horizontal",
|
|
101
|
+
size: size ?? "md",
|
|
102
|
+
total: items.length
|
|
103
|
+
}),
|
|
104
|
+
[items.length, orientation, size]
|
|
105
|
+
);
|
|
106
|
+
return /* @__PURE__ */ jsx(StepperContext.Provider, { value: ctx, children: /* @__PURE__ */ jsx(
|
|
107
|
+
"div",
|
|
108
|
+
{
|
|
109
|
+
ref,
|
|
110
|
+
"data-slot": "stepper",
|
|
111
|
+
role: "list",
|
|
112
|
+
className: cn(stepperVariants({ orientation }), className),
|
|
113
|
+
...rest,
|
|
114
|
+
children: items.map((child, index) => /* @__PURE__ */ jsx(StepperIndexContext.Provider, { value: index, children: child }, index))
|
|
115
|
+
}
|
|
116
|
+
) });
|
|
117
|
+
}
|
|
118
|
+
Stepper.displayName = "Stepper";
|
|
119
|
+
function StepperItem({
|
|
120
|
+
className,
|
|
121
|
+
ref,
|
|
122
|
+
children,
|
|
123
|
+
...rest
|
|
124
|
+
}) {
|
|
125
|
+
const { orientation } = useStepper("StepperItem");
|
|
126
|
+
return /* @__PURE__ */ jsx(
|
|
127
|
+
"div",
|
|
128
|
+
{
|
|
129
|
+
ref,
|
|
130
|
+
"data-slot": "stepper-item",
|
|
131
|
+
role: "listitem",
|
|
132
|
+
className: cn(stepperItemVariants({ orientation }), className),
|
|
133
|
+
...rest,
|
|
134
|
+
children
|
|
135
|
+
}
|
|
136
|
+
);
|
|
137
|
+
}
|
|
138
|
+
StepperItem.displayName = "StepperItem";
|
|
139
|
+
function StepperIndicator({
|
|
140
|
+
className,
|
|
141
|
+
ref,
|
|
142
|
+
children,
|
|
143
|
+
appearance,
|
|
144
|
+
...rest
|
|
145
|
+
}) {
|
|
146
|
+
const { size } = useStepper("StepperIndicator");
|
|
147
|
+
const index = useStepperIndex("StepperIndicator");
|
|
148
|
+
return /* @__PURE__ */ jsx(
|
|
149
|
+
"div",
|
|
150
|
+
{
|
|
151
|
+
ref,
|
|
152
|
+
"data-slot": "stepper-indicator",
|
|
153
|
+
className: cn(stepperIndicatorVariants({ appearance, size }), className),
|
|
154
|
+
...rest,
|
|
155
|
+
children: children ?? index + 1
|
|
156
|
+
}
|
|
157
|
+
);
|
|
158
|
+
}
|
|
159
|
+
StepperIndicator.displayName = "StepperIndicator";
|
|
160
|
+
function StepperTitle({
|
|
161
|
+
className,
|
|
162
|
+
ref,
|
|
163
|
+
...rest
|
|
164
|
+
}) {
|
|
165
|
+
return /* @__PURE__ */ jsx(
|
|
166
|
+
"div",
|
|
167
|
+
{
|
|
168
|
+
ref,
|
|
169
|
+
"data-slot": "stepper-title",
|
|
170
|
+
className: cn(
|
|
171
|
+
"mt-3 text-sm font-semibold",
|
|
172
|
+
className
|
|
173
|
+
),
|
|
174
|
+
...rest
|
|
175
|
+
}
|
|
176
|
+
);
|
|
177
|
+
}
|
|
178
|
+
StepperTitle.displayName = "StepperTitle";
|
|
179
|
+
function StepperDescription({
|
|
180
|
+
className,
|
|
181
|
+
ref,
|
|
182
|
+
...rest
|
|
183
|
+
}) {
|
|
184
|
+
return /* @__PURE__ */ jsx(
|
|
185
|
+
"p",
|
|
186
|
+
{
|
|
187
|
+
ref,
|
|
188
|
+
"data-slot": "stepper-description",
|
|
189
|
+
className: cn("mt-1 text-xs text-slate-400", className),
|
|
190
|
+
...rest
|
|
191
|
+
}
|
|
192
|
+
);
|
|
193
|
+
}
|
|
194
|
+
StepperDescription.displayName = "StepperDescription";
|
|
195
|
+
|
|
196
|
+
export { Stepper, StepperDescription, StepperIndicator, StepperItem, StepperTitle, stepperIndicatorVariants, stepperItemVariants, stepperVariants };
|
|
197
|
+
//# sourceMappingURL=stepper.mjs.map
|
|
198
|
+
//# sourceMappingURL=stepper.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/ui/stepper/variants.ts","../../src/ui/stepper/stepper.tsx"],"names":[],"mappings":"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","file":"stepper.mjs","sourcesContent":["import { cva } from \"class-variance-authority\";\n\nexport const stepperVariants = cva(\"flex w-full\", {\n variants: {\n orientation: {\n horizontal: \"flex-row flex-wrap items-start gap-4\",\n vertical: \"flex-col gap-6\",\n },\n },\n defaultVariants: {\n orientation: \"horizontal\",\n },\n});\n\nexport const stepperItemVariants = cva(\"relative flex gap-3\", {\n variants: {\n orientation: {\n horizontal: \"min-w-0 flex-col items-center text-center\",\n vertical: \"flex-row items-start text-left\",\n },\n },\n defaultVariants: {\n orientation: \"horizontal\",\n },\n});\n\nexport const stepperIndicatorVariants = cva(\n \"grid size-9 shrink-0 place-items-center rounded-full border text-sm font-semibold transition-colors\",\n {\n variants: {\n appearance: {\n complete:\n \"border-emerald-500/60 bg-emerald-500/20 text-emerald-100 ring-2 ring-emerald-400/30\",\n current:\n \"border-violet-400 bg-violet-500/20 text-white ring-2 ring-violet-400/50\",\n upcoming: \"border-white/15 bg-white/5 text-slate-400\",\n sky: \"border-sky-500/60 bg-sky-500/20 text-sky-100 ring-2 ring-sky-400/30\",\n rose: \"border-rose-500/60 bg-rose-500/20 text-rose-100 ring-2 ring-rose-400/30\",\n purple: \"border-purple-500/60 bg-purple-500/20 text-purple-100 ring-2 ring-purple-400/30\",\n pink: \"border-pink-500/60 bg-pink-500/20 text-pink-100 ring-2 ring-pink-400/30\",\n orange: \"border-orange-500/60 bg-orange-500/20 text-orange-100 ring-2 ring-orange-400/30\",\n yellow: \"border-yellow-500/60 bg-yellow-500/20 text-yellow-100 ring-2 ring-yellow-400/30\",\n teal: \"border-teal-500/60 bg-teal-500/20 text-teal-100 ring-2 ring-teal-400/30\",\n indigo: \"border-indigo-500/60 bg-indigo-500/20 text-indigo-100 ring-2 ring-indigo-400/30\",\n emerald: \"border-emerald-500/60 bg-emerald-500/20 text-emerald-100 ring-2 ring-emerald-400/30\",\n gray: \"border-gray-500/60 bg-gray-500/20 text-gray-100 ring-2 ring-gray-400/30\",\n violet: \"border-violet-500/60 bg-violet-500/20 text-violet-100 ring-2 ring-violet-400/30\",\n \"gradient-blue\": \"border-blue-500/60 bg-blue-500/20 text-blue-100 ring-2 ring-blue-400/30\",\n \"gradient-green\": \"border-green-500/60 bg-green-500/20 text-green-100 ring-2 ring-green-400/30\",\n \"gradient-red\": \"border-red-500/60 bg-red-500/20 text-red-100 ring-2 ring-red-400/30\",\n \"gradient-yellow\": \"border-yellow-500/60 bg-yellow-500/20 text-yellow-100 ring-2 ring-yellow-400/30\",\n \"gradient-purple\": \"border-purple-500/60 bg-purple-500/20 text-purple-100 ring-2 ring-purple-400/30\",\n \"gradient-teal\": \"border-teal-500/60 bg-teal-500/20 text-teal-100 ring-2 ring-teal-400/30\",\n \"gradient-indigo\": \"border-indigo-500/60 bg-indigo-500/20 text-indigo-100 ring-2 ring-indigo-400/30\",\n \"gradient-pink\": \"border-pink-500/60 bg-pink-500/20 text-pink-100 ring-2 ring-pink-400/30\",\n \"gradient-orange\": \"border-orange-500/60 bg-orange-500/20 text-orange-100 ring-2 ring-orange-400/30\",\n },\n size: {\n sm: \"size-8 text-xs\",\n md: \"size-9 text-sm\",\n lg: \"size-10 text-base\",\n },\n },\n defaultVariants: {\n appearance: \"upcoming\",\n size: \"md\",\n },\n },\n);\n","\"use client\";\n\nimport {\n Children,\n createContext,\n isValidElement,\n useContext,\n useMemo,\n type Ref,\n} from \"react\";\n\nimport { cn } from \"../../lib/utils\";\n\nimport type {\n StepperCtx,\n StepperDescriptionProps,\n StepperIndicatorProps,\n StepperItemProps,\n StepperProps,\n StepperTitleProps,\n} from \"./types\";\nimport {\n stepperIndicatorVariants,\n stepperItemVariants,\n stepperVariants,\n} from \"./variants\";\n\n\nconst StepperContext = createContext<StepperCtx | null>(null);\n\nfunction useStepper(component: string): StepperCtx {\n const ctx = useContext(StepperContext);\n if (!ctx) {\n throw new Error(`${component} must be used within <Stepper>`);\n }\n return ctx;\n}\n\nconst StepperIndexContext = createContext<number | null>(null);\n\nfunction useStepperIndex(component: string): number {\n const index = useContext(StepperIndexContext);\n if (index === null) {\n throw new Error(`${component} must be used within <StepperItem>`);\n }\n return index;\n}\n\n\nexport function Stepper({\n className,\n orientation = \"horizontal\",\n size = \"md\",\n children,\n ref,\n ...rest\n}: StepperProps & { ref?: Ref<HTMLDivElement> }) {\n const items = useMemo(\n () => Children.toArray(children).filter(isValidElement),\n [children],\n );\n const ctx = useMemo(\n () => ({\n orientation: orientation ?? \"horizontal\",\n size: size ?? \"md\",\n total: items.length,\n }),\n [items.length, orientation, size],\n );\n\n return (\n <StepperContext.Provider value={ctx}>\n <div\n ref={ref}\n data-slot=\"stepper\"\n role=\"list\"\n className={cn(stepperVariants({ orientation }), className)}\n {...rest}\n >\n {items.map((child, index) => (\n <StepperIndexContext.Provider key={index} value={index}>\n {child}\n </StepperIndexContext.Provider>\n ))}\n </div>\n </StepperContext.Provider>\n );\n}\n\nStepper.displayName = \"Stepper\";\n\nexport function StepperItem({\n className,\n ref,\n children,\n ...rest\n}: StepperItemProps & { ref?: React.Ref<HTMLDivElement> }) {\n const { orientation } = useStepper(\"StepperItem\");\n return (\n <div\n ref={ref}\n data-slot=\"stepper-item\"\n role=\"listitem\"\n className={cn(stepperItemVariants({ orientation }), className)}\n {...rest}\n >\n {children}\n </div>\n );\n}\n\nStepperItem.displayName = \"StepperItem\";\n\nexport function StepperIndicator({\n className,\n ref,\n children,\n appearance,\n ...rest\n}: StepperIndicatorProps & { ref?: React.Ref<HTMLDivElement> }) {\n const { size } = useStepper(\"StepperIndicator\");\n const index = useStepperIndex(\"StepperIndicator\");\n return (\n <div\n ref={ref}\n data-slot=\"stepper-indicator\"\n className={cn(stepperIndicatorVariants({ appearance, size }), className)}\n {...rest}\n >\n {children ?? index + 1}\n </div>\n );\n}\n\nStepperIndicator.displayName = \"StepperIndicator\";\n\nexport function StepperTitle({\n className,\n ref,\n ...rest\n}: StepperTitleProps & { ref?: React.Ref<HTMLDivElement> }) {\n return (\n <div\n ref={ref}\n data-slot=\"stepper-title\"\n className={cn(\n \"mt-3 text-sm font-semibold\",\n className,\n )}\n {...rest}\n />\n );\n}\n\nStepperTitle.displayName = \"StepperTitle\";\n\nexport function StepperDescription({\n className,\n ref,\n ...rest\n}: StepperDescriptionProps & { ref?: React.Ref<HTMLParagraphElement> }) {\n return (\n <p\n ref={ref}\n data-slot=\"stepper-description\"\n className={cn(\"mt-1 text-xs text-slate-400\", className)}\n {...rest}\n />\n );\n}\n\nStepperDescription.displayName = \"StepperDescription\";\n"]}
|