@expcat/tigercat-core 2.0.0-rc.2 → 2.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1048,10 +1048,10 @@ var SVG_DEFAULT_VIEWBOX_24 = "0 0 24 24";
1048
1048
  var SVG_DEFAULT_VIEWBOX_20 = "0 0 20 20";
1049
1049
  var SVG_DEFAULT_FILL = "none";
1050
1050
  var SVG_DEFAULT_STROKE = "currentColor";
1051
- function getSvgDefaultAttrs(size = 24) {
1051
+ function getSvgDefaultAttrs(size2 = 24) {
1052
1052
  return {
1053
1053
  xmlns: SVG_DEFAULT_XMLNS,
1054
- viewBox: size === 20 ? SVG_DEFAULT_VIEWBOX_20 : SVG_DEFAULT_VIEWBOX_24,
1054
+ viewBox: size2 === 20 ? SVG_DEFAULT_VIEWBOX_20 : SVG_DEFAULT_VIEWBOX_24,
1055
1055
  fill: SVG_DEFAULT_FILL
1056
1056
  };
1057
1057
  }
@@ -1317,6 +1317,8 @@ function focusFirstMenuItem(container) {
1317
1317
  // src/utils/overlay-utils.ts
1318
1318
  var bodyScrollLockCount = 0;
1319
1319
  var previousBodyOverflow = "";
1320
+ var escapeDismissStacks = /* @__PURE__ */ new WeakMap();
1321
+ var escapeDismissOrder = 0;
1320
1322
  function getComposedPath(event) {
1321
1323
  const eventWithPath = event;
1322
1324
  if (typeof eventWithPath.composedPath === "function") {
@@ -1359,7 +1361,16 @@ function getFocusableElements2(root) {
1359
1361
  ];
1360
1362
  const elements = Array.from(root.querySelectorAll(selectors.join(",")));
1361
1363
  return elements.filter((el) => {
1362
- if (el.getAttribute("aria-hidden") === "true") return false;
1364
+ let current = el;
1365
+ while (current) {
1366
+ if (current.hidden || current.getAttribute("aria-hidden") === "true") return false;
1367
+ if (current.style.display === "none" || current.style.visibility === "hidden") return false;
1368
+ const view = current.ownerDocument.defaultView;
1369
+ const style = view?.getComputedStyle(current);
1370
+ if (style?.display === "none" || style?.visibility === "hidden") return false;
1371
+ if (current === root) break;
1372
+ current = current.parentElement;
1373
+ }
1363
1374
  if (el.getAttribute("disabled") !== null) return false;
1364
1375
  if (el.tabIndex < 0) return false;
1365
1376
  return true;
@@ -1386,6 +1397,49 @@ function getFocusTrapNavigation(event, focusables, activeElement) {
1386
1397
  }
1387
1398
  return { shouldHandle: false };
1388
1399
  }
1400
+ function compareEscapeDismissEntries(ownerDocument, a, b) {
1401
+ const aLayer = a.getLayer?.();
1402
+ const bLayer = b.getLayer?.();
1403
+ if (aLayer && bLayer && aLayer !== bLayer) {
1404
+ if (aLayer.contains(bLayer)) return -1;
1405
+ if (bLayer.contains(aLayer)) return 1;
1406
+ const view = ownerDocument.defaultView;
1407
+ const aZIndex = Number.parseFloat(view?.getComputedStyle(aLayer).zIndex ?? "");
1408
+ const bZIndex = Number.parseFloat(view?.getComputedStyle(bLayer).zIndex ?? "");
1409
+ if (Number.isFinite(aZIndex) && Number.isFinite(bZIndex) && aZIndex !== bZIndex) {
1410
+ return aZIndex - bZIndex;
1411
+ }
1412
+ const position = aLayer.compareDocumentPosition(bLayer);
1413
+ if (position & 4) return -1;
1414
+ if (position & 2) return 1;
1415
+ }
1416
+ return a.order - b.order;
1417
+ }
1418
+ function registerEscapeDismiss(ownerDocument, dismiss, getLayer) {
1419
+ let stack = escapeDismissStacks.get(ownerDocument);
1420
+ if (!stack) {
1421
+ stack = [];
1422
+ escapeDismissStacks.set(ownerDocument, stack);
1423
+ const entries = stack;
1424
+ ownerDocument.addEventListener("keydown", (event) => {
1425
+ if (event.defaultPrevented || !isEscapeKey(event)) return;
1426
+ const topmost = entries.reduce((current, entry2) => {
1427
+ if (!current) return entry2;
1428
+ return compareEscapeDismissEntries(ownerDocument, current, entry2) < 0 ? entry2 : current;
1429
+ }, void 0);
1430
+ if (topmost) {
1431
+ event.preventDefault();
1432
+ topmost.dismiss();
1433
+ }
1434
+ });
1435
+ }
1436
+ const entry = { dismiss, getLayer, order: ++escapeDismissOrder };
1437
+ stack.push(entry);
1438
+ return () => {
1439
+ const index = stack.lastIndexOf(entry);
1440
+ if (index >= 0) stack.splice(index, 1);
1441
+ };
1442
+ }
1389
1443
  function lockBodyScroll(targetDocument) {
1390
1444
  const resolvedDocument = targetDocument ?? (isBrowser() ? document : void 0);
1391
1445
  const body = resolvedDocument?.body;
@@ -2615,28 +2669,28 @@ function focusTimePickerOption(panel, unit, action) {
2615
2669
  }
2616
2670
  var timePickerBaseClasses = "relative inline-block w-full max-w-xs";
2617
2671
  var timePickerInputWrapperClasses = "relative flex items-center";
2618
- function getTimePickerInputClasses(size, disabled, showClear = false) {
2672
+ function getTimePickerInputClasses(size2, disabled, showClear = false) {
2619
2673
  const baseClasses = [
2620
- "w-full rounded-[var(--tiger-radius-md,0.5rem)] border border-gray-300",
2674
+ "w-full rounded-[var(--tiger-radius-md,0.5rem)] border border-[var(--tiger-border,#d1d5db)]",
2621
2675
  "focus:outline-none focus:ring-2 focus:ring-[var(--tiger-primary,#2563eb)] focus:border-transparent",
2622
2676
  "transition-colors duration-200",
2623
2677
  // Reserve space for the clock button (right-1 + w-6/8/10 per size),
2624
2678
  // plus the clear button (right-10, 24px wide) only when it is visible
2625
- showClear ? "pr-16" : { sm: "pr-8", md: "pr-10", lg: "pr-12" }[size]
2679
+ showClear ? "pr-16" : { sm: "pr-8", md: "pr-10", lg: "pr-12" }[size2]
2626
2680
  ];
2627
2681
  const sizeClasses3 = {
2628
2682
  sm: "px-2 py-1 text-sm",
2629
2683
  md: "px-3 py-2 text-base",
2630
2684
  lg: "px-4 py-3 text-lg"
2631
2685
  };
2632
- const stateClasses = disabled ? "bg-gray-100 text-gray-400 cursor-not-allowed" : "bg-white text-gray-900 cursor-pointer hover:border-gray-400";
2633
- return [...baseClasses, sizeClasses3[size], stateClasses].join(" ");
2686
+ const stateClasses = disabled ? "bg-[var(--tiger-surface-muted,#f3f4f6)] text-[var(--tiger-text-muted,#9ca3af)] cursor-not-allowed" : "bg-[var(--tiger-surface,#ffffff)] text-[var(--tiger-text,#111827)] cursor-pointer hover:border-[var(--tiger-text-muted,#9ca3af)]";
2687
+ return [...baseClasses, sizeClasses3[size2], stateClasses].join(" ");
2634
2688
  }
2635
- function getTimePickerIconButtonClasses(size) {
2689
+ function getTimePickerIconButtonClasses(size2) {
2636
2690
  const baseClasses = [
2637
2691
  "absolute right-1 flex items-center justify-center",
2638
- "text-gray-400 hover:text-gray-600",
2639
- "focus:outline-none focus:ring-2 focus:ring-[var(--tiger-primary,#2563eb)] focus:ring-offset-1",
2692
+ "text-[var(--tiger-text-muted,#9ca3af)] hover:text-[var(--tiger-text,#111827)]",
2693
+ "focus:outline-none focus:ring-2 focus:ring-[var(--tiger-primary,#2563eb)] focus:ring-offset-1 focus:ring-offset-[var(--tiger-surface,#ffffff)]",
2640
2694
  "rounded transition-colors duration-200",
2641
2695
  "disabled:cursor-not-allowed disabled:opacity-50"
2642
2696
  ];
@@ -2645,34 +2699,34 @@ function getTimePickerIconButtonClasses(size) {
2645
2699
  md: "w-8 h-8",
2646
2700
  lg: "w-10 h-10"
2647
2701
  };
2648
- return [...baseClasses, sizeClasses3[size]].join(" ");
2702
+ return [...baseClasses, sizeClasses3[size2]].join(" ");
2649
2703
  }
2650
2704
  var timePickerClearButtonClasses = [
2651
2705
  "absolute right-10 flex items-center justify-center",
2652
- "w-6 h-6 text-gray-400 hover:text-gray-600",
2653
- "focus:outline-none focus:ring-2 focus:ring-[var(--tiger-primary,#2563eb)] focus:ring-offset-1",
2706
+ "w-6 h-6 text-[var(--tiger-text-muted,#9ca3af)] hover:text-[var(--tiger-text,#111827)]",
2707
+ "focus:outline-none focus:ring-2 focus:ring-[var(--tiger-primary,#2563eb)] focus:ring-offset-1 focus:ring-offset-[var(--tiger-surface,#ffffff)]",
2654
2708
  "rounded transition-colors duration-200"
2655
2709
  ].join(" ");
2656
2710
  var timePickerPanelClasses = [
2657
- "absolute z-10 mt-1 bg-white border border-gray-200 rounded-[var(--tiger-radius-md,0.5rem)] shadow-lg",
2658
- "w-max max-sm:fixed max-sm:inset-x-0 max-sm:bottom-0 max-sm:z-50 max-sm:mt-0 max-sm:w-auto max-sm:rounded-t-[var(--tiger-radius-lg,0.75rem)] max-sm:rounded-b-none max-sm:p-4 max-sm:shadow-2xl max-sm:pb-[calc(1rem+env(safe-area-inset-bottom))]"
2711
+ "bg-[var(--tiger-surface,#ffffff)] text-[var(--tiger-text,#111827)] border border-[var(--tiger-border,#e5e7eb)] rounded-[var(--tiger-radius-md,0.5rem)] shadow-lg",
2712
+ "w-max max-sm:w-auto max-sm:rounded-t-[var(--tiger-radius-lg,0.75rem)] max-sm:rounded-b-none max-sm:p-4 max-sm:shadow-2xl max-sm:pb-[calc(1rem+env(safe-area-inset-bottom))]"
2659
2713
  ].join(" ");
2660
- var timePickerPanelContentClasses = "flex divide-x divide-gray-200";
2661
- var timePickerDesktopPanelContentClasses = "max-sm:hidden flex divide-x divide-gray-200";
2714
+ var timePickerPanelContentClasses = "flex divide-x divide-[var(--tiger-border,#e5e7eb)]";
2715
+ var timePickerDesktopPanelContentClasses = "max-sm:hidden flex divide-x divide-[var(--tiger-border,#e5e7eb)]";
2662
2716
  var timePickerMobileWheelClasses = "sm:hidden grid grid-cols-3 gap-2";
2663
2717
  var timePickerMobileWheelSelectClasses = [
2664
- "w-full rounded-[var(--tiger-radius-md,0.5rem)] border border-gray-300 bg-white px-3 py-3",
2665
- "text-center text-base text-gray-900 focus:outline-none focus:ring-2 focus:ring-[var(--tiger-primary,#2563eb)]"
2718
+ "w-full rounded-[var(--tiger-radius-md,0.5rem)] border border-[var(--tiger-border,#d1d5db)] bg-[var(--tiger-surface,#ffffff)] px-3 py-3",
2719
+ "text-center text-base text-[var(--tiger-text,#111827)] focus:outline-none focus:ring-2 focus:ring-[var(--tiger-primary,#2563eb)]"
2666
2720
  ].join(" ");
2667
2721
  var timePickerRangeHeaderClasses = [
2668
- "px-3 py-2 border-b border-gray-200 bg-gray-50",
2722
+ "px-3 py-2 border-b border-[var(--tiger-border,#e5e7eb)] bg-[var(--tiger-surface-muted,#f9fafb)]",
2669
2723
  "flex items-center gap-2"
2670
2724
  ].join(" ");
2671
2725
  function getTimePickerRangeTabButtonClasses(isActive) {
2672
2726
  const baseClasses = [
2673
2727
  "px-3 py-1 text-xs font-medium rounded",
2674
- "border border-gray-300",
2675
- "focus:outline-none focus:ring-2 focus:ring-[var(--tiger-primary,#2563eb)] focus:ring-offset-1",
2728
+ "border border-[var(--tiger-border,#d1d5db)]",
2729
+ "focus:outline-none focus:ring-2 focus:ring-[var(--tiger-primary,#2563eb)] focus:ring-offset-1 focus:ring-offset-[var(--tiger-surface,#ffffff)]",
2676
2730
  "transition-colors duration-150"
2677
2731
  ];
2678
2732
  if (isActive) {
@@ -2680,25 +2734,31 @@ function getTimePickerRangeTabButtonClasses(isActive) {
2680
2734
  " "
2681
2735
  );
2682
2736
  }
2683
- return [...baseClasses, "bg-white hover:bg-gray-50 text-gray-700"].join(" ");
2737
+ return [
2738
+ ...baseClasses,
2739
+ "bg-[var(--tiger-surface,#ffffff)] hover:bg-[var(--tiger-surface-muted,#f9fafb)] text-[var(--tiger-text,#374151)]"
2740
+ ].join(" ");
2684
2741
  }
2685
2742
  var timePickerColumnClasses = "flex flex-col overflow-hidden shrink-0 w-16";
2686
2743
  var timePickerColumnHeaderClasses = [
2687
- "px-2 py-1 text-xs font-semibold text-gray-500 text-center",
2688
- "bg-gray-50 border-b border-gray-200"
2744
+ "px-2 py-1 text-xs font-semibold text-[var(--tiger-text-muted,#6b7280)] text-center",
2745
+ "bg-[var(--tiger-surface-muted,#f9fafb)] border-b border-[var(--tiger-border,#e5e7eb)]"
2689
2746
  ].join(" ");
2690
2747
  var timePickerColumnListClasses = [
2691
- "overflow-y-auto max-h-48 scrollbar-thin scrollbar-thumb-gray-300 scrollbar-track-gray-100"
2748
+ "overflow-y-auto max-h-48 scrollbar-thin scrollbar-thumb-[var(--tiger-border,#d1d5db)] scrollbar-track-[var(--tiger-surface-muted,#f3f4f6)]"
2692
2749
  ].join(" ");
2693
2750
  function getTimePickerItemClasses(isSelected, isDisabled) {
2694
2751
  const baseClasses = [
2695
2752
  "w-full px-3 py-1.5 text-sm text-center",
2696
- "hover:bg-gray-100 focus:outline-none focus:bg-gray-100",
2753
+ "hover:bg-[var(--tiger-surface-muted,#f3f4f6)] focus:outline-none focus:bg-[var(--tiger-surface-muted,#f3f4f6)]",
2697
2754
  "transition-colors duration-150",
2698
2755
  "cursor-pointer"
2699
2756
  ];
2700
2757
  if (isDisabled) {
2701
- return [...baseClasses, "text-gray-300 cursor-not-allowed hover:bg-transparent"].join(" ");
2758
+ return [
2759
+ ...baseClasses,
2760
+ "text-[var(--tiger-text-muted,#9ca3af)] opacity-50 cursor-not-allowed hover:bg-transparent"
2761
+ ].join(" ");
2702
2762
  }
2703
2763
  if (isSelected) {
2704
2764
  return [
@@ -2708,12 +2768,12 @@ function getTimePickerItemClasses(isSelected, isDisabled) {
2708
2768
  "font-medium"
2709
2769
  ].join(" ");
2710
2770
  }
2711
- return [...baseClasses, "text-gray-700"].join(" ");
2771
+ return [...baseClasses, "text-[var(--tiger-text,#374151)]"].join(" ");
2712
2772
  }
2713
2773
  function getTimePickerPeriodButtonClasses(isSelected) {
2714
2774
  const baseClasses = [
2715
2775
  "w-full px-3 py-2 text-sm font-medium text-center",
2716
- "hover:bg-gray-100 focus:outline-none focus:bg-gray-100",
2776
+ "hover:bg-[var(--tiger-surface-muted,#f3f4f6)] focus:outline-none focus:bg-[var(--tiger-surface-muted,#f3f4f6)]",
2717
2777
  "transition-colors duration-150",
2718
2778
  "cursor-pointer"
2719
2779
  ];
@@ -2724,18 +2784,18 @@ function getTimePickerPeriodButtonClasses(isSelected) {
2724
2784
  "hover:bg-[var(--tiger-primary-hover,#1d4ed8)]"
2725
2785
  ].join(" ");
2726
2786
  }
2727
- return [...baseClasses, "text-gray-700"].join(" ");
2787
+ return [...baseClasses, "text-[var(--tiger-text,#374151)]"].join(" ");
2728
2788
  }
2729
2789
  var timePickerFooterClasses = [
2730
- "px-3 py-2 border-t border-gray-200",
2790
+ "px-3 py-2 border-t border-[var(--tiger-border,#e5e7eb)]",
2731
2791
  "flex items-center justify-between gap-2"
2732
2792
  ].join(" ");
2733
2793
  var timePickerFooterButtonClasses = [
2734
2794
  "px-3 py-1 text-xs font-medium rounded",
2735
- "border border-gray-300 hover:border-gray-400",
2736
- "bg-white hover:bg-gray-50",
2737
- "text-gray-700",
2738
- "focus:outline-none focus:ring-2 focus:ring-[var(--tiger-primary,#2563eb)] focus:ring-offset-1",
2795
+ "border border-[var(--tiger-border,#d1d5db)] hover:border-[var(--tiger-text-muted,#9ca3af)]",
2796
+ "bg-[var(--tiger-surface,#ffffff)] hover:bg-[var(--tiger-surface-muted,#f9fafb)]",
2797
+ "text-[var(--tiger-text,#374151)]",
2798
+ "focus:outline-none focus:ring-2 focus:ring-[var(--tiger-primary,#2563eb)] focus:ring-offset-1 focus:ring-offset-[var(--tiger-surface,#ffffff)]",
2739
2799
  "transition-colors duration-150"
2740
2800
  ].join(" ");
2741
2801
 
@@ -3131,7 +3191,7 @@ var tabFocusClasses = "focus:outline-none focus-visible:ring-2 focus-visible:rin
3131
3191
  var menuItemFocusClasses = "focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--tiger-focus-ring,var(--tiger-primary,#2563eb))] focus-visible:ring-inset";
3132
3192
 
3133
3193
  // src/utils/button-utils.ts
3134
- var buttonBaseClasses = "inline-flex items-center justify-center font-medium rounded-[var(--tiger-radius-md,0.5rem)] [transition:var(--tiger-transition-base,all_200ms_cubic-bezier(0.4,0,0.2,1))] focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-[var(--tiger-focus-ring,var(--tiger-primary,#2563eb))]/40 active:scale-[0.98]";
3194
+ var buttonBaseClasses = "inline-flex items-center justify-center whitespace-nowrap font-medium rounded-[var(--tiger-radius-md,0.5rem)] [transition:var(--tiger-transition-base,all_200ms_cubic-bezier(0.4,0,0.2,1))] focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-[var(--tiger-focus-ring,var(--tiger-primary,#2563eb))]/40 active:scale-[0.98]";
3135
3195
  var buttonSizeClasses = {
3136
3196
  xs: "px-2 py-1 text-xs",
3137
3197
  sm: "px-3 py-1.5 text-sm",
@@ -3185,11 +3245,11 @@ var INPUT_PADDING = {
3185
3245
  lg: { left: "pl-4", right: "pr-4", prefixLeft: "pl-12", suffixRight: "pr-12" }
3186
3246
  };
3187
3247
  function getInputClasses(options = {}) {
3188
- const { size = "md", status = "default", hasPrefix, hasSuffix } = options;
3189
- const pad = INPUT_PADDING[size];
3248
+ const { size: size2 = "md", status = "default", hasPrefix, hasSuffix } = options;
3249
+ const pad = INPUT_PADDING[size2];
3190
3250
  return classNames(
3191
3251
  ...BASE_INPUT_CLASSES,
3192
- INPUT_SIZE_CLASSES[size],
3252
+ INPUT_SIZE_CLASSES[size2],
3193
3253
  STATUS_CLASSES[status],
3194
3254
  hasPrefix ? pad.prefixLeft : pad.left,
3195
3255
  hasSuffix ? pad.suffixRight : pad.right
@@ -3198,35 +3258,35 @@ function getInputClasses(options = {}) {
3198
3258
  function getInputWrapperClasses() {
3199
3259
  return "relative w-full";
3200
3260
  }
3201
- function getInputAffixClasses(position, size = "md") {
3261
+ function getInputAffixClasses(position, size2 = "md") {
3202
3262
  const base = "absolute top-0 bottom-0 flex items-center justify-center text-gray-500";
3203
3263
  const posClass = position === "prefix" ? "left-0" : "right-0";
3204
3264
  const widthClass = {
3205
3265
  sm: "w-8",
3206
3266
  md: "w-10",
3207
3267
  lg: "w-12"
3208
- }[size];
3268
+ }[size2];
3209
3269
  return classNames(base, posClass, widthClass);
3210
3270
  }
3211
- function getInputErrorClasses(size = "md") {
3271
+ function getInputErrorClasses(size2 = "md") {
3212
3272
  return classNames(
3213
3273
  "absolute inset-y-0 right-0 flex items-center pointer-events-none",
3214
- INPUT_PADDING[size].right,
3274
+ INPUT_PADDING[size2].right,
3215
3275
  "text-red-500 text-sm"
3216
3276
  );
3217
3277
  }
3218
- function getInputClearButtonClasses(size = "md") {
3278
+ function getInputClearButtonClasses(size2 = "md") {
3219
3279
  return classNames(
3220
3280
  "absolute inset-y-0 right-0 flex items-center cursor-pointer",
3221
3281
  "text-[var(--tiger-text-muted,#6b7280)] hover:text-[var(--tiger-text,#111827)]",
3222
- INPUT_PADDING[size].right
3282
+ INPUT_PADDING[size2].right
3223
3283
  );
3224
3284
  }
3225
- function getInputPasswordToggleClasses(size = "md") {
3285
+ function getInputPasswordToggleClasses(size2 = "md") {
3226
3286
  return classNames(
3227
3287
  "absolute inset-y-0 right-0 flex items-center cursor-pointer",
3228
3288
  "text-[var(--tiger-text-muted,#6b7280)] hover:text-[var(--tiger-text,#111827)]",
3229
- INPUT_PADDING[size].right
3289
+ INPUT_PADDING[size2].right
3230
3290
  );
3231
3291
  }
3232
3292
  function getInputCountClasses(isOverLimit = false) {
@@ -3275,22 +3335,22 @@ var WRAPPER_SIZE_CLASSES = {
3275
3335
  md: "h-10",
3276
3336
  lg: "h-12"
3277
3337
  };
3278
- function getInputNumberSizeClasses(size = "md") {
3279
- return WRAPPER_SIZE_CLASSES[size];
3338
+ function getInputNumberSizeClasses(size2 = "md") {
3339
+ return WRAPPER_SIZE_CLASSES[size2];
3280
3340
  }
3281
3341
  var INPUT_SIZE_CLASSES2 = {
3282
3342
  sm: "text-sm px-2",
3283
3343
  md: "text-base px-3",
3284
3344
  lg: "text-lg px-4"
3285
3345
  };
3286
- function getInputNumberInputClasses(size = "md", hasControlsRight, hasControlsBoth) {
3346
+ function getInputNumberInputClasses(size2 = "md", hasControlsRight, hasControlsBoth) {
3287
3347
  return classNames(
3288
3348
  "w-full h-full bg-transparent border-0 outline-none",
3289
3349
  "text-[var(--tiger-text,#111827)]",
3290
3350
  "placeholder:text-[var(--tiger-text-muted,#6b7280)]",
3291
3351
  "disabled:text-[var(--tiger-text-muted,#6b7280)] disabled:cursor-not-allowed",
3292
3352
  "[appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none",
3293
- INPUT_SIZE_CLASSES2[size],
3353
+ INPUT_SIZE_CLASSES2[size2],
3294
3354
  hasControlsRight && "pr-8",
3295
3355
  hasControlsBoth && "px-8 text-center"
3296
3356
  );
@@ -3381,31 +3441,31 @@ var ERROR_MIN_HEIGHT = {
3381
3441
  lg: "min-h-[1.5rem]"
3382
3442
  };
3383
3443
  function getFormItemClasses(options = {}) {
3384
- const { size = "md", labelPosition = "right", hasError = false, disabled = false } = options;
3444
+ const { size: size2 = "md", labelPosition = "right", hasError = false, disabled = false } = options;
3385
3445
  const layoutClasses = labelPosition === "top" ? "flex flex-col gap-2" : "flex items-start gap-4";
3386
3446
  return classNames(
3387
3447
  "tiger-form-item",
3388
3448
  "w-full",
3389
- `tiger-form-item--${size}`,
3449
+ `tiger-form-item--${size2}`,
3390
3450
  `tiger-form-item--label-${labelPosition}`,
3391
3451
  layoutClasses,
3392
- FORM_ITEM_SPACING[size],
3452
+ FORM_ITEM_SPACING[size2],
3393
3453
  hasError && "tiger-form-item--error",
3394
3454
  disabled && "tiger-form-item--disabled"
3395
3455
  );
3396
3456
  }
3397
3457
  function getFormItemLabelClasses(options = {}) {
3398
- const { size = "md", labelPosition = "right", isRequired = false } = options;
3458
+ const { size: size2 = "md", labelPosition = "right", isRequired = false } = options;
3399
3459
  const labelAlign = options.labelAlign ?? (labelPosition === "top" ? "left" : "right");
3400
3460
  const alignClass = labelAlign === "right" ? "text-right" : "text-left";
3401
3461
  const positionClasses = labelPosition === "top" ? "w-full" : "shrink-0";
3402
- const paddingClass = labelPosition === "top" ? "" : LABEL_PADDING_TOP[size];
3462
+ const paddingClass = labelPosition === "top" ? "" : LABEL_PADDING_TOP[size2];
3403
3463
  return classNames(
3404
3464
  "tiger-form-item__label",
3405
3465
  `tiger-form-item__label--${labelAlign}`,
3406
3466
  "font-medium",
3407
3467
  "text-[var(--tiger-text,#111827)]",
3408
- LABEL_TEXT_SIZE[size],
3468
+ LABEL_TEXT_SIZE[size2],
3409
3469
  alignClass,
3410
3470
  positionClasses,
3411
3471
  paddingClass,
@@ -3424,12 +3484,12 @@ function getFormItemContentClasses(labelPosition = "right") {
3424
3484
  function getFormItemFieldClasses() {
3425
3485
  return classNames("tiger-form-item__field", "w-full");
3426
3486
  }
3427
- function getFormItemErrorClasses(size = "md") {
3487
+ function getFormItemErrorClasses(size2 = "md") {
3428
3488
  return classNames(
3429
3489
  "tiger-form-item__error",
3430
3490
  "mt-1",
3431
- ERROR_TEXT_SIZE[size],
3432
- ERROR_MIN_HEIGHT[size],
3491
+ ERROR_TEXT_SIZE[size2],
3492
+ ERROR_MIN_HEIGHT[size2],
3433
3493
  "text-[var(--tiger-error,#ef4444)]",
3434
3494
  "transition-opacity",
3435
3495
  "duration-150",
@@ -3474,7 +3534,7 @@ var SELECT_TRIGGER_DISABLED_CLASSES_STRING = [
3474
3534
  "disabled:cursor-not-allowed",
3475
3535
  "disabled:border-[var(--tiger-select-trigger-border-disabled,var(--tiger-border,#e5e7eb))]"
3476
3536
  ].join(" ");
3477
- var selectDropdownBaseClasses = "absolute z-50 w-full mt-1 bg-[var(--tiger-select-dropdown-bg,var(--tiger-surface,#ffffff))] border border-[var(--tiger-select-dropdown-border,var(--tiger-border,#e5e7eb))] rounded-[var(--tiger-radius-lg,0.75rem)] shadow-lg max-h-60 overflow-auto max-sm:fixed max-sm:inset-0 max-sm:mt-0 max-sm:w-auto max-sm:max-h-none max-sm:rounded-none max-sm:border-0 max-sm:shadow-none max-sm:pt-[env(safe-area-inset-top)] max-sm:pb-[env(safe-area-inset-bottom)]";
3537
+ var selectDropdownBaseClasses = "bg-[var(--tiger-select-dropdown-bg,var(--tiger-surface,#ffffff))] border border-[var(--tiger-select-dropdown-border,var(--tiger-border,#e5e7eb))] rounded-[var(--tiger-radius-lg,0.75rem)] shadow-lg max-h-60 overflow-auto max-sm:w-auto max-sm:max-h-none max-sm:rounded-none max-sm:border-0 max-sm:shadow-none max-sm:pt-[env(safe-area-inset-top)] max-sm:pb-[env(safe-area-inset-bottom)]";
3478
3538
  var selectOptionBaseClasses = "w-full px-3 py-2 text-left cursor-pointer transition-colors text-[var(--tiger-select-option-text,var(--tiger-text,#111827))] hover:bg-[var(--tiger-select-option-bg-hover,var(--tiger-outline-bg-hover,#eff6ff))]";
3479
3539
  var selectOptionSelectedClasses = "bg-[var(--tiger-select-option-bg-selected,var(--tiger-outline-bg-hover,#eff6ff))] text-[var(--tiger-select-option-text-selected,var(--tiger-primary,#2563eb))] font-medium";
3480
3540
  var selectOptionDisabledClasses = "opacity-50 cursor-not-allowed hover:bg-[var(--tiger-select-dropdown-bg,var(--tiger-surface,#ffffff))]";
@@ -3493,24 +3553,24 @@ var SELECT_VIRTUAL_ITEM_HEIGHT = {
3493
3553
  md: 40,
3494
3554
  lg: 48
3495
3555
  };
3496
- function getSelectVirtualItemHeight(size = "md") {
3497
- return SELECT_VIRTUAL_ITEM_HEIGHT[size] ?? SELECT_VIRTUAL_ITEM_HEIGHT.md;
3556
+ function getSelectVirtualItemHeight(size2 = "md") {
3557
+ return SELECT_VIRTUAL_ITEM_HEIGHT[size2] ?? SELECT_VIRTUAL_ITEM_HEIGHT.md;
3498
3558
  }
3499
- function getSelectSizeClasses(size) {
3500
- return SELECT_SIZE_CLASSES[size];
3559
+ function getSelectSizeClasses(size2) {
3560
+ return SELECT_SIZE_CLASSES[size2];
3501
3561
  }
3502
- function getSelectTriggerClasses(size, disabled, isOpen) {
3562
+ function getSelectTriggerClasses(size2, disabled, isOpen) {
3503
3563
  return classNames(
3504
3564
  ...SELECT_TRIGGER_BASE_CLASSES,
3505
- getSelectSizeClasses(size),
3565
+ getSelectSizeClasses(size2),
3506
3566
  disabled && SELECT_TRIGGER_DISABLED_CLASSES_STRING,
3507
3567
  isOpen && "ring-2 ring-[var(--tiger-select-ring,var(--tiger-primary,#2563eb))] border-[var(--tiger-select-trigger-border-focus,var(--tiger-primary,#2563eb))]"
3508
3568
  );
3509
3569
  }
3510
- function getSelectOptionClasses(isSelected, isDisabled, size) {
3570
+ function getSelectOptionClasses(isSelected, isDisabled, size2) {
3511
3571
  return classNames(
3512
3572
  selectOptionBaseClasses,
3513
- getSelectSizeClasses(size),
3573
+ getSelectSizeClasses(size2),
3514
3574
  isSelected && selectOptionSelectedClasses,
3515
3575
  isDisabled && selectOptionDisabledClasses
3516
3576
  );
@@ -3980,29 +4040,29 @@ var radioSizeClasses = {
3980
4040
  }
3981
4041
  };
3982
4042
  var getRadioVisualClasses = ({
3983
- size,
4043
+ size: size2,
3984
4044
  checked,
3985
4045
  disabled,
3986
4046
  colors
3987
4047
  }) => classNames(
3988
4048
  radioVisualBaseClasses,
3989
4049
  radioFocusVisibleClasses,
3990
- radioSizeClasses[size].radio,
4050
+ radioSizeClasses[size2].radio,
3991
4051
  checked ? colors.borderChecked : colors.border,
3992
4052
  checked ? colors.bgChecked : colors.bg,
3993
4053
  disabled && colors.disabled,
3994
4054
  disabled && radioDisabledCursorClasses,
3995
4055
  !disabled && radioHoverBorderClasses
3996
4056
  );
3997
- var getRadioDotClasses = ({ size, checked, colors }) => classNames(
4057
+ var getRadioDotClasses = ({ size: size2, checked, colors }) => classNames(
3998
4058
  radioDotBaseClasses,
3999
- radioSizeClasses[size].dot,
4059
+ radioSizeClasses[size2].dot,
4000
4060
  colors.innerDot,
4001
4061
  checked ? "scale-100" : "scale-0"
4002
4062
  );
4003
- var getRadioLabelClasses = ({ size, disabled, colors }) => classNames(
4063
+ var getRadioLabelClasses = ({ size: size2, disabled, colors }) => classNames(
4004
4064
  radioLabelBaseClasses,
4005
- radioSizeClasses[size].label,
4065
+ radioSizeClasses[size2].label,
4006
4066
  disabled ? colors.textDisabled : "text-[var(--tiger-text,#111827)]",
4007
4067
  disabled && radioDisabledCursorClasses
4008
4068
  );
@@ -4315,15 +4375,15 @@ function getDatePickerCalendarCellState(input) {
4315
4375
  // src/utils/datepicker-styles.ts
4316
4376
  var datePickerBaseClasses = "relative inline-block w-full";
4317
4377
  var datePickerInputWrapperClasses = "relative w-full";
4318
- function getDatePickerInputClasses(size = "md", disabled = false, showClear = false) {
4378
+ function getDatePickerInputClasses(size2 = "md", disabled = false, showClear = false) {
4319
4379
  const baseClasses = [
4320
4380
  "w-full",
4321
4381
  "rounded-[var(--tiger-radius-md,0.5rem)]",
4322
4382
  "border",
4323
- "border-gray-300",
4324
- "bg-white",
4325
- "text-gray-900",
4326
- "placeholder-gray-400",
4383
+ "border-[var(--tiger-border,#d1d5db)]",
4384
+ "bg-[var(--tiger-surface,#ffffff)]",
4385
+ "text-[var(--tiger-text,#111827)]",
4386
+ "placeholder:text-[var(--tiger-text-muted,#9ca3af)]",
4327
4387
  "focus:outline-none",
4328
4388
  "focus:ring-2",
4329
4389
  "focus:ring-[var(--tiger-primary,#2563eb)]",
@@ -4335,11 +4395,15 @@ function getDatePickerInputClasses(size = "md", disabled = false, showClear = fa
4335
4395
  md: "px-3 py-2 text-base",
4336
4396
  lg: "px-4 py-3 text-lg"
4337
4397
  };
4338
- const rightPaddingClasses = showClear ? "pr-16" : { sm: "pr-10", md: "pr-12", lg: "pr-14" }[size];
4339
- const disabledClasses = disabled ? ["bg-gray-100", "cursor-not-allowed", "text-gray-500"] : ["cursor-pointer"];
4340
- return classNames(...baseClasses, sizeClasses3[size], rightPaddingClasses, ...disabledClasses);
4341
- }
4342
- function getDatePickerIconButtonClasses(size = "md") {
4398
+ const rightPaddingClasses = showClear ? "pr-16" : { sm: "pr-10", md: "pr-12", lg: "pr-14" }[size2];
4399
+ const disabledClasses = disabled ? [
4400
+ "bg-[var(--tiger-surface-muted,#f3f4f6)]",
4401
+ "cursor-not-allowed",
4402
+ "text-[var(--tiger-text-muted,#6b7280)]"
4403
+ ] : ["cursor-pointer"];
4404
+ return classNames(...baseClasses, sizeClasses3[size2], rightPaddingClasses, ...disabledClasses);
4405
+ }
4406
+ function getDatePickerIconButtonClasses(size2 = "md") {
4343
4407
  const baseClasses = [
4344
4408
  "absolute",
4345
4409
  "right-0",
@@ -4348,8 +4412,8 @@ function getDatePickerIconButtonClasses(size = "md") {
4348
4412
  "flex",
4349
4413
  "items-center",
4350
4414
  "justify-center",
4351
- "text-gray-400",
4352
- "hover:text-gray-600",
4415
+ "text-[var(--tiger-text-muted,#9ca3af)]",
4416
+ "hover:text-[var(--tiger-text,#111827)]",
4353
4417
  "transition-colors"
4354
4418
  ];
4355
4419
  const sizeClasses3 = {
@@ -4357,15 +4421,12 @@ function getDatePickerIconButtonClasses(size = "md") {
4357
4421
  md: "px-3",
4358
4422
  lg: "px-4"
4359
4423
  };
4360
- return classNames(...baseClasses, sizeClasses3[size]);
4424
+ return classNames(...baseClasses, sizeClasses3[size2]);
4361
4425
  }
4362
4426
  var datePickerCalendarClasses = classNames(
4363
- "absolute",
4364
- "z-50",
4365
- "mt-1",
4366
- "bg-white",
4427
+ "bg-[var(--tiger-surface,#ffffff)]",
4367
4428
  "border",
4368
- "border-gray-300",
4429
+ "border-[var(--tiger-border,#d1d5db)]",
4369
4430
  "rounded-[var(--tiger-radius-md,0.5rem)]",
4370
4431
  "shadow-lg",
4371
4432
  "p-4",
@@ -4374,14 +4435,10 @@ var datePickerCalendarClasses = classNames(
4374
4435
  );
4375
4436
  var datePickerMobileWheelClasses = classNames(
4376
4437
  "sm:hidden",
4377
- "fixed",
4378
- "inset-x-0",
4379
- "bottom-0",
4380
- "z-50",
4381
4438
  "rounded-t-[var(--tiger-radius-lg,0.75rem)]",
4382
4439
  "border",
4383
- "border-gray-200",
4384
- "bg-white",
4440
+ "border-[var(--tiger-border,#e5e7eb)]",
4441
+ "bg-[var(--tiger-surface,#ffffff)]",
4385
4442
  "p-4",
4386
4443
  "shadow-2xl",
4387
4444
  "pb-[calc(1rem+env(safe-area-inset-bottom))]"
@@ -4391,13 +4448,13 @@ var datePickerMobileWheelSelectClasses = classNames(
4391
4448
  "w-full",
4392
4449
  "rounded-[var(--tiger-radius-md,0.5rem)]",
4393
4450
  "border",
4394
- "border-gray-300",
4395
- "bg-white",
4451
+ "border-[var(--tiger-border,#d1d5db)]",
4452
+ "bg-[var(--tiger-surface,#ffffff)]",
4396
4453
  "px-3",
4397
4454
  "py-3",
4398
4455
  "text-center",
4399
4456
  "text-base",
4400
- "text-gray-900",
4457
+ "text-[var(--tiger-text,#111827)]",
4401
4458
  "focus:outline-none",
4402
4459
  "focus:ring-2",
4403
4460
  "focus:ring-[var(--tiger-primary,#2563eb)]"
@@ -4411,27 +4468,31 @@ var datePickerCalendarHeaderClasses = classNames(
4411
4468
  var datePickerNavButtonClasses = classNames(
4412
4469
  "p-2",
4413
4470
  "rounded-[var(--tiger-radius-md,0.5rem)]",
4414
- "hover:bg-gray-100",
4471
+ "hover:bg-[var(--tiger-surface-muted,#f3f4f6)]",
4415
4472
  "transition-colors",
4416
- "text-gray-600",
4417
- "hover:text-gray-900",
4473
+ "text-[var(--tiger-text-muted,#4b5563)]",
4474
+ "hover:text-[var(--tiger-text,#111827)]",
4418
4475
  "focus:outline-none",
4419
4476
  "focus:ring-2",
4420
4477
  "focus:ring-[var(--tiger-primary,#2563eb)]"
4421
4478
  );
4422
- var datePickerMonthYearClasses = classNames("text-base", "font-semibold", "text-gray-900");
4479
+ var datePickerMonthYearClasses = classNames(
4480
+ "text-base",
4481
+ "font-semibold",
4482
+ "text-[var(--tiger-text,#111827)]"
4483
+ );
4423
4484
  var datePickerCalendarGridClasses = classNames("grid", "grid-cols-7", "gap-1");
4424
4485
  var datePickerDayNameClasses = classNames(
4425
4486
  "text-center",
4426
4487
  "text-xs",
4427
4488
  "font-medium",
4428
- "text-gray-500",
4489
+ "text-[var(--tiger-text-muted,#6b7280)]",
4429
4490
  "py-2"
4430
4491
  );
4431
4492
  function getDatePickerDayCellClasses(isCurrentMonth, isSelected, isToday2, isDisabled, isInRange = false, isRangeStart = false, isRangeEnd = false) {
4432
4493
  const base = "w-10 h-10 flex items-center justify-center rounded-[var(--tiger-radius-md,0.5rem)] text-sm transition-colors";
4433
4494
  if (isDisabled) {
4434
- return classNames(base, "cursor-not-allowed text-gray-300");
4495
+ return classNames(base, "cursor-not-allowed text-[var(--tiger-text-muted,#9ca3af)] opacity-50");
4435
4496
  }
4436
4497
  if (isSelected || isRangeStart || isRangeEnd) {
4437
4498
  return classNames(
@@ -4441,18 +4502,24 @@ function getDatePickerDayCellClasses(isCurrentMonth, isSelected, isToday2, isDis
4441
4502
  "hover:bg-[var(--tiger-primary-hover,#1d4ed8)] font-semibold"
4442
4503
  );
4443
4504
  }
4444
- const color = isCurrentMonth ? "text-gray-900" : "text-gray-400";
4505
+ const color = isCurrentMonth ? "text-[var(--tiger-text,#111827)]" : "text-[var(--tiger-text-muted,#9ca3af)]";
4445
4506
  const range = isInRange ? "bg-[var(--tiger-outline-bg-hover,#eff6ff)]" : "";
4446
4507
  const today = isToday2 ? "border border-[var(--tiger-primary,#2563eb)] font-semibold" : "";
4447
- return classNames(base, "cursor-pointer hover:bg-gray-100", color, range, today);
4508
+ return classNames(
4509
+ base,
4510
+ "cursor-pointer hover:bg-[var(--tiger-surface-muted,#f3f4f6)]",
4511
+ color,
4512
+ range,
4513
+ today
4514
+ );
4448
4515
  }
4449
4516
  var datePickerClearButtonClasses = classNames(
4450
4517
  "absolute",
4451
4518
  "right-10",
4452
4519
  "top-1/2",
4453
4520
  "-translate-y-1/2",
4454
- "text-gray-400",
4455
- "hover:text-gray-600",
4521
+ "text-[var(--tiger-text-muted,#9ca3af)]",
4522
+ "hover:text-[var(--tiger-text,#111827)]",
4456
4523
  "transition-colors",
4457
4524
  "p-1"
4458
4525
  );
@@ -4460,7 +4527,7 @@ var datePickerFooterClasses = classNames(
4460
4527
  "mt-3",
4461
4528
  "pt-3",
4462
4529
  "border-t",
4463
- "border-gray-200",
4530
+ "border-[var(--tiger-border,#e5e7eb)]",
4464
4531
  "flex",
4465
4532
  "items-center",
4466
4533
  "justify-between",
@@ -4473,15 +4540,16 @@ var datePickerFooterButtonClasses = classNames(
4473
4540
  "font-medium",
4474
4541
  "rounded",
4475
4542
  "border",
4476
- "border-gray-300",
4477
- "hover:border-gray-400",
4478
- "bg-white",
4479
- "hover:bg-gray-50",
4480
- "text-gray-700",
4543
+ "border-[var(--tiger-border,#d1d5db)]",
4544
+ "hover:border-[var(--tiger-text-muted,#9ca3af)]",
4545
+ "bg-[var(--tiger-surface,#ffffff)]",
4546
+ "hover:bg-[var(--tiger-surface-muted,#f9fafb)]",
4547
+ "text-[var(--tiger-text,#374151)]",
4481
4548
  "focus:outline-none",
4482
4549
  "focus:ring-2",
4483
4550
  "focus:ring-[var(--tiger-primary,#2563eb)]",
4484
4551
  "focus:ring-offset-1",
4552
+ "focus:ring-offset-[var(--tiger-surface,#ffffff)]",
4485
4553
  "transition-colors",
4486
4554
  "duration-150"
4487
4555
  );
@@ -4621,9 +4689,9 @@ function formatBytes(bytes, options = {}) {
4621
4689
  const units = ["B", "KB", "MB", "GB", "TB"];
4622
4690
  const k = 1024;
4623
4691
  const index = Math.min(units.length - 1, Math.floor(Math.log(safeBytes) / Math.log(k)));
4624
- const size = safeBytes / Math.pow(k, index);
4692
+ const size2 = safeBytes / Math.pow(k, index);
4625
4693
  const precision = Math.max(0, Math.floor(options.precision ?? 2));
4626
- const text = size.toFixed(precision);
4694
+ const text = size2.toFixed(precision);
4627
4695
  return `${options.trimTrailingZeros ? text.replace(/\.0+$/, "").replace(/(\.\d*?)0+$/, "$1") : text} ${units[index]}`;
4628
4696
  }
4629
4697
  function getFileExtensionName(name, options) {
@@ -4644,9 +4712,9 @@ var uploadStatusIconColorClasses = {
4644
4712
  success: "text-[var(--tiger-success,#16a34a)]",
4645
4713
  error: "text-[var(--tiger-error,#dc2626)]"
4646
4714
  };
4647
- function getUploadStatusIconClasses(status, size, options) {
4715
+ function getUploadStatusIconClasses(status, size2, options) {
4648
4716
  return classNames(
4649
- uploadStatusIconSizeClasses[size],
4717
+ uploadStatusIconSizeClasses[size2],
4650
4718
  uploadStatusIconColorClasses[status],
4651
4719
  options?.spinning ? "animate-spin" : ""
4652
4720
  );
@@ -5186,18 +5254,18 @@ var ALIGN_CLASS = {
5186
5254
  baseline: "items-baseline",
5187
5255
  stretch: "items-stretch"
5188
5256
  };
5189
- function getSpaceClasses({ direction = "horizontal", size = "md", align = "start", wrap = false } = {}, className) {
5257
+ function getSpaceClasses({ direction = "horizontal", size: size2 = "md", align = "start", wrap = false } = {}, className) {
5190
5258
  return classNames(
5191
5259
  "inline-flex",
5192
5260
  direction === "horizontal" ? "flex-row" : "flex-col",
5193
5261
  ALIGN_CLASS[align],
5194
- typeof size === "string" ? SIZE_CLASS[size] : void 0,
5262
+ typeof size2 === "string" ? SIZE_CLASS[size2] : void 0,
5195
5263
  wrap && "flex-wrap",
5196
5264
  className
5197
5265
  );
5198
5266
  }
5199
- function getSpaceStyle(size = "md") {
5200
- return typeof size === "number" ? { gap: `${size}px` } : void 0;
5267
+ function getSpaceStyle(size2 = "md") {
5268
+ return typeof size2 === "number" ? { gap: `${size2}px` } : void 0;
5201
5269
  }
5202
5270
 
5203
5271
  // src/utils/table-utils.ts
@@ -5301,8 +5369,8 @@ function resolveTableColumnWidth(column, frozenWidths = {}) {
5301
5369
  return frozen && frozen > 0 ? `${frozen}px` : void 0;
5302
5370
  }
5303
5371
  function getTableColgroup(options) {
5304
- const { columns, frozenWidths = {}, size, hasSelectionColumn, expand } = options;
5305
- const actionWidth = TABLE_ACTION_COLUMN_WIDTH[size];
5372
+ const { columns, frozenWidths = {}, size: size2, hasSelectionColumn, expand } = options;
5373
+ const actionWidth = TABLE_ACTION_COLUMN_WIDTH[size2];
5306
5374
  const entries = [];
5307
5375
  if (expand === "start") {
5308
5376
  entries.push({ key: "__expand__", width: actionWidth });
@@ -5501,7 +5569,7 @@ function getTableHeaderClasses(stickyHeader) {
5501
5569
  stickyHeader && "sticky top-0 z-10"
5502
5570
  );
5503
5571
  }
5504
- function getTableHeaderCellClasses(size, align, sortable, customClassName) {
5572
+ function getTableHeaderCellClasses(size2, align, sortable, customClassName) {
5505
5573
  const paddingClasses = {
5506
5574
  sm: "px-3 py-2",
5507
5575
  md: "px-4 py-3",
@@ -5514,7 +5582,7 @@ function getTableHeaderCellClasses(size, align, sortable, customClassName) {
5514
5582
  };
5515
5583
  return classNames(
5516
5584
  "font-medium text-[var(--tiger-text-muted,#6b7280)] text-xs uppercase tracking-wider",
5517
- paddingClasses[size],
5585
+ paddingClasses[size2],
5518
5586
  alignClasses[align],
5519
5587
  sortable && "cursor-pointer select-none hover:bg-[var(--tiger-table-bg,var(--tiger-component-table-bg,var(--tiger-surface,#ffffff)))]/60 transition-colors",
5520
5588
  customClassName
@@ -5530,7 +5598,7 @@ function getTableRowClasses(hoverable, striped, isEven, customClassName) {
5530
5598
  customClassName
5531
5599
  );
5532
5600
  }
5533
- function getTableCellClasses(size, align, customClassName) {
5601
+ function getTableCellClasses(size2, align, customClassName) {
5534
5602
  const paddingClasses = {
5535
5603
  sm: "px-3 py-2",
5536
5604
  md: "px-4 py-3",
@@ -5543,7 +5611,7 @@ function getTableCellClasses(size, align, customClassName) {
5543
5611
  };
5544
5612
  return classNames(
5545
5613
  "text-sm text-[var(--tiger-text,#111827)]",
5546
- paddingClasses[size],
5614
+ paddingClasses[size2],
5547
5615
  alignClasses[align],
5548
5616
  customClassName
5549
5617
  );
@@ -5558,13 +5626,13 @@ var tableEmptyStateClasses = "text-center py-12 text-[var(--tiger-text-muted,#6b
5558
5626
  var tableLoadingOverlayClasses = classNames(
5559
5627
  "absolute inset-0 bg-[var(--tiger-surface,#ffffff)]/80 flex items-center justify-center z-20"
5560
5628
  );
5561
- function getCheckboxCellClasses(size) {
5629
+ function getCheckboxCellClasses(size2) {
5562
5630
  const widthClasses = {
5563
5631
  sm: "w-8",
5564
5632
  md: "w-10",
5565
5633
  lg: "w-12"
5566
5634
  };
5567
- return classNames("text-center", widthClasses[size]);
5635
+ return classNames("text-center", widthClasses[size2]);
5568
5636
  }
5569
5637
  function defaultSortFn(a, b) {
5570
5638
  if (a === null || a === void 0) return 1;
@@ -5665,8 +5733,8 @@ function calculatePagination(total, current, pageSize) {
5665
5733
  hasPrev: current > 1
5666
5734
  };
5667
5735
  }
5668
- function getExpandIconCellClasses(size) {
5669
- return getCheckboxCellClasses(size);
5736
+ function getExpandIconCellClasses(size2) {
5737
+ return getCheckboxCellClasses(size2);
5670
5738
  }
5671
5739
  function getExpandIconClasses(expanded) {
5672
5740
  return classNames(
@@ -5681,13 +5749,13 @@ function getExpandedRowClasses() {
5681
5749
  "bg-[var(--tiger-surface-muted,#f9fafb)]/30"
5682
5750
  );
5683
5751
  }
5684
- function getExpandedRowContentClasses(size) {
5752
+ function getExpandedRowContentClasses(size2) {
5685
5753
  const paddingClasses = {
5686
5754
  sm: "px-3 py-2",
5687
5755
  md: "px-4 py-3",
5688
5756
  lg: "px-6 py-4"
5689
5757
  };
5690
- return classNames("text-sm text-[var(--tiger-text,#111827)]", paddingClasses[size]);
5758
+ return classNames("text-sm text-[var(--tiger-text,#111827)]", paddingClasses[size2]);
5691
5759
  }
5692
5760
  function getRowKey(record, rowKey, index) {
5693
5761
  if (typeof rowKey === "function") {
@@ -5845,10 +5913,10 @@ var cardFooterClasses = "border-t border-[var(--tiger-border,#e5e7eb)] pt-3 mt-3
5845
5913
  var cardCoverClasses = "w-full h-48 object-cover";
5846
5914
  var cardCoverWrapperClasses = "overflow-hidden";
5847
5915
  var cardActionsClasses = "flex gap-2 justify-end";
5848
- function resolveCardPadding(size, padding) {
5916
+ function resolveCardPadding(size2, padding) {
5849
5917
  if (padding === false) return void 0;
5850
5918
  if (typeof padding === "string") return padding;
5851
- return cardSizeClasses[size];
5919
+ return cardSizeClasses[size2];
5852
5920
  }
5853
5921
  function getCardClasses(variant, hoverable) {
5854
5922
  const classes = [cardBaseClasses, cardVariantClasses[variant]];
@@ -6041,8 +6109,8 @@ function getListClasses(bordered) {
6041
6109
  const classes = [listBaseClasses, listBorderClasses[bordered]];
6042
6110
  return classes.filter(Boolean).join(" ");
6043
6111
  }
6044
- function getListItemClasses(size, layout, divided, hoverable = false) {
6045
- const classes = [listItemBaseClasses, listItemSizeClasses[size], listItemLayoutClasses[layout]];
6112
+ function getListItemClasses(size2, layout, divided, hoverable = false) {
6113
+ const classes = [listItemBaseClasses, listItemSizeClasses[size2], listItemLayoutClasses[layout]];
6046
6114
  if (divided) {
6047
6115
  classes.push(listItemDividedClasses);
6048
6116
  }
@@ -6051,8 +6119,8 @@ function getListItemClasses(size, layout, divided, hoverable = false) {
6051
6119
  }
6052
6120
  return classes.join(" ");
6053
6121
  }
6054
- function getListHeaderFooterClasses(size, isFooter = false) {
6055
- const classes = [listHeaderFooterBaseClasses, listItemSizeClasses[size]];
6122
+ function getListHeaderFooterClasses(size2, isFooter = false) {
6123
+ const classes = [listHeaderFooterBaseClasses, listItemSizeClasses[size2]];
6056
6124
  if (isFooter) {
6057
6125
  classes.push(listFooterClasses);
6058
6126
  }
@@ -6101,8 +6169,8 @@ var descriptionsVerticalWrapperClasses = "";
6101
6169
  var descriptionsVerticalItemClasses = "border-b border-[var(--tiger-border,#e5e7eb)] last:border-b-0";
6102
6170
  var descriptionsVerticalLabelClasses = "font-medium mb-1 text-[var(--tiger-text-muted,#374151)]";
6103
6171
  var descriptionsVerticalContentClasses = "text-[var(--tiger-text,#111827)]";
6104
- function getDescriptionsClasses(size) {
6105
- return `${descriptionsBaseClasses} ${descriptionsSizeClasses[size]}`;
6172
+ function getDescriptionsClasses(size2) {
6173
+ return `${descriptionsBaseClasses} ${descriptionsSizeClasses[size2]}`;
6106
6174
  }
6107
6175
  function getDescriptionsTableClasses(bordered) {
6108
6176
  const classes = [descriptionsTableClasses];
@@ -6111,28 +6179,28 @@ function getDescriptionsTableClasses(bordered) {
6111
6179
  }
6112
6180
  return classes.join(" ");
6113
6181
  }
6114
- function getDescriptionsLabelClasses(bordered, size, layout) {
6182
+ function getDescriptionsLabelClasses(bordered, size2, layout) {
6115
6183
  if (layout === "vertical") {
6116
- return `${descriptionsVerticalLabelClasses} ${descriptionsCellSizeClasses[size]}`;
6184
+ return `${descriptionsVerticalLabelClasses} ${descriptionsCellSizeClasses[size2]}`;
6117
6185
  }
6118
- const classes = [descriptionsLabelClasses, descriptionsCellSizeClasses[size]];
6186
+ const classes = [descriptionsLabelClasses, descriptionsCellSizeClasses[size2]];
6119
6187
  if (bordered) {
6120
6188
  classes.push(descriptionsLabelBorderedClasses);
6121
6189
  }
6122
6190
  return classes.join(" ");
6123
6191
  }
6124
- function getDescriptionsContentClasses(bordered, size, layout) {
6192
+ function getDescriptionsContentClasses(bordered, size2, layout) {
6125
6193
  if (layout === "vertical") {
6126
- return `${descriptionsVerticalContentClasses} ${descriptionsCellSizeClasses[size]}`;
6194
+ return `${descriptionsVerticalContentClasses} ${descriptionsCellSizeClasses[size2]}`;
6127
6195
  }
6128
- const classes = [descriptionsContentClasses, descriptionsCellSizeClasses[size]];
6196
+ const classes = [descriptionsContentClasses, descriptionsCellSizeClasses[size2]];
6129
6197
  if (bordered) {
6130
6198
  classes.push(descriptionsContentBorderedClasses);
6131
6199
  }
6132
6200
  return classes.join(" ");
6133
6201
  }
6134
- function getDescriptionsVerticalItemClasses(size) {
6135
- return `${descriptionsCellSizeClasses[size]} ${descriptionsVerticalItemClasses}`;
6202
+ function getDescriptionsVerticalItemClasses(size2) {
6203
+ return `${descriptionsCellSizeClasses[size2]} ${descriptionsVerticalItemClasses}`;
6136
6204
  }
6137
6205
  function groupItemsIntoRows(items, column) {
6138
6206
  const rows = [];
@@ -6666,8 +6734,8 @@ function calculateCirclePath(radius, percentage) {
6666
6734
  strokeDashoffset: offset2
6667
6735
  };
6668
6736
  }
6669
- function getCircleSize(size, strokeWidth) {
6670
- const width = progressCircleSizeClasses[size];
6737
+ function getCircleSize(size2, strokeWidth) {
6738
+ const width = progressCircleSizeClasses[size2];
6671
6739
  const height = width;
6672
6740
  const radius = (width - strokeWidth) / 2;
6673
6741
  const cx = width / 2;
@@ -6679,22 +6747,22 @@ var progressCircleTextClasses = "absolute inset-0 flex items-center justify-cent
6679
6747
  var progressCircleTrackStrokeClasses = "text-[color:var(--tiger-border,#e5e7eb)]";
6680
6748
 
6681
6749
  // src/utils/collapse-utils.ts
6682
- var collapseBaseClasses = "w-full bg-white border border-gray-200 rounded overflow-hidden";
6750
+ var collapseBaseClasses = "w-full bg-[var(--tiger-surface,#fff)] border border-[var(--tiger-border,#e5e7eb)] rounded overflow-hidden";
6683
6751
  var collapseGhostClasses = "border-0 bg-transparent";
6684
6752
  var collapseBorderlessClasses = "border-0";
6685
- var collapsePanelBaseClasses = "border-b border-gray-200 last:border-b-0";
6686
- var collapsePanelHeaderBaseClasses = "flex items-center px-4 py-3 cursor-pointer transition-colors duration-200 hover:bg-gray-50 focus:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-[var(--tiger-focus-ring,var(--tiger-primary,#2563eb))]";
6687
- var collapsePanelHeaderActiveClasses = "bg-gray-50";
6753
+ var collapsePanelBaseClasses = "border-b border-[var(--tiger-border,#e5e7eb)] last:border-b-0";
6754
+ var collapsePanelHeaderBaseClasses = "flex items-center px-4 py-3 cursor-pointer transition-colors duration-200 motion-reduce:transition-none hover:bg-[var(--tiger-surface-muted,#f9fafb)] focus:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-[var(--tiger-focus-ring,var(--tiger-primary,#2563eb))]";
6755
+ var collapsePanelHeaderActiveClasses = "bg-[var(--tiger-surface-muted,#f9fafb)]";
6688
6756
  var collapsePanelHeaderDisabledClasses = "cursor-not-allowed opacity-50 hover:bg-transparent";
6689
- var collapsePanelContentWrapperClasses = "overflow-hidden transition-[max-height,opacity] duration-300 ease-in-out";
6690
- var collapsePanelContentBaseClasses = "px-4 py-3 bg-white text-gray-700";
6691
- var collapseIconBaseClasses = "transition-transform duration-300 ease-in-out text-gray-500";
6757
+ var collapsePanelContentWrapperClasses = "overflow-hidden transition-[max-height,opacity] duration-300 ease-in-out motion-reduce:transition-none";
6758
+ var collapsePanelContentBaseClasses = "px-4 py-3 bg-[var(--tiger-surface,#fff)] text-[var(--tiger-text,#374151)]";
6759
+ var collapseIconBaseClasses = "transition-transform duration-300 ease-in-out motion-reduce:transition-none text-[var(--tiger-text-muted,#6b7280)]";
6692
6760
  var collapseIconExpandedClasses = "rotate-90";
6693
6761
  var collapseIconPositionClasses = {
6694
6762
  start: "mr-2",
6695
6763
  end: "ml-auto"
6696
6764
  };
6697
- var collapseHeaderTextClasses = "flex-1 font-medium text-gray-900";
6765
+ var collapseHeaderTextClasses = "flex-1 font-medium text-[var(--tiger-text,#111827)]";
6698
6766
  function getCollapseContainerClasses(bordered, ghost, className) {
6699
6767
  const classes = [collapseBaseClasses];
6700
6768
  if (ghost) {
@@ -6867,9 +6935,9 @@ var menuCollapsedIconClasses = "flex-shrink-0";
6867
6935
  var submenuTitleClasses = "flex w-full items-center justify-between px-4 py-2 text-left bg-transparent border-0 cursor-pointer transition-colors duration-200 select-none appearance-none focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--tiger-focus-ring,var(--tiger-primary,#2563eb))]/40 focus-visible:ring-inset active:opacity-90";
6868
6936
  var submenuExpandIconClasses = "ml-2 transition-transform duration-200";
6869
6937
  var submenuExpandIconExpandedClasses = "transform rotate-180";
6870
- var submenuContentHorizontalClasses = "absolute left-0 top-full mt-0 min-w-[160px] bg-[var(--tiger-surface,#ffffff)] text-[var(--tiger-text,#111827)] border border-[var(--tiger-border,#e5e7eb)] rounded shadow-lg z-50";
6871
- var submenuContentHorizontalNestedClasses = "absolute left-full top-0 ml-0 min-w-[160px] bg-[var(--tiger-surface,#ffffff)] text-[var(--tiger-text,#111827)] border border-[var(--tiger-border,#e5e7eb)] rounded shadow-lg z-50";
6872
- var submenuContentPopupClasses = "absolute left-full top-0 ml-1 min-w-[180px] bg-[var(--tiger-surface,#ffffff)] text-[var(--tiger-text,#111827)] border border-[var(--tiger-border,#e5e7eb)] rounded shadow-lg z-50";
6938
+ var submenuContentHorizontalClasses = "min-w-[160px] bg-[var(--tiger-surface,#ffffff)] text-[var(--tiger-text,#111827)] border border-[var(--tiger-border,#e5e7eb)] rounded shadow-lg";
6939
+ var submenuContentHorizontalNestedClasses = "min-w-[160px] bg-[var(--tiger-surface,#ffffff)] text-[var(--tiger-text,#111827)] border border-[var(--tiger-border,#e5e7eb)] rounded shadow-lg";
6940
+ var submenuContentPopupClasses = "min-w-[180px] bg-[var(--tiger-surface,#ffffff)] text-[var(--tiger-text,#111827)] border border-[var(--tiger-border,#e5e7eb)] rounded shadow-lg";
6873
6941
  var submenuContentVerticalClasses = "overflow-hidden pl-2";
6874
6942
  var submenuContentInlineClasses = "overflow-hidden";
6875
6943
  var submenuHeightTransitionClasses = "overflow-hidden transition-[height,opacity] duration-200 ease-in-out";
@@ -6879,9 +6947,6 @@ var menuSearchInputClasses = "w-full rounded border border-[var(--tiger-border,#
6879
6947
  var menuSearchEmptyClasses = "px-4 py-6 text-sm text-center text-[var(--tiger-text-muted,#6b7280)]";
6880
6948
  var menuCollapsedClasses = "min-w-[64px]";
6881
6949
  var menuCollapsedItemClasses = "justify-center px-2";
6882
- function getSubmenuPopupZIndex(level) {
6883
- return { zIndex: 50 + level * 10 };
6884
- }
6885
6950
  function themeClass(theme, light, dark) {
6886
6951
  return theme === "dark" ? dark : light;
6887
6952
  }
@@ -7126,10 +7191,10 @@ var tabNavPositionClasses = {
7126
7191
  right: "flex-col"
7127
7192
  };
7128
7193
  var tabNavLineBorderClasses = {
7129
- top: "border-b border-gray-200",
7130
- bottom: "border-t border-gray-200",
7131
- left: "border-r border-gray-200",
7132
- right: "border-l border-gray-200"
7194
+ top: "border-b border-[var(--tiger-border,#e5e7eb)]",
7195
+ bottom: "border-t border-[var(--tiger-border,#e5e7eb)]",
7196
+ left: "border-r border-[var(--tiger-border,#e5e7eb)]",
7197
+ right: "border-l border-[var(--tiger-border,#e5e7eb)]"
7133
7198
  };
7134
7199
  var tabNavListBaseClasses = "flex gap-1";
7135
7200
  var tabNavListPositionClasses = {
@@ -7139,33 +7204,33 @@ var tabNavListPositionClasses = {
7139
7204
  right: "flex-col"
7140
7205
  };
7141
7206
  var tabNavListCenteredClasses = "justify-center";
7142
- var tabItemBaseClasses = "relative z-10 cursor-pointer transition-all duration-200 select-none flex items-center gap-2 focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--tiger-focus-ring,var(--tiger-primary,#2563eb))]/40 focus-visible:ring-offset-2 active:opacity-90";
7207
+ var tabItemBaseClasses = "relative z-10 cursor-pointer transition-all duration-200 motion-reduce:transition-none select-none flex items-center gap-2 focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--tiger-focus-ring,var(--tiger-primary,#2563eb))]/40 focus-visible:ring-offset-2 active:opacity-90";
7143
7208
  var tabItemSizeClasses = {
7144
7209
  small: "text-sm px-3 py-1.5",
7145
7210
  medium: "text-base px-4 py-2",
7146
7211
  large: "text-lg px-5 py-2.5"
7147
7212
  };
7148
- var tabItemLineClasses = "border-b-2 border-transparent hover:text-[var(--tiger-primary,#2563eb)] text-gray-600";
7213
+ var tabItemLineClasses = "border-b-2 border-transparent hover:text-[var(--tiger-primary,#2563eb)] text-[var(--tiger-text-muted,#6b7280)]";
7149
7214
  var tabItemLineActiveClasses = "text-[var(--tiger-primary,#2563eb)] font-medium";
7150
- var tabIndicatorBaseClasses = "pointer-events-none absolute z-0 rounded-full bg-[var(--tiger-primary,#2563eb)] transition-transform duration-200 ease-out will-change-transform";
7215
+ var tabIndicatorBaseClasses = "pointer-events-none absolute z-0 rounded-full bg-[var(--tiger-primary,#2563eb)] transition-transform duration-200 ease-out will-change-transform motion-reduce:transition-none";
7151
7216
  var tabIndicatorPositionClasses = {
7152
7217
  top: "bottom-0 left-0 h-0.5",
7153
7218
  bottom: "top-0 left-0 h-0.5",
7154
7219
  left: "right-0 top-0 w-0.5",
7155
7220
  right: "left-0 top-0 w-0.5"
7156
7221
  };
7157
- var tabItemCardClasses = "border border-gray-200 rounded-t bg-white hover:text-[var(--tiger-primary,#2563eb)] text-gray-600 -mb-px";
7158
- var tabItemCardActiveClasses = "bg-white border-[var(--tiger-primary,#2563eb)] border-b-white text-[var(--tiger-primary,#2563eb)] font-medium z-10";
7159
- var tabItemEditableCardClasses = "border border-gray-200 rounded-t bg-gray-50 hover:bg-white hover:text-[var(--tiger-primary,#2563eb)] text-gray-600 -mb-px";
7160
- var tabItemEditableCardActiveClasses = "bg-white border-[var(--tiger-primary,#2563eb)] border-b-white text-[var(--tiger-primary,#2563eb)] font-medium z-10";
7222
+ var tabItemCardClasses = "border border-[var(--tiger-border,#e5e7eb)] rounded-t bg-[var(--tiger-surface,#fff)] hover:text-[var(--tiger-primary,#2563eb)] text-[var(--tiger-text-muted,#6b7280)] -mb-px";
7223
+ var tabItemCardActiveClasses = "bg-[var(--tiger-surface,#fff)] border-[var(--tiger-primary,#2563eb)] border-b-[var(--tiger-surface,#fff)] text-[var(--tiger-primary,#2563eb)] font-medium z-10";
7224
+ var tabItemEditableCardClasses = "border border-[var(--tiger-border,#e5e7eb)] rounded-t bg-[var(--tiger-surface-muted,#f9fafb)] hover:bg-[var(--tiger-surface,#fff)] hover:text-[var(--tiger-primary,#2563eb)] text-[var(--tiger-text-muted,#6b7280)] -mb-px";
7225
+ var tabItemEditableCardActiveClasses = "bg-[var(--tiger-surface,#fff)] border-[var(--tiger-primary,#2563eb)] border-b-[var(--tiger-surface,#fff)] text-[var(--tiger-primary,#2563eb)] font-medium z-10";
7161
7226
  var tabItemPillsClasses = "rounded-full bg-transparent hover:bg-[var(--tiger-primary-subtle,#eff6ff)] hover:text-[var(--tiger-primary,#2563eb)] text-[var(--tiger-text-muted,#6b7280)]";
7162
7227
  var tabItemPillsActiveClasses = "bg-[var(--tiger-primary,#2563eb)] text-white font-medium shadow-sm";
7163
7228
  var tabItemDisabledClasses = "opacity-50 cursor-not-allowed pointer-events-none";
7164
- var tabCloseButtonClasses = "ml-2 p-0.5 rounded-[var(--tiger-radius-sm,0.375rem)] hover:bg-gray-200 transition-colors duration-150";
7229
+ var tabCloseButtonClasses = "ml-2 p-0.5 rounded-[var(--tiger-radius-sm,0.375rem)] hover:bg-[var(--tiger-surface-muted,#e5e7eb)] transition-colors duration-150 motion-reduce:transition-none";
7165
7230
  var tabContentBaseClasses = "w-full";
7166
7231
  var tabPaneBaseClasses = "w-full";
7167
7232
  var tabPaneHiddenClasses = "hidden";
7168
- var tabAddButtonClasses = "px-3 py-2 border border-gray-200 rounded-t bg-gray-50 hover:bg-white hover:text-[var(--tiger-primary,#2563eb)] text-gray-600 cursor-pointer transition-colors duration-200";
7233
+ var tabAddButtonClasses = "px-3 py-2 border border-[var(--tiger-border,#e5e7eb)] rounded-t bg-[var(--tiger-surface-muted,#f9fafb)] hover:bg-[var(--tiger-surface,#fff)] hover:text-[var(--tiger-primary,#2563eb)] text-[var(--tiger-text-muted,#6b7280)] cursor-pointer transition-colors duration-200 motion-reduce:transition-none";
7169
7234
  function getTabsContainerClasses(position) {
7170
7235
  if (position === "right") return `${tabsBaseClasses} flex flex-row-reverse`;
7171
7236
  if (position === "left") return `${tabsBaseClasses} flex`;
@@ -7209,22 +7274,22 @@ function getTabIndicatorStyle(activeIndex, tabCount, position) {
7209
7274
  }
7210
7275
  const safeTabCount = Math.max(1, tabCount);
7211
7276
  const safeActiveIndex = Math.min(Math.max(0, activeIndex), safeTabCount - 1);
7212
- const size = `calc(100% / ${safeTabCount})`;
7277
+ const size2 = `calc(100% / ${safeTabCount})`;
7213
7278
  if (position === "left" || position === "right") {
7214
7279
  return {
7215
- height: size,
7280
+ height: size2,
7216
7281
  transform: `translateY(${safeActiveIndex * 100}%)`,
7217
7282
  opacity: "1"
7218
7283
  };
7219
7284
  }
7220
7285
  return {
7221
- width: size,
7286
+ width: size2,
7222
7287
  transform: `translateX(${safeActiveIndex * 100}%)`,
7223
7288
  opacity: "1"
7224
7289
  };
7225
7290
  }
7226
- function getTabItemClasses(active, disabled, type, size) {
7227
- let cls = `${tabItemBaseClasses} ${tabItemSizeClasses[size]}`;
7291
+ function getTabItemClasses(active, disabled, type, size2) {
7292
+ let cls = `${tabItemBaseClasses} ${tabItemSizeClasses[size2]}`;
7228
7293
  if (disabled) return `${cls} ${tabItemDisabledClasses}`;
7229
7294
  switch (type) {
7230
7295
  case "line":
@@ -7270,13 +7335,16 @@ function getNextActiveKey(removedKey, currentActiveKey, allKeys) {
7270
7335
  var breadcrumbContainerClasses = "flex items-center flex-wrap gap-2 text-sm";
7271
7336
  var breadcrumbItemBaseClasses = "inline-flex items-center gap-2";
7272
7337
  var breadcrumbLinkClasses = classNames(
7273
- "text-gray-600 hover:text-[var(--tiger-primary,#2563eb)]",
7274
- "transition-colors duration-200",
7275
- "focus:outline-none focus:ring-2 focus:ring-[var(--tiger-primary,#2563eb)] focus:ring-offset-1 rounded",
7338
+ "text-[var(--tiger-text-muted,#6b7280)] hover:text-[var(--tiger-primary,#2563eb)]",
7339
+ "transition-colors duration-200 motion-reduce:transition-none",
7340
+ "focus:outline-none focus:ring-2 focus:ring-[var(--tiger-primary,#2563eb)] focus:ring-offset-1 focus:ring-offset-[var(--tiger-surface,#fff)] rounded",
7276
7341
  "cursor-pointer"
7277
7342
  );
7278
- var breadcrumbCurrentClasses = classNames("text-gray-900 font-medium", "cursor-default");
7279
- var breadcrumbSeparatorBaseClasses = "text-gray-400 select-none";
7343
+ var breadcrumbCurrentClasses = classNames(
7344
+ "text-[var(--tiger-text,#111827)] font-medium",
7345
+ "cursor-default"
7346
+ );
7347
+ var breadcrumbSeparatorBaseClasses = "text-[var(--tiger-text-muted,#9ca3af)] select-none";
7280
7348
  function getBreadcrumbItemClasses(className) {
7281
7349
  return classNames(breadcrumbItemBaseClasses, className);
7282
7350
  }
@@ -7300,9 +7368,9 @@ function getBreadcrumbSeparatorClasses(className) {
7300
7368
  return classNames(breadcrumbSeparatorBaseClasses, className);
7301
7369
  }
7302
7370
  var breadcrumbEllipsisClasses = classNames(
7303
- "text-gray-600 hover:text-[var(--tiger-primary,#2563eb)]",
7304
- "transition-colors duration-200 cursor-pointer",
7305
- "focus:outline-none focus:ring-2 focus:ring-[var(--tiger-primary,#2563eb)] focus:ring-offset-1 rounded",
7371
+ "text-[var(--tiger-text-muted,#6b7280)] hover:text-[var(--tiger-primary,#2563eb)]",
7372
+ "transition-colors duration-200 motion-reduce:transition-none cursor-pointer",
7373
+ "focus:outline-none focus:ring-2 focus:ring-[var(--tiger-primary,#2563eb)] focus:ring-offset-1 focus:ring-offset-[var(--tiger-surface,#fff)] rounded",
7306
7374
  "px-1"
7307
7375
  );
7308
7376
  function getBreadcrumbCollapsedItems(totalItems, maxItems) {
@@ -7345,9 +7413,9 @@ function getStepItemClasses(direction, isLast) {
7345
7413
  }
7346
7414
  return `${baseClasses} flex flex-col flex-1 items-center`;
7347
7415
  }
7348
- function getStepIconClasses(status, size, simple, isCustomIcon) {
7416
+ function getStepIconClasses(status, size2, simple, isCustomIcon) {
7349
7417
  const baseClasses = "tiger-step-icon relative z-10 flex items-center justify-center rounded-full border-2";
7350
- const sizeClasses3 = simple ? "w-6 h-6 text-xs" : size === "small" ? "w-8 h-8 text-sm" : "w-10 h-10 text-base";
7418
+ const sizeClasses3 = simple ? "w-6 h-6 text-xs" : size2 === "small" ? "w-8 h-8 text-sm" : "w-10 h-10 text-base";
7351
7419
  const iconClasses = isCustomIcon ? "" : "font-medium";
7352
7420
  const activeClasses = "bg-[var(--tiger-primary,#2563eb)] border-[var(--tiger-primary,#2563eb)] text-white ring-4 ring-[var(--tiger-primary,#2563eb)]/15 scale-105 shadow-sm transition-all duration-300";
7353
7421
  const statusClasses = {
@@ -7358,14 +7426,14 @@ function getStepIconClasses(status, size, simple, isCustomIcon) {
7358
7426
  };
7359
7427
  return `${baseClasses} ${sizeClasses3} ${iconClasses} ${statusClasses[status]}`;
7360
7428
  }
7361
- function getStepTailClasses(direction, status, isLast, size, simple) {
7429
+ function getStepTailClasses(direction, status, isLast, size2, simple) {
7362
7430
  if (isLast) return "hidden";
7363
7431
  const colorClasses = status === "finish" ? "bg-[var(--tiger-primary,#2563eb)]" : "bg-[var(--tiger-border,#e5e7eb)]";
7364
7432
  if (direction === "vertical") {
7365
- const verticalClasses = simple ? "absolute left-3 top-6 w-0.5 h-full" : size === "small" ? "absolute left-4 top-8 w-0.5 h-full" : "absolute left-5 top-10 w-0.5 h-full";
7433
+ const verticalClasses = simple ? "absolute left-3 top-6 w-0.5 h-full" : size2 === "small" ? "absolute left-4 top-8 w-0.5 h-full" : "absolute left-5 top-10 w-0.5 h-full";
7366
7434
  return `tiger-step-tail ${verticalClasses} ${colorClasses}`;
7367
7435
  }
7368
- const horizontalClasses = simple ? "absolute top-3 left-1/2 w-full h-0.5" : size === "small" ? "absolute top-4 left-1/2 w-full h-0.5" : "absolute top-5 left-1/2 w-full h-0.5";
7436
+ const horizontalClasses = simple ? "absolute top-3 left-1/2 w-full h-0.5" : size2 === "small" ? "absolute top-4 left-1/2 w-full h-0.5" : "absolute top-5 left-1/2 w-full h-0.5";
7369
7437
  return `tiger-step-tail ${horizontalClasses} ${colorClasses}`;
7370
7438
  }
7371
7439
  function getStepContentClasses(direction) {
@@ -7375,9 +7443,9 @@ function getStepContentClasses(direction) {
7375
7443
  }
7376
7444
  return `${baseClasses} mt-2 text-center`;
7377
7445
  }
7378
- function getStepTitleClasses(status, size, clickable) {
7446
+ function getStepTitleClasses(status, size2, clickable) {
7379
7447
  const baseClasses = "tiger-step-title font-medium";
7380
- const sizeClasses3 = size === "small" ? "text-sm" : "text-base";
7448
+ const sizeClasses3 = size2 === "small" ? "text-sm" : "text-base";
7381
7449
  const statusClasses = {
7382
7450
  wait: "text-[var(--tiger-text-muted,#6b7280)] transition-colors duration-300 group-hover:text-[var(--tiger-text,#111827)]",
7383
7451
  process: "text-[var(--tiger-text,#111827)] font-semibold transition-colors duration-300",
@@ -7387,9 +7455,9 @@ function getStepTitleClasses(status, size, clickable) {
7387
7455
  const cursorClasses = clickable ? "bg-transparent border-0 p-0 cursor-pointer hover:text-[var(--tiger-primary,#2563eb)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--tiger-primary,#2563eb)] focus-visible:ring-offset-2 focus-visible:ring-offset-[var(--tiger-surface,#ffffff)]" : "";
7388
7456
  return `${baseClasses} ${sizeClasses3} ${statusClasses[status]} ${cursorClasses}`;
7389
7457
  }
7390
- function getStepDescriptionClasses(status, size) {
7458
+ function getStepDescriptionClasses(status, size2) {
7391
7459
  const baseClasses = "tiger-step-description mt-1";
7392
- const sizeClasses3 = size === "small" ? "text-xs" : "text-sm";
7460
+ const sizeClasses3 = size2 === "small" ? "text-xs" : "text-sm";
7393
7461
  const statusClass = status === "error" ? "text-[var(--tiger-error,#ef4444)]" : "text-[var(--tiger-text-muted,#6b7280)]";
7394
7462
  return `${baseClasses} ${sizeClasses3} ${statusClass}`;
7395
7463
  }
@@ -7530,7 +7598,7 @@ function getPaginationContainerClasses(align = "center", className) {
7530
7598
  };
7531
7599
  return classNames("flex items-center gap-1", alignClasses[align], className);
7532
7600
  }
7533
- function getPaginationButtonBaseClasses(size = "medium", active = false) {
7601
+ function getPaginationButtonBaseClasses(size2 = "medium", active = false) {
7534
7602
  const sizeClasses3 = {
7535
7603
  small: "min-w-7 h-7 text-sm px-2",
7536
7604
  medium: "min-w-8 h-8 text-base px-2.5",
@@ -7549,7 +7617,7 @@ function getPaginationButtonBaseClasses(size = "medium", active = false) {
7549
7617
  "focus:outline-none focus:ring-2 focus:ring-[var(--tiger-primary,#2563eb)]/40",
7550
7618
  "disabled:cursor-not-allowed disabled:opacity-50",
7551
7619
  colorClasses,
7552
- sizeClasses3[size]
7620
+ sizeClasses3[size2]
7553
7621
  );
7554
7622
  }
7555
7623
  function getPaginationButtonActiveClasses() {
@@ -7560,7 +7628,7 @@ function getPaginationButtonActiveClasses() {
7560
7628
  "hover:border-[var(--tiger-primary-hover,#1d4ed8)] hover:bg-[var(--tiger-primary-hover,#1d4ed8)] hover:text-white"
7561
7629
  );
7562
7630
  }
7563
- function getPaginationEllipsisClasses(size = "medium") {
7631
+ function getPaginationEllipsisClasses(size2 = "medium") {
7564
7632
  const sizeClasses3 = {
7565
7633
  small: "min-w-7 h-7 text-sm",
7566
7634
  medium: "min-w-8 h-8 text-base",
@@ -7569,10 +7637,10 @@ function getPaginationEllipsisClasses(size = "medium") {
7569
7637
  return classNames(
7570
7638
  "inline-flex items-center justify-center",
7571
7639
  "text-[var(--tiger-text-muted,#6b7280)] cursor-default",
7572
- sizeClasses3[size]
7640
+ sizeClasses3[size2]
7573
7641
  );
7574
7642
  }
7575
- function getQuickJumperInputClasses(size = "medium") {
7643
+ function getQuickJumperInputClasses(size2 = "medium") {
7576
7644
  const sizeClasses3 = {
7577
7645
  small: "w-12 h-7 text-sm",
7578
7646
  medium: "w-14 h-8 text-base",
@@ -7587,10 +7655,10 @@ function getQuickJumperInputClasses(size = "medium") {
7587
7655
  "hover:border-[var(--tiger-primary,#2563eb)]",
7588
7656
  "focus:outline-none focus:ring-2 focus:ring-[var(--tiger-primary,#2563eb)] focus:ring-opacity-50",
7589
7657
  "disabled:cursor-not-allowed disabled:opacity-50",
7590
- sizeClasses3[size]
7658
+ sizeClasses3[size2]
7591
7659
  );
7592
7660
  }
7593
- function getPageSizeSelectorClasses(size = "medium") {
7661
+ function getPageSizeSelectorClasses(size2 = "medium") {
7594
7662
  const sizeClasses3 = {
7595
7663
  small: "h-7 text-sm",
7596
7664
  medium: "h-8 text-base",
@@ -7605,19 +7673,19 @@ function getPageSizeSelectorClasses(size = "medium") {
7605
7673
  "hover:border-[var(--tiger-primary,#2563eb)]",
7606
7674
  "focus:outline-none focus:ring-2 focus:ring-[var(--tiger-primary,#2563eb)] focus:ring-opacity-50",
7607
7675
  "disabled:cursor-not-allowed disabled:opacity-50",
7608
- sizeClasses3[size]
7676
+ sizeClasses3[size2]
7609
7677
  );
7610
7678
  }
7611
- function getSizeTextClasses(size = "medium") {
7679
+ function getSizeTextClasses(size2 = "medium") {
7612
7680
  const sizeClasses3 = {
7613
7681
  small: "text-sm",
7614
7682
  medium: "text-base",
7615
7683
  large: "text-lg"
7616
7684
  };
7617
- return sizeClasses3[size];
7685
+ return sizeClasses3[size2];
7618
7686
  }
7619
- function getTotalTextClasses(size = "medium") {
7620
- return classNames("text-[var(--tiger-text-muted,#6b7280)]", "mr-2", getSizeTextClasses(size));
7687
+ function getTotalTextClasses(size2 = "medium") {
7688
+ return classNames("text-[var(--tiger-text-muted,#6b7280)]", "mr-2", getSizeTextClasses(size2));
7621
7689
  }
7622
7690
  function getBuiltInPaginationContainerClasses() {
7623
7691
  return classNames("px-4 py-3", "border-t border-[var(--tiger-border,#e5e7eb)]");
@@ -7723,7 +7791,7 @@ function getDrawerMaskClasses(visible) {
7723
7791
  function getDrawerContainerClasses() {
7724
7792
  return "fixed inset-0 overflow-hidden";
7725
7793
  }
7726
- function getDrawerPanelClasses(placement, visible, size, fullscreenOnMobile = true) {
7794
+ function getDrawerPanelClasses(placement, visible, size2, fullscreenOnMobile = true) {
7727
7795
  const baseClasses = "absolute bg-[var(--tiger-surface,#ffffff)] shadow-xl transition-transform duration-300 ease-in-out pointer-events-auto";
7728
7796
  const mobileFullscreenClasses = "max-md:inset-0 max-md:!w-screen max-md:!h-[100dvh]";
7729
7797
  const sizeMap2 = {
@@ -7736,22 +7804,22 @@ function getDrawerPanelClasses(placement, visible, size, fullscreenOnMobile = tr
7736
7804
  const placementClasses = {
7737
7805
  left: classNames(
7738
7806
  "top-0 bottom-0 left-0",
7739
- sizeMap2[size].width,
7807
+ sizeMap2[size2].width,
7740
7808
  visible ? "translate-x-0" : "-translate-x-full"
7741
7809
  ),
7742
7810
  right: classNames(
7743
7811
  "top-0 bottom-0 right-0",
7744
- sizeMap2[size].width,
7812
+ sizeMap2[size2].width,
7745
7813
  visible ? "translate-x-0" : "translate-x-full"
7746
7814
  ),
7747
7815
  top: classNames(
7748
7816
  "top-0 left-0 right-0",
7749
- sizeMap2[size].height,
7817
+ sizeMap2[size2].height,
7750
7818
  visible ? "translate-y-0" : "-translate-y-full"
7751
7819
  ),
7752
7820
  bottom: classNames(
7753
7821
  "bottom-0 left-0 right-0",
7754
- sizeMap2[size].height,
7822
+ sizeMap2[size2].height,
7755
7823
  visible ? "translate-y-0" : "translate-y-full"
7756
7824
  )
7757
7825
  };
@@ -7819,10 +7887,10 @@ var modalTitleClasses = "text-lg font-semibold text-[var(--tiger-text,#111827)]"
7819
7887
  var modalCloseButtonClasses = "text-[var(--tiger-text-muted,#9ca3af)] hover:text-[var(--tiger-text-muted,#6b7280)] focus:outline-none focus:ring-2 focus:ring-[var(--tiger-primary,#2563eb)]/40 rounded-[var(--tiger-radius-md,0.5rem)] p-1 transition-colors";
7820
7888
  var modalBodyClasses = "px-6 py-4 text-[var(--tiger-text,#374151)]";
7821
7889
  var modalFooterClasses = "flex items-center justify-end gap-3 px-6 py-4 border-t border-[var(--tiger-border,#e5e7eb)]";
7822
- function getModalContentClasses(size, className, mobileSheet = false) {
7890
+ function getModalContentClasses(size2, className, mobileSheet = false) {
7823
7891
  return classNames(
7824
7892
  modalContentWrapperClasses,
7825
- modalSizeClasses[size],
7893
+ modalSizeClasses[size2],
7826
7894
  mobileSheet && modalMobileSheetClasses,
7827
7895
  className
7828
7896
  );
@@ -8085,8 +8153,8 @@ var loadingOverlaySpinnerBaseClasses = "animate-spin h-8 w-8 text-[var(--tiger-p
8085
8153
  function getLoadingOverlaySpinnerClasses(customClassName) {
8086
8154
  return classNames(loadingOverlaySpinnerBaseClasses, customClassName);
8087
8155
  }
8088
- function getLoadingClasses(variant, size, color, customColor) {
8089
- const sizeClass = loadingSizeClasses[size];
8156
+ function getLoadingClasses(variant, size2, color, customColor) {
8157
+ const sizeClass = loadingSizeClasses[size2];
8090
8158
  const colorClass = customColor ? "" : loadingColorClasses[color];
8091
8159
  const baseClasses = classNames(sizeClass, colorClass);
8092
8160
  switch (variant) {
@@ -8195,27 +8263,27 @@ var loadingDotsWrapperBaseClasses = "flex items-center";
8195
8263
  var loadingBarsWrapperBaseClasses = "flex items-end";
8196
8264
  var loadingDotBaseClasses = "rounded-full bg-current animate-bounce-dot";
8197
8265
  var loadingBarBaseClasses = "rounded-sm bg-current animate-scale-bar";
8198
- function getLoadingTextClasses(size, color, customColor) {
8266
+ function getLoadingTextClasses(size2, color, customColor) {
8199
8267
  return classNames(
8200
- loadingTextSizeClasses[size],
8268
+ loadingTextSizeClasses[size2],
8201
8269
  customColor ? "" : loadingColorClasses[color],
8202
8270
  "font-medium"
8203
8271
  );
8204
8272
  }
8205
- function getLoadingDotsWrapperClasses(size) {
8206
- const config = dotsVariantConfig[size];
8273
+ function getLoadingDotsWrapperClasses(size2) {
8274
+ const config = dotsVariantConfig[size2];
8207
8275
  return classNames(loadingDotsWrapperBaseClasses, config.gap);
8208
8276
  }
8209
- function getLoadingDotClasses(size, index, colorClass) {
8210
- const config = dotsVariantConfig[size];
8277
+ function getLoadingDotClasses(size2, index, colorClass) {
8278
+ const config = dotsVariantConfig[size2];
8211
8279
  return classNames(config.dotSize, loadingDotBaseClasses, colorClass, animationDelayClasses[index]);
8212
8280
  }
8213
- function getLoadingBarsWrapperClasses(size) {
8214
- const config = barsVariantConfig[size];
8281
+ function getLoadingBarsWrapperClasses(size2) {
8282
+ const config = barsVariantConfig[size2];
8215
8283
  return classNames(loadingBarsWrapperBaseClasses, config.gap);
8216
8284
  }
8217
- function getLoadingBarClasses(size, index, colorClass) {
8218
- const config = barsVariantConfig[size];
8285
+ function getLoadingBarClasses(size2, index, colorClass) {
8286
+ const config = barsVariantConfig[size2];
8219
8287
  return classNames(
8220
8288
  config.barWidth,
8221
8289
  config.barHeight,
@@ -8559,9 +8627,9 @@ var iconSvgDefaultStrokeLinecap = "round";
8559
8627
  var iconSvgDefaultStrokeLinejoin = "round";
8560
8628
 
8561
8629
  // src/utils/code-utils.ts
8562
- var codeBlockContainerClasses = "relative rounded-[var(--tiger-radius-md,0.5rem)] border border-gray-200 bg-gray-50 text-gray-800 dark:border-gray-800 dark:bg-gray-900/60 dark:text-gray-100";
8630
+ var codeBlockContainerClasses = "relative rounded-[var(--tiger-radius-md,0.5rem)] border border-[var(--tiger-border,#e5e7eb)] bg-[var(--tiger-surface-muted,#f9fafb)] text-[var(--tiger-text,#1f2937)]";
8563
8631
  var codeBlockPreClasses = "m-0 overflow-auto p-4 text-sm leading-relaxed font-mono whitespace-pre";
8564
- var codeBlockCopyButtonBaseClasses = "absolute right-3 top-0 -translate-y-1/2 inline-flex items-center rounded-[var(--tiger-radius-md,0.5rem)] border border-gray-200 bg-white/90 px-1.5 py-0.5 text-[10px] text-gray-600 shadow-sm transition-colors hover:bg-white hover:text-gray-900 dark:border-gray-700 dark:bg-gray-900/90 dark:text-gray-200 dark:hover:bg-gray-800";
8632
+ var codeBlockCopyButtonBaseClasses = "absolute right-3 top-0 -translate-y-1/2 inline-flex items-center rounded-[var(--tiger-radius-md,0.5rem)] border border-[var(--tiger-border,#e5e7eb)] bg-[var(--tiger-surface,#fff)] px-1.5 py-0.5 text-[10px] text-[var(--tiger-text-muted,#6b7280)] shadow-sm transition-colors hover:text-[var(--tiger-text,#111827)] motion-reduce:transition-none";
8565
8633
  var codeBlockCopyButtonCopiedClasses = "border-[var(--tiger-primary,#2563eb)] text-[var(--tiger-primary,#2563eb)]";
8566
8634
  function getCodeBlockContainerClasses(...classes) {
8567
8635
  return classNames(codeBlockContainerClasses, ...classes);
@@ -8860,7 +8928,7 @@ function getAlertTypeClasses(type, colors = defaultAlertThemeColors) {
8860
8928
  // src/utils/text-utils.ts
8861
8929
  function getTextClasses(props) {
8862
8930
  const {
8863
- size = "base",
8931
+ size: size2 = "base",
8864
8932
  weight = "normal",
8865
8933
  align,
8866
8934
  color = "default",
@@ -8870,7 +8938,7 @@ function getTextClasses(props) {
8870
8938
  lineThrough
8871
8939
  } = props;
8872
8940
  return classNames(
8873
- textSizeClasses[size],
8941
+ textSizeClasses[size2],
8874
8942
  textWeightClasses[weight],
8875
8943
  align && textAlignClasses[align],
8876
8944
  textColorClasses[color],
@@ -9371,13 +9439,13 @@ var carouselNextArrowPath = "M8.25 4.5l7.5 7.5-7.5 7.5";
9371
9439
  // src/utils/anchor-utils.ts
9372
9440
  var anchorBaseClasses = "relative";
9373
9441
  var anchorAffixClasses = "fixed";
9374
- var anchorInkContainerVerticalClasses = "absolute left-0 top-0 bottom-0 w-0.5 bg-gray-200 rounded-full";
9375
- var anchorInkContainerHorizontalClasses = "absolute left-0 right-0 bottom-0 h-0.5 bg-gray-200 rounded-full";
9376
- var anchorInkActiveVerticalClasses = "absolute w-0.5 bg-[var(--tiger-primary,#2563eb)] rounded-full transition-[top,height] duration-200 ease-in-out";
9377
- var anchorInkActiveHorizontalClasses = "absolute h-0.5 bg-[var(--tiger-primary,#2563eb)] rounded-full transition-[left,width] duration-200 ease-in-out";
9442
+ var anchorInkContainerVerticalClasses = "absolute left-0 top-0 bottom-0 w-0.5 bg-[var(--tiger-border,#e5e7eb)] rounded-full";
9443
+ var anchorInkContainerHorizontalClasses = "absolute left-0 right-0 bottom-0 h-0.5 bg-[var(--tiger-border,#e5e7eb)] rounded-full";
9444
+ var anchorInkActiveVerticalClasses = "absolute w-0.5 bg-[var(--tiger-primary,#2563eb)] rounded-full transition-[top,height] duration-200 ease-in-out motion-reduce:transition-none";
9445
+ var anchorInkActiveHorizontalClasses = "absolute h-0.5 bg-[var(--tiger-primary,#2563eb)] rounded-full transition-[left,width] duration-200 ease-in-out motion-reduce:transition-none";
9378
9446
  var anchorLinkListVerticalClasses = "pl-4 space-y-2";
9379
9447
  var anchorLinkListHorizontalClasses = "flex items-center space-x-4 pb-2";
9380
- var anchorLinkBaseClasses = "block text-sm text-gray-600 hover:text-[var(--tiger-primary,#2563eb)] transition-colors duration-200 whitespace-nowrap";
9448
+ var anchorLinkBaseClasses = "block text-sm text-[var(--tiger-text-muted,#6b7280)] hover:text-[var(--tiger-primary,#2563eb)] transition-colors duration-200 motion-reduce:transition-none whitespace-nowrap";
9381
9449
  var anchorLinkActiveClasses = "text-[var(--tiger-primary,#2563eb)] font-medium";
9382
9450
  function getAnchorWrapperClasses(affix, className) {
9383
9451
  return [anchorBaseClasses, affix && anchorAffixClasses, className].filter(Boolean).join(" ");
@@ -10103,16 +10171,16 @@ function getBarValueLabelY(barY, barHeight, position, offset2 = 8) {
10103
10171
  }
10104
10172
  return barY - offset2;
10105
10173
  }
10106
- function getScatterPointPath(style, size) {
10174
+ function getScatterPointPath(style, size2) {
10107
10175
  switch (style) {
10108
10176
  case "square":
10109
- return `M ${-size} ${-size} L ${size} ${-size} L ${size} ${size} L ${-size} ${size} Z`;
10177
+ return `M ${-size2} ${-size2} L ${size2} ${-size2} L ${size2} ${size2} L ${-size2} ${size2} Z`;
10110
10178
  case "triangle": {
10111
- const h = size * 1.15;
10112
- return `M 0 ${-h} L ${size} ${h * 0.75} L ${-size} ${h * 0.75} Z`;
10179
+ const h = size2 * 1.15;
10180
+ return `M 0 ${-h} L ${size2} ${h * 0.75} L ${-size2} ${h * 0.75} Z`;
10113
10181
  }
10114
10182
  case "diamond":
10115
- return `M 0 ${-size * 1.2} L ${size} 0 L 0 ${size * 1.2} L ${-size} 0 Z`;
10183
+ return `M 0 ${-size2 * 1.2} L ${size2} 0 L 0 ${size2 * 1.2} L ${-size2} 0 Z`;
10116
10184
  }
10117
10185
  }
10118
10186
 
@@ -11641,6 +11709,7 @@ import {
11641
11709
  computePosition,
11642
11710
  flip,
11643
11711
  shift,
11712
+ size,
11644
11713
  offset,
11645
11714
  arrow,
11646
11715
  autoUpdate
@@ -11653,6 +11722,7 @@ function createFloatingMiddleware({
11653
11722
  flip: enableFlip,
11654
11723
  shift: enableShift,
11655
11724
  shiftPadding,
11725
+ size: enableSize,
11656
11726
  arrowElement,
11657
11727
  arrowPadding
11658
11728
  }) {
@@ -11661,7 +11731,24 @@ function createFloatingMiddleware({
11661
11731
  middleware.push(flip({ padding: shiftPadding }));
11662
11732
  }
11663
11733
  if (enableShift) {
11664
- middleware.push(shift({ padding: shiftPadding }));
11734
+ middleware.push(shift({ padding: shiftPadding, crossAxis: true }));
11735
+ }
11736
+ if (enableSize) {
11737
+ middleware.push(
11738
+ size({
11739
+ padding: shiftPadding,
11740
+ apply({ availableWidth, availableHeight, elements }) {
11741
+ elements.floating.style.setProperty(
11742
+ "--tiger-overlay-available-width",
11743
+ `${Math.max(0, availableWidth)}px`
11744
+ );
11745
+ elements.floating.style.setProperty(
11746
+ "--tiger-overlay-available-height",
11747
+ `${Math.max(0, availableHeight)}px`
11748
+ );
11749
+ }
11750
+ })
11751
+ );
11665
11752
  }
11666
11753
  if (arrowElement) {
11667
11754
  middleware.push(arrow({ element: arrowElement, padding: arrowPadding }));
@@ -11673,11 +11760,17 @@ function getFloatingMiddlewareCacheKey({
11673
11760
  flip: enableFlip,
11674
11761
  shift: enableShift,
11675
11762
  shiftPadding,
11763
+ size: enableSize,
11676
11764
  arrowPadding
11677
11765
  }) {
11678
- return [offsetDistance, enableFlip ? 1 : 0, enableShift ? 1 : 0, shiftPadding, arrowPadding].join(
11679
- "|"
11680
- );
11766
+ return [
11767
+ offsetDistance,
11768
+ enableFlip ? 1 : 0,
11769
+ enableShift ? 1 : 0,
11770
+ enableSize ? 1 : 0,
11771
+ shiftPadding,
11772
+ arrowPadding
11773
+ ].join("|");
11681
11774
  }
11682
11775
  function getFloatingMiddleware(options = {}) {
11683
11776
  const normalizedOptions = {
@@ -11685,6 +11778,7 @@ function getFloatingMiddleware(options = {}) {
11685
11778
  flip: options.flip ?? true,
11686
11779
  shift: options.shift ?? true,
11687
11780
  shiftPadding: options.shiftPadding ?? 8,
11781
+ size: options.size ?? true,
11688
11782
  arrowElement: options.arrowElement ?? null,
11689
11783
  arrowPadding: options.arrowPadding ?? 8
11690
11784
  };
@@ -11715,6 +11809,7 @@ async function computeFloatingPosition(reference, floating, options = {}) {
11715
11809
  flip: enableFlip = true,
11716
11810
  shift: enableShift = true,
11717
11811
  shiftPadding = 8,
11812
+ size: enableSize = true,
11718
11813
  arrowElement = null,
11719
11814
  arrowPadding = 8
11720
11815
  } = options;
@@ -11723,6 +11818,7 @@ async function computeFloatingPosition(reference, floating, options = {}) {
11723
11818
  flip: enableFlip,
11724
11819
  shift: enableShift,
11725
11820
  shiftPadding,
11821
+ size: enableSize,
11726
11822
  arrowElement,
11727
11823
  arrowPadding
11728
11824
  });
@@ -11791,6 +11887,42 @@ function applyFloatingStyles(element, result) {
11791
11887
  element.style.top = `${result.y}px`;
11792
11888
  }
11793
11889
 
11890
+ // src/utils/anchored-overlay.ts
11891
+ var OVERLAY_LAYER_ATTRIBUTE = "data-tiger-overlay-layer";
11892
+ var OVERLAY_HOST_ATTRIBUTE = "data-tiger-overlay-host";
11893
+ function resolveAnchoredOverlayTarget(reference) {
11894
+ return typeof document === "undefined" ? null : reference?.closest(`[${OVERLAY_LAYER_ATTRIBUTE}]`)?.querySelector(`:scope > [${OVERLAY_HOST_ATTRIBUTE}]`) ?? document.body;
11895
+ }
11896
+ function getAnchoredOverlayTabTarget(reference, floating, shiftKey = false) {
11897
+ if (!reference || !floating) return null;
11898
+ const layer = reference.closest(`[${OVERLAY_LAYER_ATTRIBUTE}]`);
11899
+ if (!layer) return null;
11900
+ const floatingFocusables = getFocusableElements2(floating);
11901
+ const activeElement = floating.ownerDocument.activeElement;
11902
+ const activeIndex = floatingFocusables.findIndex((element) => element === activeElement);
11903
+ if (activeIndex >= 0) {
11904
+ const boundaryIndex = shiftKey ? 0 : floatingFocusables.length - 1;
11905
+ if (activeIndex !== boundaryIndex) return null;
11906
+ }
11907
+ const focusables = getFocusableElements2(layer).filter((element) => !floating.contains(element));
11908
+ if (focusables.length === 0) return null;
11909
+ const referenceIndex = focusables.findIndex(
11910
+ (element) => element === reference || reference.contains(element)
11911
+ );
11912
+ if (referenceIndex < 0) return shiftKey ? focusables[focusables.length - 1] : focusables[0];
11913
+ const nextIndex = shiftKey ? (referenceIndex - 1 + focusables.length) % focusables.length : (referenceIndex + 1) % focusables.length;
11914
+ return focusables[nextIndex];
11915
+ }
11916
+ function getAnchoredOverlayLayoutClasses(layout = "anchored", matchReferenceWidth = false) {
11917
+ const positioned = "absolute left-[var(--tiger-overlay-x)] top-[var(--tiger-overlay-y)] max-w-[var(--tiger-overlay-available-width)]! max-h-[var(--tiger-overlay-available-height)]! invisible data-[positioned=true]:visible";
11918
+ return classNames(
11919
+ positioned,
11920
+ matchReferenceWidth && (layout === "anchored" ? "w-[var(--tiger-overlay-reference-width)]" : "sm:w-[var(--tiger-overlay-reference-width)]"),
11921
+ layout === "fullscreen-sm" && "max-sm:visible max-sm:fixed max-sm:inset-0 max-sm:left-auto max-sm:top-auto max-sm:max-w-none! max-sm:max-h-none!",
11922
+ layout === "bottom-sheet-sm" && "max-sm:visible max-sm:fixed max-sm:inset-x-0 max-sm:bottom-0 max-sm:left-auto max-sm:top-auto max-sm:max-w-none! max-sm:max-h-none!"
11923
+ );
11924
+ }
11925
+
11794
11926
  // src/utils/dev-warn.ts
11795
11927
  function isDevEnvironment() {
11796
11928
  const proc = globalThis.process;
@@ -12010,15 +12142,15 @@ var valueSize = {
12010
12142
  md: "text-2xl font-semibold tabular-nums",
12011
12143
  lg: "text-4xl font-bold tabular-nums"
12012
12144
  };
12013
- function getCountdownTitleClasses(size) {
12145
+ function getCountdownTitleClasses(size2) {
12014
12146
  return classNames(
12015
- titleSize[size],
12147
+ titleSize[size2],
12016
12148
  "mb-1 text-[var(--tiger-countdown-title,var(--tiger-text-muted,#6b7280))]"
12017
12149
  );
12018
12150
  }
12019
- function getCountdownValueClasses(size) {
12151
+ function getCountdownValueClasses(size2) {
12020
12152
  return classNames(
12021
- valueSize[size],
12153
+ valueSize[size2],
12022
12154
  "text-[var(--tiger-countdown-value,var(--tiger-text,#111827))]"
12023
12155
  );
12024
12156
  }
@@ -12500,7 +12632,7 @@ var CASCADER_TRIGGER_BASE_CLASSES = [
12500
12632
  "active:scale-[0.99]"
12501
12633
  ];
12502
12634
  var CASCADER_TRIGGER_DISABLED_CLASSES = "disabled:bg-[var(--tiger-cascader-trigger-bg-disabled,var(--tiger-surface-muted,#f3f4f6))] disabled:text-[var(--tiger-cascader-trigger-text-disabled,var(--tiger-text-muted,#6b7280))] disabled:cursor-not-allowed disabled:border-[var(--tiger-cascader-trigger-border-disabled,var(--tiger-border,#e5e7eb))]";
12503
- var cascaderDropdownClasses = "absolute z-50 mt-1 flex bg-[var(--tiger-cascader-dropdown-bg,var(--tiger-surface,#ffffff))] border border-[var(--tiger-cascader-dropdown-border,var(--tiger-border,#e5e7eb))] rounded-[var(--tiger-radius-lg,0.75rem)] shadow-lg max-sm:fixed max-sm:inset-0 max-sm:mt-0 max-sm:flex-col max-sm:rounded-none max-sm:border-0 max-sm:shadow-none max-sm:pt-[env(safe-area-inset-top)] max-sm:pb-[env(safe-area-inset-bottom)]";
12635
+ var cascaderDropdownClasses = "flex bg-[var(--tiger-cascader-dropdown-bg,var(--tiger-surface,#ffffff))] border border-[var(--tiger-cascader-dropdown-border,var(--tiger-border,#e5e7eb))] rounded-[var(--tiger-radius-lg,0.75rem)] shadow-lg max-sm:flex-col max-sm:rounded-none max-sm:border-0 max-sm:shadow-none max-sm:pt-[env(safe-area-inset-top)] max-sm:pb-[env(safe-area-inset-bottom)]";
12504
12636
  var cascaderColumnClasses = "min-w-[160px] max-h-64 overflow-auto border-r border-[var(--tiger-cascader-column-border,var(--tiger-border,#e5e7eb))] last:border-r-0 max-sm:min-w-0 max-sm:flex-1 max-sm:max-h-none";
12505
12637
  var cascaderOptionBaseClasses = "w-full px-3 py-2 flex items-center justify-between text-left cursor-pointer transition-colors text-[var(--tiger-cascader-option-text,var(--tiger-text,#111827))] hover:bg-[var(--tiger-cascader-option-bg-hover,var(--tiger-outline-bg-hover,#eff6ff))]";
12506
12638
  var cascaderOptionSelectedClasses = "bg-[var(--tiger-cascader-option-bg-selected,var(--tiger-outline-bg-hover,#eff6ff))] text-[var(--tiger-cascader-option-text-selected,var(--tiger-primary,#2563eb))] font-medium";
@@ -12513,18 +12645,18 @@ var CASCADER_SIZE_CLASSES = {
12513
12645
  md: "text-base py-2",
12514
12646
  lg: "text-lg py-2.5"
12515
12647
  };
12516
- function getCascaderTriggerClasses(size, disabled, isOpen) {
12648
+ function getCascaderTriggerClasses(size2, disabled, isOpen) {
12517
12649
  return classNames(
12518
12650
  ...CASCADER_TRIGGER_BASE_CLASSES,
12519
- CASCADER_SIZE_CLASSES[size],
12651
+ CASCADER_SIZE_CLASSES[size2],
12520
12652
  disabled && CASCADER_TRIGGER_DISABLED_CLASSES,
12521
12653
  isOpen && "ring-2 ring-[var(--tiger-cascader-ring,var(--tiger-primary,#2563eb))] border-[var(--tiger-cascader-trigger-border-focus,var(--tiger-primary,#2563eb))]"
12522
12654
  );
12523
12655
  }
12524
- function getCascaderOptionClasses(isSelected, isDisabled, size) {
12656
+ function getCascaderOptionClasses(isSelected, isDisabled, size2) {
12525
12657
  return classNames(
12526
12658
  cascaderOptionBaseClasses,
12527
- CASCADER_SIZE_CLASSES[size],
12659
+ CASCADER_SIZE_CLASSES[size2],
12528
12660
  isSelected && cascaderOptionSelectedClasses,
12529
12661
  isDisabled && cascaderOptionDisabledClasses
12530
12662
  );
@@ -12616,7 +12748,7 @@ function getCascaderColumns(options, activePath) {
12616
12748
 
12617
12749
  // src/utils/auto-complete-utils.ts
12618
12750
  var autoCompleteBaseClasses = "relative inline-block w-full";
12619
- var autoCompleteDropdownClasses = "absolute z-50 w-full mt-1 bg-[var(--tiger-autocomplete-dropdown-bg,var(--tiger-surface,#ffffff))] border border-[var(--tiger-autocomplete-dropdown-border,var(--tiger-border,#d1d5db))] rounded-[var(--tiger-radius-md,0.5rem)] shadow-lg max-h-60 overflow-auto";
12751
+ var autoCompleteDropdownClasses = "bg-[var(--tiger-autocomplete-dropdown-bg,var(--tiger-surface,#ffffff))] border border-[var(--tiger-autocomplete-dropdown-border,var(--tiger-border,#d1d5db))] rounded-[var(--tiger-radius-md,0.5rem)] shadow-lg max-h-60 overflow-auto";
12620
12752
  var autoCompleteOptionBaseClasses = "w-full px-3 py-2 text-left cursor-pointer transition-colors";
12621
12753
  var autoCompleteEmptyStateClasses = "px-3 py-4 text-center text-[var(--tiger-autocomplete-empty-text,var(--tiger-text-muted,#9ca3af))]";
12622
12754
  var sizeClasses = {
@@ -12629,15 +12761,15 @@ var inputPaddingClasses = {
12629
12761
  md: "pl-3 pr-10",
12630
12762
  lg: "pl-4 pr-12"
12631
12763
  };
12632
- function getAutoCompleteInputClasses(size = "md", disabled = false, isOpen = false) {
12764
+ function getAutoCompleteInputClasses(size2 = "md", disabled = false, isOpen = false) {
12633
12765
  const base = "w-full rounded-[var(--tiger-radius-md,0.5rem)] border outline-none transition-all duration-200";
12634
- const sizeClass = classNames(sizeClasses[size], inputPaddingClasses[size]);
12766
+ const sizeClass = classNames(sizeClasses[size2], inputPaddingClasses[size2]);
12635
12767
  const stateClass = disabled ? "bg-[var(--tiger-autocomplete-bg-disabled,var(--tiger-outline-bg-disabled,#f3f4f6))] text-[var(--tiger-autocomplete-text-disabled,var(--tiger-text-muted,#9ca3af))] border-[var(--tiger-autocomplete-border-disabled,var(--tiger-border,#d1d5db))] cursor-not-allowed" : isOpen ? "bg-[var(--tiger-autocomplete-bg,var(--tiger-surface,#ffffff))] text-[var(--tiger-autocomplete-text,var(--tiger-text,#111827))] border-[var(--tiger-autocomplete-border-focus,var(--tiger-primary,#2563eb))] ring-2 ring-[var(--tiger-autocomplete-ring,var(--tiger-primary,#2563eb))]/20" : "bg-[var(--tiger-autocomplete-bg,var(--tiger-surface,#ffffff))] text-[var(--tiger-autocomplete-text,var(--tiger-text,#111827))] border-[var(--tiger-autocomplete-border,var(--tiger-border,#d1d5db))] hover:border-[var(--tiger-autocomplete-border-hover,var(--tiger-primary,#2563eb))]";
12636
12768
  return classNames(base, sizeClass, stateClass);
12637
12769
  }
12638
- function getAutoCompleteOptionClasses(isSelected = false, isDisabled = false, size = "md") {
12770
+ function getAutoCompleteOptionClasses(isSelected = false, isDisabled = false, size2 = "md") {
12639
12771
  const stateClass = isDisabled ? "text-[var(--tiger-autocomplete-option-text-disabled,var(--tiger-text-muted,#9ca3af))] cursor-not-allowed" : isSelected ? "bg-[var(--tiger-autocomplete-option-bg-selected,var(--tiger-outline-bg-active,#dbeafe))] text-[var(--tiger-autocomplete-option-text-selected,var(--tiger-primary,#2563eb))]" : "text-[var(--tiger-autocomplete-option-text,var(--tiger-text,#111827))] hover:bg-[var(--tiger-autocomplete-option-bg-hover,var(--tiger-outline-bg-hover,#eff6ff))]";
12640
- return classNames(autoCompleteOptionBaseClasses, sizeClasses[size], stateClass);
12772
+ return classNames(autoCompleteOptionBaseClasses, sizeClasses[size2], stateClass);
12641
12773
  }
12642
12774
  function defaultAutoCompleteFilter(inputValue, option) {
12643
12775
  return option.label.toLowerCase().includes(inputValue.toLowerCase());
@@ -12893,10 +13025,10 @@ var controlSizeClasses = {
12893
13025
  md: "h-9 px-2.5 text-sm",
12894
13026
  lg: "h-10 px-3 text-base"
12895
13027
  };
12896
- function getCronEditorControlClasses(size, invalid = false) {
13028
+ function getCronEditorControlClasses(size2, invalid = false) {
12897
13029
  return classNames(
12898
13030
  "min-w-0 rounded-[var(--tiger-radius-sm,0.375rem)] border font-mono outline-none transition-colors",
12899
- controlSizeClasses[size],
13031
+ controlSizeClasses[size2],
12900
13032
  invalid ? "border-[var(--tiger-danger,#dc2626)] focus:border-[var(--tiger-danger,#dc2626)]" : "border-[var(--tiger-croneditor-control-border,var(--tiger-border,#d1d5db))] focus:border-[var(--tiger-primary,#2563eb)]",
12901
13033
  "bg-[var(--tiger-croneditor-control-bg,var(--tiger-surface,#ffffff))]",
12902
13034
  "disabled:cursor-not-allowed disabled:opacity-50"
@@ -13129,12 +13261,12 @@ function getSpotlightShortcutLabel(shortcut) {
13129
13261
  }
13130
13262
 
13131
13263
  // src/utils/scroll-spy-utils.ts
13132
- var scrollSpyRootClasses = "relative text-sm text-gray-600 dark:text-gray-300";
13264
+ var scrollSpyRootClasses = "relative text-sm text-[var(--tiger-text-muted,#6b7280)]";
13133
13265
  var scrollSpyStickyClasses = "sticky top-0";
13134
13266
  var scrollSpyListVerticalClasses = "flex flex-col gap-1";
13135
13267
  var scrollSpyListHorizontalClasses = "flex flex-wrap items-center gap-2";
13136
- var scrollSpyNestedListClasses = "mt-1 ml-3 flex flex-col gap-1 border-l border-gray-200 pl-3 dark:border-gray-700";
13137
- var scrollSpyItemBaseClasses = "block rounded-md px-3 py-1.5 text-left transition-colors duration-200 hover:bg-gray-100 hover:text-[var(--tiger-primary,#2563eb)] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--tiger-primary,#2563eb)] focus-visible:ring-offset-2 dark:hover:bg-gray-800";
13268
+ var scrollSpyNestedListClasses = "mt-1 ml-3 flex flex-col gap-1 border-l border-[var(--tiger-border,#e5e7eb)] pl-3";
13269
+ var scrollSpyItemBaseClasses = "block rounded-md px-3 py-1.5 text-left transition-colors duration-200 motion-reduce:transition-none hover:bg-[var(--tiger-surface-muted,#f3f4f6)] hover:text-[var(--tiger-primary,#2563eb)] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--tiger-primary,#2563eb)] focus-visible:ring-offset-2 focus-visible:ring-offset-[var(--tiger-surface,#fff)]";
13138
13270
  var scrollSpyItemActiveClasses = "bg-[var(--tiger-primary,#2563eb)]/10 font-medium text-[var(--tiger-primary,#2563eb)]";
13139
13271
  var scrollSpyItemDisabledClasses = "cursor-not-allowed opacity-50 hover:bg-transparent";
13140
13272
  function getScrollSpyKeyString(key) {
@@ -13250,14 +13382,14 @@ var checkboxSizeClasses = {
13250
13382
  md: "w-4 h-4",
13251
13383
  lg: "w-5 h-5"
13252
13384
  };
13253
- function getTransferItemClasses(isSelected, isDisabled, size = "md") {
13385
+ function getTransferItemClasses(isSelected, isDisabled, size2 = "md") {
13254
13386
  const base = "flex items-center gap-2 cursor-pointer transition-colors";
13255
13387
  const stateClass = isDisabled ? "text-[var(--tiger-transfer-text-disabled,var(--tiger-text-muted,#9ca3af))] cursor-not-allowed" : isSelected ? "bg-[var(--tiger-transfer-item-bg-selected,var(--tiger-outline-bg-active,#dbeafe))] text-[var(--tiger-transfer-item-text,var(--tiger-text,#111827))]" : "text-[var(--tiger-transfer-item-text,var(--tiger-text,#111827))] hover:bg-[var(--tiger-transfer-item-bg-hover,var(--tiger-outline-bg-hover,#eff6ff))]";
13256
- return classNames(base, sizeClasses2[size], itemPaddingClasses[size], stateClass);
13388
+ return classNames(base, sizeClasses2[size2], itemPaddingClasses[size2], stateClass);
13257
13389
  }
13258
- function getTransferCheckboxClasses(size = "md") {
13390
+ function getTransferCheckboxClasses(size2 = "md") {
13259
13391
  return classNames(
13260
- checkboxSizeClasses[size],
13392
+ checkboxSizeClasses[size2],
13261
13393
  "rounded border border-[var(--tiger-transfer-checkbox-border,var(--tiger-border,#d1d5db))] accent-[var(--tiger-primary,#2563eb)]"
13262
13394
  );
13263
13395
  }
@@ -13308,7 +13440,7 @@ function filterTransferItems(items, query, filterFn) {
13308
13440
 
13309
13441
  // src/utils/tree-select-utils.ts
13310
13442
  var treeSelectBaseClasses = "relative inline-block w-full";
13311
- var treeSelectDropdownClasses = "absolute z-50 w-full mt-1 bg-[var(--tiger-treeselect-dropdown-bg,var(--tiger-surface,#ffffff))] border border-[var(--tiger-treeselect-dropdown-border,var(--tiger-border,#d1d5db))] rounded-[var(--tiger-radius-md,0.5rem)] shadow-lg max-h-60 overflow-auto";
13443
+ var treeSelectDropdownClasses = "bg-[var(--tiger-treeselect-dropdown-bg,var(--tiger-surface,#ffffff))] border border-[var(--tiger-treeselect-dropdown-border,var(--tiger-border,#d1d5db))] rounded-[var(--tiger-radius-md,0.5rem)] shadow-lg max-h-60 overflow-auto";
13312
13444
  var treeSelectSearchClasses = "w-full px-3 py-1.5 border-b border-[var(--tiger-treeselect-border,var(--tiger-border,#d1d5db))] text-sm bg-[var(--tiger-treeselect-bg,var(--tiger-surface,#ffffff))] text-[var(--tiger-treeselect-text,var(--tiger-text,#111827))] outline-none placeholder:text-[var(--tiger-treeselect-placeholder,var(--tiger-text-muted,#9ca3af))]";
13313
13445
  var treeSelectEmptyClasses = "px-3 py-4 text-center text-[var(--tiger-treeselect-empty-text,var(--tiger-text-muted,#9ca3af))]";
13314
13446
  var treeSelectNodeBaseClasses = "flex items-center px-2 py-1.5 cursor-pointer rounded transition-colors";
@@ -13322,14 +13454,14 @@ var nodeSizeClasses = {
13322
13454
  md: "text-base py-1.5",
13323
13455
  lg: "text-lg py-2"
13324
13456
  };
13325
- function getTreeSelectTriggerClasses(size = "md", disabled = false, isOpen = false) {
13457
+ function getTreeSelectTriggerClasses(size2 = "md", disabled = false, isOpen = false) {
13326
13458
  const base = "w-full rounded-[var(--tiger-radius-md,0.5rem)] border outline-none transition-all duration-200 text-left flex items-center";
13327
13459
  const stateClass = disabled ? "bg-[var(--tiger-treeselect-bg-disabled,var(--tiger-outline-bg-disabled,#f3f4f6))] text-[var(--tiger-treeselect-text-disabled,var(--tiger-text-muted,#9ca3af))] border-[var(--tiger-treeselect-border-disabled,var(--tiger-border,#d1d5db))] cursor-not-allowed" : isOpen ? "bg-[var(--tiger-treeselect-bg,var(--tiger-surface,#ffffff))] text-[var(--tiger-treeselect-text,var(--tiger-text,#111827))] border-[var(--tiger-treeselect-border-focus,var(--tiger-primary,#2563eb))] ring-2 ring-[var(--tiger-treeselect-ring,var(--tiger-primary,#2563eb))]/20" : "bg-[var(--tiger-treeselect-bg,var(--tiger-surface,#ffffff))] text-[var(--tiger-treeselect-text,var(--tiger-text,#111827))] border-[var(--tiger-treeselect-border,var(--tiger-border,#d1d5db))] hover:border-[var(--tiger-treeselect-border-hover,var(--tiger-primary,#2563eb))] cursor-pointer";
13328
- return classNames(base, triggerSizeClasses[size], stateClass);
13460
+ return classNames(base, triggerSizeClasses[size2], stateClass);
13329
13461
  }
13330
- function getTreeSelectNodeClasses(isSelected = false, isDisabled = false, size = "md") {
13462
+ function getTreeSelectNodeClasses(isSelected = false, isDisabled = false, size2 = "md") {
13331
13463
  const stateClass = isDisabled ? "text-[var(--tiger-treeselect-node-text-disabled,var(--tiger-text-muted,#9ca3af))] cursor-not-allowed opacity-50" : isSelected ? "bg-[var(--tiger-treeselect-node-bg-selected,var(--tiger-outline-bg-active,#dbeafe))] text-[var(--tiger-treeselect-node-text-selected,var(--tiger-primary,#2563eb))]" : "text-[var(--tiger-treeselect-node-text,var(--tiger-text,#111827))] hover:bg-[var(--tiger-treeselect-node-bg-hover,var(--tiger-outline-bg-hover,#eff6ff))]";
13332
- return classNames(treeSelectNodeBaseClasses, nodeSizeClasses[size], stateClass);
13464
+ return classNames(treeSelectNodeBaseClasses, nodeSizeClasses[size2], stateClass);
13333
13465
  }
13334
13466
  function findTreeSelectNode(data, key) {
13335
13467
  for (const node of data) {
@@ -13401,10 +13533,10 @@ var sizeText = {
13401
13533
  md: "text-lg leading-5",
13402
13534
  lg: "text-2xl leading-7"
13403
13535
  };
13404
- function getRateStarClasses(size, isCharacter, disabled) {
13536
+ function getRateStarClasses(size2, isCharacter, disabled) {
13405
13537
  return classNames(
13406
13538
  "relative inline-flex items-center justify-center transition-colors select-none",
13407
- isCharacter ? sizeText[size] : sizePx[size],
13539
+ isCharacter ? sizeText[size2] : sizePx[size2],
13408
13540
  disabled ? "cursor-default" : "cursor-pointer"
13409
13541
  );
13410
13542
  }
@@ -13415,7 +13547,7 @@ var starPathD = "M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.
13415
13547
  var starViewBox = "0 0 20 20";
13416
13548
 
13417
13549
  // src/utils/segmented-utils.ts
13418
- function getSegmentedContainerClasses(size, block) {
13550
+ function getSegmentedContainerClasses(size2, block) {
13419
13551
  const sizeClasses3 = {
13420
13552
  sm: "p-0.5 text-xs",
13421
13553
  md: "p-1 text-sm",
@@ -13424,7 +13556,7 @@ function getSegmentedContainerClasses(size, block) {
13424
13556
  return classNames(
13425
13557
  "relative inline-grid overflow-hidden rounded-[var(--tiger-radius-md,0.5rem)]",
13426
13558
  "bg-[var(--tiger-segmented-bg,var(--tiger-fill,#f3f4f6))]",
13427
- sizeClasses3[size],
13559
+ sizeClasses3[size2],
13428
13560
  block ? "w-full" : ""
13429
13561
  );
13430
13562
  }
@@ -13433,7 +13565,7 @@ function getSegmentedContainerStyle(optionCount) {
13433
13565
  gridTemplateColumns: `repeat(${Math.max(1, optionCount)}, minmax(0, 1fr))`
13434
13566
  };
13435
13567
  }
13436
- function getSegmentedIndicatorClasses(size) {
13568
+ function getSegmentedIndicatorClasses(size2) {
13437
13569
  const insetClasses = {
13438
13570
  sm: "top-0.5 bottom-0.5",
13439
13571
  md: "top-1 bottom-1",
@@ -13443,10 +13575,10 @@ function getSegmentedIndicatorClasses(size) {
13443
13575
  "pointer-events-none absolute z-0 rounded-[var(--tiger-radius-md,0.5rem)]",
13444
13576
  "bg-[var(--tiger-segmented-active-bg,var(--tiger-surface,#ffffff))] shadow-sm",
13445
13577
  "transition-transform duration-200 ease-out will-change-transform",
13446
- insetClasses[size]
13578
+ insetClasses[size2]
13447
13579
  );
13448
13580
  }
13449
- function getSegmentedIndicatorStyle(selectedIndex, optionCount, size) {
13581
+ function getSegmentedIndicatorStyle(selectedIndex, optionCount, size2) {
13450
13582
  const horizontalInset = {
13451
13583
  sm: "0.125rem",
13452
13584
  md: "0.25rem",
@@ -13454,7 +13586,7 @@ function getSegmentedIndicatorStyle(selectedIndex, optionCount, size) {
13454
13586
  };
13455
13587
  const safeOptionCount = Math.max(1, optionCount);
13456
13588
  const safeSelectedIndex = Math.min(Math.max(0, selectedIndex), safeOptionCount - 1);
13457
- const inset = horizontalInset[size];
13589
+ const inset = horizontalInset[size2];
13458
13590
  return {
13459
13591
  left: inset,
13460
13592
  width: `calc((100% - (${inset} * 2)) / ${safeOptionCount})`,
@@ -13462,7 +13594,7 @@ function getSegmentedIndicatorStyle(selectedIndex, optionCount, size) {
13462
13594
  opacity: selectedIndex >= 0 && optionCount > 0 ? "1" : "0"
13463
13595
  };
13464
13596
  }
13465
- function getSegmentedOptionClasses(size, isSelected, isDisabled) {
13597
+ function getSegmentedOptionClasses(size2, isSelected, isDisabled) {
13466
13598
  const sizePad2 = {
13467
13599
  sm: "px-2 py-0.5",
13468
13600
  md: "px-3 py-1",
@@ -13470,7 +13602,7 @@ function getSegmentedOptionClasses(size, isSelected, isDisabled) {
13470
13602
  };
13471
13603
  return classNames(
13472
13604
  "relative z-10 inline-flex items-center justify-center rounded-[var(--tiger-radius-md,0.5rem)] font-medium transition-colors duration-200 whitespace-nowrap",
13473
- sizePad2[size],
13605
+ sizePad2[size2],
13474
13606
  isDisabled ? "opacity-50 cursor-not-allowed" : "cursor-pointer",
13475
13607
  isSelected ? "text-[var(--tiger-segmented-active-text,var(--tiger-text,#111827))]" : isDisabled ? "text-[var(--tiger-segmented-text,var(--tiger-text-muted,#6b7280))]" : "text-[var(--tiger-segmented-text,var(--tiger-text-muted,#6b7280))] hover:text-[var(--tiger-segmented-text-hover,var(--tiger-text,#111827))]"
13476
13608
  );
@@ -13488,15 +13620,15 @@ var valueSize2 = {
13488
13620
  md: "text-2xl font-semibold",
13489
13621
  lg: "text-4xl font-bold"
13490
13622
  };
13491
- function getStatisticTitleClasses(size) {
13623
+ function getStatisticTitleClasses(size2) {
13492
13624
  return classNames(
13493
- titleSize2[size],
13625
+ titleSize2[size2],
13494
13626
  "text-[var(--tiger-statistic-title,var(--tiger-text-muted,#6b7280))] mb-1"
13495
13627
  );
13496
13628
  }
13497
- function getStatisticValueClasses(size) {
13629
+ function getStatisticValueClasses(size2) {
13498
13630
  return classNames(
13499
- valueSize2[size],
13631
+ valueSize2[size2],
13500
13632
  "text-[var(--tiger-statistic-value,var(--tiger-text,#111827))]"
13501
13633
  );
13502
13634
  }
@@ -13565,16 +13697,16 @@ var triggerSizes = {
13565
13697
  md: "w-8 h-8",
13566
13698
  lg: "w-10 h-10"
13567
13699
  };
13568
- function getColorPickerTriggerClasses(size, disabled) {
13700
+ function getColorPickerTriggerClasses(size2, disabled) {
13569
13701
  return classNames(
13570
13702
  "rounded-[var(--tiger-radius-md,0.5rem)] border transition-all overflow-hidden",
13571
13703
  "border-[var(--tiger-colorpicker-border,var(--tiger-border,#d1d5db))]",
13572
- triggerSizes[size],
13704
+ triggerSizes[size2],
13573
13705
  disabled ? "opacity-50 cursor-not-allowed" : "cursor-pointer hover:border-[var(--tiger-colorpicker-border-hover,var(--tiger-primary,#2563eb))]"
13574
13706
  );
13575
13707
  }
13576
13708
  var colorPickerPanelClasses = classNames(
13577
- "absolute z-50 mt-1 p-3 rounded-[var(--tiger-radius-md,0.5rem)] shadow-lg",
13709
+ "p-3 rounded-[var(--tiger-radius-md,0.5rem)] shadow-lg",
13578
13710
  "bg-[var(--tiger-colorpicker-panel-bg,var(--tiger-surface,#ffffff))]",
13579
13711
  "border border-[var(--tiger-colorpicker-panel-border,var(--tiger-border,#d1d5db))]"
13580
13712
  );
@@ -13710,20 +13842,20 @@ var colorSwatchSizeClasses = {
13710
13842
  md: "h-8 w-8",
13711
13843
  lg: "h-10 w-10"
13712
13844
  };
13713
- function getColorSwatchButtonClasses(size, selected, disabled) {
13845
+ function getColorSwatchButtonClasses(size2, selected, disabled) {
13714
13846
  return classNames(
13715
13847
  "relative inline-flex shrink-0 items-center justify-center rounded-[var(--tiger-radius-md,0.5rem)] border transition-all outline-none",
13716
13848
  "border-[var(--tiger-colorswatch-border,var(--tiger-border,#d1d5db))]",
13717
13849
  "focus-visible:ring-2 focus-visible:ring-[var(--tiger-colorswatch-ring,var(--tiger-primary,#2563eb))] focus-visible:ring-offset-2",
13718
- colorSwatchSizeClasses[size],
13850
+ colorSwatchSizeClasses[size2],
13719
13851
  selected ? "ring-2 ring-[var(--tiger-colorswatch-selected,var(--tiger-primary,#2563eb))] ring-offset-2" : "hover:scale-105 hover:border-[var(--tiger-colorswatch-border-hover,var(--tiger-primary,#2563eb))]",
13720
13852
  disabled ? "cursor-not-allowed opacity-45" : "cursor-pointer"
13721
13853
  );
13722
13854
  }
13723
- function getColorSwatchCheckClasses(size) {
13855
+ function getColorSwatchCheckClasses(size2) {
13724
13856
  return classNames(
13725
13857
  "pointer-events-none rounded-full bg-white/90 text-[var(--tiger-primary,#2563eb)] shadow-sm",
13726
- size === "sm" ? "h-3 w-3 text-[8px]" : size === "md" ? "h-4 w-4 text-[10px]" : "h-5 w-5 text-xs"
13858
+ size2 === "sm" ? "h-3 w-3 text-[8px]" : size2 === "md" ? "h-4 w-4 text-[10px]" : "h-5 w-5 text-xs"
13727
13859
  );
13728
13860
  }
13729
13861
  function normalizeColorSwatchGroups(groups, colors) {
@@ -13848,50 +13980,55 @@ function variableSizeStrategy(getHeight, itemCount) {
13848
13980
  }
13849
13981
  function dynamicSizeStrategy(estimatedHeight, itemCount) {
13850
13982
  const measuredHeights = /* @__PURE__ */ new Map();
13983
+ const offsets = new Float64Array(itemCount + 1);
13984
+ for (let i = 0; i < itemCount; i++) {
13985
+ offsets[i + 1] = offsets[i] + estimatedHeight;
13986
+ }
13987
+ let dirtyFrom = itemCount;
13851
13988
  function getHeight(index) {
13852
13989
  return measuredHeights.get(index) ?? estimatedHeight;
13853
13990
  }
13854
- function getOffset(index) {
13855
- let offset2 = 0;
13856
- for (let i = 0; i < index; i++) {
13857
- offset2 += getHeight(i);
13991
+ function rebuildOffsets() {
13992
+ if (dirtyFrom >= itemCount) return;
13993
+ for (let i = dirtyFrom; i < itemCount; i++) {
13994
+ offsets[i + 1] = offsets[i] + getHeight(i);
13858
13995
  }
13859
- return offset2;
13996
+ dirtyFrom = itemCount;
13997
+ }
13998
+ function getOffset(index) {
13999
+ rebuildOffsets();
14000
+ const safeIndex = Math.min(itemCount, Math.max(0, index));
14001
+ return offsets[safeIndex] ?? 0;
13860
14002
  }
13861
- function getTotalHeight() {
13862
- let total = 0;
13863
- for (let i = 0; i < itemCount; i++) {
13864
- total += getHeight(i);
14003
+ function binarySearchStart(scrollTop) {
14004
+ let lo = 0;
14005
+ let hi = itemCount - 1;
14006
+ while (lo <= hi) {
14007
+ const mid = lo + hi >>> 1;
14008
+ if (offsets[mid + 1] <= scrollTop) {
14009
+ lo = mid + 1;
14010
+ } else {
14011
+ hi = mid - 1;
14012
+ }
13865
14013
  }
13866
- return total;
14014
+ return Math.min(lo, itemCount - 1);
13867
14015
  }
13868
14016
  return {
13869
14017
  getRange(scrollTop, containerHeight, _itemCount, overscan) {
13870
14018
  if (itemCount === 0) {
13871
14019
  return { startIndex: 0, endIndex: -1, offsetTop: 0, totalHeight: 0 };
13872
14020
  }
13873
- let accum = 0;
13874
- let rawStart = 0;
13875
- for (let i = 0; i < itemCount; i++) {
13876
- const h = getHeight(i);
13877
- if (accum + h > scrollTop) {
13878
- rawStart = i;
13879
- break;
13880
- }
13881
- accum += h;
13882
- if (i === itemCount - 1) rawStart = itemCount - 1;
13883
- }
14021
+ rebuildOffsets();
14022
+ const rawStart = binarySearchStart(scrollTop);
13884
14023
  const startIndex = Math.max(0, rawStart - overscan);
13885
14024
  const viewEnd = scrollTop + containerHeight;
13886
14025
  let endIndex = rawStart;
13887
- let endAccum = accum;
13888
- while (endIndex < itemCount - 1 && endAccum < viewEnd) {
13889
- endAccum += getHeight(endIndex);
14026
+ while (endIndex < itemCount - 1 && offsets[endIndex] < viewEnd) {
13890
14027
  endIndex++;
13891
14028
  }
13892
14029
  endIndex = Math.min(itemCount - 1, endIndex + overscan);
13893
- const offsetTop = getOffset(startIndex);
13894
- const totalHeight = getTotalHeight();
14030
+ const offsetTop = offsets[startIndex] ?? 0;
14031
+ const totalHeight = offsets[itemCount] ?? 0;
13895
14032
  return { startIndex, endIndex, offsetTop, totalHeight };
13896
14033
  },
13897
14034
  getItemHeight(index) {
@@ -13901,7 +14038,11 @@ function dynamicSizeStrategy(estimatedHeight, itemCount) {
13901
14038
  return getOffset(index);
13902
14039
  },
13903
14040
  updateItemHeight(index, measuredHeight) {
14041
+ if (index < 0 || index >= itemCount || !Number.isFinite(measuredHeight) || measuredHeight <= 0 || getHeight(index) === measuredHeight) {
14042
+ return;
14043
+ }
13904
14044
  measuredHeights.set(index, measuredHeight);
14045
+ dirtyFrom = Math.min(dirtyFrom, index);
13905
14046
  }
13906
14047
  };
13907
14048
  }
@@ -13918,20 +14059,20 @@ var btnSize = {
13918
14059
  md: "w-9 h-9",
13919
14060
  lg: "w-11 h-11"
13920
14061
  };
13921
- function getStepperInputClasses(size) {
14062
+ function getStepperInputClasses(size2) {
13922
14063
  return classNames(
13923
14064
  "text-center border-y outline-none font-mono",
13924
- sizePad[size],
14065
+ sizePad[size2],
13925
14066
  "w-14",
13926
14067
  "bg-[var(--tiger-stepper-bg,var(--tiger-surface,#ffffff))]",
13927
14068
  "text-[var(--tiger-stepper-text,var(--tiger-text,#111827))]",
13928
14069
  "border-[var(--tiger-stepper-border,var(--tiger-border,#d1d5db))]"
13929
14070
  );
13930
14071
  }
13931
- function getStepperButtonClasses(size, disabled, position) {
14072
+ function getStepperButtonClasses(size2, disabled, position) {
13932
14073
  return classNames(
13933
14074
  "inline-flex items-center justify-center border transition-colors",
13934
- btnSize[size],
14075
+ btnSize[size2],
13935
14076
  position === "left" ? "rounded-l-md" : "rounded-r-md",
13936
14077
  disabled ? "opacity-50 cursor-not-allowed bg-[var(--tiger-stepper-btn-bg-disabled,var(--tiger-fill,#f3f4f6))]" : "cursor-pointer bg-[var(--tiger-stepper-btn-bg,var(--tiger-fill,#f3f4f6))] hover:bg-[var(--tiger-stepper-btn-bg-hover,var(--tiger-fill-hover,#e5e7eb))]",
13937
14078
  "text-[var(--tiger-stepper-btn-text,var(--tiger-text,#111827))]",
@@ -14016,35 +14157,22 @@ var sizeMap = {
14016
14157
  md: "text-sm py-2 px-3",
14017
14158
  lg: "text-base py-2.5 px-4"
14018
14159
  };
14019
- function getMentionsInputClasses(size, disabled) {
14160
+ function getMentionsInputClasses(size2, disabled) {
14020
14161
  return classNames(
14021
14162
  "w-full rounded-[var(--tiger-radius-md,0.5rem)] border transition-colors resize-none",
14022
14163
  "bg-[var(--tiger-mentions-bg,var(--tiger-surface,#ffffff))]",
14023
14164
  "border-[var(--tiger-mentions-border,var(--tiger-border,#d1d5db))]",
14024
14165
  "text-[var(--tiger-mentions-text,var(--tiger-text,#111827))]",
14025
14166
  "placeholder:text-[var(--tiger-mentions-placeholder,var(--tiger-text-muted,#9ca3af))]",
14026
- sizeMap[size],
14167
+ sizeMap[size2],
14027
14168
  disabled ? "opacity-50 cursor-not-allowed" : "focus:outline-none focus:ring-2 focus:ring-[var(--tiger-mentions-ring,var(--tiger-ring,#2563eb))]"
14028
14169
  );
14029
14170
  }
14030
14171
  var mentionsDropdownClasses = classNames(
14031
- "absolute z-50 w-48 max-h-48 overflow-auto rounded-[var(--tiger-radius-md,0.5rem)] border shadow-lg",
14172
+ "w-48 max-h-48 overflow-auto rounded-[var(--tiger-radius-md,0.5rem)] border shadow-lg",
14032
14173
  "bg-[var(--tiger-mentions-dropdown-bg,var(--tiger-surface,#ffffff))]",
14033
14174
  "border-[var(--tiger-mentions-dropdown-border,var(--tiger-border,#d1d5db))]"
14034
14175
  );
14035
- async function positionMentionsDropdown(reference, dropdown, options = {}) {
14036
- const { matchReferenceWidth = false, ...floatingOptions } = options;
14037
- if (matchReferenceWidth) {
14038
- dropdown.style.minWidth = `${reference.offsetWidth}px`;
14039
- }
14040
- const result = await computeFloatingPosition(reference, dropdown, {
14041
- placement: "bottom-start",
14042
- offset: 4,
14043
- ...floatingOptions
14044
- });
14045
- applyFloatingStyles(dropdown, result);
14046
- return result;
14047
- }
14048
14176
  function getMentionsOptionClasses(isActive, isDisabled) {
14049
14177
  return classNames(
14050
14178
  "px-3 py-2 text-sm cursor-pointer transition-colors",
@@ -14080,15 +14208,15 @@ var qrcodeRefreshClasses = classNames(
14080
14208
  "text-[var(--tiger-qrcode-refresh,var(--tiger-primary,#2563eb))]",
14081
14209
  "hover:underline"
14082
14210
  );
14083
- function generateQRMatrix(value, size = 21) {
14211
+ function generateQRMatrix(value, size2 = 21) {
14084
14212
  const matrix = Array.from(
14085
- { length: size },
14086
- () => Array.from({ length: size }, () => false)
14213
+ { length: size2 },
14214
+ () => Array.from({ length: size2 }, () => false)
14087
14215
  );
14088
14216
  const drawFinderPattern = (row, col) => {
14089
14217
  for (let r = 0; r < 7; r++) {
14090
14218
  for (let c = 0; c < 7; c++) {
14091
- if (row + r >= size || col + c >= size) continue;
14219
+ if (row + r >= size2 || col + c >= size2) continue;
14092
14220
  const isOuter = r === 0 || r === 6 || c === 0 || c === 6;
14093
14221
  const isInner = r >= 2 && r <= 4 && c >= 2 && c <= 4;
14094
14222
  matrix[row + r][col + c] = isOuter || isInner;
@@ -14096,9 +14224,9 @@ function generateQRMatrix(value, size = 21) {
14096
14224
  }
14097
14225
  };
14098
14226
  drawFinderPattern(0, 0);
14099
- drawFinderPattern(0, size - 7);
14100
- drawFinderPattern(size - 7, 0);
14101
- for (let i = 8; i < size - 8; i++) {
14227
+ drawFinderPattern(0, size2 - 7);
14228
+ drawFinderPattern(size2 - 7, 0);
14229
+ for (let i = 8; i < size2 - 8; i++) {
14102
14230
  matrix[6][i] = i % 2 === 0;
14103
14231
  matrix[i][6] = i % 2 === 0;
14104
14232
  }
@@ -14107,12 +14235,12 @@ function generateQRMatrix(value, size = 21) {
14107
14235
  hash = (hash << 5) - hash + value.charCodeAt(i) | 0;
14108
14236
  }
14109
14237
  let seed = Math.abs(hash);
14110
- for (let r = 0; r < size; r++) {
14111
- for (let c = 0; c < size; c++) {
14238
+ for (let r = 0; r < size2; r++) {
14239
+ for (let c = 0; c < size2; c++) {
14112
14240
  if (matrix[r][c]) continue;
14113
14241
  if (r < 8 && c < 8) continue;
14114
- if (r < 8 && c >= size - 8) continue;
14115
- if (r >= size - 8 && c < 8) continue;
14242
+ if (r < 8 && c >= size2 - 8) continue;
14243
+ if (r >= size2 - 8 && c < 8) continue;
14116
14244
  if (r === 6 || c === 6) continue;
14117
14245
  seed = seed * 1103515245 + 12345 & 2147483647;
14118
14246
  matrix[r][c] = seed % 3 === 0;
@@ -14188,13 +14316,13 @@ function groupDataByColumn(data, groupBy) {
14188
14316
  return groups;
14189
14317
  }
14190
14318
  var tableGroupHeaderClasses = "bg-[var(--tiger-surface-muted,#f3f4f6)] font-semibold text-sm text-[var(--tiger-text,#111827)] [&>td]:border-b [&>td]:border-[var(--tiger-border,#e5e7eb)]";
14191
- function getGroupHeaderCellClasses(size) {
14319
+ function getGroupHeaderCellClasses(size2) {
14192
14320
  const padding = {
14193
14321
  sm: "px-3 py-2",
14194
14322
  md: "px-4 py-3",
14195
14323
  lg: "px-6 py-4"
14196
14324
  };
14197
- return padding[size] || padding.md;
14325
+ return padding[size2] || padding.md;
14198
14326
  }
14199
14327
 
14200
14328
  // src/utils/table-resize-utils.ts
@@ -14948,9 +15076,9 @@ function getSplitterGutterHandleClasses(direction) {
14948
15076
  direction === "horizontal" ? splitterGutterHandleHorizontalClasses : splitterGutterHandleVerticalClasses
14949
15077
  ].join(" ");
14950
15078
  }
14951
- function parsePaneSize(size, totalSize) {
14952
- if (typeof size === "number") return size;
14953
- const trimmed = size.trim();
15079
+ function parsePaneSize(size2, totalSize) {
15080
+ if (typeof size2 === "number") return size2;
15081
+ const trimmed = size2.trim();
14954
15082
  if (trimmed.endsWith("%")) {
14955
15083
  const pct = parseFloat(trimmed);
14956
15084
  if (isNaN(pct)) return 0;
@@ -14972,8 +15100,8 @@ function calculateInitialSizes(paneCount, totalSize, gutterSize, defaultSizes) {
14972
15100
  const equalSize = availableSpace / paneCount;
14973
15101
  return Array.from({ length: paneCount }, () => equalSize);
14974
15102
  }
14975
- function clampPaneSize(size, min, max) {
14976
- let result = Math.max(size, min);
15103
+ function clampPaneSize(size2, min, max) {
15104
+ let result = Math.max(size2, min);
14977
15105
  if (max !== void 0) {
14978
15106
  result = Math.min(result, max);
14979
15107
  }
@@ -15000,10 +15128,10 @@ function resizePanes(sizes, gutterIndex, delta, mins, maxes) {
15000
15128
  result[rightIdx] = newRight;
15001
15129
  return result;
15002
15130
  }
15003
- function getPaneStyle(size, direction) {
15131
+ function getPaneStyle(size2, direction) {
15004
15132
  const prop = direction === "horizontal" ? "width" : "height";
15005
15133
  return {
15006
- [prop]: `${size}px`,
15134
+ [prop]: `${size2}px`,
15007
15135
  flexShrink: "0",
15008
15136
  flexGrow: "0"
15009
15137
  };
@@ -16839,8 +16967,8 @@ function getInputGroupClasses(compact, className) {
16839
16967
  if (className) classes.push(className);
16840
16968
  return classes.join(" ");
16841
16969
  }
16842
- function getInputGroupAddonClasses(size, compact, className) {
16843
- const classes = [inputGroupAddonBaseClasses, inputGroupAddonSizeClasses[size]];
16970
+ function getInputGroupAddonClasses(size2, compact, className) {
16971
+ const classes = [inputGroupAddonBaseClasses, inputGroupAddonSizeClasses[size2]];
16844
16972
  if (compact) {
16845
16973
  classes.push("first:rounded-l-md last:rounded-r-md");
16846
16974
  } else {
@@ -16934,8 +17062,8 @@ function getAvatarGroupClasses(...classes) {
16934
17062
  function getAvatarGroupItemClasses(...classes) {
16935
17063
  return classNames(avatarGroupItemClasses, ...classes);
16936
17064
  }
16937
- function getAvatarGroupOverflowClasses(size = "md", ...classes) {
16938
- return classNames(avatarGroupOverflowClasses, avatarSizeClasses[size], ...classes);
17065
+ function getAvatarGroupOverflowClasses(size2 = "md", ...classes) {
17066
+ return classNames(avatarGroupOverflowClasses, avatarSizeClasses[size2], ...classes);
16939
17067
  }
16940
17068
  function getAvatarGroupOverflowLabel(overflowCount, template = DEFAULT_AVATAR_GROUP_LABELS.overflowAriaLabel) {
16941
17069
  return template.replace("{count}", String(overflowCount));
@@ -17017,8 +17145,8 @@ function createChartResizeObserverController(options) {
17017
17145
  pendingSize = void 0;
17018
17146
  options.onSizeChange(nextSize);
17019
17147
  }
17020
- function schedule(size) {
17021
- pendingSize = size;
17148
+ function schedule(size2) {
17149
+ pendingSize = size2;
17022
17150
  if (frameHandle !== void 0) return;
17023
17151
  frameHandle = requestFrame(applyPending);
17024
17152
  }
@@ -17295,16 +17423,16 @@ var checkboxLabelSizeClasses = {
17295
17423
  md: "text-base",
17296
17424
  lg: "text-lg"
17297
17425
  };
17298
- function getCheckboxClasses(size = "md", disabled = false) {
17426
+ function getCheckboxClasses(size2 = "md", disabled = false) {
17299
17427
  const baseClasses = "rounded border-2 transition-all duration-150 cursor-pointer focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-[var(--tiger-focus-ring,var(--tiger-primary,#2563eb))] active:scale-95";
17300
- const sizeClass = checkboxSizeClasses2[size];
17428
+ const sizeClass = checkboxSizeClasses2[size2];
17301
17429
  const colorClasses = "border-[var(--tiger-primary,#2563eb)] accent-[var(--tiger-primary,#2563eb)] text-white checked:bg-[var(--tiger-primary,#2563eb)] checked:border-[var(--tiger-primary,#2563eb)] indeterminate:bg-[var(--tiger-primary,#2563eb)] indeterminate:border-[var(--tiger-primary,#2563eb)]";
17302
17430
  const disabledClasses = disabled ? "cursor-not-allowed opacity-50 disabled:bg-[var(--tiger-surface-muted,#f3f4f6)] disabled:border-[var(--tiger-border,#e5e7eb)]" : "";
17303
17431
  return [baseClasses, sizeClass, colorClasses, disabledClasses].filter(Boolean).join(" ");
17304
17432
  }
17305
- function getCheckboxLabelClasses(size = "md", disabled = false) {
17433
+ function getCheckboxLabelClasses(size2 = "md", disabled = false) {
17306
17434
  const baseClasses = "inline-flex items-center cursor-pointer select-none";
17307
- const sizeClass = checkboxLabelSizeClasses[size];
17435
+ const sizeClass = checkboxLabelSizeClasses[size2];
17308
17436
  const disabledClasses = disabled ? "cursor-not-allowed" : "";
17309
17437
  return [baseClasses, sizeClass, disabledClasses].filter(Boolean).join(" ");
17310
17438
  }
@@ -17326,8 +17454,8 @@ var switchThumbTranslateClasses = {
17326
17454
  md: "translate-x-5",
17327
17455
  lg: "translate-x-7"
17328
17456
  };
17329
- function getSwitchClasses(size = "md", checked = false, disabled = false, ...classes) {
17330
- const sizeClass = switchSizeClasses[size];
17457
+ function getSwitchClasses(size2 = "md", checked = false, disabled = false, ...classes) {
17458
+ const sizeClass = switchSizeClasses[size2];
17331
17459
  const bgColor = checked ? "bg-[var(--tiger-primary,#2563eb)]" : "bg-[var(--tiger-border,#e5e7eb)]";
17332
17460
  return composeComponentClasses(
17333
17461
  switchBaseClasses,
@@ -17337,10 +17465,10 @@ function getSwitchClasses(size = "md", checked = false, disabled = false, ...cla
17337
17465
  ...classes
17338
17466
  );
17339
17467
  }
17340
- function getSwitchThumbClasses(size = "md", checked = false) {
17468
+ function getSwitchThumbClasses(size2 = "md", checked = false) {
17341
17469
  const baseClasses = "inline-block rounded-full bg-[var(--tiger-surface,#ffffff)] shadow-lg transition-transform";
17342
- const sizeClass = switchThumbSizeClasses[size];
17343
- const translateClass = checked ? switchThumbTranslateClasses[size] : "translate-x-0.5";
17470
+ const sizeClass = switchThumbSizeClasses[size2];
17471
+ const translateClass = checked ? switchThumbTranslateClasses[size2] : "translate-x-0.5";
17344
17472
  return classNames(baseClasses, sizeClass, translateClass);
17345
17473
  }
17346
17474
 
@@ -17368,18 +17496,18 @@ var sliderSizeClasses = {
17368
17496
  tooltip: "text-base px-2.5 py-1.5"
17369
17497
  }
17370
17498
  };
17371
- function getSliderTrackClasses(size = "md", disabled = false) {
17372
- const sizeClass = sliderSizeClasses[size].track;
17499
+ function getSliderTrackClasses(size2 = "md", disabled = false) {
17500
+ const sizeClass = sliderSizeClasses[size2].track;
17373
17501
  const disabledClass = disabled ? sliderDisabledClasses : "";
17374
17502
  return [sliderTrackClasses, sizeClass, disabledClass].filter(Boolean).join(" ");
17375
17503
  }
17376
- function getSliderThumbClasses(size = "md", disabled = false) {
17377
- const sizeClass = sliderSizeClasses[size].thumb;
17504
+ function getSliderThumbClasses(size2 = "md", disabled = false) {
17505
+ const sizeClass = sliderSizeClasses[size2].thumb;
17378
17506
  const disabledClass = disabled ? sliderDisabledClasses : "";
17379
17507
  return [sliderThumbClasses, sizeClass, disabledClass].filter(Boolean).join(" ");
17380
17508
  }
17381
- function getSliderTooltipClasses(size = "md") {
17382
- const sizeClass = sliderSizeClasses[size].tooltip;
17509
+ function getSliderTooltipClasses(size2 = "md") {
17510
+ const sizeClass = sliderSizeClasses[size2].tooltip;
17383
17511
  return [sliderTooltipClasses, sizeClass].filter(Boolean).join(" ");
17384
17512
  }
17385
17513
 
@@ -18928,7 +19056,7 @@ var designTokens = {
18928
19056
  };
18929
19057
 
18930
19058
  // src/index.ts
18931
- var version = "2.0.0-rc.2";
19059
+ var version = "2.0.0";
18932
19060
  export {
18933
19061
  ANIMATION_DURATION_FAST_MS,
18934
19062
  ANIMATION_DURATION_MS,
@@ -19624,6 +19752,8 @@ export {
19624
19752
  getAnchorLinkListClasses,
19625
19753
  getAnchorTargetElement,
19626
19754
  getAnchorWrapperClasses,
19755
+ getAnchoredOverlayLayoutClasses,
19756
+ getAnchoredOverlayTabTarget,
19627
19757
  getAreaGradientPrefix,
19628
19758
  getArrowStyles,
19629
19759
  getAutoCompleteInputClasses,
@@ -20040,7 +20170,6 @@ export {
20040
20170
  getStepsContainerClasses,
20041
20171
  getSubMenuExpandIconClasses,
20042
20172
  getSubMenuTitleClasses,
20043
- getSubmenuPopupZIndex,
20044
20173
  getSunburstGradientPrefix,
20045
20174
  getSvgDefaultAttrs,
20046
20175
  getSwitchClasses,
@@ -20484,7 +20613,6 @@ export {
20484
20613
  popconfirmQuestionIconPath,
20485
20614
  popconfirmSuccessIconPath,
20486
20615
  popconfirmWarningIconPath,
20487
- positionMentionsDropdown,
20488
20616
  prefersReducedMotion,
20489
20617
  prepareUploadFiles,
20490
20618
  prevIconPath,
@@ -20537,6 +20665,7 @@ export {
20537
20665
  rateInactiveColor,
20538
20666
  readFileAsDataUrl,
20539
20667
  redoFormHistory,
20668
+ registerEscapeDismiss,
20540
20669
  registerImageGroupItem,
20541
20670
  removeCssVarsCached,
20542
20671
  renderMarkdownInline,
@@ -20568,6 +20697,7 @@ export {
20568
20697
  resizeCropRect,
20569
20698
  resizePanes,
20570
20699
  resolveAffixTarget,
20700
+ resolveAnchoredOverlayTarget,
20571
20701
  resolveCardPadding,
20572
20702
  resolveCarouselSwipeDirection,
20573
20703
  resolveChartPalette,