cekat-ui 1.3.7 → 1.3.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -4,15 +4,28 @@ import { CellProps as CellProps_2 } from 'react-aria-components';
4
4
  import { ClassValue } from 'clsx';
5
5
  import { ColumnProps as ColumnProps_2 } from 'react-aria-components';
6
6
  import { ColumnResizerProps as ColumnResizerProps_2 } from 'react-aria-components';
7
+ import { ComboBoxProps as ComboBoxProps_2 } from 'react-aria-components';
7
8
  import { default as default_2 } from 'react';
9
+ import { DialogProps } from 'react-aria-components';
10
+ import { GroupProps } from 'react-aria-components';
11
+ import { InputProps as InputProps_2 } from 'react-aria-components';
8
12
  import { JSX as JSX_2 } from 'react/jsx-runtime';
9
13
  import { Key } from 'react-aria-components';
14
+ import { ListBoxItemProps as ListBoxItemProps_2 } from 'react-aria-components';
15
+ import { ListBoxProps as ListBoxProps_2 } from 'react-aria-components';
16
+ import { MenuItemProps as MenuItemProps_2 } from 'react-aria-components';
17
+ import { MenuProps as MenuProps_2 } from 'react-aria-components';
18
+ import { MenuTrigger } from 'react-aria-components';
19
+ import { ModalOverlayProps } from 'react-aria-components';
20
+ import { PopoverProps as PopoverProps_2 } from 'react-aria-components';
10
21
  import { PressEvent } from 'react-aria-components';
11
22
  import * as React_2 from 'react';
12
23
  import { ReactNode } from 'react';
13
24
  import { ResizableTableContainerProps } from 'react-aria-components';
14
25
  import { RowProps as RowProps_2 } from 'react-aria-components';
15
26
  import { SelectionIndicator } from 'react-aria-components';
27
+ import { SelectProps as SelectProps_2 } from 'react-aria-components';
28
+ import { SelectValueProps as SelectValueProps_2 } from 'react-aria-components';
16
29
  import { TableBodyProps as TableBodyProps_2 } from 'react-aria-components';
17
30
  import { TableFooterProps as TableFooterProps_2 } from 'react-aria-components';
18
31
  import { TableHeaderProps as TableHeaderProps_2 } from 'react-aria-components';
@@ -344,53 +357,92 @@ export declare const ColumnResizer: React_2.ForwardRefExoticComponent<ColumnResi
344
357
  export declare interface ColumnResizerProps extends ColumnResizerProps_2 {
345
358
  }
346
359
 
347
- export declare function Dropdown({ trigger, label, icon, avatarSrc, avatarInitials, header, items, open: openProp, defaultOpen, onOpenChange, disabled, align, className, menuClassName, }: DropdownProps): JSX_2.Element;
360
+ export declare const ComboBox: <T extends object, M extends ComboBoxSelectionMode = "single">(props: ComboBoxProps<T, M> & {
361
+ ref?: React_2.Ref<HTMLDivElement>;
362
+ }) => React_2.ReactElement;
348
363
 
349
- export declare interface DropdownHeader {
350
- name: React_2.ReactNode;
351
- subtitle?: React_2.ReactNode;
352
- avatarSrc?: string;
353
- avatarInitials?: React_2.ReactNode;
354
- status?: AvatarStatus;
364
+ export declare const ComboBoxInput: React_2.ForwardRefExoticComponent<ComboBoxInputProps & React_2.RefAttributes<HTMLInputElement>>;
365
+
366
+ export declare interface ComboBoxInputProps extends Omit<InputProps_2, 'className' | 'style'> {
367
+ className?: ClassValue;
368
+ style?: React_2.CSSProperties;
355
369
  }
356
370
 
357
- export declare interface DropdownMenuItem {
358
- id: string;
359
- /** Renders a horizontal divider instead of an item when true. */
360
- divider?: boolean;
361
- label?: string;
362
- icon?: React_2.ReactNode;
363
- /** Trailing shortcut hint (e.g. "⌘C"). */
364
- shortcut?: string;
365
- disabled?: boolean;
366
- onClick?: () => void;
371
+ /**
372
+ * `ListBoxItem` with the same provisional selected-row treatment as `Select`'s `SelectItem` —
373
+ * see `selectItemSelectedStyles` for why it's provisional. Reused directly rather than
374
+ * re-declared, same as `Menu` does for its own items.
375
+ */
376
+ export declare function ComboBoxItem<T extends object>({ className, ...props }: ListBoxItemProps<T>): JSX_2.Element;
377
+
378
+ export declare interface ComboBoxProps<T extends object, M extends ComboBoxSelectionMode = 'single'> extends Omit<ComboBoxProps_2<T, M>, 'className' | 'style' | 'children'> {
379
+ children: ComboBoxProps_2<T, M>['children'];
380
+ className?: ClassValue;
381
+ style?: React_2.CSSProperties;
367
382
  }
368
383
 
369
- export declare interface DropdownProps {
370
- /** "button" shows a labeled trigger, "icon" a kebab trigger, "avatar" the user's avatar. */
371
- trigger?: DropdownTriggerType;
372
- /** Label for the "button" trigger. */
373
- label?: string;
374
- /** Custom icon for the "icon" trigger (defaults to a vertical-dots icon). */
384
+ /**
385
+ * `'single' | 'multiple'` unlike `Select` (single-value by construction), `ComboBox`
386
+ * genuinely supports both: multi-selection with removable tags is this component's job,
387
+ * not `Select`'s.
388
+ */
389
+ export declare type ComboBoxSelectionMode = 'single' | 'multiple';
390
+
391
+ export declare type ComboBoxSize = 'xs' | 'sm' | 'md';
392
+
393
+ /**
394
+ * Renders one chip per selected item, via a render-prop rather than owning `Tag` rendering
395
+ * itself — reuses the existing `Tag` component rather than re-declaring chip styling, and
396
+ * `Tag`'s own color/size/icon surface is a styling decision that belongs to the consumer, not
397
+ * this component. Reads
398
+ * `ComboBoxStateContext` directly (same context `ComboBoxValue` uses internally) rather than
399
+ * threading `selectedItems` through props.
400
+ *
401
+ * Wrapped in `comboBoxTagsRowStyles` (single row, horizontal scroll, no visible scrollbar) so
402
+ * every consumer gets Figma's fixed-height, non-wrapping `Tags` layout by construction, rather
403
+ * than each call site having to remember to wrap it correctly.
404
+ */
405
+ export declare const ComboBoxTags: ({ children }: ComboBoxTagsProps) => JSX_2.Element | null;
406
+
407
+ export declare interface ComboBoxTagsProps {
408
+ /** Rendered per selected item; must call the given `onRemove` from a close affordance. */
409
+ children: (item: {
410
+ key: React_2.Key;
411
+ textValue: string;
412
+ onRemove: () => void;
413
+ }) => React_2.ReactNode;
414
+ }
415
+
416
+ /**
417
+ * Wraps RAC's `Group`, not a `Button` — the trigger holds the leading icon, the text input, and
418
+ * any tag chips (`ComboBoxTags`) as siblings.
419
+ *
420
+ * No trailing chevron/toggle button — Figma's `Type=Search`/`Type=Tags` nodes (81:15162,
421
+ * 81:15174) never render one; the leading search icon alone signals the field is searchable.
422
+ * `icon` stays optional at the type level (not required) even though omitting it removes the
423
+ * only visual affordance a trigger has once the chevron is gone — that's a deliberate usage
424
+ * note, not something enforced here. Consumers rendering `ComboBoxTrigger` without an `icon`
425
+ * get a field that looks like a plain text input; pass one.
426
+ *
427
+ * Clicking anywhere in the field — the icon, the padding, blank space next to the tags —
428
+ * focuses the input, the same way clicking anywhere in a native bordered text field does.
429
+ * `Group` gets no such behavior for free (it's a plain `<div role="group">`; only the `<input>`
430
+ * itself is focusable), so this was a real gap, not a style-only wrapper: without it, everything
431
+ * outside the input's own hit area is dead space that looks clickable and isn't. Only clicks
432
+ * that don't already land on a real control (the input, a tag's remove button) redirect focus —
433
+ * `closest('button, input')` is the check — so this never steals a click already meant for one
434
+ * of those.
435
+ */
436
+ export declare const ComboBoxTrigger: React_2.ForwardRefExoticComponent<ComboBoxTriggerProps & React_2.RefAttributes<HTMLDivElement>>;
437
+
438
+ export declare interface ComboBoxTriggerProps extends Omit<GroupProps, 'className' | 'style' | 'children' | 'role'> {
439
+ size?: ComboBoxSize;
440
+ /** Leading ornament slot — same as `Select`'s: icon, `Avatar`, or a status dot. */
375
441
  icon?: React_2.ReactNode;
376
- /** Avatar image for the "avatar" trigger. */
377
- avatarSrc?: string;
378
- avatarInitials?: React_2.ReactNode;
379
- /** Optional user summary rendered at the top of the menu. */
380
- header?: DropdownHeader;
381
- items: DropdownMenuItem[];
382
- open?: boolean;
383
- defaultOpen?: boolean;
384
- onOpenChange?: (open: boolean) => void;
385
- disabled?: boolean;
386
- /** Which edge of the trigger the menu aligns to. */
387
- align?: 'start' | 'end';
442
+ children: React_2.ReactNode;
388
443
  className?: ClassValue;
389
- menuClassName?: ClassValue;
390
444
  }
391
445
 
392
- export declare type DropdownTriggerType = 'button' | 'icon' | 'avatar';
393
-
394
446
  /**
395
447
  * Standalone, not table-scoped — search results and filtered lists need it
396
448
  * too. Structure follows the shipped "No Data Found" design (Figma
@@ -541,6 +593,43 @@ declare interface InputTrailingButtonSlot {
541
593
  disabled?: boolean;
542
594
  }
543
595
 
596
+ export declare const ListBox: <T extends object>(props: ListBoxProps<T> & {
597
+ ref?: React_2.Ref<HTMLDivElement>;
598
+ }) => React_2.ReactElement;
599
+
600
+ export declare const ListBoxItem: <T extends object>(props: ListBoxItemProps<T> & {
601
+ ref?: React_2.Ref<HTMLDivElement>;
602
+ }) => React_2.ReactElement;
603
+
604
+ /**
605
+ * Leading-content axis for an item. A single enum, not `icon`/`checkbox` booleans — no
606
+ * Figma variant combines them, and one axis makes the combination unrepresentable instead
607
+ * of just unused. Default `none`.
608
+ */
609
+ export declare type ListBoxItemContent = 'none' | 'icon' | 'selection';
610
+
611
+ export declare interface ListBoxItemProps<T extends object = object> extends Omit<ListBoxItemProps_2<T>, 'className' | 'style'> {
612
+ content?: ListBoxItemContent;
613
+ /** Rendered in the leading slot when `content="icon"`. */
614
+ icon?: React_2.ReactNode;
615
+ /** Rendered right-aligned, e.g. a keyboard shortcut hint. */
616
+ shortcut?: React_2.ReactNode;
617
+ className?: ClassValue;
618
+ style?: React_2.CSSProperties;
619
+ }
620
+
621
+ export declare interface ListBoxProps<T extends object> extends Omit<ListBoxProps_2<T>, 'className' | 'style'> {
622
+ className?: ClassValue;
623
+ style?: React_2.CSSProperties;
624
+ }
625
+
626
+ /** A `Separator` element, not an item variant. */
627
+ export declare const ListBoxSeparator: ({ className }: ListBoxSeparatorProps) => JSX_2.Element;
628
+
629
+ export declare interface ListBoxSeparatorProps {
630
+ className?: string;
631
+ }
632
+
544
633
  export declare const Loading: {
545
634
  ({ size, style, supportingText, label, className, }: LoadingProps): JSX_2.Element;
546
635
  displayName: string;
@@ -558,30 +647,141 @@ export declare type LoadingSize = 'sm' | 'md' | 'lg' | 'xl';
558
647
 
559
648
  export declare type LoadingStyle = 'line-simple' | 'line-spinner' | 'dot-circle';
560
649
 
561
- export declare function MultiSelectInput({ size, label, required, hint, error, disabled, placeholder, rightIcon, className, wrapperClassName, options, value, onChange, }: MultiSelectInputProps): JSX_2.Element;
650
+ export declare const Menu: <T extends object>(props: MenuProps<T> & {
651
+ ref?: React_2.Ref<HTMLDivElement>;
652
+ }) => React_2.ReactElement;
562
653
 
563
- declare interface MultiSelectInputProps {
564
- size?: 'sm' | 'md';
565
- label?: string;
566
- required?: boolean;
567
- hint?: string;
568
- error?: boolean;
569
- disabled?: boolean;
570
- placeholder?: string;
571
- rightIcon?: default_2.ReactNode;
654
+ /**
655
+ * Figma `_Dropdown list header` (81:14786) has two authored forms — avatar-group and plain
656
+ * text. Shipped as one slot, not two variants: this component only owns the header's
657
+ * structural chrome (bottom border, padding); the consumer supplies whichever content.
658
+ *
659
+ * Built on RAC's own `<Header>` (`createLeafComponent(HeaderNode, ...)`), not a plain `<div>` —
660
+ * every child of `<Menu>` is routed through RAC's collection builder, which only recognizes
661
+ * proper collection node types (`MenuItem`, `MenuSection`, `Separator`, `Header`). A plain,
662
+ * unrecognized `<div>` here silently corrupts collection building: `state.collection.size`
663
+ * drops to 0 and every `MenuItem` disappears with no error thrown. Verified directly — swapping
664
+ * this back to a raw `<div>` reproduces zero rendered `role="menuitem"` elements on open, even
665
+ * with otherwise-unmodified content.
666
+ */
667
+ export declare const MenuHeader: ({ children, className }: MenuHeaderProps) => JSX_2.Element;
668
+
669
+ export declare interface MenuHeaderProps {
670
+ children: React_2.ReactNode;
671
+ className?: string;
672
+ }
673
+
674
+ export declare const MenuItem: <T extends object>(props: MenuItemProps<T> & {
675
+ ref?: React_2.Ref<HTMLDivElement>;
676
+ }) => React_2.ReactElement;
677
+
678
+ /** Same enum as `ListBox`'s `content` axis. Default `none`. */
679
+ export declare type MenuItemContent = 'none' | 'icon' | 'selection';
680
+
681
+ export declare interface MenuItemProps<T extends object = object> extends Omit<MenuItemProps_2<T>, 'className' | 'style'> {
682
+ content?: MenuItemContent;
683
+ /** Rendered in the leading slot when `content="icon"`. */
684
+ icon?: React_2.ReactNode;
685
+ /** Figma `.Shortcut` (355:3773) — text-only, right-aligned. */
686
+ shortcut?: React_2.ReactNode;
572
687
  className?: ClassValue;
573
- wrapperClassName?: ClassValue;
574
- options: MultiSelectOption[];
575
- value?: MultiSelectOption[];
576
- onChange?: (value: MultiSelectOption[]) => void;
688
+ style?: React_2.CSSProperties;
577
689
  }
578
690
 
579
- declare interface MultiSelectOption {
580
- id: string;
581
- label: string;
582
- avatar?: string;
691
+ export declare interface MenuProps<T extends object> extends Omit<MenuProps_2<T>, 'className' | 'style'> {
692
+ className?: ClassValue;
693
+ style?: React_2.CSSProperties;
694
+ }
695
+
696
+ /** A `Separator` element, not an item variant. */
697
+ export declare const MenuSeparator: ({ className }: MenuSeparatorProps) => JSX_2.Element;
698
+
699
+ export declare interface MenuSeparatorProps {
700
+ className?: string;
701
+ }
702
+
703
+ export { MenuTrigger }
704
+
705
+ export declare const Modal: ModalCompound;
706
+
707
+ export declare interface ModalBodyProps {
708
+ children?: React_2.ReactNode;
709
+ className?: ClassValue;
710
+ }
711
+
712
+ /** `ForwardRefExoticComponent` rather than `FC`: the base forwards a ref to RAC's `Modal`. */
713
+ export declare type ModalCompound = React_2.ForwardRefExoticComponent<ModalProps & React_2.RefAttributes<HTMLDivElement>> & {
714
+ Header: React_2.FC<ModalHeaderProps>;
715
+ Body: React_2.FC<ModalBodyProps>;
716
+ ImagePanel: React_2.FC<ModalImagePanelProps>;
717
+ Footer: React_2.FC<ModalFooterProps>;
718
+ };
719
+
720
+ export declare type ModalFooterLayout = 'horizontal-fill' | 'horizontal' | 'vertical-fill' | 'right-aligned' | 'right-aligned-checkbox' | 'wizard-navigation' | 'single-cta';
721
+
722
+ export declare interface ModalFooterProps {
723
+ /** Default `horizontal-fill`, matching Figma's documented default. */
724
+ layout?: ModalFooterLayout;
725
+ /** Reddens the primary action (Confirm/Delete/Next) for irreversible operations. Default `false`. */
726
+ destructive?: boolean;
727
+ /** Disables every button in the footer — matches the single `busy` flag every current dashboard confirm dialog already uses for its Cancel+Confirm pair. Default `false`. */
728
+ isPending?: boolean;
729
+ /** Not used by `single-cta`. */
730
+ cancelLabel?: string;
731
+ onCancel?: () => void;
732
+ /** The primary action's label — "Next" for `wizard-navigation`, "Confirm"/"Delete" elsewhere. Every layout has one. */
733
+ confirmLabel: string;
734
+ onConfirm: () => void;
735
+ isConfirmDisabled?: boolean;
736
+ /** `wizard-navigation` only. Default `'Back'`. */
737
+ backLabel?: string;
738
+ /** `wizard-navigation` only. */
739
+ onBack?: () => void;
740
+ /** `right-aligned-checkbox` only — consumer-supplied, e.g. cekat-ui's own `Checkbox` alongside its own label markup (`Checkbox` itself has no built-in label). */
741
+ checkbox?: React_2.ReactNode;
742
+ className?: ClassValue;
743
+ }
744
+
745
+ export declare interface ModalHeaderProps {
746
+ title: React_2.ReactNode;
747
+ subtitle?: React_2.ReactNode;
748
+ icon?: React_2.ReactNode;
749
+ className?: ClassValue;
750
+ }
751
+
752
+ export declare interface ModalImagePanelProps {
753
+ children?: React_2.ReactNode;
754
+ className?: ClassValue;
755
+ }
756
+
757
+ export declare interface ModalProps extends Omit<ModalOverlayProps, 'className' | 'style' | 'children'> {
758
+ children?: DialogProps['children'];
759
+ /** Content-area width. Figma foundation: sm 500px · md 640px · lg 800px. Default `sm`. */
760
+ size?: ModalSize;
761
+ /**
762
+ * The standalone top-right dismiss button Figma's foundation `Modal Shell` renders on the
763
+ * card itself, regardless of whether a `Modal.Header` is present. Default `true`.
764
+ */
765
+ showCloseButton?: boolean;
766
+ /**
767
+ * Optional left-side image area — pass a `Modal.ImagePanel`. Widens the card beyond `size`'s
768
+ * content-area width, matching Figma's `Show Image Panel` toggle (the three per-size
769
+ * `Image Placeholder` slots in the design file are a Figma-variant artifact of the same single
770
+ * slot, not three independent props — collapsed here into one).
771
+ */
772
+ imagePanel?: React_2.ReactNode;
773
+ 'aria-label'?: string;
774
+ 'aria-labelledby'?: string;
775
+ /**
776
+ * Applied to the content area — the whole card when `imagePanel` isn't used, otherwise just
777
+ * the left column beside it. Overrides `size`'s default width.
778
+ */
779
+ className?: ClassValue;
780
+ style?: React_2.CSSProperties;
583
781
  }
584
782
 
783
+ export declare type ModalSize = 'sm' | 'md' | 'lg';
784
+
585
785
  declare type NativeButtonProps = Omit<React_2.ButtonHTMLAttributes<HTMLButtonElement>, 'children' | 'className' | 'style'>;
586
786
 
587
787
  export declare function PhoneInput({ size, label, required, hint, error, disabled, placeholder, rightIcon, value, onChange, className, wrapperClassName, }: PhoneInputProps): JSX_2.Element;
@@ -601,6 +801,29 @@ declare interface PhoneInputProps {
601
801
  wrapperClassName?: InputProps['wrapperClassName'];
602
802
  }
603
803
 
804
+ /**
805
+ * Overlay foundation for the dropdown family (Menu, Select, ComboBox) and Tooltip. Wraps RAC's
806
+ * `Popover`, which already provides: portal to `document.body`,
807
+ * flip on the main axis and boundary-clamped shift on the cross axis when space runs out,
808
+ * `maxHeight` clamped to available viewport space, reposition on window resize and on trigger/
809
+ * overlay size change, Escape-to-close with focus restored to the trigger, and outside-press
810
+ * dismissal. This wrapper adds the two things RAC does not: reposition (not close) on ancestor
811
+ * scroll, and suppressing the ARIA role RAC would otherwise emit.
812
+ */
813
+ export declare const Popover: React_2.ForwardRefExoticComponent<PopoverProps & React_2.RefAttributes<HTMLElement>>;
814
+
815
+ export declare interface PopoverProps extends Omit<PopoverProps_2, 'className' | 'style' | 'children'> {
816
+ children?: PopoverProps_2['children'];
817
+ /**
818
+ * Matches the panel's width to the trigger's width, via RAC's `--trigger-width` CSS
819
+ * var. Opt-in — most consumers (menus, comboboxes with long option labels) must not
820
+ * be clamped to trigger width. Default `false`.
821
+ */
822
+ matchTriggerWidth?: boolean;
823
+ className?: ClassValue;
824
+ style?: React_2.CSSProperties;
825
+ }
826
+
604
827
  export { PressEvent }
605
828
 
606
829
  export declare const RadioGroup: ({ value, defaultValue, onValueChange, children, className, }: RadioGroupProps) => JSX_2.Element;
@@ -653,8 +876,63 @@ declare interface SaleAmountInputProps {
653
876
  wrapperClassName?: InputProps['wrapperClassName'];
654
877
  }
655
878
 
879
+ export declare const Select: <T extends object>(props: SelectProps<T> & {
880
+ ref?: React_2.Ref<HTMLDivElement>;
881
+ }) => React_2.ReactElement;
882
+
656
883
  export { SelectionIndicator }
657
884
 
885
+ /**
886
+ * `ListBoxItem` with the selected-row treatment baked in — see `selectItemSelectedStyles` for
887
+ * why it's a placeholder. This lives on `Select`'s own item rather than on the shared `ListBox`
888
+ * because `Menu` doesn't have a Selected state to render at all. `content="selection"` reuses
889
+ * `ListBox`'s leading-checkmark rendering unchanged.
890
+ */
891
+ export declare function SelectItem<T extends object>({ className, ...props }: ListBoxItemProps<T>): JSX_2.Element;
892
+
893
+ /**
894
+ * Single-value by construction — RAC's `Select` also supports `selectionMode: 'multiple'`,
895
+ * deliberately not exposed here. A multi-value trigger is a different interaction (chips, no
896
+ * auto-close) that belongs to its own component, not a prop on this one.
897
+ */
898
+ export declare interface SelectProps<T extends object> extends Omit<SelectProps_2<T, 'single'>, 'className' | 'style' | 'children' | 'selectionMode'> {
899
+ children: SelectProps_2<T, 'single'>['children'];
900
+ className?: ClassValue;
901
+ style?: React_2.CSSProperties;
902
+ }
903
+
904
+ export declare type SelectSize = 'xs' | 'sm' | 'md';
905
+
906
+ /**
907
+ * Wraps RAC's raw `Button`, not this library's own `Button` — a Select trigger has its own
908
+ * bordered-field chrome (matching `InputDropdown`'s size scale/tokens), not a button variant,
909
+ * and the extra `tone`/`variant`/`iconOnly` surface of the library `Button` doesn't apply here.
910
+ */
911
+ export declare const SelectTrigger: React_2.ForwardRefExoticComponent<SelectTriggerProps & React_2.RefAttributes<HTMLButtonElement>>;
912
+
913
+ export declare interface SelectTriggerProps extends Omit<ButtonProps_2, 'className' | 'style' | 'children'> {
914
+ children: ButtonProps_2['children'];
915
+ size?: SelectSize;
916
+ /**
917
+ * Leading ornament slot — icon, `Avatar`, or a status dot all go through this one prop.
918
+ * Ornament is a slot, not a variant axis: three separate typed props would make "which
919
+ * ornament kind" a variant decision that isn't this component's to make — the consumer
920
+ * already has the icon/avatar/dot element.
921
+ */
922
+ icon?: React_2.ReactNode;
923
+ className?: ClassValue;
924
+ style?: React_2.CSSProperties;
925
+ }
926
+
927
+ export declare const SelectValue: <T>(props: SelectValueProps<T> & {
928
+ ref?: React_2.Ref<HTMLSpanElement>;
929
+ }) => React_2.ReactElement;
930
+
931
+ export declare interface SelectValueProps<T> extends Omit<SelectValueProps_2<T>, 'className' | 'style'> {
932
+ className?: ClassValue;
933
+ style?: React_2.CSSProperties;
934
+ }
935
+
658
936
  /**
659
937
  * Shared by `Column` and `Cell`. Freezes the element during horizontal scroll
660
938
  * — `'left'` pins it to the left edge, `'right'` to the right. Requires an
@@ -979,6 +1257,25 @@ declare type ToggleSize = 'sm' | 'md'
979
1257
 
980
1258
  declare type ToggleVariant = 'default' | 'success';
981
1259
 
1260
+ /**
1261
+ * Routes through `Popover` — standalone (no trigger context: `triggerRef`/`isOpen` driven
1262
+ * directly, same as `Popover`'s own standalone-usage support), with `isNonModal` so RAC skips
1263
+ * everything a tooltip must never do: `role="dialog"`, focus containment, a `DismissButton`,
1264
+ * stealing focus on open, and body-scroll locking (all gated on `!isNonModal` inside RAC's
1265
+ * `usePopover`/`PopoverInner` — confirmed against source, not just docs). `isNonModal` also
1266
+ * switches RAC's ancestor-scroll handling from Popover's own custom reposition-on-scroll to
1267
+ * RAC's own close-on-scroll — acceptable here since a tooltip is ephemeral and hover-driven;
1268
+ * closing instead of chasing the trigger across a scrolling container is reasonable, arguably
1269
+ * better than for a menu/select where closing loses navigation context.
1270
+ *
1271
+ * This replaces the previous hand-rolled `createPortal` + manual measurement (`getBoundingClientRect`
1272
+ * math per `side`) + `ResizeObserver` + scroll/resize listeners with RAC's own positioning:
1273
+ * portal-to-body, flip-on-both-axes (the old implementation had none — always rendered at the
1274
+ * exact requested `side` regardless of viewport edges), and `maxHeight` clamping, none of which
1275
+ * existed before. `OverlayArrow` needs no wiring on `Popover`'s side — RAC's `Popover` always
1276
+ * provides `OverlayArrowContext` to its children regardless of whether anything consumes it, so
1277
+ * it "just works" as a child here with zero changes to `Popover.tsx`.
1278
+ */
982
1279
  export declare const Tooltip: {
983
1280
  ({ content, supportingText, side, open, defaultOpen, disabled, delay, className, children, }: TooltipProps): JSX_2.Element;
984
1281
  displayName: string;