@grupor5/raya 0.2.1 → 0.2.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.
Files changed (180) hide show
  1. package/README.md +47 -4
  2. package/dist/atoms/avatar/index.d.mts +12 -0
  3. package/dist/atoms/avatar/index.d.ts +12 -0
  4. package/dist/atoms/avatar/index.js +99 -0
  5. package/dist/atoms/avatar/index.mjs +76 -0
  6. package/dist/atoms/badge/index.d.mts +16 -0
  7. package/dist/atoms/badge/index.d.ts +16 -0
  8. package/dist/atoms/badge/index.js +149 -0
  9. package/dist/atoms/badge/index.mjs +146 -0
  10. package/dist/atoms/button/index.d.mts +11 -0
  11. package/dist/atoms/button/index.d.ts +11 -0
  12. package/dist/atoms/button/index.js +307 -0
  13. package/dist/atoms/button/index.mjs +301 -0
  14. package/dist/atoms/checkbox/index.d.mts +6 -0
  15. package/dist/atoms/checkbox/index.d.ts +6 -0
  16. package/dist/atoms/checkbox/index.js +98 -0
  17. package/dist/atoms/checkbox/index.mjs +75 -0
  18. package/dist/atoms/input/index.d.mts +12 -0
  19. package/dist/atoms/input/index.d.ts +12 -0
  20. package/dist/atoms/input/index.js +104 -0
  21. package/dist/atoms/input/index.mjs +82 -0
  22. package/dist/atoms/label/index.d.mts +8 -0
  23. package/dist/atoms/label/index.d.ts +8 -0
  24. package/dist/atoms/label/index.js +77 -0
  25. package/dist/atoms/label/index.mjs +54 -0
  26. package/dist/atoms/radio/index.d.mts +7 -0
  27. package/dist/atoms/radio/index.d.ts +7 -0
  28. package/dist/atoms/radio/index.js +97 -0
  29. package/dist/atoms/radio/index.mjs +73 -0
  30. package/dist/atoms/switch/index.d.mts +6 -0
  31. package/dist/atoms/switch/index.d.ts +6 -0
  32. package/dist/atoms/switch/index.js +97 -0
  33. package/dist/atoms/switch/index.mjs +74 -0
  34. package/dist/atoms/tag/index.d.mts +14 -0
  35. package/dist/atoms/tag/index.d.ts +14 -0
  36. package/dist/atoms/tag/index.js +128 -0
  37. package/dist/atoms/tag/index.mjs +122 -0
  38. package/dist/atoms/textarea/index.d.mts +11 -0
  39. package/dist/atoms/textarea/index.d.ts +11 -0
  40. package/dist/atoms/textarea/index.js +125 -0
  41. package/dist/atoms/textarea/index.mjs +103 -0
  42. package/dist/atoms/typography/index.d.mts +20 -0
  43. package/dist/atoms/typography/index.d.ts +20 -0
  44. package/dist/atoms/typography/index.js +140 -0
  45. package/dist/atoms/typography/index.mjs +115 -0
  46. package/dist/hooks/index.d.mts +1 -0
  47. package/dist/hooks/index.d.ts +1 -0
  48. package/dist/hooks/index.js +17 -0
  49. package/dist/hooks/index.mjs +15 -0
  50. package/dist/hooks/use-pagination.d.mts +10 -0
  51. package/dist/hooks/use-pagination.d.ts +10 -0
  52. package/dist/hooks/use-pagination.js +54 -0
  53. package/dist/hooks/use-pagination.mjs +51 -0
  54. package/dist/hooks/use-toast.d.mts +2 -0
  55. package/dist/hooks/use-toast.d.ts +2 -0
  56. package/dist/hooks/use-toast.js +2 -0
  57. package/dist/hooks/use-toast.mjs +1 -0
  58. package/dist/hooks/useModal.d.mts +7 -0
  59. package/dist/hooks/useModal.d.ts +7 -0
  60. package/dist/hooks/useModal.js +17 -0
  61. package/dist/hooks/useModal.mjs +15 -0
  62. package/dist/index.d.mts +50 -1298
  63. package/dist/index.d.ts +50 -1298
  64. package/dist/molecules/accordion/index.d.mts +17 -0
  65. package/dist/molecules/accordion/index.d.ts +17 -0
  66. package/dist/molecules/accordion/index.js +154 -0
  67. package/dist/molecules/accordion/index.mjs +128 -0
  68. package/dist/molecules/alert/index.d.mts +14 -0
  69. package/dist/molecules/alert/index.d.ts +14 -0
  70. package/dist/molecules/alert/index.js +425 -0
  71. package/dist/molecules/alert/index.mjs +402 -0
  72. package/dist/molecules/card/index.d.mts +10 -0
  73. package/dist/molecules/card/index.d.ts +10 -0
  74. package/dist/molecules/card/index.js +128 -0
  75. package/dist/molecules/card/index.mjs +101 -0
  76. package/dist/molecules/chart/index.d.mts +80 -0
  77. package/dist/molecules/chart/index.d.ts +80 -0
  78. package/dist/molecules/chart/index.js +300 -0
  79. package/dist/molecules/chart/index.mjs +272 -0
  80. package/dist/molecules/data-table/index.d.mts +57 -0
  81. package/dist/molecules/data-table/index.d.ts +57 -0
  82. package/dist/molecules/data-table/index.js +1456 -0
  83. package/dist/molecules/data-table/index.mjs +1430 -0
  84. package/dist/molecules/date-picker/index.d.mts +12 -0
  85. package/dist/molecules/date-picker/index.d.ts +12 -0
  86. package/dist/molecules/date-picker/index.js +756 -0
  87. package/dist/molecules/date-picker/index.mjs +734 -0
  88. package/dist/molecules/dropdown/index.d.mts +21 -0
  89. package/dist/molecules/dropdown/index.d.ts +21 -0
  90. package/dist/molecules/dropdown/index.js +221 -0
  91. package/dist/molecules/dropdown/index.mjs +198 -0
  92. package/dist/molecules/form/index.d.mts +19 -0
  93. package/dist/molecules/form/index.d.ts +19 -0
  94. package/dist/molecules/form/index.js +139 -0
  95. package/dist/molecules/form/index.mjs +114 -0
  96. package/dist/molecules/pagination/index.d.mts +15 -0
  97. package/dist/molecules/pagination/index.d.ts +15 -0
  98. package/dist/molecules/pagination/index.js +605 -0
  99. package/dist/molecules/pagination/index.mjs +583 -0
  100. package/dist/molecules/progress-bar/index.d.mts +15 -0
  101. package/dist/molecules/progress-bar/index.d.ts +15 -0
  102. package/dist/molecules/progress-bar/index.js +166 -0
  103. package/dist/molecules/progress-bar/index.mjs +144 -0
  104. package/dist/molecules/select/index.d.mts +15 -0
  105. package/dist/molecules/select/index.d.ts +15 -0
  106. package/dist/molecules/select/index.js +201 -0
  107. package/dist/molecules/select/index.mjs +169 -0
  108. package/dist/molecules/stepper/index.d.mts +67 -0
  109. package/dist/molecules/stepper/index.d.ts +67 -0
  110. package/dist/molecules/stepper/index.js +287 -0
  111. package/dist/molecules/stepper/index.mjs +260 -0
  112. package/dist/molecules/tabs/index.d.mts +9 -0
  113. package/dist/molecules/tabs/index.d.ts +9 -0
  114. package/dist/molecules/tabs/index.js +112 -0
  115. package/dist/molecules/tabs/index.mjs +86 -0
  116. package/dist/tokens/badge.d.mts +39 -0
  117. package/dist/tokens/badge.d.ts +39 -0
  118. package/dist/tokens/badge.js +61 -0
  119. package/dist/tokens/badge.mjs +59 -0
  120. package/dist/tokens/buttons.d.mts +277 -0
  121. package/dist/tokens/buttons.d.ts +277 -0
  122. package/dist/tokens/buttons.js +191 -0
  123. package/dist/tokens/buttons.mjs +173 -0
  124. package/dist/tokens/colors.d.mts +65 -0
  125. package/dist/tokens/colors.d.ts +65 -0
  126. package/dist/tokens/colors.js +68 -0
  127. package/dist/tokens/colors.mjs +66 -0
  128. package/dist/tokens/effects.d.mts +124 -0
  129. package/dist/tokens/effects.d.ts +124 -0
  130. package/dist/tokens/effects.js +130 -0
  131. package/dist/tokens/effects.mjs +115 -0
  132. package/dist/tokens/grids.d.mts +331 -0
  133. package/dist/tokens/grids.d.ts +331 -0
  134. package/dist/tokens/grids.js +305 -0
  135. package/dist/tokens/grids.mjs +292 -0
  136. package/dist/tokens/icons.d.mts +134 -0
  137. package/dist/tokens/icons.d.ts +134 -0
  138. package/dist/tokens/icons.js +108 -0
  139. package/dist/tokens/icons.mjs +97 -0
  140. package/dist/tokens/index.d.mts +6 -0
  141. package/dist/tokens/index.d.ts +6 -0
  142. package/dist/tokens/index.js +775 -0
  143. package/dist/tokens/index.mjs +743 -0
  144. package/dist/tokens/progress-bar.d.mts +31 -0
  145. package/dist/tokens/progress-bar.d.ts +31 -0
  146. package/dist/tokens/progress-bar.js +70 -0
  147. package/dist/tokens/progress-bar.mjs +68 -0
  148. package/dist/tokens/spacing.d.mts +90 -0
  149. package/dist/tokens/spacing.d.ts +90 -0
  150. package/dist/tokens/spacing.js +120 -0
  151. package/dist/tokens/spacing.mjs +109 -0
  152. package/dist/tokens/stroke.d.mts +292 -0
  153. package/dist/tokens/stroke.d.ts +292 -0
  154. package/dist/tokens/stroke.js +202 -0
  155. package/dist/tokens/stroke.mjs +186 -0
  156. package/dist/tokens/tab.d.mts +31 -0
  157. package/dist/tokens/tab.d.ts +31 -0
  158. package/dist/tokens/tab.js +48 -0
  159. package/dist/tokens/tab.mjs +46 -0
  160. package/dist/tokens/tag.d.mts +53 -0
  161. package/dist/tokens/tag.d.ts +53 -0
  162. package/dist/tokens/tag.js +80 -0
  163. package/dist/tokens/tag.mjs +78 -0
  164. package/dist/tokens/typography.d.mts +394 -0
  165. package/dist/tokens/typography.d.ts +394 -0
  166. package/dist/tokens/typography.js +302 -0
  167. package/dist/tokens/typography.mjs +292 -0
  168. package/dist/utils/classNames.d.mts +3 -0
  169. package/dist/utils/classNames.d.ts +3 -0
  170. package/dist/utils/classNames.js +8 -0
  171. package/dist/utils/classNames.mjs +6 -0
  172. package/dist/utils/cn.d.mts +5 -0
  173. package/dist/utils/cn.d.ts +5 -0
  174. package/dist/utils/cn.js +11 -0
  175. package/dist/utils/cn.mjs +9 -0
  176. package/dist/utils/index.d.mts +3 -0
  177. package/dist/utils/index.d.ts +3 -0
  178. package/dist/utils/index.js +15 -0
  179. package/dist/utils/index.mjs +12 -0
  180. package/package.json +34 -1
@@ -0,0 +1,169 @@
1
+ import * as React from 'react';
2
+ import * as SelectPrimitive from '@radix-ui/react-select';
3
+ import { clsx } from 'clsx';
4
+ import { twMerge } from 'tailwind-merge';
5
+ import { ChevronDownIcon, ChevronUpIcon, CheckIcon } from '@radix-ui/react-icons';
6
+ import { jsxs, jsx } from 'react/jsx-runtime';
7
+
8
+ var __defProp = Object.defineProperty;
9
+ var __defProps = Object.defineProperties;
10
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
11
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
12
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
13
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
14
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
15
+ var __spreadValues = (a, b) => {
16
+ for (var prop in b || (b = {}))
17
+ if (__hasOwnProp.call(b, prop))
18
+ __defNormalProp(a, prop, b[prop]);
19
+ if (__getOwnPropSymbols)
20
+ for (var prop of __getOwnPropSymbols(b)) {
21
+ if (__propIsEnum.call(b, prop))
22
+ __defNormalProp(a, prop, b[prop]);
23
+ }
24
+ return a;
25
+ };
26
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
27
+ var __objRest = (source, exclude) => {
28
+ var target = {};
29
+ for (var prop in source)
30
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
31
+ target[prop] = source[prop];
32
+ if (source != null && __getOwnPropSymbols)
33
+ for (var prop of __getOwnPropSymbols(source)) {
34
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
35
+ target[prop] = source[prop];
36
+ }
37
+ return target;
38
+ };
39
+ function cn(...inputs) {
40
+ return twMerge(clsx(inputs));
41
+ }
42
+ var Select = SelectPrimitive.Root;
43
+ var SelectGroup = SelectPrimitive.Group;
44
+ var SelectValue = SelectPrimitive.Value;
45
+ var SelectTrigger = React.forwardRef((_a, ref) => {
46
+ var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
47
+ return /* @__PURE__ */ jsxs(
48
+ SelectPrimitive.Trigger,
49
+ __spreadProps(__spreadValues({
50
+ ref,
51
+ className: cn(
52
+ "flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background data-[placeholder]:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",
53
+ className
54
+ )
55
+ }, props), {
56
+ children: [
57
+ children,
58
+ /* @__PURE__ */ jsx(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx(ChevronDownIcon, { className: "h-4 w-4 opacity-50" }) })
59
+ ]
60
+ })
61
+ );
62
+ });
63
+ SelectTrigger.displayName = SelectPrimitive.Trigger.displayName;
64
+ var SelectScrollUpButton = React.forwardRef((_a, ref) => {
65
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
66
+ return /* @__PURE__ */ jsx(
67
+ SelectPrimitive.ScrollUpButton,
68
+ __spreadProps(__spreadValues({
69
+ ref,
70
+ className: cn(
71
+ "flex cursor-default items-center justify-center py-1",
72
+ className
73
+ )
74
+ }, props), {
75
+ children: /* @__PURE__ */ jsx(ChevronUpIcon, { className: "h-4 w-4" })
76
+ })
77
+ );
78
+ });
79
+ SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;
80
+ var SelectScrollDownButton = React.forwardRef((_a, ref) => {
81
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
82
+ return /* @__PURE__ */ jsx(
83
+ SelectPrimitive.ScrollDownButton,
84
+ __spreadProps(__spreadValues({
85
+ ref,
86
+ className: cn(
87
+ "flex cursor-default items-center justify-center py-1",
88
+ className
89
+ )
90
+ }, props), {
91
+ children: /* @__PURE__ */ jsx(ChevronDownIcon, { className: "h-4 w-4" })
92
+ })
93
+ );
94
+ });
95
+ SelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;
96
+ var SelectContent = React.forwardRef((_a, ref) => {
97
+ var _b = _a, { className, children, position = "popper" } = _b, props = __objRest(_b, ["className", "children", "position"]);
98
+ return /* @__PURE__ */ jsx(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs(
99
+ SelectPrimitive.Content,
100
+ __spreadProps(__spreadValues({
101
+ ref,
102
+ className: cn(
103
+ "relative z-50 max-h-[--radix-select-content-available-height] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-select-content-transform-origin]",
104
+ position === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
105
+ className
106
+ ),
107
+ position
108
+ }, props), {
109
+ children: [
110
+ /* @__PURE__ */ jsx(SelectScrollUpButton, {}),
111
+ /* @__PURE__ */ jsx(
112
+ SelectPrimitive.Viewport,
113
+ {
114
+ className: cn(
115
+ "p-1",
116
+ position === "popper" && "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"
117
+ ),
118
+ children
119
+ }
120
+ ),
121
+ /* @__PURE__ */ jsx(SelectScrollDownButton, {})
122
+ ]
123
+ })
124
+ ) });
125
+ });
126
+ SelectContent.displayName = SelectPrimitive.Content.displayName;
127
+ var SelectLabel = React.forwardRef((_a, ref) => {
128
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
129
+ return /* @__PURE__ */ jsx(
130
+ SelectPrimitive.Label,
131
+ __spreadValues({
132
+ ref,
133
+ className: cn("px-2 py-1.5 text-sm font-semibold", className)
134
+ }, props)
135
+ );
136
+ });
137
+ SelectLabel.displayName = SelectPrimitive.Label.displayName;
138
+ var SelectItem = React.forwardRef((_a, ref) => {
139
+ var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
140
+ return /* @__PURE__ */ jsxs(
141
+ SelectPrimitive.Item,
142
+ __spreadProps(__spreadValues({
143
+ ref,
144
+ className: cn(
145
+ "relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
146
+ className
147
+ )
148
+ }, props), {
149
+ children: [
150
+ /* @__PURE__ */ jsx("span", { className: "absolute right-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(CheckIcon, { className: "h-4 w-4" }) }) }),
151
+ /* @__PURE__ */ jsx(SelectPrimitive.ItemText, { children })
152
+ ]
153
+ })
154
+ );
155
+ });
156
+ SelectItem.displayName = SelectPrimitive.Item.displayName;
157
+ var SelectSeparator = React.forwardRef((_a, ref) => {
158
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
159
+ return /* @__PURE__ */ jsx(
160
+ SelectPrimitive.Separator,
161
+ __spreadValues({
162
+ ref,
163
+ className: cn("-mx-1 my-1 h-px bg-muted", className)
164
+ }, props)
165
+ );
166
+ });
167
+ SelectSeparator.displayName = SelectPrimitive.Separator.displayName;
168
+
169
+ export { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue };
@@ -0,0 +1,67 @@
1
+ import * as class_variance_authority_dist_types from 'class-variance-authority/dist/types';
2
+ import * as React from 'react';
3
+ import { VariantProps } from 'class-variance-authority';
4
+
5
+ type StepStatus = 'completed' | 'current' | 'upcoming';
6
+ interface StepperContextValue {
7
+ activeStep: number;
8
+ orientation: 'horizontal' | 'vertical';
9
+ steps: {
10
+ status: StepStatus;
11
+ }[];
12
+ stepCount: number;
13
+ }
14
+ declare const useStepper: () => StepperContextValue;
15
+ interface StepperAPI {
16
+ goToNextStep: () => void;
17
+ goToPrevStep: () => void;
18
+ activeStep: number;
19
+ }
20
+ /**
21
+ * A container for all the steps.
22
+ * @param {number} initialStep - The initial step to be active.
23
+ * @param {'horizontal' | 'vertical'} orientation - The orientation of the stepper.
24
+ * @param {function} onStepChange - A callback for when the step changes.
25
+ * @param {object[]} steps - An array of objects that represent each step.
26
+ * @param {string} steps[].label - The label of the step.
27
+ * @param {string} steps[].description - The description of the step.
28
+ * @param {React.ReactNode} steps[].content - The content of the step.
29
+ * @example
30
+ * <Stepper
31
+ * initialStep={0}
32
+ * steps={[
33
+ * {
34
+ * label: 'Step 1',
35
+ * description: 'Create an account',
36
+ * content: <div>Step 1 content</div>,
37
+ * },
38
+ * {
39
+ * label: 'Step 2',
40
+ * description: 'Personal Information',
41
+ * content: <div>Step 2 content</div>,
42
+ * },
43
+ * ]}
44
+ * />
45
+ */
46
+ declare const Stepper: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<HTMLDivElement>, "onChange"> & {
47
+ initialStep?: number;
48
+ orientation?: "horizontal" | "vertical";
49
+ onStepChange?: (step: number) => void;
50
+ steps: {
51
+ label: string;
52
+ description?: string;
53
+ content: React.ReactNode;
54
+ }[];
55
+ } & React.RefAttributes<StepperAPI>>;
56
+ declare const Step: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & {
57
+ index: number;
58
+ } & VariantProps<(props?: ({
59
+ status?: "current" | "completed" | "upcoming" | null | undefined;
60
+ } & class_variance_authority_dist_types.ClassProp) | undefined) => string> & React.RefAttributes<HTMLDivElement>>;
61
+ declare const StepLabel: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
62
+ declare const StepDescription: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
63
+ declare const StepContent: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & {
64
+ index: number;
65
+ } & React.RefAttributes<HTMLDivElement>>;
66
+
67
+ export { Step, StepContent, StepDescription, StepLabel, Stepper, type StepperAPI, useStepper };
@@ -0,0 +1,67 @@
1
+ import * as class_variance_authority_dist_types from 'class-variance-authority/dist/types';
2
+ import * as React from 'react';
3
+ import { VariantProps } from 'class-variance-authority';
4
+
5
+ type StepStatus = 'completed' | 'current' | 'upcoming';
6
+ interface StepperContextValue {
7
+ activeStep: number;
8
+ orientation: 'horizontal' | 'vertical';
9
+ steps: {
10
+ status: StepStatus;
11
+ }[];
12
+ stepCount: number;
13
+ }
14
+ declare const useStepper: () => StepperContextValue;
15
+ interface StepperAPI {
16
+ goToNextStep: () => void;
17
+ goToPrevStep: () => void;
18
+ activeStep: number;
19
+ }
20
+ /**
21
+ * A container for all the steps.
22
+ * @param {number} initialStep - The initial step to be active.
23
+ * @param {'horizontal' | 'vertical'} orientation - The orientation of the stepper.
24
+ * @param {function} onStepChange - A callback for when the step changes.
25
+ * @param {object[]} steps - An array of objects that represent each step.
26
+ * @param {string} steps[].label - The label of the step.
27
+ * @param {string} steps[].description - The description of the step.
28
+ * @param {React.ReactNode} steps[].content - The content of the step.
29
+ * @example
30
+ * <Stepper
31
+ * initialStep={0}
32
+ * steps={[
33
+ * {
34
+ * label: 'Step 1',
35
+ * description: 'Create an account',
36
+ * content: <div>Step 1 content</div>,
37
+ * },
38
+ * {
39
+ * label: 'Step 2',
40
+ * description: 'Personal Information',
41
+ * content: <div>Step 2 content</div>,
42
+ * },
43
+ * ]}
44
+ * />
45
+ */
46
+ declare const Stepper: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<HTMLDivElement>, "onChange"> & {
47
+ initialStep?: number;
48
+ orientation?: "horizontal" | "vertical";
49
+ onStepChange?: (step: number) => void;
50
+ steps: {
51
+ label: string;
52
+ description?: string;
53
+ content: React.ReactNode;
54
+ }[];
55
+ } & React.RefAttributes<StepperAPI>>;
56
+ declare const Step: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & {
57
+ index: number;
58
+ } & VariantProps<(props?: ({
59
+ status?: "current" | "completed" | "upcoming" | null | undefined;
60
+ } & class_variance_authority_dist_types.ClassProp) | undefined) => string> & React.RefAttributes<HTMLDivElement>>;
61
+ declare const StepLabel: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
62
+ declare const StepDescription: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
63
+ declare const StepContent: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & {
64
+ index: number;
65
+ } & React.RefAttributes<HTMLDivElement>>;
66
+
67
+ export { Step, StepContent, StepDescription, StepLabel, Stepper, type StepperAPI, useStepper };
@@ -0,0 +1,287 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var classVarianceAuthority = require('class-variance-authority');
5
+ var clsx = require('clsx');
6
+ var tailwindMerge = require('tailwind-merge');
7
+ var jsxRuntime = require('react/jsx-runtime');
8
+
9
+ function _interopNamespace(e) {
10
+ if (e && e.__esModule) return e;
11
+ var n = Object.create(null);
12
+ if (e) {
13
+ Object.keys(e).forEach(function (k) {
14
+ if (k !== 'default') {
15
+ var d = Object.getOwnPropertyDescriptor(e, k);
16
+ Object.defineProperty(n, k, d.get ? d : {
17
+ enumerable: true,
18
+ get: function () { return e[k]; }
19
+ });
20
+ }
21
+ });
22
+ }
23
+ n.default = e;
24
+ return Object.freeze(n);
25
+ }
26
+
27
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
28
+
29
+ var __defProp = Object.defineProperty;
30
+ var __defProps = Object.defineProperties;
31
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
32
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
33
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
34
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
35
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
36
+ var __spreadValues = (a, b) => {
37
+ for (var prop in b || (b = {}))
38
+ if (__hasOwnProp.call(b, prop))
39
+ __defNormalProp(a, prop, b[prop]);
40
+ if (__getOwnPropSymbols)
41
+ for (var prop of __getOwnPropSymbols(b)) {
42
+ if (__propIsEnum.call(b, prop))
43
+ __defNormalProp(a, prop, b[prop]);
44
+ }
45
+ return a;
46
+ };
47
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
48
+ var __objRest = (source, exclude) => {
49
+ var target = {};
50
+ for (var prop in source)
51
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
52
+ target[prop] = source[prop];
53
+ if (source != null && __getOwnPropSymbols)
54
+ for (var prop of __getOwnPropSymbols(source)) {
55
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
56
+ target[prop] = source[prop];
57
+ }
58
+ return target;
59
+ };
60
+ function cn(...inputs) {
61
+ return tailwindMerge.twMerge(clsx.clsx(inputs));
62
+ }
63
+ var StepperContext = React__namespace.createContext(null);
64
+ var useStepper = () => {
65
+ const context = React__namespace.useContext(StepperContext);
66
+ if (!context) {
67
+ throw new Error("useStepper must be used within a Stepper component");
68
+ }
69
+ return context;
70
+ };
71
+ var Stepper = React__namespace.forwardRef(
72
+ (_a, ref) => {
73
+ var _b = _a, {
74
+ className,
75
+ initialStep = 0,
76
+ orientation = "horizontal",
77
+ steps,
78
+ onStepChange
79
+ } = _b, props = __objRest(_b, [
80
+ "className",
81
+ "initialStep",
82
+ "orientation",
83
+ "steps",
84
+ "onStepChange"
85
+ ]);
86
+ var _a2;
87
+ const [activeStep, setActiveStep] = React__namespace.useState(initialStep);
88
+ React__namespace.useImperativeHandle(ref, () => ({
89
+ goToNextStep: () => {
90
+ setActiveStep((prev) => {
91
+ const nextStep = prev < steps.length - 1 ? prev + 1 : prev;
92
+ onStepChange == null ? void 0 : onStepChange(nextStep);
93
+ return nextStep;
94
+ });
95
+ },
96
+ goToPrevStep: () => {
97
+ setActiveStep((prev) => {
98
+ const prevStep = prev > 0 ? prev - 1 : prev;
99
+ onStepChange == null ? void 0 : onStepChange(prevStep);
100
+ return prevStep;
101
+ });
102
+ },
103
+ activeStep
104
+ }));
105
+ const stepStatuses = React__namespace.useMemo(() => {
106
+ return steps.map((_, index) => {
107
+ if (index < activeStep) return { status: "completed" };
108
+ if (index === activeStep) return { status: "current" };
109
+ return { status: "upcoming" };
110
+ });
111
+ }, [activeStep, steps]);
112
+ const contextValue = React__namespace.useMemo(
113
+ () => ({
114
+ activeStep,
115
+ orientation,
116
+ steps: stepStatuses,
117
+ stepCount: steps.length
118
+ }),
119
+ [activeStep, orientation, stepStatuses, steps.length]
120
+ );
121
+ return /* @__PURE__ */ jsxRuntime.jsxs(StepperContext.Provider, { value: contextValue, children: [
122
+ /* @__PURE__ */ jsxRuntime.jsx(
123
+ "div",
124
+ __spreadProps(__spreadValues({
125
+ className: cn(
126
+ "flex w-full items-start font-sans",
127
+ orientation === "vertical" ? "flex-col" : "justify-between",
128
+ className
129
+ )
130
+ }, props), {
131
+ children: steps.map((step, index) => /* @__PURE__ */ jsxRuntime.jsx(Step, { index, children: /* @__PURE__ */ jsxRuntime.jsxs(
132
+ "div",
133
+ {
134
+ className: cn(
135
+ orientation === "horizontal" ? "mt-2 text-center" : "ml-4 text-left"
136
+ ),
137
+ children: [
138
+ /* @__PURE__ */ jsxRuntime.jsx(StepLabel, { children: step.label }),
139
+ step.description && /* @__PURE__ */ jsxRuntime.jsx(StepDescription, { children: step.description })
140
+ ]
141
+ }
142
+ ) }, index))
143
+ })
144
+ ),
145
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-8 font-sans", children: ((_a2 = steps[activeStep]) == null ? void 0 : _a2.content) && /* @__PURE__ */ jsxRuntime.jsx(StepContent, { index: activeStep, children: steps[activeStep].content }) })
146
+ ] });
147
+ }
148
+ );
149
+ Stepper.displayName = "Stepper";
150
+ var stepVariants = classVarianceAuthority.cva(
151
+ "relative flex flex-col items-center justify-start flex-1",
152
+ {
153
+ variants: {
154
+ status: {
155
+ completed: "",
156
+ current: "",
157
+ upcoming: ""
158
+ }
159
+ }
160
+ }
161
+ );
162
+ var connectorVariants = classVarianceAuthority.cva("", {
163
+ variants: {
164
+ status: {
165
+ completed: "bg-green-600",
166
+ current: "bg-secondary-600",
167
+ upcoming: "bg-neutral-300"
168
+ }
169
+ },
170
+ defaultVariants: {
171
+ status: "upcoming"
172
+ }
173
+ });
174
+ var Step = React__namespace.forwardRef(({ className, children, index }, ref) => {
175
+ const { steps, stepCount, orientation } = useStepper();
176
+ const status = steps[index].status;
177
+ const isFirst = index === 0;
178
+ const prevStatus = isFirst ? "upcoming" : steps[index - 1].status;
179
+ if (orientation === "vertical") {
180
+ return /* @__PURE__ */ jsxRuntime.jsxs(
181
+ "div",
182
+ {
183
+ ref,
184
+ className: cn("flex flex-1 items-start gap-4", className),
185
+ children: [
186
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center", children: [
187
+ /* @__PURE__ */ jsxRuntime.jsx(
188
+ "div",
189
+ {
190
+ className: cn(
191
+ "h-2.5 w-0.5",
192
+ connectorVariants({ status: prevStatus })
193
+ )
194
+ }
195
+ ),
196
+ /* @__PURE__ */ jsxRuntime.jsx(
197
+ "div",
198
+ {
199
+ className: cn(
200
+ "relative z-10 flex h-10 w-10 shrink-0 items-center justify-center rounded-full border-2 font-semibold shadow-[0_0_0_8px_white]",
201
+ status === "completed" && "border-green-600 bg-white text-green-600",
202
+ status === "current" && "border-secondary-600 bg-white text-secondary-600",
203
+ status === "upcoming" && "border-neutral-300 bg-white text-neutral-400"
204
+ ),
205
+ children: /* @__PURE__ */ jsxRuntime.jsx("span", { children: String(index + 1).padStart(2, "0") })
206
+ }
207
+ ),
208
+ /* @__PURE__ */ jsxRuntime.jsx(
209
+ "div",
210
+ {
211
+ className: cn(
212
+ "h-full min-h-12 w-0.5 grow",
213
+ connectorVariants({ status })
214
+ )
215
+ }
216
+ )
217
+ ] }),
218
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-2.5", children })
219
+ ]
220
+ }
221
+ );
222
+ }
223
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref, className: cn(stepVariants({ status }), className), children: [
224
+ /* @__PURE__ */ jsxRuntime.jsx(
225
+ "div",
226
+ {
227
+ className: cn(
228
+ "absolute top-5 left-0 w-1/2 h-0.5",
229
+ connectorVariants({ status })
230
+ )
231
+ }
232
+ ),
233
+ /* @__PURE__ */ jsxRuntime.jsx(
234
+ "div",
235
+ {
236
+ className: cn(
237
+ "absolute top-5 right-0 w-1/2 h-0.5",
238
+ connectorVariants({ status })
239
+ )
240
+ }
241
+ ),
242
+ /* @__PURE__ */ jsxRuntime.jsx(
243
+ "div",
244
+ {
245
+ className: cn(
246
+ "relative z-10 flex h-10 w-10 shrink-0 items-center justify-center rounded-full border-2 font-semibold shadow-[0_0_0_8px_white]",
247
+ status === "completed" && "border-green-600 bg-white text-green-600",
248
+ status === "current" && "border-secondary-600 bg-white text-secondary-600",
249
+ status === "upcoming" && "border-neutral-300 bg-white text-neutral-400"
250
+ ),
251
+ children: /* @__PURE__ */ jsxRuntime.jsx("span", { children: String(index + 1).padStart(2, "0") })
252
+ }
253
+ ),
254
+ children
255
+ ] });
256
+ });
257
+ Step.displayName = "Step";
258
+ var StepLabel = React__namespace.forwardRef((_a, ref) => {
259
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
260
+ return /* @__PURE__ */ jsxRuntime.jsx("p", __spreadValues({ ref, className: cn("text-lg font-normal", className) }, props));
261
+ });
262
+ StepLabel.displayName = "StepLabel";
263
+ var StepDescription = React__namespace.forwardRef((_a, ref) => {
264
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
265
+ return /* @__PURE__ */ jsxRuntime.jsx(
266
+ "p",
267
+ __spreadValues({
268
+ ref,
269
+ className: cn("text-sm font-normal text-primary-700", className)
270
+ }, props)
271
+ );
272
+ });
273
+ StepDescription.displayName = "StepDescription";
274
+ var StepContent = React__namespace.forwardRef((_a, ref) => {
275
+ var _b = _a, { className, index, children } = _b, props = __objRest(_b, ["className", "index", "children"]);
276
+ const { activeStep } = useStepper();
277
+ if (activeStep !== index) return null;
278
+ return /* @__PURE__ */ jsxRuntime.jsx("div", __spreadProps(__spreadValues({ ref, className: cn("w-full", className) }, props), { children }));
279
+ });
280
+ StepContent.displayName = "StepContent";
281
+
282
+ exports.Step = Step;
283
+ exports.StepContent = StepContent;
284
+ exports.StepDescription = StepDescription;
285
+ exports.StepLabel = StepLabel;
286
+ exports.Stepper = Stepper;
287
+ exports.useStepper = useStepper;