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