@expcat/tigercat-core 2.0.0 → 2.0.19

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.
Files changed (3) hide show
  1. package/dist/index.d.ts +34 -20
  2. package/dist/index.js +375 -277
  3. package/package.json +1 -1
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,14 +2669,14 @@ 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
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",
@@ -2630,9 +2684,9 @@ function getTimePickerInputClasses(size, disabled, showClear = false) {
2630
2684
  lg: "px-4 py-3 text-lg"
2631
2685
  };
2632
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)]";
2633
- return [...baseClasses, sizeClasses3[size], stateClasses].join(" ");
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
2692
  "text-[var(--tiger-text-muted,#9ca3af)] hover:text-[var(--tiger-text,#111827)]",
@@ -2645,7 +2699,7 @@ 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",
@@ -2654,8 +2708,8 @@ var timePickerClearButtonClasses = [
2654
2708
  "rounded transition-colors duration-200"
2655
2709
  ].join(" ");
2656
2710
  var timePickerPanelClasses = [
2657
- "absolute z-10 mt-1 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",
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
2714
  var timePickerPanelContentClasses = "flex divide-x divide-[var(--tiger-border,#e5e7eb)]";
2661
2715
  var timePickerDesktopPanelContentClasses = "max-sm:hidden flex divide-x divide-[var(--tiger-border,#e5e7eb)]";
@@ -3191,11 +3245,11 @@ var INPUT_PADDING = {
3191
3245
  lg: { left: "pl-4", right: "pr-4", prefixLeft: "pl-12", suffixRight: "pr-12" }
3192
3246
  };
3193
3247
  function getInputClasses(options = {}) {
3194
- const { size = "md", status = "default", hasPrefix, hasSuffix } = options;
3195
- const pad = INPUT_PADDING[size];
3248
+ const { size: size2 = "md", status = "default", hasPrefix, hasSuffix } = options;
3249
+ const pad = INPUT_PADDING[size2];
3196
3250
  return classNames(
3197
3251
  ...BASE_INPUT_CLASSES,
3198
- INPUT_SIZE_CLASSES[size],
3252
+ INPUT_SIZE_CLASSES[size2],
3199
3253
  STATUS_CLASSES[status],
3200
3254
  hasPrefix ? pad.prefixLeft : pad.left,
3201
3255
  hasSuffix ? pad.suffixRight : pad.right
@@ -3204,35 +3258,35 @@ function getInputClasses(options = {}) {
3204
3258
  function getInputWrapperClasses() {
3205
3259
  return "relative w-full";
3206
3260
  }
3207
- function getInputAffixClasses(position, size = "md") {
3261
+ function getInputAffixClasses(position, size2 = "md") {
3208
3262
  const base = "absolute top-0 bottom-0 flex items-center justify-center text-gray-500";
3209
3263
  const posClass = position === "prefix" ? "left-0" : "right-0";
3210
3264
  const widthClass = {
3211
3265
  sm: "w-8",
3212
3266
  md: "w-10",
3213
3267
  lg: "w-12"
3214
- }[size];
3268
+ }[size2];
3215
3269
  return classNames(base, posClass, widthClass);
3216
3270
  }
3217
- function getInputErrorClasses(size = "md") {
3271
+ function getInputErrorClasses(size2 = "md") {
3218
3272
  return classNames(
3219
3273
  "absolute inset-y-0 right-0 flex items-center pointer-events-none",
3220
- INPUT_PADDING[size].right,
3274
+ INPUT_PADDING[size2].right,
3221
3275
  "text-red-500 text-sm"
3222
3276
  );
3223
3277
  }
3224
- function getInputClearButtonClasses(size = "md") {
3278
+ function getInputClearButtonClasses(size2 = "md") {
3225
3279
  return classNames(
3226
3280
  "absolute inset-y-0 right-0 flex items-center cursor-pointer",
3227
3281
  "text-[var(--tiger-text-muted,#6b7280)] hover:text-[var(--tiger-text,#111827)]",
3228
- INPUT_PADDING[size].right
3282
+ INPUT_PADDING[size2].right
3229
3283
  );
3230
3284
  }
3231
- function getInputPasswordToggleClasses(size = "md") {
3285
+ function getInputPasswordToggleClasses(size2 = "md") {
3232
3286
  return classNames(
3233
3287
  "absolute inset-y-0 right-0 flex items-center cursor-pointer",
3234
3288
  "text-[var(--tiger-text-muted,#6b7280)] hover:text-[var(--tiger-text,#111827)]",
3235
- INPUT_PADDING[size].right
3289
+ INPUT_PADDING[size2].right
3236
3290
  );
3237
3291
  }
3238
3292
  function getInputCountClasses(isOverLimit = false) {
@@ -3281,22 +3335,22 @@ var WRAPPER_SIZE_CLASSES = {
3281
3335
  md: "h-10",
3282
3336
  lg: "h-12"
3283
3337
  };
3284
- function getInputNumberSizeClasses(size = "md") {
3285
- return WRAPPER_SIZE_CLASSES[size];
3338
+ function getInputNumberSizeClasses(size2 = "md") {
3339
+ return WRAPPER_SIZE_CLASSES[size2];
3286
3340
  }
3287
3341
  var INPUT_SIZE_CLASSES2 = {
3288
3342
  sm: "text-sm px-2",
3289
3343
  md: "text-base px-3",
3290
3344
  lg: "text-lg px-4"
3291
3345
  };
3292
- function getInputNumberInputClasses(size = "md", hasControlsRight, hasControlsBoth) {
3346
+ function getInputNumberInputClasses(size2 = "md", hasControlsRight, hasControlsBoth) {
3293
3347
  return classNames(
3294
3348
  "w-full h-full bg-transparent border-0 outline-none",
3295
3349
  "text-[var(--tiger-text,#111827)]",
3296
3350
  "placeholder:text-[var(--tiger-text-muted,#6b7280)]",
3297
3351
  "disabled:text-[var(--tiger-text-muted,#6b7280)] disabled:cursor-not-allowed",
3298
3352
  "[appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none",
3299
- INPUT_SIZE_CLASSES2[size],
3353
+ INPUT_SIZE_CLASSES2[size2],
3300
3354
  hasControlsRight && "pr-8",
3301
3355
  hasControlsBoth && "px-8 text-center"
3302
3356
  );
@@ -3387,31 +3441,31 @@ var ERROR_MIN_HEIGHT = {
3387
3441
  lg: "min-h-[1.5rem]"
3388
3442
  };
3389
3443
  function getFormItemClasses(options = {}) {
3390
- const { size = "md", labelPosition = "right", hasError = false, disabled = false } = options;
3444
+ const { size: size2 = "md", labelPosition = "right", hasError = false, disabled = false } = options;
3391
3445
  const layoutClasses = labelPosition === "top" ? "flex flex-col gap-2" : "flex items-start gap-4";
3392
3446
  return classNames(
3393
3447
  "tiger-form-item",
3394
3448
  "w-full",
3395
- `tiger-form-item--${size}`,
3449
+ `tiger-form-item--${size2}`,
3396
3450
  `tiger-form-item--label-${labelPosition}`,
3397
3451
  layoutClasses,
3398
- FORM_ITEM_SPACING[size],
3452
+ FORM_ITEM_SPACING[size2],
3399
3453
  hasError && "tiger-form-item--error",
3400
3454
  disabled && "tiger-form-item--disabled"
3401
3455
  );
3402
3456
  }
3403
3457
  function getFormItemLabelClasses(options = {}) {
3404
- const { size = "md", labelPosition = "right", isRequired = false } = options;
3458
+ const { size: size2 = "md", labelPosition = "right", isRequired = false } = options;
3405
3459
  const labelAlign = options.labelAlign ?? (labelPosition === "top" ? "left" : "right");
3406
3460
  const alignClass = labelAlign === "right" ? "text-right" : "text-left";
3407
3461
  const positionClasses = labelPosition === "top" ? "w-full" : "shrink-0";
3408
- const paddingClass = labelPosition === "top" ? "" : LABEL_PADDING_TOP[size];
3462
+ const paddingClass = labelPosition === "top" ? "" : LABEL_PADDING_TOP[size2];
3409
3463
  return classNames(
3410
3464
  "tiger-form-item__label",
3411
3465
  `tiger-form-item__label--${labelAlign}`,
3412
3466
  "font-medium",
3413
3467
  "text-[var(--tiger-text,#111827)]",
3414
- LABEL_TEXT_SIZE[size],
3468
+ LABEL_TEXT_SIZE[size2],
3415
3469
  alignClass,
3416
3470
  positionClasses,
3417
3471
  paddingClass,
@@ -3430,12 +3484,12 @@ function getFormItemContentClasses(labelPosition = "right") {
3430
3484
  function getFormItemFieldClasses() {
3431
3485
  return classNames("tiger-form-item__field", "w-full");
3432
3486
  }
3433
- function getFormItemErrorClasses(size = "md") {
3487
+ function getFormItemErrorClasses(size2 = "md") {
3434
3488
  return classNames(
3435
3489
  "tiger-form-item__error",
3436
3490
  "mt-1",
3437
- ERROR_TEXT_SIZE[size],
3438
- ERROR_MIN_HEIGHT[size],
3491
+ ERROR_TEXT_SIZE[size2],
3492
+ ERROR_MIN_HEIGHT[size2],
3439
3493
  "text-[var(--tiger-error,#ef4444)]",
3440
3494
  "transition-opacity",
3441
3495
  "duration-150",
@@ -3480,7 +3534,7 @@ var SELECT_TRIGGER_DISABLED_CLASSES_STRING = [
3480
3534
  "disabled:cursor-not-allowed",
3481
3535
  "disabled:border-[var(--tiger-select-trigger-border-disabled,var(--tiger-border,#e5e7eb))]"
3482
3536
  ].join(" ");
3483
- 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)]";
3484
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))]";
3485
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";
3486
3540
  var selectOptionDisabledClasses = "opacity-50 cursor-not-allowed hover:bg-[var(--tiger-select-dropdown-bg,var(--tiger-surface,#ffffff))]";
@@ -3499,24 +3553,24 @@ var SELECT_VIRTUAL_ITEM_HEIGHT = {
3499
3553
  md: 40,
3500
3554
  lg: 48
3501
3555
  };
3502
- function getSelectVirtualItemHeight(size = "md") {
3503
- 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;
3504
3558
  }
3505
- function getSelectSizeClasses(size) {
3506
- return SELECT_SIZE_CLASSES[size];
3559
+ function getSelectSizeClasses(size2) {
3560
+ return SELECT_SIZE_CLASSES[size2];
3507
3561
  }
3508
- function getSelectTriggerClasses(size, disabled, isOpen) {
3562
+ function getSelectTriggerClasses(size2, disabled, isOpen) {
3509
3563
  return classNames(
3510
3564
  ...SELECT_TRIGGER_BASE_CLASSES,
3511
- getSelectSizeClasses(size),
3565
+ getSelectSizeClasses(size2),
3512
3566
  disabled && SELECT_TRIGGER_DISABLED_CLASSES_STRING,
3513
3567
  isOpen && "ring-2 ring-[var(--tiger-select-ring,var(--tiger-primary,#2563eb))] border-[var(--tiger-select-trigger-border-focus,var(--tiger-primary,#2563eb))]"
3514
3568
  );
3515
3569
  }
3516
- function getSelectOptionClasses(isSelected, isDisabled, size) {
3570
+ function getSelectOptionClasses(isSelected, isDisabled, size2) {
3517
3571
  return classNames(
3518
3572
  selectOptionBaseClasses,
3519
- getSelectSizeClasses(size),
3573
+ getSelectSizeClasses(size2),
3520
3574
  isSelected && selectOptionSelectedClasses,
3521
3575
  isDisabled && selectOptionDisabledClasses
3522
3576
  );
@@ -3986,29 +4040,29 @@ var radioSizeClasses = {
3986
4040
  }
3987
4041
  };
3988
4042
  var getRadioVisualClasses = ({
3989
- size,
4043
+ size: size2,
3990
4044
  checked,
3991
4045
  disabled,
3992
4046
  colors
3993
4047
  }) => classNames(
3994
4048
  radioVisualBaseClasses,
3995
4049
  radioFocusVisibleClasses,
3996
- radioSizeClasses[size].radio,
4050
+ radioSizeClasses[size2].radio,
3997
4051
  checked ? colors.borderChecked : colors.border,
3998
4052
  checked ? colors.bgChecked : colors.bg,
3999
4053
  disabled && colors.disabled,
4000
4054
  disabled && radioDisabledCursorClasses,
4001
4055
  !disabled && radioHoverBorderClasses
4002
4056
  );
4003
- var getRadioDotClasses = ({ size, checked, colors }) => classNames(
4057
+ var getRadioDotClasses = ({ size: size2, checked, colors }) => classNames(
4004
4058
  radioDotBaseClasses,
4005
- radioSizeClasses[size].dot,
4059
+ radioSizeClasses[size2].dot,
4006
4060
  colors.innerDot,
4007
4061
  checked ? "scale-100" : "scale-0"
4008
4062
  );
4009
- var getRadioLabelClasses = ({ size, disabled, colors }) => classNames(
4063
+ var getRadioLabelClasses = ({ size: size2, disabled, colors }) => classNames(
4010
4064
  radioLabelBaseClasses,
4011
- radioSizeClasses[size].label,
4065
+ radioSizeClasses[size2].label,
4012
4066
  disabled ? colors.textDisabled : "text-[var(--tiger-text,#111827)]",
4013
4067
  disabled && radioDisabledCursorClasses
4014
4068
  );
@@ -4321,7 +4375,7 @@ function getDatePickerCalendarCellState(input) {
4321
4375
  // src/utils/datepicker-styles.ts
4322
4376
  var datePickerBaseClasses = "relative inline-block w-full";
4323
4377
  var datePickerInputWrapperClasses = "relative w-full";
4324
- function getDatePickerInputClasses(size = "md", disabled = false, showClear = false) {
4378
+ function getDatePickerInputClasses(size2 = "md", disabled = false, showClear = false) {
4325
4379
  const baseClasses = [
4326
4380
  "w-full",
4327
4381
  "rounded-[var(--tiger-radius-md,0.5rem)]",
@@ -4341,15 +4395,15 @@ function getDatePickerInputClasses(size = "md", disabled = false, showClear = fa
4341
4395
  md: "px-3 py-2 text-base",
4342
4396
  lg: "px-4 py-3 text-lg"
4343
4397
  };
4344
- const rightPaddingClasses = showClear ? "pr-16" : { sm: "pr-10", md: "pr-12", lg: "pr-14" }[size];
4398
+ const rightPaddingClasses = showClear ? "pr-16" : { sm: "pr-10", md: "pr-12", lg: "pr-14" }[size2];
4345
4399
  const disabledClasses = disabled ? [
4346
4400
  "bg-[var(--tiger-surface-muted,#f3f4f6)]",
4347
4401
  "cursor-not-allowed",
4348
4402
  "text-[var(--tiger-text-muted,#6b7280)]"
4349
4403
  ] : ["cursor-pointer"];
4350
- return classNames(...baseClasses, sizeClasses3[size], rightPaddingClasses, ...disabledClasses);
4404
+ return classNames(...baseClasses, sizeClasses3[size2], rightPaddingClasses, ...disabledClasses);
4351
4405
  }
4352
- function getDatePickerIconButtonClasses(size = "md") {
4406
+ function getDatePickerIconButtonClasses(size2 = "md") {
4353
4407
  const baseClasses = [
4354
4408
  "absolute",
4355
4409
  "right-0",
@@ -4367,12 +4421,9 @@ function getDatePickerIconButtonClasses(size = "md") {
4367
4421
  md: "px-3",
4368
4422
  lg: "px-4"
4369
4423
  };
4370
- return classNames(...baseClasses, sizeClasses3[size]);
4424
+ return classNames(...baseClasses, sizeClasses3[size2]);
4371
4425
  }
4372
4426
  var datePickerCalendarClasses = classNames(
4373
- "absolute",
4374
- "z-50",
4375
- "mt-1",
4376
4427
  "bg-[var(--tiger-surface,#ffffff)]",
4377
4428
  "border",
4378
4429
  "border-[var(--tiger-border,#d1d5db)]",
@@ -4384,10 +4435,6 @@ var datePickerCalendarClasses = classNames(
4384
4435
  );
4385
4436
  var datePickerMobileWheelClasses = classNames(
4386
4437
  "sm:hidden",
4387
- "fixed",
4388
- "inset-x-0",
4389
- "bottom-0",
4390
- "z-50",
4391
4438
  "rounded-t-[var(--tiger-radius-lg,0.75rem)]",
4392
4439
  "border",
4393
4440
  "border-[var(--tiger-border,#e5e7eb)]",
@@ -4445,10 +4492,7 @@ var datePickerDayNameClasses = classNames(
4445
4492
  function getDatePickerDayCellClasses(isCurrentMonth, isSelected, isToday2, isDisabled, isInRange = false, isRangeStart = false, isRangeEnd = false) {
4446
4493
  const base = "w-10 h-10 flex items-center justify-center rounded-[var(--tiger-radius-md,0.5rem)] text-sm transition-colors";
4447
4494
  if (isDisabled) {
4448
- return classNames(
4449
- base,
4450
- "cursor-not-allowed text-[var(--tiger-text-muted,#9ca3af)] opacity-50"
4451
- );
4495
+ return classNames(base, "cursor-not-allowed text-[var(--tiger-text-muted,#9ca3af)] opacity-50");
4452
4496
  }
4453
4497
  if (isSelected || isRangeStart || isRangeEnd) {
4454
4498
  return classNames(
@@ -4645,9 +4689,9 @@ function formatBytes(bytes, options = {}) {
4645
4689
  const units = ["B", "KB", "MB", "GB", "TB"];
4646
4690
  const k = 1024;
4647
4691
  const index = Math.min(units.length - 1, Math.floor(Math.log(safeBytes) / Math.log(k)));
4648
- const size = safeBytes / Math.pow(k, index);
4692
+ const size2 = safeBytes / Math.pow(k, index);
4649
4693
  const precision = Math.max(0, Math.floor(options.precision ?? 2));
4650
- const text = size.toFixed(precision);
4694
+ const text = size2.toFixed(precision);
4651
4695
  return `${options.trimTrailingZeros ? text.replace(/\.0+$/, "").replace(/(\.\d*?)0+$/, "$1") : text} ${units[index]}`;
4652
4696
  }
4653
4697
  function getFileExtensionName(name, options) {
@@ -4668,9 +4712,9 @@ var uploadStatusIconColorClasses = {
4668
4712
  success: "text-[var(--tiger-success,#16a34a)]",
4669
4713
  error: "text-[var(--tiger-error,#dc2626)]"
4670
4714
  };
4671
- function getUploadStatusIconClasses(status, size, options) {
4715
+ function getUploadStatusIconClasses(status, size2, options) {
4672
4716
  return classNames(
4673
- uploadStatusIconSizeClasses[size],
4717
+ uploadStatusIconSizeClasses[size2],
4674
4718
  uploadStatusIconColorClasses[status],
4675
4719
  options?.spinning ? "animate-spin" : ""
4676
4720
  );
@@ -5210,18 +5254,18 @@ var ALIGN_CLASS = {
5210
5254
  baseline: "items-baseline",
5211
5255
  stretch: "items-stretch"
5212
5256
  };
5213
- function getSpaceClasses({ direction = "horizontal", size = "md", align = "start", wrap = false } = {}, className) {
5257
+ function getSpaceClasses({ direction = "horizontal", size: size2 = "md", align = "start", wrap = false } = {}, className) {
5214
5258
  return classNames(
5215
5259
  "inline-flex",
5216
5260
  direction === "horizontal" ? "flex-row" : "flex-col",
5217
5261
  ALIGN_CLASS[align],
5218
- typeof size === "string" ? SIZE_CLASS[size] : void 0,
5262
+ typeof size2 === "string" ? SIZE_CLASS[size2] : void 0,
5219
5263
  wrap && "flex-wrap",
5220
5264
  className
5221
5265
  );
5222
5266
  }
5223
- function getSpaceStyle(size = "md") {
5224
- return typeof size === "number" ? { gap: `${size}px` } : void 0;
5267
+ function getSpaceStyle(size2 = "md") {
5268
+ return typeof size2 === "number" ? { gap: `${size2}px` } : void 0;
5225
5269
  }
5226
5270
 
5227
5271
  // src/utils/table-utils.ts
@@ -5325,8 +5369,8 @@ function resolveTableColumnWidth(column, frozenWidths = {}) {
5325
5369
  return frozen && frozen > 0 ? `${frozen}px` : void 0;
5326
5370
  }
5327
5371
  function getTableColgroup(options) {
5328
- const { columns, frozenWidths = {}, size, hasSelectionColumn, expand } = options;
5329
- const actionWidth = TABLE_ACTION_COLUMN_WIDTH[size];
5372
+ const { columns, frozenWidths = {}, size: size2, hasSelectionColumn, expand } = options;
5373
+ const actionWidth = TABLE_ACTION_COLUMN_WIDTH[size2];
5330
5374
  const entries = [];
5331
5375
  if (expand === "start") {
5332
5376
  entries.push({ key: "__expand__", width: actionWidth });
@@ -5525,7 +5569,7 @@ function getTableHeaderClasses(stickyHeader) {
5525
5569
  stickyHeader && "sticky top-0 z-10"
5526
5570
  );
5527
5571
  }
5528
- function getTableHeaderCellClasses(size, align, sortable, customClassName) {
5572
+ function getTableHeaderCellClasses(size2, align, sortable, customClassName) {
5529
5573
  const paddingClasses = {
5530
5574
  sm: "px-3 py-2",
5531
5575
  md: "px-4 py-3",
@@ -5538,7 +5582,7 @@ function getTableHeaderCellClasses(size, align, sortable, customClassName) {
5538
5582
  };
5539
5583
  return classNames(
5540
5584
  "font-medium text-[var(--tiger-text-muted,#6b7280)] text-xs uppercase tracking-wider",
5541
- paddingClasses[size],
5585
+ paddingClasses[size2],
5542
5586
  alignClasses[align],
5543
5587
  sortable && "cursor-pointer select-none hover:bg-[var(--tiger-table-bg,var(--tiger-component-table-bg,var(--tiger-surface,#ffffff)))]/60 transition-colors",
5544
5588
  customClassName
@@ -5554,7 +5598,7 @@ function getTableRowClasses(hoverable, striped, isEven, customClassName) {
5554
5598
  customClassName
5555
5599
  );
5556
5600
  }
5557
- function getTableCellClasses(size, align, customClassName) {
5601
+ function getTableCellClasses(size2, align, customClassName) {
5558
5602
  const paddingClasses = {
5559
5603
  sm: "px-3 py-2",
5560
5604
  md: "px-4 py-3",
@@ -5567,7 +5611,7 @@ function getTableCellClasses(size, align, customClassName) {
5567
5611
  };
5568
5612
  return classNames(
5569
5613
  "text-sm text-[var(--tiger-text,#111827)]",
5570
- paddingClasses[size],
5614
+ paddingClasses[size2],
5571
5615
  alignClasses[align],
5572
5616
  customClassName
5573
5617
  );
@@ -5582,13 +5626,13 @@ var tableEmptyStateClasses = "text-center py-12 text-[var(--tiger-text-muted,#6b
5582
5626
  var tableLoadingOverlayClasses = classNames(
5583
5627
  "absolute inset-0 bg-[var(--tiger-surface,#ffffff)]/80 flex items-center justify-center z-20"
5584
5628
  );
5585
- function getCheckboxCellClasses(size) {
5629
+ function getCheckboxCellClasses(size2) {
5586
5630
  const widthClasses = {
5587
5631
  sm: "w-8",
5588
5632
  md: "w-10",
5589
5633
  lg: "w-12"
5590
5634
  };
5591
- return classNames("text-center", widthClasses[size]);
5635
+ return classNames("text-center", widthClasses[size2]);
5592
5636
  }
5593
5637
  function defaultSortFn(a, b) {
5594
5638
  if (a === null || a === void 0) return 1;
@@ -5689,8 +5733,8 @@ function calculatePagination(total, current, pageSize) {
5689
5733
  hasPrev: current > 1
5690
5734
  };
5691
5735
  }
5692
- function getExpandIconCellClasses(size) {
5693
- return getCheckboxCellClasses(size);
5736
+ function getExpandIconCellClasses(size2) {
5737
+ return getCheckboxCellClasses(size2);
5694
5738
  }
5695
5739
  function getExpandIconClasses(expanded) {
5696
5740
  return classNames(
@@ -5705,13 +5749,13 @@ function getExpandedRowClasses() {
5705
5749
  "bg-[var(--tiger-surface-muted,#f9fafb)]/30"
5706
5750
  );
5707
5751
  }
5708
- function getExpandedRowContentClasses(size) {
5752
+ function getExpandedRowContentClasses(size2) {
5709
5753
  const paddingClasses = {
5710
5754
  sm: "px-3 py-2",
5711
5755
  md: "px-4 py-3",
5712
5756
  lg: "px-6 py-4"
5713
5757
  };
5714
- return classNames("text-sm text-[var(--tiger-text,#111827)]", paddingClasses[size]);
5758
+ return classNames("text-sm text-[var(--tiger-text,#111827)]", paddingClasses[size2]);
5715
5759
  }
5716
5760
  function getRowKey(record, rowKey, index) {
5717
5761
  if (typeof rowKey === "function") {
@@ -5869,10 +5913,10 @@ var cardFooterClasses = "border-t border-[var(--tiger-border,#e5e7eb)] pt-3 mt-3
5869
5913
  var cardCoverClasses = "w-full h-48 object-cover";
5870
5914
  var cardCoverWrapperClasses = "overflow-hidden";
5871
5915
  var cardActionsClasses = "flex gap-2 justify-end";
5872
- function resolveCardPadding(size, padding) {
5916
+ function resolveCardPadding(size2, padding) {
5873
5917
  if (padding === false) return void 0;
5874
5918
  if (typeof padding === "string") return padding;
5875
- return cardSizeClasses[size];
5919
+ return cardSizeClasses[size2];
5876
5920
  }
5877
5921
  function getCardClasses(variant, hoverable) {
5878
5922
  const classes = [cardBaseClasses, cardVariantClasses[variant]];
@@ -6065,8 +6109,8 @@ function getListClasses(bordered) {
6065
6109
  const classes = [listBaseClasses, listBorderClasses[bordered]];
6066
6110
  return classes.filter(Boolean).join(" ");
6067
6111
  }
6068
- function getListItemClasses(size, layout, divided, hoverable = false) {
6069
- const classes = [listItemBaseClasses, listItemSizeClasses[size], listItemLayoutClasses[layout]];
6112
+ function getListItemClasses(size2, layout, divided, hoverable = false) {
6113
+ const classes = [listItemBaseClasses, listItemSizeClasses[size2], listItemLayoutClasses[layout]];
6070
6114
  if (divided) {
6071
6115
  classes.push(listItemDividedClasses);
6072
6116
  }
@@ -6075,8 +6119,8 @@ function getListItemClasses(size, layout, divided, hoverable = false) {
6075
6119
  }
6076
6120
  return classes.join(" ");
6077
6121
  }
6078
- function getListHeaderFooterClasses(size, isFooter = false) {
6079
- const classes = [listHeaderFooterBaseClasses, listItemSizeClasses[size]];
6122
+ function getListHeaderFooterClasses(size2, isFooter = false) {
6123
+ const classes = [listHeaderFooterBaseClasses, listItemSizeClasses[size2]];
6080
6124
  if (isFooter) {
6081
6125
  classes.push(listFooterClasses);
6082
6126
  }
@@ -6125,8 +6169,8 @@ var descriptionsVerticalWrapperClasses = "";
6125
6169
  var descriptionsVerticalItemClasses = "border-b border-[var(--tiger-border,#e5e7eb)] last:border-b-0";
6126
6170
  var descriptionsVerticalLabelClasses = "font-medium mb-1 text-[var(--tiger-text-muted,#374151)]";
6127
6171
  var descriptionsVerticalContentClasses = "text-[var(--tiger-text,#111827)]";
6128
- function getDescriptionsClasses(size) {
6129
- return `${descriptionsBaseClasses} ${descriptionsSizeClasses[size]}`;
6172
+ function getDescriptionsClasses(size2) {
6173
+ return `${descriptionsBaseClasses} ${descriptionsSizeClasses[size2]}`;
6130
6174
  }
6131
6175
  function getDescriptionsTableClasses(bordered) {
6132
6176
  const classes = [descriptionsTableClasses];
@@ -6135,28 +6179,28 @@ function getDescriptionsTableClasses(bordered) {
6135
6179
  }
6136
6180
  return classes.join(" ");
6137
6181
  }
6138
- function getDescriptionsLabelClasses(bordered, size, layout) {
6182
+ function getDescriptionsLabelClasses(bordered, size2, layout) {
6139
6183
  if (layout === "vertical") {
6140
- return `${descriptionsVerticalLabelClasses} ${descriptionsCellSizeClasses[size]}`;
6184
+ return `${descriptionsVerticalLabelClasses} ${descriptionsCellSizeClasses[size2]}`;
6141
6185
  }
6142
- const classes = [descriptionsLabelClasses, descriptionsCellSizeClasses[size]];
6186
+ const classes = [descriptionsLabelClasses, descriptionsCellSizeClasses[size2]];
6143
6187
  if (bordered) {
6144
6188
  classes.push(descriptionsLabelBorderedClasses);
6145
6189
  }
6146
6190
  return classes.join(" ");
6147
6191
  }
6148
- function getDescriptionsContentClasses(bordered, size, layout) {
6192
+ function getDescriptionsContentClasses(bordered, size2, layout) {
6149
6193
  if (layout === "vertical") {
6150
- return `${descriptionsVerticalContentClasses} ${descriptionsCellSizeClasses[size]}`;
6194
+ return `${descriptionsVerticalContentClasses} ${descriptionsCellSizeClasses[size2]}`;
6151
6195
  }
6152
- const classes = [descriptionsContentClasses, descriptionsCellSizeClasses[size]];
6196
+ const classes = [descriptionsContentClasses, descriptionsCellSizeClasses[size2]];
6153
6197
  if (bordered) {
6154
6198
  classes.push(descriptionsContentBorderedClasses);
6155
6199
  }
6156
6200
  return classes.join(" ");
6157
6201
  }
6158
- function getDescriptionsVerticalItemClasses(size) {
6159
- return `${descriptionsCellSizeClasses[size]} ${descriptionsVerticalItemClasses}`;
6202
+ function getDescriptionsVerticalItemClasses(size2) {
6203
+ return `${descriptionsCellSizeClasses[size2]} ${descriptionsVerticalItemClasses}`;
6160
6204
  }
6161
6205
  function groupItemsIntoRows(items, column) {
6162
6206
  const rows = [];
@@ -6690,8 +6734,8 @@ function calculateCirclePath(radius, percentage) {
6690
6734
  strokeDashoffset: offset2
6691
6735
  };
6692
6736
  }
6693
- function getCircleSize(size, strokeWidth) {
6694
- const width = progressCircleSizeClasses[size];
6737
+ function getCircleSize(size2, strokeWidth) {
6738
+ const width = progressCircleSizeClasses[size2];
6695
6739
  const height = width;
6696
6740
  const radius = (width - strokeWidth) / 2;
6697
6741
  const cx = width / 2;
@@ -6891,9 +6935,9 @@ var menuCollapsedIconClasses = "flex-shrink-0";
6891
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";
6892
6936
  var submenuExpandIconClasses = "ml-2 transition-transform duration-200";
6893
6937
  var submenuExpandIconExpandedClasses = "transform rotate-180";
6894
- 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";
6895
- 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";
6896
- 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";
6897
6941
  var submenuContentVerticalClasses = "overflow-hidden pl-2";
6898
6942
  var submenuContentInlineClasses = "overflow-hidden";
6899
6943
  var submenuHeightTransitionClasses = "overflow-hidden transition-[height,opacity] duration-200 ease-in-out";
@@ -6903,9 +6947,6 @@ var menuSearchInputClasses = "w-full rounded border border-[var(--tiger-border,#
6903
6947
  var menuSearchEmptyClasses = "px-4 py-6 text-sm text-center text-[var(--tiger-text-muted,#6b7280)]";
6904
6948
  var menuCollapsedClasses = "min-w-[64px]";
6905
6949
  var menuCollapsedItemClasses = "justify-center px-2";
6906
- function getSubmenuPopupZIndex(level) {
6907
- return { zIndex: 50 + level * 10 };
6908
- }
6909
6950
  function themeClass(theme, light, dark) {
6910
6951
  return theme === "dark" ? dark : light;
6911
6952
  }
@@ -7233,22 +7274,22 @@ function getTabIndicatorStyle(activeIndex, tabCount, position) {
7233
7274
  }
7234
7275
  const safeTabCount = Math.max(1, tabCount);
7235
7276
  const safeActiveIndex = Math.min(Math.max(0, activeIndex), safeTabCount - 1);
7236
- const size = `calc(100% / ${safeTabCount})`;
7277
+ const size2 = `calc(100% / ${safeTabCount})`;
7237
7278
  if (position === "left" || position === "right") {
7238
7279
  return {
7239
- height: size,
7280
+ height: size2,
7240
7281
  transform: `translateY(${safeActiveIndex * 100}%)`,
7241
7282
  opacity: "1"
7242
7283
  };
7243
7284
  }
7244
7285
  return {
7245
- width: size,
7286
+ width: size2,
7246
7287
  transform: `translateX(${safeActiveIndex * 100}%)`,
7247
7288
  opacity: "1"
7248
7289
  };
7249
7290
  }
7250
- function getTabItemClasses(active, disabled, type, size) {
7251
- let cls = `${tabItemBaseClasses} ${tabItemSizeClasses[size]}`;
7291
+ function getTabItemClasses(active, disabled, type, size2) {
7292
+ let cls = `${tabItemBaseClasses} ${tabItemSizeClasses[size2]}`;
7252
7293
  if (disabled) return `${cls} ${tabItemDisabledClasses}`;
7253
7294
  switch (type) {
7254
7295
  case "line":
@@ -7372,9 +7413,9 @@ function getStepItemClasses(direction, isLast) {
7372
7413
  }
7373
7414
  return `${baseClasses} flex flex-col flex-1 items-center`;
7374
7415
  }
7375
- function getStepIconClasses(status, size, simple, isCustomIcon) {
7416
+ function getStepIconClasses(status, size2, simple, isCustomIcon) {
7376
7417
  const baseClasses = "tiger-step-icon relative z-10 flex items-center justify-center rounded-full border-2";
7377
- 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";
7378
7419
  const iconClasses = isCustomIcon ? "" : "font-medium";
7379
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";
7380
7421
  const statusClasses = {
@@ -7385,14 +7426,14 @@ function getStepIconClasses(status, size, simple, isCustomIcon) {
7385
7426
  };
7386
7427
  return `${baseClasses} ${sizeClasses3} ${iconClasses} ${statusClasses[status]}`;
7387
7428
  }
7388
- function getStepTailClasses(direction, status, isLast, size, simple) {
7429
+ function getStepTailClasses(direction, status, isLast, size2, simple) {
7389
7430
  if (isLast) return "hidden";
7390
7431
  const colorClasses = status === "finish" ? "bg-[var(--tiger-primary,#2563eb)]" : "bg-[var(--tiger-border,#e5e7eb)]";
7391
7432
  if (direction === "vertical") {
7392
- 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";
7393
7434
  return `tiger-step-tail ${verticalClasses} ${colorClasses}`;
7394
7435
  }
7395
- 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";
7396
7437
  return `tiger-step-tail ${horizontalClasses} ${colorClasses}`;
7397
7438
  }
7398
7439
  function getStepContentClasses(direction) {
@@ -7402,9 +7443,9 @@ function getStepContentClasses(direction) {
7402
7443
  }
7403
7444
  return `${baseClasses} mt-2 text-center`;
7404
7445
  }
7405
- function getStepTitleClasses(status, size, clickable) {
7446
+ function getStepTitleClasses(status, size2, clickable) {
7406
7447
  const baseClasses = "tiger-step-title font-medium";
7407
- const sizeClasses3 = size === "small" ? "text-sm" : "text-base";
7448
+ const sizeClasses3 = size2 === "small" ? "text-sm" : "text-base";
7408
7449
  const statusClasses = {
7409
7450
  wait: "text-[var(--tiger-text-muted,#6b7280)] transition-colors duration-300 group-hover:text-[var(--tiger-text,#111827)]",
7410
7451
  process: "text-[var(--tiger-text,#111827)] font-semibold transition-colors duration-300",
@@ -7414,9 +7455,9 @@ function getStepTitleClasses(status, size, clickable) {
7414
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)]" : "";
7415
7456
  return `${baseClasses} ${sizeClasses3} ${statusClasses[status]} ${cursorClasses}`;
7416
7457
  }
7417
- function getStepDescriptionClasses(status, size) {
7458
+ function getStepDescriptionClasses(status, size2) {
7418
7459
  const baseClasses = "tiger-step-description mt-1";
7419
- const sizeClasses3 = size === "small" ? "text-xs" : "text-sm";
7460
+ const sizeClasses3 = size2 === "small" ? "text-xs" : "text-sm";
7420
7461
  const statusClass = status === "error" ? "text-[var(--tiger-error,#ef4444)]" : "text-[var(--tiger-text-muted,#6b7280)]";
7421
7462
  return `${baseClasses} ${sizeClasses3} ${statusClass}`;
7422
7463
  }
@@ -7557,7 +7598,7 @@ function getPaginationContainerClasses(align = "center", className) {
7557
7598
  };
7558
7599
  return classNames("flex items-center gap-1", alignClasses[align], className);
7559
7600
  }
7560
- function getPaginationButtonBaseClasses(size = "medium", active = false) {
7601
+ function getPaginationButtonBaseClasses(size2 = "medium", active = false) {
7561
7602
  const sizeClasses3 = {
7562
7603
  small: "min-w-7 h-7 text-sm px-2",
7563
7604
  medium: "min-w-8 h-8 text-base px-2.5",
@@ -7576,7 +7617,7 @@ function getPaginationButtonBaseClasses(size = "medium", active = false) {
7576
7617
  "focus:outline-none focus:ring-2 focus:ring-[var(--tiger-primary,#2563eb)]/40",
7577
7618
  "disabled:cursor-not-allowed disabled:opacity-50",
7578
7619
  colorClasses,
7579
- sizeClasses3[size]
7620
+ sizeClasses3[size2]
7580
7621
  );
7581
7622
  }
7582
7623
  function getPaginationButtonActiveClasses() {
@@ -7587,7 +7628,7 @@ function getPaginationButtonActiveClasses() {
7587
7628
  "hover:border-[var(--tiger-primary-hover,#1d4ed8)] hover:bg-[var(--tiger-primary-hover,#1d4ed8)] hover:text-white"
7588
7629
  );
7589
7630
  }
7590
- function getPaginationEllipsisClasses(size = "medium") {
7631
+ function getPaginationEllipsisClasses(size2 = "medium") {
7591
7632
  const sizeClasses3 = {
7592
7633
  small: "min-w-7 h-7 text-sm",
7593
7634
  medium: "min-w-8 h-8 text-base",
@@ -7596,10 +7637,10 @@ function getPaginationEllipsisClasses(size = "medium") {
7596
7637
  return classNames(
7597
7638
  "inline-flex items-center justify-center",
7598
7639
  "text-[var(--tiger-text-muted,#6b7280)] cursor-default",
7599
- sizeClasses3[size]
7640
+ sizeClasses3[size2]
7600
7641
  );
7601
7642
  }
7602
- function getQuickJumperInputClasses(size = "medium") {
7643
+ function getQuickJumperInputClasses(size2 = "medium") {
7603
7644
  const sizeClasses3 = {
7604
7645
  small: "w-12 h-7 text-sm",
7605
7646
  medium: "w-14 h-8 text-base",
@@ -7614,10 +7655,10 @@ function getQuickJumperInputClasses(size = "medium") {
7614
7655
  "hover:border-[var(--tiger-primary,#2563eb)]",
7615
7656
  "focus:outline-none focus:ring-2 focus:ring-[var(--tiger-primary,#2563eb)] focus:ring-opacity-50",
7616
7657
  "disabled:cursor-not-allowed disabled:opacity-50",
7617
- sizeClasses3[size]
7658
+ sizeClasses3[size2]
7618
7659
  );
7619
7660
  }
7620
- function getPageSizeSelectorClasses(size = "medium") {
7661
+ function getPageSizeSelectorClasses(size2 = "medium") {
7621
7662
  const sizeClasses3 = {
7622
7663
  small: "h-7 text-sm",
7623
7664
  medium: "h-8 text-base",
@@ -7632,19 +7673,19 @@ function getPageSizeSelectorClasses(size = "medium") {
7632
7673
  "hover:border-[var(--tiger-primary,#2563eb)]",
7633
7674
  "focus:outline-none focus:ring-2 focus:ring-[var(--tiger-primary,#2563eb)] focus:ring-opacity-50",
7634
7675
  "disabled:cursor-not-allowed disabled:opacity-50",
7635
- sizeClasses3[size]
7676
+ sizeClasses3[size2]
7636
7677
  );
7637
7678
  }
7638
- function getSizeTextClasses(size = "medium") {
7679
+ function getSizeTextClasses(size2 = "medium") {
7639
7680
  const sizeClasses3 = {
7640
7681
  small: "text-sm",
7641
7682
  medium: "text-base",
7642
7683
  large: "text-lg"
7643
7684
  };
7644
- return sizeClasses3[size];
7685
+ return sizeClasses3[size2];
7645
7686
  }
7646
- function getTotalTextClasses(size = "medium") {
7647
- 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));
7648
7689
  }
7649
7690
  function getBuiltInPaginationContainerClasses() {
7650
7691
  return classNames("px-4 py-3", "border-t border-[var(--tiger-border,#e5e7eb)]");
@@ -7750,7 +7791,7 @@ function getDrawerMaskClasses(visible) {
7750
7791
  function getDrawerContainerClasses() {
7751
7792
  return "fixed inset-0 overflow-hidden";
7752
7793
  }
7753
- function getDrawerPanelClasses(placement, visible, size, fullscreenOnMobile = true) {
7794
+ function getDrawerPanelClasses(placement, visible, size2, fullscreenOnMobile = true) {
7754
7795
  const baseClasses = "absolute bg-[var(--tiger-surface,#ffffff)] shadow-xl transition-transform duration-300 ease-in-out pointer-events-auto";
7755
7796
  const mobileFullscreenClasses = "max-md:inset-0 max-md:!w-screen max-md:!h-[100dvh]";
7756
7797
  const sizeMap2 = {
@@ -7763,22 +7804,22 @@ function getDrawerPanelClasses(placement, visible, size, fullscreenOnMobile = tr
7763
7804
  const placementClasses = {
7764
7805
  left: classNames(
7765
7806
  "top-0 bottom-0 left-0",
7766
- sizeMap2[size].width,
7807
+ sizeMap2[size2].width,
7767
7808
  visible ? "translate-x-0" : "-translate-x-full"
7768
7809
  ),
7769
7810
  right: classNames(
7770
7811
  "top-0 bottom-0 right-0",
7771
- sizeMap2[size].width,
7812
+ sizeMap2[size2].width,
7772
7813
  visible ? "translate-x-0" : "translate-x-full"
7773
7814
  ),
7774
7815
  top: classNames(
7775
7816
  "top-0 left-0 right-0",
7776
- sizeMap2[size].height,
7817
+ sizeMap2[size2].height,
7777
7818
  visible ? "translate-y-0" : "-translate-y-full"
7778
7819
  ),
7779
7820
  bottom: classNames(
7780
7821
  "bottom-0 left-0 right-0",
7781
- sizeMap2[size].height,
7822
+ sizeMap2[size2].height,
7782
7823
  visible ? "translate-y-0" : "translate-y-full"
7783
7824
  )
7784
7825
  };
@@ -7846,10 +7887,10 @@ var modalTitleClasses = "text-lg font-semibold text-[var(--tiger-text,#111827)]"
7846
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";
7847
7888
  var modalBodyClasses = "px-6 py-4 text-[var(--tiger-text,#374151)]";
7848
7889
  var modalFooterClasses = "flex items-center justify-end gap-3 px-6 py-4 border-t border-[var(--tiger-border,#e5e7eb)]";
7849
- function getModalContentClasses(size, className, mobileSheet = false) {
7890
+ function getModalContentClasses(size2, className, mobileSheet = false) {
7850
7891
  return classNames(
7851
7892
  modalContentWrapperClasses,
7852
- modalSizeClasses[size],
7893
+ modalSizeClasses[size2],
7853
7894
  mobileSheet && modalMobileSheetClasses,
7854
7895
  className
7855
7896
  );
@@ -8112,8 +8153,8 @@ var loadingOverlaySpinnerBaseClasses = "animate-spin h-8 w-8 text-[var(--tiger-p
8112
8153
  function getLoadingOverlaySpinnerClasses(customClassName) {
8113
8154
  return classNames(loadingOverlaySpinnerBaseClasses, customClassName);
8114
8155
  }
8115
- function getLoadingClasses(variant, size, color, customColor) {
8116
- const sizeClass = loadingSizeClasses[size];
8156
+ function getLoadingClasses(variant, size2, color, customColor) {
8157
+ const sizeClass = loadingSizeClasses[size2];
8117
8158
  const colorClass = customColor ? "" : loadingColorClasses[color];
8118
8159
  const baseClasses = classNames(sizeClass, colorClass);
8119
8160
  switch (variant) {
@@ -8222,27 +8263,27 @@ var loadingDotsWrapperBaseClasses = "flex items-center";
8222
8263
  var loadingBarsWrapperBaseClasses = "flex items-end";
8223
8264
  var loadingDotBaseClasses = "rounded-full bg-current animate-bounce-dot";
8224
8265
  var loadingBarBaseClasses = "rounded-sm bg-current animate-scale-bar";
8225
- function getLoadingTextClasses(size, color, customColor) {
8266
+ function getLoadingTextClasses(size2, color, customColor) {
8226
8267
  return classNames(
8227
- loadingTextSizeClasses[size],
8268
+ loadingTextSizeClasses[size2],
8228
8269
  customColor ? "" : loadingColorClasses[color],
8229
8270
  "font-medium"
8230
8271
  );
8231
8272
  }
8232
- function getLoadingDotsWrapperClasses(size) {
8233
- const config = dotsVariantConfig[size];
8273
+ function getLoadingDotsWrapperClasses(size2) {
8274
+ const config = dotsVariantConfig[size2];
8234
8275
  return classNames(loadingDotsWrapperBaseClasses, config.gap);
8235
8276
  }
8236
- function getLoadingDotClasses(size, index, colorClass) {
8237
- const config = dotsVariantConfig[size];
8277
+ function getLoadingDotClasses(size2, index, colorClass) {
8278
+ const config = dotsVariantConfig[size2];
8238
8279
  return classNames(config.dotSize, loadingDotBaseClasses, colorClass, animationDelayClasses[index]);
8239
8280
  }
8240
- function getLoadingBarsWrapperClasses(size) {
8241
- const config = barsVariantConfig[size];
8281
+ function getLoadingBarsWrapperClasses(size2) {
8282
+ const config = barsVariantConfig[size2];
8242
8283
  return classNames(loadingBarsWrapperBaseClasses, config.gap);
8243
8284
  }
8244
- function getLoadingBarClasses(size, index, colorClass) {
8245
- const config = barsVariantConfig[size];
8285
+ function getLoadingBarClasses(size2, index, colorClass) {
8286
+ const config = barsVariantConfig[size2];
8246
8287
  return classNames(
8247
8288
  config.barWidth,
8248
8289
  config.barHeight,
@@ -8887,7 +8928,7 @@ function getAlertTypeClasses(type, colors = defaultAlertThemeColors) {
8887
8928
  // src/utils/text-utils.ts
8888
8929
  function getTextClasses(props) {
8889
8930
  const {
8890
- size = "base",
8931
+ size: size2 = "base",
8891
8932
  weight = "normal",
8892
8933
  align,
8893
8934
  color = "default",
@@ -8897,7 +8938,7 @@ function getTextClasses(props) {
8897
8938
  lineThrough
8898
8939
  } = props;
8899
8940
  return classNames(
8900
- textSizeClasses[size],
8941
+ textSizeClasses[size2],
8901
8942
  textWeightClasses[weight],
8902
8943
  align && textAlignClasses[align],
8903
8944
  textColorClasses[color],
@@ -10130,16 +10171,16 @@ function getBarValueLabelY(barY, barHeight, position, offset2 = 8) {
10130
10171
  }
10131
10172
  return barY - offset2;
10132
10173
  }
10133
- function getScatterPointPath(style, size) {
10174
+ function getScatterPointPath(style, size2) {
10134
10175
  switch (style) {
10135
10176
  case "square":
10136
- 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`;
10137
10178
  case "triangle": {
10138
- const h = size * 1.15;
10139
- 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`;
10140
10181
  }
10141
10182
  case "diamond":
10142
- 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`;
10143
10184
  }
10144
10185
  }
10145
10186
 
@@ -11668,6 +11709,7 @@ import {
11668
11709
  computePosition,
11669
11710
  flip,
11670
11711
  shift,
11712
+ size,
11671
11713
  offset,
11672
11714
  arrow,
11673
11715
  autoUpdate
@@ -11680,6 +11722,7 @@ function createFloatingMiddleware({
11680
11722
  flip: enableFlip,
11681
11723
  shift: enableShift,
11682
11724
  shiftPadding,
11725
+ size: enableSize,
11683
11726
  arrowElement,
11684
11727
  arrowPadding
11685
11728
  }) {
@@ -11688,7 +11731,24 @@ function createFloatingMiddleware({
11688
11731
  middleware.push(flip({ padding: shiftPadding }));
11689
11732
  }
11690
11733
  if (enableShift) {
11691
- 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
+ );
11692
11752
  }
11693
11753
  if (arrowElement) {
11694
11754
  middleware.push(arrow({ element: arrowElement, padding: arrowPadding }));
@@ -11700,11 +11760,17 @@ function getFloatingMiddlewareCacheKey({
11700
11760
  flip: enableFlip,
11701
11761
  shift: enableShift,
11702
11762
  shiftPadding,
11763
+ size: enableSize,
11703
11764
  arrowPadding
11704
11765
  }) {
11705
- return [offsetDistance, enableFlip ? 1 : 0, enableShift ? 1 : 0, shiftPadding, arrowPadding].join(
11706
- "|"
11707
- );
11766
+ return [
11767
+ offsetDistance,
11768
+ enableFlip ? 1 : 0,
11769
+ enableShift ? 1 : 0,
11770
+ enableSize ? 1 : 0,
11771
+ shiftPadding,
11772
+ arrowPadding
11773
+ ].join("|");
11708
11774
  }
11709
11775
  function getFloatingMiddleware(options = {}) {
11710
11776
  const normalizedOptions = {
@@ -11712,6 +11778,7 @@ function getFloatingMiddleware(options = {}) {
11712
11778
  flip: options.flip ?? true,
11713
11779
  shift: options.shift ?? true,
11714
11780
  shiftPadding: options.shiftPadding ?? 8,
11781
+ size: options.size ?? true,
11715
11782
  arrowElement: options.arrowElement ?? null,
11716
11783
  arrowPadding: options.arrowPadding ?? 8
11717
11784
  };
@@ -11742,6 +11809,7 @@ async function computeFloatingPosition(reference, floating, options = {}) {
11742
11809
  flip: enableFlip = true,
11743
11810
  shift: enableShift = true,
11744
11811
  shiftPadding = 8,
11812
+ size: enableSize = true,
11745
11813
  arrowElement = null,
11746
11814
  arrowPadding = 8
11747
11815
  } = options;
@@ -11750,6 +11818,7 @@ async function computeFloatingPosition(reference, floating, options = {}) {
11750
11818
  flip: enableFlip,
11751
11819
  shift: enableShift,
11752
11820
  shiftPadding,
11821
+ size: enableSize,
11753
11822
  arrowElement,
11754
11823
  arrowPadding
11755
11824
  });
@@ -11818,6 +11887,42 @@ function applyFloatingStyles(element, result) {
11818
11887
  element.style.top = `${result.y}px`;
11819
11888
  }
11820
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
+
11821
11926
  // src/utils/dev-warn.ts
11822
11927
  function isDevEnvironment() {
11823
11928
  const proc = globalThis.process;
@@ -12037,15 +12142,15 @@ var valueSize = {
12037
12142
  md: "text-2xl font-semibold tabular-nums",
12038
12143
  lg: "text-4xl font-bold tabular-nums"
12039
12144
  };
12040
- function getCountdownTitleClasses(size) {
12145
+ function getCountdownTitleClasses(size2) {
12041
12146
  return classNames(
12042
- titleSize[size],
12147
+ titleSize[size2],
12043
12148
  "mb-1 text-[var(--tiger-countdown-title,var(--tiger-text-muted,#6b7280))]"
12044
12149
  );
12045
12150
  }
12046
- function getCountdownValueClasses(size) {
12151
+ function getCountdownValueClasses(size2) {
12047
12152
  return classNames(
12048
- valueSize[size],
12153
+ valueSize[size2],
12049
12154
  "text-[var(--tiger-countdown-value,var(--tiger-text,#111827))]"
12050
12155
  );
12051
12156
  }
@@ -12527,7 +12632,7 @@ var CASCADER_TRIGGER_BASE_CLASSES = [
12527
12632
  "active:scale-[0.99]"
12528
12633
  ];
12529
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))]";
12530
- 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)]";
12531
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";
12532
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))]";
12533
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";
@@ -12540,18 +12645,18 @@ var CASCADER_SIZE_CLASSES = {
12540
12645
  md: "text-base py-2",
12541
12646
  lg: "text-lg py-2.5"
12542
12647
  };
12543
- function getCascaderTriggerClasses(size, disabled, isOpen) {
12648
+ function getCascaderTriggerClasses(size2, disabled, isOpen) {
12544
12649
  return classNames(
12545
12650
  ...CASCADER_TRIGGER_BASE_CLASSES,
12546
- CASCADER_SIZE_CLASSES[size],
12651
+ CASCADER_SIZE_CLASSES[size2],
12547
12652
  disabled && CASCADER_TRIGGER_DISABLED_CLASSES,
12548
12653
  isOpen && "ring-2 ring-[var(--tiger-cascader-ring,var(--tiger-primary,#2563eb))] border-[var(--tiger-cascader-trigger-border-focus,var(--tiger-primary,#2563eb))]"
12549
12654
  );
12550
12655
  }
12551
- function getCascaderOptionClasses(isSelected, isDisabled, size) {
12656
+ function getCascaderOptionClasses(isSelected, isDisabled, size2) {
12552
12657
  return classNames(
12553
12658
  cascaderOptionBaseClasses,
12554
- CASCADER_SIZE_CLASSES[size],
12659
+ CASCADER_SIZE_CLASSES[size2],
12555
12660
  isSelected && cascaderOptionSelectedClasses,
12556
12661
  isDisabled && cascaderOptionDisabledClasses
12557
12662
  );
@@ -12643,7 +12748,7 @@ function getCascaderColumns(options, activePath) {
12643
12748
 
12644
12749
  // src/utils/auto-complete-utils.ts
12645
12750
  var autoCompleteBaseClasses = "relative inline-block w-full";
12646
- 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";
12647
12752
  var autoCompleteOptionBaseClasses = "w-full px-3 py-2 text-left cursor-pointer transition-colors";
12648
12753
  var autoCompleteEmptyStateClasses = "px-3 py-4 text-center text-[var(--tiger-autocomplete-empty-text,var(--tiger-text-muted,#9ca3af))]";
12649
12754
  var sizeClasses = {
@@ -12656,15 +12761,15 @@ var inputPaddingClasses = {
12656
12761
  md: "pl-3 pr-10",
12657
12762
  lg: "pl-4 pr-12"
12658
12763
  };
12659
- function getAutoCompleteInputClasses(size = "md", disabled = false, isOpen = false) {
12764
+ function getAutoCompleteInputClasses(size2 = "md", disabled = false, isOpen = false) {
12660
12765
  const base = "w-full rounded-[var(--tiger-radius-md,0.5rem)] border outline-none transition-all duration-200";
12661
- const sizeClass = classNames(sizeClasses[size], inputPaddingClasses[size]);
12766
+ const sizeClass = classNames(sizeClasses[size2], inputPaddingClasses[size2]);
12662
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))]";
12663
12768
  return classNames(base, sizeClass, stateClass);
12664
12769
  }
12665
- function getAutoCompleteOptionClasses(isSelected = false, isDisabled = false, size = "md") {
12770
+ function getAutoCompleteOptionClasses(isSelected = false, isDisabled = false, size2 = "md") {
12666
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))]";
12667
- return classNames(autoCompleteOptionBaseClasses, sizeClasses[size], stateClass);
12772
+ return classNames(autoCompleteOptionBaseClasses, sizeClasses[size2], stateClass);
12668
12773
  }
12669
12774
  function defaultAutoCompleteFilter(inputValue, option) {
12670
12775
  return option.label.toLowerCase().includes(inputValue.toLowerCase());
@@ -12920,10 +13025,10 @@ var controlSizeClasses = {
12920
13025
  md: "h-9 px-2.5 text-sm",
12921
13026
  lg: "h-10 px-3 text-base"
12922
13027
  };
12923
- function getCronEditorControlClasses(size, invalid = false) {
13028
+ function getCronEditorControlClasses(size2, invalid = false) {
12924
13029
  return classNames(
12925
13030
  "min-w-0 rounded-[var(--tiger-radius-sm,0.375rem)] border font-mono outline-none transition-colors",
12926
- controlSizeClasses[size],
13031
+ controlSizeClasses[size2],
12927
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)]",
12928
13033
  "bg-[var(--tiger-croneditor-control-bg,var(--tiger-surface,#ffffff))]",
12929
13034
  "disabled:cursor-not-allowed disabled:opacity-50"
@@ -13277,14 +13382,14 @@ var checkboxSizeClasses = {
13277
13382
  md: "w-4 h-4",
13278
13383
  lg: "w-5 h-5"
13279
13384
  };
13280
- function getTransferItemClasses(isSelected, isDisabled, size = "md") {
13385
+ function getTransferItemClasses(isSelected, isDisabled, size2 = "md") {
13281
13386
  const base = "flex items-center gap-2 cursor-pointer transition-colors";
13282
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))]";
13283
- return classNames(base, sizeClasses2[size], itemPaddingClasses[size], stateClass);
13388
+ return classNames(base, sizeClasses2[size2], itemPaddingClasses[size2], stateClass);
13284
13389
  }
13285
- function getTransferCheckboxClasses(size = "md") {
13390
+ function getTransferCheckboxClasses(size2 = "md") {
13286
13391
  return classNames(
13287
- checkboxSizeClasses[size],
13392
+ checkboxSizeClasses[size2],
13288
13393
  "rounded border border-[var(--tiger-transfer-checkbox-border,var(--tiger-border,#d1d5db))] accent-[var(--tiger-primary,#2563eb)]"
13289
13394
  );
13290
13395
  }
@@ -13335,7 +13440,7 @@ function filterTransferItems(items, query, filterFn) {
13335
13440
 
13336
13441
  // src/utils/tree-select-utils.ts
13337
13442
  var treeSelectBaseClasses = "relative inline-block w-full";
13338
- 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";
13339
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))]";
13340
13445
  var treeSelectEmptyClasses = "px-3 py-4 text-center text-[var(--tiger-treeselect-empty-text,var(--tiger-text-muted,#9ca3af))]";
13341
13446
  var treeSelectNodeBaseClasses = "flex items-center px-2 py-1.5 cursor-pointer rounded transition-colors";
@@ -13349,14 +13454,14 @@ var nodeSizeClasses = {
13349
13454
  md: "text-base py-1.5",
13350
13455
  lg: "text-lg py-2"
13351
13456
  };
13352
- function getTreeSelectTriggerClasses(size = "md", disabled = false, isOpen = false) {
13457
+ function getTreeSelectTriggerClasses(size2 = "md", disabled = false, isOpen = false) {
13353
13458
  const base = "w-full rounded-[var(--tiger-radius-md,0.5rem)] border outline-none transition-all duration-200 text-left flex items-center";
13354
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";
13355
- return classNames(base, triggerSizeClasses[size], stateClass);
13460
+ return classNames(base, triggerSizeClasses[size2], stateClass);
13356
13461
  }
13357
- function getTreeSelectNodeClasses(isSelected = false, isDisabled = false, size = "md") {
13462
+ function getTreeSelectNodeClasses(isSelected = false, isDisabled = false, size2 = "md") {
13358
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))]";
13359
- return classNames(treeSelectNodeBaseClasses, nodeSizeClasses[size], stateClass);
13464
+ return classNames(treeSelectNodeBaseClasses, nodeSizeClasses[size2], stateClass);
13360
13465
  }
13361
13466
  function findTreeSelectNode(data, key) {
13362
13467
  for (const node of data) {
@@ -13428,10 +13533,10 @@ var sizeText = {
13428
13533
  md: "text-lg leading-5",
13429
13534
  lg: "text-2xl leading-7"
13430
13535
  };
13431
- function getRateStarClasses(size, isCharacter, disabled) {
13536
+ function getRateStarClasses(size2, isCharacter, disabled) {
13432
13537
  return classNames(
13433
13538
  "relative inline-flex items-center justify-center transition-colors select-none",
13434
- isCharacter ? sizeText[size] : sizePx[size],
13539
+ isCharacter ? sizeText[size2] : sizePx[size2],
13435
13540
  disabled ? "cursor-default" : "cursor-pointer"
13436
13541
  );
13437
13542
  }
@@ -13442,7 +13547,7 @@ var starPathD = "M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.
13442
13547
  var starViewBox = "0 0 20 20";
13443
13548
 
13444
13549
  // src/utils/segmented-utils.ts
13445
- function getSegmentedContainerClasses(size, block) {
13550
+ function getSegmentedContainerClasses(size2, block) {
13446
13551
  const sizeClasses3 = {
13447
13552
  sm: "p-0.5 text-xs",
13448
13553
  md: "p-1 text-sm",
@@ -13451,7 +13556,7 @@ function getSegmentedContainerClasses(size, block) {
13451
13556
  return classNames(
13452
13557
  "relative inline-grid overflow-hidden rounded-[var(--tiger-radius-md,0.5rem)]",
13453
13558
  "bg-[var(--tiger-segmented-bg,var(--tiger-fill,#f3f4f6))]",
13454
- sizeClasses3[size],
13559
+ sizeClasses3[size2],
13455
13560
  block ? "w-full" : ""
13456
13561
  );
13457
13562
  }
@@ -13460,7 +13565,7 @@ function getSegmentedContainerStyle(optionCount) {
13460
13565
  gridTemplateColumns: `repeat(${Math.max(1, optionCount)}, minmax(0, 1fr))`
13461
13566
  };
13462
13567
  }
13463
- function getSegmentedIndicatorClasses(size) {
13568
+ function getSegmentedIndicatorClasses(size2) {
13464
13569
  const insetClasses = {
13465
13570
  sm: "top-0.5 bottom-0.5",
13466
13571
  md: "top-1 bottom-1",
@@ -13470,10 +13575,10 @@ function getSegmentedIndicatorClasses(size) {
13470
13575
  "pointer-events-none absolute z-0 rounded-[var(--tiger-radius-md,0.5rem)]",
13471
13576
  "bg-[var(--tiger-segmented-active-bg,var(--tiger-surface,#ffffff))] shadow-sm",
13472
13577
  "transition-transform duration-200 ease-out will-change-transform",
13473
- insetClasses[size]
13578
+ insetClasses[size2]
13474
13579
  );
13475
13580
  }
13476
- function getSegmentedIndicatorStyle(selectedIndex, optionCount, size) {
13581
+ function getSegmentedIndicatorStyle(selectedIndex, optionCount, size2) {
13477
13582
  const horizontalInset = {
13478
13583
  sm: "0.125rem",
13479
13584
  md: "0.25rem",
@@ -13481,7 +13586,7 @@ function getSegmentedIndicatorStyle(selectedIndex, optionCount, size) {
13481
13586
  };
13482
13587
  const safeOptionCount = Math.max(1, optionCount);
13483
13588
  const safeSelectedIndex = Math.min(Math.max(0, selectedIndex), safeOptionCount - 1);
13484
- const inset = horizontalInset[size];
13589
+ const inset = horizontalInset[size2];
13485
13590
  return {
13486
13591
  left: inset,
13487
13592
  width: `calc((100% - (${inset} * 2)) / ${safeOptionCount})`,
@@ -13489,7 +13594,7 @@ function getSegmentedIndicatorStyle(selectedIndex, optionCount, size) {
13489
13594
  opacity: selectedIndex >= 0 && optionCount > 0 ? "1" : "0"
13490
13595
  };
13491
13596
  }
13492
- function getSegmentedOptionClasses(size, isSelected, isDisabled) {
13597
+ function getSegmentedOptionClasses(size2, isSelected, isDisabled) {
13493
13598
  const sizePad2 = {
13494
13599
  sm: "px-2 py-0.5",
13495
13600
  md: "px-3 py-1",
@@ -13497,7 +13602,7 @@ function getSegmentedOptionClasses(size, isSelected, isDisabled) {
13497
13602
  };
13498
13603
  return classNames(
13499
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",
13500
- sizePad2[size],
13605
+ sizePad2[size2],
13501
13606
  isDisabled ? "opacity-50 cursor-not-allowed" : "cursor-pointer",
13502
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))]"
13503
13608
  );
@@ -13515,15 +13620,15 @@ var valueSize2 = {
13515
13620
  md: "text-2xl font-semibold",
13516
13621
  lg: "text-4xl font-bold"
13517
13622
  };
13518
- function getStatisticTitleClasses(size) {
13623
+ function getStatisticTitleClasses(size2) {
13519
13624
  return classNames(
13520
- titleSize2[size],
13625
+ titleSize2[size2],
13521
13626
  "text-[var(--tiger-statistic-title,var(--tiger-text-muted,#6b7280))] mb-1"
13522
13627
  );
13523
13628
  }
13524
- function getStatisticValueClasses(size) {
13629
+ function getStatisticValueClasses(size2) {
13525
13630
  return classNames(
13526
- valueSize2[size],
13631
+ valueSize2[size2],
13527
13632
  "text-[var(--tiger-statistic-value,var(--tiger-text,#111827))]"
13528
13633
  );
13529
13634
  }
@@ -13592,16 +13697,16 @@ var triggerSizes = {
13592
13697
  md: "w-8 h-8",
13593
13698
  lg: "w-10 h-10"
13594
13699
  };
13595
- function getColorPickerTriggerClasses(size, disabled) {
13700
+ function getColorPickerTriggerClasses(size2, disabled) {
13596
13701
  return classNames(
13597
13702
  "rounded-[var(--tiger-radius-md,0.5rem)] border transition-all overflow-hidden",
13598
13703
  "border-[var(--tiger-colorpicker-border,var(--tiger-border,#d1d5db))]",
13599
- triggerSizes[size],
13704
+ triggerSizes[size2],
13600
13705
  disabled ? "opacity-50 cursor-not-allowed" : "cursor-pointer hover:border-[var(--tiger-colorpicker-border-hover,var(--tiger-primary,#2563eb))]"
13601
13706
  );
13602
13707
  }
13603
13708
  var colorPickerPanelClasses = classNames(
13604
- "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",
13605
13710
  "bg-[var(--tiger-colorpicker-panel-bg,var(--tiger-surface,#ffffff))]",
13606
13711
  "border border-[var(--tiger-colorpicker-panel-border,var(--tiger-border,#d1d5db))]"
13607
13712
  );
@@ -13737,20 +13842,20 @@ var colorSwatchSizeClasses = {
13737
13842
  md: "h-8 w-8",
13738
13843
  lg: "h-10 w-10"
13739
13844
  };
13740
- function getColorSwatchButtonClasses(size, selected, disabled) {
13845
+ function getColorSwatchButtonClasses(size2, selected, disabled) {
13741
13846
  return classNames(
13742
13847
  "relative inline-flex shrink-0 items-center justify-center rounded-[var(--tiger-radius-md,0.5rem)] border transition-all outline-none",
13743
13848
  "border-[var(--tiger-colorswatch-border,var(--tiger-border,#d1d5db))]",
13744
13849
  "focus-visible:ring-2 focus-visible:ring-[var(--tiger-colorswatch-ring,var(--tiger-primary,#2563eb))] focus-visible:ring-offset-2",
13745
- colorSwatchSizeClasses[size],
13850
+ colorSwatchSizeClasses[size2],
13746
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))]",
13747
13852
  disabled ? "cursor-not-allowed opacity-45" : "cursor-pointer"
13748
13853
  );
13749
13854
  }
13750
- function getColorSwatchCheckClasses(size) {
13855
+ function getColorSwatchCheckClasses(size2) {
13751
13856
  return classNames(
13752
13857
  "pointer-events-none rounded-full bg-white/90 text-[var(--tiger-primary,#2563eb)] shadow-sm",
13753
- 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"
13754
13859
  );
13755
13860
  }
13756
13861
  function normalizeColorSwatchGroups(groups, colors) {
@@ -13954,20 +14059,20 @@ var btnSize = {
13954
14059
  md: "w-9 h-9",
13955
14060
  lg: "w-11 h-11"
13956
14061
  };
13957
- function getStepperInputClasses(size) {
14062
+ function getStepperInputClasses(size2) {
13958
14063
  return classNames(
13959
14064
  "text-center border-y outline-none font-mono",
13960
- sizePad[size],
14065
+ sizePad[size2],
13961
14066
  "w-14",
13962
14067
  "bg-[var(--tiger-stepper-bg,var(--tiger-surface,#ffffff))]",
13963
14068
  "text-[var(--tiger-stepper-text,var(--tiger-text,#111827))]",
13964
14069
  "border-[var(--tiger-stepper-border,var(--tiger-border,#d1d5db))]"
13965
14070
  );
13966
14071
  }
13967
- function getStepperButtonClasses(size, disabled, position) {
14072
+ function getStepperButtonClasses(size2, disabled, position) {
13968
14073
  return classNames(
13969
14074
  "inline-flex items-center justify-center border transition-colors",
13970
- btnSize[size],
14075
+ btnSize[size2],
13971
14076
  position === "left" ? "rounded-l-md" : "rounded-r-md",
13972
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))]",
13973
14078
  "text-[var(--tiger-stepper-btn-text,var(--tiger-text,#111827))]",
@@ -14052,35 +14157,22 @@ var sizeMap = {
14052
14157
  md: "text-sm py-2 px-3",
14053
14158
  lg: "text-base py-2.5 px-4"
14054
14159
  };
14055
- function getMentionsInputClasses(size, disabled) {
14160
+ function getMentionsInputClasses(size2, disabled) {
14056
14161
  return classNames(
14057
14162
  "w-full rounded-[var(--tiger-radius-md,0.5rem)] border transition-colors resize-none",
14058
14163
  "bg-[var(--tiger-mentions-bg,var(--tiger-surface,#ffffff))]",
14059
14164
  "border-[var(--tiger-mentions-border,var(--tiger-border,#d1d5db))]",
14060
14165
  "text-[var(--tiger-mentions-text,var(--tiger-text,#111827))]",
14061
14166
  "placeholder:text-[var(--tiger-mentions-placeholder,var(--tiger-text-muted,#9ca3af))]",
14062
- sizeMap[size],
14167
+ sizeMap[size2],
14063
14168
  disabled ? "opacity-50 cursor-not-allowed" : "focus:outline-none focus:ring-2 focus:ring-[var(--tiger-mentions-ring,var(--tiger-ring,#2563eb))]"
14064
14169
  );
14065
14170
  }
14066
14171
  var mentionsDropdownClasses = classNames(
14067
- "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",
14068
14173
  "bg-[var(--tiger-mentions-dropdown-bg,var(--tiger-surface,#ffffff))]",
14069
14174
  "border-[var(--tiger-mentions-dropdown-border,var(--tiger-border,#d1d5db))]"
14070
14175
  );
14071
- async function positionMentionsDropdown(reference, dropdown, options = {}) {
14072
- const { matchReferenceWidth = false, ...floatingOptions } = options;
14073
- if (matchReferenceWidth) {
14074
- dropdown.style.minWidth = `${reference.offsetWidth}px`;
14075
- }
14076
- const result = await computeFloatingPosition(reference, dropdown, {
14077
- placement: "bottom-start",
14078
- offset: 4,
14079
- ...floatingOptions
14080
- });
14081
- applyFloatingStyles(dropdown, result);
14082
- return result;
14083
- }
14084
14176
  function getMentionsOptionClasses(isActive, isDisabled) {
14085
14177
  return classNames(
14086
14178
  "px-3 py-2 text-sm cursor-pointer transition-colors",
@@ -14116,15 +14208,15 @@ var qrcodeRefreshClasses = classNames(
14116
14208
  "text-[var(--tiger-qrcode-refresh,var(--tiger-primary,#2563eb))]",
14117
14209
  "hover:underline"
14118
14210
  );
14119
- function generateQRMatrix(value, size = 21) {
14211
+ function generateQRMatrix(value, size2 = 21) {
14120
14212
  const matrix = Array.from(
14121
- { length: size },
14122
- () => Array.from({ length: size }, () => false)
14213
+ { length: size2 },
14214
+ () => Array.from({ length: size2 }, () => false)
14123
14215
  );
14124
14216
  const drawFinderPattern = (row, col) => {
14125
14217
  for (let r = 0; r < 7; r++) {
14126
14218
  for (let c = 0; c < 7; c++) {
14127
- if (row + r >= size || col + c >= size) continue;
14219
+ if (row + r >= size2 || col + c >= size2) continue;
14128
14220
  const isOuter = r === 0 || r === 6 || c === 0 || c === 6;
14129
14221
  const isInner = r >= 2 && r <= 4 && c >= 2 && c <= 4;
14130
14222
  matrix[row + r][col + c] = isOuter || isInner;
@@ -14132,9 +14224,9 @@ function generateQRMatrix(value, size = 21) {
14132
14224
  }
14133
14225
  };
14134
14226
  drawFinderPattern(0, 0);
14135
- drawFinderPattern(0, size - 7);
14136
- drawFinderPattern(size - 7, 0);
14137
- 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++) {
14138
14230
  matrix[6][i] = i % 2 === 0;
14139
14231
  matrix[i][6] = i % 2 === 0;
14140
14232
  }
@@ -14143,12 +14235,12 @@ function generateQRMatrix(value, size = 21) {
14143
14235
  hash = (hash << 5) - hash + value.charCodeAt(i) | 0;
14144
14236
  }
14145
14237
  let seed = Math.abs(hash);
14146
- for (let r = 0; r < size; r++) {
14147
- for (let c = 0; c < size; c++) {
14238
+ for (let r = 0; r < size2; r++) {
14239
+ for (let c = 0; c < size2; c++) {
14148
14240
  if (matrix[r][c]) continue;
14149
14241
  if (r < 8 && c < 8) continue;
14150
- if (r < 8 && c >= size - 8) continue;
14151
- if (r >= size - 8 && c < 8) continue;
14242
+ if (r < 8 && c >= size2 - 8) continue;
14243
+ if (r >= size2 - 8 && c < 8) continue;
14152
14244
  if (r === 6 || c === 6) continue;
14153
14245
  seed = seed * 1103515245 + 12345 & 2147483647;
14154
14246
  matrix[r][c] = seed % 3 === 0;
@@ -14224,13 +14316,13 @@ function groupDataByColumn(data, groupBy) {
14224
14316
  return groups;
14225
14317
  }
14226
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)]";
14227
- function getGroupHeaderCellClasses(size) {
14319
+ function getGroupHeaderCellClasses(size2) {
14228
14320
  const padding = {
14229
14321
  sm: "px-3 py-2",
14230
14322
  md: "px-4 py-3",
14231
14323
  lg: "px-6 py-4"
14232
14324
  };
14233
- return padding[size] || padding.md;
14325
+ return padding[size2] || padding.md;
14234
14326
  }
14235
14327
 
14236
14328
  // src/utils/table-resize-utils.ts
@@ -14984,9 +15076,9 @@ function getSplitterGutterHandleClasses(direction) {
14984
15076
  direction === "horizontal" ? splitterGutterHandleHorizontalClasses : splitterGutterHandleVerticalClasses
14985
15077
  ].join(" ");
14986
15078
  }
14987
- function parsePaneSize(size, totalSize) {
14988
- if (typeof size === "number") return size;
14989
- const trimmed = size.trim();
15079
+ function parsePaneSize(size2, totalSize) {
15080
+ if (typeof size2 === "number") return size2;
15081
+ const trimmed = size2.trim();
14990
15082
  if (trimmed.endsWith("%")) {
14991
15083
  const pct = parseFloat(trimmed);
14992
15084
  if (isNaN(pct)) return 0;
@@ -15008,8 +15100,8 @@ function calculateInitialSizes(paneCount, totalSize, gutterSize, defaultSizes) {
15008
15100
  const equalSize = availableSpace / paneCount;
15009
15101
  return Array.from({ length: paneCount }, () => equalSize);
15010
15102
  }
15011
- function clampPaneSize(size, min, max) {
15012
- let result = Math.max(size, min);
15103
+ function clampPaneSize(size2, min, max) {
15104
+ let result = Math.max(size2, min);
15013
15105
  if (max !== void 0) {
15014
15106
  result = Math.min(result, max);
15015
15107
  }
@@ -15036,10 +15128,10 @@ function resizePanes(sizes, gutterIndex, delta, mins, maxes) {
15036
15128
  result[rightIdx] = newRight;
15037
15129
  return result;
15038
15130
  }
15039
- function getPaneStyle(size, direction) {
15131
+ function getPaneStyle(size2, direction) {
15040
15132
  const prop = direction === "horizontal" ? "width" : "height";
15041
15133
  return {
15042
- [prop]: `${size}px`,
15134
+ [prop]: `${size2}px`,
15043
15135
  flexShrink: "0",
15044
15136
  flexGrow: "0"
15045
15137
  };
@@ -15150,12 +15242,12 @@ function applyAspectRatio(width, height, originalWidth, originalHeight) {
15150
15242
  }
15151
15243
 
15152
15244
  // src/utils/code-editor-utils.ts
15153
- var codeEditorBaseClasses = "relative font-mono text-sm leading-relaxed border rounded overflow-hidden";
15245
+ var codeEditorBaseClasses = "relative font-mono text-sm leading-[1.625rem] border rounded overflow-hidden";
15154
15246
  var codeEditorLightClasses = "bg-white border-gray-200 text-gray-900";
15155
15247
  var codeEditorDarkClasses = "bg-gray-900 border-gray-700 text-gray-100";
15156
15248
  var codeEditorDisabledClasses = "opacity-60 cursor-not-allowed";
15157
- var codeEditorTextareaClasses = "absolute inset-0 w-full h-full resize-none outline-none bg-transparent text-transparent caret-current p-3 font-mono text-sm leading-relaxed whitespace-pre overflow-auto";
15158
- var codeEditorHighlightClasses = "p-3 font-mono text-sm leading-relaxed whitespace-pre overflow-auto pointer-events-none";
15249
+ var codeEditorTextareaClasses = "absolute inset-0 w-full h-full resize-none outline-none bg-transparent text-transparent p-3 font-mono text-sm leading-[1.625rem] whitespace-pre overflow-auto";
15250
+ var codeEditorHighlightClasses = "p-3 font-mono text-sm leading-[1.625rem] whitespace-pre overflow-auto pointer-events-none";
15159
15251
  var codeEditorLineNumberClasses = "select-none text-right pr-3 pl-2 border-r min-w-[3rem] flex-shrink-0";
15160
15252
  var codeEditorLineNumberLightClasses = "bg-gray-50 border-gray-200 text-gray-400";
15161
15253
  var codeEditorLineNumberDarkClasses = "bg-gray-800 border-gray-700 text-gray-500";
@@ -15164,6 +15256,9 @@ var codeEditorActiveLineDarkClasses = "bg-gray-800/60";
15164
15256
  function getCodeEditorActiveLineClasses(theme) {
15165
15257
  return theme === "dark" ? codeEditorActiveLineDarkClasses : codeEditorActiveLineLightClasses;
15166
15258
  }
15259
+ function getCodeEditorCaretClasses(theme) {
15260
+ return theme === "dark" ? "caret-gray-100" : "caret-gray-900";
15261
+ }
15167
15262
  function getActiveLineIndex(value, caretPosition) {
15168
15263
  const clamped = Math.max(0, Math.min(caretPosition, value.length));
15169
15264
  let line = 0;
@@ -16875,8 +16970,8 @@ function getInputGroupClasses(compact, className) {
16875
16970
  if (className) classes.push(className);
16876
16971
  return classes.join(" ");
16877
16972
  }
16878
- function getInputGroupAddonClasses(size, compact, className) {
16879
- const classes = [inputGroupAddonBaseClasses, inputGroupAddonSizeClasses[size]];
16973
+ function getInputGroupAddonClasses(size2, compact, className) {
16974
+ const classes = [inputGroupAddonBaseClasses, inputGroupAddonSizeClasses[size2]];
16880
16975
  if (compact) {
16881
16976
  classes.push("first:rounded-l-md last:rounded-r-md");
16882
16977
  } else {
@@ -16970,8 +17065,8 @@ function getAvatarGroupClasses(...classes) {
16970
17065
  function getAvatarGroupItemClasses(...classes) {
16971
17066
  return classNames(avatarGroupItemClasses, ...classes);
16972
17067
  }
16973
- function getAvatarGroupOverflowClasses(size = "md", ...classes) {
16974
- return classNames(avatarGroupOverflowClasses, avatarSizeClasses[size], ...classes);
17068
+ function getAvatarGroupOverflowClasses(size2 = "md", ...classes) {
17069
+ return classNames(avatarGroupOverflowClasses, avatarSizeClasses[size2], ...classes);
16975
17070
  }
16976
17071
  function getAvatarGroupOverflowLabel(overflowCount, template = DEFAULT_AVATAR_GROUP_LABELS.overflowAriaLabel) {
16977
17072
  return template.replace("{count}", String(overflowCount));
@@ -17053,8 +17148,8 @@ function createChartResizeObserverController(options) {
17053
17148
  pendingSize = void 0;
17054
17149
  options.onSizeChange(nextSize);
17055
17150
  }
17056
- function schedule(size) {
17057
- pendingSize = size;
17151
+ function schedule(size2) {
17152
+ pendingSize = size2;
17058
17153
  if (frameHandle !== void 0) return;
17059
17154
  frameHandle = requestFrame(applyPending);
17060
17155
  }
@@ -17331,16 +17426,16 @@ var checkboxLabelSizeClasses = {
17331
17426
  md: "text-base",
17332
17427
  lg: "text-lg"
17333
17428
  };
17334
- function getCheckboxClasses(size = "md", disabled = false) {
17429
+ function getCheckboxClasses(size2 = "md", disabled = false) {
17335
17430
  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";
17336
- const sizeClass = checkboxSizeClasses2[size];
17431
+ const sizeClass = checkboxSizeClasses2[size2];
17337
17432
  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)]";
17338
17433
  const disabledClasses = disabled ? "cursor-not-allowed opacity-50 disabled:bg-[var(--tiger-surface-muted,#f3f4f6)] disabled:border-[var(--tiger-border,#e5e7eb)]" : "";
17339
17434
  return [baseClasses, sizeClass, colorClasses, disabledClasses].filter(Boolean).join(" ");
17340
17435
  }
17341
- function getCheckboxLabelClasses(size = "md", disabled = false) {
17436
+ function getCheckboxLabelClasses(size2 = "md", disabled = false) {
17342
17437
  const baseClasses = "inline-flex items-center cursor-pointer select-none";
17343
- const sizeClass = checkboxLabelSizeClasses[size];
17438
+ const sizeClass = checkboxLabelSizeClasses[size2];
17344
17439
  const disabledClasses = disabled ? "cursor-not-allowed" : "";
17345
17440
  return [baseClasses, sizeClass, disabledClasses].filter(Boolean).join(" ");
17346
17441
  }
@@ -17362,8 +17457,8 @@ var switchThumbTranslateClasses = {
17362
17457
  md: "translate-x-5",
17363
17458
  lg: "translate-x-7"
17364
17459
  };
17365
- function getSwitchClasses(size = "md", checked = false, disabled = false, ...classes) {
17366
- const sizeClass = switchSizeClasses[size];
17460
+ function getSwitchClasses(size2 = "md", checked = false, disabled = false, ...classes) {
17461
+ const sizeClass = switchSizeClasses[size2];
17367
17462
  const bgColor = checked ? "bg-[var(--tiger-primary,#2563eb)]" : "bg-[var(--tiger-border,#e5e7eb)]";
17368
17463
  return composeComponentClasses(
17369
17464
  switchBaseClasses,
@@ -17373,10 +17468,10 @@ function getSwitchClasses(size = "md", checked = false, disabled = false, ...cla
17373
17468
  ...classes
17374
17469
  );
17375
17470
  }
17376
- function getSwitchThumbClasses(size = "md", checked = false) {
17471
+ function getSwitchThumbClasses(size2 = "md", checked = false) {
17377
17472
  const baseClasses = "inline-block rounded-full bg-[var(--tiger-surface,#ffffff)] shadow-lg transition-transform";
17378
- const sizeClass = switchThumbSizeClasses[size];
17379
- const translateClass = checked ? switchThumbTranslateClasses[size] : "translate-x-0.5";
17473
+ const sizeClass = switchThumbSizeClasses[size2];
17474
+ const translateClass = checked ? switchThumbTranslateClasses[size2] : "translate-x-0.5";
17380
17475
  return classNames(baseClasses, sizeClass, translateClass);
17381
17476
  }
17382
17477
 
@@ -17404,18 +17499,18 @@ var sliderSizeClasses = {
17404
17499
  tooltip: "text-base px-2.5 py-1.5"
17405
17500
  }
17406
17501
  };
17407
- function getSliderTrackClasses(size = "md", disabled = false) {
17408
- const sizeClass = sliderSizeClasses[size].track;
17502
+ function getSliderTrackClasses(size2 = "md", disabled = false) {
17503
+ const sizeClass = sliderSizeClasses[size2].track;
17409
17504
  const disabledClass = disabled ? sliderDisabledClasses : "";
17410
17505
  return [sliderTrackClasses, sizeClass, disabledClass].filter(Boolean).join(" ");
17411
17506
  }
17412
- function getSliderThumbClasses(size = "md", disabled = false) {
17413
- const sizeClass = sliderSizeClasses[size].thumb;
17507
+ function getSliderThumbClasses(size2 = "md", disabled = false) {
17508
+ const sizeClass = sliderSizeClasses[size2].thumb;
17414
17509
  const disabledClass = disabled ? sliderDisabledClasses : "";
17415
17510
  return [sliderThumbClasses, sizeClass, disabledClass].filter(Boolean).join(" ");
17416
17511
  }
17417
- function getSliderTooltipClasses(size = "md") {
17418
- const sizeClass = sliderSizeClasses[size].tooltip;
17512
+ function getSliderTooltipClasses(size2 = "md") {
17513
+ const sizeClass = sliderSizeClasses[size2].tooltip;
17419
17514
  return [sliderTooltipClasses, sizeClass].filter(Boolean).join(" ");
17420
17515
  }
17421
17516
 
@@ -19660,6 +19755,8 @@ export {
19660
19755
  getAnchorLinkListClasses,
19661
19756
  getAnchorTargetElement,
19662
19757
  getAnchorWrapperClasses,
19758
+ getAnchoredOverlayLayoutClasses,
19759
+ getAnchoredOverlayTabTarget,
19663
19760
  getAreaGradientPrefix,
19664
19761
  getArrowStyles,
19665
19762
  getAutoCompleteInputClasses,
@@ -19724,6 +19821,7 @@ export {
19724
19821
  getCodeBlockContainerClasses,
19725
19822
  getCodeBlockCopyButtonClasses,
19726
19823
  getCodeEditorActiveLineClasses,
19824
+ getCodeEditorCaretClasses,
19727
19825
  getCodeEditorContainerClasses,
19728
19826
  getColGutterClasses,
19729
19827
  getColMergedStyleVars,
@@ -20076,7 +20174,6 @@ export {
20076
20174
  getStepsContainerClasses,
20077
20175
  getSubMenuExpandIconClasses,
20078
20176
  getSubMenuTitleClasses,
20079
- getSubmenuPopupZIndex,
20080
20177
  getSunburstGradientPrefix,
20081
20178
  getSvgDefaultAttrs,
20082
20179
  getSwitchClasses,
@@ -20520,7 +20617,6 @@ export {
20520
20617
  popconfirmQuestionIconPath,
20521
20618
  popconfirmSuccessIconPath,
20522
20619
  popconfirmWarningIconPath,
20523
- positionMentionsDropdown,
20524
20620
  prefersReducedMotion,
20525
20621
  prepareUploadFiles,
20526
20622
  prevIconPath,
@@ -20573,6 +20669,7 @@ export {
20573
20669
  rateInactiveColor,
20574
20670
  readFileAsDataUrl,
20575
20671
  redoFormHistory,
20672
+ registerEscapeDismiss,
20576
20673
  registerImageGroupItem,
20577
20674
  removeCssVarsCached,
20578
20675
  renderMarkdownInline,
@@ -20604,6 +20701,7 @@ export {
20604
20701
  resizeCropRect,
20605
20702
  resizePanes,
20606
20703
  resolveAffixTarget,
20704
+ resolveAnchoredOverlayTarget,
20607
20705
  resolveCardPadding,
20608
20706
  resolveCarouselSwipeDirection,
20609
20707
  resolveChartPalette,