@aviala-design/spiral 2.0.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -471,6 +471,10 @@ var buttonVariants = cva3(
471
471
  allRound: {
472
472
  true: "min-w-[var(--button-min-width-allround,48px)] !rounded-[var(--border-radius-allround,99px)]",
473
473
  false: "min-w-[var(--button-min-width,46px)]"
474
+ },
475
+ compact: {
476
+ true: "min-w-0",
477
+ false: ""
474
478
  }
475
479
  },
476
480
  defaultVariants: {
@@ -555,6 +559,7 @@ var Button = forwardRef3(
555
559
  variant,
556
560
  size: sizeProp,
557
561
  allRound = false,
562
+ compact,
558
563
  iconOnly: iconOnlyProp,
559
564
  asChild = false,
560
565
  loading = false,
@@ -609,7 +614,7 @@ var Button = forwardRef3(
609
614
  !iconOnly && renderIcon(rightIcon, iconLevel, void 0, "button.icon-right")
610
615
  ] });
611
616
  const classes = cn(
612
- buttonVariants({ mode, ...iconOnly ? {} : { allRound } }),
617
+ buttonVariants({ mode, ...iconOnly ? {} : { allRound }, compact }),
613
618
  iconOnly && "min-w-0",
614
619
  iconOnly && allRound && "!rounded-[var(--border-radius-allround,99px)]",
615
620
  className
@@ -3103,6 +3108,7 @@ import {
3103
3108
  useContext as useContext3,
3104
3109
  useEffect as useEffect3,
3105
3110
  useLayoutEffect as useLayoutEffect2,
3111
+ useMemo as useMemo3,
3106
3112
  useRef as useRef4,
3107
3113
  useState as useState6
3108
3114
  } from "react";
@@ -3136,10 +3142,13 @@ function useSegmentatorState(value, defaultValue, onValueChange) {
3136
3142
  const [internal, setInternal] = useState6(defaultValue ?? "");
3137
3143
  const isControlled = value !== void 0;
3138
3144
  const current = isControlled ? value : internal;
3139
- const setValue = (next) => {
3140
- if (!isControlled) setInternal(next);
3141
- onValueChange?.(next);
3142
- };
3145
+ const setValue = useCallback4(
3146
+ (next) => {
3147
+ if (!isControlled) setInternal(next);
3148
+ onValueChange?.(next);
3149
+ },
3150
+ [isControlled, onValueChange]
3151
+ );
3143
3152
  return [current, setValue];
3144
3153
  }
3145
3154
  var SEGMENTATOR_DRAG_THRESHOLD_PX = 4;
@@ -3184,6 +3193,16 @@ function getEnabledSegmentatorItems(group) {
3184
3193
  group.querySelectorAll(".aviala-segmentator-item:not(:disabled)")
3185
3194
  );
3186
3195
  }
3196
+ function applyDragPreview(group, activeItem) {
3197
+ const items = getEnabledSegmentatorItems(group);
3198
+ for (const item of items) {
3199
+ if (item === activeItem) {
3200
+ item.setAttribute("data-drag-preview", "true");
3201
+ } else {
3202
+ item.removeAttribute("data-drag-preview");
3203
+ }
3204
+ }
3205
+ }
3187
3206
  function measureItemThumbMetrics(item, group) {
3188
3207
  const groupRect = group.getBoundingClientRect();
3189
3208
  const itemRect = item.getBoundingClientRect();
@@ -3405,7 +3424,6 @@ var SegmentatorGroup = forwardRef20(
3405
3424
  const layoutKey = useThemeLayoutKey();
3406
3425
  const consumeClickRef = useRef4(false);
3407
3426
  const pointerDragRef = useRef4(null);
3408
- const [dragPreviewValue, setDragPreviewValue] = useState6(null);
3409
3427
  const [dragState, setDragState] = useState6({
3410
3428
  pressing: false,
3411
3429
  active: false
@@ -3414,9 +3432,12 @@ var SegmentatorGroup = forwardRef20(
3414
3432
  const resetPointerInteraction = useCallback4(() => {
3415
3433
  pointerDragRef.current?.cleanupWindowListeners?.();
3416
3434
  pointerDragRef.current = null;
3417
- setDragPreviewValue(null);
3418
3435
  setDragState({ pressing: false, active: false });
3419
- const thumbEl = groupRef.current?.querySelector(
3436
+ const group = groupRef.current;
3437
+ if (group) {
3438
+ applyDragPreview(group, null);
3439
+ }
3440
+ const thumbEl = group?.querySelector(
3420
3441
  ".aviala-segmentator-thumb"
3421
3442
  );
3422
3443
  if (thumbEl) {
@@ -3473,8 +3494,8 @@ var SegmentatorGroup = forwardRef20(
3473
3494
  if (itemChanged) {
3474
3495
  triggerSegmentatorHaptic("select");
3475
3496
  drag.snapUntil = performance.now() + 540;
3476
- if (nextPreviewValue) {
3477
- setDragPreviewValue(nextPreviewValue);
3497
+ if (item) {
3498
+ applyDragPreview(group, item);
3478
3499
  }
3479
3500
  }
3480
3501
  drag.previewValue = nextPreviewValue;
@@ -3550,7 +3571,7 @@ var SegmentatorGroup = forwardRef20(
3550
3571
  event.pointerId
3551
3572
  );
3552
3573
  writeThumbMetrics(metrics, false);
3553
- setDragPreviewValue(pressedValue);
3574
+ applyDragPreview(group, pressedItem);
3554
3575
  setDragState({ pressing: true, active: false });
3555
3576
  group.setPointerCapture(event.pointerId);
3556
3577
  };
@@ -3558,16 +3579,17 @@ var SegmentatorGroup = forwardRef20(
3558
3579
  return /* @__PURE__ */ jsx21(
3559
3580
  SegmentatorContext.Provider,
3560
3581
  {
3561
- value: {
3562
- value: currentValue,
3563
- onValueChange: setValue,
3564
- mode,
3565
- allRound,
3566
- disabled,
3567
- consumeClickRef,
3568
- dragPreviewValue,
3569
- isPressing: dragState.pressing
3570
- },
3582
+ value: useMemo3(
3583
+ () => ({
3584
+ value: currentValue,
3585
+ onValueChange: setValue,
3586
+ mode,
3587
+ allRound,
3588
+ disabled,
3589
+ consumeClickRef
3590
+ }),
3591
+ [currentValue, setValue, mode, allRound, disabled]
3592
+ ),
3571
3593
  children: /* @__PURE__ */ jsxs15(
3572
3594
  "div",
3573
3595
  {
@@ -3638,7 +3660,6 @@ var SegmentatorItem = forwardRef20(
3638
3660
  "data-selected": selected ? "true" : "false",
3639
3661
  "data-value": value,
3640
3662
  "data-mode": ctx.mode,
3641
- "data-drag-preview": ctx.isPressing && ctx.dragPreviewValue === value ? "true" : void 0,
3642
3663
  "data-all-round": ctx.allRound ? "true" : "false",
3643
3664
  disabled: isDisabled,
3644
3665
  className: cn("aviala-segmentator-item aviala-focus-ring", iconOnly && "min-w-0", className),
@@ -3987,7 +4008,7 @@ function usePointerDrag(ref, onMove, enabled = true) {
3987
4008
  }
3988
4009
 
3989
4010
  // src/components/color-picker/use-color-picker-state.ts
3990
- import { useCallback as useCallback6, useMemo as useMemo3, useState as useState7 } from "react";
4011
+ import { useCallback as useCallback6, useMemo as useMemo4, useState as useState7 } from "react";
3991
4012
  function useColorPickerState({
3992
4013
  value: controlledValue,
3993
4014
  defaultValue = DEFAULT_COLOR,
@@ -4010,7 +4031,7 @@ function useColorPickerState({
4010
4031
  },
4011
4032
  [controlledValue, onChange]
4012
4033
  );
4013
- const hsva = useMemo3(() => toHsva(value), [value]);
4034
+ const hsva = useMemo4(() => toHsva(value), [value]);
4014
4035
  const setHsva = useCallback6(
4015
4036
  (partial, meta) => {
4016
4037
  setValue(fromHsva({ ...hsva, ...partial }), meta);
@@ -4610,7 +4631,7 @@ import {
4610
4631
  useContext as useContext5,
4611
4632
  useEffect as useEffect5,
4612
4633
  useLayoutEffect as useLayoutEffect3,
4613
- useMemo as useMemo4,
4634
+ useMemo as useMemo5,
4614
4635
  useRef as useRef7,
4615
4636
  useState as useState10
4616
4637
  } from "react";
@@ -4831,7 +4852,7 @@ function Cascader({
4831
4852
  },
4832
4853
  [changeOnSelect, commitValue, expandTo, handleOpenChange, options]
4833
4854
  );
4834
- const contextValue = useMemo4(
4855
+ const contextValue = useMemo5(
4835
4856
  () => ({
4836
4857
  open,
4837
4858
  disabled,
@@ -5121,7 +5142,7 @@ function CascaderOptionsMenu({ className }) {
5121
5142
  const menuRef = useRef7(null);
5122
5143
  const columnElRefs = useRef7(/* @__PURE__ */ new Map());
5123
5144
  const [columns, setColumns] = useState10([]);
5124
- const columnPaths = useMemo4(() => {
5145
+ const columnPaths = useMemo5(() => {
5125
5146
  const paths = [[]];
5126
5147
  const expansion = activePath.length > 0 ? activePath : selectedPath.slice(0, -1);
5127
5148
  for (let index = 0; index < expansion.length; index += 1) {
@@ -5314,7 +5335,7 @@ import {
5314
5335
  useEffect as useEffect7,
5315
5336
  useId as useId4,
5316
5337
  useLayoutEffect as useLayoutEffect5,
5317
- useMemo as useMemo7,
5338
+ useMemo as useMemo8,
5318
5339
  useRef as useRef9,
5319
5340
  useState as useState11
5320
5341
  } from "react";
@@ -5522,14 +5543,14 @@ function parseDateRangeInput(text) {
5522
5543
  }
5523
5544
 
5524
5545
  // src/components/date-picker/date-picker-month-wheels.tsx
5525
- import { useMemo as useMemo6 } from "react";
5546
+ import { useMemo as useMemo7 } from "react";
5526
5547
 
5527
5548
  // src/components/date-picker/date-picker-time-wheel.tsx
5528
5549
  import {
5529
5550
  useCallback as useCallback11,
5530
5551
  useEffect as useEffect6,
5531
5552
  useLayoutEffect as useLayoutEffect4,
5532
- useMemo as useMemo5,
5553
+ useMemo as useMemo6,
5533
5554
  useRef as useRef8
5534
5555
  } from "react";
5535
5556
 
@@ -5607,7 +5628,7 @@ function DatePickerTimeWheelColumn({
5607
5628
  const wheelAccumRef = useRef8(0);
5608
5629
  const selectedValueRef = useRef8(value);
5609
5630
  selectedValueRef.current = value;
5610
- const repeatedValues = useMemo5(() => {
5631
+ const repeatedValues = useMemo6(() => {
5611
5632
  if (!loop) return [...values];
5612
5633
  return Array.from({ length: LOOP_SECTIONS }, () => values).flat();
5613
5634
  }, [loop, values]);
@@ -5875,7 +5896,7 @@ function DatePickerMonthYearWheels({
5875
5896
  const { viewMonth, setViewMonth, minDate, maxDate } = useDatePickerContext();
5876
5897
  const year = viewMonth.getFullYear();
5877
5898
  const month = viewMonth.getMonth() + 1;
5878
- const yearValues = useMemo6(() => {
5899
+ const yearValues = useMemo7(() => {
5879
5900
  const currentYear = (/* @__PURE__ */ new Date()).getFullYear();
5880
5901
  const start = minDate?.getFullYear() ?? currentYear - 100;
5881
5902
  const end = maxDate?.getFullYear() ?? currentYear + 100;
@@ -6244,7 +6265,7 @@ function DatePicker(props) {
6244
6265
  viewMonth
6245
6266
  ]
6246
6267
  );
6247
- const contextValue = useMemo7(
6268
+ const contextValue = useMemo8(
6248
6269
  () => ({
6249
6270
  open,
6250
6271
  setOpen: handleOpenChange,
@@ -6685,8 +6706,8 @@ function DatePickerCalendar({ className }) {
6685
6706
  setActivePanel,
6686
6707
  enableTime
6687
6708
  } = useDatePickerContext();
6688
- const today = useMemo7(() => startOfDay(/* @__PURE__ */ new Date()), []);
6689
- const days = useMemo7(() => getCalendarDays(viewMonth), [viewMonth]);
6709
+ const today = useMemo8(() => startOfDay(/* @__PURE__ */ new Date()), []);
6710
+ const days = useMemo8(() => getCalendarDays(viewMonth), [viewMonth]);
6690
6711
  const prevViewMonthRef = useRef9(viewMonth);
6691
6712
  const dayGridRef = useRef9(null);
6692
6713
  const pendingDayFocusRef = useRef9(false);
@@ -6757,7 +6778,7 @@ function DatePickerCalendar({ className }) {
6757
6778
  pendingDayFocusRef.current = false;
6758
6779
  target.focus();
6759
6780
  }, [focusedDay, days, monthSlide]);
6760
- const outgoingDays = useMemo7(
6781
+ const outgoingDays = useMemo8(
6761
6782
  () => monthSlide ? getCalendarDays(monthSlide.outgoingMonth) : null,
6762
6783
  [monthSlide]
6763
6784
  );
@@ -7142,7 +7163,7 @@ import {
7142
7163
  forwardRef as forwardRef28,
7143
7164
  useCallback as useCallback13,
7144
7165
  useEffect as useEffect8,
7145
- useMemo as useMemo8,
7166
+ useMemo as useMemo9,
7146
7167
  useRef as useRef10,
7147
7168
  useState as useState12
7148
7169
  } from "react";
@@ -7244,7 +7265,7 @@ function TimePicker({
7244
7265
  },
7245
7266
  [disabled, isOpenControlled, onOpenChange]
7246
7267
  );
7247
- const contextValue = useMemo8(
7268
+ const contextValue = useMemo9(
7248
7269
  () => ({
7249
7270
  open,
7250
7271
  disabled,
@@ -7392,8 +7413,6 @@ import * as PopoverPrimitive6 from "@radix-ui/react-popover";
7392
7413
  import {
7393
7414
  forwardRef as forwardRef29,
7394
7415
  useCallback as useCallback14,
7395
- useEffect as useEffect9,
7396
- useRef as useRef11,
7397
7416
  useState as useState13
7398
7417
  } from "react";
7399
7418
 
@@ -7452,37 +7471,9 @@ function Popover({
7452
7471
  const [internalOpen, setInternalOpen] = useState13(defaultOpen);
7453
7472
  const isControlled = openProp !== void 0;
7454
7473
  const open = isControlled ? openProp : internalOpen;
7455
- const windowBlurCloseRef = useRef11(false);
7456
- const pointerDownCloseRef = useRef11(false);
7457
- useEffect9(() => {
7458
- const markWindowBlur = () => {
7459
- windowBlurCloseRef.current = true;
7460
- };
7461
- window.addEventListener("blur", markWindowBlur, true);
7462
- return () => window.removeEventListener("blur", markWindowBlur, true);
7463
- }, []);
7464
- useEffect9(() => {
7465
- if (!open) {
7466
- pointerDownCloseRef.current = false;
7467
- return;
7468
- }
7469
- const markPointerDown = () => {
7470
- pointerDownCloseRef.current = true;
7471
- };
7472
- document.addEventListener("pointerdown", markPointerDown, true);
7473
- return () => document.removeEventListener("pointerdown", markPointerDown, true);
7474
- }, [open]);
7475
7474
  const handleOpenChange = useCallback14(
7476
7475
  (nextOpen) => {
7477
- if (!nextOpen && windowBlurCloseRef.current && !pointerDownCloseRef.current) {
7478
- windowBlurCloseRef.current = false;
7479
- return;
7480
- }
7481
- windowBlurCloseRef.current = false;
7482
- pointerDownCloseRef.current = false;
7483
- if (!isControlled) {
7484
- setInternalOpen(nextOpen);
7485
- }
7476
+ if (!isControlled) setInternalOpen(nextOpen);
7486
7477
  onOpenChange?.(nextOpen);
7487
7478
  },
7488
7479
  [isControlled, onOpenChange]
@@ -7508,6 +7499,7 @@ var PopoverContent = forwardRef29(
7508
7499
  collisionPadding = 8,
7509
7500
  portalled = true,
7510
7501
  showArrow = false,
7502
+ flush = false,
7511
7503
  ...props
7512
7504
  }, ref) => {
7513
7505
  const content = /* @__PURE__ */ jsxs31(
@@ -7520,7 +7512,14 @@ var PopoverContent = forwardRef29(
7520
7512
  className: cn("aviala-popover-content", className),
7521
7513
  ...props,
7522
7514
  children: [
7523
- /* @__PURE__ */ jsx41("div", { className: cn("aviala-popover-content__surface", typographyVariants({ level: "text" })), children }),
7515
+ /* @__PURE__ */ jsx41(
7516
+ "div",
7517
+ {
7518
+ className: cn("aviala-popover-content__surface", typographyVariants({ level: "text" })),
7519
+ "data-flush": flush ? "true" : void 0,
7520
+ children
7521
+ }
7522
+ ),
7524
7523
  showArrow ? /* @__PURE__ */ jsx41(
7525
7524
  PopoverPrimitive6.Arrow,
7526
7525
  {
@@ -7548,6 +7547,135 @@ var PopoverContent = forwardRef29(
7548
7547
  );
7549
7548
  PopoverContent.displayName = PopoverPrimitive6.Content.displayName;
7550
7549
 
7550
+ // src/components/hover-popover.tsx
7551
+ import {
7552
+ useCallback as useCallback15,
7553
+ useEffect as useEffect10,
7554
+ useRef as useRef11,
7555
+ useState as useState15
7556
+ } from "react";
7557
+
7558
+ // src/components/use-coarse-pointer.ts
7559
+ import { useEffect as useEffect9, useState as useState14 } from "react";
7560
+ function useCoarsePointer() {
7561
+ const [coarse, setCoarse] = useState14(false);
7562
+ useEffect9(() => {
7563
+ if (typeof window === "undefined" || !window.matchMedia) return;
7564
+ const mq = window.matchMedia("(pointer: coarse)");
7565
+ const update = () => setCoarse(mq.matches);
7566
+ update();
7567
+ mq.addEventListener("change", update);
7568
+ return () => mq.removeEventListener("change", update);
7569
+ }, []);
7570
+ return coarse;
7571
+ }
7572
+
7573
+ // src/components/hover-popover.tsx
7574
+ import { jsx as jsx42, jsxs as jsxs32 } from "react/jsx-runtime";
7575
+ function HoverPopover({
7576
+ content,
7577
+ children,
7578
+ side = "top",
7579
+ align = "center",
7580
+ sideOffset = 8,
7581
+ collisionPadding = 8,
7582
+ showArrow = true,
7583
+ openDelay = 150,
7584
+ closeDelay = 150,
7585
+ open: openProp,
7586
+ defaultOpen = false,
7587
+ onOpenChange,
7588
+ contentClassName
7589
+ }) {
7590
+ const coarse = useCoarsePointer();
7591
+ const isControlled = openProp !== void 0;
7592
+ const [internalOpen, setInternalOpen] = useState15(defaultOpen);
7593
+ const open = isControlled ? openProp : internalOpen;
7594
+ const openTimer = useRef11(void 0);
7595
+ const closeTimer = useRef11(void 0);
7596
+ const clearTimers = useCallback15(() => {
7597
+ if (openTimer.current) clearTimeout(openTimer.current);
7598
+ if (closeTimer.current) clearTimeout(closeTimer.current);
7599
+ }, []);
7600
+ const setOpen = useCallback15(
7601
+ (next) => {
7602
+ if (!isControlled) setInternalOpen(next);
7603
+ onOpenChange?.(next);
7604
+ },
7605
+ [isControlled, onOpenChange]
7606
+ );
7607
+ useEffect10(() => () => clearTimers(), [clearTimers]);
7608
+ const keyboardOpenRef = useRef11(false);
7609
+ const contentRef = useRef11(null);
7610
+ const openNow = useCallback15(() => {
7611
+ keyboardOpenRef.current = false;
7612
+ clearTimers();
7613
+ openTimer.current = setTimeout(() => setOpen(true), openDelay);
7614
+ }, [clearTimers, openDelay, setOpen]);
7615
+ const closeSoon = useCallback15(() => {
7616
+ clearTimers();
7617
+ closeTimer.current = setTimeout(() => setOpen(false), closeDelay);
7618
+ }, [clearTimers, closeDelay, setOpen]);
7619
+ if (coarse) {
7620
+ return /* @__PURE__ */ jsxs32(Popover, { open, onOpenChange: setOpen, children: [
7621
+ /* @__PURE__ */ jsx42(PopoverTrigger, { asChild: true, children }),
7622
+ /* @__PURE__ */ jsx42(
7623
+ PopoverContent,
7624
+ {
7625
+ side,
7626
+ align,
7627
+ sideOffset,
7628
+ collisionPadding,
7629
+ showArrow,
7630
+ className: contentClassName,
7631
+ children: content
7632
+ }
7633
+ )
7634
+ ] });
7635
+ }
7636
+ return /* @__PURE__ */ jsxs32(Popover, { open, onOpenChange: setOpen, children: [
7637
+ /* @__PURE__ */ jsx42(
7638
+ PopoverTrigger,
7639
+ {
7640
+ asChild: true,
7641
+ onMouseEnter: openNow,
7642
+ onMouseLeave: closeSoon,
7643
+ onKeyDown: (e) => {
7644
+ if (e.key === "Enter" || e.key === " ") keyboardOpenRef.current = true;
7645
+ },
7646
+ children
7647
+ }
7648
+ ),
7649
+ /* @__PURE__ */ jsx42(
7650
+ PopoverContent,
7651
+ {
7652
+ ref: contentRef,
7653
+ side,
7654
+ align,
7655
+ sideOffset,
7656
+ collisionPadding,
7657
+ showArrow,
7658
+ className: contentClassName,
7659
+ onOpenAutoFocus: (e) => {
7660
+ if (!keyboardOpenRef.current) e.preventDefault();
7661
+ },
7662
+ onEscapeKeyDown: (e) => {
7663
+ e.preventDefault();
7664
+ setOpen(false);
7665
+ },
7666
+ onMouseEnter: clearTimers,
7667
+ onMouseLeave: closeSoon,
7668
+ onBlur: (e) => {
7669
+ const next = e.relatedTarget;
7670
+ if (next && contentRef.current?.contains(next)) return;
7671
+ closeSoon();
7672
+ },
7673
+ children: content
7674
+ }
7675
+ )
7676
+ ] });
7677
+ }
7678
+
7551
7679
  // src/components/modal.tsx
7552
7680
  import * as DialogPrimitive from "@radix-ui/react-dialog";
7553
7681
  import { SymbolWrong as SymbolWrong2 } from "@aviala-design/icons";
@@ -7557,7 +7685,7 @@ import {
7557
7685
  forwardRef as forwardRef30,
7558
7686
  isValidElement as isValidElement13
7559
7687
  } from "react";
7560
- import { Fragment as Fragment6, jsx as jsx42, jsxs as jsxs32 } from "react/jsx-runtime";
7688
+ import { Fragment as Fragment6, jsx as jsx43, jsxs as jsxs33 } from "react/jsx-runtime";
7561
7689
  var MODAL_ICON_SIZE = 16;
7562
7690
  var modalContentVariants = cva10("aviala-modal-content", {
7563
7691
  variants: {
@@ -7580,13 +7708,13 @@ function renderModalIcon(node) {
7580
7708
  "shrink-0"
7581
7709
  )
7582
7710
  }) : node;
7583
- return /* @__PURE__ */ jsx42("span", { className: "aviala-modal__icon", "aria-hidden": true, children: content });
7711
+ return /* @__PURE__ */ jsx43("span", { className: "aviala-modal__icon", "aria-hidden": true, children: content });
7584
7712
  }
7585
7713
  var Modal = DialogPrimitive.Root;
7586
7714
  var ModalTrigger = DialogPrimitive.Trigger;
7587
7715
  var ModalPortal = DialogPrimitive.Portal;
7588
7716
  var ModalClose = DialogPrimitive.Close;
7589
- var ModalOverlay = forwardRef30(({ className, ...props }, ref) => /* @__PURE__ */ jsx42(
7717
+ var ModalOverlay = forwardRef30(({ className, ...props }, ref) => /* @__PURE__ */ jsx43(
7590
7718
  DialogPrimitive.Overlay,
7591
7719
  {
7592
7720
  ref,
@@ -7605,24 +7733,24 @@ var ModalContent = forwardRef30(
7605
7733
  onOpenAutoFocus,
7606
7734
  ...props
7607
7735
  }, ref) => {
7608
- const overlay = showOverlay ? /* @__PURE__ */ jsx42(ModalOverlay, {}) : null;
7609
- const panel = /* @__PURE__ */ jsx42(
7736
+ const overlay = showOverlay ? /* @__PURE__ */ jsx43(ModalOverlay, {}) : null;
7737
+ const panel = /* @__PURE__ */ jsx43(
7610
7738
  DialogPrimitive.Content,
7611
7739
  {
7612
7740
  ref,
7613
7741
  className: cn(modalContentVariants({ size }), className),
7614
7742
  onOpenAutoFocus,
7615
7743
  ...props,
7616
- children: /* @__PURE__ */ jsx42("div", { className: "aviala-modal-content__surface", children })
7744
+ children: /* @__PURE__ */ jsx43("div", { className: "aviala-modal-content__surface", children })
7617
7745
  }
7618
7746
  );
7619
7747
  if (!portalled) {
7620
- return /* @__PURE__ */ jsxs32(Fragment6, { children: [
7748
+ return /* @__PURE__ */ jsxs33(Fragment6, { children: [
7621
7749
  overlay,
7622
7750
  panel
7623
7751
  ] });
7624
7752
  }
7625
- return /* @__PURE__ */ jsxs32(DialogPrimitive.Portal, { children: [
7753
+ return /* @__PURE__ */ jsxs33(DialogPrimitive.Portal, { children: [
7626
7754
  overlay,
7627
7755
  panel
7628
7756
  ] });
@@ -7638,10 +7766,10 @@ var ModalHeader = forwardRef30(
7638
7766
  showClose = true,
7639
7767
  closeLabel = "Close dialog",
7640
7768
  ...props
7641
- }, ref) => /* @__PURE__ */ jsx42("div", { ref, className: cn("aviala-modal__header", className), ...props, children: /* @__PURE__ */ jsxs32("div", { className: "aviala-modal__header-row", children: [
7769
+ }, ref) => /* @__PURE__ */ jsx43("div", { ref, className: cn("aviala-modal__header", className), ...props, children: /* @__PURE__ */ jsxs33("div", { className: "aviala-modal__header-row", children: [
7642
7770
  showIcon ? renderModalIcon(icon) : null,
7643
- /* @__PURE__ */ jsx42("div", { className: "aviala-modal__header-main", children }),
7644
- showClose ? /* @__PURE__ */ jsx42(DialogPrimitive.Close, { asChild: true, children: /* @__PURE__ */ jsx42(
7771
+ /* @__PURE__ */ jsx43("div", { className: "aviala-modal__header-main", children }),
7772
+ showClose ? /* @__PURE__ */ jsx43(DialogPrimitive.Close, { asChild: true, children: /* @__PURE__ */ jsx43(
7645
7773
  Button,
7646
7774
  {
7647
7775
  type: "button",
@@ -7649,28 +7777,28 @@ var ModalHeader = forwardRef30(
7649
7777
  iconOnly: true,
7650
7778
  "aria-label": closeLabel,
7651
7779
  className: "aviala-modal__close",
7652
- leftIcon: /* @__PURE__ */ jsx42(SymbolWrong2, { "aria-hidden": true })
7780
+ leftIcon: /* @__PURE__ */ jsx43(SymbolWrong2, { "aria-hidden": true })
7653
7781
  }
7654
7782
  ) }) : null
7655
7783
  ] }) })
7656
7784
  );
7657
7785
  ModalHeader.displayName = "ModalHeader";
7658
- var ModalTitle = forwardRef30(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx42(DialogPrimitive.Title, { ref, asChild: true, ...props, children: /* @__PURE__ */ jsx42(Typography, { level: "text", className: cn("aviala-modal__title", className), children }) }));
7786
+ var ModalTitle = forwardRef30(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx43(DialogPrimitive.Title, { ref, asChild: true, ...props, children: /* @__PURE__ */ jsx43(Typography, { level: "text", className: cn("aviala-modal__title", className), children }) }));
7659
7787
  ModalTitle.displayName = DialogPrimitive.Title.displayName;
7660
- var ModalDescription = forwardRef30(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx42(DialogPrimitive.Description, { ref, asChild: true, ...props, children: /* @__PURE__ */ jsx42(Typography, { level: "caption", className: cn("aviala-modal__description", className), children }) }));
7788
+ var ModalDescription = forwardRef30(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx43(DialogPrimitive.Description, { ref, asChild: true, ...props, children: /* @__PURE__ */ jsx43(Typography, { level: "caption", className: cn("aviala-modal__description", className), children }) }));
7661
7789
  ModalDescription.displayName = DialogPrimitive.Description.displayName;
7662
7790
  function ModalHeaderText({
7663
7791
  title,
7664
7792
  description,
7665
7793
  ...props
7666
7794
  }) {
7667
- return /* @__PURE__ */ jsx42(ModalHeader, { ...props, children: /* @__PURE__ */ jsxs32("div", { className: "aviala-modal__header-typeface", children: [
7668
- /* @__PURE__ */ jsx42(ModalTitle, { children: title }),
7669
- description ? /* @__PURE__ */ jsx42(ModalDescription, { children: description }) : null
7795
+ return /* @__PURE__ */ jsx43(ModalHeader, { ...props, children: /* @__PURE__ */ jsxs33("div", { className: "aviala-modal__header-typeface", children: [
7796
+ /* @__PURE__ */ jsx43(ModalTitle, { children: title }),
7797
+ description ? /* @__PURE__ */ jsx43(ModalDescription, { children: description }) : null
7670
7798
  ] }) });
7671
7799
  }
7672
7800
  var ModalBody = forwardRef30(
7673
- ({ className, children, layout = "default", title, description, ...props }, ref) => /* @__PURE__ */ jsx42("div", { ref, className: cn("aviala-modal__body", className), ...props, children: layout === "text" ? /* @__PURE__ */ jsx42(
7801
+ ({ className, children, layout = "default", title, description, ...props }, ref) => /* @__PURE__ */ jsx43("div", { ref, className: cn("aviala-modal__body", className), ...props, children: layout === "text" ? /* @__PURE__ */ jsx43(
7674
7802
  Typeface,
7675
7803
  {
7676
7804
  className: "aviala-modal__body-typeface",
@@ -7682,21 +7810,21 @@ var ModalBody = forwardRef30(
7682
7810
  );
7683
7811
  ModalBody.displayName = "ModalBody";
7684
7812
  var ModalFooter = forwardRef30(
7685
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx42("div", { ref, className: cn("aviala-modal__footer", className), ...props })
7813
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx43("div", { ref, className: cn("aviala-modal__footer", className), ...props })
7686
7814
  );
7687
7815
  ModalFooter.displayName = "ModalFooter";
7688
7816
 
7689
7817
  // src/components/tooltip.tsx
7690
7818
  import * as TooltipPrimitive from "@radix-ui/react-tooltip";
7691
7819
  import { forwardRef as forwardRef31 } from "react";
7692
- import { jsx as jsx43, jsxs as jsxs33 } from "react/jsx-runtime";
7820
+ import { jsx as jsx44, jsxs as jsxs34 } from "react/jsx-runtime";
7693
7821
  var TOOLTIP_DELAY_DURATION = 300;
7694
7822
  function TooltipProvider({
7695
7823
  delayDuration = TOOLTIP_DELAY_DURATION,
7696
7824
  skipDelayDuration = 0,
7697
7825
  ...props
7698
7826
  }) {
7699
- return /* @__PURE__ */ jsx43(
7827
+ return /* @__PURE__ */ jsx44(
7700
7828
  TooltipPrimitive.Provider,
7701
7829
  {
7702
7830
  delayDuration,
@@ -7715,7 +7843,7 @@ var TooltipContent = forwardRef31(
7715
7843
  collisionPadding = 8,
7716
7844
  showArrow = true,
7717
7845
  ...props
7718
- }, ref) => /* @__PURE__ */ jsx43(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsxs33(
7846
+ }, ref) => /* @__PURE__ */ jsx44(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsxs34(
7719
7847
  TooltipPrimitive.Content,
7720
7848
  {
7721
7849
  ref,
@@ -7724,14 +7852,14 @@ var TooltipContent = forwardRef31(
7724
7852
  className: cn("aviala-tooltip-content", className),
7725
7853
  ...props,
7726
7854
  children: [
7727
- /* @__PURE__ */ jsx43("div", { className: cn("aviala-tooltip-content__surface", typographyVariants({ level: "caption" })), children }),
7728
- showArrow ? /* @__PURE__ */ jsx43(
7855
+ /* @__PURE__ */ jsx44("div", { className: cn("aviala-tooltip-content__surface", typographyVariants({ level: "caption" })), children }),
7856
+ showArrow ? /* @__PURE__ */ jsx44(
7729
7857
  TooltipPrimitive.Arrow,
7730
7858
  {
7731
7859
  asChild: true,
7732
7860
  width: TOOLTIP_POINTER.width,
7733
7861
  height: TOOLTIP_POINTER.height,
7734
- children: /* @__PURE__ */ jsx43(
7862
+ children: /* @__PURE__ */ jsx44(
7735
7863
  OverlayPointerSvg,
7736
7864
  {
7737
7865
  className: "aviala-tooltip-content__arrow",
@@ -7748,6 +7876,66 @@ var TooltipContent = forwardRef31(
7748
7876
  );
7749
7877
  TooltipContent.displayName = TooltipPrimitive.Content.displayName;
7750
7878
 
7879
+ // src/components/responsive-tooltip.tsx
7880
+ import { jsx as jsx45, jsxs as jsxs35 } from "react/jsx-runtime";
7881
+ function ResponsiveTooltip({
7882
+ content,
7883
+ children,
7884
+ side = "top",
7885
+ align = "center",
7886
+ sideOffset = 4,
7887
+ collisionPadding = 8,
7888
+ showArrow = true,
7889
+ delayDuration = TOOLTIP_DELAY_DURATION,
7890
+ open,
7891
+ defaultOpen,
7892
+ onOpenChange,
7893
+ contentClassName
7894
+ }) {
7895
+ const coarse = useCoarsePointer();
7896
+ if (coarse) {
7897
+ return /* @__PURE__ */ jsxs35(Popover, { open, defaultOpen, onOpenChange, children: [
7898
+ /* @__PURE__ */ jsx45(PopoverTrigger, { asChild: true, children }),
7899
+ /* @__PURE__ */ jsx45(
7900
+ PopoverContent,
7901
+ {
7902
+ side,
7903
+ align,
7904
+ sideOffset,
7905
+ collisionPadding,
7906
+ showArrow,
7907
+ className: contentClassName,
7908
+ children: content
7909
+ }
7910
+ )
7911
+ ] });
7912
+ }
7913
+ return /* @__PURE__ */ jsxs35(
7914
+ Tooltip,
7915
+ {
7916
+ delayDuration,
7917
+ open,
7918
+ defaultOpen,
7919
+ onOpenChange,
7920
+ children: [
7921
+ /* @__PURE__ */ jsx45(TooltipTrigger, { asChild: true, children }),
7922
+ /* @__PURE__ */ jsx45(
7923
+ TooltipContent,
7924
+ {
7925
+ side,
7926
+ align,
7927
+ sideOffset,
7928
+ collisionPadding,
7929
+ showArrow,
7930
+ className: contentClassName,
7931
+ children: content
7932
+ }
7933
+ )
7934
+ ]
7935
+ }
7936
+ );
7937
+ }
7938
+
7751
7939
  // src/components/feedback.tsx
7752
7940
  import { cva as cva11 } from "class-variance-authority";
7753
7941
  import {
@@ -7763,7 +7951,7 @@ import {
7763
7951
  forwardRef as forwardRef32,
7764
7952
  isValidElement as isValidElement14
7765
7953
  } from "react";
7766
- import { jsx as jsx44, jsxs as jsxs34 } from "react/jsx-runtime";
7954
+ import { jsx as jsx46, jsxs as jsxs36 } from "react/jsx-runtime";
7767
7955
  var FEEDBACK_ICON_SIZE = 22;
7768
7956
  var feedbackVariants = cva11("aviala-feedback", {
7769
7957
  variants: {
@@ -7799,22 +7987,22 @@ function renderFeedbackIcon(node) {
7799
7987
  "shrink-0"
7800
7988
  )
7801
7989
  }) : node;
7802
- return /* @__PURE__ */ jsx44("span", { className: "aviala-feedback__icon", "aria-hidden": true, children: content });
7990
+ return /* @__PURE__ */ jsx46("span", { className: "aviala-feedback__icon", "aria-hidden": true, children: content });
7803
7991
  }
7804
7992
  function defaultStatusIcon(type, mode) {
7805
7993
  const iconMode = mode === "primary" ? "fill" : "fill";
7806
7994
  const thickness = "Regular";
7807
7995
  switch (type) {
7808
7996
  case "information":
7809
- return /* @__PURE__ */ jsx44(SymbolInformationCircle2, { thickness, mode: iconMode, "aria-hidden": true });
7997
+ return /* @__PURE__ */ jsx46(SymbolInformationCircle2, { thickness, mode: iconMode, "aria-hidden": true });
7810
7998
  case "warning":
7811
- return /* @__PURE__ */ jsx44(SymbolWarningCircle, { thickness, mode: iconMode, "aria-hidden": true });
7999
+ return /* @__PURE__ */ jsx46(SymbolWarningCircle, { thickness, mode: iconMode, "aria-hidden": true });
7812
8000
  case "wrong":
7813
- return /* @__PURE__ */ jsx44(SymbolWrongCircle2, { thickness, mode: iconMode, "aria-hidden": true });
8001
+ return /* @__PURE__ */ jsx46(SymbolWrongCircle2, { thickness, mode: iconMode, "aria-hidden": true });
7814
8002
  case "success":
7815
- return /* @__PURE__ */ jsx44(SymbolRightCircle, { thickness, mode: iconMode, "aria-hidden": true });
8003
+ return /* @__PURE__ */ jsx46(SymbolRightCircle, { thickness, mode: iconMode, "aria-hidden": true });
7816
8004
  case "normal":
7817
- return /* @__PURE__ */ jsx44(GeneralNotification, { thickness, mode: "default", "aria-hidden": true });
8005
+ return /* @__PURE__ */ jsx46(GeneralNotification, { thickness, mode: "default", "aria-hidden": true });
7818
8006
  }
7819
8007
  }
7820
8008
  var Feedback = forwardRef32(
@@ -7839,7 +8027,7 @@ var Feedback = forwardRef32(
7839
8027
  const tone = mode === "primary" ? "white" : "default";
7840
8028
  const isSmall = resolvedSize === "small";
7841
8029
  const resolvedRole = resolvedType === "wrong" ? "alert" : "status";
7842
- return /* @__PURE__ */ jsx44(
8030
+ return /* @__PURE__ */ jsx46(
7843
8031
  "div",
7844
8032
  {
7845
8033
  ref,
@@ -7853,9 +8041,9 @@ var Feedback = forwardRef32(
7853
8041
  "data-size": resolvedSize,
7854
8042
  "data-mode": mode,
7855
8043
  ...props,
7856
- children: /* @__PURE__ */ jsxs34("div", { className: "aviala-feedback__body", children: [
8044
+ children: /* @__PURE__ */ jsxs36("div", { className: "aviala-feedback__body", children: [
7857
8045
  renderFeedbackIcon(icon ?? defaultStatusIcon(resolvedType, mode)),
7858
- isSmall ? /* @__PURE__ */ jsx44(Typography, { level: "text", tone, className: "aviala-feedback__title", children: title }) : /* @__PURE__ */ jsx44(
8046
+ isSmall ? /* @__PURE__ */ jsx46(Typography, { level: "text", tone, className: "aviala-feedback__title", children: title }) : /* @__PURE__ */ jsx46(
7859
8047
  Typeface,
7860
8048
  {
7861
8049
  className: "aviala-feedback__typeface",
@@ -7865,7 +8053,7 @@ var Feedback = forwardRef32(
7865
8053
  tone
7866
8054
  }
7867
8055
  ),
7868
- action ? /* @__PURE__ */ jsx44(
8056
+ action ? /* @__PURE__ */ jsx46(
7869
8057
  Link,
7870
8058
  {
7871
8059
  level: "text",
@@ -7881,7 +8069,7 @@ var Feedback = forwardRef32(
7881
8069
  children: action
7882
8070
  }
7883
8071
  ) : null,
7884
- showClose ? /* @__PURE__ */ jsx44(
8072
+ showClose ? /* @__PURE__ */ jsx46(
7885
8073
  Link,
7886
8074
  {
7887
8075
  level: "text",
@@ -7890,7 +8078,7 @@ var Feedback = forwardRef32(
7890
8078
  href: onClose ? "#" : void 0,
7891
8079
  "aria-label": closeLabel,
7892
8080
  className: "aviala-feedback__close",
7893
- leftIcon: /* @__PURE__ */ jsx44(SymbolWrong3, { "aria-hidden": true }),
8081
+ leftIcon: /* @__PURE__ */ jsx46(SymbolWrong3, { "aria-hidden": true }),
7894
8082
  onClick: (event) => {
7895
8083
  if (onClose) {
7896
8084
  event.preventDefault();
@@ -7920,7 +8108,7 @@ import {
7920
8108
  forwardRef as forwardRef33,
7921
8109
  isValidElement as isValidElement15
7922
8110
  } from "react";
7923
- import { jsx as jsx45, jsxs as jsxs35 } from "react/jsx-runtime";
8111
+ import { jsx as jsx47, jsxs as jsxs37 } from "react/jsx-runtime";
7924
8112
  var ALERT_ICON_SIZE = 16;
7925
8113
  var alertVariants = cva12("aviala-alert", {
7926
8114
  variants: {
@@ -7956,20 +8144,20 @@ function renderAlertIcon(node) {
7956
8144
  "shrink-0"
7957
8145
  )
7958
8146
  }) : node;
7959
- return /* @__PURE__ */ jsx45("span", { className: "aviala-alert__icon", "aria-hidden": true, children: content });
8147
+ return /* @__PURE__ */ jsx47("span", { className: "aviala-alert__icon", "aria-hidden": true, children: content });
7960
8148
  }
7961
8149
  function defaultStatusIcon2(type) {
7962
8150
  const iconProps = { thickness: "Regular", mode: "fill", "aria-hidden": true };
7963
8151
  switch (type) {
7964
8152
  case "info":
7965
8153
  case "neutral":
7966
- return /* @__PURE__ */ jsx45(SymbolInformationCircle3, { ...iconProps });
8154
+ return /* @__PURE__ */ jsx47(SymbolInformationCircle3, { ...iconProps });
7967
8155
  case "warning":
7968
- return /* @__PURE__ */ jsx45(SymbolWarningCircle2, { ...iconProps });
8156
+ return /* @__PURE__ */ jsx47(SymbolWarningCircle2, { ...iconProps });
7969
8157
  case "error":
7970
- return /* @__PURE__ */ jsx45(SymbolWrongCircle3, { ...iconProps });
8158
+ return /* @__PURE__ */ jsx47(SymbolWrongCircle3, { ...iconProps });
7971
8159
  case "success":
7972
- return /* @__PURE__ */ jsx45(SymbolRightCircle2, { ...iconProps });
8160
+ return /* @__PURE__ */ jsx47(SymbolRightCircle2, { ...iconProps });
7973
8161
  }
7974
8162
  }
7975
8163
  var Alert = forwardRef33(
@@ -7998,7 +8186,7 @@ var Alert = forwardRef33(
7998
8186
  const resolvedType = type ?? "info";
7999
8187
  const resolvedRole = resolvedType === "error" ? "alert" : "status";
8000
8188
  const hasActions = showActions && (action || secondaryAction);
8001
- return /* @__PURE__ */ jsxs35(
8189
+ return /* @__PURE__ */ jsxs37(
8002
8190
  "div",
8003
8191
  {
8004
8192
  ref,
@@ -8010,9 +8198,9 @@ var Alert = forwardRef33(
8010
8198
  "data-appearance": appearance,
8011
8199
  ...props,
8012
8200
  children: [
8013
- /* @__PURE__ */ jsxs35("div", { className: "aviala-alert__body", children: [
8201
+ /* @__PURE__ */ jsxs37("div", { className: "aviala-alert__body", children: [
8014
8202
  showIcon ? renderAlertIcon(icon ?? defaultStatusIcon2(resolvedType)) : null,
8015
- isSmall ? /* @__PURE__ */ jsx45(Typography, { level: "text", className: "aviala-alert__title", children: title }) : /* @__PURE__ */ jsx45(
8203
+ isSmall ? /* @__PURE__ */ jsx47(Typography, { level: "text", className: "aviala-alert__title", children: title }) : /* @__PURE__ */ jsx47(
8016
8204
  Typeface,
8017
8205
  {
8018
8206
  className: "aviala-alert__typeface",
@@ -8021,7 +8209,7 @@ var Alert = forwardRef33(
8021
8209
  secondary: description
8022
8210
  }
8023
8211
  ),
8024
- quickAction ? /* @__PURE__ */ jsx45(
8212
+ quickAction ? /* @__PURE__ */ jsx47(
8025
8213
  Link,
8026
8214
  {
8027
8215
  level: "text",
@@ -8037,7 +8225,7 @@ var Alert = forwardRef33(
8037
8225
  children: quickAction
8038
8226
  }
8039
8227
  ) : null,
8040
- dismissible ? /* @__PURE__ */ jsx45(
8228
+ dismissible ? /* @__PURE__ */ jsx47(
8041
8229
  Link,
8042
8230
  {
8043
8231
  level: "text",
@@ -8046,7 +8234,7 @@ var Alert = forwardRef33(
8046
8234
  href: onDismiss ? "#" : void 0,
8047
8235
  "aria-label": closeLabel,
8048
8236
  className: "aviala-alert__close",
8049
- leftIcon: /* @__PURE__ */ jsx45(SymbolWrong4, { "aria-hidden": true }),
8237
+ leftIcon: /* @__PURE__ */ jsx47(SymbolWrong4, { "aria-hidden": true }),
8050
8238
  onClick: (event) => {
8051
8239
  if (onDismiss) {
8052
8240
  event.preventDefault();
@@ -8056,8 +8244,8 @@ var Alert = forwardRef33(
8056
8244
  }
8057
8245
  ) : null
8058
8246
  ] }),
8059
- hasActions ? /* @__PURE__ */ jsxs35("div", { className: "aviala-alert__actions", children: [
8060
- action ? /* @__PURE__ */ jsx45(
8247
+ hasActions ? /* @__PURE__ */ jsxs37("div", { className: "aviala-alert__actions", children: [
8248
+ action ? /* @__PURE__ */ jsx47(
8061
8249
  Link,
8062
8250
  {
8063
8251
  level: "caption",
@@ -8073,7 +8261,7 @@ var Alert = forwardRef33(
8073
8261
  children: action
8074
8262
  }
8075
8263
  ) : null,
8076
- secondaryAction ? /* @__PURE__ */ jsx45(
8264
+ secondaryAction ? /* @__PURE__ */ jsx47(
8077
8265
  Link,
8078
8266
  {
8079
8267
  level: "caption",
@@ -8107,30 +8295,30 @@ import {
8107
8295
  forwardRef as forwardRef34,
8108
8296
  isValidElement as isValidElement16
8109
8297
  } from "react";
8110
- import { jsx as jsx46, jsxs as jsxs36 } from "react/jsx-runtime";
8298
+ import { jsx as jsx48, jsxs as jsxs38 } from "react/jsx-runtime";
8111
8299
  var List = forwardRef34(
8112
- ({ className, title, children, ...props }, ref) => /* @__PURE__ */ jsxs36("div", { ref, className: cn("aviala-list", className), ...props, children: [
8113
- title != null ? /* @__PURE__ */ jsx46(ListTitle, { children: title }) : null,
8114
- /* @__PURE__ */ jsx46(ListGroup, { children })
8300
+ ({ className, title, children, ...props }, ref) => /* @__PURE__ */ jsxs38("div", { ref, className: cn("aviala-list", className), ...props, children: [
8301
+ title != null ? /* @__PURE__ */ jsx48(ListTitle, { children: title }) : null,
8302
+ /* @__PURE__ */ jsx48(ListGroup, { children })
8115
8303
  ] })
8116
8304
  );
8117
8305
  List.displayName = "List";
8118
8306
  var ListTitle = forwardRef34(
8119
- ({ className, children, ...props }, ref) => /* @__PURE__ */ jsx46("div", { ref, className: cn("aviala-list-title", className), ...props, children: /* @__PURE__ */ jsx46("span", { className: cn(typographyVariants({ level: "text" })), children }) })
8307
+ ({ className, children, ...props }, ref) => /* @__PURE__ */ jsx48("div", { ref, className: cn("aviala-list-title", className), ...props, children: /* @__PURE__ */ jsx48("span", { className: cn(typographyVariants({ level: "text" })), children }) })
8120
8308
  );
8121
8309
  ListTitle.displayName = "ListTitle";
8122
8310
  var ListGroup = forwardRef34(
8123
- ({ className, children, ...props }, ref) => /* @__PURE__ */ jsx46("div", { ref, className: cn("aviala-list-group", className), role: "list", ...props, children })
8311
+ ({ className, children, ...props }, ref) => /* @__PURE__ */ jsx48("div", { ref, className: cn("aviala-list-group", className), role: "list", ...props, children })
8124
8312
  );
8125
8313
  ListGroup.displayName = "ListGroup";
8126
8314
  function ListItemGroup({ label, children, className }) {
8127
- return /* @__PURE__ */ jsxs36("div", { className: cn("aviala-list", className), children: [
8128
- label != null ? /* @__PURE__ */ jsx46(ListTitle, { children: label }) : null,
8129
- /* @__PURE__ */ jsx46(ListGroup, { children })
8315
+ return /* @__PURE__ */ jsxs38("div", { className: cn("aviala-list", className), children: [
8316
+ label != null ? /* @__PURE__ */ jsx48(ListTitle, { children: label }) : null,
8317
+ /* @__PURE__ */ jsx48(ListGroup, { children })
8130
8318
  ] });
8131
8319
  }
8132
8320
  var ListDivider = forwardRef34(
8133
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx46(
8321
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx48(
8134
8322
  "span",
8135
8323
  {
8136
8324
  ref,
@@ -8142,13 +8330,13 @@ var ListDivider = forwardRef34(
8142
8330
  );
8143
8331
  ListDivider.displayName = "ListDivider";
8144
8332
  var ListSeparator = forwardRef34(
8145
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx46("hr", { ref, className: cn("aviala-list-separator", className), ...props })
8333
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx48("hr", { ref, className: cn("aviala-list-separator", className), ...props })
8146
8334
  );
8147
8335
  ListSeparator.displayName = "ListSeparator";
8148
8336
  function renderLeadingIcon(node, leading) {
8149
8337
  if (leading === "none") return null;
8150
8338
  const iconSize = leading === "shaped" ? 20 : 22;
8151
- const content = node ?? (leading === "shaped" ? /* @__PURE__ */ jsx46(GeneralSetting, { "aria-hidden": true }) : /* @__PURE__ */ jsx46(GeneralSetting, { "aria-hidden": true }));
8339
+ const content = node ?? (leading === "shaped" ? /* @__PURE__ */ jsx48(GeneralSetting, { "aria-hidden": true }) : /* @__PURE__ */ jsx48(GeneralSetting, { "aria-hidden": true }));
8152
8340
  const rendered = isValidElement16(content) && typeof content.type !== "string" ? cloneElement11(content, {
8153
8341
  width: iconSize,
8154
8342
  height: iconSize,
@@ -8157,7 +8345,7 @@ function renderLeadingIcon(node, leading) {
8157
8345
  "shrink-0"
8158
8346
  )
8159
8347
  }) : content;
8160
- return /* @__PURE__ */ jsx46("span", { className: "aviala-list-item__icon", children: /* @__PURE__ */ jsx46(
8348
+ return /* @__PURE__ */ jsx48("span", { className: "aviala-list-item__icon", children: /* @__PURE__ */ jsx48(
8161
8349
  "span",
8162
8350
  {
8163
8351
  className: cn(
@@ -8188,44 +8376,44 @@ var ListItem = forwardRef34(
8188
8376
  ...props
8189
8377
  }, ref) => {
8190
8378
  const isInteractive = interactive ?? onClick != null;
8191
- const primaryAction = action ?? /* @__PURE__ */ jsx46(Button, { mode: "primary", size: "regular", leftIcon: /* @__PURE__ */ jsx46(GeneralSetting, { "aria-hidden": true }), children: actionLabel });
8379
+ const primaryAction = action ?? /* @__PURE__ */ jsx48(Button, { mode: "primary", size: "regular", leftIcon: /* @__PURE__ */ jsx48(GeneralSetting, { "aria-hidden": true }), children: actionLabel });
8192
8380
  const renderTrailing = () => {
8193
8381
  if (trailing !== void 0) return trailing;
8194
8382
  switch (itemType) {
8195
8383
  case "action":
8196
- return /* @__PURE__ */ jsxs36("div", { className: "aviala-list-item__more", children: [
8197
- /* @__PURE__ */ jsxs36("div", { className: "aviala-list-item__trailing", children: [
8384
+ return /* @__PURE__ */ jsxs38("div", { className: "aviala-list-item__more", children: [
8385
+ /* @__PURE__ */ jsxs38("div", { className: "aviala-list-item__trailing", children: [
8198
8386
  primaryAction,
8199
- secondaryAction ?? /* @__PURE__ */ jsx46(
8387
+ secondaryAction ?? /* @__PURE__ */ jsx48(
8200
8388
  Button,
8201
8389
  {
8202
8390
  mode: "default",
8203
8391
  size: "regular",
8204
8392
  iconOnly: true,
8205
8393
  "aria-label": "More",
8206
- leftIcon: /* @__PURE__ */ jsx46(GeneralSetting, { "aria-hidden": true })
8394
+ leftIcon: /* @__PURE__ */ jsx48(GeneralSetting, { "aria-hidden": true })
8207
8395
  }
8208
8396
  )
8209
8397
  ] }),
8210
- /* @__PURE__ */ jsx46(ListDivider, {}),
8211
- /* @__PURE__ */ jsx46("span", { className: "aviala-list-item__chevron", "aria-hidden": true, children: /* @__PURE__ */ jsx46(DirectionArrowRightLight2, { width: 18, height: 18 }) })
8398
+ /* @__PURE__ */ jsx48(ListDivider, {}),
8399
+ /* @__PURE__ */ jsx48("span", { className: "aviala-list-item__chevron", "aria-hidden": true, children: /* @__PURE__ */ jsx48(DirectionArrowRightLight2, { width: 18, height: 18 }) })
8212
8400
  ] });
8213
8401
  case "switch":
8214
- return /* @__PURE__ */ jsxs36("div", { className: "aviala-list-item__trailing", children: [
8402
+ return /* @__PURE__ */ jsxs38("div", { className: "aviala-list-item__trailing", children: [
8215
8403
  primaryAction,
8216
- /* @__PURE__ */ jsx46(ListDivider, {}),
8217
- /* @__PURE__ */ jsx46(Switch, { ...switchProps })
8404
+ /* @__PURE__ */ jsx48(ListDivider, {}),
8405
+ /* @__PURE__ */ jsx48(Switch, { ...switchProps })
8218
8406
  ] });
8219
8407
  case "select":
8220
8408
  default:
8221
- return /* @__PURE__ */ jsxs36("div", { className: "aviala-list-item__trailing", children: [
8409
+ return /* @__PURE__ */ jsxs38("div", { className: "aviala-list-item__trailing", children: [
8222
8410
  primaryAction,
8223
- /* @__PURE__ */ jsx46(ListDivider, {}),
8224
- /* @__PURE__ */ jsx46("span", { className: "aviala-list-item__select", children: select })
8411
+ /* @__PURE__ */ jsx48(ListDivider, {}),
8412
+ /* @__PURE__ */ jsx48("span", { className: "aviala-list-item__select", children: select })
8225
8413
  ] });
8226
8414
  }
8227
8415
  };
8228
- return /* @__PURE__ */ jsxs36(
8416
+ return /* @__PURE__ */ jsxs38(
8229
8417
  "div",
8230
8418
  {
8231
8419
  ref,
@@ -8240,8 +8428,8 @@ var ListItem = forwardRef34(
8240
8428
  ...props,
8241
8429
  children: [
8242
8430
  renderLeadingIcon(icon, leading),
8243
- /* @__PURE__ */ jsx46("div", { className: "aviala-list-item__body", children: /* @__PURE__ */ jsxs36("div", { className: "aviala-list-item__content", children: [
8244
- /* @__PURE__ */ jsx46("div", { className: "aviala-list-item__head", children: /* @__PURE__ */ jsx46(Typeface, { content: "textCaption", primary: title, secondary: subtitle }) }),
8431
+ /* @__PURE__ */ jsx48("div", { className: "aviala-list-item__body", children: /* @__PURE__ */ jsxs38("div", { className: "aviala-list-item__content", children: [
8432
+ /* @__PURE__ */ jsx48("div", { className: "aviala-list-item__head", children: /* @__PURE__ */ jsx48(Typeface, { content: "textCaption", primary: title, secondary: subtitle }) }),
8245
8433
  renderTrailing()
8246
8434
  ] }) })
8247
8435
  ]
@@ -8257,15 +8445,15 @@ import { Slot as Slot5 } from "@radix-ui/react-slot";
8257
8445
  import {
8258
8446
  createContext as createContext8,
8259
8447
  forwardRef as forwardRef35,
8260
- useCallback as useCallback15,
8448
+ useCallback as useCallback16,
8261
8449
  useContext as useContext8,
8262
- useEffect as useEffect10,
8450
+ useEffect as useEffect11,
8263
8451
  useLayoutEffect as useLayoutEffect6,
8264
- useMemo as useMemo9,
8452
+ useMemo as useMemo10,
8265
8453
  useRef as useRef12,
8266
- useState as useState14
8454
+ useState as useState16
8267
8455
  } from "react";
8268
- import { Fragment as Fragment7, jsx as jsx47, jsxs as jsxs37 } from "react/jsx-runtime";
8456
+ import { Fragment as Fragment7, jsx as jsx49, jsxs as jsxs39 } from "react/jsx-runtime";
8269
8457
  function navigationItemButtonMode(active) {
8270
8458
  return active ? "second" : "noBackgroundCustom";
8271
8459
  }
@@ -8330,11 +8518,17 @@ function measureNavigationIndicator(group, direction) {
8330
8518
  50
8331
8519
  );
8332
8520
  if (direction === "vertical") {
8521
+ let inset = railInset;
8522
+ if (item.matches(":active")) {
8523
+ inset = readIndicatorToken(group, "--navigation-rail-inset-press", 9);
8524
+ } else if (item.matches(":hover")) {
8525
+ inset = readIndicatorToken(group, "--navigation-rail-inset-hover", 3);
8526
+ }
8333
8527
  return {
8334
8528
  x: railLeft,
8335
- y: itemRect.top - groupRect.top + railInset,
8529
+ y: itemRect.top - groupRect.top + inset,
8336
8530
  width: railWidth,
8337
- height: Math.max(0, itemRect.height - railInset * 2),
8531
+ height: Math.max(0, itemRect.height - inset * 2),
8338
8532
  visible: true
8339
8533
  };
8340
8534
  }
@@ -8433,13 +8627,13 @@ function useNavigationIndicator(groupRef, direction, layoutKey) {
8433
8627
  const layoutTrackingFrameRef = useRef12(null);
8434
8628
  const isLayoutTrackingRef = useRef12(false);
8435
8629
  const isInitialMount = useRef12(true);
8436
- const [activeRevision, setActiveRevision] = useState14(0);
8437
- const measureIndicator = useCallback15(() => {
8630
+ const [activeRevision, setActiveRevision] = useState16(0);
8631
+ const measureIndicator = useCallback16(() => {
8438
8632
  const group = groupRef.current;
8439
8633
  if (!group) return null;
8440
8634
  return measureNavigationIndicator(group, direction);
8441
8635
  }, [direction, groupRef]);
8442
- const syncIndicator = useCallback15(
8636
+ const syncIndicator = useCallback16(
8443
8637
  (metrics, instant = false) => {
8444
8638
  metricsRef.current = metrics;
8445
8639
  const el = indicatorRef.current;
@@ -8447,14 +8641,14 @@ function useNavigationIndicator(groupRef, direction, layoutKey) {
8447
8641
  },
8448
8642
  []
8449
8643
  );
8450
- const cancelLayoutTracking = useCallback15(() => {
8644
+ const cancelLayoutTracking = useCallback16(() => {
8451
8645
  if (layoutTrackingFrameRef.current != null) {
8452
8646
  cancelAnimationFrame(layoutTrackingFrameRef.current);
8453
8647
  layoutTrackingFrameRef.current = null;
8454
8648
  }
8455
8649
  isLayoutTrackingRef.current = false;
8456
8650
  }, []);
8457
- const remeasureIndicator = useCallback15(() => {
8651
+ const remeasureIndicator = useCallback16(() => {
8458
8652
  if (isLayoutTrackingRef.current) return;
8459
8653
  const metrics = measureIndicator();
8460
8654
  if (!metrics) return;
@@ -8463,7 +8657,7 @@ function useNavigationIndicator(groupRef, direction, layoutKey) {
8463
8657
  isAnimatingRef.current = false;
8464
8658
  syncIndicator(metrics, true);
8465
8659
  }, [measureIndicator, syncIndicator]);
8466
- const startExpandCollapseTracking = useCallback15(() => {
8660
+ const startExpandCollapseTracking = useCallback16(() => {
8467
8661
  const group = groupRef.current;
8468
8662
  const el = indicatorRef.current;
8469
8663
  if (!group || !el) return;
@@ -8520,7 +8714,7 @@ function useNavigationIndicator(groupRef, direction, layoutKey) {
8520
8714
  };
8521
8715
  layoutTrackingFrameRef.current = requestAnimationFrame(tick);
8522
8716
  }, [cancelLayoutTracking, groupRef, measureIndicator, syncIndicator]);
8523
- const onIndicatorRef = useCallback15((node) => {
8717
+ const onIndicatorRef = useCallback16((node) => {
8524
8718
  indicatorRef.current = node;
8525
8719
  if (node && metricsRef.current && isInitialMount.current) {
8526
8720
  applyIndicatorMetrics(node, metricsRef.current, true);
@@ -8632,6 +8826,32 @@ function useNavigationIndicator(groupRef, direction, layoutKey) {
8632
8826
  startExpandCollapseTracking,
8633
8827
  syncIndicator
8634
8828
  ]);
8829
+ useEffect11(() => {
8830
+ if (direction !== "vertical") return;
8831
+ const group = groupRef.current;
8832
+ if (!group) return;
8833
+ const refreshInteractionMetrics = () => {
8834
+ if (isLayoutTrackingRef.current || isAnimatingRef.current) return;
8835
+ const metrics = measureIndicator();
8836
+ if (!metrics) return;
8837
+ if (metricsRef.current && metricsApproxEqual2(metrics, metricsRef.current)) {
8838
+ return;
8839
+ }
8840
+ syncIndicator(metrics, false);
8841
+ };
8842
+ group.addEventListener("pointerover", refreshInteractionMetrics);
8843
+ group.addEventListener("pointerout", refreshInteractionMetrics);
8844
+ group.addEventListener("pointerdown", refreshInteractionMetrics);
8845
+ group.addEventListener("pointerup", refreshInteractionMetrics);
8846
+ group.addEventListener("pointercancel", refreshInteractionMetrics);
8847
+ return () => {
8848
+ group.removeEventListener("pointerover", refreshInteractionMetrics);
8849
+ group.removeEventListener("pointerout", refreshInteractionMetrics);
8850
+ group.removeEventListener("pointerdown", refreshInteractionMetrics);
8851
+ group.removeEventListener("pointerup", refreshInteractionMetrics);
8852
+ group.removeEventListener("pointercancel", refreshInteractionMetrics);
8853
+ };
8854
+ }, [direction, groupRef, measureIndicator, syncIndicator]);
8635
8855
  return onIndicatorRef;
8636
8856
  }
8637
8857
  var Navigation = forwardRef35(
@@ -8642,7 +8862,7 @@ var Navigation = forwardRef35(
8642
8862
  direction = "vertical",
8643
8863
  dividingLine = false,
8644
8864
  ...props
8645
- }, ref) => /* @__PURE__ */ jsx47(NavigationDirectionContext.Provider, { value: direction, children: /* @__PURE__ */ jsx47(
8865
+ }, ref) => /* @__PURE__ */ jsx49(NavigationDirectionContext.Provider, { value: direction, children: /* @__PURE__ */ jsx49(
8646
8866
  Tag2,
8647
8867
  {
8648
8868
  ref,
@@ -8656,7 +8876,7 @@ var Navigation = forwardRef35(
8656
8876
  );
8657
8877
  Navigation.displayName = "Navigation";
8658
8878
  var NavigationBrand = forwardRef35(
8659
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx47(
8879
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx49(
8660
8880
  "div",
8661
8881
  {
8662
8882
  ref,
@@ -8668,24 +8888,24 @@ var NavigationBrand = forwardRef35(
8668
8888
  NavigationBrand.displayName = "NavigationBrand";
8669
8889
  var NavigationBrandTitle = forwardRef35(({ className, asChild = false, children, ...props }, ref) => {
8670
8890
  const Comp = asChild ? Slot5 : "a";
8671
- return /* @__PURE__ */ jsx47(
8891
+ return /* @__PURE__ */ jsx49(
8672
8892
  Comp,
8673
8893
  {
8674
8894
  ref,
8675
8895
  className: cn("aviala-navigation-brand__title aviala-focus-ring", className),
8676
8896
  ...props,
8677
- children: asChild ? children : /* @__PURE__ */ jsx47(Typography, { level: "text", as: "span", children })
8897
+ children: asChild ? children : /* @__PURE__ */ jsx49(Typography, { level: "text", as: "span", children })
8678
8898
  }
8679
8899
  );
8680
8900
  });
8681
8901
  NavigationBrandTitle.displayName = "NavigationBrandTitle";
8682
- var NavigationSection = forwardRef35(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx47(
8902
+ var NavigationSection = forwardRef35(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx49(
8683
8903
  "div",
8684
8904
  {
8685
8905
  ref,
8686
8906
  className: cn("aviala-navigation-section", className),
8687
8907
  ...props,
8688
- children: /* @__PURE__ */ jsx47(Typography, { level: "caption", as: "p", children })
8908
+ children: /* @__PURE__ */ jsx49(Typography, { level: "caption", as: "p", children })
8689
8909
  }
8690
8910
  ));
8691
8911
  NavigationSection.displayName = "NavigationSection";
@@ -8699,7 +8919,7 @@ var NavigationGroup = forwardRef35(
8699
8919
  direction,
8700
8920
  layoutKey
8701
8921
  );
8702
- const setRefs = useCallback15(
8922
+ const setRefs = useCallback16(
8703
8923
  (node) => {
8704
8924
  groupRef.current = node;
8705
8925
  if (typeof ref === "function") {
@@ -8710,14 +8930,14 @@ var NavigationGroup = forwardRef35(
8710
8930
  },
8711
8931
  [ref]
8712
8932
  );
8713
- return /* @__PURE__ */ jsxs37(
8933
+ return /* @__PURE__ */ jsxs39(
8714
8934
  "div",
8715
8935
  {
8716
8936
  ref: setRefs,
8717
8937
  className: cn("aviala-navigation-group", className),
8718
8938
  ...props,
8719
8939
  children: [
8720
- /* @__PURE__ */ jsx47(
8940
+ /* @__PURE__ */ jsx49(
8721
8941
  "span",
8722
8942
  {
8723
8943
  ref: onIndicatorRef,
@@ -8743,7 +8963,7 @@ var NavigationItemGroup = forwardRef35(({ className, expanded, children, ...prop
8743
8963
  if (isCollapsed) inner.setAttribute("inert", "");
8744
8964
  else inner.removeAttribute("inert");
8745
8965
  }, [isCollapsed]);
8746
- return /* @__PURE__ */ jsx47(
8966
+ return /* @__PURE__ */ jsx49(
8747
8967
  "div",
8748
8968
  {
8749
8969
  ref,
@@ -8751,7 +8971,7 @@ var NavigationItemGroup = forwardRef35(({ className, expanded, children, ...prop
8751
8971
  "data-expanded": isCollapsible ? expanded ? "true" : "false" : void 0,
8752
8972
  "aria-hidden": isCollapsed ? true : void 0,
8753
8973
  ...props,
8754
- children: isCollapsible ? /* @__PURE__ */ jsx47("div", { ref: innerRef, className: "aviala-navigation-item-group__inner", children }) : children
8974
+ children: isCollapsible ? /* @__PURE__ */ jsx49("div", { ref: innerRef, className: "aviala-navigation-item-group__inner", children }) : children
8755
8975
  }
8756
8976
  );
8757
8977
  });
@@ -8762,7 +8982,7 @@ function renderItemIcon3(node) {
8762
8982
  level: "text",
8763
8983
  biggerSize: true
8764
8984
  });
8765
- return /* @__PURE__ */ jsx47("span", { className: "aviala-navigation-item__icon", children: content });
8985
+ return /* @__PURE__ */ jsx49("span", { className: "aviala-navigation-item__icon", children: content });
8766
8986
  }
8767
8987
  var NavigationItem = forwardRef35(
8768
8988
  ({
@@ -8779,9 +8999,9 @@ var NavigationItem = forwardRef35(
8779
8999
  const Comp = asChild ? Slot5 : "a";
8780
9000
  const isActive = active ?? ariaCurrent === "page";
8781
9001
  const mode = navigationItemButtonMode(isActive);
8782
- const controlContent = /* @__PURE__ */ jsxs37(Fragment7, { children: [
9002
+ const controlContent = /* @__PURE__ */ jsxs39(Fragment7, { children: [
8783
9003
  renderItemIcon3(leftIcon),
8784
- /* @__PURE__ */ jsx47(
9004
+ /* @__PURE__ */ jsx49(
8785
9005
  Typography,
8786
9006
  {
8787
9007
  level: "text",
@@ -8790,15 +9010,15 @@ var NavigationItem = forwardRef35(
8790
9010
  children
8791
9011
  }
8792
9012
  ),
8793
- rightIcon ? /* @__PURE__ */ jsx47("span", { className: "aviala-navigation-item__chevron", children: renderItemIcon3(rightIcon) }) : null
9013
+ rightIcon ? /* @__PURE__ */ jsx49("span", { className: "aviala-navigation-item__chevron", children: renderItemIcon3(rightIcon) }) : null
8794
9014
  ] });
8795
- return /* @__PURE__ */ jsx47(
9015
+ return /* @__PURE__ */ jsx49(
8796
9016
  "span",
8797
9017
  {
8798
9018
  className: cn("aviala-navigation-item", className),
8799
9019
  "data-item-type": itemType,
8800
9020
  "data-active": isActive ? "true" : "false",
8801
- children: /* @__PURE__ */ jsx47(
9021
+ children: /* @__PURE__ */ jsx49(
8802
9022
  Comp,
8803
9023
  {
8804
9024
  ref,
@@ -8817,7 +9037,7 @@ var NavigationItem = forwardRef35(
8817
9037
  }
8818
9038
  );
8819
9039
  NavigationItem.displayName = "NavigationItem";
8820
- var NavigationActions = forwardRef35(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx47(
9040
+ var NavigationActions = forwardRef35(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx49(
8821
9041
  "div",
8822
9042
  {
8823
9043
  ref,
@@ -8827,7 +9047,7 @@ var NavigationActions = forwardRef35(({ className, children, ...props }, ref) =>
8827
9047
  }
8828
9048
  ));
8829
9049
  NavigationActions.displayName = "NavigationActions";
8830
- var NavigationActionsSlot = forwardRef35(({ className, ...props }, ref) => /* @__PURE__ */ jsx47(
9050
+ var NavigationActionsSlot = forwardRef35(({ className, ...props }, ref) => /* @__PURE__ */ jsx49(
8831
9051
  "div",
8832
9052
  {
8833
9053
  ref,
@@ -8853,28 +9073,28 @@ function NavigationItemMenu({
8853
9073
  onOpenChange,
8854
9074
  children
8855
9075
  }) {
8856
- const [internalValue, setInternalValue] = useState14(defaultValue);
9076
+ const [internalValue, setInternalValue] = useState16(defaultValue);
8857
9077
  const isValueControlled = valueProp !== void 0;
8858
9078
  const value = isValueControlled ? valueProp : internalValue;
8859
- const [internalOpen, setInternalOpen] = useState14(false);
9079
+ const [internalOpen, setInternalOpen] = useState16(false);
8860
9080
  const isOpenControlled = openProp !== void 0;
8861
9081
  const open = isOpenControlled ? openProp : internalOpen;
8862
9082
  const closeTimerRef = useRef12(null);
8863
9083
  const openedByHoverRef = useRef12(false);
8864
- const setOpen = useCallback15(
9084
+ const setOpen = useCallback16(
8865
9085
  (nextOpen) => {
8866
9086
  if (!isOpenControlled) setInternalOpen(nextOpen);
8867
9087
  onOpenChange?.(nextOpen);
8868
9088
  },
8869
9089
  [isOpenControlled, onOpenChange]
8870
9090
  );
8871
- const cancelClose = useCallback15(() => {
9091
+ const cancelClose = useCallback16(() => {
8872
9092
  if (closeTimerRef.current != null) {
8873
9093
  window.clearTimeout(closeTimerRef.current);
8874
9094
  closeTimerRef.current = null;
8875
9095
  }
8876
9096
  }, []);
8877
- const openMenu = useCallback15(
9097
+ const openMenu = useCallback16(
8878
9098
  (viaHover) => {
8879
9099
  cancelClose();
8880
9100
  openedByHoverRef.current = viaHover;
@@ -8882,14 +9102,14 @@ function NavigationItemMenu({
8882
9102
  },
8883
9103
  [cancelClose, setOpen]
8884
9104
  );
8885
- const scheduleClose = useCallback15(() => {
9105
+ const scheduleClose = useCallback16(() => {
8886
9106
  cancelClose();
8887
9107
  closeTimerRef.current = window.setTimeout(() => {
8888
9108
  closeTimerRef.current = null;
8889
9109
  setOpen(false);
8890
9110
  }, NAVIGATION_MENU_CLOSE_DELAY_MS);
8891
9111
  }, [cancelClose, setOpen]);
8892
- const select = useCallback15(
9112
+ const select = useCallback16(
8893
9113
  (nextValue) => {
8894
9114
  if (!isValueControlled) setInternalValue(nextValue);
8895
9115
  onValueChange?.(nextValue);
@@ -8898,8 +9118,8 @@ function NavigationItemMenu({
8898
9118
  },
8899
9119
  [cancelClose, isValueControlled, onValueChange, setOpen]
8900
9120
  );
8901
- useEffect10(() => cancelClose, [cancelClose]);
8902
- const contextValue = useMemo9(
9121
+ useEffect11(() => cancelClose, [cancelClose]);
9122
+ const contextValue = useMemo10(
8903
9123
  () => ({
8904
9124
  value,
8905
9125
  hasSelection: value != null && value !== "",
@@ -8911,7 +9131,7 @@ function NavigationItemMenu({
8911
9131
  }),
8912
9132
  [cancelClose, openMenu, scheduleClose, select, value]
8913
9133
  );
8914
- const handleOpenChange = useCallback15(
9134
+ const handleOpenChange = useCallback16(
8915
9135
  (nextOpen) => {
8916
9136
  if (nextOpen) openedByHoverRef.current = false;
8917
9137
  cancelClose();
@@ -8919,7 +9139,7 @@ function NavigationItemMenu({
8919
9139
  },
8920
9140
  [cancelClose, setOpen]
8921
9141
  );
8922
- return /* @__PURE__ */ jsx47(NavigationItemMenuContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx47(Popover, { open, onOpenChange: handleOpenChange, children }) });
9142
+ return /* @__PURE__ */ jsx49(NavigationItemMenuContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx49(Popover, { open, onOpenChange: handleOpenChange, children }) });
8923
9143
  }
8924
9144
  var NavigationItemMenuTrigger = forwardRef35(
8925
9145
  ({
@@ -8933,7 +9153,7 @@ var NavigationItemMenuTrigger = forwardRef35(
8933
9153
  const menu = useNavigationItemMenuContext("NavigationItemMenuTrigger");
8934
9154
  const isActive = active ?? menu.hasSelection;
8935
9155
  const mode = navigationItemButtonMode(isActive);
8936
- return /* @__PURE__ */ jsx47(
9156
+ return /* @__PURE__ */ jsx49(
8937
9157
  "span",
8938
9158
  {
8939
9159
  className: cn("aviala-navigation-item", className),
@@ -8941,7 +9161,7 @@ var NavigationItemMenuTrigger = forwardRef35(
8941
9161
  "data-active": isActive ? "true" : "false",
8942
9162
  onMouseEnter: () => menu.openMenu(true),
8943
9163
  onMouseLeave: menu.scheduleClose,
8944
- children: /* @__PURE__ */ jsx47(PopoverPrimitive7.Trigger, { asChild: true, children: /* @__PURE__ */ jsxs37(
9164
+ children: /* @__PURE__ */ jsx49(PopoverPrimitive7.Trigger, { asChild: true, children: /* @__PURE__ */ jsxs39(
8945
9165
  "button",
8946
9166
  {
8947
9167
  ref,
@@ -8954,7 +9174,7 @@ var NavigationItemMenuTrigger = forwardRef35(
8954
9174
  ...props,
8955
9175
  children: [
8956
9176
  renderItemIcon3(leftIcon),
8957
- /* @__PURE__ */ jsx47(
9177
+ /* @__PURE__ */ jsx49(
8958
9178
  Typography,
8959
9179
  {
8960
9180
  level: "text",
@@ -8963,7 +9183,7 @@ var NavigationItemMenuTrigger = forwardRef35(
8963
9183
  children
8964
9184
  }
8965
9185
  ),
8966
- rightIcon ? /* @__PURE__ */ jsx47("span", { className: "aviala-navigation-item__chevron", children: renderItemIcon3(rightIcon) }) : null
9186
+ rightIcon ? /* @__PURE__ */ jsx49("span", { className: "aviala-navigation-item__chevron", children: renderItemIcon3(rightIcon) }) : null
8967
9187
  ]
8968
9188
  }
8969
9189
  ) })
@@ -8984,7 +9204,7 @@ var NavigationItemMenuContent = forwardRef35(
8984
9204
  }, ref) => {
8985
9205
  const direction = useNavigationDirection();
8986
9206
  const menu = useNavigationItemMenuContext("NavigationItemMenuContent");
8987
- return /* @__PURE__ */ jsx47(PopoverPrimitive7.Portal, { children: /* @__PURE__ */ jsx47(
9207
+ return /* @__PURE__ */ jsx49(PopoverPrimitive7.Portal, { children: /* @__PURE__ */ jsx49(
8988
9208
  PopoverPrimitive7.Content,
8989
9209
  {
8990
9210
  ref,
@@ -9019,7 +9239,7 @@ var NavigationItemMenuItem = forwardRef35(
9019
9239
  }, ref) => {
9020
9240
  const menu = useNavigationItemMenuContext("NavigationItemMenuItem");
9021
9241
  const isSelected = selected ?? menu.value === value;
9022
- return /* @__PURE__ */ jsxs37(
9242
+ return /* @__PURE__ */ jsxs39(
9023
9243
  "button",
9024
9244
  {
9025
9245
  ref,
@@ -9039,7 +9259,7 @@ var NavigationItemMenuItem = forwardRef35(
9039
9259
  ...props,
9040
9260
  children: [
9041
9261
  renderItemIcon3(leftIcon),
9042
- /* @__PURE__ */ jsx47(
9262
+ /* @__PURE__ */ jsx49(
9043
9263
  Typography,
9044
9264
  {
9045
9265
  level: "text",
@@ -9048,7 +9268,7 @@ var NavigationItemMenuItem = forwardRef35(
9048
9268
  children
9049
9269
  }
9050
9270
  ),
9051
- rightIcon ? /* @__PURE__ */ jsx47("span", { className: "aviala-navigation-menu-item__trailing", children: renderItemIcon3(rightIcon) }) : null
9271
+ rightIcon ? /* @__PURE__ */ jsx49("span", { className: "aviala-navigation-menu-item__trailing", children: renderItemIcon3(rightIcon) }) : null
9052
9272
  ]
9053
9273
  }
9054
9274
  );
@@ -9060,7 +9280,7 @@ NavigationItemMenuItem.displayName = "NavigationItemMenuItem";
9060
9280
  import * as SliderPrimitive from "@radix-ui/react-slider";
9061
9281
  import { cva as cva13 } from "class-variance-authority";
9062
9282
  import { forwardRef as forwardRef36 } from "react";
9063
- import { jsx as jsx48, jsxs as jsxs38 } from "react/jsx-runtime";
9283
+ import { jsx as jsx50, jsxs as jsxs40 } from "react/jsx-runtime";
9064
9284
  var sliderVariants = cva13("aviala-slider", {
9065
9285
  variants: {
9066
9286
  size: {
@@ -9094,7 +9314,7 @@ var Slider = forwardRef36(
9094
9314
  const isRange = resolvedType === "range";
9095
9315
  const resolvedDefaultValue = defaultValue ?? (isRange ? [25, 75] : [50]);
9096
9316
  const thumbCount = isRange ? Math.max(2, value?.length ?? defaultValue?.length ?? 2) : 1;
9097
- return /* @__PURE__ */ jsxs38(
9317
+ return /* @__PURE__ */ jsxs40(
9098
9318
  SliderPrimitive.Root,
9099
9319
  {
9100
9320
  ref,
@@ -9112,8 +9332,8 @@ var Slider = forwardRef36(
9112
9332
  "data-disabled": disabled ? "true" : void 0,
9113
9333
  ...props,
9114
9334
  children: [
9115
- /* @__PURE__ */ jsx48(SliderPrimitive.Track, { className: "aviala-slider__track", children: /* @__PURE__ */ jsx48(SliderPrimitive.Range, { className: "aviala-slider__range" }) }),
9116
- Array.from({ length: thumbCount }, (_, index) => /* @__PURE__ */ jsx48(SliderPrimitive.Thumb, { className: "aviala-slider__thumb aviala-focus-ring" }, index))
9335
+ /* @__PURE__ */ jsx50(SliderPrimitive.Track, { className: "aviala-slider__track", children: /* @__PURE__ */ jsx50(SliderPrimitive.Range, { className: "aviala-slider__range" }) }),
9336
+ Array.from({ length: thumbCount }, (_, index) => /* @__PURE__ */ jsx50(SliderPrimitive.Thumb, { className: "aviala-slider__thumb aviala-focus-ring" }, index))
9117
9337
  ]
9118
9338
  }
9119
9339
  );
@@ -9127,9 +9347,9 @@ import { cva as cva14 } from "class-variance-authority";
9127
9347
  import {
9128
9348
  forwardRef as forwardRef37,
9129
9349
  useRef as useRef13,
9130
- useState as useState15
9350
+ useState as useState17
9131
9351
  } from "react";
9132
- import { jsx as jsx49, jsxs as jsxs39 } from "react/jsx-runtime";
9352
+ import { jsx as jsx51, jsxs as jsxs41 } from "react/jsx-runtime";
9133
9353
  var uploadVariants = cva14("aviala-upload aviala-focus-ring", {
9134
9354
  variants: {
9135
9355
  style: {
@@ -9160,7 +9380,7 @@ var Upload = forwardRef37(
9160
9380
  ...props
9161
9381
  }, ref) => {
9162
9382
  const inputRef = useRef13(null);
9163
- const [dragging, setDragging] = useState15(false);
9383
+ const [dragging, setDragging] = useState17(false);
9164
9384
  const resolvedStyle = style ?? "default";
9165
9385
  const allowDrag = dragAndDrop ?? resolvedStyle === "large";
9166
9386
  const openPicker = () => {
@@ -9179,7 +9399,7 @@ var Upload = forwardRef37(
9179
9399
  onChange?.(event.dataTransfer.files);
9180
9400
  }
9181
9401
  };
9182
- return /* @__PURE__ */ jsxs39(
9402
+ return /* @__PURE__ */ jsxs41(
9183
9403
  "div",
9184
9404
  {
9185
9405
  ref,
@@ -9210,7 +9430,7 @@ var Upload = forwardRef37(
9210
9430
  onDrop: handleDrop,
9211
9431
  ...props,
9212
9432
  children: [
9213
- /* @__PURE__ */ jsx49(
9433
+ /* @__PURE__ */ jsx51(
9214
9434
  "input",
9215
9435
  {
9216
9436
  ref: inputRef,
@@ -9225,8 +9445,8 @@ var Upload = forwardRef37(
9225
9445
  ...inputProps
9226
9446
  }
9227
9447
  ),
9228
- /* @__PURE__ */ jsx49("span", { className: "aviala-upload__icon", "aria-hidden": true, children: /* @__PURE__ */ jsx49(GeneralUpload, { width: 16, height: 16 }) }),
9229
- resolvedStyle === "large" ? /* @__PURE__ */ jsx49(
9448
+ /* @__PURE__ */ jsx51("span", { className: "aviala-upload__icon", "aria-hidden": true, children: /* @__PURE__ */ jsx51(GeneralUpload, { width: 16, height: 16 }) }),
9449
+ resolvedStyle === "large" ? /* @__PURE__ */ jsx51(
9230
9450
  Typeface,
9231
9451
  {
9232
9452
  className: "aviala-upload__typeface",
@@ -9234,7 +9454,7 @@ var Upload = forwardRef37(
9234
9454
  primary: title,
9235
9455
  secondary: description
9236
9456
  }
9237
- ) : /* @__PURE__ */ jsx49(Typography, { level: "text", as: "span", className: "aviala-upload__label", children: label })
9457
+ ) : /* @__PURE__ */ jsx51(Typography, { level: "text", as: "span", className: "aviala-upload__label", children: label })
9238
9458
  ]
9239
9459
  }
9240
9460
  );
@@ -9244,14 +9464,14 @@ Upload.displayName = "Upload";
9244
9464
 
9245
9465
  // src/components/scroll-picker.tsx
9246
9466
  import {
9247
- useCallback as useCallback16,
9248
- useEffect as useEffect11,
9467
+ useCallback as useCallback17,
9468
+ useEffect as useEffect12,
9249
9469
  useId as useId5,
9250
9470
  useLayoutEffect as useLayoutEffect7,
9251
- useMemo as useMemo10,
9471
+ useMemo as useMemo11,
9252
9472
  useRef as useRef14
9253
9473
  } from "react";
9254
- import { jsx as jsx50, jsxs as jsxs40 } from "react/jsx-runtime";
9474
+ import { jsx as jsx52, jsxs as jsxs42 } from "react/jsx-runtime";
9255
9475
  var LOOP_SECTIONS2 = 3;
9256
9476
  var MIDDLE_SECTION2 = 1;
9257
9477
  function normalizeIndex2(index, length) {
@@ -9279,7 +9499,7 @@ function fractionalIndexAtScrollTop(metrics, scrollTop) {
9279
9499
  return (scrollTop - metrics.originTop) / metrics.pitch;
9280
9500
  }
9281
9501
  function ScrollPicker({ className, children, ...props }) {
9282
- return /* @__PURE__ */ jsx50("div", { className: cn("aviala-scroll-picker", className), ...props, children });
9502
+ return /* @__PURE__ */ jsx52("div", { className: cn("aviala-scroll-picker", className), ...props, children });
9283
9503
  }
9284
9504
  function ScrollPickerColumn({
9285
9505
  className,
@@ -9300,18 +9520,18 @@ function ScrollPickerColumn({
9300
9520
  const selectedValueRef = useRef14(value);
9301
9521
  const reactId = useId5();
9302
9522
  selectedValueRef.current = value;
9303
- const getIndex = useCallback16(
9523
+ const getIndex = useCallback17(
9304
9524
  (candidate) => {
9305
9525
  const index = values.findIndex((item) => Object.is(item, candidate));
9306
9526
  return index >= 0 ? index : 0;
9307
9527
  },
9308
9528
  [values]
9309
9529
  );
9310
- const repeatedValues = useMemo10(() => {
9530
+ const repeatedValues = useMemo11(() => {
9311
9531
  if (!loop) return [...values];
9312
9532
  return Array.from({ length: LOOP_SECTIONS2 }, () => values).flat();
9313
9533
  }, [loop, values]);
9314
- const scrollToIndex = useCallback16((index, behavior = "auto") => {
9534
+ const scrollToIndex = useCallback17((index, behavior = "auto") => {
9315
9535
  const container = scrollRef.current;
9316
9536
  if (!container) return;
9317
9537
  const metrics = readMetrics(container);
@@ -9319,7 +9539,7 @@ function ScrollPickerColumn({
9319
9539
  isProgrammaticScrollRef.current = true;
9320
9540
  container.scrollTo({ top: scrollTopForIndex(container, metrics, index), behavior });
9321
9541
  }, []);
9322
- const scrollToValue = useCallback16(
9542
+ const scrollToValue = useCallback17(
9323
9543
  (nextValue, behavior = "smooth") => {
9324
9544
  if (behavior === "smooth") {
9325
9545
  smoothTargetValueRef.current = nextValue;
@@ -9332,7 +9552,7 @@ function ScrollPickerColumn({
9332
9552
  },
9333
9553
  [getIndex, loop, scrollToIndex, values.length]
9334
9554
  );
9335
- const settleScroll = useCallback16(() => {
9555
+ const settleScroll = useCallback17(() => {
9336
9556
  const container = scrollRef.current;
9337
9557
  if (!container || isProgrammaticScrollRef.current) {
9338
9558
  isProgrammaticScrollRef.current = false;
@@ -9378,7 +9598,7 @@ function ScrollPickerColumn({
9378
9598
  isUserScrollingRef.current = false;
9379
9599
  wheelAccumRef.current = 0;
9380
9600
  }, [loop, onChange, values]);
9381
- const handleScroll = useCallback16(() => {
9601
+ const handleScroll = useCallback17(() => {
9382
9602
  if (isProgrammaticScrollRef.current) return;
9383
9603
  isUserScrollingRef.current = true;
9384
9604
  if (scrollEndTimerRef.current) {
@@ -9401,7 +9621,7 @@ function ScrollPickerColumn({
9401
9621
  if (Math.abs(container.scrollTop - targetTop) <= 1) return;
9402
9622
  scrollToIndex(targetIndex, "auto");
9403
9623
  }, [getIndex, loop, scrollToIndex, value, values.length]);
9404
- useEffect11(() => {
9624
+ useEffect12(() => {
9405
9625
  const container = scrollRef.current;
9406
9626
  if (!container) return;
9407
9627
  const onScrollEnd = () => {
@@ -9418,7 +9638,7 @@ function ScrollPickerColumn({
9418
9638
  }
9419
9639
  };
9420
9640
  }, [settleScroll]);
9421
- useEffect11(() => {
9641
+ useEffect12(() => {
9422
9642
  const container = scrollRef.current;
9423
9643
  if (!container) return;
9424
9644
  const onWheel = (event) => {
@@ -9476,9 +9696,9 @@ function ScrollPickerColumn({
9476
9696
  }
9477
9697
  };
9478
9698
  const selectedOptionId = `${reactId}-${getIndex(value)}`;
9479
- return /* @__PURE__ */ jsx50("div", { className: cn("aviala-scroll-picker-column", className), children: /* @__PURE__ */ jsxs40("div", { className: "aviala-scroll-picker-column__viewport", children: [
9480
- /* @__PURE__ */ jsx50("div", { className: "aviala-scroll-picker-column__highlight", "aria-hidden": true }),
9481
- /* @__PURE__ */ jsx50(
9699
+ return /* @__PURE__ */ jsx52("div", { className: cn("aviala-scroll-picker-column", className), children: /* @__PURE__ */ jsxs42("div", { className: "aviala-scroll-picker-column__viewport", children: [
9700
+ /* @__PURE__ */ jsx52("div", { className: "aviala-scroll-picker-column__highlight", "aria-hidden": true }),
9701
+ /* @__PURE__ */ jsx52(
9482
9702
  "div",
9483
9703
  {
9484
9704
  ref: scrollRef,
@@ -9489,12 +9709,12 @@ function ScrollPickerColumn({
9489
9709
  "aria-activedescendant": selectedOptionId,
9490
9710
  tabIndex: 0,
9491
9711
  onKeyDown: handleKeyDown,
9492
- children: /* @__PURE__ */ jsx50("ul", { className: "aviala-scroll-picker-column__list", children: repeatedValues.map((itemValue, index) => {
9712
+ children: /* @__PURE__ */ jsx52("ul", { className: "aviala-scroll-picker-column__list", children: repeatedValues.map((itemValue, index) => {
9493
9713
  const isSelected = Object.is(itemValue, value);
9494
9714
  const valueIndex = loop ? normalizeIndex2(index, values.length) : index;
9495
9715
  const optionId = `${reactId}-${loop ? index : valueIndex}`;
9496
9716
  const key = getValueKey?.(itemValue, index) ?? `${String(itemValue)}-${index}`;
9497
- return /* @__PURE__ */ jsx50("li", { className: "contents", children: /* @__PURE__ */ jsx50(
9717
+ return /* @__PURE__ */ jsx52("li", { className: "contents", children: /* @__PURE__ */ jsx52(
9498
9718
  ScrollPickerItem,
9499
9719
  {
9500
9720
  id: isSelected ? selectedOptionId : optionId,
@@ -9520,7 +9740,7 @@ function ScrollPickerItem({
9520
9740
  className,
9521
9741
  onSelect
9522
9742
  }) {
9523
- return /* @__PURE__ */ jsx50(
9743
+ return /* @__PURE__ */ jsx52(
9524
9744
  "button",
9525
9745
  {
9526
9746
  type: "button",
@@ -9546,11 +9766,11 @@ import { cva as cva15 } from "class-variance-authority";
9546
9766
  import {
9547
9767
  createContext as createContext9,
9548
9768
  forwardRef as forwardRef38,
9549
- useCallback as useCallback17,
9769
+ useCallback as useCallback18,
9550
9770
  useContext as useContext9,
9551
- useState as useState16
9771
+ useState as useState18
9552
9772
  } from "react";
9553
- import { Fragment as Fragment8, jsx as jsx51, jsxs as jsxs41 } from "react/jsx-runtime";
9773
+ import { Fragment as Fragment8, jsx as jsx53, jsxs as jsxs43 } from "react/jsx-runtime";
9554
9774
  var BreadcrumbSizeContext = createContext9("default");
9555
9775
  function breadcrumbTypeLevel(size) {
9556
9776
  return size === "small" ? "caption" : "text";
@@ -9569,7 +9789,7 @@ var breadcrumbVariants = cva15("aviala-breadcrumb", {
9569
9789
  var Breadcrumb = forwardRef38(
9570
9790
  ({ className, size = "default", children, ...props }, ref) => {
9571
9791
  const resolvedSize = size ?? "default";
9572
- return /* @__PURE__ */ jsx51(BreadcrumbSizeContext.Provider, { value: resolvedSize, children: /* @__PURE__ */ jsx51(
9792
+ return /* @__PURE__ */ jsx53(BreadcrumbSizeContext.Provider, { value: resolvedSize, children: /* @__PURE__ */ jsx53(
9573
9793
  "nav",
9574
9794
  {
9575
9795
  ref,
@@ -9577,7 +9797,7 @@ var Breadcrumb = forwardRef38(
9577
9797
  className: cn(breadcrumbVariants({ size: resolvedSize }), className),
9578
9798
  "data-size": resolvedSize,
9579
9799
  ...props,
9580
- children: /* @__PURE__ */ jsx51("ol", { className: "aviala-breadcrumb__list", children })
9800
+ children: /* @__PURE__ */ jsx53("ol", { className: "aviala-breadcrumb__list", children })
9581
9801
  }
9582
9802
  ) });
9583
9803
  }
@@ -9586,9 +9806,9 @@ Breadcrumb.displayName = "Breadcrumb";
9586
9806
  var BreadcrumbItem = forwardRef38(
9587
9807
  ({ className, href, current = false, icon, onClick, children, ...props }, ref) => {
9588
9808
  const size = useContext9(BreadcrumbSizeContext);
9589
- const label = /* @__PURE__ */ jsxs41(Fragment8, { children: [
9590
- icon ? /* @__PURE__ */ jsx51("span", { className: "aviala-breadcrumb-item__icon", children: icon }) : null,
9591
- children != null ? /* @__PURE__ */ jsx51(
9809
+ const label = /* @__PURE__ */ jsxs43(Fragment8, { children: [
9810
+ icon ? /* @__PURE__ */ jsx53("span", { className: "aviala-breadcrumb-item__icon", children: icon }) : null,
9811
+ children != null ? /* @__PURE__ */ jsx53(
9592
9812
  Typography,
9593
9813
  {
9594
9814
  level: breadcrumbTypeLevel(size),
@@ -9598,13 +9818,13 @@ var BreadcrumbItem = forwardRef38(
9598
9818
  }
9599
9819
  ) : null
9600
9820
  ] });
9601
- return /* @__PURE__ */ jsx51(
9821
+ return /* @__PURE__ */ jsx53(
9602
9822
  "li",
9603
9823
  {
9604
9824
  ref,
9605
9825
  className: cn("aviala-breadcrumb-item-wrap", className),
9606
9826
  ...props,
9607
- children: href != null ? /* @__PURE__ */ jsx51(
9827
+ children: href != null ? /* @__PURE__ */ jsx53(
9608
9828
  "a",
9609
9829
  {
9610
9830
  href,
@@ -9613,7 +9833,7 @@ var BreadcrumbItem = forwardRef38(
9613
9833
  "aria-current": current ? "page" : void 0,
9614
9834
  children: label
9615
9835
  }
9616
- ) : onClick != null ? /* @__PURE__ */ jsx51(
9836
+ ) : onClick != null ? /* @__PURE__ */ jsx53(
9617
9837
  "button",
9618
9838
  {
9619
9839
  type: "button",
@@ -9623,7 +9843,7 @@ var BreadcrumbItem = forwardRef38(
9623
9843
  onClick,
9624
9844
  children: label
9625
9845
  }
9626
- ) : /* @__PURE__ */ jsx51(
9846
+ ) : /* @__PURE__ */ jsx53(
9627
9847
  "span",
9628
9848
  {
9629
9849
  className: "aviala-breadcrumb-item",
@@ -9640,7 +9860,7 @@ BreadcrumbItem.displayName = "BreadcrumbItem";
9640
9860
  var BreadcrumbSeparator = forwardRef38(
9641
9861
  ({ className, children = "/", ...props }, ref) => {
9642
9862
  const size = useContext9(BreadcrumbSizeContext);
9643
- return /* @__PURE__ */ jsx51(
9863
+ return /* @__PURE__ */ jsx53(
9644
9864
  "li",
9645
9865
  {
9646
9866
  ref,
@@ -9648,7 +9868,7 @@ var BreadcrumbSeparator = forwardRef38(
9648
9868
  "aria-hidden": true,
9649
9869
  className: cn("aviala-breadcrumb-separator", className),
9650
9870
  ...props,
9651
- children: /* @__PURE__ */ jsx51(Typography, { level: breadcrumbTypeLevel(size), as: "span", children })
9871
+ children: /* @__PURE__ */ jsx53(Typography, { level: breadcrumbTypeLevel(size), as: "span", children })
9652
9872
  }
9653
9873
  );
9654
9874
  }
@@ -9663,12 +9883,12 @@ var BreadcrumbEllipsisItem = forwardRef38(
9663
9883
  children,
9664
9884
  ...props
9665
9885
  }, ref) => {
9666
- const content = /* @__PURE__ */ jsxs41(Fragment8, { children: [
9667
- /* @__PURE__ */ jsx51(Typography, { level: "text", as: "span", className: "aviala-breadcrumb-ellipsis-item__label", children }),
9668
- showChevron ? /* @__PURE__ */ jsx51("span", { className: "aviala-breadcrumb-ellipsis-item__chevron", "aria-hidden": true, children: /* @__PURE__ */ jsx51(DirectionArrowRightLight3, { width: 14, height: 14, thickness: "Light" }) }) : null
9886
+ const content = /* @__PURE__ */ jsxs43(Fragment8, { children: [
9887
+ /* @__PURE__ */ jsx53(Typography, { level: "text", as: "span", className: "aviala-breadcrumb-ellipsis-item__label", children }),
9888
+ showChevron ? /* @__PURE__ */ jsx53("span", { className: "aviala-breadcrumb-ellipsis-item__chevron", "aria-hidden": true, children: /* @__PURE__ */ jsx53(DirectionArrowRightLight3, { width: 14, height: 14, thickness: "Light" }) }) : null
9669
9889
  ] });
9670
9890
  if (href != null) {
9671
- return /* @__PURE__ */ jsx51(
9891
+ return /* @__PURE__ */ jsx53(
9672
9892
  "a",
9673
9893
  {
9674
9894
  ref,
@@ -9680,7 +9900,7 @@ var BreadcrumbEllipsisItem = forwardRef38(
9680
9900
  }
9681
9901
  );
9682
9902
  }
9683
- return /* @__PURE__ */ jsx51(
9903
+ return /* @__PURE__ */ jsx53(
9684
9904
  "button",
9685
9905
  {
9686
9906
  ref,
@@ -9707,10 +9927,10 @@ var BreadcrumbEllipsis = forwardRef38(
9707
9927
  ...props
9708
9928
  }, ref) => {
9709
9929
  const size = useContext9(BreadcrumbSizeContext);
9710
- const [uncontrolledActivated, setUncontrolledActivated] = useState16(defaultActivated);
9930
+ const [uncontrolledActivated, setUncontrolledActivated] = useState18(defaultActivated);
9711
9931
  const isControlled = activatedProp !== void 0;
9712
9932
  const activated = isControlled ? Boolean(activatedProp) : uncontrolledActivated;
9713
- const setActivated = useCallback17(
9933
+ const setActivated = useCallback18(
9714
9934
  (next) => {
9715
9935
  if (!isControlled) setUncontrolledActivated(next);
9716
9936
  onActivatedChange?.(next);
@@ -9718,8 +9938,8 @@ var BreadcrumbEllipsis = forwardRef38(
9718
9938
  [isControlled, onActivatedChange]
9719
9939
  );
9720
9940
  const iconSize = 14;
9721
- const icon = children ?? /* @__PURE__ */ jsx51(SymbolMore, { width: iconSize, height: iconSize, thickness: "Light", "aria-hidden": true });
9722
- const trigger = /* @__PURE__ */ jsx51(
9941
+ const icon = children ?? /* @__PURE__ */ jsx53(SymbolMore, { width: iconSize, height: iconSize, thickness: "Light", "aria-hidden": true });
9942
+ const trigger = /* @__PURE__ */ jsx53(
9723
9943
  "button",
9724
9944
  {
9725
9945
  type: "button",
@@ -9738,9 +9958,9 @@ var BreadcrumbEllipsis = forwardRef38(
9738
9958
  children: icon
9739
9959
  }
9740
9960
  );
9741
- return /* @__PURE__ */ jsx51("li", { ref, className: cn("aviala-breadcrumb-ellipsis-wrap", className), children: menu != null ? /* @__PURE__ */ jsxs41(Popover, { open: activated, onOpenChange: setActivated, children: [
9742
- /* @__PURE__ */ jsx51(PopoverTrigger, { asChild: true, children: trigger }),
9743
- /* @__PURE__ */ jsx51(
9961
+ return /* @__PURE__ */ jsx53("li", { ref, className: cn("aviala-breadcrumb-ellipsis-wrap", className), children: menu != null ? /* @__PURE__ */ jsxs43(Popover, { open: activated, onOpenChange: setActivated, children: [
9962
+ /* @__PURE__ */ jsx53(PopoverTrigger, { asChild: true, children: trigger }),
9963
+ /* @__PURE__ */ jsx53(
9744
9964
  PopoverContent,
9745
9965
  {
9746
9966
  className: "aviala-breadcrumb-ellipsis-menu",
@@ -9749,7 +9969,7 @@ var BreadcrumbEllipsis = forwardRef38(
9749
9969
  sideOffset: 7,
9750
9970
  showArrow: false,
9751
9971
  role: "menu",
9752
- children: /* @__PURE__ */ jsx51("div", { className: "aviala-breadcrumb-ellipsis-menu__items", children: menu })
9972
+ children: /* @__PURE__ */ jsx53("div", { className: "aviala-breadcrumb-ellipsis-menu__items", children: menu })
9753
9973
  }
9754
9974
  )
9755
9975
  ] }) : trigger });
@@ -9761,7 +9981,7 @@ BreadcrumbEllipsis.displayName = "BreadcrumbEllipsis";
9761
9981
  import {
9762
9982
  forwardRef as forwardRef39
9763
9983
  } from "react";
9764
- import { jsx as jsx52, jsxs as jsxs42 } from "react/jsx-runtime";
9984
+ import { jsx as jsx54, jsxs as jsxs44 } from "react/jsx-runtime";
9765
9985
  var Pagehead = forwardRef39(
9766
9986
  ({
9767
9987
  className,
@@ -9772,16 +9992,16 @@ var Pagehead = forwardRef39(
9772
9992
  actions,
9773
9993
  children,
9774
9994
  ...props
9775
- }, ref) => /* @__PURE__ */ jsxs42("header", { ref, className: cn("aviala-pagehead", className), ...props, children: [
9776
- /* @__PURE__ */ jsxs42("div", { className: "aviala-pagehead__main", children: [
9777
- back != null ? /* @__PURE__ */ jsx52("div", { className: "aviala-pagehead__back", children: back }) : null,
9778
- /* @__PURE__ */ jsxs42("div", { className: "aviala-pagehead__title-block", children: [
9779
- breadcrumb != null ? /* @__PURE__ */ jsx52("div", { className: "aviala-pagehead__breadcrumb", children: breadcrumb }) : null,
9780
- title != null || description != null ? /* @__PURE__ */ jsx52("div", { className: "aviala-pagehead__title", children: /* @__PURE__ */ jsx52(Typeface, { content: "textCaption", primary: title, secondary: description }) }) : null,
9995
+ }, ref) => /* @__PURE__ */ jsxs44("header", { ref, className: cn("aviala-pagehead", className), ...props, children: [
9996
+ /* @__PURE__ */ jsxs44("div", { className: "aviala-pagehead__main", children: [
9997
+ back != null ? /* @__PURE__ */ jsx54("div", { className: "aviala-pagehead__back", children: back }) : null,
9998
+ /* @__PURE__ */ jsxs44("div", { className: "aviala-pagehead__title-block", children: [
9999
+ breadcrumb != null ? /* @__PURE__ */ jsx54("div", { className: "aviala-pagehead__breadcrumb", children: breadcrumb }) : null,
10000
+ title != null || description != null ? /* @__PURE__ */ jsx54("div", { className: "aviala-pagehead__title", children: /* @__PURE__ */ jsx54(Typeface, { content: "textCaption", primary: title, secondary: description }) }) : null,
9781
10001
  children
9782
10002
  ] })
9783
10003
  ] }),
9784
- actions != null ? /* @__PURE__ */ jsx52("div", { className: "aviala-pagehead__actions", children: actions }) : null
10004
+ actions != null ? /* @__PURE__ */ jsx54("div", { className: "aviala-pagehead__actions", children: actions }) : null
9785
10005
  ] })
9786
10006
  );
9787
10007
  Pagehead.displayName = "Pagehead";
@@ -9796,7 +10016,7 @@ import { cva as cva16 } from "class-variance-authority";
9796
10016
  import {
9797
10017
  forwardRef as forwardRef40
9798
10018
  } from "react";
9799
- import { jsx as jsx53, jsxs as jsxs43 } from "react/jsx-runtime";
10019
+ import { jsx as jsx55, jsxs as jsxs45 } from "react/jsx-runtime";
9800
10020
  var stepsVariants = cva16("aviala-steps", {
9801
10021
  variants: {
9802
10022
  direction: {
@@ -9809,7 +10029,7 @@ var stepsVariants = cva16("aviala-steps", {
9809
10029
  }
9810
10030
  });
9811
10031
  var Steps = forwardRef40(
9812
- ({ className, direction = "horizontal", children, ...props }, ref) => /* @__PURE__ */ jsx53(
10032
+ ({ className, direction = "horizontal", children, ...props }, ref) => /* @__PURE__ */ jsx55(
9813
10033
  "div",
9814
10034
  {
9815
10035
  ref,
@@ -9824,20 +10044,20 @@ Steps.displayName = "Steps";
9824
10044
  function defaultStepsIconContent(state, index) {
9825
10045
  switch (state) {
9826
10046
  case "done":
9827
- return /* @__PURE__ */ jsx53(SymbolRight4, { width: 12, height: 12, thickness: "Bold", "aria-hidden": true });
10047
+ return /* @__PURE__ */ jsx55(SymbolRight4, { width: 12, height: 12, thickness: "Bold", "aria-hidden": true });
9828
10048
  case "fail":
9829
- return /* @__PURE__ */ jsx53(SymbolWrong5, { width: 12, height: 12, thickness: "Bold", "aria-hidden": true });
10049
+ return /* @__PURE__ */ jsx55(SymbolWrong5, { width: 12, height: 12, thickness: "Bold", "aria-hidden": true });
9830
10050
  case "warning":
9831
- return /* @__PURE__ */ jsx53(SymbolWarning, { width: 12, height: 12, thickness: "Bold", "aria-hidden": true });
10051
+ return /* @__PURE__ */ jsx55(SymbolWarning, { width: 12, height: 12, thickness: "Bold", "aria-hidden": true });
9832
10052
  case "waiting":
9833
10053
  case "inProgress":
9834
10054
  case "default":
9835
10055
  default:
9836
- return index != null ? /* @__PURE__ */ jsx53(Typography, { level: "caption", as: "span", className: "aviala-steps-icon__index", children: index }) : null;
10056
+ return index != null ? /* @__PURE__ */ jsx55(Typography, { level: "caption", as: "span", className: "aviala-steps-icon__index", children: index }) : null;
9837
10057
  }
9838
10058
  }
9839
10059
  var StepsIcon = forwardRef40(
9840
- ({ className, state = "default", index, children, ...props }, ref) => /* @__PURE__ */ jsx53(
10060
+ ({ className, state = "default", index, children, ...props }, ref) => /* @__PURE__ */ jsx55(
9841
10061
  "span",
9842
10062
  {
9843
10063
  ref,
@@ -9859,7 +10079,7 @@ var StepsItem = forwardRef40(
9859
10079
  icon,
9860
10080
  children,
9861
10081
  ...props
9862
- }, ref) => /* @__PURE__ */ jsxs43(
10082
+ }, ref) => /* @__PURE__ */ jsxs45(
9863
10083
  "div",
9864
10084
  {
9865
10085
  ref,
@@ -9867,9 +10087,9 @@ var StepsItem = forwardRef40(
9867
10087
  "data-state": state,
9868
10088
  ...props,
9869
10089
  children: [
9870
- icon ?? /* @__PURE__ */ jsx53(StepsIcon, { state, index }),
9871
- /* @__PURE__ */ jsxs43("div", { className: "aviala-steps-item__body", children: [
9872
- title != null ? /* @__PURE__ */ jsx53(
10090
+ icon ?? /* @__PURE__ */ jsx55(StepsIcon, { state, index }),
10091
+ /* @__PURE__ */ jsxs45("div", { className: "aviala-steps-item__body", children: [
10092
+ title != null ? /* @__PURE__ */ jsx55(
9873
10093
  Typography,
9874
10094
  {
9875
10095
  level: "subtitle",
@@ -9878,7 +10098,7 @@ var StepsItem = forwardRef40(
9878
10098
  children: title
9879
10099
  }
9880
10100
  ) : null,
9881
- description != null ? /* @__PURE__ */ jsx53(
10101
+ description != null ? /* @__PURE__ */ jsx55(
9882
10102
  Typography,
9883
10103
  {
9884
10104
  level: "text",
@@ -9902,9 +10122,9 @@ import {
9902
10122
  } from "@aviala-design/icons";
9903
10123
  import {
9904
10124
  forwardRef as forwardRef41,
9905
- useState as useState17
10125
+ useState as useState19
9906
10126
  } from "react";
9907
- import { jsx as jsx54, jsxs as jsxs44 } from "react/jsx-runtime";
10127
+ import { jsx as jsx56, jsxs as jsxs46 } from "react/jsx-runtime";
9908
10128
  function buildPageList(page, pageCount) {
9909
10129
  if (pageCount <= 7) {
9910
10130
  return Array.from({ length: pageCount }, (_, index) => index + 1);
@@ -9927,6 +10147,16 @@ function buildPageList(page, pageCount) {
9927
10147
  }
9928
10148
  return result;
9929
10149
  }
10150
+ function ellipsisRange(pages, index) {
10151
+ const prev = pages[index - 1];
10152
+ const next = pages[index + 1];
10153
+ if (typeof prev !== "number" || typeof next !== "number") return [];
10154
+ const start = prev + 1;
10155
+ const end = next - 1;
10156
+ const range = [];
10157
+ for (let p = start; p <= end; p += 1) range.push(p);
10158
+ return range;
10159
+ }
9930
10160
  var Pagination = forwardRef41(
9931
10161
  ({
9932
10162
  className,
@@ -9945,9 +10175,10 @@ var Pagination = forwardRef41(
9945
10175
  sizeOptionLabel = (size) => `${size} \u9879`,
9946
10176
  ...props
9947
10177
  }, ref) => {
9948
- const [uncontrolledPage, setUncontrolledPage] = useState17(defaultPage);
9949
- const [uncontrolledPageSize, setUncontrolledPageSize] = useState17(defaultPageSize);
9950
- const [jumpValue, setJumpValue] = useState17("");
10178
+ const [uncontrolledPage, setUncontrolledPage] = useState19(defaultPage);
10179
+ const [uncontrolledPageSize, setUncontrolledPageSize] = useState19(defaultPageSize);
10180
+ const [jumpValue, setJumpValue] = useState19("");
10181
+ const [openEllipsis, setOpenEllipsis] = useState19(null);
9951
10182
  const page = pageProp ?? uncontrolledPage;
9952
10183
  const pageSize = pageSizeProp ?? uncontrolledPageSize;
9953
10184
  const safePageCount = Math.max(1, pageCount);
@@ -9968,7 +10199,7 @@ var Pagination = forwardRef41(
9968
10199
  setPage(parsed);
9969
10200
  setJumpValue("");
9970
10201
  };
9971
- return /* @__PURE__ */ jsxs44(
10202
+ return /* @__PURE__ */ jsxs46(
9972
10203
  "div",
9973
10204
  {
9974
10205
  ref,
@@ -9977,8 +10208,8 @@ var Pagination = forwardRef41(
9977
10208
  "aria-label": props["aria-label"] ?? "Pagination",
9978
10209
  ...props,
9979
10210
  children: [
9980
- /* @__PURE__ */ jsxs44("div", { className: "aviala-pagination__controls", children: [
9981
- /* @__PURE__ */ jsx54(
10211
+ /* @__PURE__ */ jsxs46("div", { className: "aviala-pagination__controls", children: [
10212
+ /* @__PURE__ */ jsx56(
9982
10213
  Button,
9983
10214
  {
9984
10215
  mode: "noBackgroundCustom",
@@ -9986,35 +10217,69 @@ var Pagination = forwardRef41(
9986
10217
  iconOnly: true,
9987
10218
  "aria-label": "Previous page",
9988
10219
  disabled: currentPage <= 1,
9989
- leftIcon: /* @__PURE__ */ jsx54(DirectionArrowLeftLight, { "aria-hidden": true }),
10220
+ leftIcon: /* @__PURE__ */ jsx56(DirectionArrowLeftLight, { "aria-hidden": true }),
9990
10221
  onClick: () => setPage(currentPage - 1)
9991
10222
  }
9992
10223
  ),
9993
- /* @__PURE__ */ jsx54("div", { className: "aviala-pagination__pages", children: pages.map(
9994
- (item, index) => item === "ellipsis" ? /* @__PURE__ */ jsx54(
9995
- Typography,
10224
+ /* @__PURE__ */ jsx56("div", { className: "aviala-pagination__pages", children: pages.map(
10225
+ (item, index) => item === "ellipsis" ? /* @__PURE__ */ jsxs46(
10226
+ Popover,
9996
10227
  {
9997
- level: "text",
9998
- as: "span",
9999
- className: "aviala-pagination__page",
10000
- "aria-hidden": true,
10001
- children: "\u2026"
10228
+ open: openEllipsis === index,
10229
+ onOpenChange: (open) => setOpenEllipsis(open ? index : null),
10230
+ children: [
10231
+ /* @__PURE__ */ jsx56(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsx56(
10232
+ "button",
10233
+ {
10234
+ type: "button",
10235
+ "data-size": "regular",
10236
+ className: cn(
10237
+ buttonVariants({ mode: "noBackgroundCustom", compact: true }),
10238
+ "aviala-pagination__page--ellipsis"
10239
+ ),
10240
+ "aria-label": "\u66F4\u591A\u9875\u7801",
10241
+ "aria-haspopup": "menu",
10242
+ children: /* @__PURE__ */ jsx56(Typography, { level: "text", as: "span", children: "\u2026" })
10243
+ }
10244
+ ) }),
10245
+ /* @__PURE__ */ jsx56(PopoverContent, { className: "aviala-pagination__ellipsis-content", showArrow: true, flush: true, children: /* @__PURE__ */ jsx56("div", { className: "aviala-pagination__ellipsis-menu", children: ellipsisRange(pages, index).map((p) => /* @__PURE__ */ jsx56(
10246
+ "button",
10247
+ {
10248
+ type: "button",
10249
+ "data-size": "regular",
10250
+ className: cn(
10251
+ buttonVariants({ mode: "noBackgroundCustom", compact: true }),
10252
+ "aviala-pagination__ellipsis-page"
10253
+ ),
10254
+ onClick: () => {
10255
+ setPage(p);
10256
+ setOpenEllipsis(null);
10257
+ },
10258
+ children: /* @__PURE__ */ jsx56(Typography, { level: "text", as: "span", children: p })
10259
+ },
10260
+ p
10261
+ )) }) })
10262
+ ]
10002
10263
  },
10003
10264
  `ellipsis-${index}`
10004
- ) : /* @__PURE__ */ jsx54(
10265
+ ) : /* @__PURE__ */ jsx56(
10005
10266
  "button",
10006
10267
  {
10007
10268
  type: "button",
10008
- className: "aviala-pagination__page aviala-focus-ring",
10269
+ "data-size": "regular",
10270
+ className: cn(
10271
+ buttonVariants({ mode: "noBackgroundCustom", compact: true }),
10272
+ "aviala-pagination__page"
10273
+ ),
10009
10274
  "data-active": item === currentPage ? "true" : void 0,
10010
10275
  "aria-current": item === currentPage ? "page" : void 0,
10011
10276
  onClick: () => setPage(item),
10012
- children: /* @__PURE__ */ jsx54(Typography, { level: "text", as: "span", children: item })
10277
+ children: /* @__PURE__ */ jsx56(Typography, { level: "text", as: "span", children: item })
10013
10278
  },
10014
10279
  item
10015
10280
  )
10016
10281
  ) }),
10017
- /* @__PURE__ */ jsx54(
10282
+ /* @__PURE__ */ jsx56(
10018
10283
  Button,
10019
10284
  {
10020
10285
  mode: "noBackgroundCustom",
@@ -10022,14 +10287,14 @@ var Pagination = forwardRef41(
10022
10287
  iconOnly: true,
10023
10288
  "aria-label": "Next page",
10024
10289
  disabled: currentPage >= safePageCount,
10025
- leftIcon: /* @__PURE__ */ jsx54(DirectionArrowRightLight4, { "aria-hidden": true }),
10290
+ leftIcon: /* @__PURE__ */ jsx56(DirectionArrowRightLight4, { "aria-hidden": true }),
10026
10291
  onClick: () => setPage(currentPage + 1)
10027
10292
  }
10028
10293
  )
10029
10294
  ] }),
10030
- showJump ? /* @__PURE__ */ jsxs44("div", { className: "aviala-pagination__jump", children: [
10031
- /* @__PURE__ */ jsx54(Typography, { level: "text", as: "span", children: jumpLabel }),
10032
- /* @__PURE__ */ jsx54(
10295
+ showJump ? /* @__PURE__ */ jsxs46("div", { className: "aviala-pagination__jump", children: [
10296
+ /* @__PURE__ */ jsx56(Typography, { level: "text", as: "span", children: jumpLabel }),
10297
+ /* @__PURE__ */ jsx56(
10033
10298
  Input,
10034
10299
  {
10035
10300
  className: "aviala-pagination__jump-input",
@@ -10049,15 +10314,15 @@ var Pagination = forwardRef41(
10049
10314
  }
10050
10315
  )
10051
10316
  ] }) : null,
10052
- showSizeChanger ? /* @__PURE__ */ jsxs44("div", { className: "aviala-pagination__size", children: [
10053
- /* @__PURE__ */ jsx54(Typography, { level: "text", as: "span", children: sizeLabel }),
10054
- /* @__PURE__ */ jsxs44(
10317
+ showSizeChanger ? /* @__PURE__ */ jsxs46("div", { className: "aviala-pagination__size", children: [
10318
+ /* @__PURE__ */ jsx56(Typography, { level: "text", as: "span", children: sizeLabel }),
10319
+ /* @__PURE__ */ jsxs46(
10055
10320
  Select,
10056
10321
  {
10057
10322
  value: String(pageSize),
10058
10323
  onValueChange: (value) => setPageSize(Number(value)),
10059
10324
  children: [
10060
- /* @__PURE__ */ jsx54(
10325
+ /* @__PURE__ */ jsx56(
10061
10326
  SelectTrigger,
10062
10327
  {
10063
10328
  size: "regular",
@@ -10065,7 +10330,7 @@ var Pagination = forwardRef41(
10065
10330
  "aria-label": "Page size"
10066
10331
  }
10067
10332
  ),
10068
- /* @__PURE__ */ jsx54(SelectContent, { children: /* @__PURE__ */ jsx54(SelectItemGroup, { children: pageSizeOptions.map((option) => /* @__PURE__ */ jsx54(
10333
+ /* @__PURE__ */ jsx56(SelectContent, { children: /* @__PURE__ */ jsx56(SelectItemGroup, { children: pageSizeOptions.map((option) => /* @__PURE__ */ jsx56(
10069
10334
  SelectItem,
10070
10335
  {
10071
10336
  value: String(option),
@@ -10095,9 +10360,9 @@ import {
10095
10360
  forwardRef as forwardRef42,
10096
10361
  isValidElement as isValidElement17
10097
10362
  } from "react";
10098
- import { Fragment as Fragment9, jsx as jsx55, jsxs as jsxs45 } from "react/jsx-runtime";
10363
+ import { Fragment as Fragment9, jsx as jsx57, jsxs as jsxs47 } from "react/jsx-runtime";
10099
10364
  var Card = forwardRef42(
10100
- ({ className, children, ...props }, ref) => /* @__PURE__ */ jsx55("div", { ref, className: cn("aviala-card", className), ...props, children })
10365
+ ({ className, children, ...props }, ref) => /* @__PURE__ */ jsx57("div", { ref, className: cn("aviala-card", className), ...props, children })
10101
10366
  );
10102
10367
  Card.displayName = "Card";
10103
10368
  function renderCardIcon(node) {
@@ -10110,7 +10375,7 @@ function renderCardIcon(node) {
10110
10375
  "shrink-0"
10111
10376
  )
10112
10377
  }) : node;
10113
- return /* @__PURE__ */ jsx55("span", { className: "aviala-card-head__icon", children: content });
10378
+ return /* @__PURE__ */ jsx57("span", { className: "aviala-card-head__icon", children: content });
10114
10379
  }
10115
10380
  var CardHead = forwardRef42(
10116
10381
  ({
@@ -10128,38 +10393,38 @@ var CardHead = forwardRef42(
10128
10393
  children,
10129
10394
  ...props
10130
10395
  }, ref) => {
10131
- const primaryAction = action ?? /* @__PURE__ */ jsx55(Button, { mode: "primary", size: "regular", leftIcon: /* @__PURE__ */ jsx55(GeneralSetting2, { "aria-hidden": true }), children: actionLabel });
10396
+ const primaryAction = action ?? /* @__PURE__ */ jsx57(Button, { mode: "primary", size: "regular", leftIcon: /* @__PURE__ */ jsx57(GeneralSetting2, { "aria-hidden": true }), children: actionLabel });
10132
10397
  const renderTrailing = () => {
10133
10398
  if (trailing !== void 0) return trailing;
10134
10399
  switch (slotType) {
10135
10400
  case "action":
10136
- return /* @__PURE__ */ jsxs45("div", { className: "aviala-card-head__trailing", children: [
10401
+ return /* @__PURE__ */ jsxs47("div", { className: "aviala-card-head__trailing", children: [
10137
10402
  primaryAction,
10138
- secondaryAction ?? /* @__PURE__ */ jsx55(
10403
+ secondaryAction ?? /* @__PURE__ */ jsx57(
10139
10404
  Button,
10140
10405
  {
10141
10406
  mode: "default",
10142
10407
  size: "regular",
10143
10408
  iconOnly: true,
10144
10409
  "aria-label": "More",
10145
- leftIcon: /* @__PURE__ */ jsx55(GeneralSetting2, { "aria-hidden": true })
10410
+ leftIcon: /* @__PURE__ */ jsx57(GeneralSetting2, { "aria-hidden": true })
10146
10411
  }
10147
10412
  ),
10148
- /* @__PURE__ */ jsx55("span", { className: "aviala-card__divider", "aria-hidden": true }),
10149
- /* @__PURE__ */ jsx55(DirectionArrowRightLight5, { width: 14, height: 14, "aria-hidden": true })
10413
+ /* @__PURE__ */ jsx57("span", { className: "aviala-card__divider", "aria-hidden": true }),
10414
+ /* @__PURE__ */ jsx57(DirectionArrowRightLight5, { width: 14, height: 14, "aria-hidden": true })
10150
10415
  ] });
10151
10416
  case "switch":
10152
- return /* @__PURE__ */ jsxs45("div", { className: "aviala-card-head__trailing", children: [
10417
+ return /* @__PURE__ */ jsxs47("div", { className: "aviala-card-head__trailing", children: [
10153
10418
  primaryAction,
10154
- /* @__PURE__ */ jsx55("span", { className: "aviala-card__divider", "aria-hidden": true }),
10155
- /* @__PURE__ */ jsx55(Switch, { ...switchProps })
10419
+ /* @__PURE__ */ jsx57("span", { className: "aviala-card__divider", "aria-hidden": true }),
10420
+ /* @__PURE__ */ jsx57(Switch, { ...switchProps })
10156
10421
  ] });
10157
10422
  case "select":
10158
10423
  default:
10159
- return select != null ? /* @__PURE__ */ jsx55("div", { className: "aviala-card-head__trailing", children: select }) : null;
10424
+ return select != null ? /* @__PURE__ */ jsx57("div", { className: "aviala-card-head__trailing", children: select }) : null;
10160
10425
  }
10161
10426
  };
10162
- return /* @__PURE__ */ jsxs45(
10427
+ return /* @__PURE__ */ jsxs47(
10163
10428
  "div",
10164
10429
  {
10165
10430
  ref,
@@ -10167,9 +10432,9 @@ var CardHead = forwardRef42(
10167
10432
  "data-type": slotType,
10168
10433
  ...props,
10169
10434
  children: [
10170
- /* @__PURE__ */ jsxs45("div", { className: "aviala-card-head__main", children: [
10171
- renderCardIcon(icon ?? /* @__PURE__ */ jsx55(GeneralSetting2, { "aria-hidden": true })),
10172
- /* @__PURE__ */ jsx55("div", { className: "aviala-card-head__title", children: title != null || description != null ? /* @__PURE__ */ jsx55(Typeface, { content: "textCaption", primary: title, secondary: description }) : children })
10435
+ /* @__PURE__ */ jsxs47("div", { className: "aviala-card-head__main", children: [
10436
+ renderCardIcon(icon ?? /* @__PURE__ */ jsx57(GeneralSetting2, { "aria-hidden": true })),
10437
+ /* @__PURE__ */ jsx57("div", { className: "aviala-card-head__title", children: title != null || description != null ? /* @__PURE__ */ jsx57(Typeface, { content: "textCaption", primary: title, secondary: description }) : children })
10173
10438
  ] }),
10174
10439
  renderTrailing()
10175
10440
  ]
@@ -10179,7 +10444,7 @@ var CardHead = forwardRef42(
10179
10444
  );
10180
10445
  CardHead.displayName = "CardHead";
10181
10446
  var CardBody = forwardRef42(
10182
- ({ className, children, ...props }, ref) => /* @__PURE__ */ jsx55("div", { ref, className: cn("aviala-card-body", className), ...props, children: /* @__PURE__ */ jsx55("div", { className: "aviala-card-body__content", children: typeof children === "string" || typeof children === "number" ? /* @__PURE__ */ jsx55(Typography, { level: "text", as: "span", children }) : children }) })
10447
+ ({ className, children, ...props }, ref) => /* @__PURE__ */ jsx57("div", { ref, className: cn("aviala-card-body", className), ...props, children: /* @__PURE__ */ jsx57("div", { className: "aviala-card-body__content", children: typeof children === "string" || typeof children === "number" ? /* @__PURE__ */ jsx57(Typography, { level: "text", as: "span", children }) : children }) })
10183
10448
  );
10184
10449
  CardBody.displayName = "CardBody";
10185
10450
  var CardBottom = forwardRef42(
@@ -10195,46 +10460,46 @@ var CardBottom = forwardRef42(
10195
10460
  children,
10196
10461
  ...props
10197
10462
  }, ref) => {
10198
- const primaryAction = action ?? /* @__PURE__ */ jsx55(Button, { mode: "primary", size: "regular", leftIcon: /* @__PURE__ */ jsx55(GeneralSetting2, { "aria-hidden": true }), children: actionLabel });
10463
+ const primaryAction = action ?? /* @__PURE__ */ jsx57(Button, { mode: "primary", size: "regular", leftIcon: /* @__PURE__ */ jsx57(GeneralSetting2, { "aria-hidden": true }), children: actionLabel });
10199
10464
  const renderTrailing = () => {
10200
10465
  if (trailing !== void 0) return trailing;
10201
10466
  if (children != null) return children;
10202
10467
  switch (slotType) {
10203
10468
  case "switch":
10204
- return /* @__PURE__ */ jsxs45(Fragment9, { children: [
10469
+ return /* @__PURE__ */ jsxs47(Fragment9, { children: [
10205
10470
  primaryAction,
10206
- /* @__PURE__ */ jsx55("span", { className: "aviala-card__divider", "aria-hidden": true }),
10207
- /* @__PURE__ */ jsx55(Switch, { ...switchProps })
10471
+ /* @__PURE__ */ jsx57("span", { className: "aviala-card__divider", "aria-hidden": true }),
10472
+ /* @__PURE__ */ jsx57(Switch, { ...switchProps })
10208
10473
  ] });
10209
10474
  case "select":
10210
10475
  return select;
10211
10476
  case "action":
10212
10477
  default:
10213
- return /* @__PURE__ */ jsxs45(Fragment9, { children: [
10478
+ return /* @__PURE__ */ jsxs47(Fragment9, { children: [
10214
10479
  primaryAction,
10215
- secondaryAction ?? /* @__PURE__ */ jsx55(
10480
+ secondaryAction ?? /* @__PURE__ */ jsx57(
10216
10481
  Button,
10217
10482
  {
10218
10483
  mode: "default",
10219
10484
  size: "regular",
10220
10485
  iconOnly: true,
10221
10486
  "aria-label": "More",
10222
- leftIcon: /* @__PURE__ */ jsx55(GeneralSetting2, { "aria-hidden": true })
10487
+ leftIcon: /* @__PURE__ */ jsx57(GeneralSetting2, { "aria-hidden": true })
10223
10488
  }
10224
10489
  ),
10225
- /* @__PURE__ */ jsx55("span", { className: "aviala-card__divider", "aria-hidden": true }),
10226
- /* @__PURE__ */ jsx55(DirectionArrowRightLight5, { width: 14, height: 14, "aria-hidden": true })
10490
+ /* @__PURE__ */ jsx57("span", { className: "aviala-card__divider", "aria-hidden": true }),
10491
+ /* @__PURE__ */ jsx57(DirectionArrowRightLight5, { width: 14, height: 14, "aria-hidden": true })
10227
10492
  ] });
10228
10493
  }
10229
10494
  };
10230
- return /* @__PURE__ */ jsx55(
10495
+ return /* @__PURE__ */ jsx57(
10231
10496
  "div",
10232
10497
  {
10233
10498
  ref,
10234
10499
  className: cn("aviala-card-bottom", className),
10235
10500
  "data-type": slotType,
10236
10501
  ...props,
10237
- children: /* @__PURE__ */ jsx55("div", { className: "aviala-card-bottom__trailing", children: renderTrailing() })
10502
+ children: /* @__PURE__ */ jsx57("div", { className: "aviala-card-bottom__trailing", children: renderTrailing() })
10238
10503
  }
10239
10504
  );
10240
10505
  }
@@ -10247,9 +10512,9 @@ import {
10247
10512
  forwardRef as forwardRef43,
10248
10513
  isValidElement as isValidElement18
10249
10514
  } from "react";
10250
- import { Fragment as Fragment10, jsx as jsx56, jsxs as jsxs46 } from "react/jsx-runtime";
10515
+ import { Fragment as Fragment10, jsx as jsx58, jsxs as jsxs48 } from "react/jsx-runtime";
10251
10516
  var Table = forwardRef43(
10252
- ({ className, children, ...props }, ref) => /* @__PURE__ */ jsx56(
10517
+ ({ className, children, ...props }, ref) => /* @__PURE__ */ jsx58(
10253
10518
  "div",
10254
10519
  {
10255
10520
  ref,
@@ -10262,7 +10527,7 @@ var Table = forwardRef43(
10262
10527
  );
10263
10528
  Table.displayName = "Table";
10264
10529
  var TableRow = forwardRef43(
10265
- ({ className, header = false, children, ...props }, ref) => /* @__PURE__ */ jsx56(
10530
+ ({ className, header = false, children, ...props }, ref) => /* @__PURE__ */ jsx58(
10266
10531
  "div",
10267
10532
  {
10268
10533
  ref,
@@ -10276,7 +10541,7 @@ var TableRow = forwardRef43(
10276
10541
  );
10277
10542
  TableRow.displayName = "TableRow";
10278
10543
  var TableHead = forwardRef43(
10279
- ({ className, content = "text", children, ...props }, ref) => /* @__PURE__ */ jsx56(
10544
+ ({ className, content = "text", children, ...props }, ref) => /* @__PURE__ */ jsx58(
10280
10545
  "div",
10281
10546
  {
10282
10547
  ref,
@@ -10284,7 +10549,7 @@ var TableHead = forwardRef43(
10284
10549
  className: cn("aviala-table-head", className),
10285
10550
  "data-content": content,
10286
10551
  ...props,
10287
- children: typeof children === "string" || typeof children === "number" ? /* @__PURE__ */ jsx56(Typography, { level: "caption", as: "span", children }) : children
10552
+ children: typeof children === "string" || typeof children === "number" ? /* @__PURE__ */ jsx58(Typography, { level: "caption", as: "span", children }) : children
10288
10553
  }
10289
10554
  )
10290
10555
  );
@@ -10299,7 +10564,7 @@ function renderCellIcon(node) {
10299
10564
  "shrink-0"
10300
10565
  )
10301
10566
  }) : node;
10302
- return /* @__PURE__ */ jsx56("span", { className: "aviala-table-cell__icon", children: content });
10567
+ return /* @__PURE__ */ jsx58("span", { className: "aviala-table-cell__icon", children: content });
10303
10568
  }
10304
10569
  var TableCell = forwardRef43(
10305
10570
  ({
@@ -10320,29 +10585,29 @@ var TableCell = forwardRef43(
10320
10585
  if (children != null) return children;
10321
10586
  switch (content) {
10322
10587
  case "checkbox":
10323
- return /* @__PURE__ */ jsx56(Checkbox, { ...checkboxProps });
10588
+ return /* @__PURE__ */ jsx58(Checkbox, { ...checkboxProps });
10324
10589
  case "icon+text":
10325
- return /* @__PURE__ */ jsxs46(Fragment10, { children: [
10590
+ return /* @__PURE__ */ jsxs48(Fragment10, { children: [
10326
10591
  renderCellIcon(icon),
10327
- /* @__PURE__ */ jsx56("span", { className: "aviala-table-cell__text", children: /* @__PURE__ */ jsx56(Typography, { level: "text", as: "span", children: text }) })
10592
+ /* @__PURE__ */ jsx58("span", { className: "aviala-table-cell__text", children: /* @__PURE__ */ jsx58(Typography, { level: "text", as: "span", children: text }) })
10328
10593
  ] });
10329
10594
  case "people":
10330
- return /* @__PURE__ */ jsxs46(Fragment10, { children: [
10331
- people ?? /* @__PURE__ */ jsx56(Avatar, { content: "text", level: "text", children: "A" }),
10332
- /* @__PURE__ */ jsx56("span", { className: "aviala-table-cell__text", children: /* @__PURE__ */ jsx56(Typography, { level: "text", as: "span", children: text }) })
10595
+ return /* @__PURE__ */ jsxs48(Fragment10, { children: [
10596
+ people ?? /* @__PURE__ */ jsx58(Avatar, { content: "text", level: "text", children: "A" }),
10597
+ /* @__PURE__ */ jsx58("span", { className: "aviala-table-cell__text", children: /* @__PURE__ */ jsx58(Typography, { level: "text", as: "span", children: text }) })
10333
10598
  ] });
10334
10599
  case "badge":
10335
- return badge ?? /* @__PURE__ */ jsx56(Badge, { style: "theme", level: "caption", children: badgeLabel ?? "Text" });
10600
+ return badge ?? /* @__PURE__ */ jsx58(Badge, { style: "theme", level: "caption", children: badgeLabel ?? "Text" });
10336
10601
  case "switch":
10337
- return /* @__PURE__ */ jsx56(Switch, { ...switchProps });
10602
+ return /* @__PURE__ */ jsx58(Switch, { ...switchProps });
10338
10603
  case "action":
10339
- return /* @__PURE__ */ jsx56("div", { className: "aviala-table-cell__actions", children: actions });
10604
+ return /* @__PURE__ */ jsx58("div", { className: "aviala-table-cell__actions", children: actions });
10340
10605
  case "text":
10341
10606
  default:
10342
- return /* @__PURE__ */ jsx56("span", { className: "aviala-table-cell__text", children: /* @__PURE__ */ jsx56(Typography, { level: "text", as: "span", children: text }) });
10607
+ return /* @__PURE__ */ jsx58("span", { className: "aviala-table-cell__text", children: /* @__PURE__ */ jsx58(Typography, { level: "text", as: "span", children: text }) });
10343
10608
  }
10344
10609
  };
10345
- return /* @__PURE__ */ jsx56(
10610
+ return /* @__PURE__ */ jsx58(
10346
10611
  "div",
10347
10612
  {
10348
10613
  ref,
@@ -10403,6 +10668,7 @@ export {
10403
10668
  Feedback,
10404
10669
  Fieldset,
10405
10670
  FormField,
10671
+ HoverPopover,
10406
10672
  Input,
10407
10673
  InputGroup,
10408
10674
  InputGroupAddon,
@@ -10453,6 +10719,7 @@ export {
10453
10719
  RadioGroup,
10454
10720
  RadioGroupItem,
10455
10721
  RadioInput,
10722
+ ResponsiveTooltip,
10456
10723
  Scroll,
10457
10724
  ScrollPicker,
10458
10725
  ScrollPickerColumn,