luaniverse 4.2.24 → 4.2.26

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.cjs CHANGED
@@ -46,102 +46,54 @@ var __export = (target, all) => {
46
46
  function cn(...inputs) {
47
47
  return tailwindMerge.twMerge(clsx.clsx(inputs));
48
48
  }
49
- var LogoSpinner = ({
49
+ var ButtonLoader = ({
50
50
  className = "",
51
51
  size = 16
52
52
  }) => {
53
+ const dotSize = Math.max(2, size / 6);
54
+ const gap = size / 4;
53
55
  return /* @__PURE__ */ jsxRuntime.jsxs(
54
56
  "svg",
55
57
  {
56
58
  width: size,
57
59
  height: size,
58
- viewBox: "0 0 48 48",
60
+ viewBox: `0 0 ${size} ${size}`,
59
61
  fill: "none",
60
62
  xmlns: "http://www.w3.org/2000/svg",
61
- className: `lua:animate-spin ${className}`,
63
+ className,
64
+ "aria-hidden": "true",
62
65
  children: [
63
66
  /* @__PURE__ */ jsxRuntime.jsx(
64
- "path",
65
- {
66
- 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",
67
- fill: "currentColor"
68
- }
69
- ),
70
- /* @__PURE__ */ jsxRuntime.jsx(
71
- "path",
72
- {
73
- 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",
74
- fill: "currentColor"
75
- }
76
- ),
77
- /* @__PURE__ */ jsxRuntime.jsx(
78
- "path",
79
- {
80
- 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",
81
- fill: "currentColor"
82
- }
83
- ),
84
- /* @__PURE__ */ jsxRuntime.jsx(
85
- "path",
86
- {
87
- 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",
88
- fill: "currentColor"
89
- }
90
- ),
91
- /* @__PURE__ */ jsxRuntime.jsx(
92
- "path",
93
- {
94
- 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",
95
- fill: "currentColor"
96
- }
97
- ),
98
- /* @__PURE__ */ jsxRuntime.jsx(
99
- "path",
67
+ "circle",
100
68
  {
101
- 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",
102
- fill: "currentColor"
69
+ cx: size / 2 - gap,
70
+ cy: size / 2,
71
+ r: dotSize,
72
+ fill: "currentColor",
73
+ opacity: "0.4",
74
+ className: "lua-btn-loader-dot"
103
75
  }
104
76
  ),
105
77
  /* @__PURE__ */ jsxRuntime.jsx(
106
- "path",
78
+ "circle",
107
79
  {
108
- 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",
109
- fill: "currentColor"
80
+ cx: size / 2,
81
+ cy: size / 2,
82
+ r: dotSize,
83
+ fill: "currentColor",
84
+ opacity: "0.4",
85
+ className: "lua-btn-loader-dot"
110
86
  }
111
87
  ),
112
88
  /* @__PURE__ */ jsxRuntime.jsx(
113
- "path",
89
+ "circle",
114
90
  {
115
- 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",
116
- fill: "currentColor"
117
- }
118
- ),
119
- /* @__PURE__ */ jsxRuntime.jsx(
120
- "path",
121
- {
122
- 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",
123
- fill: "currentColor"
124
- }
125
- ),
126
- /* @__PURE__ */ jsxRuntime.jsx(
127
- "path",
128
- {
129
- 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",
130
- fill: "currentColor"
131
- }
132
- ),
133
- /* @__PURE__ */ jsxRuntime.jsx(
134
- "path",
135
- {
136
- 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",
137
- fill: "currentColor"
138
- }
139
- ),
140
- /* @__PURE__ */ jsxRuntime.jsx(
141
- "path",
142
- {
143
- 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",
144
- fill: "currentColor"
91
+ cx: size / 2 + gap,
92
+ cy: size / 2,
93
+ r: dotSize,
94
+ fill: "currentColor",
95
+ opacity: "0.4",
96
+ className: "lua-btn-loader-dot"
145
97
  }
146
98
  )
147
99
  ]
@@ -150,9 +102,11 @@ var LogoSpinner = ({
150
102
  };
151
103
  var buttonVariants = classVarianceAuthority.cva(
152
104
  [
153
- "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",
154
- "lua:disabled:pointer-events-none lua:disabled:opacity-50",
155
- "lua:focus-visible:ring-2 lua:focus-visible:ring-offset-2 lua:focus-visible:ring-ring"
105
+ "lua:inline-flex lua:items-center lua:justify-center lua:gap-1.5",
106
+ "lua:font-onest lua:font-semibold lua:whitespace-nowrap",
107
+ "lua:transition-all lua:cursor-pointer",
108
+ "lua:focus-visible:outline-hidden lua:focus-visible:ring-2 lua:focus-visible:ring-offset-2 lua:focus-visible:ring-ring",
109
+ "lua:disabled:pointer-events-none lua:disabled:bg-disabled lua:disabled:text-disabled-foreground lua:disabled:shadow-none lua:disabled:border-transparent"
156
110
  ].join(" "),
157
111
  {
158
112
  variants: {
@@ -162,18 +116,18 @@ var buttonVariants = classVarianceAuthority.cva(
162
116
  "lua:hover:bg-default-hover",
163
117
  "lua:active:bg-default-active"
164
118
  ].join(" "),
165
- primary: [
166
- "lua:bg-primary lua:text-primary-foreground",
119
+ brand: [
120
+ "lua:bg-primary lua:text-primary-foreground lua-btn-shine lua-btn-shine-brand",
167
121
  "lua:hover:bg-primary-hover",
168
122
  "lua:active:bg-primary-active"
169
123
  ].join(" "),
170
124
  outline: [
171
125
  "lua:border lua:border-primary lua:bg-surface lua:text-primary",
172
- "lua:hover:bg-primary lua:hover:text-primary-foreground lua:hover:border-primary",
173
- "lua:active:bg-primary-hover lua:active:border-primary-hover"
126
+ "lua:hover:bg-primary lua:hover:text-primary-foreground",
127
+ "lua:active:bg-primary-active lua:active:text-primary-foreground"
174
128
  ].join(" "),
175
129
  tertiary: [
176
- "lua:bg-surface lua:border lua:border-border lua:text-surface-foreground",
130
+ "lua:bg-surface lua:border lua:border-border lua:text-surface-foreground lua:shadow-sm",
177
131
  "lua:hover:bg-secondary",
178
132
  "lua:active:bg-secondary-hover"
179
133
  ].join(" "),
@@ -188,38 +142,49 @@ var buttonVariants = classVarianceAuthority.cva(
188
142
  "lua:active:bg-secondary"
189
143
  ].join(" "),
190
144
  destructive: [
191
- "lua:bg-destructive lua:text-destructive-foreground",
145
+ "lua:bg-destructive lua:text-destructive-foreground lua-btn-shine lua-btn-shine-destructive",
192
146
  "lua:hover:bg-destructive-hover",
193
147
  "lua:active:bg-destructive-active"
194
148
  ].join(" ")
195
149
  },
196
150
  size: {
197
- small: "lua:h-6 lua:px-3 lua:text-xs",
198
- // 12px
199
- default: "lua:h-8 lua:px-3 lua:text-sm",
200
- // 14px
201
- large: "lua:h-10 lua:px-4 lua:text-base"
202
- // 16px
151
+ sm: "lua:h-7 lua:px-3 lua:text-xs lua:leading-5",
152
+ md: "lua:h-9 lua:px-3 lua:text-sm lua:leading-5",
153
+ lg: "lua:h-12 lua:px-4 lua:text-base lua:leading-6"
154
+ },
155
+ shape: {
156
+ rounded: "lua:rounded-full",
157
+ rectangle: "lua:rounded-xl"
203
158
  },
204
159
  hasStartAdornment: {
205
- true: "lua:pl-2"
160
+ true: ""
206
161
  },
207
162
  hasEndAdornment: {
208
- true: "lua:pr-2"
163
+ true: ""
209
164
  }
210
165
  },
166
+ compoundVariants: [
167
+ { size: "sm", hasStartAdornment: true, className: "lua:pl-2" },
168
+ { size: "sm", hasEndAdornment: true, className: "lua:pr-2" },
169
+ { size: "md", hasStartAdornment: true, className: "lua:pl-2" },
170
+ { size: "md", hasEndAdornment: true, className: "lua:pr-2" },
171
+ { size: "lg", hasStartAdornment: true, className: "lua:pl-3" },
172
+ { size: "lg", hasEndAdornment: true, className: "lua:pr-3" }
173
+ ],
211
174
  defaultVariants: {
212
175
  variant: "default",
213
- size: "default"
176
+ size: "md",
177
+ shape: "rounded"
214
178
  }
215
179
  }
216
180
  );
217
- var iconStyles = "lua:w-4 lua:h-4 lua:flex lua:items-center lua:justify-center";
181
+ var adornmentStyles = "lua:flex lua:items-center lua:justify-center lua:shrink-0 lua:size-4";
218
182
  var Button = React138__namespace.forwardRef(
219
183
  ({
220
184
  className,
221
185
  variant,
222
186
  size,
187
+ shape,
223
188
  asChild = false,
224
189
  startAdornment,
225
190
  endAdornment,
@@ -242,13 +207,15 @@ var Button = React138__namespace.forwardRef(
242
207
  "Button: Buttons without text content should have an aria-label for accessibility."
243
208
  );
244
209
  }
245
- return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: /* @__PURE__ */ jsxRuntime.jsx(
210
+ return /* @__PURE__ */ jsxRuntime.jsx(
246
211
  Comp,
247
212
  {
248
213
  className: cn(
214
+ "lua-btn-loading",
249
215
  buttonVariants({
250
216
  variant,
251
217
  size,
218
+ shape,
252
219
  hasStartAdornment,
253
220
  hasEndAdornment,
254
221
  className
@@ -260,41 +227,144 @@ var Button = React138__namespace.forwardRef(
260
227
  "aria-describedby": ariaDescribedby,
261
228
  "aria-busy": loading,
262
229
  "aria-disabled": disabled || loading,
230
+ "data-loading": loading,
231
+ "data-variant": variant ?? "default",
263
232
  ...props,
264
- children: loading ? /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "lua:flex lua:items-center lua:gap-2", children: [
233
+ children: loading ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "lua:flex lua:items-center lua:gap-2", children: [
265
234
  /* @__PURE__ */ jsxRuntime.jsx(
266
- LogoSpinner,
235
+ ButtonLoader,
267
236
  {
268
237
  size: 20,
269
- className: "lua:text-current",
270
- "aria-hidden": "true"
238
+ className: "lua:text-current lua:opacity-90"
271
239
  }
272
240
  ),
273
241
  children && /* @__PURE__ */ jsxRuntime.jsx("span", { "aria-hidden": "true", children })
274
- ] }) }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
275
- startAdornment && /* @__PURE__ */ jsxRuntime.jsx("span", { className: iconStyles, "aria-hidden": "true", children: startAdornment }),
242
+ ] }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
243
+ startAdornment && /* @__PURE__ */ jsxRuntime.jsx("span", { className: adornmentStyles, "aria-hidden": "true", children: startAdornment }),
276
244
  children,
277
- endAdornment && /* @__PURE__ */ jsxRuntime.jsx("span", { className: iconStyles, "aria-hidden": "true", children: endAdornment })
245
+ endAdornment && /* @__PURE__ */ jsxRuntime.jsx("span", { className: adornmentStyles, "aria-hidden": "true", children: endAdornment })
278
246
  ] })
279
247
  }
280
- ) });
248
+ );
281
249
  }
282
250
  );
283
251
  Button.displayName = "Button";
252
+ var LogoSpinner = ({
253
+ className = "",
254
+ size = 16
255
+ }) => {
256
+ return /* @__PURE__ */ jsxRuntime.jsxs(
257
+ "svg",
258
+ {
259
+ width: size,
260
+ height: size,
261
+ viewBox: "0 0 48 48",
262
+ fill: "none",
263
+ xmlns: "http://www.w3.org/2000/svg",
264
+ className: `lua:animate-spin ${className}`,
265
+ children: [
266
+ /* @__PURE__ */ jsxRuntime.jsx(
267
+ "path",
268
+ {
269
+ 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",
270
+ fill: "currentColor"
271
+ }
272
+ ),
273
+ /* @__PURE__ */ jsxRuntime.jsx(
274
+ "path",
275
+ {
276
+ 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",
277
+ fill: "currentColor"
278
+ }
279
+ ),
280
+ /* @__PURE__ */ jsxRuntime.jsx(
281
+ "path",
282
+ {
283
+ 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",
284
+ fill: "currentColor"
285
+ }
286
+ ),
287
+ /* @__PURE__ */ jsxRuntime.jsx(
288
+ "path",
289
+ {
290
+ 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",
291
+ fill: "currentColor"
292
+ }
293
+ ),
294
+ /* @__PURE__ */ jsxRuntime.jsx(
295
+ "path",
296
+ {
297
+ 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",
298
+ fill: "currentColor"
299
+ }
300
+ ),
301
+ /* @__PURE__ */ jsxRuntime.jsx(
302
+ "path",
303
+ {
304
+ 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",
305
+ fill: "currentColor"
306
+ }
307
+ ),
308
+ /* @__PURE__ */ jsxRuntime.jsx(
309
+ "path",
310
+ {
311
+ 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",
312
+ fill: "currentColor"
313
+ }
314
+ ),
315
+ /* @__PURE__ */ jsxRuntime.jsx(
316
+ "path",
317
+ {
318
+ 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",
319
+ fill: "currentColor"
320
+ }
321
+ ),
322
+ /* @__PURE__ */ jsxRuntime.jsx(
323
+ "path",
324
+ {
325
+ 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",
326
+ fill: "currentColor"
327
+ }
328
+ ),
329
+ /* @__PURE__ */ jsxRuntime.jsx(
330
+ "path",
331
+ {
332
+ 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",
333
+ fill: "currentColor"
334
+ }
335
+ ),
336
+ /* @__PURE__ */ jsxRuntime.jsx(
337
+ "path",
338
+ {
339
+ 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",
340
+ fill: "currentColor"
341
+ }
342
+ ),
343
+ /* @__PURE__ */ jsxRuntime.jsx(
344
+ "path",
345
+ {
346
+ 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",
347
+ fill: "currentColor"
348
+ }
349
+ )
350
+ ]
351
+ }
352
+ );
353
+ };
284
354
 
285
355
  // src/components/ui/IconButton.variants.ts
286
356
  var iconButtonVariants = {
287
357
  size: {
288
- small: "lua:p-2 lua:size-7",
289
- default: "lua:p-2 lua:size-10",
290
- large: "lua:p-3 lua:size-12"
358
+ sm: "lua:p-2 lua:size-7",
359
+ md: "lua:p-2 lua:size-10",
360
+ lg: "lua:p-3 lua:size-12"
291
361
  }
292
362
  };
293
363
  var IconButton = React138__namespace.forwardRef(
294
364
  ({
295
365
  className,
296
366
  variant,
297
- size = "default",
367
+ size = "md",
298
368
  asChild = false,
299
369
  children,
300
370
  loading = false,
@@ -327,7 +397,7 @@ var IconButton = React138__namespace.forwardRef(
327
397
  children: loading ? /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: /* @__PURE__ */ jsxRuntime.jsx(
328
398
  LogoSpinner,
329
399
  {
330
- size: size === "small" ? 16 : size === "large" ? 24 : 20,
400
+ size: size === "sm" ? 16 : size === "lg" ? 24 : 20,
331
401
  className: "lua:text-current",
332
402
  "aria-hidden": "true"
333
403
  }
@@ -392,8 +462,8 @@ var Input = React138__namespace.forwardRef(
392
462
  "lua:border-input lua:text-foreground",
393
463
  "lua:focus-visible:ring-ring",
394
464
  hasError && [
395
- "lua:border-destructive",
396
- "lua:focus-visible:ring-destructive",
465
+ "lua:border-danger",
466
+ "lua:focus-visible:ring-danger",
397
467
  "lua:text-foreground"
398
468
  ],
399
469
  hasSuccess && [
@@ -432,7 +502,7 @@ var Input = React138__namespace.forwardRef(
432
502
  "p",
433
503
  {
434
504
  id: errorId,
435
- className: "lua:mt-2 lua:text-sm lua:text-destructive",
505
+ className: "lua:mt-2 lua:text-sm lua:text-danger",
436
506
  role: "alert",
437
507
  "aria-live": "polite",
438
508
  children: error
@@ -470,7 +540,7 @@ var alertVariants = classVarianceAuthority.cva(
470
540
  ].join(" "),
471
541
  danger: [
472
542
  "lua:bg-red-50 lua:dark:bg-red-900",
473
- "lua:border-destructive",
543
+ "lua:border-danger",
474
544
  "lua:text-red-900 lua:dark:text-red-100"
475
545
  ].join(" "),
476
546
  warning: [
@@ -5065,8 +5135,8 @@ var Textarea = React138__namespace.forwardRef(
5065
5135
  "lua:border-input lua:text-foreground",
5066
5136
  "lua:focus-visible:ring-ring",
5067
5137
  hasError && [
5068
- "lua:border-destructive",
5069
- "lua:focus-visible:ring-destructive",
5138
+ "lua:border-danger",
5139
+ "lua:focus-visible:ring-danger",
5070
5140
  "lua:text-foreground"
5071
5141
  ],
5072
5142
  hasSuccess && [
@@ -5102,7 +5172,7 @@ var Textarea = React138__namespace.forwardRef(
5102
5172
  "p",
5103
5173
  {
5104
5174
  id: errorId,
5105
- className: "lua:mt-2 lua:text-sm lua:text-destructive",
5175
+ className: "lua:mt-2 lua:text-sm lua:text-danger",
5106
5176
  role: "alert",
5107
5177
  "aria-live": "polite",
5108
5178
  children: error
@@ -5445,7 +5515,7 @@ var CarouselItem = React138__namespace.forwardRef(({ className, ...props }, ref)
5445
5515
  );
5446
5516
  });
5447
5517
  CarouselItem.displayName = "CarouselItem";
5448
- var CarouselPrevious = React138__namespace.forwardRef(({ className, variant = "outline", size = "small", ...props }, ref) => {
5518
+ var CarouselPrevious = React138__namespace.forwardRef(({ className, variant = "outline", size = "sm", ...props }, ref) => {
5449
5519
  const { orientation, scrollPrev, canScrollPrev } = useCarousel();
5450
5520
  return /* @__PURE__ */ jsxRuntime.jsx(
5451
5521
  Button,
@@ -5467,7 +5537,7 @@ var CarouselPrevious = React138__namespace.forwardRef(({ className, variant = "o
5467
5537
  );
5468
5538
  });
5469
5539
  CarouselPrevious.displayName = "CarouselPrevious";
5470
- var CarouselNext = React138__namespace.forwardRef(({ className, variant = "outline", size = "small", ...props }, ref) => {
5540
+ var CarouselNext = React138__namespace.forwardRef(({ className, variant = "outline", size = "sm", ...props }, ref) => {
5471
5541
  const { orientation, scrollNext, canScrollNext } = useCarousel();
5472
5542
  return /* @__PURE__ */ jsxRuntime.jsx(
5473
5543
  Button,
@@ -6356,7 +6426,7 @@ var Checkbox = React138__namespace.forwardRef(({ className, ...props }, ref) =>
6356
6426
  {
6357
6427
  ref,
6358
6428
  className: cn(
6359
- "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",
6429
+ "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",
6360
6430
  className
6361
6431
  ),
6362
6432
  ...props,
@@ -7077,6 +7147,10 @@ var luaniverseSafelist = [
7077
7147
  "lua:active:bg-warning-active",
7078
7148
  "lua:focus-visible:bg-warning-base",
7079
7149
  // Semantic Color Tokens - Disabled State
7150
+ "lua:bg-disabled",
7151
+ "lua:text-disabled-foreground",
7152
+ "lua:disabled:bg-disabled",
7153
+ "lua:disabled:text-disabled-foreground",
7080
7154
  "lua:bg-disabled-bg",
7081
7155
  "lua:text-disabled-text",
7082
7156
  "lua:border-disabled-border",
@@ -7174,6 +7248,7 @@ var luaniverseSafelist = [
7174
7248
  "lua:border-primary",
7175
7249
  "lua:border-secondary",
7176
7250
  "lua:border-destructive",
7251
+ "lua:border-danger",
7177
7252
  "lua:border-success",
7178
7253
  "lua:border-warning",
7179
7254
  "lua:border-info",
@@ -7225,7 +7300,13 @@ var luaniverseSafelist = [
7225
7300
  // Semantic Color Tokens - Accent
7226
7301
  "lua:bg-accent",
7227
7302
  "lua:text-accent-foreground",
7228
- // Semantic Color Tokens - Destructive (Danger - Red)
7303
+ // Semantic Color Tokens - Danger (Error/Validation Indicators)
7304
+ "lua:text-danger",
7305
+ "lua:border-danger",
7306
+ "lua:bg-danger",
7307
+ "lua:text-danger-foreground",
7308
+ "lua:hover:bg-danger-hover",
7309
+ // Semantic Color Tokens - Destructive (Action - Dark Maroon)
7229
7310
  "lua:bg-destructive",
7230
7311
  "lua:text-destructive-foreground",
7231
7312
  "lua:bg-destructive-hover",
@@ -7400,6 +7481,32 @@ var luaniverseSafelist = [
7400
7481
  "lua:before:mr-4",
7401
7482
  "lua:before:min-w-[100px]",
7402
7483
  "lua:md:before:content-none",
7484
+ // Button loading state
7485
+ "lua-btn-loading",
7486
+ "lua-btn-loader-dot",
7487
+ // Button
7488
+ "lua:gap-1.5",
7489
+ "lua:h-7",
7490
+ "lua:h-9",
7491
+ "lua:h-12",
7492
+ "lua:leading-5",
7493
+ "lua:leading-6",
7494
+ "lua:size-4",
7495
+ "lua:text-current",
7496
+ "lua:pl-3",
7497
+ "lua:pr-3",
7498
+ "lua:disabled:bg-black/5",
7499
+ "lua:disabled:text-black/15",
7500
+ "lua:disabled:shadow-none",
7501
+ "lua:disabled:border-transparent",
7502
+ "lua:active:bg-primary-active",
7503
+ "lua:active:text-primary-foreground",
7504
+ "lua:active:bg-secondary-active",
7505
+ "lua:active:bg-secondary-hover",
7506
+ "lua:active:bg-secondary",
7507
+ "lua:active:bg-default-active",
7508
+ "lua:active:bg-destructive-active",
7509
+ "lua:hover:bg-muted",
7403
7510
  // IconButton
7404
7511
  "lua:size-7",
7405
7512
  "lua:size-10",
@@ -7418,7 +7525,7 @@ var luaniverseSafelist = [
7418
7525
  "lua:data-[state=checked]:bg-primary",
7419
7526
  "lua:data-[state=checked]:text-primary-foreground",
7420
7527
  "lua:data-[state=checked]:border-primary",
7421
- "lua:aria-[invalid=true]:border-destructive",
7528
+ "lua:aria-[invalid=true]:border-danger",
7422
7529
  "lua:disabled:opacity-50",
7423
7530
  "lua:disabled:cursor-not-allowed",
7424
7531
  "lua:focus-visible:ring-offset-2",
@@ -7573,7 +7680,9 @@ var luaniverseSafelist = [
7573
7680
  "lua:border-input",
7574
7681
  "lua:focus-visible:ring-ring",
7575
7682
  "lua:border-destructive",
7683
+ "lua:border-danger",
7576
7684
  "lua:focus-visible:ring-destructive",
7685
+ "lua:focus-visible:ring-danger",
7577
7686
  "lua:border-success",
7578
7687
  "lua:focus-visible:ring-success",
7579
7688
  "lua:opacity-50",