@andrilla/mado-ui 1.0.7 → 1.0.9

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.js CHANGED
@@ -5,7 +5,6 @@ import * as React from "react";
5
5
  import { Children, Suspense, cloneElement, createContext, isValidElement, useCallback, useContext, useEffect, useEffectEvent, useId, useLayoutEffect, useRef, useState, useSyncExternalStore } from "react";
6
6
  import * as ReactDOM from "react-dom";
7
7
  import { createPortal } from "react-dom";
8
-
9
8
  //#region src/utils/custom-tailwind-merge.ts
10
9
  const isInteger = (classPart) => /^\d+$/.test(classPart);
11
10
  const isFloat = (classPart) => /^\d+\.\d+$/.test(classPart);
@@ -198,458 +197,765 @@ function extendMadoTailwindMerge(configExtension) {
198
197
  ...configExtension
199
198
  });
200
199
  }
201
-
202
200
  //#endregion
203
- //#region src/components/link.tsx
204
- function Anchor({ as, className, disabled, href, onClick, target, rel, ...props }) {
205
- const isExternal = `${href}`.startsWith("http"), hasHash = `${href}`.includes("#");
206
- const handleClick = (e) => {
207
- if (disabled) return e.preventDefault();
208
- onClick?.(e);
209
- setTimeout(() => history.replaceState({}, document.title, location.pathname), 100);
210
- };
211
- return /* @__PURE__ */ jsx(as || "a", {
212
- ...props,
213
- "aria-disabled": disabled,
214
- className: twMerge("ease-exponential inline-block transition-transform duration-300 active:scale-95 pointer-fine:active:scale-95", className, disabled && "pointer-events-none"),
215
- href,
216
- target: target || (isExternal ? "_blank" : "_self"),
217
- onClick: hasHash ? handleClick : onClick,
218
- rel: rel !== void 0 ? rel === "nofollow" ? `${rel} noreferrer noopener` : `${rel} prefetch` : isExternal ? "nofollow noreferrer noopener" : "prefetch"
219
- });
220
- }
221
- const baseClasses = "isolate after:absolute after:left-1/2 after:-z-10 after:-translate-x-1/2 after:duration-500 active:after:opacity-100 pointer-fine:active:after:opacity-100";
222
- const lineStaticClasses = twJoin(baseClasses, "whitespace-nowrap after:-bottom-0.5 after:w-[calc(100%+0.15rem)] after:rounded-full after:border after:border-current");
223
- const lineClasses = twJoin(lineStaticClasses, "whitespace-nowrap after:transition-transform after:ease-exponential");
224
- const scaleXClasses = "after:scale-x-0 active:after:scale-x-100 pointer-fine:hover:after:scale-x-100 pointer-fine:active:after:scale-x-100";
225
- const scaleYClasses = "after:scale-y-0 active:after:scale-y-100 pointer-fine:hover:after:scale-y-100 pointer-fine:active:after:scale-y-100";
226
- const lineNormalClasses = twJoin([
227
- lineClasses,
228
- scaleYClasses,
229
- "after:origin-bottom after:translate-y-0.5 active:after:translate-y-0 pointer-fine:hover:after:translate-y-0"
230
- ]);
231
- const lineLtrClasses = twJoin([
232
- lineClasses,
233
- scaleXClasses,
234
- "after:origin-left"
235
- ]);
236
- const lineRtlClasses = twJoin([
237
- lineClasses,
238
- scaleXClasses,
239
- "after:origin-right"
240
- ]);
241
- const lineCenterClasses = twJoin([lineClasses, scaleXClasses]);
242
- const lineLiftClasses = twJoin([
243
- lineClasses,
244
- scaleYClasses,
245
- "after:origin-bottom after:translate-y-1 after:scale-x-75 active:after:translate-y-0 active:after:scale-x-100 pointer-fine:hover:after:translate-y-0 pointer-fine:hover:after:scale-x-100 pointer-fine:active:after:translate-y-0 pointer-fine:active:after:scale-x-100"
246
- ]);
247
- const fillClasses = twJoin(baseClasses, "whitespace-nowrap [--text-color:var(--base-theme-color--foreground)] transition-[transform,color] after:top-1/2 after:h-[calc(100%+0.05rem)] after:w-[calc(100%+0.25rem)] after:-translate-y-1/2 after:rounded after:ease-exponential active:text-(--text-color) pointer-fine:hover:text-(--text-color) pointer-fine:active:text-(--text-color)");
248
- const getFillColorTransitionClasses = (theme = "blue", customTheme) => {
249
- let fillColorTransitionClasses = twJoin(fillClasses, "transition-[scale,color] after:bg-(--theme-color)");
201
+ //#region src/utils/get-theme-color.ts
202
+ function getThemeColor(theme) {
250
203
  switch (theme) {
204
+ case "amber-50": return "[--theme-color:var(--color-amber-50)]";
205
+ case "amber-100": return "[--theme-color:var(--color-amber-100)]";
206
+ case "amber-200": return "[--theme-color:var(--color-amber-200)]";
207
+ case "amber-300": return "[--theme-color:var(--color-amber-300)]";
208
+ case "amber-400": return "[--theme-color:var(--color-amber-400)]";
251
209
  case "amber":
252
- fillColorTransitionClasses = twJoin(fillColorTransitionClasses, "[--theme-color:var(--color-amber-500)]");
253
- break;
210
+ case "amber-500": return "[--theme-color:var(--color-amber-500)]";
211
+ case "amber-600": return "[--theme-color:var(--color-amber-600)]";
212
+ case "amber-700": return "[--theme-color:var(--color-amber-700)]";
213
+ case "amber-800": return "[--theme-color:var(--color-amber-800)]";
214
+ case "amber-900": return "[--theme-color:var(--color-amber-900)]";
215
+ case "amber-950": return "[--theme-color:var(--color-amber-950)]";
216
+ case "blue-50": return "[--theme-color:var(--color-blue-50)]";
217
+ case "blue-100": return "[--theme-color:var(--color-blue-100)]";
218
+ case "blue-200": return "[--theme-color:var(--color-blue-200)]";
219
+ case "blue-300": return "[--theme-color:var(--color-blue-300)]";
220
+ case "blue-400": return "[--theme-color:var(--color-blue-400)]";
254
221
  case "blue":
255
- fillColorTransitionClasses = twJoin(fillColorTransitionClasses, "[--theme-color:var(--color-blue-500)]");
256
- break;
222
+ case "blue-500": return "[--theme-color:var(--color-blue-500)]";
223
+ case "blue-600": return "[--theme-color:var(--color-blue-600)]";
224
+ case "blue-700": return "[--theme-color:var(--color-blue-700)]";
225
+ case "blue-800": return "[--theme-color:var(--color-blue-800)]";
226
+ case "blue-900": return "[--theme-color:var(--color-blue-900)]";
227
+ case "blue-950": return "[--theme-color:var(--color-blue-950)]";
228
+ case "cyan-50": return "[--theme-color:var(--color-cyan-50)]";
229
+ case "cyan-100": return "[--theme-color:var(--color-cyan-100)]";
230
+ case "cyan-200": return "[--theme-color:var(--color-cyan-200)]";
231
+ case "cyan-300": return "[--theme-color:var(--color-cyan-300)]";
232
+ case "cyan-400": return "[--theme-color:var(--color-cyan-400)]";
257
233
  case "cyan":
258
- fillColorTransitionClasses = twJoin(fillColorTransitionClasses, "[--theme-color:var(--color-cyan-500)]");
259
- break;
234
+ case "cyan-500": return "[--theme-color:var(--color-cyan-500)]";
235
+ case "cyan-600": return "[--theme-color:var(--color-cyan-600)]";
236
+ case "cyan-700": return "[--theme-color:var(--color-cyan-700)]";
237
+ case "cyan-800": return "[--theme-color:var(--color-cyan-800)]";
238
+ case "cyan-900": return "[--theme-color:var(--color-cyan-900)]";
239
+ case "cyan-950": return "[--theme-color:var(--color-cyan-950)]";
240
+ case "emerald-50": return "[--theme-color:var(--color-emerald-50)]";
241
+ case "emerald-100": return "[--theme-color:var(--color-emerald-100)]";
242
+ case "emerald-200": return "[--theme-color:var(--color-emerald-200)]";
243
+ case "emerald-300": return "[--theme-color:var(--color-emerald-300)]";
244
+ case "emerald-400": return "[--theme-color:var(--color-emerald-400)]";
260
245
  case "emerald":
261
- fillColorTransitionClasses = twJoin(fillColorTransitionClasses, "[--theme-color:var(--color-emerald-500)]");
262
- break;
246
+ case "emerald-500": return "[--theme-color:var(--color-emerald-500)]";
247
+ case "emerald-600": return "[--theme-color:var(--color-emerald-600)]";
248
+ case "emerald-700": return "[--theme-color:var(--color-emerald-700)]";
249
+ case "emerald-800": return "[--theme-color:var(--color-emerald-800)]";
250
+ case "emerald-900": return "[--theme-color:var(--color-emerald-900)]";
251
+ case "emerald-950": return "[--theme-color:var(--color-emerald-950)]";
252
+ case "fuchsia-50": return "[--theme-color:var(--color-fuchsia-50)]";
253
+ case "fuchsia-100": return "[--theme-color:var(--color-fuchsia-100)]";
254
+ case "fuchsia-200": return "[--theme-color:var(--color-fuchsia-200)]";
255
+ case "fuchsia-300": return "[--theme-color:var(--color-fuchsia-300)]";
256
+ case "fuchsia-400": return "[--theme-color:var(--color-fuchsia-400)]";
263
257
  case "fuchsia":
264
- fillColorTransitionClasses = twJoin(fillColorTransitionClasses, "[--theme-color:var(--color-fuchsia-500)]");
265
- break;
258
+ case "fuchsia-500": return "[--theme-color:var(--color-fuchsia-500)]";
259
+ case "fuchsia-600": return "[--theme-color:var(--color-fuchsia-600)]";
260
+ case "fuchsia-700": return "[--theme-color:var(--color-fuchsia-700)]";
261
+ case "fuchsia-800": return "[--theme-color:var(--color-fuchsia-800)]";
262
+ case "fuchsia-900": return "[--theme-color:var(--color-fuchsia-900)]";
263
+ case "fuchsia-950": return "[--theme-color:var(--color-fuchsia-950)]";
264
+ case "gray-50": return "[--theme-color:var(--color-gray-50)]";
265
+ case "gray-100": return "[--theme-color:var(--color-gray-100)]";
266
+ case "gray-200": return "[--theme-color:var(--color-gray-200)]";
267
+ case "gray-300": return "[--theme-color:var(--color-gray-300)]";
268
+ case "gray-400": return "[--theme-color:var(--color-gray-400)]";
266
269
  case "gray":
267
- fillColorTransitionClasses = twJoin(fillColorTransitionClasses, "[--theme-color:var(--color-gray-500)]");
268
- break;
270
+ case "gray-500": return "[--theme-color:var(--color-gray-500)]";
271
+ case "gray-600": return "[--theme-color:var(--color-gray-600)]";
272
+ case "gray-700": return "[--theme-color:var(--color-gray-700)]";
273
+ case "gray-800": return "[--theme-color:var(--color-gray-800)]";
274
+ case "gray-900": return "[--theme-color:var(--color-gray-900)]";
275
+ case "gray-950": return "[--theme-color:var(--color-gray-950)]";
276
+ case "green-50": return "[--theme-color:var(--color-green-50)]";
277
+ case "green-100": return "[--theme-color:var(--color-green-100)]";
278
+ case "green-200": return "[--theme-color:var(--color-green-200)]";
279
+ case "green-300": return "[--theme-color:var(--color-green-300)]";
280
+ case "green-400": return "[--theme-color:var(--color-green-400)]";
269
281
  case "green":
270
- fillColorTransitionClasses = twJoin(fillColorTransitionClasses, "[--theme-color:var(--color-green-500)]");
271
- break;
282
+ case "green-500": return "[--theme-color:var(--color-green-500)]";
283
+ case "green-600": return "[--theme-color:var(--color-green-600)]";
284
+ case "green-700": return "[--theme-color:var(--color-green-700)]";
285
+ case "green-800": return "[--theme-color:var(--color-green-800)]";
286
+ case "green-900": return "[--theme-color:var(--color-green-900)]";
287
+ case "green-950": return "[--theme-color:var(--color-green-950)]";
288
+ case "indigo-50": return "[--theme-color:var(--color-indigo-50)]";
289
+ case "indigo-100": return "[--theme-color:var(--color-indigo-100)]";
290
+ case "indigo-200": return "[--theme-color:var(--color-indigo-200)]";
291
+ case "indigo-300": return "[--theme-color:var(--color-indigo-300)]";
292
+ case "indigo-400": return "[--theme-color:var(--color-indigo-400)]";
272
293
  case "indigo":
273
- fillColorTransitionClasses = twJoin(fillColorTransitionClasses, "[--theme-color:var(--color-indigo-500)]");
274
- break;
294
+ case "indigo-500": return "[--theme-color:var(--color-indigo-500)]";
295
+ case "indigo-600": return "[--theme-color:var(--color-indigo-600)]";
296
+ case "indigo-700": return "[--theme-color:var(--color-indigo-700)]";
297
+ case "indigo-800": return "[--theme-color:var(--color-indigo-800)]";
298
+ case "indigo-900": return "[--theme-color:var(--color-indigo-900)]";
299
+ case "indigo-950": return "[--theme-color:var(--color-indigo-950)]";
300
+ case "lime-50": return "[--theme-color:var(--color-lime-50)]";
301
+ case "lime-100": return "[--theme-color:var(--color-lime-100)]";
302
+ case "lime-200": return "[--theme-color:var(--color-lime-200)]";
303
+ case "lime-300": return "[--theme-color:var(--color-lime-300)]";
304
+ case "lime-400": return "[--theme-color:var(--color-lime-400)]";
275
305
  case "lime":
276
- fillColorTransitionClasses = twJoin(fillColorTransitionClasses, "[--theme-color:var(--color-lime-500)]");
277
- break;
306
+ case "lime-500": return "[--theme-color:var(--color-lime-500)]";
307
+ case "lime-600": return "[--theme-color:var(--color-lime-600)]";
308
+ case "lime-700": return "[--theme-color:var(--color-lime-700)]";
309
+ case "lime-800": return "[--theme-color:var(--color-lime-800)]";
310
+ case "lime-900": return "[--theme-color:var(--color-lime-900)]";
311
+ case "lime-950": return "[--theme-color:var(--color-lime-950)]";
312
+ case "mauve-50": return "[--theme-color:var(--color-mauve-50)]";
313
+ case "mauve-100": return "[--theme-color:var(--color-mauve-100)]";
314
+ case "mauve-200": return "[--theme-color:var(--color-mauve-200)]";
315
+ case "mauve-300": return "[--theme-color:var(--color-mauve-300)]";
316
+ case "mauve-400": return "[--theme-color:var(--color-mauve-400)]";
278
317
  case "mauve":
279
- fillColorTransitionClasses = twJoin(fillColorTransitionClasses, "[--theme-color:var(--color-mauve-500)]");
280
- break;
318
+ case "mauve-500": return "[--theme-color:var(--color-mauve-500)]";
319
+ case "mauve-600": return "[--theme-color:var(--color-mauve-600)]";
320
+ case "mauve-700": return "[--theme-color:var(--color-mauve-700)]";
321
+ case "mauve-800": return "[--theme-color:var(--color-mauve-800)]";
322
+ case "mauve-900": return "[--theme-color:var(--color-mauve-900)]";
323
+ case "mauve-950": return "[--theme-color:var(--color-mauve-950)]";
324
+ case "mist-50": return "[--theme-color:var(--color-mist-50)]";
325
+ case "mist-100": return "[--theme-color:var(--color-mist-100)]";
326
+ case "mist-200": return "[--theme-color:var(--color-mist-200)]";
327
+ case "mist-300": return "[--theme-color:var(--color-mist-300)]";
328
+ case "mist-400": return "[--theme-color:var(--color-mist-400)]";
281
329
  case "mist":
282
- fillColorTransitionClasses = twJoin(fillColorTransitionClasses, "[--theme-color:var(--color-mist-500)]");
283
- break;
330
+ case "mist-500": return "[--theme-color:var(--color-mist-500)]";
331
+ case "mist-600": return "[--theme-color:var(--color-mist-600)]";
332
+ case "mist-700": return "[--theme-color:var(--color-mist-700)]";
333
+ case "mist-800": return "[--theme-color:var(--color-mist-800)]";
334
+ case "mist-900": return "[--theme-color:var(--color-mist-900)]";
335
+ case "mist-950": return "[--theme-color:var(--color-mist-950)]";
336
+ case "neutral-50": return "[--theme-color:var(--color-neutral-50)]";
337
+ case "neutral-100": return "[--theme-color:var(--color-neutral-100)]";
338
+ case "neutral-200": return "[--theme-color:var(--color-neutral-200)]";
339
+ case "neutral-300": return "[--theme-color:var(--color-neutral-300)]";
340
+ case "neutral-400": return "[--theme-color:var(--color-neutral-400)]";
284
341
  case "neutral":
285
- fillColorTransitionClasses = twJoin(fillColorTransitionClasses, "[--theme-color:var(--color-neutral-500)]");
286
- break;
342
+ case "neutral-500": return "[--theme-color:var(--color-neutral-500)]";
343
+ case "neutral-600": return "[--theme-color:var(--color-neutral-600)]";
344
+ case "neutral-700": return "[--theme-color:var(--color-neutral-700)]";
345
+ case "neutral-800": return "[--theme-color:var(--color-neutral-800)]";
346
+ case "neutral-900": return "[--theme-color:var(--color-neutral-900)]";
347
+ case "neutral-950": return "[--theme-color:var(--color-neutral-950)]";
348
+ case "olive-50": return "[--theme-color:var(--color-olive-50)]";
349
+ case "olive-100": return "[--theme-color:var(--color-olive-100)]";
350
+ case "olive-200": return "[--theme-color:var(--color-olive-200)]";
351
+ case "olive-300": return "[--theme-color:var(--color-olive-300)]";
352
+ case "olive-400": return "[--theme-color:var(--color-olive-400)]";
287
353
  case "olive":
288
- fillColorTransitionClasses = twJoin(fillColorTransitionClasses, "[--theme-color:var(--color-olive-500)]");
289
- break;
354
+ case "olive-500": return "[--theme-color:var(--color-olive-500)]";
355
+ case "olive-600": return "[--theme-color:var(--color-olive-600)]";
356
+ case "olive-700": return "[--theme-color:var(--color-olive-700)]";
357
+ case "olive-800": return "[--theme-color:var(--color-olive-800)]";
358
+ case "olive-900": return "[--theme-color:var(--color-olive-900)]";
359
+ case "olive-950": return "[--theme-color:var(--color-olive-950)]";
360
+ case "orange-50": return "[--theme-color:var(--color-orange-50)]";
361
+ case "orange-100": return "[--theme-color:var(--color-orange-100)]";
362
+ case "orange-200": return "[--theme-color:var(--color-orange-200)]";
363
+ case "orange-300": return "[--theme-color:var(--color-orange-300)]";
364
+ case "orange-400": return "[--theme-color:var(--color-orange-400)]";
290
365
  case "orange":
291
- fillColorTransitionClasses = twJoin(fillColorTransitionClasses, "[--theme-color:var(--color-orange-500)]");
292
- break;
366
+ case "orange-500": return "[--theme-color:var(--color-orange-500)]";
367
+ case "orange-600": return "[--theme-color:var(--color-orange-600)]";
368
+ case "orange-700": return "[--theme-color:var(--color-orange-700)]";
369
+ case "orange-800": return "[--theme-color:var(--color-orange-800)]";
370
+ case "orange-900": return "[--theme-color:var(--color-orange-900)]";
371
+ case "orange-950": return "[--theme-color:var(--color-orange-950)]";
372
+ case "pink-50": return "[--theme-color:var(--color-pink-50)]";
373
+ case "pink-100": return "[--theme-color:var(--color-pink-100)]";
374
+ case "pink-200": return "[--theme-color:var(--color-pink-200)]";
375
+ case "pink-300": return "[--theme-color:var(--color-pink-300)]";
376
+ case "pink-400": return "[--theme-color:var(--color-pink-400)]";
293
377
  case "pink":
294
- fillColorTransitionClasses = twJoin(fillColorTransitionClasses, "[--theme-color:var(--color-pink-500)]");
295
- break;
378
+ case "pink-500": return "[--theme-color:var(--color-pink-500)]";
379
+ case "pink-600": return "[--theme-color:var(--color-pink-600)]";
380
+ case "pink-700": return "[--theme-color:var(--color-pink-700)]";
381
+ case "pink-800": return "[--theme-color:var(--color-pink-800)]";
382
+ case "pink-900": return "[--theme-color:var(--color-pink-900)]";
383
+ case "pink-950": return "[--theme-color:var(--color-pink-950)]";
384
+ case "purple-50": return "[--theme-color:var(--color-purple-50)]";
385
+ case "purple-100": return "[--theme-color:var(--color-purple-100)]";
386
+ case "purple-200": return "[--theme-color:var(--color-purple-200)]";
387
+ case "purple-300": return "[--theme-color:var(--color-purple-300)]";
388
+ case "purple-400": return "[--theme-color:var(--color-purple-400)]";
296
389
  case "purple":
297
- fillColorTransitionClasses = twJoin(fillColorTransitionClasses, "[--theme-color:var(--color-purple-500)]");
298
- break;
390
+ case "purple-500": return "[--theme-color:var(--color-purple-500)]";
391
+ case "purple-600": return "[--theme-color:var(--color-purple-600)]";
392
+ case "purple-700": return "[--theme-color:var(--color-purple-700)]";
393
+ case "purple-800": return "[--theme-color:var(--color-purple-800)]";
394
+ case "purple-900": return "[--theme-color:var(--color-purple-900)]";
395
+ case "purple-950": return "[--theme-color:var(--color-purple-950)]";
396
+ case "red-50": return "[--theme-color:var(--color-red-50)]";
397
+ case "red-100": return "[--theme-color:var(--color-red-100)]";
398
+ case "red-200": return "[--theme-color:var(--color-red-200)]";
399
+ case "red-300": return "[--theme-color:var(--color-red-300)]";
400
+ case "red-400": return "[--theme-color:var(--color-red-400)]";
299
401
  case "red":
300
- fillColorTransitionClasses = twJoin(fillColorTransitionClasses, "[--theme-color:var(--color-red-500)]");
301
- break;
402
+ case "red-500": return "[--theme-color:var(--color-red-500)]";
403
+ case "red-600": return "[--theme-color:var(--color-red-600)]";
404
+ case "red-700": return "[--theme-color:var(--color-red-700)]";
405
+ case "red-800": return "[--theme-color:var(--color-red-800)]";
406
+ case "red-900": return "[--theme-color:var(--color-red-900)]";
407
+ case "red-950": return "[--theme-color:var(--color-red-950)]";
408
+ case "rose-50": return "[--theme-color:var(--color-rose-50)]";
409
+ case "rose-100": return "[--theme-color:var(--color-rose-100)]";
410
+ case "rose-200": return "[--theme-color:var(--color-rose-200)]";
411
+ case "rose-300": return "[--theme-color:var(--color-rose-300)]";
412
+ case "rose-400": return "[--theme-color:var(--color-rose-400)]";
302
413
  case "rose":
303
- fillColorTransitionClasses = twJoin(fillColorTransitionClasses, "[--theme-color:var(--color-rose-500)]");
304
- break;
414
+ case "rose-500": return "[--theme-color:var(--color-rose-500)]";
415
+ case "rose-600": return "[--theme-color:var(--color-rose-600)]";
416
+ case "rose-700": return "[--theme-color:var(--color-rose-700)]";
417
+ case "rose-800": return "[--theme-color:var(--color-rose-800)]";
418
+ case "rose-900": return "[--theme-color:var(--color-rose-900)]";
419
+ case "rose-950": return "[--theme-color:var(--color-rose-950)]";
420
+ case "sky-50": return "[--theme-color:var(--color-sky-50)]";
421
+ case "sky-100": return "[--theme-color:var(--color-sky-100)]";
422
+ case "sky-200": return "[--theme-color:var(--color-sky-200)]";
423
+ case "sky-300": return "[--theme-color:var(--color-sky-300)]";
424
+ case "sky-400": return "[--theme-color:var(--color-sky-400)]";
305
425
  case "sky":
306
- fillColorTransitionClasses = twJoin(fillColorTransitionClasses, "[--theme-color:var(--color-sky-500)]");
307
- break;
426
+ case "sky-500": return "[--theme-color:var(--color-sky-500)]";
427
+ case "sky-600": return "[--theme-color:var(--color-sky-600)]";
428
+ case "sky-700": return "[--theme-color:var(--color-sky-700)]";
429
+ case "sky-800": return "[--theme-color:var(--color-sky-800)]";
430
+ case "sky-900": return "[--theme-color:var(--color-sky-900)]";
431
+ case "sky-950": return "[--theme-color:var(--color-sky-950)]";
432
+ case "slate-50": return "[--theme-color:var(--color-slate-50)]";
433
+ case "slate-100": return "[--theme-color:var(--color-slate-100)]";
434
+ case "slate-200": return "[--theme-color:var(--color-slate-200)]";
435
+ case "slate-300": return "[--theme-color:var(--color-slate-300)]";
436
+ case "slate-400": return "[--theme-color:var(--color-slate-400)]";
308
437
  case "slate":
309
- fillColorTransitionClasses = twJoin(fillColorTransitionClasses, "[--theme-color:var(--color-slate-500)]");
310
- break;
438
+ case "slate-500": return "[--theme-color:var(--color-slate-500)]";
439
+ case "slate-600": return "[--theme-color:var(--color-slate-600)]";
440
+ case "slate-700": return "[--theme-color:var(--color-slate-700)]";
441
+ case "slate-800": return "[--theme-color:var(--color-slate-800)]";
442
+ case "slate-900": return "[--theme-color:var(--color-slate-900)]";
443
+ case "slate-950": return "[--theme-color:var(--color-slate-950)]";
444
+ case "stone-50": return "[--theme-color:var(--color-stone-50)]";
445
+ case "stone-100": return "[--theme-color:var(--color-stone-100)]";
446
+ case "stone-200": return "[--theme-color:var(--color-stone-200)]";
447
+ case "stone-300": return "[--theme-color:var(--color-stone-300)]";
448
+ case "stone-400": return "[--theme-color:var(--color-stone-400)]";
311
449
  case "stone":
312
- fillColorTransitionClasses = twJoin(fillColorTransitionClasses, "[--theme-color:var(--color-stone-500)]");
313
- break;
450
+ case "stone-500": return "[--theme-color:var(--color-stone-500)]";
451
+ case "stone-600": return "[--theme-color:var(--color-stone-600)]";
452
+ case "stone-700": return "[--theme-color:var(--color-stone-700)]";
453
+ case "stone-800": return "[--theme-color:var(--color-stone-800)]";
454
+ case "stone-900": return "[--theme-color:var(--color-stone-900)]";
455
+ case "stone-950": return "[--theme-color:var(--color-stone-950)]";
456
+ case "taupe-50": return "[--theme-color:var(--color-taupe-50)]";
457
+ case "taupe-100": return "[--theme-color:var(--color-taupe-100)]";
458
+ case "taupe-200": return "[--theme-color:var(--color-taupe-200)]";
459
+ case "taupe-300": return "[--theme-color:var(--color-taupe-300)]";
460
+ case "taupe-400": return "[--theme-color:var(--color-taupe-400)]";
314
461
  case "taupe":
315
- fillColorTransitionClasses = twJoin(fillColorTransitionClasses, "[--theme-color:var(--color-taupe-500)]");
316
- break;
462
+ case "taupe-500": return "[--theme-color:var(--color-taupe-500)]";
463
+ case "taupe-600": return "[--theme-color:var(--color-taupe-600)]";
464
+ case "taupe-700": return "[--theme-color:var(--color-taupe-700)]";
465
+ case "taupe-800": return "[--theme-color:var(--color-taupe-800)]";
466
+ case "taupe-900": return "[--theme-color:var(--color-taupe-900)]";
467
+ case "taupe-950": return "[--theme-color:var(--color-taupe-950)]";
468
+ case "teal-50": return "[--theme-color:var(--color-teal-50)]";
469
+ case "teal-100": return "[--theme-color:var(--color-teal-100)]";
470
+ case "teal-200": return "[--theme-color:var(--color-teal-200)]";
471
+ case "teal-300": return "[--theme-color:var(--color-teal-300)]";
472
+ case "teal-400": return "[--theme-color:var(--color-teal-400)]";
317
473
  case "teal":
318
- fillColorTransitionClasses = twJoin(fillColorTransitionClasses, "[--theme-color:var(--color-teal-500)]");
319
- break;
474
+ case "teal-500": return "[--theme-color:var(--color-teal-500)]";
475
+ case "teal-600": return "[--theme-color:var(--color-teal-600)]";
476
+ case "teal-700": return "[--theme-color:var(--color-teal-700)]";
477
+ case "teal-800": return "[--theme-color:var(--color-teal-800)]";
478
+ case "teal-900": return "[--theme-color:var(--color-teal-900)]";
479
+ case "teal-950": return "[--theme-color:var(--color-teal-950)]";
480
+ case "violet-50": return "[--theme-color:var(--color-violet-50)]";
481
+ case "violet-100": return "[--theme-color:var(--color-violet-100)]";
482
+ case "violet-200": return "[--theme-color:var(--color-violet-200)]";
483
+ case "violet-300": return "[--theme-color:var(--color-violet-300)]";
484
+ case "violet-400": return "[--theme-color:var(--color-violet-400)]";
320
485
  case "violet":
321
- fillColorTransitionClasses = twJoin(fillColorTransitionClasses, "[--theme-color:var(--color-violet-500)]");
322
- break;
486
+ case "violet-500": return "[--theme-color:var(--color-violet-500)]";
487
+ case "violet-600": return "[--theme-color:var(--color-violet-600)]";
488
+ case "violet-700": return "[--theme-color:var(--color-violet-700)]";
489
+ case "violet-800": return "[--theme-color:var(--color-violet-800)]";
490
+ case "violet-900": return "[--theme-color:var(--color-violet-900)]";
491
+ case "violet-950": return "[--theme-color:var(--color-violet-950)]";
492
+ case "yellow-50": return "[--theme-color:var(--color-yellow-50)]";
493
+ case "yellow-100": return "[--theme-color:var(--color-yellow-100)]";
494
+ case "yellow-200": return "[--theme-color:var(--color-yellow-200)]";
495
+ case "yellow-300": return "[--theme-color:var(--color-yellow-300)]";
496
+ case "yellow-400": return "[--theme-color:var(--color-yellow-400)]";
323
497
  case "yellow":
324
- fillColorTransitionClasses = twJoin(fillColorTransitionClasses, "[--theme-color:var(--color-yellow-500)]");
325
- break;
498
+ case "yellow-500": return "[--theme-color:var(--color-yellow-500)]";
499
+ case "yellow-600": return "[--theme-color:var(--color-yellow-600)]";
500
+ case "yellow-700": return "[--theme-color:var(--color-yellow-700)]";
501
+ case "yellow-800": return "[--theme-color:var(--color-yellow-800)]";
502
+ case "yellow-900": return "[--theme-color:var(--color-yellow-900)]";
503
+ case "yellow-950": return "[--theme-color:var(--color-yellow-950)]";
504
+ case "zinc-50": return "[--theme-color:var(--color-zinc-50)]";
505
+ case "zinc-100": return "[--theme-color:var(--color-zinc-100)]";
506
+ case "zinc-200": return "[--theme-color:var(--color-zinc-200)]";
507
+ case "zinc-300": return "[--theme-color:var(--color-zinc-300)]";
508
+ case "zinc-400": return "[--theme-color:var(--color-zinc-400)]";
326
509
  case "zinc":
327
- fillColorTransitionClasses = twJoin(fillColorTransitionClasses, "[--theme-color:var(--color-zinc-500)]");
328
- break;
329
- case "custom":
330
- if (customTheme && customTheme.themeColor && !customTheme.themeColor.includes("[--theme-color:")) throw new Error("`customTheme.themeColor` must modify the `--theme-color` variable on the ::after pseudo element. Otherwise, please use `customTheme.classes`.");
331
- fillColorTransitionClasses = customTheme.themeColor ? twMerge(fillColorTransitionClasses, customTheme.themeColor) : twMerge(fillClasses, customTheme.classes);
332
- break;
333
- default:
334
- fillColorTransitionClasses = twMerge(fillColorTransitionClasses, `[--theme-color:var(--base-theme-color)]`);
335
- break;
510
+ case "zinc-500": return "[--theme-color:var(--color-zinc-500)]";
511
+ case "zinc-600": return "[--theme-color:var(--color-zinc-600)]";
512
+ case "zinc-700": return "[--theme-color:var(--color-zinc-700)]";
513
+ case "zinc-800": return "[--theme-color:var(--color-zinc-800)]";
514
+ case "zinc-900": return "[--theme-color:var(--color-zinc-900)]";
515
+ case "zinc-950": return "[--theme-color:var(--color-zinc-950)]";
516
+ default: return "[--theme-color:var(--base-theme-color)]";
336
517
  }
337
- return fillColorTransitionClasses;
338
- };
339
- const getFillCenterClasses = (theme = "blue", customTheme) => {
340
- let fillCenterColorClasses = twJoin(fillClasses, "after:scale-x-50 after:scale-y-[0.25] after:bg-(--theme-color)/0 after:transition-[scale,background-color] active:after:scale-x-100 active:after:scale-y-100 active:after:bg-(--theme-color) pointer-fine:hover:after:scale-x-100 pointer-fine:hover:after:scale-y-100 pointer-fine:hover:after:bg-(--theme-color) pointer-fine:active:after:scale-x-100 pointer-fine:active:after:scale-y-100 pointer-fine:active:after:bg-(--theme-color)");
518
+ }
519
+ function getTextColor(theme, asVariable) {
341
520
  switch (theme) {
521
+ case "amber-50":
522
+ case "blue-50":
523
+ case "cyan-50":
524
+ case "emerald-50":
525
+ case "fuchsia-50":
526
+ case "gray-50":
527
+ case "green-50":
528
+ case "indigo-50":
529
+ case "lime-50":
530
+ case "mauve-50":
531
+ case "mist-50":
532
+ case "neutral-50":
533
+ case "olive-50":
534
+ case "orange-50":
535
+ case "pink-50":
536
+ case "purple-50":
537
+ case "red-50":
538
+ case "rose-50":
539
+ case "sky-50":
540
+ case "slate-50":
541
+ case "stone-50":
542
+ case "taupe-50":
543
+ case "teal-50":
544
+ case "violet-50":
545
+ case "yellow-50":
546
+ case "zinc-50":
547
+ case "amber-100":
548
+ case "blue-100":
549
+ case "cyan-100":
550
+ case "emerald-100":
551
+ case "fuchsia-100":
552
+ case "gray-100":
553
+ case "green-100":
554
+ case "indigo-100":
555
+ case "lime-100":
556
+ case "mauve-100":
557
+ case "mist-100":
558
+ case "neutral-100":
559
+ case "olive-100":
560
+ case "orange-100":
561
+ case "pink-100":
562
+ case "purple-100":
563
+ case "red-100":
564
+ case "rose-100":
565
+ case "sky-100":
566
+ case "slate-100":
567
+ case "stone-100":
568
+ case "taupe-100":
569
+ case "teal-100":
570
+ case "violet-100":
571
+ case "yellow-100":
572
+ case "zinc-100":
573
+ case "amber-200":
574
+ case "blue-200":
575
+ case "cyan-200":
576
+ case "emerald-200":
577
+ case "fuchsia-200":
578
+ case "gray-200":
579
+ case "green-200":
580
+ case "indigo-200":
581
+ case "lime-200":
582
+ case "mauve-200":
583
+ case "mist-200":
584
+ case "neutral-200":
585
+ case "olive-200":
586
+ case "orange-200":
587
+ case "pink-200":
588
+ case "purple-200":
589
+ case "red-200":
590
+ case "rose-200":
591
+ case "sky-200":
592
+ case "slate-200":
593
+ case "stone-200":
594
+ case "taupe-200":
595
+ case "teal-200":
596
+ case "violet-200":
597
+ case "yellow-200":
598
+ case "zinc-200":
599
+ case "amber-300":
600
+ case "blue-300":
601
+ case "cyan-300":
602
+ case "emerald-300":
603
+ case "fuchsia-300":
604
+ case "gray-300":
605
+ case "green-300":
606
+ case "indigo-300":
607
+ case "lime-300":
608
+ case "mauve-300":
609
+ case "mist-300":
610
+ case "neutral-300":
611
+ case "olive-300":
612
+ case "orange-300":
613
+ case "pink-300":
614
+ case "purple-300":
615
+ case "red-300":
616
+ case "rose-300":
617
+ case "sky-300":
618
+ case "slate-300":
619
+ case "stone-300":
620
+ case "taupe-300":
621
+ case "teal-300":
622
+ case "violet-300":
623
+ case "yellow-300":
624
+ case "zinc-300":
625
+ case "amber-400":
626
+ case "blue-400":
627
+ case "cyan-400":
628
+ case "emerald-400":
629
+ case "fuchsia-400":
630
+ case "gray-400":
631
+ case "green-400":
632
+ case "indigo-400":
633
+ case "lime-400":
634
+ case "mauve-400":
635
+ case "mist-400":
636
+ case "neutral-400":
637
+ case "olive-400":
638
+ case "orange-400":
639
+ case "pink-400":
640
+ case "purple-400":
641
+ case "red-400":
642
+ case "rose-400":
643
+ case "sky-400":
644
+ case "slate-400":
645
+ case "stone-400":
646
+ case "taupe-400":
647
+ case "teal-400":
648
+ case "violet-400":
649
+ case "yellow-400":
650
+ case "zinc-400": return asVariable ? "[--text-color:color-mix(in_oklch,var(--theme-color)_5%,var(--color-black))]" : "text-[color-mix(in_oklch,var(--theme-color)_5%,var(--color-black))]";
342
651
  case "amber":
343
- fillCenterColorClasses = twJoin(fillCenterColorClasses, "[--theme-color:var(--color-amber-500)]");
344
- break;
345
652
  case "blue":
346
- fillCenterColorClasses = twJoin(fillCenterColorClasses, "[--theme-color:var(--color-blue-500)]");
347
- break;
653
+ case "custom":
348
654
  case "cyan":
349
- fillCenterColorClasses = twJoin(fillCenterColorClasses, "[--theme-color:var(--color-cyan-500)]");
350
- break;
351
655
  case "emerald":
352
- fillCenterColorClasses = twJoin(fillCenterColorClasses, "[--theme-color:var(--color-emerald-500)]");
353
- break;
354
656
  case "fuchsia":
355
- fillCenterColorClasses = twJoin(fillCenterColorClasses, "[--theme-color:var(--color-fuchsia-500)]");
356
- break;
357
657
  case "gray":
358
- fillCenterColorClasses = twJoin(fillCenterColorClasses, "[--theme-color:var(--color-gray-500)]");
359
- break;
360
658
  case "green":
361
- fillCenterColorClasses = twJoin(fillCenterColorClasses, "[--theme-color:var(--color-green-500)]");
362
- break;
363
659
  case "indigo":
364
- fillCenterColorClasses = twJoin(fillCenterColorClasses, "[--theme-color:var(--color-indigo-500)]");
365
- break;
366
660
  case "lime":
367
- fillCenterColorClasses = twJoin(fillCenterColorClasses, "[--theme-color:var(--color-lime-500)]");
368
- break;
369
661
  case "mauve":
370
- fillCenterColorClasses = twJoin(fillCenterColorClasses, "[--theme-color:var(--color-mauve-500)]");
371
- break;
372
662
  case "mist":
373
- fillCenterColorClasses = twJoin(fillCenterColorClasses, "[--theme-color:var(--color-mist-500)]");
374
- break;
375
663
  case "neutral":
376
- fillCenterColorClasses = twJoin(fillCenterColorClasses, "[--theme-color:var(--color-neutral-500)]");
377
- break;
378
664
  case "olive":
379
- fillCenterColorClasses = twJoin(fillCenterColorClasses, "[--theme-color:var(--color-olive-500)]");
380
- break;
381
665
  case "orange":
382
- fillCenterColorClasses = twJoin(fillCenterColorClasses, "[--theme-color:var(--color-orange-500)]");
383
- break;
384
666
  case "pink":
385
- fillCenterColorClasses = twJoin(fillCenterColorClasses, "[--theme-color:var(--color-pink-500)]");
386
- break;
387
667
  case "purple":
388
- fillCenterColorClasses = twJoin(fillCenterColorClasses, "[--theme-color:var(--color-purple-500)]");
389
- break;
390
668
  case "red":
391
- fillCenterColorClasses = twJoin(fillCenterColorClasses, "[--theme-color:var(--color-red-500)]");
392
- break;
393
669
  case "rose":
394
- fillCenterColorClasses = twJoin(fillCenterColorClasses, "[--theme-color:var(--color-rose-500)]");
395
- break;
396
670
  case "sky":
397
- fillCenterColorClasses = twJoin(fillCenterColorClasses, "[--theme-color:var(--color-sky-500)]");
398
- break;
399
671
  case "slate":
400
- fillCenterColorClasses = twJoin(fillCenterColorClasses, "[--theme-color:var(--color-slate-500)]");
401
- break;
402
672
  case "stone":
403
- fillCenterColorClasses = twJoin(fillCenterColorClasses, "[--theme-color:var(--color-stone-500)]");
404
- break;
405
673
  case "taupe":
406
- fillCenterColorClasses = twJoin(fillCenterColorClasses, "[--theme-color:var(--color-taupe-500)]");
407
- break;
408
674
  case "teal":
409
- fillCenterColorClasses = twJoin(fillCenterColorClasses, "[--theme-color:var(--color-teal-500)]");
410
- break;
411
675
  case "violet":
412
- fillCenterColorClasses = twJoin(fillCenterColorClasses, "[--theme-color:var(--color-violet-500)]");
413
- break;
414
676
  case "yellow":
415
- fillCenterColorClasses = twJoin(fillCenterColorClasses, "[--theme-color:var(--color-yellow-500)]");
416
- break;
417
677
  case "zinc":
418
- fillCenterColorClasses = twJoin(fillCenterColorClasses, "[--theme-color:var(--color-zinc-500)]");
419
- break;
420
- case "custom":
421
- if (customTheme && customTheme.themeColor && !customTheme.themeColor.includes("[--theme-color:")) throw new Error("`customTheme.themeColor` must modify the `--theme-color` variable on the ::after pseudo element. Otherwise, please use `customTheme.classes`.");
422
- fillCenterColorClasses = customTheme.themeColor ? twMerge(fillCenterColorClasses, customTheme.themeColor) : twMerge(fillClasses, customTheme.classes);
423
- break;
424
- default:
425
- fillCenterColorClasses = twMerge(fillCenterColorClasses, `[--theme-color:var(--base-theme-color)]`);
426
- break;
678
+ case "amber-500":
679
+ case "blue-500":
680
+ case "cyan-500":
681
+ case "emerald-500":
682
+ case "fuchsia-500":
683
+ case "gray-500":
684
+ case "green-500":
685
+ case "indigo-500":
686
+ case "lime-500":
687
+ case "mauve-500":
688
+ case "mist-500":
689
+ case "neutral-500":
690
+ case "olive-500":
691
+ case "orange-500":
692
+ case "pink-500":
693
+ case "purple-500":
694
+ case "red-500":
695
+ case "rose-500":
696
+ case "sky-500":
697
+ case "slate-500":
698
+ case "stone-500":
699
+ case "taupe-500":
700
+ case "teal-500":
701
+ case "violet-500":
702
+ case "yellow-500":
703
+ case "zinc-500":
704
+ case "amber-600":
705
+ case "blue-600":
706
+ case "cyan-600":
707
+ case "emerald-600":
708
+ case "fuchsia-600":
709
+ case "gray-600":
710
+ case "green-600":
711
+ case "indigo-600":
712
+ case "lime-600":
713
+ case "mauve-600":
714
+ case "mist-600":
715
+ case "neutral-600":
716
+ case "olive-600":
717
+ case "orange-600":
718
+ case "pink-600":
719
+ case "purple-600":
720
+ case "red-600":
721
+ case "rose-600":
722
+ case "sky-600":
723
+ case "slate-600":
724
+ case "stone-600":
725
+ case "taupe-600":
726
+ case "teal-600":
727
+ case "violet-600":
728
+ case "yellow-600":
729
+ case "zinc-600":
730
+ case "amber-700":
731
+ case "blue-700":
732
+ case "cyan-700":
733
+ case "emerald-700":
734
+ case "fuchsia-700":
735
+ case "gray-700":
736
+ case "green-700":
737
+ case "indigo-700":
738
+ case "lime-700":
739
+ case "mauve-700":
740
+ case "mist-700":
741
+ case "neutral-700":
742
+ case "olive-700":
743
+ case "orange-700":
744
+ case "pink-700":
745
+ case "purple-700":
746
+ case "red-700":
747
+ case "rose-700":
748
+ case "sky-700":
749
+ case "slate-700":
750
+ case "stone-700":
751
+ case "taupe-700":
752
+ case "teal-700":
753
+ case "violet-700":
754
+ case "yellow-700":
755
+ case "zinc-700":
756
+ case "amber-800":
757
+ case "blue-800":
758
+ case "cyan-800":
759
+ case "emerald-800":
760
+ case "fuchsia-800":
761
+ case "gray-800":
762
+ case "green-800":
763
+ case "indigo-800":
764
+ case "lime-800":
765
+ case "mauve-800":
766
+ case "mist-800":
767
+ case "neutral-800":
768
+ case "olive-800":
769
+ case "orange-800":
770
+ case "pink-800":
771
+ case "purple-800":
772
+ case "red-800":
773
+ case "rose-800":
774
+ case "sky-800":
775
+ case "slate-800":
776
+ case "stone-800":
777
+ case "taupe-800":
778
+ case "teal-800":
779
+ case "violet-800":
780
+ case "yellow-800":
781
+ case "zinc-800":
782
+ case "amber-900":
783
+ case "blue-900":
784
+ case "cyan-900":
785
+ case "emerald-900":
786
+ case "fuchsia-900":
787
+ case "gray-900":
788
+ case "green-900":
789
+ case "indigo-900":
790
+ case "lime-900":
791
+ case "mauve-900":
792
+ case "mist-900":
793
+ case "neutral-900":
794
+ case "olive-900":
795
+ case "orange-900":
796
+ case "pink-900":
797
+ case "purple-900":
798
+ case "red-900":
799
+ case "rose-900":
800
+ case "sky-900":
801
+ case "slate-900":
802
+ case "stone-900":
803
+ case "taupe-900":
804
+ case "teal-900":
805
+ case "violet-900":
806
+ case "yellow-900":
807
+ case "zinc-900":
808
+ case "amber-950":
809
+ case "blue-950":
810
+ case "cyan-950":
811
+ case "emerald-950":
812
+ case "fuchsia-950":
813
+ case "gray-950":
814
+ case "green-950":
815
+ case "indigo-950":
816
+ case "lime-950":
817
+ case "mauve-950":
818
+ case "mist-950":
819
+ case "neutral-950":
820
+ case "olive-950":
821
+ case "orange-950":
822
+ case "pink-950":
823
+ case "purple-950":
824
+ case "red-950":
825
+ case "rose-950":
826
+ case "sky-950":
827
+ case "slate-950":
828
+ case "stone-950":
829
+ case "taupe-950":
830
+ case "teal-950":
831
+ case "violet-950":
832
+ case "yellow-950":
833
+ case "zinc-950": return asVariable ? "[--text-color:color-mix(in_oklch,var(--theme-color)_5%,var(--color-white))]" : "text-[color-mix(in_oklch,var(--theme-color)_5%,var(--color-white))]";
834
+ default: return asVariable ? "[--text-color:var(--base-theme-color--foreground)]" : "text-[var(--base-theme-color--foreground)]";
427
835
  }
836
+ }
837
+ //#endregion
838
+ //#region src/components/link.tsx
839
+ function Anchor({ as, className, disabled, href, onClick, target, rel, removeHash = true, ...props }) {
840
+ const isExternal = `${href}`.startsWith("http"), hasHash = `${href}`.includes("#");
841
+ const handleClick = (e) => {
842
+ if (disabled) return e.preventDefault();
843
+ onClick?.(e);
844
+ if (removeHash) setTimeout(() => history.replaceState({}, document.title, location.pathname), 100);
845
+ };
846
+ return /* @__PURE__ */ jsx(as || "a", {
847
+ ...props,
848
+ "aria-disabled": disabled,
849
+ className: twMerge("ease-exponential inline-block transition-transform duration-300 active:scale-95 pointer-fine:active:scale-95", className, disabled && "pointer-events-none"),
850
+ href,
851
+ target: target || (isExternal ? "_blank" : "_self"),
852
+ onClick: hasHash ? handleClick : onClick,
853
+ rel: rel !== void 0 ? rel === "nofollow" ? `${rel} noreferrer noopener` : `${rel} prefetch` : isExternal ? "nofollow noreferrer noopener" : "prefetch"
854
+ });
855
+ }
856
+ const baseClasses = "isolate after:absolute after:left-1/2 after:-z-10 after:-translate-x-1/2 after:duration-500 active:after:opacity-100 pointer-fine:active:after:opacity-100";
857
+ const lineStaticClasses = twJoin(baseClasses, "whitespace-nowrap after:-bottom-0.5 after:w-[calc(100%+0.15rem)] after:rounded-full after:border after:border-current");
858
+ const lineClasses = twJoin(lineStaticClasses, "whitespace-nowrap after:transition-transform after:ease-exponential");
859
+ const scaleXClasses = "after:scale-x-0 active:after:scale-x-100 pointer-fine:hover:after:scale-x-100 pointer-fine:active:after:scale-x-100";
860
+ const scaleYClasses = "after:scale-y-0 active:after:scale-y-100 pointer-fine:hover:after:scale-y-100 pointer-fine:active:after:scale-y-100";
861
+ const lineNormalClasses = twJoin([
862
+ lineClasses,
863
+ scaleYClasses,
864
+ "after:origin-bottom after:translate-y-0.5 active:after:translate-y-0 pointer-fine:hover:after:translate-y-0"
865
+ ]);
866
+ const lineLtrClasses = twJoin([
867
+ lineClasses,
868
+ scaleXClasses,
869
+ "after:origin-left"
870
+ ]);
871
+ const lineRtlClasses = twJoin([
872
+ lineClasses,
873
+ scaleXClasses,
874
+ "after:origin-right"
875
+ ]);
876
+ const lineCenterClasses = twJoin([lineClasses, scaleXClasses]);
877
+ const lineLiftClasses = twJoin([
878
+ lineClasses,
879
+ scaleYClasses,
880
+ "after:origin-bottom after:translate-y-1 after:scale-x-75 active:after:translate-y-0 active:after:scale-x-100 pointer-fine:hover:after:translate-y-0 pointer-fine:hover:after:scale-x-100 pointer-fine:active:after:translate-y-0 pointer-fine:active:after:scale-x-100"
881
+ ]);
882
+ const fillClasses = twJoin(baseClasses, "whitespace-nowrap transition-[transform_color] after:top-1/2 after:h-[calc(100%+.05rem)] after:w-[calc(100%+.25rem)] after:-translate-y-1/2 after:rounded after:ease-exponential active:text-(--text-color) pointer-fine:hover:text-(--text-color) pointer-fine:active:text-(--text-color)");
883
+ const getFillColorTransitionClasses = (theme, customTheme) => {
884
+ let fillColorTransitionClasses = twJoin(fillClasses, "transition-[scale_color] after:bg-(--theme-color)");
885
+ if (theme === "custom") {
886
+ if (!customTheme || customTheme.themeColor && !customTheme.themeColor.includes("[--theme-color:")) throw new Error("`customTheme.themeColor` must modify the `--theme-color` variable on the ::after pseudo element. Otherwise, please use `customTheme.classes`.");
887
+ fillColorTransitionClasses = customTheme.themeColor ? twMerge(fillColorTransitionClasses, customTheme.themeColor) : twMerge(fillClasses, customTheme.classes);
888
+ } else fillColorTransitionClasses = twMerge(fillColorTransitionClasses, getThemeColor(theme));
889
+ return fillColorTransitionClasses;
890
+ };
891
+ const getFillCenterClasses = (theme, customTheme) => {
892
+ let fillCenterColorClasses = twJoin(fillClasses, "after:scale-x-50 after:scale-y-[.25] after:bg-(--theme-color)/0 after:transition-[scale_background-color] active:after:scale-x-100 active:after:scale-y-100 active:after:bg-(--theme-color) pointer-fine:hover:after:scale-x-100 pointer-fine:hover:after:scale-y-100 pointer-fine:hover:after:bg-(--theme-color) pointer-fine:active:after:scale-x-100 pointer-fine:active:after:scale-y-100 pointer-fine:active:after:bg-(--theme-color)");
893
+ if (theme === "custom") {
894
+ if (customTheme && customTheme.themeColor && !customTheme.themeColor.includes("[--theme-color:")) throw new Error("`customTheme.themeColor` must modify the `--theme-color` variable on the ::after pseudo element. Otherwise, please use `customTheme.classes`.");
895
+ fillCenterColorClasses = customTheme.themeColor ? twMerge(fillCenterColorClasses, customTheme.themeColor) : twMerge(fillClasses, customTheme.classes);
896
+ } else fillCenterColorClasses = twMerge(fillCenterColorClasses, getThemeColor(theme));
428
897
  return fillCenterColorClasses;
429
898
  };
430
899
  const multilineBaseClasses = "bg-linear-to-r from-current to-current bg-no-repeat active:scale-95";
431
900
  const multilineLineStaticClasses = "underline";
432
901
  const multilineNormalClasses = "underline-offset-1 active:underline pointer-fine:hover:underline";
433
- const multilineLineClasses = twJoin(twJoin(multilineBaseClasses, "duration-500 ease-exponential"), "bg-position-[0%_100%] px-px pb-px transition-[background-size]");
902
+ const multilineLineClasses = twJoin(twJoin(multilineBaseClasses, "duration-500 ease-exponential"), "bg-position-[0%_100%] px-px pbe-px transition-[background-size]");
434
903
  const multilineXClasses = twJoin(multilineLineClasses, "bg-size-[0%_2px] focus-visible:bg-size-[100%_2px] active:bg-size-[100%_2px] pointer-fine:hover:bg-size-[100%_2px]");
435
904
  const multilineLineRtlClasses = twJoin([multilineXClasses, "bg-position-[100%_100%]"]);
436
905
  const multilineLineCenterClasses = twJoin([multilineXClasses, "bg-position-[50%_100%]"]);
437
906
  const multilineLineLiftClasses = twJoin(multilineLineClasses, "bg-size-[auto_0px] focus-visible:bg-size-[auto_2px] active:bg-size-[auto_2px] pointer-fine:hover:bg-size-[auto_2px]");
438
- const multilineFillBaseClasses = twJoin(multilineBaseClasses, "rounded px-0.5 py-0.75 focus-visible:text-zinc-50 active:text-zinc-50 pointer-fine:hover:text-zinc-50");
439
- const getMultilineFillColorClasses = (theme = "blue", customTheme) => {
907
+ const multilineFillBaseClasses = twJoin(multilineBaseClasses, "rounded px-0.5 py-0.75 focus-visible:text-(--text-color) active:text-(--text-color) pointer-fine:hover:text-(--text-color)");
908
+ const getMultilineFillColorClasses = (theme, customTheme) => {
440
909
  let multilineFillColorClasses = twJoin(multilineFillBaseClasses, "from-(--theme-color) to-(--theme-color) transition-[background-size,color]");
441
- switch (theme) {
442
- case "amber":
443
- multilineFillColorClasses = twJoin(multilineFillColorClasses, "[--theme-color:var(--color-amber-500)]");
444
- break;
445
- case "blue":
446
- multilineFillColorClasses = twJoin(multilineFillColorClasses, "[--theme-color:var(--color-blue-500)]");
447
- break;
448
- case "cyan":
449
- multilineFillColorClasses = twJoin(multilineFillColorClasses, "[--theme-color:var(--color-cyan-500)]");
450
- break;
451
- case "emerald":
452
- multilineFillColorClasses = twJoin(multilineFillColorClasses, "[--theme-color:var(--color-emerald-500)]");
453
- break;
454
- case "fuchsia":
455
- multilineFillColorClasses = twJoin(multilineFillColorClasses, "[--theme-color:var(--color-fuchsia-500)]");
456
- break;
457
- case "gray":
458
- multilineFillColorClasses = twJoin(multilineFillColorClasses, "[--theme-color:var(--color-gray-500)]");
459
- break;
460
- case "green":
461
- multilineFillColorClasses = twJoin(multilineFillColorClasses, "[--theme-color:var(--color-green-500)]");
462
- break;
463
- case "indigo":
464
- multilineFillColorClasses = twJoin(multilineFillColorClasses, "[--theme-color:var(--color-indigo-500)]");
465
- break;
466
- case "lime":
467
- multilineFillColorClasses = twJoin(multilineFillColorClasses, "[--theme-color:var(--color-lime-500)]");
468
- break;
469
- case "mauve":
470
- multilineFillColorClasses = twJoin(multilineFillColorClasses, "[--theme-color:var(--color-mauve-500)]");
471
- break;
472
- case "mist":
473
- multilineFillColorClasses = twJoin(multilineFillColorClasses, "[--theme-color:var(--color-mist-500)]");
474
- break;
475
- case "neutral":
476
- multilineFillColorClasses = twJoin(multilineFillColorClasses, "[--theme-color:var(--color-neutral-500)]");
477
- break;
478
- case "olive":
479
- multilineFillColorClasses = twJoin(multilineFillColorClasses, "[--theme-color:var(--color-olive-500)]");
480
- break;
481
- case "orange":
482
- multilineFillColorClasses = twJoin(multilineFillColorClasses, "[--theme-color:var(--color-orange-500)]");
483
- break;
484
- case "pink":
485
- multilineFillColorClasses = twJoin(multilineFillColorClasses, "[--theme-color:var(--color-pink-500)]");
486
- break;
487
- case "purple":
488
- multilineFillColorClasses = twJoin(multilineFillColorClasses, "[--theme-color:var(--color-purple-500)]");
489
- break;
490
- case "red":
491
- multilineFillColorClasses = twJoin(multilineFillColorClasses, "[--theme-color:var(--color-red-500)]");
492
- break;
493
- case "rose":
494
- multilineFillColorClasses = twJoin(multilineFillColorClasses, "[--theme-color:var(--color-rose-500)]");
495
- break;
496
- case "sky":
497
- multilineFillColorClasses = twJoin(multilineFillColorClasses, "[--theme-color:var(--color-sky-500)]");
498
- break;
499
- case "slate":
500
- multilineFillColorClasses = twJoin(multilineFillColorClasses, "[--theme-color:var(--color-slate-500)]");
501
- break;
502
- case "stone":
503
- multilineFillColorClasses = twJoin(multilineFillColorClasses, "[--theme-color:var(--color-stone-500)]");
504
- break;
505
- case "taupe":
506
- multilineFillColorClasses = twJoin(multilineFillColorClasses, "[--theme-color:var(--color-taupe-500)]");
507
- break;
508
- case "teal":
509
- multilineFillColorClasses = twJoin(multilineFillColorClasses, "[--theme-color:var(--color-teal-500)]");
510
- break;
511
- case "violet":
512
- multilineFillColorClasses = twJoin(multilineFillColorClasses, "[--theme-color:var(--color-violet-500)]");
513
- break;
514
- case "yellow":
515
- multilineFillColorClasses = twJoin(multilineFillColorClasses, "[--theme-color:var(--color-yellow-500)]");
516
- break;
517
- case "zinc":
518
- multilineFillColorClasses = twJoin(multilineFillColorClasses, "[--theme-color:var(--color-zinc-500)]");
519
- break;
520
- case "custom":
521
- if (customTheme && customTheme.themeColor && !customTheme.themeColor.includes("[--theme-color:")) throw new Error("`customTheme.themeColor` must modify the `--theme-color` variable. Otherwise, please use `customTheme.classes`.");
522
- multilineFillColorClasses = customTheme.themeColor ? twMerge(multilineFillColorClasses, customTheme.themeColor) : twMerge(multilineFillBaseClasses, customTheme.classes);
523
- break;
524
- default:
525
- multilineFillColorClasses = twMerge(multilineFillColorClasses, `[--theme-color:var(--base-theme-color)]`);
526
- break;
527
- }
910
+ if (theme === "custom") {
911
+ if (customTheme && customTheme.themeColor && !customTheme.themeColor.includes("[--theme-color:")) throw new Error("`customTheme.themeColor` must modify the `--theme-color` variable. Otherwise, please use `customTheme.classes`.");
912
+ multilineFillColorClasses = customTheme.themeColor ? twMerge(multilineFillColorClasses, customTheme.themeColor) : twMerge(multilineFillBaseClasses, customTheme.classes);
913
+ } else multilineFillColorClasses = twMerge(multilineFillColorClasses, getThemeColor(theme));
528
914
  return multilineFillColorClasses;
529
915
  };
530
- const getMultilineFillClasses = (theme = "blue", customTheme) => {
916
+ const getMultilineFillClasses = (theme, customTheme) => {
531
917
  let multilineFillColorClasses = twJoin(multilineFillBaseClasses, "from-(--theme-color)/0 to-(--theme-color)/0 bg-size-[50%_0px] bg-position-[50%_50%] transition-[background-size,background-image,color] focus-visible:from-(--theme-color) focus-visible:to-(--theme-color) focus-visible:bg-size-[100%_100%] active:from-(--theme-color) active:to-(--theme-color) active:bg-size-[100%_100%] contrast-more:from-(--theme-color)/0 pointer-fine:hover:from-(--theme-color) pointer-fine:hover:to-(--theme-color) pointer-fine:hover:bg-size-[100%_100%]");
532
- switch (theme) {
533
- case "amber":
534
- multilineFillColorClasses = twJoin(multilineFillColorClasses, "[--theme-color:var(--color-amber-500)]");
535
- break;
536
- case "blue":
537
- multilineFillColorClasses = twJoin(multilineFillColorClasses, "[--theme-color:var(--color-blue-500)]");
538
- break;
539
- case "cyan":
540
- multilineFillColorClasses = twJoin(multilineFillColorClasses, "[--theme-color:var(--color-cyan-500)]");
541
- break;
542
- case "emerald":
543
- multilineFillColorClasses = twJoin(multilineFillColorClasses, "[--theme-color:var(--color-emerald-500)]");
544
- break;
545
- case "fuchsia":
546
- multilineFillColorClasses = twJoin(multilineFillColorClasses, "[--theme-color:var(--color-fuchsia-500)]");
547
- break;
548
- case "gray":
549
- multilineFillColorClasses = twJoin(multilineFillColorClasses, "[--theme-color:var(--color-gray-500)]");
550
- break;
551
- case "green":
552
- multilineFillColorClasses = twJoin(multilineFillColorClasses, "[--theme-color:var(--color-green-500)]");
553
- break;
554
- case "indigo":
555
- multilineFillColorClasses = twJoin(multilineFillColorClasses, "[--theme-color:var(--color-indigo-500)]");
556
- break;
557
- case "lime":
558
- multilineFillColorClasses = twJoin(multilineFillColorClasses, "[--theme-color:var(--color-lime-500)]");
559
- break;
560
- case "mauve":
561
- multilineFillColorClasses = twJoin(multilineFillColorClasses, "[--theme-color:var(--color-mauve-500)]");
562
- break;
563
- case "mist":
564
- multilineFillColorClasses = twJoin(multilineFillColorClasses, "[--theme-color:var(--color-mist-500)]");
565
- break;
566
- case "neutral":
567
- multilineFillColorClasses = twJoin(multilineFillColorClasses, "[--theme-color:var(--color-neutral-500)]");
568
- break;
569
- case "olive":
570
- multilineFillColorClasses = twJoin(multilineFillColorClasses, "[--theme-color:var(--color-olive-500)]");
571
- break;
572
- case "orange":
573
- multilineFillColorClasses = twJoin(multilineFillColorClasses, "[--theme-color:var(--color-orange-500)]");
574
- break;
575
- case "pink":
576
- multilineFillColorClasses = twJoin(multilineFillColorClasses, "[--theme-color:var(--color-pink-500)]");
577
- break;
578
- case "purple":
579
- multilineFillColorClasses = twJoin(multilineFillColorClasses, "[--theme-color:var(--color-purple-500)]");
580
- break;
581
- case "red":
582
- multilineFillColorClasses = twJoin(multilineFillColorClasses, "[--theme-color:var(--color-red-500)]");
583
- break;
584
- case "rose":
585
- multilineFillColorClasses = twJoin(multilineFillColorClasses, "[--theme-color:var(--color-rose-500)]");
586
- break;
587
- case "sky":
588
- multilineFillColorClasses = twJoin(multilineFillColorClasses, "[--theme-color:var(--color-sky-500)]");
589
- break;
590
- case "slate":
591
- multilineFillColorClasses = twJoin(multilineFillColorClasses, "[--theme-color:var(--color-slate-500)]");
592
- break;
593
- case "stone":
594
- multilineFillColorClasses = twJoin(multilineFillColorClasses, "[--theme-color:var(--color-stone-500)]");
595
- break;
596
- case "taupe":
597
- multilineFillColorClasses = twJoin(multilineFillColorClasses, "[--theme-color:var(--color-taupe-500)]");
598
- break;
599
- case "teal":
600
- multilineFillColorClasses = twJoin(multilineFillColorClasses, "[--theme-color:var(--color-teal-500)]");
601
- break;
602
- case "violet":
603
- multilineFillColorClasses = twJoin(multilineFillColorClasses, "[--theme-color:var(--color-violet-500)]");
604
- break;
605
- case "yellow":
606
- multilineFillColorClasses = twJoin(multilineFillColorClasses, "[--theme-color:var(--color-yellow-500)]");
607
- break;
608
- case "zinc":
609
- multilineFillColorClasses = twJoin(multilineFillColorClasses, "[--theme-color:var(--color-zinc-500)]");
610
- break;
611
- case "custom":
612
- if (customTheme && customTheme.themeColor && !customTheme.themeColor.includes("[--theme-color:")) throw new Error("`customTheme.themeColor` must modify the `--theme-color` variable. Otherwise, please use `customTheme.classes`.");
613
- multilineFillColorClasses = customTheme.themeColor ? twMerge(multilineFillColorClasses, customTheme.themeColor) : twMerge(multilineFillBaseClasses, customTheme.classes);
614
- break;
615
- default:
616
- multilineFillColorClasses = twMerge(multilineFillColorClasses, `[--theme-color:var(--base-theme-color)]`);
617
- break;
618
- }
918
+ if (theme === "custom") {
919
+ if (customTheme && customTheme.themeColor && !customTheme.themeColor.includes("[--theme-color:")) throw new Error("`customTheme.themeColor` must modify the `--theme-color` variable. Otherwise, please use `customTheme.classes`.");
920
+ multilineFillColorClasses = customTheme.themeColor ? twMerge(multilineFillColorClasses, customTheme.themeColor) : twMerge(multilineFillBaseClasses, customTheme.classes);
921
+ } else multilineFillColorClasses = twMerge(multilineFillColorClasses, getThemeColor(theme));
619
922
  return multilineFillColorClasses;
620
923
  };
621
- const getMultilineFillLiftClasses = (theme = "blue", customTheme) => {
924
+ const getMultilineFillLiftClasses = (theme, customTheme) => {
622
925
  return twJoin(getMultilineFillColorClasses(theme, customTheme), "bg-size-[auto_0px] bg-position-[50%_100%] focus-visible:bg-size-[auto_100%] active:bg-size-[auto_100%] pointer-fine:hover:bg-size-[auto_100%]");
623
926
  };
624
- const getMultilineFillXClasses = (theme = "blue", customTheme) => {
927
+ const getMultilineFillXClasses = (theme, customTheme) => {
625
928
  return twJoin(getMultilineFillColorClasses(theme, customTheme), "bg-size-[0%_100%] focus-visible:bg-size-[100%_100%] active:bg-size-[100%_100%] pointer-fine:hover:bg-size-[100%_100%]");
626
929
  };
627
- const getMultilineFillRtlClasses = (theme = "blue", customTheme) => {
930
+ const getMultilineFillRtlClasses = (theme, customTheme) => {
628
931
  return twJoin(getMultilineFillXClasses(theme, customTheme), "bg-position-[100%_auto]");
629
932
  };
630
- const getMultilineFillCenterClasses = (theme = "blue", customTheme) => {
933
+ const getMultilineFillCenterClasses = (theme, customTheme) => {
631
934
  return twJoin(getMultilineFillXClasses(theme, customTheme), "bg-position-[50%_auto]");
632
935
  };
633
- function getLinkClasses({ customTheme, theme, type }) {
634
- switch (type) {
936
+ function getLinkClasses({ customTheme, theme, lineType }) {
937
+ switch (lineType) {
635
938
  case "static": return lineStaticClasses;
636
939
  case "ltr": return lineLtrClasses;
637
940
  case "rtl": return lineRtlClasses;
638
941
  case "center": return lineCenterClasses;
639
942
  case "lift": return lineLiftClasses;
640
- case "fill": return getFillCenterClasses(theme, customTheme);
943
+ case "fill": return twJoin([getFillCenterClasses(theme, customTheme), getTextColor(theme, true)]);
641
944
  case "fill-ltr": return twJoin([
642
945
  getFillColorTransitionClasses(theme, customTheme),
946
+ getTextColor(theme, true),
643
947
  scaleXClasses,
644
948
  "after:origin-left"
645
949
  ]);
646
950
  case "fill-rtl": return twJoin([
647
951
  getFillColorTransitionClasses(theme, customTheme),
952
+ getTextColor(theme, true),
648
953
  scaleXClasses,
649
954
  "after:origin-right"
650
955
  ]);
651
956
  case "fill-lift": return twJoin([
652
957
  getFillColorTransitionClasses(theme, customTheme),
958
+ getTextColor(theme, true),
653
959
  scaleYClasses,
654
960
  "after:origin-bottom"
655
961
  ]);
@@ -659,11 +965,11 @@ function getLinkClasses({ customTheme, theme, type }) {
659
965
  case "multiline-rtl": return multilineLineRtlClasses;
660
966
  case "multiline-center": return multilineLineCenterClasses;
661
967
  case "multiline-lift": return multilineLineLiftClasses;
662
- case "multiline-fill": return getMultilineFillClasses(theme, customTheme);
663
- case "multiline-fill-ltr": return getMultilineFillXClasses(theme, customTheme);
664
- case "multiline-fill-rtl": return getMultilineFillRtlClasses(theme, customTheme);
665
- case "multiline-fill-center": return getMultilineFillCenterClasses(theme, customTheme);
666
- case "multiline-fill-lift": return getMultilineFillLiftClasses(theme, customTheme);
968
+ case "multiline-fill": return twJoin([getMultilineFillClasses(theme, customTheme), getTextColor(theme, true)]);
969
+ case "multiline-fill-ltr": return twJoin([getMultilineFillXClasses(theme, customTheme), getTextColor(theme, true)]);
970
+ case "multiline-fill-rtl": return twJoin([getMultilineFillRtlClasses(theme, customTheme), getTextColor(theme, true)]);
971
+ case "multiline-fill-center": return twJoin([getMultilineFillCenterClasses(theme, customTheme), getTextColor(theme, true)]);
972
+ case "multiline-fill-lift": return twJoin([getMultilineFillLiftClasses(theme, customTheme), getTextColor(theme, true)]);
667
973
  default: return lineNormalClasses;
668
974
  }
669
975
  }
@@ -688,26 +994,28 @@ function getLinkClasses({ customTheme, theme, type }) {
688
994
  * ## Examples
689
995
  *
690
996
  * @example
691
- * <Link href='/about' type='ltr' title='About Us'>Learn more about our company</Link>
997
+ * <Link href='/about' lineType='ltr' title='About Us'>Learn more about our company</Link>
998
+ *
999
+ * @example
1000
+ * <Link href='/about' lineType='fill-ltr' title='About Us'>Learn more about our company</Link>
692
1001
  *
693
1002
  * @example
694
- * <Link href='/about' type='fill-ltr' title='About Us'>Learn more about our company</Link>
1003
+ * <Link href='/about' lineType='multiline-fill-rtl' theme='red' title='About Us'>Learn more about our company</Link>
695
1004
  *
696
1005
  * @example
697
- * <Link href='/about' type='fill-ltr' theme='red' title='About Us'>Learn more about our company</Link>
1006
+ * <Link as='button' lineType='fill-lift' theme='mauve-700'>Edit</Link>
698
1007
  */
699
- function Link({ as, className, customTheme, theme, type, ...props }) {
1008
+ function Link({ as, className, customTheme, lineType, theme, ...props }) {
700
1009
  const linkClasses = getLinkClasses({
701
1010
  customTheme,
702
1011
  theme,
703
- type
1012
+ lineType
704
1013
  });
705
1014
  return /* @__PURE__ */ jsx(as || Anchor, {
706
1015
  ...props,
707
1016
  className: twMerge(linkClasses, className)
708
1017
  });
709
1018
  }
710
-
711
1019
  //#endregion
712
1020
  //#region src/components/button.tsx
713
1021
  /**
@@ -737,45 +1045,18 @@ function Button({ className, customTheme, gradient = false, padding = "md", roun
737
1045
  }
738
1046
  };
739
1047
  const getThemeColorVariable = () => {
740
- switch (theme) {
741
- case "amber": return "text-white [--theme-color:var(--color-amber-500)]";
742
- case "blue": return "text-white [--theme-color:var(--color-blue-500)]";
743
- case "cyan": return "text-white [--theme-color:var(--color-cyan-500)]";
744
- case "emerald": return "text-white [--theme-color:var(--color-emerald-500)]";
745
- case "fuchsia": return "text-white [--theme-color:var(--color-fuchsia-500)]";
746
- case "gray": return "text-white [--theme-color:var(--color-gray-500)]";
747
- case "green": return "text-white [--theme-color:var(--color-green-500)]";
748
- case "indigo": return "text-white [--theme-color:var(--color-indigo-500)]";
749
- case "lime": return "text-white [--theme-color:var(--color-lime-500)]";
750
- case "mauve": return "text-white [--theme-color:var(--color-mauve-500)]";
751
- case "mist": return "text-white [--theme-color:var(--color-mist-500)]";
752
- case "neutral": return "text-white [--theme-color:var(--color-neutral-500)]";
753
- case "olive": return "text-white [--theme-color:var(--color-olive-500)]";
754
- case "orange": return "text-white [--theme-color:var(--color-orange-500)]";
755
- case "pink": return "text-white [--theme-color:var(--color-pink-500)]";
756
- case "purple": return "text-white [--theme-color:var(--color-purple-500)]";
757
- case "red": return "text-white [--theme-color:var(--color-red-500)]";
758
- case "rose": return "text-white [--theme-color:var(--color-rose-500)]";
759
- case "sky": return "text-white [--theme-color:var(--color-sky-500)]";
760
- case "slate": return "text-white [--theme-color:var(--color-slate-500)]";
761
- case "stone": return "text-white [--theme-color:var(--color-stone-500)]";
762
- case "taupe": return "text-white [--theme-color:var(--color-taupe-500)]";
763
- case "teal": return "text-white [--theme-color:var(--color-teal-500)]";
764
- case "violet": return "text-white [--theme-color:var(--color-violet-500)]";
765
- case "yellow": return "text-white [--theme-color:var(--color-yellow-500)]";
766
- case "zinc": return "text-white [--theme-color:var(--color-zinc-500)]";
767
- case "custom":
768
- if (customTheme && customTheme.themeColor && !customTheme.themeColor.includes("[--theme-color:")) throw new Error("`customTheme.themeColor` must modify the `--theme-color` variable. Otherwise, please use `customTheme.classes`.");
769
- return customTheme.themeColor || customTheme.classes || "";
770
- default: return "text-(--base-theme-color--foreground) [--theme-color:var(--base-theme-color)]";
1048
+ if (theme === "custom") {
1049
+ if (customTheme && customTheme.themeColor && !customTheme.themeColor.includes("[--theme-color:")) throw new Error("`customTheme.themeColor` must modify the `--theme-color` variable. Otherwise, please use `customTheme.classes`.");
1050
+ return customTheme.themeColor || customTheme.classes || "";
771
1051
  }
1052
+ return twJoin([getTextColor(theme), getThemeColor(theme)]);
772
1053
  };
773
1054
  const buttonClasses = twMerge([
774
1055
  "block w-fit min-w-fit corner-super-1.5 text-center font-semibold shadow-lg duration-300 ease-exponential active:scale-99 data-focus:scale-101 pointer-fine:hover:scale-101 pointer-fine:hover:active:scale-99 pointer-fine:active:scale-99",
775
1056
  getPaddingClasses(),
776
1057
  getRoundedClasses(),
777
1058
  getThemeColorVariable(),
778
- customTheme && customTheme.classes ? customTheme.classes : [gradient ? "bg-linear-to-t from-[color-mix(in_oklch,var(--theme-color),var(--color-black)_20%)] via-(--theme-color) to-[color-mix(in_oklch,var(--theme-color),var(--color-white)_20%)] bg-size-[100%_200%] transition-[scale,background-position-y] [background-position-y:50%] active:[background-position-y:100%] data-focus:[background-position-y:0%] pointer-fine:hover:[background-position-y:0%] pointer-fine:hover:active:[background-position-y:100%]" : "bg-(--theme-color) transition-[scale,background-color] active:bg-[color-mix(in_oklch,var(--theme-color),var(--color-black)_10%)] data-focus:bg-[color-mix(in_oklch,var(--theme-color),var(--color-white)_10%)] pointer-fine:hover:bg-[color-mix(in_oklch,var(--theme-color),var(--color-white)_10%)] pointer-fine:hover:active:bg-[color-mix(in_oklch,var(--theme-color),var(--color-black)_10%)]", "shadow-(--theme-color)/25"].join(" "),
1059
+ customTheme && customTheme.classes ? customTheme.classes : [gradient ? "bg-linear-to-t from-[color-mix(in_oklch,var(--theme-color),var(--color-black)_20%)] via-(--theme-color) to-[color-mix(in_oklch,var(--theme-color),var(--color-white)_20%)] bg-size-[100%_200%] transition-[scale_background-position-y] [background-position-y:50%] active:[background-position-y:100%] data-focus:[background-position-y:0%] pointer-fine:hover:[background-position-y:0%] pointer-fine:hover:active:[background-position-y:100%]" : "bg-(--theme-color) transition-[scale_background-color] active:bg-[color-mix(in_oklch,var(--theme-color),var(--color-black)_10%)] data-focus:bg-[color-mix(in_oklch,var(--theme-color),var(--color-white)_10%)] pointer-fine:hover:bg-[color-mix(in_oklch,var(--theme-color),var(--color-white)_10%)] pointer-fine:hover:active:bg-[color-mix(in_oklch,var(--theme-color),var(--color-black)_10%)]", "shadow-(--theme-color)/25"].join(" "),
779
1060
  className
780
1061
  ]);
781
1062
  if ("href" in props && !props.as && props.href) return /* @__PURE__ */ jsx(Button$1, {
@@ -788,7 +1069,6 @@ function Button({ className, customTheme, gradient = false, padding = "md", roun
788
1069
  className: buttonClasses
789
1070
  });
790
1071
  }
791
-
792
1072
  //#endregion
793
1073
  //#region src/symbols/checkmark.tsx
794
1074
  function Checkmark({ weight = "regular", ...props }) {
@@ -840,7 +1120,6 @@ function Checkmark({ weight = "regular", ...props }) {
840
1120
  });
841
1121
  }
842
1122
  }
843
-
844
1123
  //#endregion
845
1124
  //#region src/components/checkbox.tsx
846
1125
  function Checkbox({ checkmark, children, className, description, descriptionProps: { className: descriptionClassName, ...descriptionProps } = {}, fieldProps: { className: fieldClassName, ...fieldProps } = {}, labelProps: { className: labelClassName, ...labelProps } = {}, inputContainerProps: { className: inputContainerClassName, ...inputContainerProps } = {}, onChange, required, value, ...props }) {
@@ -895,7 +1174,6 @@ function Checkbox({ checkmark, children, className, description, descriptionProp
895
1174
  })]
896
1175
  });
897
1176
  }
898
-
899
1177
  //#endregion
900
1178
  //#region node_modules/animejs/dist/modules/core/consts.js
901
1179
  /**
@@ -947,9 +1225,6 @@ const proxyTargetSymbol = Symbol();
947
1225
  const minValue = 1e-11;
948
1226
  const maxValue = 0xe8d4a51000;
949
1227
  const K = 1e3;
950
- const maxFps = 240;
951
- const emptyString = "";
952
- const cssVarPrefix = "var(";
953
1228
  const shortTransforms = /* @__PURE__ */ (() => {
954
1229
  const map = /* @__PURE__ */ new Map();
955
1230
  map.set("x", "translateX");
@@ -993,7 +1268,6 @@ const unitsExecRgx = /^([-+]?\d*\.?\d+(?:e[-+]?\d+)?)([a-z]+|%)$/i;
993
1268
  const lowerCaseRgx = /([a-z])([A-Z])/g;
994
1269
  const transformsExecRgx = /(\w+)(\([^)]+\)+)/g;
995
1270
  const cssVariableMatchRgx = /var\(\s*(--[\w-]+)(?:\s*,\s*([^)]+))?\s*\)/;
996
-
997
1271
  //#endregion
998
1272
  //#region node_modules/animejs/dist/modules/core/globals.js
999
1273
  /**
@@ -1018,7 +1292,7 @@ const defaults = {
1018
1292
  keyframes: null,
1019
1293
  playbackEase: null,
1020
1294
  playbackRate: 1,
1021
- frameRate: maxFps,
1295
+ frameRate: 240,
1022
1296
  loop: 0,
1023
1297
  reversed: false,
1024
1298
  alternate: false,
@@ -1057,7 +1331,6 @@ if (isBrowser) {
1057
1331
  if (!win.AnimeJS) win.AnimeJS = [];
1058
1332
  win.AnimeJS.push(globalVersions);
1059
1333
  }
1060
-
1061
1334
  //#endregion
1062
1335
  //#region node_modules/animejs/dist/modules/core/helpers.js
1063
1336
  /**
@@ -1196,7 +1469,7 @@ const clampInfinity = (v) => v === Infinity ? maxValue : v === -Infinity ? -maxV
1196
1469
  * @param {Number} v - Time value to normalize
1197
1470
  * @return {Number}
1198
1471
  */
1199
- const normalizeTime = (v) => v <= minValue ? minValue : clampInfinity(round$1(v, 11));
1472
+ const normalizeTime = (v) => v <= 1e-11 ? minValue : clampInfinity(round$1(v, 11));
1200
1473
  /**
1201
1474
  * @template T
1202
1475
  * @param {T[]} a
@@ -1271,7 +1544,6 @@ const addChild = (parent, child, sortMethod, prevProp = "_prev", nextProp = "_ne
1271
1544
  child[prevProp] = prev;
1272
1545
  child[nextProp] = next;
1273
1546
  };
1274
-
1275
1547
  //#endregion
1276
1548
  //#region node_modules/animejs/dist/modules/core/targets.js
1277
1549
  /**
@@ -1384,7 +1656,6 @@ function registerTargets(targets) {
1384
1656
  }
1385
1657
  return parsedTargetsArray;
1386
1658
  }
1387
-
1388
1659
  //#endregion
1389
1660
  //#region node_modules/animejs/dist/modules/core/transforms.js
1390
1661
  /**
@@ -1422,7 +1693,6 @@ const parseInlineTransforms = (target, propName, animationInlineStyles) => {
1422
1693
  }
1423
1694
  return inlineTransforms && !isUnd(inlinedStylesPropertyValue) ? inlinedStylesPropertyValue : stringStartsWith(propName, "scale") ? "1" : stringStartsWith(propName, "rotate") || stringStartsWith(propName, "skew") ? "0deg" : "0px";
1424
1695
  };
1425
-
1426
1696
  //#endregion
1427
1697
  //#region node_modules/animejs/dist/modules/core/colors.js
1428
1698
  /**
@@ -1517,7 +1787,6 @@ const convertColorStringValuesToRgbaArray = (colorString) => {
1517
1787
  1
1518
1788
  ];
1519
1789
  };
1520
-
1521
1790
  //#endregion
1522
1791
  //#region node_modules/animejs/dist/modules/core/values.js
1523
1792
  /**
@@ -1558,12 +1827,12 @@ const getFunctionValue = (value, target, index, total, store) => {
1558
1827
  const computed = value(target, index, total);
1559
1828
  return !isNaN(+computed) ? +computed : computed || 0;
1560
1829
  };
1561
- else if (isStr(value) && stringStartsWith(value, cssVarPrefix)) func = () => {
1830
+ else if (isStr(value) && stringStartsWith(value, "var(")) func = () => {
1562
1831
  const match = value.match(cssVariableMatchRgx);
1563
1832
  const cssVarName = match[1];
1564
1833
  const fallbackValue = match[2];
1565
1834
  let computed = getComputedStyle(target)?.getPropertyValue(cssVarName);
1566
- if ((!computed || computed.trim() === emptyString) && fallbackValue) computed = fallbackValue.trim();
1835
+ if ((!computed || computed.trim() === "") && fallbackValue) computed = fallbackValue.trim();
1567
1836
  return computed || 0;
1568
1837
  };
1569
1838
  else return value;
@@ -1682,7 +1951,6 @@ const decomposeTweenValue = (tween, targetObject) => {
1682
1951
  return targetObject;
1683
1952
  };
1684
1953
  const decomposedOriginalValue = createDecomposedValueTargetObject();
1685
-
1686
1954
  //#endregion
1687
1955
  //#region node_modules/animejs/dist/modules/core/styles.js
1688
1956
  /**
@@ -1741,28 +2009,27 @@ const cleanInlineStyles = (renderable) => {
1741
2009
  if (tweenTarget[isDomSymbol]) {
1742
2010
  const targetStyle = tweenTarget.style;
1743
2011
  const originalInlinedValue = tween._inlineValue;
1744
- const tweenHadNoInlineValue = isNil(originalInlinedValue) || originalInlinedValue === emptyString;
2012
+ const tweenHadNoInlineValue = isNil(originalInlinedValue) || originalInlinedValue === "";
1745
2013
  if (tween._tweenType === tweenTypes.TRANSFORM) {
1746
2014
  const cachedTransforms = tweenTarget[transformsSymbol];
1747
2015
  if (tweenHadNoInlineValue) delete cachedTransforms[tweenProperty];
1748
2016
  else cachedTransforms[tweenProperty] = originalInlinedValue;
1749
2017
  if (tween._renderTransforms) if (!Object.keys(cachedTransforms).length) targetStyle.removeProperty("transform");
1750
2018
  else {
1751
- let str = emptyString;
2019
+ let str = "";
1752
2020
  for (let key in cachedTransforms) str += transformsFragmentStrings[key] + cachedTransforms[key] + ") ";
1753
2021
  targetStyle.transform = str;
1754
2022
  }
1755
2023
  } else if (tweenHadNoInlineValue) targetStyle.removeProperty(toLowerCase$1(tweenProperty));
1756
2024
  else targetStyle[tweenProperty] = originalInlinedValue;
1757
2025
  if (animation._tail === tween) animation.targets.forEach((t) => {
1758
- if (t.getAttribute && t.getAttribute("style") === emptyString) t.removeAttribute("style");
2026
+ if (t.getAttribute && t.getAttribute("style") === "") t.removeAttribute("style");
1759
2027
  });
1760
2028
  }
1761
2029
  });
1762
2030
  }
1763
2031
  return renderable;
1764
2032
  };
1765
-
1766
2033
  //#endregion
1767
2034
  //#region node_modules/animejs/dist/modules/core/units.js
1768
2035
  /**
@@ -1821,7 +2088,6 @@ const convertValueUnit = (el, decomposedValue, unit, force = false) => {
1821
2088
  decomposedValue.u = unit;
1822
2089
  return decomposedValue;
1823
2090
  };
1824
-
1825
2091
  //#endregion
1826
2092
  //#region node_modules/animejs/dist/modules/easings/none.js
1827
2093
  /**
@@ -1837,7 +2103,6 @@ const convertValueUnit = (el, decomposedValue, unit, force = false) => {
1837
2103
  */
1838
2104
  /** @type {EasingFunction} */
1839
2105
  const none = (t) => t;
1840
-
1841
2106
  //#endregion
1842
2107
  //#region node_modules/animejs/dist/modules/easings/eases/parser.js
1843
2108
  /**
@@ -1878,7 +2143,7 @@ const halfPI = PI / 2;
1878
2143
  const doublePI = PI * 2;
1879
2144
  /** @type {Record<String, EasingFunctionWithParams|EasingFunction>} */
1880
2145
  const easeInFunctions = {
1881
- [emptyString]: easeInPower,
2146
+ [""]: easeInPower,
1882
2147
  Quad: easeInPower(2),
1883
2148
  Cubic: easeInPower(3),
1884
2149
  Quart: easeInPower(4),
@@ -1957,7 +2222,7 @@ const eases = /* @__PURE__ */ (() => {
1957
2222
  for (let type in easeTypes) for (let name in easeInFunctions) {
1958
2223
  const easeIn = easeInFunctions[name];
1959
2224
  const easeType = easeTypes[type];
1960
- list[type + name] = name === emptyString || name === "Back" || name === "Elastic" ? (a, b) => easeType(
2225
+ list[type + name] = name === "" || name === "Back" || name === "Elastic" ? (a, b) => easeType(
1961
2226
  /** @type {EasingFunctionWithParams} */
1962
2227
  easeIn(a, b)
1963
2228
  ) : easeType(easeIn);
@@ -2003,7 +2268,6 @@ const parseEase = (ease) => {
2003
2268
  }
2004
2269
  return isFnc(ease) ? ease : isStr(ease) ? parseEaseString(ease) : none;
2005
2270
  };
2006
-
2007
2271
  //#endregion
2008
2272
  //#region node_modules/animejs/dist/modules/core/render.js
2009
2273
  /**
@@ -2169,7 +2433,7 @@ const render = (tickable, time, muteCallbacks, internalRender, tickMode) => {
2169
2433
  } else tween._value = value;
2170
2434
  }
2171
2435
  if (tweenTransformsNeedUpdate && tween._renderTransforms) {
2172
- let str = emptyString;
2436
+ let str = "";
2173
2437
  for (let key in tweenTargetTransformsProperties) str += `${transformsFragmentStrings[key]}${tweenTargetTransformsProperties[key]}) `;
2174
2438
  tweenStyle.transform = str;
2175
2439
  tweenTransformsNeedUpdate = 0;
@@ -2182,7 +2446,7 @@ const render = (tickable, time, muteCallbacks, internalRender, tickMode) => {
2182
2446
  if (!muteCallbacks && isCurrentTimeAboveZero) tickable.onUpdate(tickable);
2183
2447
  }
2184
2448
  if (parent && isSetter) {
2185
- if (!muteCallbacks && (parent.began && !isRunningBackwards && tickableAbsoluteTime > 0 && !completed || isRunningBackwards && tickableAbsoluteTime <= minValue && completed)) {
2449
+ if (!muteCallbacks && (parent.began && !isRunningBackwards && tickableAbsoluteTime > 0 && !completed || isRunningBackwards && tickableAbsoluteTime <= 1e-11 && completed)) {
2186
2450
  tickable.onComplete(tickable);
2187
2451
  tickable.completed = !isRunningBackwards;
2188
2452
  }
@@ -2230,7 +2494,7 @@ const tick = (tickable, time, muteCallbacks, internalRender, tickMode) => {
2230
2494
  const childDuration = child.duration;
2231
2495
  const childStartTime = child._offset + child._delay;
2232
2496
  const childEndTime = childStartTime + childDuration;
2233
- if (!muteCallbacks && childDuration <= minValue && (!childStartTime || childEndTime === tlIterationDuration)) child.onComplete(child);
2497
+ if (!muteCallbacks && childDuration <= 1e-11 && (!childStartTime || childEndTime === tlIterationDuration)) child.onComplete(child);
2234
2498
  }
2235
2499
  });
2236
2500
  if (!muteCallbacks) tl.onLoop(tl);
@@ -2254,7 +2518,6 @@ const tick = (tickable, time, muteCallbacks, internalRender, tickMode) => {
2254
2518
  }
2255
2519
  }
2256
2520
  };
2257
-
2258
2521
  //#endregion
2259
2522
  //#region node_modules/animejs/dist/modules/core/clock.js
2260
2523
  /**
@@ -2285,9 +2548,9 @@ var Clock = class {
2285
2548
  /** @type {Number} */
2286
2549
  this._scheduledTime = 0;
2287
2550
  /** @type {Number} */
2288
- this._frameDuration = K / maxFps;
2551
+ this._frameDuration = K / 240;
2289
2552
  /** @type {Number} */
2290
- this._fps = maxFps;
2553
+ this._fps = 240;
2291
2554
  /** @type {Number} */
2292
2555
  this._speed = 1;
2293
2556
  /** @type {Boolean} */
@@ -2303,7 +2566,7 @@ var Clock = class {
2303
2566
  set fps(frameRate) {
2304
2567
  const previousFrameDuration = this._frameDuration;
2305
2568
  const fr = +frameRate;
2306
- const fps = fr < minValue ? minValue : fr;
2569
+ const fps = fr < 1e-11 ? minValue : fr;
2307
2570
  const frameDuration = K / fps;
2308
2571
  if (fps > defaults.frameRate) defaults.frameRate = fps;
2309
2572
  this._fps = fps;
@@ -2315,7 +2578,7 @@ var Clock = class {
2315
2578
  }
2316
2579
  set speed(playbackRate) {
2317
2580
  const pbr = +playbackRate;
2318
- this._speed = pbr < minValue ? minValue : pbr;
2581
+ this._speed = pbr < 1e-11 ? minValue : pbr;
2319
2582
  }
2320
2583
  /**
2321
2584
  * @param {Number} time
@@ -2341,7 +2604,6 @@ var Clock = class {
2341
2604
  return delta;
2342
2605
  }
2343
2606
  };
2344
-
2345
2607
  //#endregion
2346
2608
  //#region node_modules/animejs/dist/modules/animation/additive.js
2347
2609
  /**
@@ -2409,7 +2671,6 @@ const addAdditiveAnimation = (lookups) => {
2409
2671
  }
2410
2672
  return animation;
2411
2673
  };
2412
-
2413
2674
  //#endregion
2414
2675
  //#region node_modules/animejs/dist/modules/engine/engine.js
2415
2676
  /**
@@ -2533,7 +2794,6 @@ const killEngine = () => {
2533
2794
  engine.reqId = 0;
2534
2795
  return engine;
2535
2796
  };
2536
-
2537
2797
  //#endregion
2538
2798
  //#region node_modules/animejs/dist/modules/animation/composition.js
2539
2799
  /**
@@ -2625,7 +2885,7 @@ const composeTween = (tween, siblings) => {
2625
2885
  prevSibling._changeDuration = updatedPrevChangeDuration;
2626
2886
  prevSibling._currentTime = updatedPrevChangeDuration;
2627
2887
  prevSibling._isOverlapped = 1;
2628
- if (updatedPrevChangeDuration < minValue) overrideTween(prevSibling);
2888
+ if (updatedPrevChangeDuration < 1e-11) overrideTween(prevSibling);
2629
2889
  }
2630
2890
  let pausePrevParentAnimation = true;
2631
2891
  forEachChildren(prevParent, (t) => {
@@ -2770,7 +3030,6 @@ const removeTargetsFromRenderable = (targetsArray, renderable, propertyName) =>
2770
3030
  if (parent.cancel) /** @type {Renderable} */ parent.cancel();
2771
3031
  }
2772
3032
  };
2773
-
2774
3033
  //#endregion
2775
3034
  //#region node_modules/animejs/dist/modules/timer/timer.js
2776
3035
  /**
@@ -2860,7 +3119,7 @@ var Timer = class extends Clock {
2860
3119
  this.id = !isUnd(id) ? id : timerId;
2861
3120
  /** @type {Timeline} */
2862
3121
  this.parent = parent;
2863
- this.duration = clampInfinity((timerDuration + timerLoopDelay) * timerIterationCount - timerLoopDelay) || minValue;
3122
+ this.duration = clampInfinity((timerDuration + timerLoopDelay) * timerIterationCount - timerLoopDelay) || 1e-11;
2864
3123
  /** @type {Boolean} */
2865
3124
  this.backwards = false;
2866
3125
  /** @type {Boolean} */
@@ -3024,7 +3283,7 @@ var Timer = class extends Clock {
3024
3283
  resume() {
3025
3284
  if (!this.paused) return this;
3026
3285
  this.paused = false;
3027
- if (this.duration <= minValue && !this._hasChildren) tick(this, minValue, 0, 0, tickModes.FORCE);
3286
+ if (this.duration <= 1e-11 && !this._hasChildren) tick(this, minValue, 0, 0, tickModes.FORCE);
3028
3287
  else {
3029
3288
  if (!this._running) {
3030
3289
  addChild(engine, this);
@@ -3141,7 +3400,6 @@ var Timer = class extends Clock {
3141
3400
  });
3142
3401
  }
3143
3402
  };
3144
-
3145
3403
  //#endregion
3146
3404
  //#region node_modules/animejs/dist/modules/animation/animation.js
3147
3405
  /**
@@ -3286,7 +3544,7 @@ var JSAnimation = class extends Timer {
3286
3544
  const tDuration = hasSpring ? animEase.settlingDuration : setValue(duration, animDefaults.duration);
3287
3545
  const tDelay = setValue(delay, animDefaults.delay);
3288
3546
  const tModifier = modifier || animDefaults.modifier;
3289
- const tComposition = isUnd(composition) && targetsLength >= K ? compositionTypes.none : !isUnd(composition) ? composition : animDefaults.composition;
3547
+ const tComposition = isUnd(composition) && targetsLength >= 1e3 ? compositionTypes.none : !isUnd(composition) ? composition : animDefaults.composition;
3290
3548
  const absoluteOffsetTime = this._offset + (parent ? parent._offset : 0);
3291
3549
  if (hasSpring) /** @type {Spring} */ animEase.parent = this;
3292
3550
  let iterationDuration = NaN;
@@ -3445,7 +3703,7 @@ var JSAnimation = class extends Timer {
3445
3703
  shortestValue.d = longestValue.d.map((_, i) => isUnd(shortestValue.d[i]) ? 0 : shortestValue.d[i]);
3446
3704
  shortestValue.s = cloneArray(longestValue.s);
3447
3705
  }
3448
- const tweenUpdateDuration = round$1(+tweenDuration || minValue, 12);
3706
+ const tweenUpdateDuration = round$1(+tweenDuration || 1e-11, 12);
3449
3707
  let inlineValue = inlineStylesStore[propName];
3450
3708
  if (!isNil(inlineValue)) inlineStylesStore[propName] = null;
3451
3709
  /** @type {Tween} */
@@ -3531,7 +3789,7 @@ var JSAnimation = class extends Timer {
3531
3789
  /** @type {String|Number} */
3532
3790
  this.id = !isUnd(id) ? id : JSAnimationId;
3533
3791
  /** @type {Number} */
3534
- this.duration = iterationDuration === minValue ? minValue : clampInfinity((iterationDuration + this._loopDelay) * this.iterationCount - this._loopDelay) || minValue;
3792
+ this.duration = iterationDuration === 1e-11 ? minValue : clampInfinity((iterationDuration + this._loopDelay) * this.iterationCount - this._loopDelay) || 1e-11;
3535
3793
  /** @type {Callback<this>} */
3536
3794
  this.onRender = onRender || animDefaults.onRender;
3537
3795
  /** @type {EasingFunction} */
@@ -3585,7 +3843,7 @@ var JSAnimation = class extends Timer {
3585
3843
  }
3586
3844
  }
3587
3845
  });
3588
- if (this.duration === minValue) this.restart();
3846
+ if (this.duration === 1e-11) this.restart();
3589
3847
  return this;
3590
3848
  }
3591
3849
  /**
@@ -3613,7 +3871,6 @@ var JSAnimation = class extends Timer {
3613
3871
  * @return {JSAnimation}
3614
3872
  */
3615
3873
  const animate = (targets, parameters) => new JSAnimation(targets, parameters, null, 0, false).init();
3616
-
3617
3874
  //#endregion
3618
3875
  //#region node_modules/animejs/dist/modules/svg/helpers.js
3619
3876
  /**
@@ -3636,7 +3893,6 @@ const getPath = (path) => {
3636
3893
  if (!$parsedSvg || !isSvg($parsedSvg)) return console.warn(`${path} is not a valid SVGGeometryElement`);
3637
3894
  return $parsedSvg;
3638
3895
  };
3639
-
3640
3896
  //#endregion
3641
3897
  //#region node_modules/animejs/dist/modules/svg/morphto.js
3642
3898
  /**
@@ -3685,7 +3941,6 @@ const morphTo = (path2, precision = .33) => ($path1) => {
3685
3941
  $path1[morphPointsSymbol] = v2;
3686
3942
  return [v1, v2];
3687
3943
  };
3688
-
3689
3944
  //#endregion
3690
3945
  //#region src/utils/class-management.ts
3691
3946
  /**
@@ -3808,7 +4063,6 @@ function toggleClass(elements, classList) {
3808
4063
  element.classList.toggle(classItem);
3809
4064
  }));
3810
4065
  }
3811
-
3812
4066
  //#endregion
3813
4067
  //#region src/utils/get-date.ts
3814
4068
  /** The current date as a Date object */
@@ -4091,13 +4345,11 @@ function getTimezone() {
4091
4345
  const timezonePart = Intl.DateTimeFormat("en-US", { timeZoneName: "short" }).formatToParts(date).find((part) => part.type === "timeZoneName");
4092
4346
  return timezonePart ? timezonePart.value : "";
4093
4347
  }
4094
-
4095
4348
  //#endregion
4096
4349
  //#region src/utils/math.ts
4097
4350
  function easeOutExpo(time, start, end, duration) {
4098
4351
  return time == duration ? start + end : end * (-Math.pow(2, -10 * time / duration) + 1) + start;
4099
4352
  }
4100
-
4101
4353
  //#endregion
4102
4354
  //#region src/utils/regex.ts
4103
4355
  const emailRegex = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
@@ -4116,7 +4368,6 @@ const telRegex = /(?:\+1\s|1\s|)?\d{3}\.\d{3}\.\d{4}|(?:\+1\s|1\s|)?\d{3}-\d{3}-
4116
4368
  function isPhoneNumber(tel) {
4117
4369
  return telRegex.test(tel);
4118
4370
  }
4119
-
4120
4371
  //#endregion
4121
4372
  //#region src/utils/string-manipulation.ts
4122
4373
  /**
@@ -4241,7 +4492,6 @@ function toTitleCase(string, delimiter = " ") {
4241
4492
  if (typeof string !== "string") return string;
4242
4493
  return string.toLowerCase().split(delimiter).map((str) => str.substring(0, 1).toUpperCase() + str.substring(1, str.length).toLowerCase()).join(" ");
4243
4494
  }
4244
-
4245
4495
  //#endregion
4246
4496
  //#region src/components/chevron-up-down-anime.tsx
4247
4497
  function ChevronUpDownAnime({ className, isUp = false }) {
@@ -4284,7 +4534,6 @@ function ChevronUpDownAnime({ className, isUp = false }) {
4284
4534
  })]
4285
4535
  });
4286
4536
  }
4287
-
4288
4537
  //#endregion
4289
4538
  //#region src/components/details.tsx
4290
4539
  function DetailsSummary({ arrow = true, children, className, onClick, ...props }) {
@@ -4311,7 +4560,7 @@ function DetailsBody({ children, className, ...props }) {
4311
4560
  className: twMerge("grid-rows-1fr transition-rows ease-exponential data-closed:grid-rows-0fr grid duration-500", className),
4312
4561
  transition: true,
4313
4562
  children: (bag) => /* @__PURE__ */ jsx("div", {
4314
- className: "overflow-y-hidden px-2 pt-3 pb-1",
4563
+ className: "overflow-y-hidden px-2 pbs-3 pbe-1",
4315
4564
  children: typeof children === "function" ? children(bag) : children
4316
4565
  })
4317
4566
  });
@@ -4324,7 +4573,6 @@ function Details({ as = "div", className, ...props }) {
4324
4573
  role: "details"
4325
4574
  });
4326
4575
  }
4327
-
4328
4576
  //#endregion
4329
4577
  //#region src/components/drop-down.tsx
4330
4578
  function DropDownButton({ arrow = true, as, children, className, ...props }) {
@@ -4391,7 +4639,7 @@ function DropDownSection({ children, label, labelProps, separatorAbove, separato
4391
4639
  separatorAbove && /* @__PURE__ */ jsx(DropDownSeparator, {}),
4392
4640
  label && /* @__PURE__ */ jsx(MenuHeading, {
4393
4641
  ...restLabelProps,
4394
- className: (headingBag) => twMerge("text-[larger] font-bold text-current/80", typeof labelClassName === "function" ? labelClassName(headingBag) : labelClassName),
4642
+ className: (headingBag) => twMerge("text-larger font-bold text-current/80", typeof labelClassName === "function" ? labelClassName(headingBag) : labelClassName),
4395
4643
  children: label
4396
4644
  }),
4397
4645
  typeof children === "function" ? children(sectionBag) : children,
@@ -4406,12 +4654,21 @@ function DropDownSeparator({ as, className, ...props }) {
4406
4654
  className: (bag) => twMerge("my-4 block h-px rounded-full bg-neutral-950/20", typeof className === "function" ? className(bag) : className)
4407
4655
  });
4408
4656
  }
4409
- function DropDown(props) {
4410
- return /* @__PURE__ */ jsx(Menu, { ...props });
4657
+ function DropDown({ as, ...props }) {
4658
+ return /* @__PURE__ */ jsx(Menu, {
4659
+ ...props,
4660
+ as
4661
+ });
4411
4662
  }
4412
-
4413
4663
  //#endregion
4414
4664
  //#region src/components/fieldset.tsx
4665
+ /**
4666
+ * # Fieldset
4667
+ *
4668
+ * @prop legend - The legend text to display above the fieldset.
4669
+ * @prop legendProps - Additional props to pass to the legend component.
4670
+ * @prop className - GOTCHA: The default className includes `contents`, to effectively remove it from the layout. Be sure to change the display style if you want to modify any other styles.
4671
+ */
4415
4672
  function Fieldset({ children, className, legend, legendProps, name, ...props }) {
4416
4673
  const { className: legendClassName, ...restLegendProps } = legendProps || {};
4417
4674
  name = legend || name;
@@ -4426,7 +4683,6 @@ function Fieldset({ children, className, legend, legendProps, name, ...props })
4426
4683
  }), typeof children === "function" ? children(bag) : children] })
4427
4684
  });
4428
4685
  }
4429
-
4430
4686
  //#endregion
4431
4687
  //#region src/components/form.tsx
4432
4688
  function Form({ children, className, ...props }) {
@@ -4436,7 +4692,6 @@ function Form({ children, className, ...props }) {
4436
4692
  children
4437
4693
  });
4438
4694
  }
4439
-
4440
4695
  //#endregion
4441
4696
  //#region src/components/ghost.tsx
4442
4697
  function Ghost({ children, className, ...props }) {
@@ -4446,7 +4701,6 @@ function Ghost({ children, className, ...props }) {
4446
4701
  children: children || /* @__PURE__ */ jsx(Fragment, { children: "\xA0" })
4447
4702
  });
4448
4703
  }
4449
-
4450
4704
  //#endregion
4451
4705
  //#region src/components/heading.tsx
4452
4706
  function getTextFromChildren(children) {
@@ -4467,12 +4721,12 @@ function Heading({ as = "h2", children, customize, className, id, ref, ...props
4467
4721
  const targetableID = id || getTextFromChildren(children).replace(/\s+/g, "-").toLowerCase();
4468
4722
  const getBaseClasses = () => {
4469
4723
  switch (as) {
4470
- case "h1": return twMerge("pb-2.5 text-6xl font-black last:pb-0", customize?.h1);
4471
- case "h3": return twMerge("pb-2 text-4xl font-extralight last:pb-0", customize?.h3);
4472
- case "h4": return twMerge("pb-2 text-3xl font-medium last:pb-0", customize?.h4);
4473
- case "h5": return twMerge("pb-1.5 text-2xl font-semibold last:pb-0", customize?.h5);
4474
- case "h6": return twMerge("pb-1 text-xl font-bold last:pb-0", customize?.h6);
4475
- default: return twMerge("pb-2.5 text-5xl font-extrabold last:pb-0", customize?.h2);
4724
+ case "h1": return twMerge("pbe-2.5 text-6xl font-black last:pbe-0", customize?.h1);
4725
+ case "h3": return twMerge("pbe-2 text-4xl font-extralight last:pbe-0", customize?.h3);
4726
+ case "h4": return twMerge("pbe-2 text-3xl font-medium last:pbe-0", customize?.h4);
4727
+ case "h5": return twMerge("pbe-1.5 text-2xl font-semibold last:pbe-0", customize?.h5);
4728
+ case "h6": return twMerge("pbe-1 text-xl font-bold last:pbe-0", customize?.h6);
4729
+ default: return twMerge("pbe-2.5 text-5xl font-extrabold last:pbe-0", customize?.h2);
4476
4730
  }
4477
4731
  };
4478
4732
  const baseClasses = getBaseClasses();
@@ -4484,7 +4738,6 @@ function Heading({ as = "h2", children, customize, className, id, ref, ...props
4484
4738
  children
4485
4739
  });
4486
4740
  }
4487
-
4488
4741
  //#endregion
4489
4742
  //#region src/symbols/chevron.forward.tsx
4490
4743
  function ChevronForward({ weight = "regular", ...props }) {
@@ -4536,7 +4789,6 @@ function ChevronForward({ weight = "regular", ...props }) {
4536
4789
  });
4537
4790
  }
4538
4791
  }
4539
-
4540
4792
  //#endregion
4541
4793
  //#region node_modules/animejs/dist/modules/animatable/animatable.js
4542
4794
  /**
@@ -4655,7 +4907,6 @@ var Animatable = class {
4655
4907
  return this;
4656
4908
  }
4657
4909
  };
4658
-
4659
4910
  //#endregion
4660
4911
  //#region node_modules/animejs/dist/modules/utils/number.js
4661
4912
  /**
@@ -4668,7 +4919,6 @@ var Animatable = class {
4668
4919
  * @return {Number}
4669
4920
  */
4670
4921
  const mapRange = (value, inLow, inHigh, outLow, outHigh) => outLow + (value - inLow) / (inHigh - inLow) * (outHigh - outLow);
4671
-
4672
4922
  //#endregion
4673
4923
  //#region node_modules/animejs/dist/modules/easings/spring/index.js
4674
4924
  /**
@@ -4839,7 +5089,6 @@ var Spring = class {
4839
5089
  * @returns {Spring}
4840
5090
  */
4841
5091
  const spring = (parameters) => new Spring(parameters);
4842
-
4843
5092
  //#endregion
4844
5093
  //#region node_modules/animejs/dist/modules/utils/target.js
4845
5094
  /**
@@ -4918,7 +5167,6 @@ const set = (targets, parameters) => {
4918
5167
  parameters.composition = setValue(parameters.composition, compositionTypes.none);
4919
5168
  return new JSAnimation(targets, parameters, null, 0, true).resume();
4920
5169
  };
4921
-
4922
5170
  //#endregion
4923
5171
  //#region node_modules/animejs/dist/modules/draggable/draggable.js
4924
5172
  /**
@@ -6102,7 +6350,6 @@ var Draggable = class {
6102
6350
  * @return {Draggable}
6103
6351
  */
6104
6352
  const createDraggable = (target, parameters) => new Draggable(target, parameters);
6105
-
6106
6353
  //#endregion
6107
6354
  //#region src/components/human-verification.tsx
6108
6355
  function checkHashSecret([number, letter]) {
@@ -6338,7 +6585,7 @@ function HumanVerification({ children = "Verify", className }) {
6338
6585
  }),
6339
6586
  /* @__PURE__ */ jsxs("div", {
6340
6587
  id: "human-verification-instructions",
6341
- className: "pt-1 text-center text-xs",
6588
+ className: "pbs-1 text-center text-xs",
6342
6589
  children: [
6343
6590
  "Human verification challenge.",
6344
6591
  " ",
@@ -6351,7 +6598,6 @@ function HumanVerification({ children = "Verify", className }) {
6351
6598
  ]
6352
6599
  });
6353
6600
  }
6354
-
6355
6601
  //#endregion
6356
6602
  //#region src/components/iframe.tsx
6357
6603
  const allAllowProperties = [
@@ -6420,7 +6666,6 @@ function IFrame({ allow, className, referrerPolicy = "no-referrer-when-downgrade
6420
6666
  sandbox: sandbox?.join(" ")
6421
6667
  });
6422
6668
  }
6423
-
6424
6669
  //#endregion
6425
6670
  //#region src/components/input.tsx
6426
6671
  /**
@@ -6444,7 +6689,7 @@ function Input({ children, className, description, descriptionProps: { className
6444
6689
  children: [
6445
6690
  label && /* @__PURE__ */ jsx(Label, {
6446
6691
  ...labelProps,
6447
- className: (bag) => twMerge("text-sm font-medium", required ? "after:text-red-700 after:content-[\"_*\"]" : "", typeof labelClassName === "function" ? labelClassName(bag) : labelClassName),
6692
+ className: (bag) => twMerge("text-sm font-medium", required ? `after:text-red-700 after:content-['_*']` : "", typeof labelClassName === "function" ? labelClassName(bag) : labelClassName),
6448
6693
  children: label
6449
6694
  }),
6450
6695
  /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx(Input$1, {
@@ -6454,13 +6699,12 @@ function Input({ children, className, description, descriptionProps: { className
6454
6699
  }), children] }),
6455
6700
  description && /* @__PURE__ */ jsx(Description, {
6456
6701
  ...descriptionProps,
6457
- className: (bag) => twMerge("text-xs text-current/60", typeof descriptionClassName === "function" ? descriptionClassName(bag) : descriptionClassName),
6702
+ className: (bag) => twMerge("max-w-none text-xs text-current/60", typeof descriptionClassName === "function" ? descriptionClassName(bag) : descriptionClassName),
6458
6703
  children: description
6459
6704
  })
6460
6705
  ]
6461
6706
  });
6462
6707
  }
6463
-
6464
6708
  //#endregion
6465
6709
  //#region src/symbols/xmark.tsx
6466
6710
  function Xmark({ weight = "regular", ...props }) {
@@ -6512,7 +6756,6 @@ function Xmark({ weight = "regular", ...props }) {
6512
6756
  });
6513
6757
  }
6514
6758
  }
6515
-
6516
6759
  //#endregion
6517
6760
  //#region src/hooks/create-fast-context.tsx
6518
6761
  function createFastContext(defaultInitialState) {
@@ -6554,7 +6797,6 @@ function createFastContext(defaultInitialState) {
6554
6797
  useStore
6555
6798
  };
6556
6799
  }
6557
-
6558
6800
  //#endregion
6559
6801
  //#region src/hooks/use-form-status.tsx
6560
6802
  const DEFAULT_STATUS = "incomplete";
@@ -6568,7 +6810,6 @@ function FormStatusProvider({ children, initialStatus = DEFAULT_STATUS }) {
6568
6810
  function useFormStatus() {
6569
6811
  return useStore((store) => store);
6570
6812
  }
6571
-
6572
6813
  //#endregion
6573
6814
  //#region src/hooks/use-pointer-movement.ts
6574
6815
  function usePointerMovement(props) {
@@ -6682,7 +6923,6 @@ function usePointerMovement(props) {
6682
6923
  trackPointerMovement
6683
6924
  };
6684
6925
  }
6685
-
6686
6926
  //#endregion
6687
6927
  //#region src/components/modal.tsx
6688
6928
  const { Provider: ModalControlsProvider, useStore: useModalControls } = createFastContext({
@@ -6709,8 +6949,12 @@ function ModalTrigger({ as, onClick, ...props }) {
6709
6949
  onClick: handleClick
6710
6950
  });
6711
6951
  }
6712
- function ModalTitle(props) {
6713
- return /* @__PURE__ */ jsx(DialogTitle, { ...props });
6952
+ function ModalTitle({ as, ref, ...props }) {
6953
+ return /* @__PURE__ */ jsx(DialogTitle, {
6954
+ ...props,
6955
+ as,
6956
+ ref
6957
+ });
6714
6958
  }
6715
6959
  function ModalDialog(props) {
6716
6960
  const [modalControls] = useModalControls((store) => store);
@@ -6730,13 +6974,13 @@ function ModalDialog(props) {
6730
6974
  className: ["isolate z-50", place === "bottom" && "after:fixed after:inset-x-0 after:bottom-0 after:-z-10 after:h-16 after:bg-neutral-50 sm:after:hidden"].join(" "),
6731
6975
  children: [/* @__PURE__ */ jsx(DialogBackdrop, {
6732
6976
  transition: true,
6733
- className: ["ease-exponential fixed inset-0 cursor-pointer transition-[opacity,background-color,backdrop-filter,-webkit-backdrop-filter] delay-100 duration-750 data-closed:opacity-0", readyToClose ? "bg-neutral-50/5 backdrop-blur-[1px] dark:bg-neutral-950/5" : "bg-neutral-50/25 backdrop-blur-sm dark:bg-neutral-950/25"].join(" "),
6977
+ className: ["ease-exponential fixed inset-0 cursor-pointer transition-[opacity_background-color_backdrop-filter_-webkit-backdrop-filter] delay-100 duration-750 data-closed:opacity-0", readyToClose ? "bg-neutral-50/5 backdrop-blur-[1px] dark:bg-neutral-950/5" : "bg-neutral-50/25 backdrop-blur-sm dark:bg-neutral-950/25"].join(" "),
6734
6978
  children: /* @__PURE__ */ jsx(Button, {
6735
6979
  padding: "none",
6736
6980
  rounded: "full",
6737
6981
  className: "group/button fixed top-4 right-4 size-7 overflow-x-hidden transition-[scale,width,filter] pointer-fine:hover:w-20",
6738
6982
  children: /* @__PURE__ */ jsxs("div", {
6739
- className: "ease-exponential absolute top-1 right-1 flex items-center gap-1 pt-px transition-transform duration-300 pointer-fine:group-hover/button:-translate-x-0.5",
6983
+ className: "ease-exponential absolute top-1 right-1 flex items-center gap-1 pbs-px transition-transform duration-300 pointer-fine:group-hover/button:-translate-x-0.5",
6740
6984
  children: [/* @__PURE__ */ jsxs("span", {
6741
6985
  className: "block text-xs leading-none uppercase",
6742
6986
  children: ["Close", /* @__PURE__ */ jsx("span", {
@@ -6751,7 +6995,7 @@ function ModalDialog(props) {
6751
6995
  transition: true,
6752
6996
  className: twMerge("ease-exponential fixed left-1/2 -translate-x-1/2 overflow-y-scroll bg-neutral-50 p-4 shadow-[0_-15px_50px_-12px] shadow-neutral-950/25 transition-[transform,translate,opacity] duration-750 data-closed:scale-50 data-closed:opacity-0 sm:w-[calc(100vw-2rem)] sm:max-w-fit sm:p-6 sm:shadow-2xl lg:p-8 dark:bg-neutral-900", place === "center" ? "top-1/2 -translate-y-1/2 rounded-2xl data-enter:translate-y-[calc(-50%+12rem)] data-leave:translate-y-[calc(-50%-8rem)]" : "bottom-0 h-fit max-h-[calc(100dvh-4rem)] translate-y-0 rounded-t-4xl data-enter:translate-y-full data-leave:translate-y-full sm:top-1/2 sm:bottom-auto sm:rounded-t-2xl sm:rounded-b-2xl sm:data-enter:translate-y-[calc(-50%+12rem)] sm:data-leave:translate-y-[calc(-50%-8rem)] sm:data-open:-translate-y-1/2 pointer-fine:top-1/2 pointer-fine:bottom-auto pointer-fine:-translate-y-1/2 pointer-fine:rounded-2xl", className),
6753
6997
  children: [/* @__PURE__ */ jsx("button", {
6754
- className: ["after:ease-exponential absolute inset-x-0 top-0 z-10 flex h-6 cursor-grab items-center justify-center after:h-1 after:w-8 after:rounded-full after:transition-[transform,background-color] after:duration-500 active:cursor-grabbing", readyToClose ? "after:scale-x-200 after:scale-y-200 after:bg-blue-500" : "after:bg-neutral-500/50 active:after:scale-x-150 active:after:scale-y-125 active:after:bg-neutral-500 pointer-fine:hover:after:scale-x-125 pointer-fine:hover:after:bg-neutral-500/75 pointer-fine:active:after:scale-x-150 pointer-fine:active:after:bg-neutral-500"].join(" "),
6998
+ className: ["after:ease-exponential absolute inset-x-0 top-0 z-10 flex h-6 cursor-grab items-center justify-center after:h-1 after:w-8 after:rounded-full after:transition-[transform_background-color] after:duration-500 active:cursor-grabbing", readyToClose ? "after:scale-x-200 after:scale-y-200 after:bg-blue-500" : "after:bg-neutral-500/50 active:after:scale-x-150 active:after:scale-y-125 active:after:bg-neutral-500 pointer-fine:hover:after:scale-x-125 pointer-fine:hover:after:bg-neutral-500/75 pointer-fine:active:after:scale-x-150 pointer-fine:active:after:bg-neutral-500"].join(" "),
6755
6999
  onTouchStart: enableTouchClose,
6756
7000
  onMouseDown: enableMouseClose,
6757
7001
  type: "button",
@@ -6763,8 +7007,18 @@ function ModalDialog(props) {
6763
7007
  })]
6764
7008
  });
6765
7009
  }
6766
- function ModalClose({ as, ...props }) {
6767
- return /* @__PURE__ */ jsx(as || Button$1, { ...props });
7010
+ function ModalClose({ as, onClick, ...props }) {
7011
+ const ModalCloseElement = as || Button$1;
7012
+ const [modalControls] = useModalControls((store) => store);
7013
+ const { closeModal } = modalControls || { closeModal: () => {} };
7014
+ const handleClick = (e) => {
7015
+ onClick?.(e);
7016
+ if (!e.defaultPrevented) closeModal();
7017
+ };
7018
+ return /* @__PURE__ */ jsx(ModalCloseElement, {
7019
+ ...props,
7020
+ onClick: handleClick
7021
+ });
6768
7022
  }
6769
7023
  function ModalDisplay({ children, className, onClose, onOpen, place = "bottom" }) {
6770
7024
  const [bodyElement, setBodyElement] = useState(null);
@@ -6874,7 +7128,6 @@ function ModalDisplay({ children, className, onClose, onOpen, place = "bottom" }
6874
7128
  function Modal(props) {
6875
7129
  return /* @__PURE__ */ jsx(ModalControlsProvider, { children: /* @__PURE__ */ jsx(ModalDisplay, { ...props }) });
6876
7130
  }
6877
-
6878
7131
  //#endregion
6879
7132
  //#region src/symbols/chevron.up.chevron.down.tsx
6880
7133
  function ChevronUpChevronDown({ weight = "regular", ...props }) {
@@ -6926,7 +7179,6 @@ function ChevronUpChevronDown({ weight = "regular", ...props }) {
6926
7179
  });
6927
7180
  }
6928
7181
  }
6929
-
6930
7182
  //#endregion
6931
7183
  //#region src/components/select.tsx
6932
7184
  /**
@@ -6952,7 +7204,7 @@ function SelectOption({ children, className, name, ...props }) {
6952
7204
  className: "group/option contents",
6953
7205
  ...props,
6954
7206
  children: (bag) => bag.selectedOption ? /* @__PURE__ */ jsx("span", {
6955
- className: "mr-3 before:absolute before:-left-3 before:content-[\",_\"]",
7207
+ className: `mr-3 before:absolute before:-left-3 before:content-[',_']`,
6956
7208
  children: name
6957
7209
  }) : /* @__PURE__ */ jsxs("div", {
6958
7210
  className: twMerge("ease-exponential corner-super-1.5 flex cursor-pointer items-center gap-2 rounded-lg px-2 py-1 transition-[background-color] duration-200 select-none [--theme-color:var(--base-theme-color)] group-disabled/option:opacity-50 group-data-focus/option:bg-(--theme-color)/15 group-data-selected/option:cursor-default group-data-selected/option:text-(--theme-color) group-data-focus/option:group-data-selected/option:bg-transparent dark:group-data-focus/option:bg-(--theme-color)/15", className),
@@ -7002,7 +7254,7 @@ function Select({ buttonProps, children, className, description, descriptionProp
7002
7254
  children: [
7003
7255
  label && /* @__PURE__ */ jsx(Label, {
7004
7256
  ...labelProps,
7005
- className: (bag) => twMerge("text-sm font-medium", required ? "after:text-red-700 after:content-[\"_*\"]" : "", typeof labelClassName === "function" ? labelClassName(bag) : labelClassName),
7257
+ className: (bag) => twMerge("text-sm font-medium", required ? `after:text-red-700 after:content-['_*']` : "", typeof labelClassName === "function" ? labelClassName(bag) : labelClassName),
7006
7258
  children: label
7007
7259
  }),
7008
7260
  /* @__PURE__ */ jsxs(Listbox, {
@@ -7018,7 +7270,7 @@ function Select({ buttonProps, children, className, description, descriptionProp
7018
7270
  "aria-hidden": "true",
7019
7271
  className: "sr-only top-0 left-1/2",
7020
7272
  id: props.name + ":input:id" + uniqueId,
7021
- name: props.name + ":input:name" + uniqueId,
7273
+ name: props.name,
7022
7274
  onChange: () => {},
7023
7275
  onInvalid: handleInvalid,
7024
7276
  onFocus: refocus,
@@ -7039,7 +7291,7 @@ function Select({ buttonProps, children, className, description, descriptionProp
7039
7291
  }), /* @__PURE__ */ jsx(ListboxOptions, {
7040
7292
  ...optionsProps,
7041
7293
  anchor: anchor || "bottom start",
7042
- className: (bag) => twMerge("ease-exponential corner-super-1.5 z-50 w-(--button-width) origin-top rounded-xl border border-neutral-500/50 bg-neutral-50/95 p-1 backdrop-blur-sm backdrop-brightness-110 transition-[opacity,scale,translate] duration-300 [--anchor-gap:--spacing(1)] focus:outline-none data-closed:-translate-y-0.5 data-closed:scale-y-0 data-closed:opacity-0 data-[anchor*=top]:origin-bottom dark:bg-neutral-800/95", typeof optionsClassName === "function" ? optionsClassName(bag) : optionsClassName),
7294
+ className: (bag) => twMerge("ease-exponential corner-super-1.5 z-50 w-(--button-width) origin-top rounded-xl border border-neutral-500/50 bg-neutral-50/95 p-1 backdrop-blur-sm backdrop-brightness-110 transition-[opacity_scale_translate] duration-300 [--anchor-gap:--spacing(1)] focus:outline-none data-closed:-translate-y-0.5 data-closed:scale-y-0 data-closed:opacity-0 data-[anchor*=top]:origin-bottom dark:bg-neutral-800/95", typeof optionsClassName === "function" ? optionsClassName(bag) : optionsClassName),
7043
7295
  transition: transition || true,
7044
7296
  children
7045
7297
  })]
@@ -7052,7 +7304,57 @@ function Select({ buttonProps, children, className, description, descriptionProp
7052
7304
  ]
7053
7305
  });
7054
7306
  }
7055
-
7307
+ //#endregion
7308
+ //#region src/symbols/circle.fill.tsx
7309
+ function CircleFill({ weight = "regular", ...props }) {
7310
+ switch (weight) {
7311
+ case "ultralight": return /* @__PURE__ */ jsx("svg", {
7312
+ viewBox: "6.83594 -72.4785 74.45 74.45",
7313
+ ...props,
7314
+ children: /* @__PURE__ */ jsx("path", { d: "M44.0606 1.97072C64.521 1.97072 81.2886-14.7969 81.2886-35.2539C81.2886-55.7109 64.521-72.4785 44.0606-72.4785C23.6035-72.4785 6.83594-55.7109 6.83594-35.2539C6.83594-14.7969 23.6035 1.97072 44.0606 1.97072Z" })
7315
+ });
7316
+ case "thin": return /* @__PURE__ */ jsx("svg", {
7317
+ viewBox: "6.83594 -72.9707 75.45 75.43",
7318
+ ...props,
7319
+ children: /* @__PURE__ */ jsx("path", { d: "M44.5527 2.4629C65.3106 2.4629 82.2832-14.5098 82.2832-35.2539C82.2832-55.9981 65.3106-72.9707 44.5527-72.9707C23.8086-72.9707 6.83594-55.9981 6.83594-35.2539C6.83594-14.5098 23.8086 2.4629 44.5527 2.4629Z" })
7320
+ });
7321
+ case "light": return /* @__PURE__ */ jsx("svg", {
7322
+ viewBox: "6.83594 -73.9316 77.39 77.36",
7323
+ ...props,
7324
+ children: /* @__PURE__ */ jsx("path", { d: "M45.5137 3.42383C66.8521 3.42383 84.2251-13.9492 84.2251-35.2539C84.2251-56.5586 66.8521-73.9316 45.5137-73.9316C24.209-73.9316 6.83594-56.5586 6.83594-35.2539C6.83594-13.9492 24.209 3.42383 45.5137 3.42383Z" })
7325
+ });
7326
+ case "regular": return /* @__PURE__ */ jsx("svg", {
7327
+ viewBox: "6.83594 -74.6582 78.86 78.81",
7328
+ ...props,
7329
+ children: /* @__PURE__ */ jsx("path", { d: "M46.2402 4.15039C68.0176 4.15039 85.6934-13.5254 85.6934-35.2539C85.6934-56.9824 68.0176-74.6582 46.2402-74.6582C24.5117-74.6582 6.83594-56.9824 6.83594-35.2539C6.83594-13.5254 24.5117 4.15039 46.2402 4.15039Z" })
7330
+ });
7331
+ case "medium": return /* @__PURE__ */ jsx("svg", {
7332
+ viewBox: "6.83594 -75.124 79.78 79.74",
7333
+ ...props,
7334
+ children: /* @__PURE__ */ jsx("path", { d: "M46.7061 4.61621C68.7383 4.61621 86.6162-13.2617 86.6162-35.2539C86.6162-57.2461 68.7383-75.124 46.7061-75.124C24.7139-75.124 6.83594-57.2461 6.83594-35.2539C6.83594-13.2617 24.7139 4.61621 46.7061 4.61621Z" })
7335
+ });
7336
+ case "semibold": return /* @__PURE__ */ jsx("svg", {
7337
+ viewBox: "6.83594 -75.4812 80.49 80.45",
7338
+ ...props,
7339
+ children: /* @__PURE__ */ jsx("path", { d: "M47.0632 4.97334C69.2908 4.97334 87.3237-13.0596 87.3237-35.2539C87.3237-57.4482 69.2908-75.4812 47.0632-75.4812C24.8688-75.4812 6.83594-57.4482 6.83594-35.2539C6.83594-13.0596 24.8688 4.97334 47.0632 4.97334Z" })
7340
+ });
7341
+ case "bold": return /* @__PURE__ */ jsx("svg", {
7342
+ viewBox: "6.83594 -75.9521 81.42 81.4",
7343
+ ...props,
7344
+ children: /* @__PURE__ */ jsx("path", { d: "M47.5342 5.44434C70.0195 5.44434 88.2568-12.793 88.2568-35.2539C88.2568-57.7148 70.0195-75.9521 47.5342-75.9521C25.0732-75.9521 6.83594-57.7148 6.83594-35.2539C6.83594-12.793 25.0732 5.44434 47.5342 5.44434Z" })
7345
+ });
7346
+ case "heavy": return /* @__PURE__ */ jsx("svg", {
7347
+ viewBox: "6.83594 -76.6353 82.77 82.76",
7348
+ ...props,
7349
+ children: /* @__PURE__ */ jsx("path", { d: "M48.2173 6.12748C71.0765 6.12748 89.6102-12.4063 89.6102-35.2539C89.6102-58.1015 71.0765-76.6353 48.2173-76.6353C25.3697-76.6353 6.83594-58.1015 6.83594-35.2539C6.83594-12.4063 25.3697 6.12748 48.2173 6.12748Z" })
7350
+ });
7351
+ case "black": return /* @__PURE__ */ jsx("svg", {
7352
+ viewBox: "6.83594 -77.2461 83.98 83.98",
7353
+ ...props,
7354
+ children: /* @__PURE__ */ jsx("path", { d: "M48.8281 6.73828C72.0215 6.73828 90.8203-12.0605 90.8203-35.2539C90.8203-58.4473 72.0215-77.2461 48.8281-77.2461C25.6348-77.2461 6.83594-58.4473 6.83594-35.2539C6.83594-12.0605 25.6348 6.73828 48.8281 6.73828Z" })
7355
+ });
7356
+ }
7357
+ }
7056
7358
  //#endregion
7057
7359
  //#region src/components/submit-button.tsx
7058
7360
  /**
@@ -7080,28 +7382,33 @@ function SubmitButton({ children, className, customTheme, error, formStatus = "r
7080
7382
  case "incomplete": return incomplete || "Complete Form";
7081
7383
  case "loading": return loading || /* @__PURE__ */ jsxs(Fragment, { children: [
7082
7384
  /* @__PURE__ */ jsx("span", {
7083
- className: "animate-wave animation-delay-300 inline-block",
7084
- children: ""
7385
+ className: "sr-only",
7386
+ children: "Submitting…"
7085
7387
  }),
7086
- /* @__PURE__ */ jsx("span", {
7087
- className: "animate-wave animation-delay-150 inline-block",
7088
- children: ""
7388
+ "\xA0",
7389
+ /* @__PURE__ */ jsx(CircleFill, {
7390
+ className: "animate-wave size-2",
7391
+ weight: "black"
7089
7392
  }),
7090
- /* @__PURE__ */ jsx("span", {
7091
- className: "animate-wave inline-block",
7092
- children: ""
7093
- })
7094
- ] });
7095
- case "error": return /* @__PURE__ */ jsxs(Fragment, { children: [
7096
- error || "Error",
7097
- " ",
7098
- /* @__PURE__ */ jsx("span", {
7099
- className: "absolute top-1/2 ml-1.5 translate-y-[calc(-50%-1.5px)] text-2xl",
7100
- children: "×"
7101
- })
7393
+ /* @__PURE__ */ jsx(CircleFill, {
7394
+ className: "animate-wave animation-delay-100 size-2",
7395
+ weight: "black"
7396
+ }),
7397
+ /* @__PURE__ */ jsx(CircleFill, {
7398
+ className: "animate-wave animation-delay-200 size-2",
7399
+ weight: "black"
7400
+ }),
7401
+ "\xA0"
7102
7402
  ] });
7403
+ case "error": return error || /* @__PURE__ */ jsxs(Fragment, { children: ["Error", /* @__PURE__ */ jsx(Xmark, {
7404
+ className: "size-3.5",
7405
+ weight: "semibold"
7406
+ })] });
7103
7407
  case "readonly": return readonly || children;
7104
- case "success": return success || "Successfully Submitted";
7408
+ case "success": return success || /* @__PURE__ */ jsxs(Fragment, { children: ["Successfully Submitted", /* @__PURE__ */ jsx(Checkmark, {
7409
+ className: "size-3.5",
7410
+ weight: "semibold"
7411
+ })] });
7105
7412
  default: return children || "Submit";
7106
7413
  }
7107
7414
  };
@@ -7123,7 +7430,7 @@ function SubmitButton({ children, className, customTheme, error, formStatus = "r
7123
7430
  ...dataFormState,
7124
7431
  className: twMerge([
7125
7432
  formStatusButtonClasses,
7126
- "w-full text-white",
7433
+ "flex w-full items-center justify-center gap-2 text-white",
7127
7434
  className
7128
7435
  ]),
7129
7436
  customTheme: { themeColor: twMerge("data-error:[--theme-color:var(--color-red-500)] data-incomplete:[--theme-color:var(--color-neutral-500)] data-loading:[--theme-color:var(--color-yellow-500)] data-readonly:[--theme-color:var(--color-neutral-500)] data-ready:[--theme-color:var(--base-theme-color)] data-success:[--theme-color:var(--color-green-500)]", customTheme?.themeColor) },
@@ -7132,7 +7439,6 @@ function SubmitButton({ children, className, customTheme, error, formStatus = "r
7132
7439
  children: buttonText
7133
7440
  });
7134
7441
  }
7135
-
7136
7442
  //#endregion
7137
7443
  //#region src/components/textarea.tsx
7138
7444
  /**
@@ -7201,7 +7507,6 @@ function Textarea({ children, className, description, descriptionProps: { classN
7201
7507
  ]
7202
7508
  });
7203
7509
  }
7204
-
7205
7510
  //#endregion
7206
7511
  //#region src/components/time.tsx
7207
7512
  /**
@@ -7214,45 +7519,48 @@ function Textarea({ children, className, description, descriptionProps: { classN
7214
7519
  * @prop dateTime - Set the dateTime itself.
7215
7520
  * @prop day - Include the day of the month in the display.
7216
7521
  * @prop hours - Include the hours in the display.
7522
+ * @prop militaryTime - Use military time (24-hour clock) instead of AM/PM.
7217
7523
  * @prop milliseconds - Include the milliseconds in the display.
7218
7524
  * @prop minutes - Include the minutes in the display.
7219
7525
  * @prop month - Include the month in the display.
7220
7526
  * @prop seconds - Include the seconds in the display.
7221
7527
  * @prop year - Include the year in the display.
7222
7528
  */
7223
- function Time({ children, dateObject, dateTime, day, hours, milliseconds, minutes, month, seconds, year, ref, ...props }) {
7529
+ function Time({ children, dateObject, dateTime, day, hours, militaryTime, milliseconds, minutes, month, seconds, year, ref, ...props }) {
7224
7530
  const [date, setDate] = useState(dateObject || void 0);
7225
7531
  const getDateAndTime = () => {
7226
7532
  if (dateTime) return dateTime;
7227
7533
  if (!date) return "";
7228
- return [
7229
- date.getFullYear(),
7230
- getMonth(date),
7231
- getDate(date),
7232
- getHours(date),
7233
- getMinutes(date),
7234
- getSeconds(date),
7235
- getMilliseconds(date)
7236
- ].join("-");
7534
+ const currentYear = date.getFullYear(), currentMonth = getMonth(date), currentDay = getDate(date), currentHour = getHours(date), currentMinute = getMinutes(date), currentSecond = getSeconds(date), currentMillisecond = getMilliseconds(date);
7535
+ return [[
7536
+ currentYear,
7537
+ currentMonth,
7538
+ currentDay
7539
+ ].join("-"), [
7540
+ currentHour,
7541
+ currentMinute,
7542
+ [currentSecond, currentMillisecond].join(".")
7543
+ ].join(":")].join(" ");
7237
7544
  };
7238
7545
  const dateAndTime = getDateAndTime();
7239
7546
  const getDateDisplay = () => {
7240
7547
  if (children) return children;
7241
7548
  if (dateAndTime === "") return "";
7242
- const [dtYear, dtMonth, dtDay, dtHour, dtMinute, dtSecond, dtMillisecond] = dateAndTime.split("-").map(Number);
7549
+ const [dateData, timeData] = dateAndTime.split(" "), [dtYear, dtMonth, dtDay] = dateData.split("-").map(Number), [dtHour, dtMinute, secondData] = timeData.split(":").map(Number), [dtSecond, dtMillisecond] = String(secondData).split(".").map(Number);
7243
7550
  return [
7244
- day && dtDay,
7245
- month && [getMonthName(Number(dtMonth) - 1), month && year && ","].filter(Boolean).join(""),
7551
+ [month && getMonthName(Number(dtMonth) - 1), !day && month && year && ","].filter(Boolean).join(""),
7552
+ [day && dtDay, day && month && year && ","].filter(Boolean).join(""),
7246
7553
  year && dtYear,
7247
7554
  hours && minutes && [
7248
7555
  "at ",
7249
- hours && dtHour,
7556
+ hours && militaryTime ? dtHour : dtHour % 12 || 12,
7250
7557
  hours && minutes && ":",
7251
7558
  minutes && dtMinute,
7252
7559
  minutes && seconds && ":",
7253
7560
  seconds && dtSecond,
7254
7561
  seconds && milliseconds && ".",
7255
- milliseconds && dtMillisecond
7562
+ milliseconds && dtMillisecond,
7563
+ !militaryTime && (dtHour < 12 ? "am" : "pm")
7256
7564
  ].filter(Boolean).join("")
7257
7565
  ].filter(Boolean).join(" ");
7258
7566
  };
@@ -7270,7 +7578,6 @@ function Time({ children, dateObject, dateTime, day, hours, milliseconds, minute
7270
7578
  children: dateDisplay
7271
7579
  });
7272
7580
  }
7273
-
7274
7581
  //#endregion
7275
7582
  //#region node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs
7276
7583
  const min = Math.min;
@@ -7287,10 +7594,6 @@ const oppositeSideMap = {
7287
7594
  bottom: "top",
7288
7595
  top: "bottom"
7289
7596
  };
7290
- const oppositeAlignmentMap = {
7291
- start: "end",
7292
- end: "start"
7293
- };
7294
7597
  function clamp(start, value, end) {
7295
7598
  return max(start, min(value, end));
7296
7599
  }
@@ -7309,9 +7612,9 @@ function getOppositeAxis(axis) {
7309
7612
  function getAxisLength(axis) {
7310
7613
  return axis === "y" ? "height" : "width";
7311
7614
  }
7312
- const yAxisSides = /* @__PURE__ */ new Set(["top", "bottom"]);
7313
7615
  function getSideAxis(placement) {
7314
- return yAxisSides.has(getSide(placement)) ? "y" : "x";
7616
+ const firstChar = placement[0];
7617
+ return firstChar === "t" || firstChar === "b" ? "y" : "x";
7315
7618
  }
7316
7619
  function getAlignmentAxis(placement) {
7317
7620
  return getOppositeAxis(getSideAxis(placement));
@@ -7334,7 +7637,7 @@ function getExpandedPlacements(placement) {
7334
7637
  ];
7335
7638
  }
7336
7639
  function getOppositeAlignmentPlacement(placement) {
7337
- return placement.replace(/start|end/g, (alignment) => oppositeAlignmentMap[alignment]);
7640
+ return placement.includes("start") ? placement.replace("start", "end") : placement.replace("end", "start");
7338
7641
  }
7339
7642
  const lrPlacement = ["left", "right"];
7340
7643
  const rlPlacement = ["right", "left"];
@@ -7361,7 +7664,8 @@ function getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {
7361
7664
  return list;
7362
7665
  }
7363
7666
  function getOppositePlacement(placement) {
7364
- return placement.replace(/left|right|bottom|top/g, (side) => oppositeSideMap[side]);
7667
+ const side = getSide(placement);
7668
+ return oppositeSideMap[side] + placement.slice(side.length);
7365
7669
  }
7366
7670
  function expandPaddingObject(padding) {
7367
7671
  return {
@@ -7393,7 +7697,6 @@ function rectToClientRect(rect) {
7393
7697
  y
7394
7698
  };
7395
7699
  }
7396
-
7397
7700
  //#endregion
7398
7701
  //#region node_modules/@floating-ui/core/dist/floating-ui.core.mjs
7399
7702
  function computeCoordsFromPlacement(_ref, placement, rtl) {
@@ -7495,6 +7798,7 @@ async function detectOverflow(state, options) {
7495
7798
  right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x
7496
7799
  };
7497
7800
  }
7801
+ const MAX_RESET_COUNT = 50;
7498
7802
  /**
7499
7803
  * Computes the `x` and `y` coordinates that will place the floating element
7500
7804
  * next to a given reference element.
@@ -7504,7 +7808,10 @@ async function detectOverflow(state, options) {
7504
7808
  */
7505
7809
  const computePosition$1 = async (reference, floating, config) => {
7506
7810
  const { placement = "bottom", strategy = "absolute", middleware = [], platform } = config;
7507
- const validMiddleware = middleware.filter(Boolean);
7811
+ const platformWithDetectOverflow = platform.detectOverflow ? platform : {
7812
+ ...platform,
7813
+ detectOverflow
7814
+ };
7508
7815
  const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));
7509
7816
  let rects = await platform.getElementRects({
7510
7817
  reference,
@@ -7513,11 +7820,12 @@ const computePosition$1 = async (reference, floating, config) => {
7513
7820
  });
7514
7821
  let { x, y } = computeCoordsFromPlacement(rects, placement, rtl);
7515
7822
  let statefulPlacement = placement;
7516
- let middlewareData = {};
7517
7823
  let resetCount = 0;
7518
- for (let i = 0; i < validMiddleware.length; i++) {
7519
- var _platform$detectOverf;
7520
- const { name, fn } = validMiddleware[i];
7824
+ const middlewareData = {};
7825
+ for (let i = 0; i < middleware.length; i++) {
7826
+ const currentMiddleware = middleware[i];
7827
+ if (!currentMiddleware) continue;
7828
+ const { name, fn } = currentMiddleware;
7521
7829
  const { x: nextX, y: nextY, data, reset } = await fn({
7522
7830
  x,
7523
7831
  y,
@@ -7526,10 +7834,7 @@ const computePosition$1 = async (reference, floating, config) => {
7526
7834
  strategy,
7527
7835
  middlewareData,
7528
7836
  rects,
7529
- platform: {
7530
- ...platform,
7531
- detectOverflow: (_platform$detectOverf = platform.detectOverflow) != null ? _platform$detectOverf : detectOverflow
7532
- },
7837
+ platform: platformWithDetectOverflow,
7533
7838
  elements: {
7534
7839
  reference,
7535
7840
  floating
@@ -7537,14 +7842,11 @@ const computePosition$1 = async (reference, floating, config) => {
7537
7842
  });
7538
7843
  x = nextX != null ? nextX : x;
7539
7844
  y = nextY != null ? nextY : y;
7540
- middlewareData = {
7541
- ...middlewareData,
7542
- [name]: {
7543
- ...middlewareData[name],
7544
- ...data
7545
- }
7845
+ middlewareData[name] = {
7846
+ ...middlewareData[name],
7847
+ ...data
7546
7848
  };
7547
- if (reset && resetCount <= 50) {
7849
+ if (reset && resetCount < MAX_RESET_COUNT) {
7548
7850
  resetCount++;
7549
7851
  if (typeof reset === "object") {
7550
7852
  if (reset.placement) statefulPlacement = reset.placement;
@@ -7863,7 +8165,6 @@ const size$2 = function(options) {
7863
8165
  }
7864
8166
  };
7865
8167
  };
7866
-
7867
8168
  //#endregion
7868
8169
  //#region node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs
7869
8170
  function hasWindow() {
@@ -7897,54 +8198,30 @@ function isShadowRoot(value) {
7897
8198
  if (!hasWindow() || typeof ShadowRoot === "undefined") return false;
7898
8199
  return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;
7899
8200
  }
7900
- const invalidOverflowDisplayValues = /* @__PURE__ */ new Set(["inline", "contents"]);
7901
8201
  function isOverflowElement(element) {
7902
8202
  const { overflow, overflowX, overflowY, display } = getComputedStyle$1(element);
7903
- return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !invalidOverflowDisplayValues.has(display);
8203
+ return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && display !== "inline" && display !== "contents";
7904
8204
  }
7905
- const tableElements = /* @__PURE__ */ new Set([
7906
- "table",
7907
- "td",
7908
- "th"
7909
- ]);
7910
8205
  function isTableElement(element) {
7911
- return tableElements.has(getNodeName(element));
8206
+ return /^(table|td|th)$/.test(getNodeName(element));
7912
8207
  }
7913
- const topLayerSelectors = [":popover-open", ":modal"];
7914
8208
  function isTopLayer(element) {
7915
- return topLayerSelectors.some((selector) => {
7916
- try {
7917
- return element.matches(selector);
7918
- } catch (_e) {
7919
- return false;
7920
- }
7921
- });
7922
- }
7923
- const transformProperties = [
7924
- "transform",
7925
- "translate",
7926
- "scale",
7927
- "rotate",
7928
- "perspective"
7929
- ];
7930
- const willChangeValues = [
7931
- "transform",
7932
- "translate",
7933
- "scale",
7934
- "rotate",
7935
- "perspective",
7936
- "filter"
7937
- ];
7938
- const containValues = [
7939
- "paint",
7940
- "layout",
7941
- "strict",
7942
- "content"
7943
- ];
8209
+ try {
8210
+ if (element.matches(":popover-open")) return true;
8211
+ } catch (_e) {}
8212
+ try {
8213
+ return element.matches(":modal");
8214
+ } catch (_e) {
8215
+ return false;
8216
+ }
8217
+ }
8218
+ const willChangeRe = /transform|translate|scale|rotate|perspective|filter/;
8219
+ const containRe = /paint|layout|strict|content/;
8220
+ const isNotNone = (value) => !!value && value !== "none";
8221
+ let isWebKitValue;
7944
8222
  function isContainingBlock(elementOrCss) {
7945
- const webkit = isWebKit();
7946
8223
  const css = isElement(elementOrCss) ? getComputedStyle$1(elementOrCss) : elementOrCss;
7947
- return transformProperties.some((value) => css[value] ? css[value] !== "none" : false) || (css.containerType ? css.containerType !== "normal" : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== "none" : false) || !webkit && (css.filter ? css.filter !== "none" : false) || willChangeValues.some((value) => (css.willChange || "").includes(value)) || containValues.some((value) => (css.contain || "").includes(value));
8224
+ return isNotNone(css.transform) || isNotNone(css.translate) || isNotNone(css.scale) || isNotNone(css.rotate) || isNotNone(css.perspective) || !isWebKit() && (isNotNone(css.backdropFilter) || isNotNone(css.filter)) || willChangeRe.test(css.willChange || "") || containRe.test(css.contain || "");
7948
8225
  }
7949
8226
  function getContainingBlock(element) {
7950
8227
  let currentNode = getParentNode(element);
@@ -7956,16 +8233,11 @@ function getContainingBlock(element) {
7956
8233
  return null;
7957
8234
  }
7958
8235
  function isWebKit() {
7959
- if (typeof CSS === "undefined" || !CSS.supports) return false;
7960
- return CSS.supports("-webkit-backdrop-filter", "none");
8236
+ if (isWebKitValue == null) isWebKitValue = typeof CSS !== "undefined" && CSS.supports && CSS.supports("-webkit-backdrop-filter", "none");
8237
+ return isWebKitValue;
7961
8238
  }
7962
- const lastTraversableNodeNames = /* @__PURE__ */ new Set([
7963
- "html",
7964
- "body",
7965
- "#document"
7966
- ]);
7967
8239
  function isLastTraversableNode(node) {
7968
- return lastTraversableNodeNames.has(getNodeName(node));
8240
+ return /^(html|body|#document)$/.test(getNodeName(node));
7969
8241
  }
7970
8242
  function getComputedStyle$1(element) {
7971
8243
  return getWindow(element).getComputedStyle(element);
@@ -8001,13 +8273,11 @@ function getOverflowAncestors(node, list, traverseIframes) {
8001
8273
  if (isBody) {
8002
8274
  const frameElement = getFrameElement(win);
8003
8275
  return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []);
8004
- }
8005
- return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));
8276
+ } else return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));
8006
8277
  }
8007
8278
  function getFrameElement(win) {
8008
8279
  return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null;
8009
8280
  }
8010
-
8011
8281
  //#endregion
8012
8282
  //#region node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs
8013
8283
  function getCssDimensions(element) {
@@ -8128,7 +8398,7 @@ function convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {
8128
8398
  const isOffsetParentAnElement = isHTMLElement(offsetParent);
8129
8399
  if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {
8130
8400
  if (getNodeName(offsetParent) !== "body" || isOverflowElement(documentElement)) scroll = getNodeScroll(offsetParent);
8131
- if (isHTMLElement(offsetParent)) {
8401
+ if (isOffsetParentAnElement) {
8132
8402
  const offsetRect = getBoundingClientRect(offsetParent);
8133
8403
  scale = getScale(offsetParent);
8134
8404
  offsets.x = offsetRect.x + offsetParent.clientLeft;
@@ -8196,7 +8466,6 @@ function getViewportRect(element, strategy) {
8196
8466
  y
8197
8467
  };
8198
8468
  }
8199
- const absoluteOrFixed = /* @__PURE__ */ new Set(["absolute", "fixed"]);
8200
8469
  function getInnerBoundingClientRect(element, strategy) {
8201
8470
  const clientRect = getBoundingClientRect(element, true, strategy === "fixed");
8202
8471
  const top = clientRect.top + element.clientTop;
@@ -8241,7 +8510,7 @@ function getClippingElementAncestors(element, cache) {
8241
8510
  const computedStyle = getComputedStyle$1(currentNode);
8242
8511
  const currentNodeIsContaining = isContainingBlock(currentNode);
8243
8512
  if (!currentNodeIsContaining && computedStyle.position === "fixed") currentContainingBlockComputedStyle = null;
8244
- if (elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === "static" && !!currentContainingBlockComputedStyle && absoluteOrFixed.has(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode)) result = result.filter((ancestor) => ancestor !== currentNode);
8513
+ if (elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === "static" && !!currentContainingBlockComputedStyle && (currentContainingBlockComputedStyle.position === "absolute" || currentContainingBlockComputedStyle.position === "fixed") || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode)) result = result.filter((ancestor) => ancestor !== currentNode);
8245
8514
  else currentContainingBlockComputedStyle = computedStyle;
8246
8515
  currentNode = getParentNode(currentNode);
8247
8516
  }
@@ -8251,20 +8520,23 @@ function getClippingElementAncestors(element, cache) {
8251
8520
  function getClippingRect(_ref) {
8252
8521
  let { element, boundary, rootBoundary, strategy } = _ref;
8253
8522
  const clippingAncestors = [...boundary === "clippingAncestors" ? isTopLayer(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary), rootBoundary];
8254
- const firstClippingAncestor = clippingAncestors[0];
8255
- const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {
8256
- const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);
8257
- accRect.top = max(rect.top, accRect.top);
8258
- accRect.right = min(rect.right, accRect.right);
8259
- accRect.bottom = min(rect.bottom, accRect.bottom);
8260
- accRect.left = max(rect.left, accRect.left);
8261
- return accRect;
8262
- }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));
8523
+ const firstRect = getClientRectFromClippingAncestor(element, clippingAncestors[0], strategy);
8524
+ let top = firstRect.top;
8525
+ let right = firstRect.right;
8526
+ let bottom = firstRect.bottom;
8527
+ let left = firstRect.left;
8528
+ for (let i = 1; i < clippingAncestors.length; i++) {
8529
+ const rect = getClientRectFromClippingAncestor(element, clippingAncestors[i], strategy);
8530
+ top = max(rect.top, top);
8531
+ right = min(rect.right, right);
8532
+ bottom = min(rect.bottom, bottom);
8533
+ left = max(rect.left, left);
8534
+ }
8263
8535
  return {
8264
- width: clippingRect.right - clippingRect.left,
8265
- height: clippingRect.bottom - clippingRect.top,
8266
- x: clippingRect.left,
8267
- y: clippingRect.top
8536
+ width: right - left,
8537
+ height: bottom - top,
8538
+ x: left,
8539
+ y: top
8268
8540
  };
8269
8541
  }
8270
8542
  function getDimensions(element) {
@@ -8426,7 +8698,7 @@ function autoUpdate(reference, floating, update, options) {
8426
8698
  if (options === void 0) options = {};
8427
8699
  const { ancestorScroll = true, ancestorResize = true, elementResize = typeof ResizeObserver === "function", layoutShift = typeof IntersectionObserver === "function", animationFrame = false } = options;
8428
8700
  const referenceEl = unwrapElement(reference);
8429
- const ancestors = ancestorScroll || ancestorResize ? [...referenceEl ? getOverflowAncestors(referenceEl) : [], ...getOverflowAncestors(floating)] : [];
8701
+ const ancestors = ancestorScroll || ancestorResize ? [...referenceEl ? getOverflowAncestors(referenceEl) : [], ...floating ? getOverflowAncestors(floating) : []] : [];
8430
8702
  ancestors.forEach((ancestor) => {
8431
8703
  ancestorScroll && ancestor.addEventListener("scroll", update, { passive: true });
8432
8704
  ancestorResize && ancestor.addEventListener("resize", update);
@@ -8437,7 +8709,7 @@ function autoUpdate(reference, floating, update, options) {
8437
8709
  if (elementResize) {
8438
8710
  resizeObserver = new ResizeObserver((_ref) => {
8439
8711
  let [firstEntry] = _ref;
8440
- if (firstEntry && firstEntry.target === referenceEl && resizeObserver) {
8712
+ if (firstEntry && firstEntry.target === referenceEl && resizeObserver && floating) {
8441
8713
  resizeObserver.unobserve(floating);
8442
8714
  cancelAnimationFrame(reobserveFrame);
8443
8715
  reobserveFrame = requestAnimationFrame(() => {
@@ -8448,7 +8720,7 @@ function autoUpdate(reference, floating, update, options) {
8448
8720
  update();
8449
8721
  });
8450
8722
  if (referenceEl && !animationFrame) resizeObserver.observe(referenceEl);
8451
- resizeObserver.observe(floating);
8723
+ if (floating) resizeObserver.observe(floating);
8452
8724
  }
8453
8725
  let frameId;
8454
8726
  let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;
@@ -8525,7 +8797,6 @@ const computePosition = (reference, floating, options) => {
8525
8797
  platform: platformWithCache
8526
8798
  });
8527
8799
  };
8528
-
8529
8800
  //#endregion
8530
8801
  //#region node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs
8531
8802
  var index = typeof document !== "undefined" ? useLayoutEffect : function noop() {};
@@ -8755,50 +9026,69 @@ const arrow$1 = (options) => {
8755
9026
  * object may be passed.
8756
9027
  * @see https://floating-ui.com/docs/offset
8757
9028
  */
8758
- const offset = (options, deps) => ({
8759
- ...offset$1(options),
8760
- options: [options, deps]
8761
- });
9029
+ const offset = (options, deps) => {
9030
+ const result = offset$1(options);
9031
+ return {
9032
+ name: result.name,
9033
+ fn: result.fn,
9034
+ options: [options, deps]
9035
+ };
9036
+ };
8762
9037
  /**
8763
9038
  * Optimizes the visibility of the floating element by shifting it in order to
8764
9039
  * keep it in view when it will overflow the clipping boundary.
8765
9040
  * @see https://floating-ui.com/docs/shift
8766
9041
  */
8767
- const shift = (options, deps) => ({
8768
- ...shift$1(options),
8769
- options: [options, deps]
8770
- });
9042
+ const shift = (options, deps) => {
9043
+ const result = shift$1(options);
9044
+ return {
9045
+ name: result.name,
9046
+ fn: result.fn,
9047
+ options: [options, deps]
9048
+ };
9049
+ };
8771
9050
  /**
8772
9051
  * Optimizes the visibility of the floating element by flipping the `placement`
8773
9052
  * in order to keep it in view when the preferred placement(s) will overflow the
8774
9053
  * clipping boundary. Alternative to `autoPlacement`.
8775
9054
  * @see https://floating-ui.com/docs/flip
8776
9055
  */
8777
- const flip = (options, deps) => ({
8778
- ...flip$1(options),
8779
- options: [options, deps]
8780
- });
9056
+ const flip = (options, deps) => {
9057
+ const result = flip$1(options);
9058
+ return {
9059
+ name: result.name,
9060
+ fn: result.fn,
9061
+ options: [options, deps]
9062
+ };
9063
+ };
8781
9064
  /**
8782
9065
  * Provides data that allows you to change the size of the floating element —
8783
9066
  * for instance, prevent it from overflowing the clipping boundary or match the
8784
9067
  * width of the reference element.
8785
9068
  * @see https://floating-ui.com/docs/size
8786
9069
  */
8787
- const size = (options, deps) => ({
8788
- ...size$1(options),
8789
- options: [options, deps]
8790
- });
9070
+ const size = (options, deps) => {
9071
+ const result = size$1(options);
9072
+ return {
9073
+ name: result.name,
9074
+ fn: result.fn,
9075
+ options: [options, deps]
9076
+ };
9077
+ };
8791
9078
  /**
8792
9079
  * Provides data to position an inner element of the floating element so that it
8793
9080
  * appears centered to the reference element.
8794
9081
  * This wraps the core `arrow` middleware to allow React refs as the element.
8795
9082
  * @see https://floating-ui.com/docs/arrow
8796
9083
  */
8797
- const arrow = (options, deps) => ({
8798
- ...arrow$1(options),
8799
- options: [options, deps]
8800
- });
8801
-
9084
+ const arrow = (options, deps) => {
9085
+ const result = arrow$1(options);
9086
+ return {
9087
+ name: result.name,
9088
+ fn: result.fn,
9089
+ options: [options, deps]
9090
+ };
9091
+ };
8802
9092
  //#endregion
8803
9093
  //#region src/components/tooltip.tsx
8804
9094
  const defaultTooltipContext = {
@@ -9093,7 +9383,6 @@ function ArrowSvg({ className, ...props }) {
9093
9383
  ]
9094
9384
  });
9095
9385
  }
9096
-
9097
9386
  //#endregion
9098
9387
  //#region src/graphics/social-media/facebook-logo.tsx
9099
9388
  /**
@@ -9168,7 +9457,6 @@ function FacebookLogo({ className, cutout = false, targets, variant = "circle",
9168
9457
  ]
9169
9458
  });
9170
9459
  }
9171
-
9172
9460
  //#endregion
9173
9461
  //#region src/graphics/social-media/google-logo.tsx
9174
9462
  /**
@@ -9274,7 +9562,6 @@ function GoogleLogo({ gradient = true, ...props }) {
9274
9562
  ] }) : /* @__PURE__ */ jsx("path", { d: "M992.945,417.01L511.964,417.01L511.964,613.859L788.338,613.859C783.897,641.717 773.921,669.122 759.31,694.112C742.575,722.744 721.881,744.542 700.67,761.138C637.14,810.865 563.07,821.031 511.628,821.031C381.685,821.031 270.653,735.251 227.672,618.689C225.937,614.461 224.786,610.09 223.383,605.772C213.887,576.108 208.697,544.687 208.697,512.032C208.697,478.046 214.317,445.514 224.561,414.789C264.982,293.606 378.511,203.097 511.721,203.097C538.518,203.097 564.319,206.353 588.786,212.851C644.708,227.698 684.261,256.943 708.499,280.075L854.747,133.794C765.786,50.482 649.815,0 511.478,0C400.888,-0.004 298.788,35.19 215.121,94.667C147.265,142.902 91.616,207.482 54.06,282.487C19.128,352.029 0,429.093 0,511.953C0,594.821 19.158,672.685 54.09,741.588L54.09,742.052C90.988,815.198 144.943,878.178 210.526,926.192C267.816,968.135 370.54,1024 511.478,1024C592.529,1024 664.363,1009.08 727.713,981.104C773.413,960.926 813.904,934.608 850.563,900.787C899,856.093 936.938,800.815 962.829,737.214C988.724,673.612 1002.57,601.692 1002.57,523.719C1002.57,487.404 999.002,450.524 992.945,417.01Z" })
9275
9563
  });
9276
9564
  }
9277
-
9278
9565
  //#endregion
9279
9566
  //#region src/graphics/social-media/instagram-logo.tsx
9280
9567
  /**
@@ -9395,7 +9682,6 @@ function InstagramLogo({ gradient = true, ...props }) {
9395
9682
  ] })
9396
9683
  });
9397
9684
  }
9398
-
9399
9685
  //#endregion
9400
9686
  //#region src/graphics/social-media/linkedin-logo.tsx
9401
9687
  /**
@@ -9428,7 +9714,6 @@ function LinkedInLogo({ className, cutout, targets, ...props }) {
9428
9714
  })]
9429
9715
  });
9430
9716
  }
9431
-
9432
9717
  //#endregion
9433
9718
  //#region src/graphics/social-media/tiktok-logo.tsx
9434
9719
  /**
@@ -9467,7 +9752,6 @@ function TikTokLogo({ className, targets, variant = "multicolor", ...props }) {
9467
9752
  ] }), variant === "solid" && /* @__PURE__ */ jsx("path", { d: "M667.348,44.69C680.075,111.724 720.791,169.313 777.229,205.249L777.286,205.307C816.62,230.358 863.44,244.986 913.716,244.986L913.716,420.98C820.306,420.98 733.749,391.782 663.086,342.197L663.086,700.001C663.086,878.644 514.39,1024 331.543,1024C260.881,1024 195.401,1002.23 141.555,965.316L141.44,965.201C55.977,906.517 0,809.536 0,699.944C0,521.301 148.754,375.887 331.543,375.887C346.747,375.887 361.605,377.154 376.233,379.054L376.233,558.849C362.066,554.53 347.15,551.996 331.543,551.996C248.038,551.996 180.14,618.397 180.14,700.001C180.14,756.784 213.139,806.196 261.284,830.96C282.304,841.787 306.204,847.949 331.543,847.949C413.09,847.949 479.663,784.543 482.658,705.53L482.946,0L663.086,0C663.086,15.261 664.584,30.177 667.348,44.69Z" })]
9468
9753
  });
9469
9754
  }
9470
-
9471
9755
  //#endregion
9472
9756
  //#region src/graphics/social-media/x-logo.tsx
9473
9757
  /**
@@ -9480,7 +9764,6 @@ function XLogo(props) {
9480
9764
  children: /* @__PURE__ */ jsx("path", { d: "M806.464,0L963.472,0L620.432,392.08L1024,925.6L708.016,925.6L460.528,602.016L177.328,925.6L20.224,925.6L387.136,506.24L0,0L324,0L547.712,295.76L806.464,0ZM751.344,831.616L838.352,831.616L276.736,89.04L183.36,89.04L751.344,831.616Z" })
9481
9765
  });
9482
9766
  }
9483
-
9484
9767
  //#endregion
9485
9768
  //#region src/graphics/social-media/youtube-logo.tsx
9486
9769
  /**
@@ -9514,6 +9797,5 @@ function YouTubeLogo({ className, cutout = false, targets, ...props }) {
9514
9797
  })] })
9515
9798
  });
9516
9799
  }
9517
-
9518
9800
  //#endregion
9519
- export { Anchor, Button, Checkbox, Details, DetailsBody, DetailsSummary, DropDown, DropDownButton, DropDownItem, DropDownItems, DropDownSection, DropDownSeparator, FacebookLogo, Fieldset, Form, FormStatusProvider, Ghost, GoogleLogo, Heading, HumanVerification, IFrame, Input, InstagramLogo, Link, LinkedInLogo, Modal, ModalClose, ModalDialog, ModalTitle, ModalTrigger, Select, SelectOption, SelectSectionTitle, SubmitButton, Textarea, TikTokLogo, Time, Tooltip, TooltipPanel, TooltipTrigger, XLogo, YouTubeLogo, addClass, createFastContext, currentMonthName, currentWeekdayName, daysInMonth, easeOutExpo, emailRegex, extendMadoTailwindMerge, firstOfMonth, formatPhoneNumber, generateHumanValidationToken, getDate, getHours, getHoursIn12, getLinkClasses, getLocalTime, getMeridianFromHour, getMilliseconds, getMinutes, getMonth, getMonthIndexFromName, getMonthName, getNextMonth, getPreviousMonth, getSeconds, getTimezone, getUserReadableDate, getUserReadableDateFromTimestampz, getWeekdayName, getYearsInRange, hasClass, isEmail, isPhoneNumber, monthNamesList, removeClass, splitCamelCase, telRegex, toCamelCase, toFullDateString, toLowerCase, toTitleCase, toggleClass, twMerge, useFormStatus, usePointerMovement, validateHuman, weekdayNamesList };
9801
+ export { Anchor, Button, Checkbox, Details, DetailsBody, DetailsSummary, DropDown, DropDownButton, DropDownItem, DropDownItems, DropDownSection, DropDownSeparator, FacebookLogo, Fieldset, Form, FormStatusProvider, Ghost, GoogleLogo, Heading, HumanVerification, IFrame, Input, InstagramLogo, Link, LinkedInLogo, Modal, ModalClose, ModalDialog, ModalTitle, ModalTrigger, Select, SelectOption, SelectSectionTitle, SubmitButton, Textarea, TikTokLogo, Time, Tooltip, TooltipPanel, TooltipTrigger, XLogo, YouTubeLogo, addClass, createFastContext, currentMonthName, currentWeekdayName, daysInMonth, easeOutExpo, emailRegex, extendMadoTailwindMerge, firstOfMonth, formatPhoneNumber, generateHumanValidationToken, getDate, getHours, getHoursIn12, getLinkClasses, getLocalTime, getMeridianFromHour, getMilliseconds, getMinutes, getMonth, getMonthIndexFromName, getMonthName, getNextMonth, getPreviousMonth, getSeconds, getTimezone, getUserReadableDate, getUserReadableDateFromTimestampz, getWeekdayName, getYearsInRange, hasClass, isEmail, isPhoneNumber, monthNamesList, removeClass, splitCamelCase, telRegex, toCamelCase, toFullDateString, toLowerCase, toTitleCase, toggleClass, twMerge, useFormStatus, usePointerMovement, validateHuman, weekdayNamesList };