luaniverse 4.2.23 → 4.2.25

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/dist/index.d.cts CHANGED
@@ -12,8 +12,9 @@ import * as PopoverPrimitive from '@radix-ui/react-popover';
12
12
  import * as tailwindcss from 'tailwindcss';
13
13
 
14
14
  declare const buttonVariants: (props?: ({
15
- variant?: "default" | "primary" | "outline" | "tertiary" | "secondary" | "muted" | "destructive" | null | undefined;
16
- size?: "small" | "default" | "large" | null | undefined;
15
+ variant?: "default" | "brand" | "outline" | "tertiary" | "secondary" | "muted" | "destructive" | null | undefined;
16
+ size?: "sm" | "md" | "lg" | null | undefined;
17
+ shape?: "rounded" | "rectangle" | null | undefined;
17
18
  hasStartAdornment?: boolean | null | undefined;
18
19
  hasEndAdornment?: boolean | null | undefined;
19
20
  } & class_variance_authority_types.ClassProp) | undefined) => string;
@@ -48,9 +49,9 @@ declare const IconButton: React.ForwardRefExoticComponent<IconButtonProps & Reac
48
49
 
49
50
  declare const iconButtonVariants: {
50
51
  size: {
51
- small: string;
52
- default: string;
53
- large: string;
52
+ sm: string;
53
+ md: string;
54
+ lg: string;
54
55
  };
55
56
  };
56
57
 
@@ -77,7 +78,7 @@ declare const AlertTitle: React.ForwardRefExoticComponent<Omit<React.DetailedHTM
77
78
  declare const AlertDescription: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
78
79
 
79
80
  declare const badgeVariants: (props?: ({
80
- variant?: "default" | "primary" | "outline" | "secondary" | "destructive" | "success" | "warning" | null | undefined;
81
+ variant?: "default" | "outline" | "secondary" | "destructive" | "success" | "warning" | "primary" | null | undefined;
81
82
  } & class_variance_authority_types.ClassProp) | undefined) => string;
82
83
 
83
84
  interface BadgeProps extends React.ComponentProps<'span'>, VariantProps<typeof badgeVariants> {
package/dist/index.d.ts CHANGED
@@ -12,8 +12,9 @@ import * as PopoverPrimitive from '@radix-ui/react-popover';
12
12
  import * as tailwindcss from 'tailwindcss';
13
13
 
14
14
  declare const buttonVariants: (props?: ({
15
- variant?: "default" | "primary" | "outline" | "tertiary" | "secondary" | "muted" | "destructive" | null | undefined;
16
- size?: "small" | "default" | "large" | null | undefined;
15
+ variant?: "default" | "brand" | "outline" | "tertiary" | "secondary" | "muted" | "destructive" | null | undefined;
16
+ size?: "sm" | "md" | "lg" | null | undefined;
17
+ shape?: "rounded" | "rectangle" | null | undefined;
17
18
  hasStartAdornment?: boolean | null | undefined;
18
19
  hasEndAdornment?: boolean | null | undefined;
19
20
  } & class_variance_authority_types.ClassProp) | undefined) => string;
@@ -48,9 +49,9 @@ declare const IconButton: React.ForwardRefExoticComponent<IconButtonProps & Reac
48
49
 
49
50
  declare const iconButtonVariants: {
50
51
  size: {
51
- small: string;
52
- default: string;
53
- large: string;
52
+ sm: string;
53
+ md: string;
54
+ lg: string;
54
55
  };
55
56
  };
56
57
 
@@ -77,7 +78,7 @@ declare const AlertTitle: React.ForwardRefExoticComponent<Omit<React.DetailedHTM
77
78
  declare const AlertDescription: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
78
79
 
79
80
  declare const badgeVariants: (props?: ({
80
- variant?: "default" | "primary" | "outline" | "secondary" | "destructive" | "success" | "warning" | null | undefined;
81
+ variant?: "default" | "outline" | "secondary" | "destructive" | "success" | "warning" | "primary" | null | undefined;
81
82
  } & class_variance_authority_types.ClassProp) | undefined) => string;
82
83
 
83
84
  interface BadgeProps extends React.ComponentProps<'span'>, VariantProps<typeof badgeVariants> {
package/dist/index.js CHANGED
@@ -3,7 +3,7 @@ import React138__default from 'react';
3
3
  import { Slot, Tabs as Tabs$1, Tooltip as Tooltip$1, Dialog as Dialog$1, DropdownMenu as DropdownMenu$1, Select as Select$1, Label as Label$1, Switch as Switch$1, RadioGroup as RadioGroup$1, Checkbox as Checkbox$1, Slider as Slider$1 } from 'radix-ui';
4
4
  import { clsx } from 'clsx';
5
5
  import { twMerge } from 'tailwind-merge';
6
- import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
6
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
7
7
  import { cva } from 'class-variance-authority';
8
8
  import { OTPInput, OTPInputContext } from 'input-otp';
9
9
  import useEmblaCarousel from 'embla-carousel-react';
@@ -19,102 +19,54 @@ var __export = (target, all) => {
19
19
  function cn(...inputs) {
20
20
  return twMerge(clsx(inputs));
21
21
  }
22
- var LogoSpinner = ({
22
+ var ButtonLoader = ({
23
23
  className = "",
24
24
  size = 16
25
25
  }) => {
26
+ const dotSize = Math.max(2, size / 6);
27
+ const gap = size / 4;
26
28
  return /* @__PURE__ */ jsxs(
27
29
  "svg",
28
30
  {
29
31
  width: size,
30
32
  height: size,
31
- viewBox: "0 0 48 48",
33
+ viewBox: `0 0 ${size} ${size}`,
32
34
  fill: "none",
33
35
  xmlns: "http://www.w3.org/2000/svg",
34
- className: `lua:animate-spin ${className}`,
36
+ className,
37
+ "aria-hidden": "true",
35
38
  children: [
36
39
  /* @__PURE__ */ jsx(
37
- "path",
38
- {
39
- d: "M28.7982 6.91902C28.7982 3.9217 26.7444 1.40402 23.9671 0.696624C24.9104 0.236792 25.9463 -0.00148259 26.9957 6.94086e-06C30.8169 6.94086e-06 33.9147 3.09779 33.9147 6.91902C33.9147 10.7403 30.8169 13.838 26.9957 13.838C25.9463 13.8395 24.9104 13.6013 23.9671 13.1414C26.7441 12.434 28.7982 9.91634 28.7982 6.91902Z",
40
- fill: "currentColor"
41
- }
42
- ),
43
- /* @__PURE__ */ jsx(
44
- "path",
45
- {
46
- d: "M19.615 6.80833C18.1155 4.21259 15.0786 3.05934 12.3198 3.8351C12.9068 2.96525 13.6847 2.24098 14.5943 1.7176C17.9035 -0.192048 22.1352 0.94074 24.0459 4.25024C25.9567 7.55974 24.8225 11.7911 21.5133 13.7016C20.6053 14.2276 19.5891 14.5392 18.5422 14.6127C20.5936 12.6114 21.1136 9.40407 19.615 6.80833Z",
47
- fill: "currentColor"
48
- }
49
- ),
50
- /* @__PURE__ */ jsx(
51
- "path",
52
- {
53
- d: "M11.6065 11.3049C9.0105 9.80594 5.8034 10.326 3.80186 12.3776C3.87528 11.3307 4.1869 10.3144 4.71296 9.40629C6.62261 6.09707 10.8551 4.96318 14.1643 6.87393C17.4736 8.78469 18.6075 13.0161 16.697 16.3253C16.1735 17.2348 15.4491 18.0128 14.5792 18.5997C15.3555 15.8404 14.2023 12.803 11.6065 11.3049Z",
54
- fill: "currentColor"
55
- }
56
- ),
57
- /* @__PURE__ */ jsx(
58
- "path",
59
- {
60
- d: "M6.91903 19.202C3.92143 19.202 1.40401 21.2558 0.696614 24.0331C0.236781 23.0898 -0.0014826 22.0539 6.94119e-06 21.0045C6.94119e-06 17.1833 3.09779 14.0855 6.91903 14.0855C10.7403 14.0855 13.838 17.1833 13.838 21.0045C13.8394 22.0539 13.6011 23.0898 13.1414 24.0331C12.434 21.2558 9.91634 19.202 6.91903 19.202Z",
61
- fill: "currentColor"
62
- }
63
- ),
64
- /* @__PURE__ */ jsx(
65
- "path",
66
- {
67
- d: "M6.80835 28.3851C4.21234 29.8838 3.05963 32.9215 3.83456 35.6803C2.9647 35.0933 2.24044 34.3154 1.71706 33.4059C-0.193141 30.0969 0.940748 25.865 4.2497 23.9542C7.55865 22.0434 11.7906 23.1773 13.7011 26.4868C14.2271 27.3949 14.5387 28.4111 14.6122 29.4579C12.6115 27.4065 9.40409 26.8865 6.80835 28.3851Z",
68
- fill: "currentColor"
69
- }
70
- ),
71
- /* @__PURE__ */ jsx(
72
- "path",
40
+ "circle",
73
41
  {
74
- d: "M11.3041 36.3935C9.80545 38.9895 10.3255 42.1966 12.3768 44.1981C11.33 44.1246 10.3138 43.813 9.4058 43.287C6.09657 41.3774 4.96269 37.1449 6.87317 33.8356C8.78364 30.5264 13.0156 29.3925 16.3248 31.303C17.2343 31.8264 18.0123 32.5506 18.5992 33.4205C15.8405 32.6445 12.803 33.7977 11.3041 36.3935Z",
75
- fill: "currentColor"
42
+ cx: size / 2 - gap,
43
+ cy: size / 2,
44
+ r: dotSize,
45
+ fill: "currentColor",
46
+ opacity: "0.4",
47
+ className: "lua-btn-loader-dot"
76
48
  }
77
49
  ),
78
50
  /* @__PURE__ */ jsx(
79
- "path",
51
+ "circle",
80
52
  {
81
- d: "M19.2016 41.081C19.2016 44.0786 21.2558 46.596 24.0331 47.3034C23.0897 47.7632 22.0539 48.0014 21.0045 48C17.1832 48 14.0854 44.9022 14.0854 41.081C14.0854 37.2598 17.1832 34.162 21.0045 34.162C22.0539 34.1607 23.0897 34.3989 24.0331 34.8586C21.2558 35.566 19.2016 38.0837 19.2016 41.081Z",
82
- fill: "currentColor"
53
+ cx: size / 2,
54
+ cy: size / 2,
55
+ r: dotSize,
56
+ fill: "currentColor",
57
+ opacity: "0.4",
58
+ className: "lua-btn-loader-dot"
83
59
  }
84
60
  ),
85
61
  /* @__PURE__ */ jsx(
86
- "path",
62
+ "circle",
87
63
  {
88
- d: "M28.3851 41.1916C29.8837 43.7874 32.9215 44.9407 35.6802 44.1649C35.0932 45.0347 34.3153 45.7589 33.4058 46.2824C30.0963 48.192 25.8649 47.0592 23.9541 43.7497C22.0434 40.4402 23.1773 36.2089 26.4868 34.2984C27.3948 33.7724 28.411 33.4607 29.4578 33.3873C27.4065 35.3885 26.8864 38.5959 28.3851 41.1916Z",
89
- fill: "currentColor"
90
- }
91
- ),
92
- /* @__PURE__ */ jsx(
93
- "path",
94
- {
95
- d: "M36.3936 36.696C38.9893 38.1946 42.1967 37.6746 44.1982 35.623C44.1246 36.6696 43.8129 37.6856 43.2869 38.5934C41.3772 41.9027 37.1447 43.0365 33.8355 41.1261C30.5263 39.2156 29.3921 34.9845 31.3028 31.6744C31.8262 30.7649 32.5505 29.987 33.4203 29.4C32.6454 32.1596 33.7978 35.197 36.3936 36.696Z",
96
- fill: "currentColor"
97
- }
98
- ),
99
- /* @__PURE__ */ jsx(
100
- "path",
101
- {
102
- d: "M41.081 28.798C44.0783 28.798 46.596 26.7442 47.3034 23.9669C47.7632 24.9102 48.0015 25.9461 48 26.9955C48 30.8167 44.9022 33.9145 41.081 33.9145C37.2597 33.9145 34.1619 30.8167 34.1619 26.9955C34.1607 25.946 34.3993 24.9101 34.8594 23.9669C35.566 26.7442 38.0836 28.798 41.081 28.798Z",
103
- fill: "currentColor"
104
- }
105
- ),
106
- /* @__PURE__ */ jsx(
107
- "path",
108
- {
109
- d: "M41.1917 19.6148C43.7875 18.1162 44.9407 15.0785 44.1647 12.3197C45.0346 12.9067 45.7589 13.6846 46.2824 14.5941C48.1921 17.9036 47.0593 22.135 43.7498 24.0458C40.4403 25.9565 36.2089 24.8227 34.2984 21.5132C33.7724 20.6051 33.4608 19.5889 33.3873 18.5421C35.3886 20.5935 38.5957 21.1135 41.1917 19.6148Z",
110
- fill: "currentColor"
111
- }
112
- ),
113
- /* @__PURE__ */ jsx(
114
- "path",
115
- {
116
- d: "M36.6957 11.6065C38.1946 9.01077 37.6746 5.80339 35.623 3.80186C36.6704 3.87515 37.6872 4.18689 38.5957 4.71324C41.9049 6.62289 43.0388 10.8554 41.128 14.1646C39.2173 17.4738 34.9859 18.608 31.6767 16.6972C30.7671 16.1738 29.9891 15.4496 29.402 14.5797C32.1596 15.3555 35.1971 14.2022 36.6957 11.6065Z",
117
- fill: "currentColor"
64
+ cx: size / 2 + gap,
65
+ cy: size / 2,
66
+ r: dotSize,
67
+ fill: "currentColor",
68
+ opacity: "0.4",
69
+ className: "lua-btn-loader-dot"
118
70
  }
119
71
  )
120
72
  ]
@@ -123,9 +75,11 @@ var LogoSpinner = ({
123
75
  };
124
76
  var buttonVariants = cva(
125
77
  [
126
- "lua:flex lua:items-center lua:justify-center lua:rounded-full lua:font-onest lua:font-semibold lua:leading-5 lua:transition-all lua:focus-visible:outline-hidden lua:gap-2 lua:cursor-pointer",
127
- "lua:disabled:pointer-events-none lua:disabled:opacity-50",
128
- "lua:focus-visible:ring-2 lua:focus-visible:ring-offset-2 lua:focus-visible:ring-ring"
78
+ "lua:inline-flex lua:items-center lua:justify-center lua:gap-1.5",
79
+ "lua:font-onest lua:font-semibold lua:whitespace-nowrap",
80
+ "lua:transition-all lua:cursor-pointer",
81
+ "lua:focus-visible:outline-hidden lua:focus-visible:ring-2 lua:focus-visible:ring-offset-2 lua:focus-visible:ring-ring",
82
+ "lua:disabled:pointer-events-none lua:disabled:bg-black/5 lua:disabled:text-black/15 lua:disabled:shadow-none lua:disabled:border-transparent"
129
83
  ].join(" "),
130
84
  {
131
85
  variants: {
@@ -135,18 +89,18 @@ var buttonVariants = cva(
135
89
  "lua:hover:bg-default-hover",
136
90
  "lua:active:bg-default-active"
137
91
  ].join(" "),
138
- primary: [
139
- "lua:bg-primary lua:text-primary-foreground",
92
+ brand: [
93
+ "lua:bg-primary lua:text-primary-foreground lua-btn-shine lua-btn-shine-brand",
140
94
  "lua:hover:bg-primary-hover",
141
95
  "lua:active:bg-primary-active"
142
96
  ].join(" "),
143
97
  outline: [
144
98
  "lua:border lua:border-primary lua:bg-surface lua:text-primary",
145
- "lua:hover:bg-primary lua:hover:text-primary-foreground lua:hover:border-primary",
146
- "lua:active:bg-primary-hover lua:active:border-primary-hover"
99
+ "lua:hover:bg-primary lua:hover:text-primary-foreground",
100
+ "lua:active:bg-primary-active lua:active:text-primary-foreground"
147
101
  ].join(" "),
148
102
  tertiary: [
149
- "lua:bg-surface lua:border lua:border-border lua:text-surface-foreground",
103
+ "lua:bg-surface lua:border lua:border-border lua:text-surface-foreground lua:shadow-sm",
150
104
  "lua:hover:bg-secondary",
151
105
  "lua:active:bg-secondary-hover"
152
106
  ].join(" "),
@@ -161,38 +115,49 @@ var buttonVariants = cva(
161
115
  "lua:active:bg-secondary"
162
116
  ].join(" "),
163
117
  destructive: [
164
- "lua:bg-destructive lua:text-destructive-foreground",
118
+ "lua:bg-destructive lua:text-destructive-foreground lua-btn-shine lua-btn-shine-destructive",
165
119
  "lua:hover:bg-destructive-hover",
166
120
  "lua:active:bg-destructive-active"
167
121
  ].join(" ")
168
122
  },
169
123
  size: {
170
- small: "lua:h-6 lua:px-3 lua:text-xs",
171
- // 12px
172
- default: "lua:h-8 lua:px-3 lua:text-sm",
173
- // 14px
174
- large: "lua:h-10 lua:px-4 lua:text-base"
175
- // 16px
124
+ sm: "lua:h-7 lua:px-3 lua:text-xs lua:leading-5",
125
+ md: "lua:h-9 lua:px-3 lua:text-sm lua:leading-5",
126
+ lg: "lua:h-12 lua:px-4 lua:text-base lua:leading-6"
127
+ },
128
+ shape: {
129
+ rounded: "lua:rounded-full",
130
+ rectangle: "lua:rounded-xl"
176
131
  },
177
132
  hasStartAdornment: {
178
- true: "lua:pl-2"
133
+ true: ""
179
134
  },
180
135
  hasEndAdornment: {
181
- true: "lua:pr-2"
136
+ true: ""
182
137
  }
183
138
  },
139
+ compoundVariants: [
140
+ { size: "sm", hasStartAdornment: true, className: "lua:pl-2" },
141
+ { size: "sm", hasEndAdornment: true, className: "lua:pr-2" },
142
+ { size: "md", hasStartAdornment: true, className: "lua:pl-2" },
143
+ { size: "md", hasEndAdornment: true, className: "lua:pr-2" },
144
+ { size: "lg", hasStartAdornment: true, className: "lua:pl-3" },
145
+ { size: "lg", hasEndAdornment: true, className: "lua:pr-3" }
146
+ ],
184
147
  defaultVariants: {
185
148
  variant: "default",
186
- size: "default"
149
+ size: "md",
150
+ shape: "rounded"
187
151
  }
188
152
  }
189
153
  );
190
- var iconStyles = "lua:w-4 lua:h-4 lua:flex lua:items-center lua:justify-center";
154
+ var adornmentStyles = "lua:flex lua:items-center lua:justify-center lua:shrink-0 lua:size-4";
191
155
  var Button = React138.forwardRef(
192
156
  ({
193
157
  className,
194
158
  variant,
195
159
  size,
160
+ shape,
196
161
  asChild = false,
197
162
  startAdornment,
198
163
  endAdornment,
@@ -215,13 +180,15 @@ var Button = React138.forwardRef(
215
180
  "Button: Buttons without text content should have an aria-label for accessibility."
216
181
  );
217
182
  }
218
- return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(
183
+ return /* @__PURE__ */ jsx(
219
184
  Comp,
220
185
  {
221
186
  className: cn(
187
+ "lua-btn-loading",
222
188
  buttonVariants({
223
189
  variant,
224
190
  size,
191
+ shape,
225
192
  hasStartAdornment,
226
193
  hasEndAdornment,
227
194
  className
@@ -233,41 +200,144 @@ var Button = React138.forwardRef(
233
200
  "aria-describedby": ariaDescribedby,
234
201
  "aria-busy": loading,
235
202
  "aria-disabled": disabled || loading,
203
+ "data-loading": loading,
204
+ "data-variant": variant ?? "default",
236
205
  ...props,
237
- children: loading ? /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsxs("div", { className: "lua:flex lua:items-center lua:gap-2", children: [
206
+ children: loading ? /* @__PURE__ */ jsxs("div", { className: "lua:flex lua:items-center lua:gap-2", children: [
238
207
  /* @__PURE__ */ jsx(
239
- LogoSpinner,
208
+ ButtonLoader,
240
209
  {
241
210
  size: 20,
242
- className: "lua:text-current",
243
- "aria-hidden": "true"
211
+ className: "lua:text-current lua:opacity-90"
244
212
  }
245
213
  ),
246
214
  children && /* @__PURE__ */ jsx("span", { "aria-hidden": "true", children })
247
- ] }) }) : /* @__PURE__ */ jsxs(Fragment, { children: [
248
- startAdornment && /* @__PURE__ */ jsx("span", { className: iconStyles, "aria-hidden": "true", children: startAdornment }),
215
+ ] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
216
+ startAdornment && /* @__PURE__ */ jsx("span", { className: adornmentStyles, "aria-hidden": "true", children: startAdornment }),
249
217
  children,
250
- endAdornment && /* @__PURE__ */ jsx("span", { className: iconStyles, "aria-hidden": "true", children: endAdornment })
218
+ endAdornment && /* @__PURE__ */ jsx("span", { className: adornmentStyles, "aria-hidden": "true", children: endAdornment })
251
219
  ] })
252
220
  }
253
- ) });
221
+ );
254
222
  }
255
223
  );
256
224
  Button.displayName = "Button";
225
+ var LogoSpinner = ({
226
+ className = "",
227
+ size = 16
228
+ }) => {
229
+ return /* @__PURE__ */ jsxs(
230
+ "svg",
231
+ {
232
+ width: size,
233
+ height: size,
234
+ viewBox: "0 0 48 48",
235
+ fill: "none",
236
+ xmlns: "http://www.w3.org/2000/svg",
237
+ className: `lua:animate-spin ${className}`,
238
+ children: [
239
+ /* @__PURE__ */ jsx(
240
+ "path",
241
+ {
242
+ d: "M28.7982 6.91902C28.7982 3.9217 26.7444 1.40402 23.9671 0.696624C24.9104 0.236792 25.9463 -0.00148259 26.9957 6.94086e-06C30.8169 6.94086e-06 33.9147 3.09779 33.9147 6.91902C33.9147 10.7403 30.8169 13.838 26.9957 13.838C25.9463 13.8395 24.9104 13.6013 23.9671 13.1414C26.7441 12.434 28.7982 9.91634 28.7982 6.91902Z",
243
+ fill: "currentColor"
244
+ }
245
+ ),
246
+ /* @__PURE__ */ jsx(
247
+ "path",
248
+ {
249
+ d: "M19.615 6.80833C18.1155 4.21259 15.0786 3.05934 12.3198 3.8351C12.9068 2.96525 13.6847 2.24098 14.5943 1.7176C17.9035 -0.192048 22.1352 0.94074 24.0459 4.25024C25.9567 7.55974 24.8225 11.7911 21.5133 13.7016C20.6053 14.2276 19.5891 14.5392 18.5422 14.6127C20.5936 12.6114 21.1136 9.40407 19.615 6.80833Z",
250
+ fill: "currentColor"
251
+ }
252
+ ),
253
+ /* @__PURE__ */ jsx(
254
+ "path",
255
+ {
256
+ d: "M11.6065 11.3049C9.0105 9.80594 5.8034 10.326 3.80186 12.3776C3.87528 11.3307 4.1869 10.3144 4.71296 9.40629C6.62261 6.09707 10.8551 4.96318 14.1643 6.87393C17.4736 8.78469 18.6075 13.0161 16.697 16.3253C16.1735 17.2348 15.4491 18.0128 14.5792 18.5997C15.3555 15.8404 14.2023 12.803 11.6065 11.3049Z",
257
+ fill: "currentColor"
258
+ }
259
+ ),
260
+ /* @__PURE__ */ jsx(
261
+ "path",
262
+ {
263
+ d: "M6.91903 19.202C3.92143 19.202 1.40401 21.2558 0.696614 24.0331C0.236781 23.0898 -0.0014826 22.0539 6.94119e-06 21.0045C6.94119e-06 17.1833 3.09779 14.0855 6.91903 14.0855C10.7403 14.0855 13.838 17.1833 13.838 21.0045C13.8394 22.0539 13.6011 23.0898 13.1414 24.0331C12.434 21.2558 9.91634 19.202 6.91903 19.202Z",
264
+ fill: "currentColor"
265
+ }
266
+ ),
267
+ /* @__PURE__ */ jsx(
268
+ "path",
269
+ {
270
+ d: "M6.80835 28.3851C4.21234 29.8838 3.05963 32.9215 3.83456 35.6803C2.9647 35.0933 2.24044 34.3154 1.71706 33.4059C-0.193141 30.0969 0.940748 25.865 4.2497 23.9542C7.55865 22.0434 11.7906 23.1773 13.7011 26.4868C14.2271 27.3949 14.5387 28.4111 14.6122 29.4579C12.6115 27.4065 9.40409 26.8865 6.80835 28.3851Z",
271
+ fill: "currentColor"
272
+ }
273
+ ),
274
+ /* @__PURE__ */ jsx(
275
+ "path",
276
+ {
277
+ d: "M11.3041 36.3935C9.80545 38.9895 10.3255 42.1966 12.3768 44.1981C11.33 44.1246 10.3138 43.813 9.4058 43.287C6.09657 41.3774 4.96269 37.1449 6.87317 33.8356C8.78364 30.5264 13.0156 29.3925 16.3248 31.303C17.2343 31.8264 18.0123 32.5506 18.5992 33.4205C15.8405 32.6445 12.803 33.7977 11.3041 36.3935Z",
278
+ fill: "currentColor"
279
+ }
280
+ ),
281
+ /* @__PURE__ */ jsx(
282
+ "path",
283
+ {
284
+ d: "M19.2016 41.081C19.2016 44.0786 21.2558 46.596 24.0331 47.3034C23.0897 47.7632 22.0539 48.0014 21.0045 48C17.1832 48 14.0854 44.9022 14.0854 41.081C14.0854 37.2598 17.1832 34.162 21.0045 34.162C22.0539 34.1607 23.0897 34.3989 24.0331 34.8586C21.2558 35.566 19.2016 38.0837 19.2016 41.081Z",
285
+ fill: "currentColor"
286
+ }
287
+ ),
288
+ /* @__PURE__ */ jsx(
289
+ "path",
290
+ {
291
+ d: "M28.3851 41.1916C29.8837 43.7874 32.9215 44.9407 35.6802 44.1649C35.0932 45.0347 34.3153 45.7589 33.4058 46.2824C30.0963 48.192 25.8649 47.0592 23.9541 43.7497C22.0434 40.4402 23.1773 36.2089 26.4868 34.2984C27.3948 33.7724 28.411 33.4607 29.4578 33.3873C27.4065 35.3885 26.8864 38.5959 28.3851 41.1916Z",
292
+ fill: "currentColor"
293
+ }
294
+ ),
295
+ /* @__PURE__ */ jsx(
296
+ "path",
297
+ {
298
+ d: "M36.3936 36.696C38.9893 38.1946 42.1967 37.6746 44.1982 35.623C44.1246 36.6696 43.8129 37.6856 43.2869 38.5934C41.3772 41.9027 37.1447 43.0365 33.8355 41.1261C30.5263 39.2156 29.3921 34.9845 31.3028 31.6744C31.8262 30.7649 32.5505 29.987 33.4203 29.4C32.6454 32.1596 33.7978 35.197 36.3936 36.696Z",
299
+ fill: "currentColor"
300
+ }
301
+ ),
302
+ /* @__PURE__ */ jsx(
303
+ "path",
304
+ {
305
+ d: "M41.081 28.798C44.0783 28.798 46.596 26.7442 47.3034 23.9669C47.7632 24.9102 48.0015 25.9461 48 26.9955C48 30.8167 44.9022 33.9145 41.081 33.9145C37.2597 33.9145 34.1619 30.8167 34.1619 26.9955C34.1607 25.946 34.3993 24.9101 34.8594 23.9669C35.566 26.7442 38.0836 28.798 41.081 28.798Z",
306
+ fill: "currentColor"
307
+ }
308
+ ),
309
+ /* @__PURE__ */ jsx(
310
+ "path",
311
+ {
312
+ d: "M41.1917 19.6148C43.7875 18.1162 44.9407 15.0785 44.1647 12.3197C45.0346 12.9067 45.7589 13.6846 46.2824 14.5941C48.1921 17.9036 47.0593 22.135 43.7498 24.0458C40.4403 25.9565 36.2089 24.8227 34.2984 21.5132C33.7724 20.6051 33.4608 19.5889 33.3873 18.5421C35.3886 20.5935 38.5957 21.1135 41.1917 19.6148Z",
313
+ fill: "currentColor"
314
+ }
315
+ ),
316
+ /* @__PURE__ */ jsx(
317
+ "path",
318
+ {
319
+ d: "M36.6957 11.6065C38.1946 9.01077 37.6746 5.80339 35.623 3.80186C36.6704 3.87515 37.6872 4.18689 38.5957 4.71324C41.9049 6.62289 43.0388 10.8554 41.128 14.1646C39.2173 17.4738 34.9859 18.608 31.6767 16.6972C30.7671 16.1738 29.9891 15.4496 29.402 14.5797C32.1596 15.3555 35.1971 14.2022 36.6957 11.6065Z",
320
+ fill: "currentColor"
321
+ }
322
+ )
323
+ ]
324
+ }
325
+ );
326
+ };
257
327
 
258
328
  // src/components/ui/IconButton.variants.ts
259
329
  var iconButtonVariants = {
260
330
  size: {
261
- small: "lua:p-2 lua:size-7",
262
- default: "lua:p-2 lua:size-10",
263
- large: "lua:p-3 lua:size-12"
331
+ sm: "lua:p-2 lua:size-7",
332
+ md: "lua:p-2 lua:size-10",
333
+ lg: "lua:p-3 lua:size-12"
264
334
  }
265
335
  };
266
336
  var IconButton = React138.forwardRef(
267
337
  ({
268
338
  className,
269
339
  variant,
270
- size = "default",
340
+ size = "md",
271
341
  asChild = false,
272
342
  children,
273
343
  loading = false,
@@ -300,7 +370,7 @@ var IconButton = React138.forwardRef(
300
370
  children: loading ? /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(
301
371
  LogoSpinner,
302
372
  {
303
- size: size === "small" ? 16 : size === "large" ? 24 : 20,
373
+ size: size === "sm" ? 16 : size === "lg" ? 24 : 20,
304
374
  className: "lua:text-current",
305
375
  "aria-hidden": "true"
306
376
  }
@@ -365,8 +435,8 @@ var Input = React138.forwardRef(
365
435
  "lua:border-input lua:text-foreground",
366
436
  "lua:focus-visible:ring-ring",
367
437
  hasError && [
368
- "lua:border-destructive",
369
- "lua:focus-visible:ring-destructive",
438
+ "lua:border-danger",
439
+ "lua:focus-visible:ring-danger",
370
440
  "lua:text-foreground"
371
441
  ],
372
442
  hasSuccess && [
@@ -405,7 +475,7 @@ var Input = React138.forwardRef(
405
475
  "p",
406
476
  {
407
477
  id: errorId,
408
- className: "lua:mt-2 lua:text-sm lua:text-destructive",
478
+ className: "lua:mt-2 lua:text-sm lua:text-danger",
409
479
  role: "alert",
410
480
  "aria-live": "polite",
411
481
  children: error
@@ -443,7 +513,7 @@ var alertVariants = cva(
443
513
  ].join(" "),
444
514
  danger: [
445
515
  "lua:bg-red-50 lua:dark:bg-red-900",
446
- "lua:border-destructive",
516
+ "lua:border-danger",
447
517
  "lua:text-red-900 lua:dark:text-red-100"
448
518
  ].join(" "),
449
519
  warning: [
@@ -5038,8 +5108,8 @@ var Textarea = React138.forwardRef(
5038
5108
  "lua:border-input lua:text-foreground",
5039
5109
  "lua:focus-visible:ring-ring",
5040
5110
  hasError && [
5041
- "lua:border-destructive",
5042
- "lua:focus-visible:ring-destructive",
5111
+ "lua:border-danger",
5112
+ "lua:focus-visible:ring-danger",
5043
5113
  "lua:text-foreground"
5044
5114
  ],
5045
5115
  hasSuccess && [
@@ -5075,7 +5145,7 @@ var Textarea = React138.forwardRef(
5075
5145
  "p",
5076
5146
  {
5077
5147
  id: errorId,
5078
- className: "lua:mt-2 lua:text-sm lua:text-destructive",
5148
+ className: "lua:mt-2 lua:text-sm lua:text-danger",
5079
5149
  role: "alert",
5080
5150
  "aria-live": "polite",
5081
5151
  children: error
@@ -5418,7 +5488,7 @@ var CarouselItem = React138.forwardRef(({ className, ...props }, ref) => {
5418
5488
  );
5419
5489
  });
5420
5490
  CarouselItem.displayName = "CarouselItem";
5421
- var CarouselPrevious = React138.forwardRef(({ className, variant = "outline", size = "small", ...props }, ref) => {
5491
+ var CarouselPrevious = React138.forwardRef(({ className, variant = "outline", size = "sm", ...props }, ref) => {
5422
5492
  const { orientation, scrollPrev, canScrollPrev } = useCarousel();
5423
5493
  return /* @__PURE__ */ jsx(
5424
5494
  Button,
@@ -5440,7 +5510,7 @@ var CarouselPrevious = React138.forwardRef(({ className, variant = "outline", si
5440
5510
  );
5441
5511
  });
5442
5512
  CarouselPrevious.displayName = "CarouselPrevious";
5443
- var CarouselNext = React138.forwardRef(({ className, variant = "outline", size = "small", ...props }, ref) => {
5513
+ var CarouselNext = React138.forwardRef(({ className, variant = "outline", size = "sm", ...props }, ref) => {
5444
5514
  const { orientation, scrollNext, canScrollNext } = useCarousel();
5445
5515
  return /* @__PURE__ */ jsx(
5446
5516
  Button,
@@ -5501,7 +5571,7 @@ var DialogContent = React138.forwardRef(({ className, children, showClose = true
5501
5571
  ...props,
5502
5572
  children: [
5503
5573
  children,
5504
- showClose && /* @__PURE__ */ jsx(Dialog$1.Close, { className: "lua:absolute lua:right-4 lua:top-4 lua:rounded-sm lua:opacity-70 lua:ring-offset-background lua:transition-opacity lua:hover:opacity-100 lua:focus:outline-hidden lua:focus:ring-2 lua:focus:ring-ring lua:focus:ring-offset-2 lua:disabled:pointer-events-none lua:hover:bg-secondary lua:text-muted-foreground", children: /* @__PURE__ */ jsx(XIcon, { size: 24 }) })
5574
+ showClose && /* @__PURE__ */ jsx(Dialog$1.Close, { className: "lua:absolute lua:right-4 lua:top-4 lua:rounded-sm lua:cursor-pointer lua:text-muted-foreground lua:transition-colors lua:hover:text-foreground lua:focus:outline-hidden lua:focus:ring-2 lua:focus:ring-ring lua:focus:ring-offset-2 lua:ring-offset-background lua:disabled:pointer-events-none", children: /* @__PURE__ */ jsx(XIcon, { size: 24 }) })
5505
5575
  ]
5506
5576
  }
5507
5577
  )
@@ -6329,7 +6399,7 @@ var Checkbox = React138.forwardRef(({ className, ...props }, ref) => /* @__PURE_
6329
6399
  {
6330
6400
  ref,
6331
6401
  className: cn(
6332
- "lua:peer lua:h-4 lua:w-4 lua:shrink-0 lua:rounded lua:border lua:border-input lua:bg-surface lua:shadow-xs lua:transition-all lua:outline-hidden lua:focus-visible:ring-2 lua:focus-visible:ring-ring lua:focus-visible:ring-offset-2 lua:focus-visible:ring-offset-background lua:disabled:cursor-not-allowed lua:disabled:opacity-50 lua:data-[state=checked]:bg-primary lua:data-[state=checked]:text-primary-foreground lua:data-[state=checked]:border-primary lua:aria-[invalid=true]:border-destructive",
6402
+ "lua:peer lua:h-4 lua:w-4 lua:shrink-0 lua:rounded lua:border lua:border-input lua:bg-surface lua:shadow-xs lua:transition-all lua:outline-hidden lua:focus-visible:ring-2 lua:focus-visible:ring-ring lua:focus-visible:ring-offset-2 lua:focus-visible:ring-offset-background lua:disabled:cursor-not-allowed lua:disabled:opacity-50 lua:data-[state=checked]:bg-primary lua:data-[state=checked]:text-primary-foreground lua:data-[state=checked]:border-primary lua:aria-[invalid=true]:border-danger",
6333
6403
  className
6334
6404
  ),
6335
6405
  ...props,
@@ -7147,6 +7217,7 @@ var luaniverseSafelist = [
7147
7217
  "lua:border-primary",
7148
7218
  "lua:border-secondary",
7149
7219
  "lua:border-destructive",
7220
+ "lua:border-danger",
7150
7221
  "lua:border-success",
7151
7222
  "lua:border-warning",
7152
7223
  "lua:border-info",
@@ -7198,7 +7269,13 @@ var luaniverseSafelist = [
7198
7269
  // Semantic Color Tokens - Accent
7199
7270
  "lua:bg-accent",
7200
7271
  "lua:text-accent-foreground",
7201
- // Semantic Color Tokens - Destructive (Danger - Red)
7272
+ // Semantic Color Tokens - Danger (Error/Validation Indicators)
7273
+ "lua:text-danger",
7274
+ "lua:border-danger",
7275
+ "lua:bg-danger",
7276
+ "lua:text-danger-foreground",
7277
+ "lua:hover:bg-danger-hover",
7278
+ // Semantic Color Tokens - Destructive (Action - Dark Maroon)
7202
7279
  "lua:bg-destructive",
7203
7280
  "lua:text-destructive-foreground",
7204
7281
  "lua:bg-destructive-hover",
@@ -7373,6 +7450,32 @@ var luaniverseSafelist = [
7373
7450
  "lua:before:mr-4",
7374
7451
  "lua:before:min-w-[100px]",
7375
7452
  "lua:md:before:content-none",
7453
+ // Button loading state
7454
+ "lua-btn-loading",
7455
+ "lua-btn-loader-dot",
7456
+ // Button
7457
+ "lua:gap-1.5",
7458
+ "lua:h-7",
7459
+ "lua:h-9",
7460
+ "lua:h-12",
7461
+ "lua:leading-5",
7462
+ "lua:leading-6",
7463
+ "lua:size-4",
7464
+ "lua:text-current",
7465
+ "lua:pl-3",
7466
+ "lua:pr-3",
7467
+ "lua:disabled:bg-black/5",
7468
+ "lua:disabled:text-black/15",
7469
+ "lua:disabled:shadow-none",
7470
+ "lua:disabled:border-transparent",
7471
+ "lua:active:bg-primary-active",
7472
+ "lua:active:text-primary-foreground",
7473
+ "lua:active:bg-secondary-active",
7474
+ "lua:active:bg-secondary-hover",
7475
+ "lua:active:bg-secondary",
7476
+ "lua:active:bg-default-active",
7477
+ "lua:active:bg-destructive-active",
7478
+ "lua:hover:bg-muted",
7376
7479
  // IconButton
7377
7480
  "lua:size-7",
7378
7481
  "lua:size-10",
@@ -7391,7 +7494,7 @@ var luaniverseSafelist = [
7391
7494
  "lua:data-[state=checked]:bg-primary",
7392
7495
  "lua:data-[state=checked]:text-primary-foreground",
7393
7496
  "lua:data-[state=checked]:border-primary",
7394
- "lua:aria-[invalid=true]:border-destructive",
7497
+ "lua:aria-[invalid=true]:border-danger",
7395
7498
  "lua:disabled:opacity-50",
7396
7499
  "lua:disabled:cursor-not-allowed",
7397
7500
  "lua:focus-visible:ring-offset-2",
@@ -7546,7 +7649,9 @@ var luaniverseSafelist = [
7546
7649
  "lua:border-input",
7547
7650
  "lua:focus-visible:ring-ring",
7548
7651
  "lua:border-destructive",
7652
+ "lua:border-danger",
7549
7653
  "lua:focus-visible:ring-destructive",
7654
+ "lua:focus-visible:ring-danger",
7550
7655
  "lua:border-success",
7551
7656
  "lua:focus-visible:ring-success",
7552
7657
  "lua:opacity-50",