@andrilla/mado-ui 1.0.8 → 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.
@@ -5,7 +5,6 @@ import * as React from "react";
5
5
  import { Children, cloneElement, createContext, isValidElement, useContext, useEffect, useEffectEvent, useId, useLayoutEffect, useRef, useState, useSyncExternalStore } from "react";
6
6
  import * as ReactDOM from "react-dom";
7
7
  import { createPortal } from "react-dom";
8
-
9
8
  //#region src/utils/custom-tailwind-merge.ts
10
9
  const isInteger = (classPart) => /^\d+$/.test(classPart);
11
10
  const isFloat = (classPart) => /^\d+\.\d+$/.test(classPart);
@@ -100,7 +99,6 @@ const twMerge = extendTailwindMerge({ extend: { classGroups: {
100
99
  "grid-rows": [{ "grid-rows": ["0fr", "1fr"] }],
101
100
  transition: [{ transition: ["transition-cols", "transition-rows"] }]
102
101
  } } });
103
-
104
102
  //#endregion
105
103
  //#region src/utils/get-theme-color.ts
106
104
  function getThemeColor(theme) {
@@ -738,15 +736,14 @@ function getTextColor(theme, asVariable) {
738
736
  default: return asVariable ? "[--text-color:var(--base-theme-color--foreground)]" : "text-[var(--base-theme-color--foreground)]";
739
737
  }
740
738
  }
741
-
742
739
  //#endregion
743
740
  //#region src/components/link.tsx
744
- function Anchor({ as, className, disabled, href, onClick, target, rel, ...props }) {
741
+ function Anchor({ as, className, disabled, href, onClick, target, rel, removeHash = true, ...props }) {
745
742
  const isExternal = `${href}`.startsWith("http"), hasHash = `${href}`.includes("#");
746
743
  const handleClick = (e) => {
747
744
  if (disabled) return e.preventDefault();
748
745
  onClick?.(e);
749
- setTimeout(() => history.replaceState({}, document.title, location.pathname), 100);
746
+ if (removeHash) setTimeout(() => history.replaceState({}, document.title, location.pathname), 100);
750
747
  };
751
748
  return /* @__PURE__ */ jsx(as || "a", {
752
749
  ...props,
@@ -784,9 +781,9 @@ const lineLiftClasses = twJoin([
784
781
  scaleYClasses,
785
782
  "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"
786
783
  ]);
787
- 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)");
784
+ 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)");
788
785
  const getFillColorTransitionClasses = (theme, customTheme) => {
789
- let fillColorTransitionClasses = twJoin(fillClasses, "transition-[scale,color] after:bg-(--theme-color)");
786
+ let fillColorTransitionClasses = twJoin(fillClasses, "transition-[scale_color] after:bg-(--theme-color)");
790
787
  if (theme === "custom") {
791
788
  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`.");
792
789
  fillColorTransitionClasses = customTheme.themeColor ? twMerge(fillColorTransitionClasses, customTheme.themeColor) : twMerge(fillClasses, customTheme.classes);
@@ -794,7 +791,7 @@ const getFillColorTransitionClasses = (theme, customTheme) => {
794
791
  return fillColorTransitionClasses;
795
792
  };
796
793
  const getFillCenterClasses = (theme, customTheme) => {
797
- 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)");
794
+ 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)");
798
795
  if (theme === "custom") {
799
796
  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`.");
800
797
  fillCenterColorClasses = customTheme.themeColor ? twMerge(fillCenterColorClasses, customTheme.themeColor) : twMerge(fillClasses, customTheme.classes);
@@ -838,8 +835,8 @@ const getMultilineFillRtlClasses = (theme, customTheme) => {
838
835
  const getMultilineFillCenterClasses = (theme, customTheme) => {
839
836
  return twJoin(getMultilineFillXClasses(theme, customTheme), "bg-position-[50%_auto]");
840
837
  };
841
- function getLinkClasses({ customTheme, theme, type }) {
842
- switch (type) {
838
+ function getLinkClasses({ customTheme, theme, lineType }) {
839
+ switch (lineType) {
843
840
  case "static": return lineStaticClasses;
844
841
  case "ltr": return lineLtrClasses;
845
842
  case "rtl": return lineRtlClasses;
@@ -899,26 +896,28 @@ function getLinkClasses({ customTheme, theme, type }) {
899
896
  * ## Examples
900
897
  *
901
898
  * @example
902
- * <Link href='/about' type='ltr' title='About Us'>Learn more about our company</Link>
899
+ * <Link href='/about' lineType='ltr' title='About Us'>Learn more about our company</Link>
900
+ *
901
+ * @example
902
+ * <Link href='/about' lineType='fill-ltr' title='About Us'>Learn more about our company</Link>
903
903
  *
904
904
  * @example
905
- * <Link href='/about' type='fill-ltr' title='About Us'>Learn more about our company</Link>
905
+ * <Link href='/about' lineType='multiline-fill-rtl' theme='red' title='About Us'>Learn more about our company</Link>
906
906
  *
907
907
  * @example
908
- * <Link href='/about' type='fill-ltr' theme='red' title='About Us'>Learn more about our company</Link>
908
+ * <Link as='button' lineType='fill-lift' theme='mauve-700'>Edit</Link>
909
909
  */
910
- function Link({ as, className, customTheme, theme, type, ...props }) {
910
+ function Link({ as, className, customTheme, lineType, theme, ...props }) {
911
911
  const linkClasses = getLinkClasses({
912
912
  customTheme,
913
913
  theme,
914
- type
914
+ lineType
915
915
  });
916
916
  return /* @__PURE__ */ jsx(as || Anchor, {
917
917
  ...props,
918
918
  className: twMerge(linkClasses, className)
919
919
  });
920
920
  }
921
-
922
921
  //#endregion
923
922
  //#region src/components/button.tsx
924
923
  /**
@@ -959,7 +958,7 @@ function Button({ className, customTheme, gradient = false, padding = "md", roun
959
958
  getPaddingClasses(),
960
959
  getRoundedClasses(),
961
960
  getThemeColorVariable(),
962
- 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(" "),
961
+ 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(" "),
963
962
  className
964
963
  ]);
965
964
  if ("href" in props && !props.as && props.href) return /* @__PURE__ */ jsx(Button$1, {
@@ -972,7 +971,6 @@ function Button({ className, customTheme, gradient = false, padding = "md", roun
972
971
  className: buttonClasses
973
972
  });
974
973
  }
975
-
976
974
  //#endregion
977
975
  //#region src/symbols/checkmark.tsx
978
976
  function Checkmark({ weight = "regular", ...props }) {
@@ -1024,7 +1022,6 @@ function Checkmark({ weight = "regular", ...props }) {
1024
1022
  });
1025
1023
  }
1026
1024
  }
1027
-
1028
1025
  //#endregion
1029
1026
  //#region src/components/checkbox.tsx
1030
1027
  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 }) {
@@ -1079,7 +1076,6 @@ function Checkbox({ checkmark, children, className, description, descriptionProp
1079
1076
  })]
1080
1077
  });
1081
1078
  }
1082
-
1083
1079
  //#endregion
1084
1080
  //#region node_modules/animejs/dist/modules/core/consts.js
1085
1081
  /**
@@ -1131,9 +1127,6 @@ const proxyTargetSymbol = Symbol();
1131
1127
  const minValue = 1e-11;
1132
1128
  const maxValue = 0xe8d4a51000;
1133
1129
  const K = 1e3;
1134
- const maxFps = 240;
1135
- const emptyString = "";
1136
- const cssVarPrefix = "var(";
1137
1130
  const shortTransforms = /* @__PURE__ */ (() => {
1138
1131
  const map = /* @__PURE__ */ new Map();
1139
1132
  map.set("x", "translateX");
@@ -1177,7 +1170,6 @@ const unitsExecRgx = /^([-+]?\d*\.?\d+(?:e[-+]?\d+)?)([a-z]+|%)$/i;
1177
1170
  const lowerCaseRgx = /([a-z])([A-Z])/g;
1178
1171
  const transformsExecRgx = /(\w+)(\([^)]+\)+)/g;
1179
1172
  const cssVariableMatchRgx = /var\(\s*(--[\w-]+)(?:\s*,\s*([^)]+))?\s*\)/;
1180
-
1181
1173
  //#endregion
1182
1174
  //#region node_modules/animejs/dist/modules/core/globals.js
1183
1175
  /**
@@ -1202,7 +1194,7 @@ const defaults = {
1202
1194
  keyframes: null,
1203
1195
  playbackEase: null,
1204
1196
  playbackRate: 1,
1205
- frameRate: maxFps,
1197
+ frameRate: 240,
1206
1198
  loop: 0,
1207
1199
  reversed: false,
1208
1200
  alternate: false,
@@ -1241,7 +1233,6 @@ if (isBrowser) {
1241
1233
  if (!win.AnimeJS) win.AnimeJS = [];
1242
1234
  win.AnimeJS.push(globalVersions);
1243
1235
  }
1244
-
1245
1236
  //#endregion
1246
1237
  //#region node_modules/animejs/dist/modules/core/helpers.js
1247
1238
  /**
@@ -1380,7 +1371,7 @@ const clampInfinity = (v) => v === Infinity ? maxValue : v === -Infinity ? -maxV
1380
1371
  * @param {Number} v - Time value to normalize
1381
1372
  * @return {Number}
1382
1373
  */
1383
- const normalizeTime = (v) => v <= minValue ? minValue : clampInfinity(round$1(v, 11));
1374
+ const normalizeTime = (v) => v <= 1e-11 ? minValue : clampInfinity(round$1(v, 11));
1384
1375
  /**
1385
1376
  * @template T
1386
1377
  * @param {T[]} a
@@ -1455,7 +1446,6 @@ const addChild = (parent, child, sortMethod, prevProp = "_prev", nextProp = "_ne
1455
1446
  child[prevProp] = prev;
1456
1447
  child[nextProp] = next;
1457
1448
  };
1458
-
1459
1449
  //#endregion
1460
1450
  //#region node_modules/animejs/dist/modules/core/targets.js
1461
1451
  /**
@@ -1568,7 +1558,6 @@ function registerTargets(targets) {
1568
1558
  }
1569
1559
  return parsedTargetsArray;
1570
1560
  }
1571
-
1572
1561
  //#endregion
1573
1562
  //#region node_modules/animejs/dist/modules/core/transforms.js
1574
1563
  /**
@@ -1606,7 +1595,6 @@ const parseInlineTransforms = (target, propName, animationInlineStyles) => {
1606
1595
  }
1607
1596
  return inlineTransforms && !isUnd(inlinedStylesPropertyValue) ? inlinedStylesPropertyValue : stringStartsWith(propName, "scale") ? "1" : stringStartsWith(propName, "rotate") || stringStartsWith(propName, "skew") ? "0deg" : "0px";
1608
1597
  };
1609
-
1610
1598
  //#endregion
1611
1599
  //#region node_modules/animejs/dist/modules/core/colors.js
1612
1600
  /**
@@ -1701,7 +1689,6 @@ const convertColorStringValuesToRgbaArray = (colorString) => {
1701
1689
  1
1702
1690
  ];
1703
1691
  };
1704
-
1705
1692
  //#endregion
1706
1693
  //#region node_modules/animejs/dist/modules/core/values.js
1707
1694
  /**
@@ -1742,12 +1729,12 @@ const getFunctionValue = (value, target, index, total, store) => {
1742
1729
  const computed = value(target, index, total);
1743
1730
  return !isNaN(+computed) ? +computed : computed || 0;
1744
1731
  };
1745
- else if (isStr(value) && stringStartsWith(value, cssVarPrefix)) func = () => {
1732
+ else if (isStr(value) && stringStartsWith(value, "var(")) func = () => {
1746
1733
  const match = value.match(cssVariableMatchRgx);
1747
1734
  const cssVarName = match[1];
1748
1735
  const fallbackValue = match[2];
1749
1736
  let computed = getComputedStyle(target)?.getPropertyValue(cssVarName);
1750
- if ((!computed || computed.trim() === emptyString) && fallbackValue) computed = fallbackValue.trim();
1737
+ if ((!computed || computed.trim() === "") && fallbackValue) computed = fallbackValue.trim();
1751
1738
  return computed || 0;
1752
1739
  };
1753
1740
  else return value;
@@ -1866,7 +1853,6 @@ const decomposeTweenValue = (tween, targetObject) => {
1866
1853
  return targetObject;
1867
1854
  };
1868
1855
  const decomposedOriginalValue = createDecomposedValueTargetObject();
1869
-
1870
1856
  //#endregion
1871
1857
  //#region node_modules/animejs/dist/modules/core/styles.js
1872
1858
  /**
@@ -1925,28 +1911,27 @@ const cleanInlineStyles = (renderable) => {
1925
1911
  if (tweenTarget[isDomSymbol]) {
1926
1912
  const targetStyle = tweenTarget.style;
1927
1913
  const originalInlinedValue = tween._inlineValue;
1928
- const tweenHadNoInlineValue = isNil(originalInlinedValue) || originalInlinedValue === emptyString;
1914
+ const tweenHadNoInlineValue = isNil(originalInlinedValue) || originalInlinedValue === "";
1929
1915
  if (tween._tweenType === tweenTypes.TRANSFORM) {
1930
1916
  const cachedTransforms = tweenTarget[transformsSymbol];
1931
1917
  if (tweenHadNoInlineValue) delete cachedTransforms[tweenProperty];
1932
1918
  else cachedTransforms[tweenProperty] = originalInlinedValue;
1933
1919
  if (tween._renderTransforms) if (!Object.keys(cachedTransforms).length) targetStyle.removeProperty("transform");
1934
1920
  else {
1935
- let str = emptyString;
1921
+ let str = "";
1936
1922
  for (let key in cachedTransforms) str += transformsFragmentStrings[key] + cachedTransforms[key] + ") ";
1937
1923
  targetStyle.transform = str;
1938
1924
  }
1939
1925
  } else if (tweenHadNoInlineValue) targetStyle.removeProperty(toLowerCase(tweenProperty));
1940
1926
  else targetStyle[tweenProperty] = originalInlinedValue;
1941
1927
  if (animation._tail === tween) animation.targets.forEach((t) => {
1942
- if (t.getAttribute && t.getAttribute("style") === emptyString) t.removeAttribute("style");
1928
+ if (t.getAttribute && t.getAttribute("style") === "") t.removeAttribute("style");
1943
1929
  });
1944
1930
  }
1945
1931
  });
1946
1932
  }
1947
1933
  return renderable;
1948
1934
  };
1949
-
1950
1935
  //#endregion
1951
1936
  //#region node_modules/animejs/dist/modules/core/units.js
1952
1937
  /**
@@ -2005,7 +1990,6 @@ const convertValueUnit = (el, decomposedValue, unit, force = false) => {
2005
1990
  decomposedValue.u = unit;
2006
1991
  return decomposedValue;
2007
1992
  };
2008
-
2009
1993
  //#endregion
2010
1994
  //#region node_modules/animejs/dist/modules/easings/none.js
2011
1995
  /**
@@ -2021,7 +2005,6 @@ const convertValueUnit = (el, decomposedValue, unit, force = false) => {
2021
2005
  */
2022
2006
  /** @type {EasingFunction} */
2023
2007
  const none = (t) => t;
2024
-
2025
2008
  //#endregion
2026
2009
  //#region node_modules/animejs/dist/modules/easings/eases/parser.js
2027
2010
  /**
@@ -2062,7 +2045,7 @@ const halfPI = PI / 2;
2062
2045
  const doublePI = PI * 2;
2063
2046
  /** @type {Record<String, EasingFunctionWithParams|EasingFunction>} */
2064
2047
  const easeInFunctions = {
2065
- [emptyString]: easeInPower,
2048
+ [""]: easeInPower,
2066
2049
  Quad: easeInPower(2),
2067
2050
  Cubic: easeInPower(3),
2068
2051
  Quart: easeInPower(4),
@@ -2141,7 +2124,7 @@ const eases = /* @__PURE__ */ (() => {
2141
2124
  for (let type in easeTypes) for (let name in easeInFunctions) {
2142
2125
  const easeIn = easeInFunctions[name];
2143
2126
  const easeType = easeTypes[type];
2144
- list[type + name] = name === emptyString || name === "Back" || name === "Elastic" ? (a, b) => easeType(
2127
+ list[type + name] = name === "" || name === "Back" || name === "Elastic" ? (a, b) => easeType(
2145
2128
  /** @type {EasingFunctionWithParams} */
2146
2129
  easeIn(a, b)
2147
2130
  ) : easeType(easeIn);
@@ -2187,7 +2170,6 @@ const parseEase = (ease) => {
2187
2170
  }
2188
2171
  return isFnc(ease) ? ease : isStr(ease) ? parseEaseString(ease) : none;
2189
2172
  };
2190
-
2191
2173
  //#endregion
2192
2174
  //#region node_modules/animejs/dist/modules/core/render.js
2193
2175
  /**
@@ -2353,7 +2335,7 @@ const render = (tickable, time, muteCallbacks, internalRender, tickMode) => {
2353
2335
  } else tween._value = value;
2354
2336
  }
2355
2337
  if (tweenTransformsNeedUpdate && tween._renderTransforms) {
2356
- let str = emptyString;
2338
+ let str = "";
2357
2339
  for (let key in tweenTargetTransformsProperties) str += `${transformsFragmentStrings[key]}${tweenTargetTransformsProperties[key]}) `;
2358
2340
  tweenStyle.transform = str;
2359
2341
  tweenTransformsNeedUpdate = 0;
@@ -2366,7 +2348,7 @@ const render = (tickable, time, muteCallbacks, internalRender, tickMode) => {
2366
2348
  if (!muteCallbacks && isCurrentTimeAboveZero) tickable.onUpdate(tickable);
2367
2349
  }
2368
2350
  if (parent && isSetter) {
2369
- if (!muteCallbacks && (parent.began && !isRunningBackwards && tickableAbsoluteTime > 0 && !completed || isRunningBackwards && tickableAbsoluteTime <= minValue && completed)) {
2351
+ if (!muteCallbacks && (parent.began && !isRunningBackwards && tickableAbsoluteTime > 0 && !completed || isRunningBackwards && tickableAbsoluteTime <= 1e-11 && completed)) {
2370
2352
  tickable.onComplete(tickable);
2371
2353
  tickable.completed = !isRunningBackwards;
2372
2354
  }
@@ -2414,7 +2396,7 @@ const tick = (tickable, time, muteCallbacks, internalRender, tickMode) => {
2414
2396
  const childDuration = child.duration;
2415
2397
  const childStartTime = child._offset + child._delay;
2416
2398
  const childEndTime = childStartTime + childDuration;
2417
- if (!muteCallbacks && childDuration <= minValue && (!childStartTime || childEndTime === tlIterationDuration)) child.onComplete(child);
2399
+ if (!muteCallbacks && childDuration <= 1e-11 && (!childStartTime || childEndTime === tlIterationDuration)) child.onComplete(child);
2418
2400
  }
2419
2401
  });
2420
2402
  if (!muteCallbacks) tl.onLoop(tl);
@@ -2438,7 +2420,6 @@ const tick = (tickable, time, muteCallbacks, internalRender, tickMode) => {
2438
2420
  }
2439
2421
  }
2440
2422
  };
2441
-
2442
2423
  //#endregion
2443
2424
  //#region node_modules/animejs/dist/modules/core/clock.js
2444
2425
  /**
@@ -2469,9 +2450,9 @@ var Clock = class {
2469
2450
  /** @type {Number} */
2470
2451
  this._scheduledTime = 0;
2471
2452
  /** @type {Number} */
2472
- this._frameDuration = K / maxFps;
2453
+ this._frameDuration = K / 240;
2473
2454
  /** @type {Number} */
2474
- this._fps = maxFps;
2455
+ this._fps = 240;
2475
2456
  /** @type {Number} */
2476
2457
  this._speed = 1;
2477
2458
  /** @type {Boolean} */
@@ -2487,7 +2468,7 @@ var Clock = class {
2487
2468
  set fps(frameRate) {
2488
2469
  const previousFrameDuration = this._frameDuration;
2489
2470
  const fr = +frameRate;
2490
- const fps = fr < minValue ? minValue : fr;
2471
+ const fps = fr < 1e-11 ? minValue : fr;
2491
2472
  const frameDuration = K / fps;
2492
2473
  if (fps > defaults.frameRate) defaults.frameRate = fps;
2493
2474
  this._fps = fps;
@@ -2499,7 +2480,7 @@ var Clock = class {
2499
2480
  }
2500
2481
  set speed(playbackRate) {
2501
2482
  const pbr = +playbackRate;
2502
- this._speed = pbr < minValue ? minValue : pbr;
2483
+ this._speed = pbr < 1e-11 ? minValue : pbr;
2503
2484
  }
2504
2485
  /**
2505
2486
  * @param {Number} time
@@ -2525,7 +2506,6 @@ var Clock = class {
2525
2506
  return delta;
2526
2507
  }
2527
2508
  };
2528
-
2529
2509
  //#endregion
2530
2510
  //#region node_modules/animejs/dist/modules/animation/additive.js
2531
2511
  /**
@@ -2593,7 +2573,6 @@ const addAdditiveAnimation = (lookups) => {
2593
2573
  }
2594
2574
  return animation;
2595
2575
  };
2596
-
2597
2576
  //#endregion
2598
2577
  //#region node_modules/animejs/dist/modules/engine/engine.js
2599
2578
  /**
@@ -2717,7 +2696,6 @@ const killEngine = () => {
2717
2696
  engine.reqId = 0;
2718
2697
  return engine;
2719
2698
  };
2720
-
2721
2699
  //#endregion
2722
2700
  //#region node_modules/animejs/dist/modules/animation/composition.js
2723
2701
  /**
@@ -2809,7 +2787,7 @@ const composeTween = (tween, siblings) => {
2809
2787
  prevSibling._changeDuration = updatedPrevChangeDuration;
2810
2788
  prevSibling._currentTime = updatedPrevChangeDuration;
2811
2789
  prevSibling._isOverlapped = 1;
2812
- if (updatedPrevChangeDuration < minValue) overrideTween(prevSibling);
2790
+ if (updatedPrevChangeDuration < 1e-11) overrideTween(prevSibling);
2813
2791
  }
2814
2792
  let pausePrevParentAnimation = true;
2815
2793
  forEachChildren(prevParent, (t) => {
@@ -2954,7 +2932,6 @@ const removeTargetsFromRenderable = (targetsArray, renderable, propertyName) =>
2954
2932
  if (parent.cancel) /** @type {Renderable} */ parent.cancel();
2955
2933
  }
2956
2934
  };
2957
-
2958
2935
  //#endregion
2959
2936
  //#region node_modules/animejs/dist/modules/timer/timer.js
2960
2937
  /**
@@ -3044,7 +3021,7 @@ var Timer = class extends Clock {
3044
3021
  this.id = !isUnd(id) ? id : timerId;
3045
3022
  /** @type {Timeline} */
3046
3023
  this.parent = parent;
3047
- this.duration = clampInfinity((timerDuration + timerLoopDelay) * timerIterationCount - timerLoopDelay) || minValue;
3024
+ this.duration = clampInfinity((timerDuration + timerLoopDelay) * timerIterationCount - timerLoopDelay) || 1e-11;
3048
3025
  /** @type {Boolean} */
3049
3026
  this.backwards = false;
3050
3027
  /** @type {Boolean} */
@@ -3208,7 +3185,7 @@ var Timer = class extends Clock {
3208
3185
  resume() {
3209
3186
  if (!this.paused) return this;
3210
3187
  this.paused = false;
3211
- if (this.duration <= minValue && !this._hasChildren) tick(this, minValue, 0, 0, tickModes.FORCE);
3188
+ if (this.duration <= 1e-11 && !this._hasChildren) tick(this, minValue, 0, 0, tickModes.FORCE);
3212
3189
  else {
3213
3190
  if (!this._running) {
3214
3191
  addChild(engine, this);
@@ -3325,7 +3302,6 @@ var Timer = class extends Clock {
3325
3302
  });
3326
3303
  }
3327
3304
  };
3328
-
3329
3305
  //#endregion
3330
3306
  //#region node_modules/animejs/dist/modules/animation/animation.js
3331
3307
  /**
@@ -3470,7 +3446,7 @@ var JSAnimation = class extends Timer {
3470
3446
  const tDuration = hasSpring ? animEase.settlingDuration : setValue(duration, animDefaults.duration);
3471
3447
  const tDelay = setValue(delay, animDefaults.delay);
3472
3448
  const tModifier = modifier || animDefaults.modifier;
3473
- const tComposition = isUnd(composition) && targetsLength >= K ? compositionTypes.none : !isUnd(composition) ? composition : animDefaults.composition;
3449
+ const tComposition = isUnd(composition) && targetsLength >= 1e3 ? compositionTypes.none : !isUnd(composition) ? composition : animDefaults.composition;
3474
3450
  const absoluteOffsetTime = this._offset + (parent ? parent._offset : 0);
3475
3451
  if (hasSpring) /** @type {Spring} */ animEase.parent = this;
3476
3452
  let iterationDuration = NaN;
@@ -3629,7 +3605,7 @@ var JSAnimation = class extends Timer {
3629
3605
  shortestValue.d = longestValue.d.map((_, i) => isUnd(shortestValue.d[i]) ? 0 : shortestValue.d[i]);
3630
3606
  shortestValue.s = cloneArray(longestValue.s);
3631
3607
  }
3632
- const tweenUpdateDuration = round$1(+tweenDuration || minValue, 12);
3608
+ const tweenUpdateDuration = round$1(+tweenDuration || 1e-11, 12);
3633
3609
  let inlineValue = inlineStylesStore[propName];
3634
3610
  if (!isNil(inlineValue)) inlineStylesStore[propName] = null;
3635
3611
  /** @type {Tween} */
@@ -3715,7 +3691,7 @@ var JSAnimation = class extends Timer {
3715
3691
  /** @type {String|Number} */
3716
3692
  this.id = !isUnd(id) ? id : JSAnimationId;
3717
3693
  /** @type {Number} */
3718
- this.duration = iterationDuration === minValue ? minValue : clampInfinity((iterationDuration + this._loopDelay) * this.iterationCount - this._loopDelay) || minValue;
3694
+ this.duration = iterationDuration === 1e-11 ? minValue : clampInfinity((iterationDuration + this._loopDelay) * this.iterationCount - this._loopDelay) || 1e-11;
3719
3695
  /** @type {Callback<this>} */
3720
3696
  this.onRender = onRender || animDefaults.onRender;
3721
3697
  /** @type {EasingFunction} */
@@ -3769,7 +3745,7 @@ var JSAnimation = class extends Timer {
3769
3745
  }
3770
3746
  }
3771
3747
  });
3772
- if (this.duration === minValue) this.restart();
3748
+ if (this.duration === 1e-11) this.restart();
3773
3749
  return this;
3774
3750
  }
3775
3751
  /**
@@ -3797,7 +3773,6 @@ var JSAnimation = class extends Timer {
3797
3773
  * @return {JSAnimation}
3798
3774
  */
3799
3775
  const animate = (targets, parameters) => new JSAnimation(targets, parameters, null, 0, false).init();
3800
-
3801
3776
  //#endregion
3802
3777
  //#region node_modules/animejs/dist/modules/svg/helpers.js
3803
3778
  /**
@@ -3820,7 +3795,6 @@ const getPath = (path) => {
3820
3795
  if (!$parsedSvg || !isSvg($parsedSvg)) return console.warn(`${path} is not a valid SVGGeometryElement`);
3821
3796
  return $parsedSvg;
3822
3797
  };
3823
-
3824
3798
  //#endregion
3825
3799
  //#region node_modules/animejs/dist/modules/svg/morphto.js
3826
3800
  /**
@@ -3869,15 +3843,13 @@ const morphTo = (path2, precision = .33) => ($path1) => {
3869
3843
  $path1[morphPointsSymbol] = v2;
3870
3844
  return [v1, v2];
3871
3845
  };
3872
-
3873
3846
  //#endregion
3874
3847
  //#region src/utils/get-date.ts
3875
3848
  /** The current date as a Date object */
3876
3849
  const d = /* @__PURE__ */ new Date();
3877
3850
  /** The current minute of the current hour */
3878
3851
  const minutes = d.getMinutes();
3879
- /** The current year */
3880
- const year = d.getFullYear();
3852
+ d.getFullYear();
3881
3853
  /** An array of the names of month in order */
3882
3854
  const monthNamesList = [
3883
3855
  "January",
@@ -3903,10 +3875,8 @@ const weekdayNamesList = [
3903
3875
  "Friday",
3904
3876
  "Saturday"
3905
3877
  ];
3906
- /** The name of the current month */
3907
- const currentMonthName = getMonthName();
3908
- /** The name of the current day of the week */
3909
- const currentWeekdayName = getWeekdayName();
3878
+ getMonthName();
3879
+ getWeekdayName();
3910
3880
  /**
3911
3881
  * ### Get Date
3912
3882
  * - Returns the date with two digits
@@ -3999,13 +3969,11 @@ function getWeekdayName(weekday = d) {
3999
3969
  if (typeof weekday === "number") return weekdayNamesList[weekday];
4000
3970
  return weekdayNamesList[weekday.getDay()];
4001
3971
  }
4002
-
4003
3972
  //#endregion
4004
3973
  //#region src/utils/math.ts
4005
3974
  function easeOutExpo(time, start, end, duration) {
4006
3975
  return time == duration ? start + end : end * (-Math.pow(2, -10 * time / duration) + 1) + start;
4007
3976
  }
4008
-
4009
3977
  //#endregion
4010
3978
  //#region src/components/chevron-up-down-anime.tsx
4011
3979
  function ChevronUpDownAnime({ className, isUp = false }) {
@@ -4048,7 +4016,6 @@ function ChevronUpDownAnime({ className, isUp = false }) {
4048
4016
  })]
4049
4017
  });
4050
4018
  }
4051
-
4052
4019
  //#endregion
4053
4020
  //#region src/components/details.tsx
4054
4021
  function DetailsSummary({ arrow = true, children, className, onClick, ...props }) {
@@ -4088,7 +4055,6 @@ function Details({ as = "div", className, ...props }) {
4088
4055
  role: "details"
4089
4056
  });
4090
4057
  }
4091
-
4092
4058
  //#endregion
4093
4059
  //#region src/components/drop-down.tsx
4094
4060
  function DropDownButton({ arrow = true, as, children, className, ...props }) {
@@ -4155,7 +4121,7 @@ function DropDownSection({ children, label, labelProps, separatorAbove, separato
4155
4121
  separatorAbove && /* @__PURE__ */ jsx(DropDownSeparator, {}),
4156
4122
  label && /* @__PURE__ */ jsx(MenuHeading, {
4157
4123
  ...restLabelProps,
4158
- className: (headingBag) => twMerge("text-[larger] font-bold text-current/80", typeof labelClassName === "function" ? labelClassName(headingBag) : labelClassName),
4124
+ className: (headingBag) => twMerge("text-larger font-bold text-current/80", typeof labelClassName === "function" ? labelClassName(headingBag) : labelClassName),
4159
4125
  children: label
4160
4126
  }),
4161
4127
  typeof children === "function" ? children(sectionBag) : children,
@@ -4170,12 +4136,21 @@ function DropDownSeparator({ as, className, ...props }) {
4170
4136
  className: (bag) => twMerge("my-4 block h-px rounded-full bg-neutral-950/20", typeof className === "function" ? className(bag) : className)
4171
4137
  });
4172
4138
  }
4173
- function DropDown(props) {
4174
- return /* @__PURE__ */ jsx(Menu, { ...props });
4139
+ function DropDown({ as, ...props }) {
4140
+ return /* @__PURE__ */ jsx(Menu, {
4141
+ ...props,
4142
+ as
4143
+ });
4175
4144
  }
4176
-
4177
4145
  //#endregion
4178
4146
  //#region src/components/fieldset.tsx
4147
+ /**
4148
+ * # Fieldset
4149
+ *
4150
+ * @prop legend - The legend text to display above the fieldset.
4151
+ * @prop legendProps - Additional props to pass to the legend component.
4152
+ * @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.
4153
+ */
4179
4154
  function Fieldset({ children, className, legend, legendProps, name, ...props }) {
4180
4155
  const { className: legendClassName, ...restLegendProps } = legendProps || {};
4181
4156
  name = legend || name;
@@ -4190,7 +4165,6 @@ function Fieldset({ children, className, legend, legendProps, name, ...props })
4190
4165
  }), typeof children === "function" ? children(bag) : children] })
4191
4166
  });
4192
4167
  }
4193
-
4194
4168
  //#endregion
4195
4169
  //#region src/components/form.tsx
4196
4170
  function Form({ children, className, ...props }) {
@@ -4200,7 +4174,6 @@ function Form({ children, className, ...props }) {
4200
4174
  children
4201
4175
  });
4202
4176
  }
4203
-
4204
4177
  //#endregion
4205
4178
  //#region src/components/ghost.tsx
4206
4179
  function Ghost({ children, className, ...props }) {
@@ -4210,7 +4183,6 @@ function Ghost({ children, className, ...props }) {
4210
4183
  children: children || /* @__PURE__ */ jsx(Fragment, { children: "\xA0" })
4211
4184
  });
4212
4185
  }
4213
-
4214
4186
  //#endregion
4215
4187
  //#region src/components/heading.tsx
4216
4188
  function getTextFromChildren(children) {
@@ -4248,7 +4220,6 @@ function Heading({ as = "h2", children, customize, className, id, ref, ...props
4248
4220
  children
4249
4221
  });
4250
4222
  }
4251
-
4252
4223
  //#endregion
4253
4224
  //#region src/symbols/chevron.forward.tsx
4254
4225
  function ChevronForward({ weight = "regular", ...props }) {
@@ -4300,7 +4271,6 @@ function ChevronForward({ weight = "regular", ...props }) {
4300
4271
  });
4301
4272
  }
4302
4273
  }
4303
-
4304
4274
  //#endregion
4305
4275
  //#region node_modules/animejs/dist/modules/animatable/animatable.js
4306
4276
  /**
@@ -4419,7 +4389,6 @@ var Animatable = class {
4419
4389
  return this;
4420
4390
  }
4421
4391
  };
4422
-
4423
4392
  //#endregion
4424
4393
  //#region node_modules/animejs/dist/modules/utils/number.js
4425
4394
  /**
@@ -4432,7 +4401,6 @@ var Animatable = class {
4432
4401
  * @return {Number}
4433
4402
  */
4434
4403
  const mapRange = (value, inLow, inHigh, outLow, outHigh) => outLow + (value - inLow) / (inHigh - inLow) * (outHigh - outLow);
4435
-
4436
4404
  //#endregion
4437
4405
  //#region node_modules/animejs/dist/modules/easings/spring/index.js
4438
4406
  /**
@@ -4603,7 +4571,6 @@ var Spring = class {
4603
4571
  * @returns {Spring}
4604
4572
  */
4605
4573
  const spring = (parameters) => new Spring(parameters);
4606
-
4607
4574
  //#endregion
4608
4575
  //#region node_modules/animejs/dist/modules/utils/target.js
4609
4576
  /**
@@ -4682,7 +4649,6 @@ const set = (targets, parameters) => {
4682
4649
  parameters.composition = setValue(parameters.composition, compositionTypes.none);
4683
4650
  return new JSAnimation(targets, parameters, null, 0, true).resume();
4684
4651
  };
4685
-
4686
4652
  //#endregion
4687
4653
  //#region node_modules/animejs/dist/modules/draggable/draggable.js
4688
4654
  /**
@@ -5866,7 +5832,6 @@ var Draggable = class {
5866
5832
  * @return {Draggable}
5867
5833
  */
5868
5834
  const createDraggable = (target, parameters) => new Draggable(target, parameters);
5869
-
5870
5835
  //#endregion
5871
5836
  //#region src/components/human-verification.tsx
5872
5837
  function checkHashSecret([number, letter]) {
@@ -6115,7 +6080,6 @@ function HumanVerification({ children = "Verify", className }) {
6115
6080
  ]
6116
6081
  });
6117
6082
  }
6118
-
6119
6083
  //#endregion
6120
6084
  //#region src/components/iframe.tsx
6121
6085
  const allAllowProperties = [
@@ -6184,7 +6148,6 @@ function IFrame({ allow, className, referrerPolicy = "no-referrer-when-downgrade
6184
6148
  sandbox: sandbox?.join(" ")
6185
6149
  });
6186
6150
  }
6187
-
6188
6151
  //#endregion
6189
6152
  //#region src/components/input.tsx
6190
6153
  /**
@@ -6208,7 +6171,7 @@ function Input({ children, className, description, descriptionProps: { className
6208
6171
  children: [
6209
6172
  label && /* @__PURE__ */ jsx(Label, {
6210
6173
  ...labelProps,
6211
- className: (bag) => twMerge("text-sm font-medium", required ? "after:text-red-700 after:content-[\"_*\"]" : "", typeof labelClassName === "function" ? labelClassName(bag) : labelClassName),
6174
+ className: (bag) => twMerge("text-sm font-medium", required ? `after:text-red-700 after:content-['_*']` : "", typeof labelClassName === "function" ? labelClassName(bag) : labelClassName),
6212
6175
  children: label
6213
6176
  }),
6214
6177
  /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx(Input$1, {
@@ -6218,13 +6181,12 @@ function Input({ children, className, description, descriptionProps: { className
6218
6181
  }), children] }),
6219
6182
  description && /* @__PURE__ */ jsx(Description, {
6220
6183
  ...descriptionProps,
6221
- className: (bag) => twMerge("text-xs text-current/60", typeof descriptionClassName === "function" ? descriptionClassName(bag) : descriptionClassName),
6184
+ className: (bag) => twMerge("max-w-none text-xs text-current/60", typeof descriptionClassName === "function" ? descriptionClassName(bag) : descriptionClassName),
6222
6185
  children: description
6223
6186
  })
6224
6187
  ]
6225
6188
  });
6226
6189
  }
6227
-
6228
6190
  //#endregion
6229
6191
  //#region src/symbols/xmark.tsx
6230
6192
  function Xmark({ weight = "regular", ...props }) {
@@ -6276,7 +6238,6 @@ function Xmark({ weight = "regular", ...props }) {
6276
6238
  });
6277
6239
  }
6278
6240
  }
6279
-
6280
6241
  //#endregion
6281
6242
  //#region src/hooks/create-fast-context.tsx
6282
6243
  function createFastContext(defaultInitialState) {
@@ -6318,12 +6279,7 @@ function createFastContext(defaultInitialState) {
6318
6279
  useStore
6319
6280
  };
6320
6281
  }
6321
-
6322
- //#endregion
6323
- //#region src/hooks/use-form-status.tsx
6324
- const DEFAULT_STATUS = "incomplete";
6325
- const { Provider, useStore } = createFastContext(DEFAULT_STATUS);
6326
-
6282
+ const { Provider, useStore } = createFastContext("incomplete");
6327
6283
  //#endregion
6328
6284
  //#region src/components/modal.tsx
6329
6285
  const { Provider: ModalControlsProvider, useStore: useModalControls } = createFastContext({
@@ -6350,8 +6306,12 @@ function ModalTrigger({ as, onClick, ...props }) {
6350
6306
  onClick: handleClick
6351
6307
  });
6352
6308
  }
6353
- function ModalTitle(props) {
6354
- return /* @__PURE__ */ jsx(DialogTitle, { ...props });
6309
+ function ModalTitle({ as, ref, ...props }) {
6310
+ return /* @__PURE__ */ jsx(DialogTitle, {
6311
+ ...props,
6312
+ as,
6313
+ ref
6314
+ });
6355
6315
  }
6356
6316
  function ModalDialog(props) {
6357
6317
  const [modalControls] = useModalControls((store) => store);
@@ -6371,7 +6331,7 @@ function ModalDialog(props) {
6371
6331
  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(" "),
6372
6332
  children: [/* @__PURE__ */ jsx(DialogBackdrop, {
6373
6333
  transition: true,
6374
- 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(" "),
6334
+ 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(" "),
6375
6335
  children: /* @__PURE__ */ jsx(Button, {
6376
6336
  padding: "none",
6377
6337
  rounded: "full",
@@ -6392,7 +6352,7 @@ function ModalDialog(props) {
6392
6352
  transition: true,
6393
6353
  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),
6394
6354
  children: [/* @__PURE__ */ jsx("button", {
6395
- 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(" "),
6355
+ 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(" "),
6396
6356
  onTouchStart: enableTouchClose,
6397
6357
  onMouseDown: enableMouseClose,
6398
6358
  type: "button",
@@ -6404,8 +6364,18 @@ function ModalDialog(props) {
6404
6364
  })]
6405
6365
  });
6406
6366
  }
6407
- function ModalClose({ as, ...props }) {
6408
- return /* @__PURE__ */ jsx(as || Button$1, { ...props });
6367
+ function ModalClose({ as, onClick, ...props }) {
6368
+ const ModalCloseElement = as || Button$1;
6369
+ const [modalControls] = useModalControls((store) => store);
6370
+ const { closeModal } = modalControls || { closeModal: () => {} };
6371
+ const handleClick = (e) => {
6372
+ onClick?.(e);
6373
+ if (!e.defaultPrevented) closeModal();
6374
+ };
6375
+ return /* @__PURE__ */ jsx(ModalCloseElement, {
6376
+ ...props,
6377
+ onClick: handleClick
6378
+ });
6409
6379
  }
6410
6380
  function ModalDisplay({ children, className, onClose, onOpen, place = "bottom" }) {
6411
6381
  const [bodyElement, setBodyElement] = useState(null);
@@ -6515,7 +6485,6 @@ function ModalDisplay({ children, className, onClose, onOpen, place = "bottom" }
6515
6485
  function Modal(props) {
6516
6486
  return /* @__PURE__ */ jsx(ModalControlsProvider, { children: /* @__PURE__ */ jsx(ModalDisplay, { ...props }) });
6517
6487
  }
6518
-
6519
6488
  //#endregion
6520
6489
  //#region src/symbols/chevron.up.chevron.down.tsx
6521
6490
  function ChevronUpChevronDown({ weight = "regular", ...props }) {
@@ -6567,7 +6536,6 @@ function ChevronUpChevronDown({ weight = "regular", ...props }) {
6567
6536
  });
6568
6537
  }
6569
6538
  }
6570
-
6571
6539
  //#endregion
6572
6540
  //#region src/components/select.tsx
6573
6541
  /**
@@ -6593,7 +6561,7 @@ function SelectOption({ children, className, name, ...props }) {
6593
6561
  className: "group/option contents",
6594
6562
  ...props,
6595
6563
  children: (bag) => bag.selectedOption ? /* @__PURE__ */ jsx("span", {
6596
- className: "mr-3 before:absolute before:-left-3 before:content-[\",_\"]",
6564
+ className: `mr-3 before:absolute before:-left-3 before:content-[',_']`,
6597
6565
  children: name
6598
6566
  }) : /* @__PURE__ */ jsxs("div", {
6599
6567
  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),
@@ -6643,7 +6611,7 @@ function Select({ buttonProps, children, className, description, descriptionProp
6643
6611
  children: [
6644
6612
  label && /* @__PURE__ */ jsx(Label, {
6645
6613
  ...labelProps,
6646
- className: (bag) => twMerge("text-sm font-medium", required ? "after:text-red-700 after:content-[\"_*\"]" : "", typeof labelClassName === "function" ? labelClassName(bag) : labelClassName),
6614
+ className: (bag) => twMerge("text-sm font-medium", required ? `after:text-red-700 after:content-['_*']` : "", typeof labelClassName === "function" ? labelClassName(bag) : labelClassName),
6647
6615
  children: label
6648
6616
  }),
6649
6617
  /* @__PURE__ */ jsxs(Listbox, {
@@ -6659,7 +6627,7 @@ function Select({ buttonProps, children, className, description, descriptionProp
6659
6627
  "aria-hidden": "true",
6660
6628
  className: "sr-only top-0 left-1/2",
6661
6629
  id: props.name + ":input:id" + uniqueId,
6662
- name: props.name + ":input:name" + uniqueId,
6630
+ name: props.name,
6663
6631
  onChange: () => {},
6664
6632
  onInvalid: handleInvalid,
6665
6633
  onFocus: refocus,
@@ -6680,7 +6648,7 @@ function Select({ buttonProps, children, className, description, descriptionProp
6680
6648
  }), /* @__PURE__ */ jsx(ListboxOptions, {
6681
6649
  ...optionsProps,
6682
6650
  anchor: anchor || "bottom start",
6683
- 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),
6651
+ 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),
6684
6652
  transition: transition || true,
6685
6653
  children
6686
6654
  })]
@@ -6693,7 +6661,6 @@ function Select({ buttonProps, children, className, description, descriptionProp
6693
6661
  ]
6694
6662
  });
6695
6663
  }
6696
-
6697
6664
  //#endregion
6698
6665
  //#region src/symbols/circle.fill.tsx
6699
6666
  function CircleFill({ weight = "regular", ...props }) {
@@ -6745,7 +6712,6 @@ function CircleFill({ weight = "regular", ...props }) {
6745
6712
  });
6746
6713
  }
6747
6714
  }
6748
-
6749
6715
  //#endregion
6750
6716
  //#region src/components/submit-button.tsx
6751
6717
  /**
@@ -6821,7 +6787,7 @@ function SubmitButton({ children, className, customTheme, error, formStatus = "r
6821
6787
  ...dataFormState,
6822
6788
  className: twMerge([
6823
6789
  formStatusButtonClasses,
6824
- "w-full text-white",
6790
+ "flex w-full items-center justify-center gap-2 text-white",
6825
6791
  className
6826
6792
  ]),
6827
6793
  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) },
@@ -6830,7 +6796,6 @@ function SubmitButton({ children, className, customTheme, error, formStatus = "r
6830
6796
  children: buttonText
6831
6797
  });
6832
6798
  }
6833
-
6834
6799
  //#endregion
6835
6800
  //#region src/components/textarea.tsx
6836
6801
  /**
@@ -6899,7 +6864,6 @@ function Textarea({ children, className, description, descriptionProps: { classN
6899
6864
  ]
6900
6865
  });
6901
6866
  }
6902
-
6903
6867
  //#endregion
6904
6868
  //#region src/components/time.tsx
6905
6869
  /**
@@ -6912,45 +6876,48 @@ function Textarea({ children, className, description, descriptionProps: { classN
6912
6876
  * @prop dateTime - Set the dateTime itself.
6913
6877
  * @prop day - Include the day of the month in the display.
6914
6878
  * @prop hours - Include the hours in the display.
6879
+ * @prop militaryTime - Use military time (24-hour clock) instead of AM/PM.
6915
6880
  * @prop milliseconds - Include the milliseconds in the display.
6916
6881
  * @prop minutes - Include the minutes in the display.
6917
6882
  * @prop month - Include the month in the display.
6918
6883
  * @prop seconds - Include the seconds in the display.
6919
6884
  * @prop year - Include the year in the display.
6920
6885
  */
6921
- function Time({ children, dateObject, dateTime, day, hours, milliseconds, minutes, month, seconds, year, ref, ...props }) {
6886
+ function Time({ children, dateObject, dateTime, day, hours, militaryTime, milliseconds, minutes, month, seconds, year, ref, ...props }) {
6922
6887
  const [date, setDate] = useState(dateObject || void 0);
6923
6888
  const getDateAndTime = () => {
6924
6889
  if (dateTime) return dateTime;
6925
6890
  if (!date) return "";
6926
- return [
6927
- date.getFullYear(),
6928
- getMonth(date),
6929
- getDate(date),
6930
- getHours(date),
6931
- getMinutes(date),
6932
- getSeconds(date),
6933
- getMilliseconds(date)
6934
- ].join("-");
6891
+ const currentYear = date.getFullYear(), currentMonth = getMonth(date), currentDay = getDate(date), currentHour = getHours(date), currentMinute = getMinutes(date), currentSecond = getSeconds(date), currentMillisecond = getMilliseconds(date);
6892
+ return [[
6893
+ currentYear,
6894
+ currentMonth,
6895
+ currentDay
6896
+ ].join("-"), [
6897
+ currentHour,
6898
+ currentMinute,
6899
+ [currentSecond, currentMillisecond].join(".")
6900
+ ].join(":")].join(" ");
6935
6901
  };
6936
6902
  const dateAndTime = getDateAndTime();
6937
6903
  const getDateDisplay = () => {
6938
6904
  if (children) return children;
6939
6905
  if (dateAndTime === "") return "";
6940
- const [dtYear, dtMonth, dtDay, dtHour, dtMinute, dtSecond, dtMillisecond] = dateAndTime.split("-").map(Number);
6906
+ 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);
6941
6907
  return [
6942
- day && dtDay,
6943
- month && [getMonthName(Number(dtMonth) - 1), month && year && ","].filter(Boolean).join(""),
6908
+ [month && getMonthName(Number(dtMonth) - 1), !day && month && year && ","].filter(Boolean).join(""),
6909
+ [day && dtDay, day && month && year && ","].filter(Boolean).join(""),
6944
6910
  year && dtYear,
6945
6911
  hours && minutes && [
6946
6912
  "at ",
6947
- hours && dtHour,
6913
+ hours && militaryTime ? dtHour : dtHour % 12 || 12,
6948
6914
  hours && minutes && ":",
6949
6915
  minutes && dtMinute,
6950
6916
  minutes && seconds && ":",
6951
6917
  seconds && dtSecond,
6952
6918
  seconds && milliseconds && ".",
6953
- milliseconds && dtMillisecond
6919
+ milliseconds && dtMillisecond,
6920
+ !militaryTime && (dtHour < 12 ? "am" : "pm")
6954
6921
  ].filter(Boolean).join("")
6955
6922
  ].filter(Boolean).join(" ");
6956
6923
  };
@@ -6968,7 +6935,6 @@ function Time({ children, dateObject, dateTime, day, hours, milliseconds, minute
6968
6935
  children: dateDisplay
6969
6936
  });
6970
6937
  }
6971
-
6972
6938
  //#endregion
6973
6939
  //#region node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs
6974
6940
  const min = Math.min;
@@ -6985,10 +6951,6 @@ const oppositeSideMap = {
6985
6951
  bottom: "top",
6986
6952
  top: "bottom"
6987
6953
  };
6988
- const oppositeAlignmentMap = {
6989
- start: "end",
6990
- end: "start"
6991
- };
6992
6954
  function clamp(start, value, end) {
6993
6955
  return max(start, min(value, end));
6994
6956
  }
@@ -7007,9 +6969,9 @@ function getOppositeAxis(axis) {
7007
6969
  function getAxisLength(axis) {
7008
6970
  return axis === "y" ? "height" : "width";
7009
6971
  }
7010
- const yAxisSides = /* @__PURE__ */ new Set(["top", "bottom"]);
7011
6972
  function getSideAxis(placement) {
7012
- return yAxisSides.has(getSide(placement)) ? "y" : "x";
6973
+ const firstChar = placement[0];
6974
+ return firstChar === "t" || firstChar === "b" ? "y" : "x";
7013
6975
  }
7014
6976
  function getAlignmentAxis(placement) {
7015
6977
  return getOppositeAxis(getSideAxis(placement));
@@ -7032,7 +6994,7 @@ function getExpandedPlacements(placement) {
7032
6994
  ];
7033
6995
  }
7034
6996
  function getOppositeAlignmentPlacement(placement) {
7035
- return placement.replace(/start|end/g, (alignment) => oppositeAlignmentMap[alignment]);
6997
+ return placement.includes("start") ? placement.replace("start", "end") : placement.replace("end", "start");
7036
6998
  }
7037
6999
  const lrPlacement = ["left", "right"];
7038
7000
  const rlPlacement = ["right", "left"];
@@ -7059,7 +7021,8 @@ function getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {
7059
7021
  return list;
7060
7022
  }
7061
7023
  function getOppositePlacement(placement) {
7062
- return placement.replace(/left|right|bottom|top/g, (side) => oppositeSideMap[side]);
7024
+ const side = getSide(placement);
7025
+ return oppositeSideMap[side] + placement.slice(side.length);
7063
7026
  }
7064
7027
  function expandPaddingObject(padding) {
7065
7028
  return {
@@ -7091,7 +7054,6 @@ function rectToClientRect(rect) {
7091
7054
  y
7092
7055
  };
7093
7056
  }
7094
-
7095
7057
  //#endregion
7096
7058
  //#region node_modules/@floating-ui/core/dist/floating-ui.core.mjs
7097
7059
  function computeCoordsFromPlacement(_ref, placement, rtl) {
@@ -7193,6 +7155,7 @@ async function detectOverflow(state, options) {
7193
7155
  right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x
7194
7156
  };
7195
7157
  }
7158
+ const MAX_RESET_COUNT = 50;
7196
7159
  /**
7197
7160
  * Computes the `x` and `y` coordinates that will place the floating element
7198
7161
  * next to a given reference element.
@@ -7202,7 +7165,10 @@ async function detectOverflow(state, options) {
7202
7165
  */
7203
7166
  const computePosition$1 = async (reference, floating, config) => {
7204
7167
  const { placement = "bottom", strategy = "absolute", middleware = [], platform } = config;
7205
- const validMiddleware = middleware.filter(Boolean);
7168
+ const platformWithDetectOverflow = platform.detectOverflow ? platform : {
7169
+ ...platform,
7170
+ detectOverflow
7171
+ };
7206
7172
  const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));
7207
7173
  let rects = await platform.getElementRects({
7208
7174
  reference,
@@ -7211,11 +7177,12 @@ const computePosition$1 = async (reference, floating, config) => {
7211
7177
  });
7212
7178
  let { x, y } = computeCoordsFromPlacement(rects, placement, rtl);
7213
7179
  let statefulPlacement = placement;
7214
- let middlewareData = {};
7215
7180
  let resetCount = 0;
7216
- for (let i = 0; i < validMiddleware.length; i++) {
7217
- var _platform$detectOverf;
7218
- const { name, fn } = validMiddleware[i];
7181
+ const middlewareData = {};
7182
+ for (let i = 0; i < middleware.length; i++) {
7183
+ const currentMiddleware = middleware[i];
7184
+ if (!currentMiddleware) continue;
7185
+ const { name, fn } = currentMiddleware;
7219
7186
  const { x: nextX, y: nextY, data, reset } = await fn({
7220
7187
  x,
7221
7188
  y,
@@ -7224,10 +7191,7 @@ const computePosition$1 = async (reference, floating, config) => {
7224
7191
  strategy,
7225
7192
  middlewareData,
7226
7193
  rects,
7227
- platform: {
7228
- ...platform,
7229
- detectOverflow: (_platform$detectOverf = platform.detectOverflow) != null ? _platform$detectOverf : detectOverflow
7230
- },
7194
+ platform: platformWithDetectOverflow,
7231
7195
  elements: {
7232
7196
  reference,
7233
7197
  floating
@@ -7235,14 +7199,11 @@ const computePosition$1 = async (reference, floating, config) => {
7235
7199
  });
7236
7200
  x = nextX != null ? nextX : x;
7237
7201
  y = nextY != null ? nextY : y;
7238
- middlewareData = {
7239
- ...middlewareData,
7240
- [name]: {
7241
- ...middlewareData[name],
7242
- ...data
7243
- }
7202
+ middlewareData[name] = {
7203
+ ...middlewareData[name],
7204
+ ...data
7244
7205
  };
7245
- if (reset && resetCount <= 50) {
7206
+ if (reset && resetCount < MAX_RESET_COUNT) {
7246
7207
  resetCount++;
7247
7208
  if (typeof reset === "object") {
7248
7209
  if (reset.placement) statefulPlacement = reset.placement;
@@ -7561,7 +7522,6 @@ const size$2 = function(options) {
7561
7522
  }
7562
7523
  };
7563
7524
  };
7564
-
7565
7525
  //#endregion
7566
7526
  //#region node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs
7567
7527
  function hasWindow() {
@@ -7595,54 +7555,30 @@ function isShadowRoot(value) {
7595
7555
  if (!hasWindow() || typeof ShadowRoot === "undefined") return false;
7596
7556
  return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;
7597
7557
  }
7598
- const invalidOverflowDisplayValues = /* @__PURE__ */ new Set(["inline", "contents"]);
7599
7558
  function isOverflowElement(element) {
7600
7559
  const { overflow, overflowX, overflowY, display } = getComputedStyle$1(element);
7601
- return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !invalidOverflowDisplayValues.has(display);
7560
+ return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && display !== "inline" && display !== "contents";
7602
7561
  }
7603
- const tableElements = /* @__PURE__ */ new Set([
7604
- "table",
7605
- "td",
7606
- "th"
7607
- ]);
7608
7562
  function isTableElement(element) {
7609
- return tableElements.has(getNodeName(element));
7563
+ return /^(table|td|th)$/.test(getNodeName(element));
7610
7564
  }
7611
- const topLayerSelectors = [":popover-open", ":modal"];
7612
7565
  function isTopLayer(element) {
7613
- return topLayerSelectors.some((selector) => {
7614
- try {
7615
- return element.matches(selector);
7616
- } catch (_e) {
7617
- return false;
7618
- }
7619
- });
7620
- }
7621
- const transformProperties = [
7622
- "transform",
7623
- "translate",
7624
- "scale",
7625
- "rotate",
7626
- "perspective"
7627
- ];
7628
- const willChangeValues = [
7629
- "transform",
7630
- "translate",
7631
- "scale",
7632
- "rotate",
7633
- "perspective",
7634
- "filter"
7635
- ];
7636
- const containValues = [
7637
- "paint",
7638
- "layout",
7639
- "strict",
7640
- "content"
7641
- ];
7566
+ try {
7567
+ if (element.matches(":popover-open")) return true;
7568
+ } catch (_e) {}
7569
+ try {
7570
+ return element.matches(":modal");
7571
+ } catch (_e) {
7572
+ return false;
7573
+ }
7574
+ }
7575
+ const willChangeRe = /transform|translate|scale|rotate|perspective|filter/;
7576
+ const containRe = /paint|layout|strict|content/;
7577
+ const isNotNone = (value) => !!value && value !== "none";
7578
+ let isWebKitValue;
7642
7579
  function isContainingBlock(elementOrCss) {
7643
- const webkit = isWebKit();
7644
7580
  const css = isElement(elementOrCss) ? getComputedStyle$1(elementOrCss) : elementOrCss;
7645
- 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));
7581
+ 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 || "");
7646
7582
  }
7647
7583
  function getContainingBlock(element) {
7648
7584
  let currentNode = getParentNode(element);
@@ -7654,16 +7590,11 @@ function getContainingBlock(element) {
7654
7590
  return null;
7655
7591
  }
7656
7592
  function isWebKit() {
7657
- if (typeof CSS === "undefined" || !CSS.supports) return false;
7658
- return CSS.supports("-webkit-backdrop-filter", "none");
7593
+ if (isWebKitValue == null) isWebKitValue = typeof CSS !== "undefined" && CSS.supports && CSS.supports("-webkit-backdrop-filter", "none");
7594
+ return isWebKitValue;
7659
7595
  }
7660
- const lastTraversableNodeNames = /* @__PURE__ */ new Set([
7661
- "html",
7662
- "body",
7663
- "#document"
7664
- ]);
7665
7596
  function isLastTraversableNode(node) {
7666
- return lastTraversableNodeNames.has(getNodeName(node));
7597
+ return /^(html|body|#document)$/.test(getNodeName(node));
7667
7598
  }
7668
7599
  function getComputedStyle$1(element) {
7669
7600
  return getWindow(element).getComputedStyle(element);
@@ -7699,13 +7630,11 @@ function getOverflowAncestors(node, list, traverseIframes) {
7699
7630
  if (isBody) {
7700
7631
  const frameElement = getFrameElement(win);
7701
7632
  return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []);
7702
- }
7703
- return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));
7633
+ } else return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));
7704
7634
  }
7705
7635
  function getFrameElement(win) {
7706
7636
  return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null;
7707
7637
  }
7708
-
7709
7638
  //#endregion
7710
7639
  //#region node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs
7711
7640
  function getCssDimensions(element) {
@@ -7826,7 +7755,7 @@ function convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {
7826
7755
  const isOffsetParentAnElement = isHTMLElement(offsetParent);
7827
7756
  if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {
7828
7757
  if (getNodeName(offsetParent) !== "body" || isOverflowElement(documentElement)) scroll = getNodeScroll(offsetParent);
7829
- if (isHTMLElement(offsetParent)) {
7758
+ if (isOffsetParentAnElement) {
7830
7759
  const offsetRect = getBoundingClientRect(offsetParent);
7831
7760
  scale = getScale(offsetParent);
7832
7761
  offsets.x = offsetRect.x + offsetParent.clientLeft;
@@ -7894,7 +7823,6 @@ function getViewportRect(element, strategy) {
7894
7823
  y
7895
7824
  };
7896
7825
  }
7897
- const absoluteOrFixed = /* @__PURE__ */ new Set(["absolute", "fixed"]);
7898
7826
  function getInnerBoundingClientRect(element, strategy) {
7899
7827
  const clientRect = getBoundingClientRect(element, true, strategy === "fixed");
7900
7828
  const top = clientRect.top + element.clientTop;
@@ -7939,7 +7867,7 @@ function getClippingElementAncestors(element, cache) {
7939
7867
  const computedStyle = getComputedStyle$1(currentNode);
7940
7868
  const currentNodeIsContaining = isContainingBlock(currentNode);
7941
7869
  if (!currentNodeIsContaining && computedStyle.position === "fixed") currentContainingBlockComputedStyle = null;
7942
- 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);
7870
+ 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);
7943
7871
  else currentContainingBlockComputedStyle = computedStyle;
7944
7872
  currentNode = getParentNode(currentNode);
7945
7873
  }
@@ -7949,20 +7877,23 @@ function getClippingElementAncestors(element, cache) {
7949
7877
  function getClippingRect(_ref) {
7950
7878
  let { element, boundary, rootBoundary, strategy } = _ref;
7951
7879
  const clippingAncestors = [...boundary === "clippingAncestors" ? isTopLayer(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary), rootBoundary];
7952
- const firstClippingAncestor = clippingAncestors[0];
7953
- const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {
7954
- const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);
7955
- accRect.top = max(rect.top, accRect.top);
7956
- accRect.right = min(rect.right, accRect.right);
7957
- accRect.bottom = min(rect.bottom, accRect.bottom);
7958
- accRect.left = max(rect.left, accRect.left);
7959
- return accRect;
7960
- }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));
7880
+ const firstRect = getClientRectFromClippingAncestor(element, clippingAncestors[0], strategy);
7881
+ let top = firstRect.top;
7882
+ let right = firstRect.right;
7883
+ let bottom = firstRect.bottom;
7884
+ let left = firstRect.left;
7885
+ for (let i = 1; i < clippingAncestors.length; i++) {
7886
+ const rect = getClientRectFromClippingAncestor(element, clippingAncestors[i], strategy);
7887
+ top = max(rect.top, top);
7888
+ right = min(rect.right, right);
7889
+ bottom = min(rect.bottom, bottom);
7890
+ left = max(rect.left, left);
7891
+ }
7961
7892
  return {
7962
- width: clippingRect.right - clippingRect.left,
7963
- height: clippingRect.bottom - clippingRect.top,
7964
- x: clippingRect.left,
7965
- y: clippingRect.top
7893
+ width: right - left,
7894
+ height: bottom - top,
7895
+ x: left,
7896
+ y: top
7966
7897
  };
7967
7898
  }
7968
7899
  function getDimensions(element) {
@@ -8124,7 +8055,7 @@ function autoUpdate(reference, floating, update, options) {
8124
8055
  if (options === void 0) options = {};
8125
8056
  const { ancestorScroll = true, ancestorResize = true, elementResize = typeof ResizeObserver === "function", layoutShift = typeof IntersectionObserver === "function", animationFrame = false } = options;
8126
8057
  const referenceEl = unwrapElement(reference);
8127
- const ancestors = ancestorScroll || ancestorResize ? [...referenceEl ? getOverflowAncestors(referenceEl) : [], ...getOverflowAncestors(floating)] : [];
8058
+ const ancestors = ancestorScroll || ancestorResize ? [...referenceEl ? getOverflowAncestors(referenceEl) : [], ...floating ? getOverflowAncestors(floating) : []] : [];
8128
8059
  ancestors.forEach((ancestor) => {
8129
8060
  ancestorScroll && ancestor.addEventListener("scroll", update, { passive: true });
8130
8061
  ancestorResize && ancestor.addEventListener("resize", update);
@@ -8135,7 +8066,7 @@ function autoUpdate(reference, floating, update, options) {
8135
8066
  if (elementResize) {
8136
8067
  resizeObserver = new ResizeObserver((_ref) => {
8137
8068
  let [firstEntry] = _ref;
8138
- if (firstEntry && firstEntry.target === referenceEl && resizeObserver) {
8069
+ if (firstEntry && firstEntry.target === referenceEl && resizeObserver && floating) {
8139
8070
  resizeObserver.unobserve(floating);
8140
8071
  cancelAnimationFrame(reobserveFrame);
8141
8072
  reobserveFrame = requestAnimationFrame(() => {
@@ -8146,7 +8077,7 @@ function autoUpdate(reference, floating, update, options) {
8146
8077
  update();
8147
8078
  });
8148
8079
  if (referenceEl && !animationFrame) resizeObserver.observe(referenceEl);
8149
- resizeObserver.observe(floating);
8080
+ if (floating) resizeObserver.observe(floating);
8150
8081
  }
8151
8082
  let frameId;
8152
8083
  let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;
@@ -8223,7 +8154,6 @@ const computePosition = (reference, floating, options) => {
8223
8154
  platform: platformWithCache
8224
8155
  });
8225
8156
  };
8226
-
8227
8157
  //#endregion
8228
8158
  //#region node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs
8229
8159
  var index = typeof document !== "undefined" ? useLayoutEffect : function noop() {};
@@ -8453,50 +8383,69 @@ const arrow$1 = (options) => {
8453
8383
  * object may be passed.
8454
8384
  * @see https://floating-ui.com/docs/offset
8455
8385
  */
8456
- const offset = (options, deps) => ({
8457
- ...offset$1(options),
8458
- options: [options, deps]
8459
- });
8386
+ const offset = (options, deps) => {
8387
+ const result = offset$1(options);
8388
+ return {
8389
+ name: result.name,
8390
+ fn: result.fn,
8391
+ options: [options, deps]
8392
+ };
8393
+ };
8460
8394
  /**
8461
8395
  * Optimizes the visibility of the floating element by shifting it in order to
8462
8396
  * keep it in view when it will overflow the clipping boundary.
8463
8397
  * @see https://floating-ui.com/docs/shift
8464
8398
  */
8465
- const shift = (options, deps) => ({
8466
- ...shift$1(options),
8467
- options: [options, deps]
8468
- });
8399
+ const shift = (options, deps) => {
8400
+ const result = shift$1(options);
8401
+ return {
8402
+ name: result.name,
8403
+ fn: result.fn,
8404
+ options: [options, deps]
8405
+ };
8406
+ };
8469
8407
  /**
8470
8408
  * Optimizes the visibility of the floating element by flipping the `placement`
8471
8409
  * in order to keep it in view when the preferred placement(s) will overflow the
8472
8410
  * clipping boundary. Alternative to `autoPlacement`.
8473
8411
  * @see https://floating-ui.com/docs/flip
8474
8412
  */
8475
- const flip = (options, deps) => ({
8476
- ...flip$1(options),
8477
- options: [options, deps]
8478
- });
8413
+ const flip = (options, deps) => {
8414
+ const result = flip$1(options);
8415
+ return {
8416
+ name: result.name,
8417
+ fn: result.fn,
8418
+ options: [options, deps]
8419
+ };
8420
+ };
8479
8421
  /**
8480
8422
  * Provides data that allows you to change the size of the floating element —
8481
8423
  * for instance, prevent it from overflowing the clipping boundary or match the
8482
8424
  * width of the reference element.
8483
8425
  * @see https://floating-ui.com/docs/size
8484
8426
  */
8485
- const size = (options, deps) => ({
8486
- ...size$1(options),
8487
- options: [options, deps]
8488
- });
8427
+ const size = (options, deps) => {
8428
+ const result = size$1(options);
8429
+ return {
8430
+ name: result.name,
8431
+ fn: result.fn,
8432
+ options: [options, deps]
8433
+ };
8434
+ };
8489
8435
  /**
8490
8436
  * Provides data to position an inner element of the floating element so that it
8491
8437
  * appears centered to the reference element.
8492
8438
  * This wraps the core `arrow` middleware to allow React refs as the element.
8493
8439
  * @see https://floating-ui.com/docs/arrow
8494
8440
  */
8495
- const arrow = (options, deps) => ({
8496
- ...arrow$1(options),
8497
- options: [options, deps]
8498
- });
8499
-
8441
+ const arrow = (options, deps) => {
8442
+ const result = arrow$1(options);
8443
+ return {
8444
+ name: result.name,
8445
+ fn: result.fn,
8446
+ options: [options, deps]
8447
+ };
8448
+ };
8500
8449
  //#endregion
8501
8450
  //#region src/components/tooltip.tsx
8502
8451
  const defaultTooltipContext = {
@@ -8791,6 +8740,5 @@ function ArrowSvg({ className, ...props }) {
8791
8740
  ]
8792
8741
  });
8793
8742
  }
8794
-
8795
8743
  //#endregion
8796
- export { Anchor, Button, Checkbox, Details, DetailsBody, DetailsSummary, DropDown, DropDownButton, DropDownItem, DropDownItems, DropDownSection, DropDownSeparator, Fieldset, Form, Ghost, Heading, HumanVerification, IFrame, Input, Link, Modal, ModalClose, ModalDialog, ModalTitle, ModalTrigger, Select, SelectOption, SelectSectionTitle, SubmitButton, Textarea, Time, Tooltip, TooltipPanel, TooltipTrigger, generateHumanValidationToken, getLinkClasses, validateHuman };
8744
+ export { Anchor, Button, Checkbox, Details, DetailsBody, DetailsSummary, DropDown, DropDownButton, DropDownItem, DropDownItems, DropDownSection, DropDownSeparator, Fieldset, Form, Ghost, Heading, HumanVerification, IFrame, Input, Link, Modal, ModalClose, ModalDialog, ModalTitle, ModalTrigger, Select, SelectOption, SelectSectionTitle, SubmitButton, Textarea, Time, Tooltip, TooltipPanel, TooltipTrigger, generateHumanValidationToken, getLinkClasses, validateHuman };