@primitiv-ui/react 0.1.38 → 0.1.40
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/README.md +24 -2
- package/dist/AccessibleIcon/AccessibleIcon.d.ts +51 -0
- package/dist/AccessibleIcon/AccessibleIcon.js +55 -0
- package/dist/AccessibleIcon/index.d.ts +2 -0
- package/dist/AccessibleIcon/index.js +2 -0
- package/dist/AccessibleIcon/types.d.ts +24 -0
- package/dist/AccessibleIcon/types.js +1 -0
- package/dist/Accordion/Accordion.d.ts +287 -0
- package/dist/Accordion/Accordion.js +330 -0
- package/dist/Accordion/AccordionContext.d.ts +3 -0
- package/dist/Accordion/AccordionContext.js +4 -0
- package/dist/Accordion/hooks/index.d.ts +6 -0
- package/dist/Accordion/hooks/index.js +6 -0
- package/dist/Accordion/hooks/useAccordionContext.d.ts +1 -0
- package/dist/Accordion/hooks/useAccordionContext.js +1 -0
- package/dist/Accordion/hooks/useAccordionHeaderContext.d.ts +1 -0
- package/dist/Accordion/hooks/useAccordionHeaderContext.js +10 -0
- package/dist/Accordion/hooks/useAccordionItem.d.ts +8 -0
- package/dist/Accordion/hooks/useAccordionItem.js +15 -0
- package/dist/Accordion/hooks/useAccordionItemContext.d.ts +1 -0
- package/dist/Accordion/hooks/useAccordionItemContext.js +1 -0
- package/dist/Accordion/hooks/useAccordionRoot.d.ts +16 -0
- package/dist/Accordion/hooks/useAccordionRoot.js +133 -0
- package/dist/Accordion/hooks/useAccordionTrigger.d.ts +298 -0
- package/dist/Accordion/hooks/useAccordionTrigger.js +73 -0
- package/dist/Accordion/index.d.ts +2 -0
- package/dist/Accordion/index.js +2 -0
- package/dist/Accordion/types.d.ts +152 -0
- package/dist/Accordion/types.js +1 -0
- package/dist/Alert/Alert.d.ts +64 -0
- package/dist/Alert/Alert.js +70 -0
- package/dist/Alert/index.d.ts +2 -0
- package/dist/Alert/index.js +2 -0
- package/dist/Alert/types.d.ts +21 -0
- package/dist/Alert/types.js +1 -0
- package/dist/Avatar/Avatar.d.ts +144 -0
- package/dist/Avatar/Avatar.js +187 -0
- package/dist/Avatar/AvatarContext.d.ts +16 -0
- package/dist/Avatar/AvatarContext.js +7 -0
- package/dist/Avatar/hooks/index.d.ts +2 -0
- package/dist/Avatar/hooks/index.js +2 -0
- package/dist/Avatar/hooks/useAvatarContext.d.ts +1 -0
- package/dist/Avatar/hooks/useAvatarContext.js +1 -0
- package/dist/Avatar/hooks/useAvatarImage.d.ts +21 -0
- package/dist/Avatar/hooks/useAvatarImage.js +47 -0
- package/dist/Avatar/index.d.ts +3 -0
- package/dist/Avatar/index.js +3 -0
- package/dist/Avatar/types.d.ts +52 -0
- package/dist/Avatar/types.js +1 -0
- package/dist/Breadcrumb/Breadcrumb.d.ts +280 -0
- package/dist/Breadcrumb/Breadcrumb.js +299 -0
- package/dist/Breadcrumb/index.d.ts +2 -0
- package/dist/Breadcrumb/index.js +2 -0
- package/dist/Breadcrumb/types.d.ts +81 -0
- package/dist/Breadcrumb/types.js +1 -0
- package/dist/Button/Button.d.ts +73 -0
- package/dist/Button/Button.js +84 -0
- package/dist/Button/index.d.ts +2 -0
- package/dist/Button/index.js +2 -0
- package/dist/Button/types.d.ts +32 -0
- package/dist/Button/types.js +1 -0
- package/dist/Carousel/Carousel.d.ts +498 -0
- package/dist/Carousel/Carousel.js +660 -0
- package/dist/Carousel/CarouselContext.d.ts +7 -0
- package/dist/Carousel/CarouselContext.js +8 -0
- package/dist/Carousel/hooks/index.d.ts +5 -0
- package/dist/Carousel/hooks/index.js +5 -0
- package/dist/Carousel/hooks/useCarouselContext.d.ts +1 -0
- package/dist/Carousel/hooks/useCarouselContext.js +10 -0
- package/dist/Carousel/hooks/useCarouselLoop.d.ts +39 -0
- package/dist/Carousel/hooks/useCarouselLoop.js +735 -0
- package/dist/Carousel/hooks/useCarouselRoot.d.ts +97 -0
- package/dist/Carousel/hooks/useCarouselRoot.js +545 -0
- package/dist/Carousel/hooks/useCarouselSlide.d.ts +24 -0
- package/dist/Carousel/hooks/useCarouselSlide.js +62 -0
- package/dist/Carousel/hooks/useCarouselViewport.d.ts +46 -0
- package/dist/Carousel/hooks/useCarouselViewport.js +786 -0
- package/dist/Carousel/index.d.ts +3 -0
- package/dist/Carousel/index.js +3 -0
- package/dist/Carousel/loopEngine.d.ts +26 -0
- package/dist/Carousel/loopEngine.js +48 -0
- package/dist/Carousel/types.d.ts +783 -0
- package/dist/Carousel/types.js +1 -0
- package/dist/Checkbox/Checkbox.d.ts +120 -0
- package/dist/Checkbox/Checkbox.js +155 -0
- package/dist/Checkbox/CheckboxContext.d.ts +13 -0
- package/dist/Checkbox/CheckboxContext.js +3 -0
- package/dist/Checkbox/hooks/index.d.ts +3 -0
- package/dist/Checkbox/hooks/index.js +3 -0
- package/dist/Checkbox/hooks/useCheckboxContext.d.ts +1 -0
- package/dist/Checkbox/hooks/useCheckboxContext.js +1 -0
- package/dist/Checkbox/hooks/useCheckboxInput.d.ts +33 -0
- package/dist/Checkbox/hooks/useCheckboxInput.js +37 -0
- package/dist/Checkbox/hooks/useCheckboxRoot.d.ts +11 -0
- package/dist/Checkbox/hooks/useCheckboxRoot.js +14 -0
- package/dist/Checkbox/index.d.ts +2 -0
- package/dist/Checkbox/index.js +2 -0
- package/dist/Checkbox/types.d.ts +74 -0
- package/dist/Checkbox/types.js +1 -0
- package/dist/CheckboxCard/CheckboxCard.d.ts +132 -0
- package/dist/CheckboxCard/CheckboxCard.js +175 -0
- package/dist/CheckboxCard/CheckboxCardContext.d.ts +15 -0
- package/dist/CheckboxCard/CheckboxCardContext.js +10 -0
- package/dist/CheckboxCard/hooks/index.d.ts +2 -0
- package/dist/CheckboxCard/hooks/index.js +2 -0
- package/dist/CheckboxCard/hooks/useCheckboxCardContext.d.ts +1 -0
- package/dist/CheckboxCard/hooks/useCheckboxCardContext.js +1 -0
- package/dist/CheckboxCard/hooks/useCheckboxCardRoot.d.ts +11 -0
- package/dist/CheckboxCard/hooks/useCheckboxCardRoot.js +12 -0
- package/dist/CheckboxCard/index.d.ts +3 -0
- package/dist/CheckboxCard/index.js +3 -0
- package/dist/CheckboxCard/types.d.ts +87 -0
- package/dist/CheckboxCard/types.js +1 -0
- package/dist/Collapsible/Collapsible.d.ts +243 -0
- package/dist/Collapsible/Collapsible.js +275 -0
- package/dist/Collapsible/CollapsibleContext.d.ts +2 -0
- package/dist/Collapsible/CollapsibleContext.js +3 -0
- package/dist/Collapsible/hooks/index.d.ts +2 -0
- package/dist/Collapsible/hooks/index.js +2 -0
- package/dist/Collapsible/hooks/useCollapsibleRoot.d.ts +9 -0
- package/dist/Collapsible/hooks/useCollapsibleRoot.js +18 -0
- package/dist/Collapsible/hooks/useCollapsibleTrigger.d.ts +299 -0
- package/dist/Collapsible/hooks/useCollapsibleTrigger.js +39 -0
- package/dist/Collapsible/index.d.ts +2 -0
- package/dist/Collapsible/index.js +2 -0
- package/dist/Collapsible/types.d.ts +134 -0
- package/dist/Collapsible/types.js +1 -0
- package/dist/Combobox/Combobox.d.ts +149 -0
- package/dist/Combobox/Combobox.js +355 -0
- package/dist/Combobox/ComboboxContext.d.ts +10 -0
- package/dist/Combobox/ComboboxContext.js +13 -0
- package/dist/Combobox/hooks/index.d.ts +1 -0
- package/dist/Combobox/hooks/index.js +1 -0
- package/dist/Combobox/hooks/useComboboxRoot.d.ts +1 -0
- package/dist/Combobox/hooks/useComboboxRoot.js +1 -0
- package/dist/Combobox/index.d.ts +3 -0
- package/dist/Combobox/index.js +3 -0
- package/dist/Combobox/types.d.ts +126 -0
- package/dist/Combobox/types.js +1 -0
- package/dist/ContextMenu/ContextMenu.d.ts +508 -0
- package/dist/ContextMenu/ContextMenu.js +1005 -0
- package/dist/ContextMenu/ContextMenuContentContext.d.ts +12 -0
- package/dist/ContextMenu/ContextMenuContentContext.js +3 -0
- package/dist/ContextMenu/ContextMenuContext.d.ts +16 -0
- package/dist/ContextMenu/ContextMenuContext.js +3 -0
- package/dist/ContextMenu/ContextMenuGroupContext.d.ts +4 -0
- package/dist/ContextMenu/ContextMenuGroupContext.js +3 -0
- package/dist/ContextMenu/ContextMenuItemIndicatorContext.d.ts +4 -0
- package/dist/ContextMenu/ContextMenuItemIndicatorContext.js +3 -0
- package/dist/ContextMenu/ContextMenuRadioGroupContext.d.ts +5 -0
- package/dist/ContextMenu/ContextMenuRadioGroupContext.js +3 -0
- package/dist/ContextMenu/ContextMenuSubContext.d.ts +8 -0
- package/dist/ContextMenu/ContextMenuSubContext.js +3 -0
- package/dist/ContextMenu/constants.d.ts +2 -0
- package/dist/ContextMenu/constants.js +3 -0
- package/dist/ContextMenu/index.d.ts +2 -0
- package/dist/ContextMenu/index.js +2 -0
- package/dist/ContextMenu/types.d.ts +424 -0
- package/dist/ContextMenu/types.js +1 -0
- package/dist/DirectionProvider/DirectionContext.d.ts +15 -0
- package/dist/DirectionProvider/DirectionContext.js +18 -0
- package/dist/DirectionProvider/DirectionProvider.d.ts +57 -0
- package/dist/DirectionProvider/DirectionProvider.js +59 -0
- package/dist/DirectionProvider/index.d.ts +3 -0
- package/dist/DirectionProvider/index.js +2 -0
- package/dist/DirectionProvider/types.d.ts +34 -0
- package/dist/DirectionProvider/types.js +1 -0
- package/dist/Divider/Divider.d.ts +59 -0
- package/dist/Divider/Divider.js +60 -0
- package/dist/Divider/index.d.ts +2 -0
- package/dist/Divider/index.js +2 -0
- package/dist/Divider/types.d.ts +16 -0
- package/dist/Divider/types.js +1 -0
- package/dist/Drawer/Drawer.d.ts +268 -0
- package/dist/Drawer/Drawer.js +271 -0
- package/dist/Drawer/index.d.ts +2 -0
- package/dist/Drawer/index.js +2 -0
- package/dist/Drawer/types.d.ts +45 -0
- package/dist/Drawer/types.js +1 -0
- package/dist/Dropdown/Dropdown.d.ts +476 -0
- package/dist/Dropdown/Dropdown.js +745 -0
- package/dist/Dropdown/DropdownContentContext.d.ts +12 -0
- package/dist/Dropdown/DropdownContentContext.js +3 -0
- package/dist/Dropdown/DropdownContext.d.ts +10 -0
- package/dist/Dropdown/DropdownContext.js +3 -0
- package/dist/Dropdown/DropdownGroupContext.d.ts +4 -0
- package/dist/Dropdown/DropdownGroupContext.js +3 -0
- package/dist/Dropdown/DropdownItemIndicatorContext.d.ts +9 -0
- package/dist/Dropdown/DropdownItemIndicatorContext.js +3 -0
- package/dist/Dropdown/DropdownRadioGroupContext.d.ts +5 -0
- package/dist/Dropdown/DropdownRadioGroupContext.js +3 -0
- package/dist/Dropdown/DropdownSubContext.d.ts +8 -0
- package/dist/Dropdown/DropdownSubContext.js +3 -0
- package/dist/Dropdown/constants.d.ts +2 -0
- package/dist/Dropdown/constants.js +3 -0
- package/dist/Dropdown/hooks/index.d.ts +9 -0
- package/dist/Dropdown/hooks/index.js +9 -0
- package/dist/Dropdown/hooks/useCloseSiblingSub.d.ts +7 -0
- package/dist/Dropdown/hooks/useCloseSiblingSub.js +13 -0
- package/dist/Dropdown/hooks/useDropdownContent.d.ts +296 -0
- package/dist/Dropdown/hooks/useDropdownContent.js +149 -0
- package/dist/Dropdown/hooks/useDropdownContext.d.ts +1 -0
- package/dist/Dropdown/hooks/useDropdownContext.js +1 -0
- package/dist/Dropdown/hooks/useDropdownGroup.d.ts +294 -0
- package/dist/Dropdown/hooks/useDropdownGroup.js +12 -0
- package/dist/Dropdown/hooks/useDropdownItem.d.ts +13 -0
- package/dist/Dropdown/hooks/useDropdownItem.js +34 -0
- package/dist/Dropdown/hooks/useDropdownLabel.d.ts +292 -0
- package/dist/Dropdown/hooks/useDropdownLabel.js +8 -0
- package/dist/Dropdown/hooks/useDropdownRoot.d.ts +19 -0
- package/dist/Dropdown/hooks/useDropdownRoot.js +25 -0
- package/dist/Dropdown/hooks/useDropdownSubContext.d.ts +1 -0
- package/dist/Dropdown/hooks/useDropdownSubContext.js +1 -0
- package/dist/Dropdown/hooks/useDropdownTrigger.d.ts +302 -0
- package/dist/Dropdown/hooks/useDropdownTrigger.js +18 -0
- package/dist/Dropdown/index.d.ts +2 -0
- package/dist/Dropdown/index.js +2 -0
- package/dist/Dropdown/types.d.ts +496 -0
- package/dist/Dropdown/types.js +1 -0
- package/dist/EmptyState/EmptyState.d.ts +246 -0
- package/dist/EmptyState/EmptyState.js +268 -0
- package/dist/EmptyState/index.d.ts +2 -0
- package/dist/EmptyState/index.js +2 -0
- package/dist/EmptyState/types.d.ts +59 -0
- package/dist/EmptyState/types.js +1 -0
- package/dist/Field/Field.d.ts +178 -0
- package/dist/Field/Field.js +211 -0
- package/dist/Field/FieldContext.d.ts +15 -0
- package/dist/Field/FieldContext.js +3 -0
- package/dist/Field/hooks/index.d.ts +2 -0
- package/dist/Field/hooks/index.js +2 -0
- package/dist/Field/hooks/useFieldContext.d.ts +1 -0
- package/dist/Field/hooks/useFieldContext.js +1 -0
- package/dist/Field/hooks/useFieldProps.d.ts +25 -0
- package/dist/Field/hooks/useFieldProps.js +39 -0
- package/dist/Field/index.d.ts +2 -0
- package/dist/Field/index.js +2 -0
- package/dist/Field/types.d.ts +81 -0
- package/dist/Field/types.js +1 -0
- package/dist/Fieldset/Fieldset.d.ts +124 -0
- package/dist/Fieldset/Fieldset.js +124 -0
- package/dist/Fieldset/index.d.ts +2 -0
- package/dist/Fieldset/index.js +2 -0
- package/dist/Fieldset/types.d.ts +23 -0
- package/dist/Fieldset/types.js +1 -0
- package/dist/Input/Input.d.ts +104 -0
- package/dist/Input/Input.js +116 -0
- package/dist/Input/index.d.ts +2 -0
- package/dist/Input/index.js +2 -0
- package/dist/Input/types.d.ts +27 -0
- package/dist/Input/types.js +1 -0
- package/dist/InputGroup/InputGroup.d.ts +176 -0
- package/dist/InputGroup/InputGroup.js +205 -0
- package/dist/InputGroup/index.d.ts +2 -0
- package/dist/InputGroup/index.js +2 -0
- package/dist/InputGroup/types.d.ts +41 -0
- package/dist/InputGroup/types.js +1 -0
- package/dist/Listbox/Listbox.d.ts +231 -0
- package/dist/Listbox/Listbox.js +339 -0
- package/dist/Listbox/ListboxContext.d.ts +19 -0
- package/dist/Listbox/ListboxContext.js +25 -0
- package/dist/Listbox/constants.d.ts +2 -0
- package/dist/Listbox/constants.js +3 -0
- package/dist/Listbox/hooks/index.d.ts +1 -0
- package/dist/Listbox/hooks/index.js +1 -0
- package/dist/Listbox/hooks/useListboxRoot.d.ts +39 -0
- package/dist/Listbox/hooks/useListboxRoot.js +299 -0
- package/dist/Listbox/index.d.ts +3 -0
- package/dist/Listbox/index.js +3 -0
- package/dist/Listbox/types.d.ts +214 -0
- package/dist/Listbox/types.js +1 -0
- package/dist/MillerColumns/MillerColumns.d.ts +309 -0
- package/dist/MillerColumns/MillerColumns.js +332 -0
- package/dist/MillerColumns/MillerColumnsContext.d.ts +4 -0
- package/dist/MillerColumns/MillerColumnsContext.js +5 -0
- package/dist/MillerColumns/constants.d.ts +2 -0
- package/dist/MillerColumns/constants.js +3 -0
- package/dist/MillerColumns/hooks/index.d.ts +7 -0
- package/dist/MillerColumns/hooks/index.js +7 -0
- package/dist/MillerColumns/hooks/useMillerColumnsColumn.d.ts +8 -0
- package/dist/MillerColumns/hooks/useMillerColumnsColumn.js +16 -0
- package/dist/MillerColumns/hooks/useMillerColumnsColumnContext.d.ts +1 -0
- package/dist/MillerColumns/hooks/useMillerColumnsColumnContext.js +1 -0
- package/dist/MillerColumns/hooks/useMillerColumnsContext.d.ts +1 -0
- package/dist/MillerColumns/hooks/useMillerColumnsContext.js +1 -0
- package/dist/MillerColumns/hooks/useMillerColumnsItem.d.ts +295 -0
- package/dist/MillerColumns/hooks/useMillerColumnsItem.js +122 -0
- package/dist/MillerColumns/hooks/useMillerColumnsItemContext.d.ts +1 -0
- package/dist/MillerColumns/hooks/useMillerColumnsItemContext.js +1 -0
- package/dist/MillerColumns/hooks/useMillerColumnsResizeHandle.d.ts +290 -0
- package/dist/MillerColumns/hooks/useMillerColumnsResizeHandle.js +105 -0
- package/dist/MillerColumns/hooks/useMillerColumnsRoot.d.ts +9 -0
- package/dist/MillerColumns/hooks/useMillerColumnsRoot.js +0 -0
- package/dist/MillerColumns/index.d.ts +4 -0
- package/dist/MillerColumns/index.js +4 -0
- package/dist/MillerColumns/types.d.ts +224 -0
- package/dist/MillerColumns/types.js +1 -0
- package/dist/MillerColumns/useMillerColumnsSelection.d.ts +21 -0
- package/dist/MillerColumns/useMillerColumnsSelection.js +28 -0
- package/dist/MillerColumns/utils.d.ts +62 -0
- package/dist/MillerColumns/utils.js +102 -0
- package/dist/Modal/Modal.d.ts +331 -0
- package/dist/Modal/Modal.js +386 -0
- package/dist/Modal/ModalContext.d.ts +9 -0
- package/dist/Modal/ModalContext.js +10 -0
- package/dist/Modal/hooks/index.d.ts +4 -0
- package/dist/Modal/hooks/index.js +4 -0
- package/dist/Modal/hooks/useModalContent.d.ts +5 -0
- package/dist/Modal/hooks/useModalContent.js +94 -0
- package/dist/Modal/hooks/useModalContext.d.ts +1 -0
- package/dist/Modal/hooks/useModalContext.js +1 -0
- package/dist/Modal/hooks/useModalRoot.d.ts +11 -0
- package/dist/Modal/hooks/useModalRoot.js +39 -0
- package/dist/Modal/hooks/useModalTrigger.d.ts +297 -0
- package/dist/Modal/hooks/useModalTrigger.js +18 -0
- package/dist/Modal/index.d.ts +3 -0
- package/dist/Modal/index.js +3 -0
- package/dist/Modal/types.d.ts +186 -0
- package/dist/Modal/types.js +1 -0
- package/dist/NavigationMenu/NavigationMenu.d.ts +495 -0
- package/dist/NavigationMenu/NavigationMenu.js +645 -0
- package/dist/NavigationMenu/NavigationMenuContext.d.ts +31 -0
- package/dist/NavigationMenu/NavigationMenuContext.js +34 -0
- package/dist/NavigationMenu/constants.d.ts +4 -0
- package/dist/NavigationMenu/constants.js +5 -0
- package/dist/NavigationMenu/hooks/index.d.ts +7 -0
- package/dist/NavigationMenu/hooks/index.js +7 -0
- package/dist/NavigationMenu/hooks/useNavigationMenuEntry.d.ts +13 -0
- package/dist/NavigationMenu/hooks/useNavigationMenuEntry.js +21 -0
- package/dist/NavigationMenu/hooks/useNavigationMenuIndicator.d.ts +16 -0
- package/dist/NavigationMenu/hooks/useNavigationMenuIndicator.js +53 -0
- package/dist/NavigationMenu/hooks/useNavigationMenuLink.d.ts +8 -0
- package/dist/NavigationMenu/hooks/useNavigationMenuLink.js +37 -0
- package/dist/NavigationMenu/hooks/useNavigationMenuRoot.d.ts +26 -0
- package/dist/NavigationMenu/hooks/useNavigationMenuRoot.js +202 -0
- package/dist/NavigationMenu/hooks/useNavigationMenuTopLevelEntry.d.ts +21 -0
- package/dist/NavigationMenu/hooks/useNavigationMenuTopLevelEntry.js +54 -0
- package/dist/NavigationMenu/hooks/useNavigationMenuTrigger.d.ts +16 -0
- package/dist/NavigationMenu/hooks/useNavigationMenuTrigger.js +100 -0
- package/dist/NavigationMenu/hooks/useNavigationMenuViewport.d.ts +21 -0
- package/dist/NavigationMenu/hooks/useNavigationMenuViewport.js +85 -0
- package/dist/NavigationMenu/index.d.ts +3 -0
- package/dist/NavigationMenu/index.js +3 -0
- package/dist/NavigationMenu/types.d.ts +236 -0
- package/dist/NavigationMenu/types.js +1 -0
- package/dist/NavigationMenu/utils.d.ts +37 -0
- package/dist/NavigationMenu/utils.js +64 -0
- package/dist/Popover/Popover.d.ts +239 -0
- package/dist/Popover/Popover.js +293 -0
- package/dist/Popover/PopoverContext.d.ts +4 -0
- package/dist/Popover/PopoverContext.js +5 -0
- package/dist/Popover/hooks/index.d.ts +3 -0
- package/dist/Popover/hooks/index.js +3 -0
- package/dist/Popover/hooks/usePopoverContent.d.ts +19 -0
- package/dist/Popover/hooks/usePopoverContent.js +83 -0
- package/dist/Popover/hooks/usePopoverRoot.d.ts +10 -0
- package/dist/Popover/hooks/usePopoverRoot.js +49 -0
- package/dist/Popover/hooks/usePopoverTrigger.d.ts +297 -0
- package/dist/Popover/hooks/usePopoverTrigger.js +19 -0
- package/dist/Popover/index.d.ts +2 -0
- package/dist/Popover/index.js +2 -0
- package/dist/Popover/types.d.ts +183 -0
- package/dist/Popover/types.js +1 -0
- package/dist/Portal/Portal.d.ts +70 -0
- package/dist/Portal/Portal.js +92 -0
- package/dist/Portal/index.d.ts +2 -0
- package/dist/Portal/index.js +2 -0
- package/dist/Portal/types.d.ts +14 -0
- package/dist/Portal/types.js +1 -0
- package/dist/Progress/Progress.d.ts +126 -0
- package/dist/Progress/Progress.js +172 -0
- package/dist/Progress/ProgressContext.d.ts +16 -0
- package/dist/Progress/ProgressContext.js +7 -0
- package/dist/Progress/hooks/index.d.ts +2 -0
- package/dist/Progress/hooks/index.js +2 -0
- package/dist/Progress/hooks/useProgressContext.d.ts +1 -0
- package/dist/Progress/hooks/useProgressContext.js +1 -0
- package/dist/Progress/hooks/useProgressRoot.d.ts +17 -0
- package/dist/Progress/hooks/useProgressRoot.js +22 -0
- package/dist/Progress/index.d.ts +3 -0
- package/dist/Progress/index.js +3 -0
- package/dist/Progress/types.d.ts +53 -0
- package/dist/Progress/types.js +1 -0
- package/dist/Radio/Radio.d.ts +128 -0
- package/dist/Radio/Radio.js +153 -0
- package/dist/Radio/RadioContext.d.ts +13 -0
- package/dist/Radio/RadioContext.js +3 -0
- package/dist/Radio/hooks/index.d.ts +2 -0
- package/dist/Radio/hooks/index.js +2 -0
- package/dist/Radio/hooks/useRadioContext.d.ts +1 -0
- package/dist/Radio/hooks/useRadioContext.js +1 -0
- package/dist/Radio/hooks/useRadioRoot.d.ts +32 -0
- package/dist/Radio/hooks/useRadioRoot.js +35 -0
- package/dist/Radio/index.d.ts +2 -0
- package/dist/Radio/index.js +2 -0
- package/dist/Radio/types.d.ts +79 -0
- package/dist/Radio/types.js +1 -0
- package/dist/RadioCard/RadioCard.d.ts +176 -0
- package/dist/RadioCard/RadioCard.js +264 -0
- package/dist/RadioCard/RadioCardContext.d.ts +21 -0
- package/dist/RadioCard/RadioCardContext.js +9 -0
- package/dist/RadioCard/RadioCardItemContext.d.ts +14 -0
- package/dist/RadioCard/RadioCardItemContext.js +10 -0
- package/dist/RadioCard/hooks/index.d.ts +3 -0
- package/dist/RadioCard/hooks/index.js +3 -0
- package/dist/RadioCard/hooks/useRadioCardContext.d.ts +1 -0
- package/dist/RadioCard/hooks/useRadioCardContext.js +1 -0
- package/dist/RadioCard/hooks/useRadioCardItemContext.d.ts +1 -0
- package/dist/RadioCard/hooks/useRadioCardItemContext.js +1 -0
- package/dist/RadioCard/hooks/useRadioCardRoot.d.ts +14 -0
- package/dist/RadioCard/hooks/useRadioCardRoot.js +42 -0
- package/dist/RadioCard/index.d.ts +4 -0
- package/dist/RadioCard/index.js +4 -0
- package/dist/RadioCard/types.d.ts +129 -0
- package/dist/RadioCard/types.js +1 -0
- package/dist/RadioGroup/RadioGroup.d.ts +192 -0
- package/dist/RadioGroup/RadioGroup.js +281 -0
- package/dist/RadioGroup/RadioGroupContext.d.ts +12 -0
- package/dist/RadioGroup/RadioGroupContext.js +3 -0
- package/dist/RadioGroup/RadioGroupItemContext.d.ts +4 -0
- package/dist/RadioGroup/RadioGroupItemContext.js +3 -0
- package/dist/RadioGroup/hooks/index.d.ts +3 -0
- package/dist/RadioGroup/hooks/index.js +3 -0
- package/dist/RadioGroup/hooks/useRadioGroupContext.d.ts +1 -0
- package/dist/RadioGroup/hooks/useRadioGroupContext.js +1 -0
- package/dist/RadioGroup/hooks/useRadioGroupItemContext.d.ts +1 -0
- package/dist/RadioGroup/hooks/useRadioGroupItemContext.js +1 -0
- package/dist/RadioGroup/hooks/useRadioGroupRoot.d.ts +14 -0
- package/dist/RadioGroup/hooks/useRadioGroupRoot.js +53 -0
- package/dist/RadioGroup/index.d.ts +2 -0
- package/dist/RadioGroup/index.js +2 -0
- package/dist/RadioGroup/types.d.ts +130 -0
- package/dist/RadioGroup/types.js +1 -0
- package/dist/SegmentedControl/SegmentedControl.d.ts +145 -0
- package/dist/SegmentedControl/SegmentedControl.js +229 -0
- package/dist/SegmentedControl/SegmentedControlContext.d.ts +14 -0
- package/dist/SegmentedControl/SegmentedControlContext.js +3 -0
- package/dist/SegmentedControl/hooks/index.d.ts +2 -0
- package/dist/SegmentedControl/hooks/index.js +2 -0
- package/dist/SegmentedControl/hooks/useSegmentedControlContext.d.ts +1 -0
- package/dist/SegmentedControl/hooks/useSegmentedControlContext.js +1 -0
- package/dist/SegmentedControl/hooks/useSegmentedControlRoot.d.ts +14 -0
- package/dist/SegmentedControl/hooks/useSegmentedControlRoot.js +45 -0
- package/dist/SegmentedControl/index.d.ts +2 -0
- package/dist/SegmentedControl/index.js +2 -0
- package/dist/SegmentedControl/types.d.ts +121 -0
- package/dist/SegmentedControl/types.js +1 -0
- package/dist/Select/Select.d.ts +390 -0
- package/dist/Select/Select.js +561 -0
- package/dist/Select/SelectContext.d.ts +31 -0
- package/dist/Select/SelectContext.js +3 -0
- package/dist/Select/SelectItemIndicatorContext.d.ts +23 -0
- package/dist/Select/SelectItemIndicatorContext.js +3 -0
- package/dist/Select/constants.d.ts +6 -0
- package/dist/Select/constants.js +7 -0
- package/dist/Select/hooks/index.d.ts +2 -0
- package/dist/Select/hooks/index.js +2 -0
- package/dist/Select/hooks/useSelectContent.d.ts +301 -0
- package/dist/Select/hooks/useSelectContent.js +134 -0
- package/dist/Select/hooks/useSelectRoot.d.ts +23 -0
- package/dist/Select/hooks/useSelectRoot.js +90 -0
- package/dist/Select/index.d.ts +2 -0
- package/dist/Select/index.js +2 -0
- package/dist/Select/types.d.ts +246 -0
- package/dist/Select/types.js +1 -0
- package/dist/SkipNav/SkipNav.d.ts +137 -0
- package/dist/SkipNav/SkipNav.js +138 -0
- package/dist/SkipNav/index.d.ts +1 -0
- package/dist/SkipNav/index.js +1 -0
- package/dist/SkipNav/types.d.ts +32 -0
- package/dist/SkipNav/types.js +1 -0
- package/dist/Slider/Slider.d.ts +189 -0
- package/dist/Slider/Slider.js +253 -0
- package/dist/Slider/SliderContext.d.ts +48 -0
- package/dist/Slider/SliderContext.js +7 -0
- package/dist/Slider/hooks/index.d.ts +3 -0
- package/dist/Slider/hooks/index.js +3 -0
- package/dist/Slider/hooks/useSliderContext.d.ts +1 -0
- package/dist/Slider/hooks/useSliderContext.js +1 -0
- package/dist/Slider/hooks/useSliderRoot.d.ts +23 -0
- package/dist/Slider/hooks/useSliderRoot.js +123 -0
- package/dist/Slider/hooks/useSliderThumb.d.ts +11 -0
- package/dist/Slider/hooks/useSliderThumb.js +57 -0
- package/dist/Slider/index.d.ts +3 -0
- package/dist/Slider/index.js +3 -0
- package/dist/Slider/types.d.ts +194 -0
- package/dist/Slider/types.js +1 -0
- package/dist/Slider/utils.d.ts +48 -0
- package/dist/Slider/utils.js +105 -0
- package/dist/Slot/Slot.d.ts +126 -0
- package/dist/Slot/Slot.js +210 -0
- package/dist/Slot/composeEventHandlers.d.ts +50 -0
- package/dist/Slot/composeEventHandlers.js +57 -0
- package/dist/Slot/index.d.ts +3 -0
- package/dist/Slot/index.js +3 -0
- package/dist/Slot/types.d.ts +20 -0
- package/dist/Slot/types.js +1 -0
- package/dist/SplitButton/SplitButton.d.ts +286 -0
- package/dist/SplitButton/SplitButton.js +343 -0
- package/dist/SplitButton/SplitButtonContext.d.ts +11 -0
- package/dist/SplitButton/SplitButtonContext.js +12 -0
- package/dist/SplitButton/index.d.ts +2 -0
- package/dist/SplitButton/index.js +1 -0
- package/dist/SplitButton/types.d.ts +161 -0
- package/dist/SplitButton/types.js +1 -0
- package/dist/Status/Status.d.ts +57 -0
- package/dist/Status/Status.js +63 -0
- package/dist/Status/index.d.ts +2 -0
- package/dist/Status/index.js +2 -0
- package/dist/Status/types.d.ts +19 -0
- package/dist/Status/types.js +1 -0
- package/dist/Switch/Switch.d.ts +122 -0
- package/dist/Switch/Switch.js +143 -0
- package/dist/Switch/SwitchContext.d.ts +12 -0
- package/dist/Switch/SwitchContext.js +7 -0
- package/dist/Switch/hooks/index.d.ts +2 -0
- package/dist/Switch/hooks/index.js +2 -0
- package/dist/Switch/hooks/useSwitchContext.d.ts +1 -0
- package/dist/Switch/hooks/useSwitchContext.js +1 -0
- package/dist/Switch/hooks/useSwitchRoot.d.ts +30 -0
- package/dist/Switch/hooks/useSwitchRoot.js +33 -0
- package/dist/Switch/index.d.ts +3 -0
- package/dist/Switch/index.js +3 -0
- package/dist/Switch/types.d.ts +83 -0
- package/dist/Switch/types.js +1 -0
- package/dist/Table/Table.d.ts +443 -0
- package/dist/Table/Table.js +494 -0
- package/dist/Table/TableExpandableContext.d.ts +2 -0
- package/dist/Table/TableExpandableContext.js +3 -0
- package/dist/Table/index.d.ts +2 -0
- package/dist/Table/index.js +2 -0
- package/dist/Table/types.d.ts +214 -0
- package/dist/Table/types.js +1 -0
- package/dist/Tabs/Tabs.d.ts +270 -0
- package/dist/Tabs/Tabs.js +324 -0
- package/dist/Tabs/TabsContext.d.ts +11 -0
- package/dist/Tabs/TabsContext.js +12 -0
- package/dist/Tabs/hooks/index.d.ts +4 -0
- package/dist/Tabs/hooks/index.js +4 -0
- package/dist/Tabs/hooks/useTabsContent.d.ts +10 -0
- package/dist/Tabs/hooks/useTabsContent.js +27 -0
- package/dist/Tabs/hooks/useTabsContext.d.ts +1 -0
- package/dist/Tabs/hooks/useTabsContext.js +1 -0
- package/dist/Tabs/hooks/useTabsRoot.d.ts +21 -0
- package/dist/Tabs/hooks/useTabsRoot.js +97 -0
- package/dist/Tabs/hooks/useTabsTrigger.d.ts +13 -0
- package/dist/Tabs/hooks/useTabsTrigger.js +83 -0
- package/dist/Tabs/index.d.ts +3 -0
- package/dist/Tabs/index.js +3 -0
- package/dist/Tabs/types.d.ts +139 -0
- package/dist/Tabs/types.js +1 -0
- package/dist/Tabs/utils.d.ts +4 -0
- package/dist/Tabs/utils.js +8 -0
- package/dist/Textarea/Textarea.d.ts +81 -0
- package/dist/Textarea/Textarea.js +93 -0
- package/dist/Textarea/index.d.ts +2 -0
- package/dist/Textarea/index.js +2 -0
- package/dist/Textarea/types.d.ts +27 -0
- package/dist/Textarea/types.js +1 -0
- package/dist/Toggle/Toggle.d.ts +82 -0
- package/dist/Toggle/Toggle.js +102 -0
- package/dist/Toggle/index.d.ts +2 -0
- package/dist/Toggle/index.js +2 -0
- package/dist/Toggle/types.d.ts +72 -0
- package/dist/Toggle/types.js +1 -0
- package/dist/ToggleGroup/ToggleGroup.d.ts +144 -0
- package/dist/ToggleGroup/ToggleGroup.js +227 -0
- package/dist/ToggleGroup/ToggleGroupContext.d.ts +2 -0
- package/dist/ToggleGroup/ToggleGroupContext.js +3 -0
- package/dist/ToggleGroup/hooks/index.d.ts +2 -0
- package/dist/ToggleGroup/hooks/index.js +2 -0
- package/dist/ToggleGroup/hooks/useToggleGroupContext.d.ts +1 -0
- package/dist/ToggleGroup/hooks/useToggleGroupContext.js +1 -0
- package/dist/ToggleGroup/hooks/useToggleGroupRoot.d.ts +21 -0
- package/dist/ToggleGroup/hooks/useToggleGroupRoot.js +79 -0
- package/dist/ToggleGroup/index.d.ts +2 -0
- package/dist/ToggleGroup/index.js +2 -0
- package/dist/ToggleGroup/types.d.ts +141 -0
- package/dist/ToggleGroup/types.js +1 -0
- package/dist/Tooltip/Tooltip.d.ts +231 -0
- package/dist/Tooltip/Tooltip.js +279 -0
- package/dist/Tooltip/TooltipContext.d.ts +6 -0
- package/dist/Tooltip/TooltipContext.js +7 -0
- package/dist/Tooltip/hooks/index.d.ts +4 -0
- package/dist/Tooltip/hooks/index.js +4 -0
- package/dist/Tooltip/hooks/useTooltipContent.d.ts +289 -0
- package/dist/Tooltip/hooks/useTooltipContent.js +50 -0
- package/dist/Tooltip/hooks/useTooltipProvider.d.ts +9 -0
- package/dist/Tooltip/hooks/useTooltipProvider.js +60 -0
- package/dist/Tooltip/hooks/useTooltipRoot.d.ts +6 -0
- package/dist/Tooltip/hooks/useTooltipRoot.js +100 -0
- package/dist/Tooltip/hooks/useTooltipTrigger.d.ts +299 -0
- package/dist/Tooltip/hooks/useTooltipTrigger.js +22 -0
- package/dist/Tooltip/index.d.ts +2 -0
- package/dist/Tooltip/index.js +2 -0
- package/dist/Tooltip/types.d.ts +183 -0
- package/dist/Tooltip/types.js +1 -0
- package/dist/Tree/Tree.d.ts +398 -0
- package/dist/Tree/Tree.js +536 -0
- package/dist/Tree/TreeContext.d.ts +4 -0
- package/dist/Tree/TreeContext.js +5 -0
- package/dist/Tree/hooks/index.d.ts +3 -0
- package/dist/Tree/hooks/index.js +3 -0
- package/dist/Tree/hooks/useTreeItemKeyboard.d.ts +16 -0
- package/dist/Tree/hooks/useTreeItemKeyboard.js +71 -0
- package/dist/Tree/hooks/useTreePath.d.ts +88 -0
- package/dist/Tree/hooks/useTreePath.js +96 -0
- package/dist/Tree/hooks/useTreeRoot.d.ts +19 -0
- package/dist/Tree/hooks/useTreeRoot.js +185 -0
- package/dist/Tree/index.d.ts +4 -0
- package/dist/Tree/index.js +4 -0
- package/dist/Tree/types.d.ts +269 -0
- package/dist/Tree/types.js +1 -0
- package/dist/Tree/utils.d.ts +45 -0
- package/dist/Tree/utils.js +79 -0
- package/dist/VisuallyHidden/VisuallyHidden.d.ts +62 -0
- package/dist/VisuallyHidden/VisuallyHidden.js +83 -0
- package/dist/VisuallyHidden/index.d.ts +2 -0
- package/dist/VisuallyHidden/index.js +2 -0
- package/dist/VisuallyHidden/types.d.ts +18 -0
- package/dist/VisuallyHidden/types.js +1 -0
- package/dist/hooks/index.d.ts +4 -0
- package/dist/hooks/index.js +4 -0
- package/dist/hooks/useCollection.d.ts +50 -0
- package/dist/hooks/useCollection.js +47 -0
- package/dist/hooks/useControllableState.d.ts +50 -0
- package/dist/hooks/useControllableState.js +14 -0
- package/dist/hooks/useRovingTabindex.d.ts +106 -0
- package/dist/hooks/useRovingTabindex.js +110 -0
- package/dist/hooks/useTypeahead.d.ts +31 -0
- package/dist/hooks/useTypeahead.js +65 -0
- package/dist/index.d.ts +52 -0
- package/dist/index.js +50 -0
- package/dist/types.d.ts +6 -0
- package/dist/types.js +1 -0
- package/dist/useLocalStorage/index.d.ts +1 -0
- package/dist/useLocalStorage/index.js +1 -0
- package/dist/useLocalStorage/useLocalStorage.d.ts +46 -0
- package/dist/useLocalStorage/useLocalStorage.js +125 -0
- package/dist/useMediaQuery/index.d.ts +1 -0
- package/dist/useMediaQuery/index.js +1 -0
- package/dist/useMediaQuery/useMediaQuery.d.ts +30 -0
- package/dist/useMediaQuery/useMediaQuery.js +43 -0
- package/dist/usePagination/index.d.ts +1 -0
- package/dist/usePagination/index.js +1 -0
- package/dist/usePagination/usePagination.d.ts +163 -0
- package/dist/usePagination/usePagination.js +130 -0
- package/dist/utils/createStrictContext.d.ts +33 -0
- package/dist/utils/createStrictContext.js +47 -0
- package/dist/utils/deriveId.d.ts +25 -0
- package/dist/utils/deriveId.js +28 -0
- package/dist/utils/focusable.d.ts +8 -0
- package/dist/utils/focusable.js +16 -0
- package/dist/utils/getKeyToActionMap.d.ts +64 -0
- package/dist/utils/getKeyToActionMap.js +49 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/index.js +4 -0
- package/package.json +7 -6
- package/src/AccessibleIcon/AccessibleIcon.tsx +0 -67
- package/src/AccessibleIcon/README.md +0 -42
- package/src/AccessibleIcon/__tests__/AccessibleIcon.test.tsx +0 -52
- package/src/AccessibleIcon/index.ts +0 -2
- package/src/AccessibleIcon/types.ts +0 -25
- package/src/Accordion/Accordion.tsx +0 -455
- package/src/Accordion/AccordionContext.ts +0 -12
- package/src/Accordion/README.md +0 -202
- package/src/Accordion/__tests__/Accordion.asChild.test.tsx +0 -283
- package/src/Accordion/__tests__/Accordion.basic-rendering.test.tsx +0 -348
- package/src/Accordion/__tests__/Accordion.controlled-state.test.tsx +0 -175
- package/src/Accordion/__tests__/Accordion.data-attributes.test.tsx +0 -272
- package/src/Accordion/__tests__/Accordion.disabled-items.test.tsx +0 -353
- package/src/Accordion/__tests__/Accordion.error-handling.test.tsx +0 -152
- package/src/Accordion/__tests__/Accordion.forceMount.test.tsx +0 -119
- package/src/Accordion/__tests__/Accordion.keyboard-interaction.test.tsx +0 -736
- package/src/Accordion/__tests__/Accordion.mouse-interaction.test.tsx +0 -212
- package/src/Accordion/__tests__/Accordion.multiple-mode.test.tsx +0 -90
- package/src/Accordion/__tests__/Accordion.reading-direction.test.tsx +0 -139
- package/src/Accordion/__tests__/Accordion.uncontrolled-state.test.tsx +0 -154
- package/src/Accordion/hooks/index.ts +0 -6
- package/src/Accordion/hooks/useAccordionContext.ts +0 -1
- package/src/Accordion/hooks/useAccordionHeaderContext.ts +0 -10
- package/src/Accordion/hooks/useAccordionItem.ts +0 -22
- package/src/Accordion/hooks/useAccordionItemContext.ts +0 -1
- package/src/Accordion/hooks/useAccordionRoot.ts +0 -188
- package/src/Accordion/hooks/useAccordionTrigger.ts +0 -98
- package/src/Accordion/index.ts +0 -2
- package/src/Accordion/types.ts +0 -174
- package/src/Alert/Alert.tsx +0 -79
- package/src/Alert/README.md +0 -54
- package/src/Alert/__tests__/Alert.test.tsx +0 -33
- package/src/Alert/index.ts +0 -2
- package/src/Alert/types.ts +0 -22
- package/src/Avatar/Avatar.tsx +0 -246
- package/src/Avatar/AvatarContext.ts +0 -26
- package/src/Avatar/README.md +0 -116
- package/src/Avatar/__tests__/Avatar.asChild.test.tsx +0 -53
- package/src/Avatar/__tests__/Avatar.basic-rendering.test.tsx +0 -24
- package/src/Avatar/__tests__/Avatar.error-handling.test.tsx +0 -30
- package/src/Avatar/__tests__/Avatar.fallback.test.tsx +0 -105
- package/src/Avatar/__tests__/Avatar.image-loading.test.tsx +0 -116
- package/src/Avatar/hooks/index.ts +0 -2
- package/src/Avatar/hooks/useAvatarContext.ts +0 -1
- package/src/Avatar/hooks/useAvatarImage.ts +0 -56
- package/src/Avatar/index.ts +0 -3
- package/src/Avatar/types.ts +0 -56
- package/src/Breadcrumb/Breadcrumb.tsx +0 -374
- package/src/Breadcrumb/README.md +0 -158
- package/src/Breadcrumb/__tests__/Breadcrumb.asChild.test.tsx +0 -33
- package/src/Breadcrumb/__tests__/Breadcrumb.basic-rendering.test.tsx +0 -143
- package/src/Breadcrumb/__tests__/Breadcrumb.ellipsis.test.tsx +0 -110
- package/src/Breadcrumb/index.ts +0 -2
- package/src/Breadcrumb/types.ts +0 -88
- package/src/Button/Button.tsx +0 -100
- package/src/Button/README.md +0 -112
- package/src/Button/__tests__/Button.asChild.test.tsx +0 -91
- package/src/Button/__tests__/Button.basic-rendering.test.tsx +0 -132
- package/src/Button/__tests__/Button.contract.test.tsx +0 -72
- package/src/Button/__tests__/Button.disabled.test.tsx +0 -52
- package/src/Button/__tests__/Button.icon-usage.test.tsx +0 -57
- package/src/Button/__tests__/Button.keyboard-interaction.test.tsx +0 -70
- package/src/Button/index.ts +0 -2
- package/src/Button/types.ts +0 -33
- package/src/Carousel/Carousel.tsx +0 -972
- package/src/Carousel/CarouselContext.ts +0 -15
- package/src/Carousel/README.md +0 -1447
- package/src/Carousel/__tests__/Carousel.asChild.test.tsx +0 -178
- package/src/Carousel/__tests__/Carousel.auto-play.test.tsx +0 -617
- package/src/Carousel/__tests__/Carousel.autoplay-status.test.tsx +0 -239
- package/src/Carousel/__tests__/Carousel.basic-rendering.test.tsx +0 -569
- package/src/Carousel/__tests__/Carousel.controlled-state.test.tsx +0 -137
- package/src/Carousel/__tests__/Carousel.drag-status.test.tsx +0 -292
- package/src/Carousel/__tests__/Carousel.dynamic-slides.test.tsx +0 -38
- package/src/Carousel/__tests__/Carousel.error-handling.test.tsx +0 -81
- package/src/Carousel/__tests__/Carousel.ids.test.tsx +0 -111
- package/src/Carousel/__tests__/Carousel.imperative-api.test.tsx +0 -213
- package/src/Carousel/__tests__/Carousel.indicators.test.tsx +0 -661
- package/src/Carousel/__tests__/Carousel.infinite.test.tsx +0 -1453
- package/src/Carousel/__tests__/Carousel.instant-scroll.test.tsx +0 -124
- package/src/Carousel/__tests__/Carousel.intersection-observer.test.tsx +0 -364
- package/src/Carousel/__tests__/Carousel.keyboard-navigation.test.tsx +0 -158
- package/src/Carousel/__tests__/Carousel.loop.test.tsx +0 -163
- package/src/Carousel/__tests__/Carousel.loopEngine.test.ts +0 -77
- package/src/Carousel/__tests__/Carousel.mouse-drag.test.tsx +0 -504
- package/src/Carousel/__tests__/Carousel.multi-slide-bounds.test.tsx +0 -91
- package/src/Carousel/__tests__/Carousel.orientation.test.tsx +0 -207
- package/src/Carousel/__tests__/Carousel.overscroll.test.tsx +0 -532
- package/src/Carousel/__tests__/Carousel.page-snap-points.test.tsx +0 -50
- package/src/Carousel/__tests__/Carousel.play-pause.test.tsx +0 -232
- package/src/Carousel/__tests__/Carousel.prev-next.test.tsx +0 -68
- package/src/Carousel/__tests__/Carousel.progress-text.test.tsx +0 -76
- package/src/Carousel/__tests__/Carousel.reduced-motion.test.tsx +0 -46
- package/src/Carousel/__tests__/Carousel.refresh-progress.test.tsx +0 -84
- package/src/Carousel/__tests__/Carousel.scroll-margin.test.tsx +0 -167
- package/src/Carousel/__tests__/Carousel.scroll-progress.test.tsx +0 -518
- package/src/Carousel/__tests__/Carousel.scroll-snap-change.test.tsx +0 -200
- package/src/Carousel/__tests__/Carousel.scroll-sync.test.tsx +0 -322
- package/src/Carousel/__tests__/Carousel.scroll-to-index.test.tsx +0 -115
- package/src/Carousel/__tests__/Carousel.slide-snap.test.tsx +0 -172
- package/src/Carousel/__tests__/Carousel.slides-per-move.test.tsx +0 -329
- package/src/Carousel/__tests__/Carousel.slides-per-page.test.tsx +0 -267
- package/src/Carousel/__tests__/Carousel.snap-type.test.tsx +0 -35
- package/src/Carousel/__tests__/Carousel.ssr.test.tsx +0 -28
- package/src/Carousel/__tests__/Carousel.touch-interaction.test.tsx +0 -96
- package/src/Carousel/__tests__/Carousel.transition-modes.test.tsx +0 -95
- package/src/Carousel/__tests__/Carousel.translations.test.tsx +0 -180
- package/src/Carousel/__tests__/Carousel.uncontrolled-state.test.tsx +0 -146
- package/src/Carousel/__tests__/Carousel.wheel.test.tsx +0 -160
- package/src/Carousel/hooks/index.ts +0 -5
- package/src/Carousel/hooks/useCarouselContext.ts +0 -13
- package/src/Carousel/hooks/useCarouselLoop.ts +0 -869
- package/src/Carousel/hooks/useCarouselRoot.ts +0 -746
- package/src/Carousel/hooks/useCarouselSlide.ts +0 -80
- package/src/Carousel/hooks/useCarouselViewport.ts +0 -898
- package/src/Carousel/index.ts +0 -3
- package/src/Carousel/loopEngine.ts +0 -54
- package/src/Carousel/types.ts +0 -830
- package/src/Checkbox/Checkbox.tsx +0 -217
- package/src/Checkbox/CheckboxContext.ts +0 -20
- package/src/Checkbox/README.md +0 -137
- package/src/Checkbox/__tests__/Checkbox.basic-rendering.test.tsx +0 -93
- package/src/Checkbox/__tests__/Checkbox.contract.test.tsx +0 -106
- package/src/Checkbox/__tests__/Checkbox.controlled-state.test.tsx +0 -74
- package/src/Checkbox/__tests__/Checkbox.disabled.test.tsx +0 -45
- package/src/Checkbox/__tests__/Checkbox.form.test.tsx +0 -53
- package/src/Checkbox/__tests__/Checkbox.indeterminate.test.tsx +0 -76
- package/src/Checkbox/__tests__/Checkbox.indicator.test.tsx +0 -92
- package/src/Checkbox/__tests__/Checkbox.uncontrolled-state.test.tsx +0 -105
- package/src/Checkbox/hooks/index.ts +0 -3
- package/src/Checkbox/hooks/useCheckboxContext.ts +0 -1
- package/src/Checkbox/hooks/useCheckboxInput.ts +0 -53
- package/src/Checkbox/hooks/useCheckboxRoot.ts +0 -32
- package/src/Checkbox/index.ts +0 -2
- package/src/Checkbox/types.ts +0 -86
- package/src/CheckboxCard/CheckboxCard.tsx +0 -219
- package/src/CheckboxCard/CheckboxCardContext.ts +0 -25
- package/src/CheckboxCard/README.md +0 -114
- package/src/CheckboxCard/__tests__/CheckboxCard.asChild.test.tsx +0 -54
- package/src/CheckboxCard/__tests__/CheckboxCard.basic-rendering.test.tsx +0 -65
- package/src/CheckboxCard/__tests__/CheckboxCard.controlled-state.test.tsx +0 -77
- package/src/CheckboxCard/__tests__/CheckboxCard.disabled.test.tsx +0 -55
- package/src/CheckboxCard/__tests__/CheckboxCard.error-handling.test.tsx +0 -20
- package/src/CheckboxCard/__tests__/CheckboxCard.indeterminate.test.tsx +0 -60
- package/src/CheckboxCard/__tests__/CheckboxCard.indicator.test.tsx +0 -136
- package/src/CheckboxCard/__tests__/CheckboxCard.uncontrolled-state.test.tsx +0 -73
- package/src/CheckboxCard/hooks/index.ts +0 -2
- package/src/CheckboxCard/hooks/useCheckboxCardContext.ts +0 -1
- package/src/CheckboxCard/hooks/useCheckboxCardRoot.ts +0 -30
- package/src/CheckboxCard/index.ts +0 -3
- package/src/CheckboxCard/types.ts +0 -97
- package/src/Collapsible/Collapsible.tsx +0 -378
- package/src/Collapsible/CollapsibleContext.ts +0 -7
- package/src/Collapsible/README.md +0 -214
- package/src/Collapsible/__tests__/Collapsible.asChild.test.tsx +0 -329
- package/src/Collapsible/__tests__/Collapsible.basic-rendering.test.tsx +0 -145
- package/src/Collapsible/__tests__/Collapsible.collapsedHeight.test.tsx +0 -140
- package/src/Collapsible/__tests__/Collapsible.controlled-state.test.tsx +0 -134
- package/src/Collapsible/__tests__/Collapsible.disabled.test.tsx +0 -132
- package/src/Collapsible/__tests__/Collapsible.error-handling.test.tsx +0 -40
- package/src/Collapsible/__tests__/Collapsible.forceMount.test.tsx +0 -111
- package/src/Collapsible/__tests__/Collapsible.triggerIcon.test.tsx +0 -93
- package/src/Collapsible/__tests__/Collapsible.uncontrolled-state.test.tsx +0 -125
- package/src/Collapsible/hooks/index.ts +0 -2
- package/src/Collapsible/hooks/useCollapsibleRoot.ts +0 -34
- package/src/Collapsible/hooks/useCollapsibleTrigger.ts +0 -51
- package/src/Collapsible/index.ts +0 -2
- package/src/Collapsible/types.ts +0 -148
- package/src/Combobox/Combobox.tsx +0 -508
- package/src/Combobox/ComboboxContext.ts +0 -23
- package/src/Combobox/README.md +0 -170
- package/src/Combobox/__tests__/Combobox.asChild.test.tsx +0 -62
- package/src/Combobox/__tests__/Combobox.basic-rendering.test.tsx +0 -16
- package/src/Combobox/__tests__/Combobox.content.test.tsx +0 -36
- package/src/Combobox/__tests__/Combobox.controlled-state.test.tsx +0 -88
- package/src/Combobox/__tests__/Combobox.empty.test.tsx +0 -42
- package/src/Combobox/__tests__/Combobox.ids.test.tsx +0 -66
- package/src/Combobox/__tests__/Combobox.item.test.tsx +0 -76
- package/src/Combobox/__tests__/Combobox.keyboard-interaction.test.tsx +0 -196
- package/src/Combobox/__tests__/Combobox.light-dismiss.test.tsx +0 -101
- package/src/Combobox/__tests__/Combobox.query.test.tsx +0 -105
- package/src/Combobox/hooks/index.ts +0 -1
- package/src/Combobox/hooks/useComboboxRoot.ts +0 -2
- package/src/Combobox/index.ts +0 -3
- package/src/Combobox/types.ts +0 -133
- package/src/ContextMenu/ContextMenu.tsx +0 -1296
- package/src/ContextMenu/ContextMenuContentContext.ts +0 -15
- package/src/ContextMenu/ContextMenuContext.ts +0 -21
- package/src/ContextMenu/ContextMenuGroupContext.ts +0 -8
- package/src/ContextMenu/ContextMenuItemIndicatorContext.ts +0 -8
- package/src/ContextMenu/ContextMenuRadioGroupContext.ts +0 -9
- package/src/ContextMenu/ContextMenuSubContext.ts +0 -15
- package/src/ContextMenu/README.md +0 -275
- package/src/ContextMenu/__tests__/ContextMenu.asChild.test.tsx +0 -186
- package/src/ContextMenu/__tests__/ContextMenu.basic-rendering.test.tsx +0 -39
- package/src/ContextMenu/__tests__/ContextMenu.checkbox-item.test.tsx +0 -168
- package/src/ContextMenu/__tests__/ContextMenu.error-handling.test.tsx +0 -113
- package/src/ContextMenu/__tests__/ContextMenu.group-label.test.tsx +0 -48
- package/src/ContextMenu/__tests__/ContextMenu.item-indicator.test.tsx +0 -88
- package/src/ContextMenu/__tests__/ContextMenu.item.test.tsx +0 -106
- package/src/ContextMenu/__tests__/ContextMenu.keyboard-interaction.test.tsx +0 -227
- package/src/ContextMenu/__tests__/ContextMenu.mouse-interaction.test.tsx +0 -268
- package/src/ContextMenu/__tests__/ContextMenu.radio-item.test.tsx +0 -152
- package/src/ContextMenu/__tests__/ContextMenu.reading-direction.test.tsx +0 -152
- package/src/ContextMenu/__tests__/ContextMenu.separator.test.tsx +0 -47
- package/src/ContextMenu/__tests__/ContextMenu.state-modes.test.tsx +0 -119
- package/src/ContextMenu/__tests__/ContextMenu.sub.test.tsx +0 -407
- package/src/ContextMenu/__tests__/ContextMenu.typeahead.test.tsx +0 -134
- package/src/ContextMenu/constants.ts +0 -4
- package/src/ContextMenu/index.ts +0 -2
- package/src/ContextMenu/types.ts +0 -484
- package/src/DirectionProvider/DirectionContext.ts +0 -21
- package/src/DirectionProvider/DirectionProvider.tsx +0 -69
- package/src/DirectionProvider/README.md +0 -62
- package/src/DirectionProvider/__tests__/DirectionProvider.test.tsx +0 -34
- package/src/DirectionProvider/index.ts +0 -3
- package/src/DirectionProvider/types.ts +0 -36
- package/src/Divider/Divider.tsx +0 -74
- package/src/Divider/README.md +0 -57
- package/src/Divider/__tests__/Divider.contract.test.tsx +0 -66
- package/src/Divider/__tests__/Divider.test.tsx +0 -46
- package/src/Divider/index.ts +0 -2
- package/src/Divider/types.ts +0 -17
- package/src/Drawer/Drawer.tsx +0 -315
- package/src/Drawer/README.md +0 -124
- package/src/Drawer/__tests__/Drawer.behavior.test.tsx +0 -100
- package/src/Drawer/__tests__/Drawer.focus-trap.test.tsx +0 -55
- package/src/Drawer/__tests__/Drawer.rendering.test.tsx +0 -111
- package/src/Drawer/__tests__/Drawer.side.test.tsx +0 -69
- package/src/Drawer/__tests__/dialog-polyfill.ts +0 -39
- package/src/Drawer/index.ts +0 -2
- package/src/Drawer/types.ts +0 -66
- package/src/Dropdown/Dropdown.tsx +0 -985
- package/src/Dropdown/DropdownContentContext.ts +0 -15
- package/src/Dropdown/DropdownContext.ts +0 -17
- package/src/Dropdown/DropdownGroupContext.ts +0 -8
- package/src/Dropdown/DropdownItemIndicatorContext.ts +0 -13
- package/src/Dropdown/DropdownRadioGroupContext.ts +0 -9
- package/src/Dropdown/DropdownSubContext.ts +0 -15
- package/src/Dropdown/README.md +0 -286
- package/src/Dropdown/__tests__/Dropdown.asChild.test.tsx +0 -286
- package/src/Dropdown/__tests__/Dropdown.basic-rendering.test.tsx +0 -43
- package/src/Dropdown/__tests__/Dropdown.checkbox-item.test.tsx +0 -121
- package/src/Dropdown/__tests__/Dropdown.disabled.test.tsx +0 -143
- package/src/Dropdown/__tests__/Dropdown.error-handling.test.tsx +0 -85
- package/src/Dropdown/__tests__/Dropdown.group-label.test.tsx +0 -68
- package/src/Dropdown/__tests__/Dropdown.item-indicator.test.tsx +0 -260
- package/src/Dropdown/__tests__/Dropdown.item.test.tsx +0 -72
- package/src/Dropdown/__tests__/Dropdown.keyboard-edge-cases.test.tsx +0 -77
- package/src/Dropdown/__tests__/Dropdown.keyboard-interaction.test.tsx +0 -310
- package/src/Dropdown/__tests__/Dropdown.mouse-interaction.test.tsx +0 -347
- package/src/Dropdown/__tests__/Dropdown.radio-item.test.tsx +0 -134
- package/src/Dropdown/__tests__/Dropdown.reading-direction.test.tsx +0 -153
- package/src/Dropdown/__tests__/Dropdown.separator.test.tsx +0 -46
- package/src/Dropdown/__tests__/Dropdown.state-modes.test.tsx +0 -100
- package/src/Dropdown/__tests__/Dropdown.sub.test.tsx +0 -185
- package/src/Dropdown/__tests__/Dropdown.trigger.test.tsx +0 -110
- package/src/Dropdown/__tests__/Dropdown.typeahead.test.tsx +0 -133
- package/src/Dropdown/constants.ts +0 -4
- package/src/Dropdown/hooks/index.ts +0 -9
- package/src/Dropdown/hooks/useCloseSiblingSub.ts +0 -13
- package/src/Dropdown/hooks/useDropdownContent.ts +0 -162
- package/src/Dropdown/hooks/useDropdownContext.ts +0 -1
- package/src/Dropdown/hooks/useDropdownGroup.ts +0 -18
- package/src/Dropdown/hooks/useDropdownItem.ts +0 -49
- package/src/Dropdown/hooks/useDropdownLabel.ts +0 -15
- package/src/Dropdown/hooks/useDropdownRoot.ts +0 -57
- package/src/Dropdown/hooks/useDropdownSubContext.ts +0 -1
- package/src/Dropdown/hooks/useDropdownTrigger.ts +0 -31
- package/src/Dropdown/index.ts +0 -2
- package/src/Dropdown/types.ts +0 -558
- package/src/EmptyState/EmptyState.tsx +0 -329
- package/src/EmptyState/README.md +0 -129
- package/src/EmptyState/__tests__/EmptyState.Actions.test.tsx +0 -37
- package/src/EmptyState/__tests__/EmptyState.Description.test.tsx +0 -32
- package/src/EmptyState/__tests__/EmptyState.Media.test.tsx +0 -34
- package/src/EmptyState/__tests__/EmptyState.Root.test.tsx +0 -38
- package/src/EmptyState/__tests__/EmptyState.Title.test.tsx +0 -28
- package/src/EmptyState/index.ts +0 -2
- package/src/EmptyState/types.ts +0 -65
- package/src/Field/Field.tsx +0 -276
- package/src/Field/FieldContext.ts +0 -22
- package/src/Field/README.md +0 -167
- package/src/Field/__tests__/Field.asChild.test.tsx +0 -83
- package/src/Field/__tests__/Field.basic-rendering.test.tsx +0 -115
- package/src/Field/__tests__/Field.contract.test.tsx +0 -91
- package/src/Field/__tests__/Field.error-handling.test.tsx +0 -23
- package/src/Field/__tests__/Field.state-cascade.test.tsx +0 -96
- package/src/Field/hooks/__tests__/useFieldProps.test.tsx +0 -142
- package/src/Field/hooks/index.ts +0 -2
- package/src/Field/hooks/useFieldContext.ts +0 -1
- package/src/Field/hooks/useFieldProps.ts +0 -57
- package/src/Field/index.ts +0 -2
- package/src/Field/types.ts +0 -85
- package/src/Fieldset/Fieldset.tsx +0 -156
- package/src/Fieldset/README.md +0 -74
- package/src/Fieldset/__tests__/Fieldset.basic-rendering.test.tsx +0 -90
- package/src/Fieldset/__tests__/Fieldset.disabled.test.tsx +0 -41
- package/src/Fieldset/index.ts +0 -2
- package/src/Fieldset/types.ts +0 -25
- package/src/Input/Input.tsx +0 -128
- package/src/Input/README.md +0 -180
- package/src/Input/__tests__/Input.asChild.test.tsx +0 -85
- package/src/Input/__tests__/Input.basic-rendering.test.tsx +0 -123
- package/src/Input/__tests__/Input.contract.test.tsx +0 -77
- package/src/Input/__tests__/Input.disabled.test.tsx +0 -49
- package/src/Input/__tests__/Input.field-integration.test.tsx +0 -148
- package/src/Input/index.ts +0 -2
- package/src/Input/types.ts +0 -28
- package/src/InputGroup/InputGroup.tsx +0 -243
- package/src/InputGroup/README.md +0 -178
- package/src/InputGroup/__tests__/InputGroup.asChild.test.tsx +0 -110
- package/src/InputGroup/__tests__/InputGroup.basic-rendering.test.tsx +0 -120
- package/src/InputGroup/__tests__/InputGroup.contract.test.tsx +0 -60
- package/src/InputGroup/index.ts +0 -2
- package/src/InputGroup/types.ts +0 -43
- package/src/Listbox/Listbox.tsx +0 -475
- package/src/Listbox/ListboxContext.ts +0 -48
- package/src/Listbox/README.md +0 -248
- package/src/Listbox/__tests__/Listbox.active-descendant.test.tsx +0 -128
- package/src/Listbox/__tests__/Listbox.asChild.test.tsx +0 -91
- package/src/Listbox/__tests__/Listbox.basic-rendering.test.tsx +0 -16
- package/src/Listbox/__tests__/Listbox.controlled-state.test.tsx +0 -114
- package/src/Listbox/__tests__/Listbox.disabled.test.tsx +0 -90
- package/src/Listbox/__tests__/Listbox.fixtures.ts +0 -27
- package/src/Listbox/__tests__/Listbox.group-label.test.tsx +0 -97
- package/src/Listbox/__tests__/Listbox.group.test.tsx +0 -45
- package/src/Listbox/__tests__/Listbox.keyboard-edge-cases.test.tsx +0 -144
- package/src/Listbox/__tests__/Listbox.keyboard-interaction.test.tsx +0 -112
- package/src/Listbox/__tests__/Listbox.modifier-keys.test.tsx +0 -86
- package/src/Listbox/__tests__/Listbox.multi-select-keyboard.test.tsx +0 -368
- package/src/Listbox/__tests__/Listbox.multiple-mode.test.tsx +0 -91
- package/src/Listbox/__tests__/Listbox.mutation-hardening.test.tsx +0 -480
- package/src/Listbox/__tests__/Listbox.orientation.test.tsx +0 -59
- package/src/Listbox/__tests__/Listbox.reading-direction.test.tsx +0 -65
- package/src/Listbox/__tests__/Listbox.reorder.test.tsx +0 -78
- package/src/Listbox/__tests__/Listbox.selection-follows-focus.test.tsx +0 -64
- package/src/Listbox/__tests__/Listbox.strict-context.test.tsx +0 -21
- package/src/Listbox/__tests__/Listbox.typeahead.test.tsx +0 -123
- package/src/Listbox/__tests__/Listbox.uncontrolled-state.test.tsx +0 -48
- package/src/Listbox/constants.ts +0 -2
- package/src/Listbox/hooks/index.ts +0 -1
- package/src/Listbox/hooks/useListboxRoot.ts +0 -407
- package/src/Listbox/index.ts +0 -3
- package/src/Listbox/types.ts +0 -238
- package/src/MillerColumns/MillerColumns.tsx +0 -490
- package/src/MillerColumns/MillerColumnsContext.ts +0 -25
- package/src/MillerColumns/README.md +0 -348
- package/src/MillerColumns/__tests__/MillerColumns.aria.test.tsx +0 -127
- package/src/MillerColumns/__tests__/MillerColumns.asChild.test.tsx +0 -106
- package/src/MillerColumns/__tests__/MillerColumns.auto-scroll.test.tsx +0 -70
- package/src/MillerColumns/__tests__/MillerColumns.basic-rendering.test.tsx +0 -67
- package/src/MillerColumns/__tests__/MillerColumns.column-projection.test.tsx +0 -161
- package/src/MillerColumns/__tests__/MillerColumns.controlled-state.test.tsx +0 -90
- package/src/MillerColumns/__tests__/MillerColumns.data-attributes.test.tsx +0 -125
- package/src/MillerColumns/__tests__/MillerColumns.disabled-items.test.tsx +0 -65
- package/src/MillerColumns/__tests__/MillerColumns.error-handling.test.tsx +0 -57
- package/src/MillerColumns/__tests__/MillerColumns.fixtures.ts +0 -15
- package/src/MillerColumns/__tests__/MillerColumns.item-indicator.test.tsx +0 -57
- package/src/MillerColumns/__tests__/MillerColumns.keyboard-interaction.test.tsx +0 -214
- package/src/MillerColumns/__tests__/MillerColumns.keyboard-selection-state.test.tsx +0 -96
- package/src/MillerColumns/__tests__/MillerColumns.preview-panel.test.tsx +0 -72
- package/src/MillerColumns/__tests__/MillerColumns.preview-visibility.test.tsx +0 -79
- package/src/MillerColumns/__tests__/MillerColumns.resize.test.tsx +0 -326
- package/src/MillerColumns/__tests__/MillerColumns.roving-tabindex.test.tsx +0 -91
- package/src/MillerColumns/__tests__/MillerColumns.selection.test.tsx +0 -54
- package/src/MillerColumns/__tests__/MillerColumns.styled-parts.test.tsx +0 -143
- package/src/MillerColumns/__tests__/MillerColumns.typeahead.test.tsx +0 -104
- package/src/MillerColumns/__tests__/MillerColumns.uncontrolled-state.test.tsx +0 -70
- package/src/MillerColumns/constants.ts +0 -2
- package/src/MillerColumns/hooks/index.ts +0 -7
- package/src/MillerColumns/hooks/useMillerColumnsColumn.ts +0 -26
- package/src/MillerColumns/hooks/useMillerColumnsColumnContext.ts +0 -1
- package/src/MillerColumns/hooks/useMillerColumnsContext.ts +0 -1
- package/src/MillerColumns/hooks/useMillerColumnsItem.ts +0 -179
- package/src/MillerColumns/hooks/useMillerColumnsItemContext.ts +0 -1
- package/src/MillerColumns/hooks/useMillerColumnsResizeHandle.ts +0 -146
- package/src/MillerColumns/hooks/useMillerColumnsRoot.ts +0 -0
- package/src/MillerColumns/index.ts +0 -7
- package/src/MillerColumns/types.ts +0 -252
- package/src/MillerColumns/useMillerColumnsSelection.ts +0 -31
- package/src/MillerColumns/utils.ts +0 -141
- package/src/Modal/Modal.tsx +0 -515
- package/src/Modal/ModalContext.ts +0 -20
- package/src/Modal/README.md +0 -222
- package/src/Modal/__tests__/Modal.accessibility.test.tsx +0 -167
- package/src/Modal/__tests__/Modal.asChild.test.tsx +0 -162
- package/src/Modal/__tests__/Modal.click-outside.test.tsx +0 -115
- package/src/Modal/__tests__/Modal.content.test.tsx +0 -193
- package/src/Modal/__tests__/Modal.controlled-state.test.tsx +0 -120
- package/src/Modal/__tests__/Modal.error-handling.test.tsx +0 -30
- package/src/Modal/__tests__/Modal.escape-hatches.test.tsx +0 -99
- package/src/Modal/__tests__/Modal.focus-trap.test.tsx +0 -162
- package/src/Modal/__tests__/Modal.imperative-api.test.tsx +0 -119
- package/src/Modal/__tests__/Modal.nested.test.tsx +0 -106
- package/src/Modal/__tests__/Modal.overlay.test.tsx +0 -99
- package/src/Modal/__tests__/Modal.portal.test.tsx +0 -90
- package/src/Modal/__tests__/Modal.presence.test.tsx +0 -111
- package/src/Modal/__tests__/Modal.trigger.test.tsx +0 -70
- package/src/Modal/__tests__/Modal.uncontrolled-state.test.tsx +0 -72
- package/src/Modal/__tests__/dialog-polyfill.ts +0 -40
- package/src/Modal/hooks/index.ts +0 -4
- package/src/Modal/hooks/useModalContent.ts +0 -94
- package/src/Modal/hooks/useModalContext.ts +0 -1
- package/src/Modal/hooks/useModalRoot.ts +0 -81
- package/src/Modal/hooks/useModalTrigger.ts +0 -25
- package/src/Modal/index.ts +0 -3
- package/src/Modal/types.ts +0 -206
- package/src/NavigationMenu/NavigationMenu.tsx +0 -890
- package/src/NavigationMenu/NavigationMenuContext.ts +0 -67
- package/src/NavigationMenu/README.md +0 -355
- package/src/NavigationMenu/__tests__/NavigationMenu.anchor-positioning.test.tsx +0 -132
- package/src/NavigationMenu/__tests__/NavigationMenu.asChild.test.tsx +0 -73
- package/src/NavigationMenu/__tests__/NavigationMenu.basic-rendering.test.tsx +0 -92
- package/src/NavigationMenu/__tests__/NavigationMenu.contract.test.tsx +0 -45
- package/src/NavigationMenu/__tests__/NavigationMenu.controlled-state.test.tsx +0 -134
- package/src/NavigationMenu/__tests__/NavigationMenu.error-handling.test.tsx +0 -62
- package/src/NavigationMenu/__tests__/NavigationMenu.fixtures.tsx +0 -79
- package/src/NavigationMenu/__tests__/NavigationMenu.forceMount.test.tsx +0 -52
- package/src/NavigationMenu/__tests__/NavigationMenu.hover-interaction.test.tsx +0 -254
- package/src/NavigationMenu/__tests__/NavigationMenu.indicator.test.tsx +0 -252
- package/src/NavigationMenu/__tests__/NavigationMenu.keyboard-interaction.test.tsx +0 -294
- package/src/NavigationMenu/__tests__/NavigationMenu.keyboard-navigation.test.tsx +0 -126
- package/src/NavigationMenu/__tests__/NavigationMenu.link.test.tsx +0 -139
- package/src/NavigationMenu/__tests__/NavigationMenu.motion.test.tsx +0 -568
- package/src/NavigationMenu/__tests__/NavigationMenu.mouse-interaction.test.tsx +0 -76
- package/src/NavigationMenu/__tests__/NavigationMenu.uncontrolled-state.test.tsx +0 -30
- package/src/NavigationMenu/__tests__/NavigationMenu.viewport.test.tsx +0 -113
- package/src/NavigationMenu/constants.ts +0 -5
- package/src/NavigationMenu/hooks/index.ts +0 -7
- package/src/NavigationMenu/hooks/useNavigationMenuEntry.ts +0 -33
- package/src/NavigationMenu/hooks/useNavigationMenuIndicator.ts +0 -70
- package/src/NavigationMenu/hooks/useNavigationMenuLink.ts +0 -72
- package/src/NavigationMenu/hooks/useNavigationMenuRoot.ts +0 -301
- package/src/NavigationMenu/hooks/useNavigationMenuTopLevelEntry.ts +0 -65
- package/src/NavigationMenu/hooks/useNavigationMenuTrigger.ts +0 -158
- package/src/NavigationMenu/hooks/useNavigationMenuViewport.ts +0 -101
- package/src/NavigationMenu/index.ts +0 -3
- package/src/NavigationMenu/types.ts +0 -259
- package/src/NavigationMenu/utils.ts +0 -89
- package/src/Popover/Popover.tsx +0 -427
- package/src/Popover/PopoverContext.ts +0 -13
- package/src/Popover/README.md +0 -106
- package/src/Popover/__tests__/Popover.anchor.test.tsx +0 -38
- package/src/Popover/__tests__/Popover.asChild.test.tsx +0 -160
- package/src/Popover/__tests__/Popover.basic-rendering.test.tsx +0 -106
- package/src/Popover/__tests__/Popover.click-outside.test.tsx +0 -149
- package/src/Popover/__tests__/Popover.close.test.tsx +0 -70
- package/src/Popover/__tests__/Popover.content.test.tsx +0 -58
- package/src/Popover/__tests__/Popover.controlled-state.test.tsx +0 -45
- package/src/Popover/__tests__/Popover.error-handling.test.tsx +0 -51
- package/src/Popover/__tests__/Popover.focus.test.tsx +0 -43
- package/src/Popover/__tests__/Popover.keyboard-interaction.test.tsx +0 -71
- package/src/Popover/__tests__/Popover.mouse-interaction.test.tsx +0 -69
- package/src/Popover/__tests__/Popover.uncontrolled-state.test.tsx +0 -44
- package/src/Popover/hooks/index.ts +0 -3
- package/src/Popover/hooks/usePopoverContent.ts +0 -98
- package/src/Popover/hooks/usePopoverRoot.ts +0 -84
- package/src/Popover/hooks/usePopoverTrigger.ts +0 -33
- package/src/Popover/index.ts +0 -2
- package/src/Popover/types.ts +0 -197
- package/src/Portal/Portal.tsx +0 -70
- package/src/Portal/README.md +0 -70
- package/src/Portal/__tests__/Portal.basic-rendering.test.tsx +0 -22
- package/src/Portal/index.ts +0 -2
- package/src/Portal/types.ts +0 -15
- package/src/Progress/Progress.tsx +0 -215
- package/src/Progress/ProgressContext.ts +0 -27
- package/src/Progress/README.md +0 -112
- package/src/Progress/__tests__/Progress.asChild.test.tsx +0 -37
- package/src/Progress/__tests__/Progress.basic-rendering.test.tsx +0 -75
- package/src/Progress/__tests__/Progress.error-handling.test.tsx +0 -40
- package/src/Progress/__tests__/Progress.fixtures.ts +0 -7
- package/src/Progress/__tests__/Progress.value.test.tsx +0 -104
- package/src/Progress/hooks/index.ts +0 -2
- package/src/Progress/hooks/useProgressContext.ts +0 -1
- package/src/Progress/hooks/useProgressRoot.ts +0 -45
- package/src/Progress/index.ts +0 -3
- package/src/Progress/types.ts +0 -59
- package/src/Radio/README.md +0 -160
- package/src/Radio/Radio.tsx +0 -210
- package/src/Radio/RadioContext.ts +0 -19
- package/src/Radio/__tests__/Radio.basic-rendering.test.tsx +0 -80
- package/src/Radio/__tests__/Radio.contract.test.tsx +0 -106
- package/src/Radio/__tests__/Radio.controlled-state.test.tsx +0 -79
- package/src/Radio/__tests__/Radio.disabled.test.tsx +0 -48
- package/src/Radio/__tests__/Radio.native-grouping.test.tsx +0 -77
- package/src/Radio/__tests__/Radio.parts.test.tsx +0 -76
- package/src/Radio/__tests__/Radio.uncontrolled-state.test.tsx +0 -96
- package/src/Radio/hooks/index.ts +0 -2
- package/src/Radio/hooks/useRadioContext.ts +0 -1
- package/src/Radio/hooks/useRadioRoot.ts +0 -51
- package/src/Radio/index.ts +0 -2
- package/src/Radio/types.ts +0 -90
- package/src/RadioCard/README.md +0 -134
- package/src/RadioCard/RadioCard.tsx +0 -354
- package/src/RadioCard/RadioCardContext.ts +0 -35
- package/src/RadioCard/RadioCardItemContext.ts +0 -23
- package/src/RadioCard/__tests__/RadioCard.asChild.test.tsx +0 -76
- package/src/RadioCard/__tests__/RadioCard.basic-rendering.test.tsx +0 -95
- package/src/RadioCard/__tests__/RadioCard.controlled-state.test.tsx +0 -107
- package/src/RadioCard/__tests__/RadioCard.disabled-items.test.tsx +0 -111
- package/src/RadioCard/__tests__/RadioCard.error-handling.test.tsx +0 -35
- package/src/RadioCard/__tests__/RadioCard.indicator.test.tsx +0 -119
- package/src/RadioCard/__tests__/RadioCard.keyboard-interaction.test.tsx +0 -211
- package/src/RadioCard/__tests__/RadioCard.orientation.test.tsx +0 -90
- package/src/RadioCard/__tests__/RadioCard.reading-direction.test.tsx +0 -65
- package/src/RadioCard/__tests__/RadioCard.ref-forwarding.test.tsx +0 -54
- package/src/RadioCard/__tests__/RadioCard.uncontrolled-state.test.tsx +0 -129
- package/src/RadioCard/hooks/index.ts +0 -3
- package/src/RadioCard/hooks/useRadioCardContext.ts +0 -1
- package/src/RadioCard/hooks/useRadioCardItemContext.ts +0 -1
- package/src/RadioCard/hooks/useRadioCardRoot.ts +0 -88
- package/src/RadioCard/index.ts +0 -4
- package/src/RadioCard/types.ts +0 -145
- package/src/RadioGroup/README.md +0 -185
- package/src/RadioGroup/RadioGroup.tsx +0 -370
- package/src/RadioGroup/RadioGroupContext.ts +0 -23
- package/src/RadioGroup/RadioGroupItemContext.ts +0 -10
- package/src/RadioGroup/__tests__/RadioGroup.asChild.test.tsx +0 -105
- package/src/RadioGroup/__tests__/RadioGroup.basic-rendering.test.tsx +0 -80
- package/src/RadioGroup/__tests__/RadioGroup.controlled-state.test.tsx +0 -109
- package/src/RadioGroup/__tests__/RadioGroup.disabled-keydown-guards.test.tsx +0 -68
- package/src/RadioGroup/__tests__/RadioGroup.disabled.test.tsx +0 -106
- package/src/RadioGroup/__tests__/RadioGroup.error-handling.test.tsx +0 -33
- package/src/RadioGroup/__tests__/RadioGroup.indicator.test.tsx +0 -85
- package/src/RadioGroup/__tests__/RadioGroup.keyboard-interaction.test.tsx +0 -135
- package/src/RadioGroup/__tests__/RadioGroup.orientation.test.tsx +0 -90
- package/src/RadioGroup/__tests__/RadioGroup.reading-direction.test.tsx +0 -65
- package/src/RadioGroup/__tests__/RadioGroup.ref-forwarding.test.tsx +0 -74
- package/src/RadioGroup/__tests__/RadioGroup.roving-tabindex.test.tsx +0 -136
- package/src/RadioGroup/__tests__/RadioGroup.uncontrolled-state.test.tsx +0 -96
- package/src/RadioGroup/hooks/index.ts +0 -3
- package/src/RadioGroup/hooks/useRadioGroupContext.ts +0 -1
- package/src/RadioGroup/hooks/useRadioGroupItemContext.ts +0 -1
- package/src/RadioGroup/hooks/useRadioGroupRoot.ts +0 -98
- package/src/RadioGroup/index.ts +0 -2
- package/src/RadioGroup/types.ts +0 -146
- package/src/SegmentedControl/README.md +0 -154
- package/src/SegmentedControl/SegmentedControl.tsx +0 -309
- package/src/SegmentedControl/SegmentedControlContext.ts +0 -28
- package/src/SegmentedControl/__tests__/SegmentedControl.asChild.test.tsx +0 -50
- package/src/SegmentedControl/__tests__/SegmentedControl.basic-rendering.test.tsx +0 -100
- package/src/SegmentedControl/__tests__/SegmentedControl.controlled-state.test.tsx +0 -107
- package/src/SegmentedControl/__tests__/SegmentedControl.disabled-keydown-guards.test.tsx +0 -62
- package/src/SegmentedControl/__tests__/SegmentedControl.disabled.test.tsx +0 -151
- package/src/SegmentedControl/__tests__/SegmentedControl.error-handling.test.tsx +0 -17
- package/src/SegmentedControl/__tests__/SegmentedControl.keyboard-interaction.test.tsx +0 -117
- package/src/SegmentedControl/__tests__/SegmentedControl.orientation.test.tsx +0 -54
- package/src/SegmentedControl/__tests__/SegmentedControl.reading-direction.test.tsx +0 -56
- package/src/SegmentedControl/__tests__/SegmentedControl.ref-forwarding.test.tsx +0 -45
- package/src/SegmentedControl/__tests__/SegmentedControl.roving-tabindex.test.tsx +0 -104
- package/src/SegmentedControl/__tests__/SegmentedControl.uncontrolled-state.test.tsx +0 -94
- package/src/SegmentedControl/hooks/index.ts +0 -2
- package/src/SegmentedControl/hooks/useSegmentedControlContext.ts +0 -1
- package/src/SegmentedControl/hooks/useSegmentedControlRoot.ts +0 -87
- package/src/SegmentedControl/index.ts +0 -2
- package/src/SegmentedControl/types.ts +0 -138
- package/src/Select/README.md +0 -168
- package/src/Select/Select.tsx +0 -746
- package/src/Select/SelectContext.ts +0 -38
- package/src/Select/SelectItemIndicatorContext.ts +0 -29
- package/src/Select/__tests__/Select.asChild.test.tsx +0 -36
- package/src/Select/__tests__/Select.basic-rendering.test.tsx +0 -36
- package/src/Select/__tests__/Select.controlled-state.test.tsx +0 -69
- package/src/Select/__tests__/Select.data-attributes.test.tsx +0 -29
- package/src/Select/__tests__/Select.field-integration.test.tsx +0 -150
- package/src/Select/__tests__/Select.form.test.tsx +0 -38
- package/src/Select/__tests__/Select.group.test.tsx +0 -42
- package/src/Select/__tests__/Select.keyboard-edge.test.tsx +0 -95
- package/src/Select/__tests__/Select.keyboard.test.tsx +0 -124
- package/src/Select/__tests__/Select.mutation-hardening.test.tsx +0 -317
- package/src/Select/__tests__/Select.native-item.test.tsx +0 -30
- package/src/Select/__tests__/Select.open-close.test.tsx +0 -57
- package/src/Select/__tests__/Select.placeholder.test.tsx +0 -50
- package/src/Select/__tests__/Select.rich-asChild.test.tsx +0 -60
- package/src/Select/__tests__/Select.rich-mode.test.tsx +0 -16
- package/src/Select/__tests__/Select.selection.test.tsx +0 -104
- package/src/Select/__tests__/Select.separator.test.tsx +0 -71
- package/src/Select/__tests__/Select.strict-context.test.tsx +0 -36
- package/src/Select/__tests__/Select.typeahead.test.tsx +0 -156
- package/src/Select/__tests__/Select.value-mirror.test.tsx +0 -240
- package/src/Select/constants.ts +0 -8
- package/src/Select/hooks/index.ts +0 -2
- package/src/Select/hooks/useSelectContent.ts +0 -149
- package/src/Select/hooks/useSelectRoot.ts +0 -149
- package/src/Select/index.ts +0 -2
- package/src/Select/types.ts +0 -272
- package/src/SkipNav/README.md +0 -87
- package/src/SkipNav/SkipNav.tsx +0 -161
- package/src/SkipNav/__tests__/SkipNav.basic-rendering.test.tsx +0 -29
- package/src/SkipNav/__tests__/SkipNav.ids.test.tsx +0 -19
- package/src/SkipNav/index.ts +0 -1
- package/src/SkipNav/types.ts +0 -34
- package/src/Slider/README.md +0 -245
- package/src/Slider/Slider.tsx +0 -361
- package/src/Slider/SliderContext.ts +0 -58
- package/src/Slider/__tests__/Slider.asChild.test.tsx +0 -119
- package/src/Slider/__tests__/Slider.basic-rendering.test.tsx +0 -157
- package/src/Slider/__tests__/Slider.controlled-state.test.tsx +0 -78
- package/src/Slider/__tests__/Slider.disabled.test.tsx +0 -82
- package/src/Slider/__tests__/Slider.error-handling.test.tsx +0 -45
- package/src/Slider/__tests__/Slider.fixtures.ts +0 -53
- package/src/Slider/__tests__/Slider.form.test.tsx +0 -67
- package/src/Slider/__tests__/Slider.inverted.test.tsx +0 -112
- package/src/Slider/__tests__/Slider.keyboard-interaction.test.tsx +0 -118
- package/src/Slider/__tests__/Slider.multiple-thumbs.test.tsx +0 -84
- package/src/Slider/__tests__/Slider.orientation.test.tsx +0 -101
- package/src/Slider/__tests__/Slider.pointer-interaction.test.tsx +0 -205
- package/src/Slider/__tests__/Slider.reading-direction.test.tsx +0 -99
- package/src/Slider/__tests__/Slider.uncontrolled-state.test.tsx +0 -69
- package/src/Slider/__tests__/Slider.value-commit.test.tsx +0 -103
- package/src/Slider/hooks/index.ts +0 -3
- package/src/Slider/hooks/useSliderContext.ts +0 -1
- package/src/Slider/hooks/useSliderRoot.ts +0 -197
- package/src/Slider/hooks/useSliderThumb.ts +0 -77
- package/src/Slider/index.ts +0 -3
- package/src/Slider/types.ts +0 -205
- package/src/Slider/utils.ts +0 -155
- package/src/Slot/Slot.tsx +0 -238
- package/src/Slot/__tests__/Slot.test.tsx +0 -273
- package/src/Slot/__tests__/composeEventHandlers.test.ts +0 -74
- package/src/Slot/composeEventHandlers.ts +0 -62
- package/src/Slot/index.ts +0 -3
- package/src/Slot/types.ts +0 -21
- package/src/SplitButton/README.md +0 -225
- package/src/SplitButton/SplitButton.tsx +0 -457
- package/src/SplitButton/SplitButtonContext.ts +0 -26
- package/src/SplitButton/__tests__/SplitButton.accessibility.test.tsx +0 -55
- package/src/SplitButton/__tests__/SplitButton.asChild.test.tsx +0 -51
- package/src/SplitButton/__tests__/SplitButton.basic-rendering.test.tsx +0 -57
- package/src/SplitButton/__tests__/SplitButton.data-attributes.test.tsx +0 -28
- package/src/SplitButton/__tests__/SplitButton.disabled.test.tsx +0 -79
- package/src/SplitButton/__tests__/SplitButton.error-handling.test.tsx +0 -29
- package/src/SplitButton/__tests__/SplitButton.keyboard-interaction.test.tsx +0 -56
- package/src/SplitButton/__tests__/SplitButton.state-modes.test.tsx +0 -68
- package/src/SplitButton/index.ts +0 -2
- package/src/SplitButton/types.ts +0 -186
- package/src/Status/README.md +0 -50
- package/src/Status/Status.tsx +0 -72
- package/src/Status/__tests__/Status.test.tsx +0 -33
- package/src/Status/index.ts +0 -2
- package/src/Status/types.ts +0 -20
- package/src/Switch/README.md +0 -126
- package/src/Switch/Switch.tsx +0 -203
- package/src/Switch/SwitchContext.ts +0 -20
- package/src/Switch/__tests__/Switch.asChild.test.tsx +0 -38
- package/src/Switch/__tests__/Switch.basic-rendering.test.tsx +0 -102
- package/src/Switch/__tests__/Switch.contract.test.tsx +0 -114
- package/src/Switch/__tests__/Switch.controlled-state.test.tsx +0 -77
- package/src/Switch/__tests__/Switch.disabled.test.tsx +0 -55
- package/src/Switch/__tests__/Switch.error-handling.test.tsx +0 -20
- package/src/Switch/__tests__/Switch.form.test.tsx +0 -55
- package/src/Switch/__tests__/Switch.keyboard-interaction.test.tsx +0 -56
- package/src/Switch/__tests__/Switch.recipe.test.ts +0 -19
- package/src/Switch/__tests__/Switch.thumb.test.tsx +0 -84
- package/src/Switch/__tests__/Switch.uncontrolled-state.test.tsx +0 -118
- package/src/Switch/hooks/index.ts +0 -2
- package/src/Switch/hooks/useSwitchContext.ts +0 -1
- package/src/Switch/hooks/useSwitchRoot.ts +0 -49
- package/src/Switch/index.ts +0 -3
- package/src/Switch/types.ts +0 -95
- package/src/Table/README.md +0 -307
- package/src/Table/Table.tsx +0 -636
- package/src/Table/TableExpandableContext.ts +0 -7
- package/src/Table/__tests__/Table.Body.test.tsx +0 -61
- package/src/Table/__tests__/Table.Caption.test.tsx +0 -70
- package/src/Table/__tests__/Table.Cell.test.tsx +0 -73
- package/src/Table/__tests__/Table.DetailRow.test.tsx +0 -83
- package/src/Table/__tests__/Table.ExpandTrigger.test.tsx +0 -102
- package/src/Table/__tests__/Table.Expandable.test.tsx +0 -121
- package/src/Table/__tests__/Table.Footer.test.tsx +0 -61
- package/src/Table/__tests__/Table.Head.test.tsx +0 -61
- package/src/Table/__tests__/Table.Header.test.tsx +0 -73
- package/src/Table/__tests__/Table.Root.test.tsx +0 -49
- package/src/Table/__tests__/Table.Row.test.tsx +0 -67
- package/src/Table/__tests__/Table.ScrollArea.test.tsx +0 -83
- package/src/Table/__tests__/Table.contract.test.tsx +0 -80
- package/src/Table/index.ts +0 -2
- package/src/Table/types.ts +0 -237
- package/src/Tabs/README.md +0 -111
- package/src/Tabs/Tabs.tsx +0 -465
- package/src/Tabs/TabsContext.ts +0 -21
- package/src/Tabs/__tests__/Tabs.activation-mode.test.tsx +0 -172
- package/src/Tabs/__tests__/Tabs.asChild.test.tsx +0 -91
- package/src/Tabs/__tests__/Tabs.basic-rendering.test.tsx +0 -498
- package/src/Tabs/__tests__/Tabs.change-event-callbacks.test.tsx +0 -157
- package/src/Tabs/__tests__/Tabs.contract.test.tsx +0 -153
- package/src/Tabs/__tests__/Tabs.controlled-state.test.tsx +0 -152
- package/src/Tabs/__tests__/Tabs.disabled-tabs.test.tsx +0 -239
- package/src/Tabs/__tests__/Tabs.error-handling.test.tsx +0 -82
- package/src/Tabs/__tests__/Tabs.fixtures.ts +0 -171
- package/src/Tabs/__tests__/Tabs.imperative-api.test.tsx +0 -118
- package/src/Tabs/__tests__/Tabs.keyboard-interaction.test.tsx +0 -192
- package/src/Tabs/__tests__/Tabs.lazy-mount.test.tsx +0 -78
- package/src/Tabs/__tests__/Tabs.mouse-interaction.test.tsx +0 -216
- package/src/Tabs/__tests__/Tabs.reading-direction.test.tsx +0 -58
- package/src/Tabs/__tests__/Tabs.uncontrolled-state.test.tsx +0 -197
- package/src/Tabs/hooks/index.ts +0 -4
- package/src/Tabs/hooks/useTabsContent.ts +0 -32
- package/src/Tabs/hooks/useTabsContext.ts +0 -1
- package/src/Tabs/hooks/useTabsRoot.ts +0 -172
- package/src/Tabs/hooks/useTabsTrigger.ts +0 -116
- package/src/Tabs/index.ts +0 -3
- package/src/Tabs/types.ts +0 -166
- package/src/Tabs/utils.ts +0 -8
- package/src/Textarea/README.md +0 -98
- package/src/Textarea/Textarea.tsx +0 -104
- package/src/Textarea/__tests__/Textarea.asChild.test.tsx +0 -85
- package/src/Textarea/__tests__/Textarea.basic-rendering.test.tsx +0 -112
- package/src/Textarea/__tests__/Textarea.disabled.test.tsx +0 -49
- package/src/Textarea/__tests__/Textarea.field-integration.test.tsx +0 -134
- package/src/Textarea/index.ts +0 -2
- package/src/Textarea/types.ts +0 -28
- package/src/Toggle/README.md +0 -97
- package/src/Toggle/Toggle.tsx +0 -126
- package/src/Toggle/__tests__/Toggle.asChild.test.tsx +0 -42
- package/src/Toggle/__tests__/Toggle.basic-rendering.test.tsx +0 -33
- package/src/Toggle/__tests__/Toggle.controlled-state.test.tsx +0 -60
- package/src/Toggle/__tests__/Toggle.disabled.test.tsx +0 -34
- package/src/Toggle/__tests__/Toggle.keyboard-interaction.test.tsx +0 -42
- package/src/Toggle/__tests__/Toggle.uncontrolled-state.test.tsx +0 -40
- package/src/Toggle/index.ts +0 -2
- package/src/Toggle/types.ts +0 -77
- package/src/ToggleGroup/README.md +0 -137
- package/src/ToggleGroup/ToggleGroup.tsx +0 -321
- package/src/ToggleGroup/ToggleGroupContext.ts +0 -9
- package/src/ToggleGroup/__tests__/ToggleGroup.asChild.test.tsx +0 -85
- package/src/ToggleGroup/__tests__/ToggleGroup.basic-rendering.test.tsx +0 -59
- package/src/ToggleGroup/__tests__/ToggleGroup.disabled.test.tsx +0 -54
- package/src/ToggleGroup/__tests__/ToggleGroup.dynamic-items.test.tsx +0 -70
- package/src/ToggleGroup/__tests__/ToggleGroup.error-handling.test.tsx +0 -23
- package/src/ToggleGroup/__tests__/ToggleGroup.keyboard-interaction.test.tsx +0 -173
- package/src/ToggleGroup/__tests__/ToggleGroup.multiple-mode.test.tsx +0 -144
- package/src/ToggleGroup/__tests__/ToggleGroup.reading-direction.test.tsx +0 -28
- package/src/ToggleGroup/__tests__/ToggleGroup.ref-forwarding.test.tsx +0 -58
- package/src/ToggleGroup/__tests__/ToggleGroup.single-mode.test.tsx +0 -139
- package/src/ToggleGroup/hooks/index.ts +0 -2
- package/src/ToggleGroup/hooks/useToggleGroupContext.ts +0 -1
- package/src/ToggleGroup/hooks/useToggleGroupRoot.ts +0 -130
- package/src/ToggleGroup/index.ts +0 -2
- package/src/ToggleGroup/types.ts +0 -165
- package/src/Tooltip/README.md +0 -214
- package/src/Tooltip/Tooltip.tsx +0 -369
- package/src/Tooltip/TooltipContext.ts +0 -20
- package/src/Tooltip/__tests__/Tooltip.asChild.test.tsx +0 -77
- package/src/Tooltip/__tests__/Tooltip.basic-rendering.test.tsx +0 -230
- package/src/Tooltip/__tests__/Tooltip.controlled-state.test.tsx +0 -128
- package/src/Tooltip/__tests__/Tooltip.error-handling.test.tsx +0 -37
- package/src/Tooltip/__tests__/Tooltip.escape-hatches.test.tsx +0 -146
- package/src/Tooltip/__tests__/Tooltip.focus-interaction.test.tsx +0 -88
- package/src/Tooltip/__tests__/Tooltip.hover-interaction.test.tsx +0 -179
- package/src/Tooltip/__tests__/Tooltip.keyboard-interaction.test.tsx +0 -219
- package/src/Tooltip/__tests__/Tooltip.skip-delay.test.tsx +0 -232
- package/src/Tooltip/__tests__/Tooltip.timer-coordination.test.tsx +0 -223
- package/src/Tooltip/__tests__/Tooltip.uncontrolled-state.test.tsx +0 -67
- package/src/Tooltip/hooks/__tests__/useTooltipProvider.test.tsx +0 -40
- package/src/Tooltip/hooks/index.ts +0 -4
- package/src/Tooltip/hooks/useTooltipContent.ts +0 -56
- package/src/Tooltip/hooks/useTooltipProvider.ts +0 -79
- package/src/Tooltip/hooks/useTooltipRoot.ts +0 -130
- package/src/Tooltip/hooks/useTooltipTrigger.ts +0 -44
- package/src/Tooltip/index.ts +0 -2
- package/src/Tooltip/types.ts +0 -193
- package/src/Tree/README.md +0 -403
- package/src/Tree/Tree.tsx +0 -771
- package/src/Tree/TreeContext.ts +0 -24
- package/src/Tree/__tests__/Tree.aria.test.tsx +0 -53
- package/src/Tree/__tests__/Tree.asChild.test.tsx +0 -134
- package/src/Tree/__tests__/Tree.basic-rendering.test.tsx +0 -111
- package/src/Tree/__tests__/Tree.branch-behaviour.test.tsx +0 -87
- package/src/Tree/__tests__/Tree.controlled-expansion.test.tsx +0 -92
- package/src/Tree/__tests__/Tree.data-attributes.test.tsx +0 -88
- package/src/Tree/__tests__/Tree.disabled-items.test.tsx +0 -196
- package/src/Tree/__tests__/Tree.error-handling.test.tsx +0 -71
- package/src/Tree/__tests__/Tree.forceMount.test.tsx +0 -72
- package/src/Tree/__tests__/Tree.keyboard-interaction.test.tsx +0 -150
- package/src/Tree/__tests__/Tree.multiple-selection.test.tsx +0 -151
- package/src/Tree/__tests__/Tree.range-selection.test.tsx +0 -200
- package/src/Tree/__tests__/Tree.recursion-depth.test.tsx +0 -73
- package/src/Tree/__tests__/Tree.roving-tabindex.test.tsx +0 -117
- package/src/Tree/__tests__/Tree.selection-path.test.tsx +0 -404
- package/src/Tree/__tests__/Tree.single-selection.test.tsx +0 -108
- package/src/Tree/__tests__/Tree.styled-wrapper.test.tsx +0 -159
- package/src/Tree/__tests__/Tree.uncontrolled-expansion.test.tsx +0 -69
- package/src/Tree/hooks/index.ts +0 -3
- package/src/Tree/hooks/useTreeItemKeyboard.ts +0 -86
- package/src/Tree/hooks/useTreePath.ts +0 -100
- package/src/Tree/hooks/useTreeRoot.ts +0 -279
- package/src/Tree/index.ts +0 -8
- package/src/Tree/types.ts +0 -298
- package/src/Tree/utils.ts +0 -101
- package/src/VisuallyHidden/README.md +0 -58
- package/src/VisuallyHidden/VisuallyHidden.tsx +0 -94
- package/src/VisuallyHidden/__tests__/VisuallyHidden.test.tsx +0 -73
- package/src/VisuallyHidden/index.ts +0 -2
- package/src/VisuallyHidden/types.ts +0 -19
- package/src/hooks/index.ts +0 -4
- package/src/hooks/useCollection.ts +0 -74
- package/src/hooks/useControllableState.ts +0 -81
- package/src/hooks/useRovingTabindex.ts +0 -178
- package/src/hooks/useTypeahead.ts +0 -95
- package/src/index.ts +0 -52
- package/src/test/intersectionObserverPolyfill.ts +0 -90
- package/src/test/popoverPolyfill.ts +0 -86
- package/src/test/resizeObserverPolyfill.ts +0 -80
- package/src/test/scrollPolyfill.ts +0 -23
- package/src/types.ts +0 -14
- package/src/useLocalStorage/__tests__/useLocalStorage.reading.test.tsx +0 -31
- package/src/useLocalStorage/__tests__/useLocalStorage.resilience.test.tsx +0 -97
- package/src/useLocalStorage/__tests__/useLocalStorage.ssr.test.tsx +0 -20
- package/src/useLocalStorage/__tests__/useLocalStorage.writing.test.tsx +0 -72
- package/src/useLocalStorage/index.ts +0 -1
- package/src/useLocalStorage/useLocalStorage.ts +0 -140
- package/src/useMediaQuery/README.md +0 -66
- package/src/useMediaQuery/__tests__/useMediaQuery.matching.test.tsx +0 -42
- package/src/useMediaQuery/__tests__/useMediaQuery.ssr.test.tsx +0 -19
- package/src/useMediaQuery/__tests__/useMediaQuery.subscription.test.tsx +0 -89
- package/src/useMediaQuery/index.ts +0 -1
- package/src/useMediaQuery/useMediaQuery.ts +0 -49
- package/src/usePagination/README.md +0 -170
- package/src/usePagination/__tests__/usePagination.navigation.test.tsx +0 -109
- package/src/usePagination/__tests__/usePagination.page-count.test.tsx +0 -56
- package/src/usePagination/__tests__/usePagination.page-state.test.tsx +0 -87
- package/src/usePagination/__tests__/usePagination.range.test.tsx +0 -82
- package/src/usePagination/__tests__/usePagination.slice.test.tsx +0 -59
- package/src/usePagination/__tests__/usePagination.windowing.test.tsx +0 -68
- package/src/usePagination/index.ts +0 -1
- package/src/usePagination/usePagination.ts +0 -292
- package/src/utils/__tests__/createStrictContext.test.tsx +0 -69
- package/src/utils/__tests__/deriveId.test.ts +0 -28
- package/src/utils/__tests__/getKeyToActionMap.test.ts +0 -106
- package/src/utils/createStrictContext.ts +0 -53
- package/src/utils/deriveId.ts +0 -31
- package/src/utils/focusable.ts +0 -15
- package/src/utils/getKeyToActionMap.ts +0 -95
- package/src/utils/index.ts +0 -4
|
@@ -1,972 +0,0 @@
|
|
|
1
|
-
import { forwardRef, MouseEvent, useCallback } from "react";
|
|
2
|
-
import type {
|
|
3
|
-
ForwardRefExoticComponent,
|
|
4
|
-
PropsWithoutRef,
|
|
5
|
-
ReactElement,
|
|
6
|
-
RefAttributes,
|
|
7
|
-
} from "react";
|
|
8
|
-
|
|
9
|
-
import { Slot } from "../Slot/index.ts";
|
|
10
|
-
import { CarouselProvider } from "./CarouselContext";
|
|
11
|
-
import {
|
|
12
|
-
useCarouselContext,
|
|
13
|
-
useCarouselLoop,
|
|
14
|
-
useCarouselRoot,
|
|
15
|
-
useCarouselSlide,
|
|
16
|
-
useCarouselViewport,
|
|
17
|
-
} from "./hooks/index.ts";
|
|
18
|
-
import type {
|
|
19
|
-
CarouselImperativeApi,
|
|
20
|
-
CarouselRootProps,
|
|
21
|
-
CarouselViewportProps,
|
|
22
|
-
CarouselSlideProps,
|
|
23
|
-
CarouselNextTriggerProps,
|
|
24
|
-
CarouselPreviousTriggerProps,
|
|
25
|
-
CarouselIndicatorGroupProps,
|
|
26
|
-
CarouselIndicatorProps,
|
|
27
|
-
CarouselIndicatorsProps,
|
|
28
|
-
CarouselPlayPauseTriggerProps,
|
|
29
|
-
CarouselProgressTextProps,
|
|
30
|
-
} from "./types";
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* The root of a Carousel widget. Renders a `<section>` with
|
|
34
|
-
* `aria-roledescription="carousel"` so assistive technology announces
|
|
35
|
-
* the widget as a carousel rather than a generic region, per the
|
|
36
|
-
* WAI-ARIA Carousel pattern.
|
|
37
|
-
*
|
|
38
|
-
* Every carousel must have an accessible name. Pass exactly one of:
|
|
39
|
-
*
|
|
40
|
-
* - `ariaLabel` — a short human-readable description (e.g.
|
|
41
|
-
* `"Featured products"`).
|
|
42
|
-
* - `ariaLabelledBy` — the `id` of an existing heading or label element.
|
|
43
|
-
*
|
|
44
|
-
* The discriminated union on the props type rejects both-or-neither at
|
|
45
|
-
* compile time.
|
|
46
|
-
*
|
|
47
|
-
* **Orientation.** Pass `orientation="vertical"` to page along the block
|
|
48
|
-
* axis instead of the inline axis: the viewport scroll-snaps vertically,
|
|
49
|
-
* the viewport `ArrowDown` / `ArrowUp` keys advance / retreat (the
|
|
50
|
-
* horizontal arrows go inert), and the resolved value is published as
|
|
51
|
-
* `data-orientation` on the rendered `<section>` so consumer CSS can
|
|
52
|
-
* switch layout off a single hook. Defaults to `"horizontal"`.
|
|
53
|
-
*
|
|
54
|
-
* Supports two **page-state modes**, statically discriminated at the type
|
|
55
|
-
* level so only one of the two shapes is accepted by TypeScript:
|
|
56
|
-
*
|
|
57
|
-
* - **Uncontrolled** — pass `defaultPage` (or omit it and start at `0`).
|
|
58
|
-
* The component owns and updates the active page internally.
|
|
59
|
-
* - **Controlled** — pass `page` *and* `onPageChange` together. The
|
|
60
|
-
* parent owns the active page; the component defers every state
|
|
61
|
-
* change back through the callback.
|
|
62
|
-
*
|
|
63
|
-
* The `ref` is an imperative handle ({@link CarouselImperativeApi}), not
|
|
64
|
-
* the DOM node — the `<section>`'s native attributes are still spread
|
|
65
|
-
* through from the remaining props.
|
|
66
|
-
*
|
|
67
|
-
* @extends HTMLElement
|
|
68
|
-
*
|
|
69
|
-
* @example Labelled inline, uncontrolled
|
|
70
|
-
* ```tsx
|
|
71
|
-
* <Carousel.Root ariaLabel="Featured products" defaultPage={0}>...</Carousel.Root>
|
|
72
|
-
* ```
|
|
73
|
-
*
|
|
74
|
-
* @example Controlled
|
|
75
|
-
* ```tsx
|
|
76
|
-
* const [page, setPage] = useState(0);
|
|
77
|
-
*
|
|
78
|
-
* <Carousel.Root
|
|
79
|
-
* ariaLabel="Featured products"
|
|
80
|
-
* page={page}
|
|
81
|
-
* onPageChange={setPage}
|
|
82
|
-
* >
|
|
83
|
-
* ...
|
|
84
|
-
* </Carousel.Root>
|
|
85
|
-
* ```
|
|
86
|
-
*
|
|
87
|
-
* @example Labelled by an existing heading
|
|
88
|
-
* ```tsx
|
|
89
|
-
* <h2 id="promos">Promotions</h2>
|
|
90
|
-
* <Carousel.Root ariaLabelledBy="promos">...</Carousel.Root>
|
|
91
|
-
* ```
|
|
92
|
-
*/
|
|
93
|
-
export const CarouselRoot: ForwardRefExoticComponent<
|
|
94
|
-
PropsWithoutRef<CarouselRootProps> & RefAttributes<CarouselImperativeApi>
|
|
95
|
-
> = forwardRef<CarouselImperativeApi, CarouselRootProps>(function CarouselRoot(
|
|
96
|
-
{
|
|
97
|
-
className = "",
|
|
98
|
-
ariaLabel,
|
|
99
|
-
ariaLabelledBy,
|
|
100
|
-
defaultPage,
|
|
101
|
-
page,
|
|
102
|
-
onPageChange,
|
|
103
|
-
defaultPlaying,
|
|
104
|
-
playing,
|
|
105
|
-
onPlayingChange,
|
|
106
|
-
autoplay,
|
|
107
|
-
onAutoplayStatusChange,
|
|
108
|
-
slidesPerPage,
|
|
109
|
-
slidesPerMove,
|
|
110
|
-
translations,
|
|
111
|
-
ids,
|
|
112
|
-
transition,
|
|
113
|
-
snapAlign,
|
|
114
|
-
orientation,
|
|
115
|
-
loop,
|
|
116
|
-
allowMouseDrag,
|
|
117
|
-
onDragStatusChange,
|
|
118
|
-
onOverscrollStatusChange,
|
|
119
|
-
inViewThreshold,
|
|
120
|
-
snapType,
|
|
121
|
-
children,
|
|
122
|
-
...rest
|
|
123
|
-
},
|
|
124
|
-
imperativeRef,
|
|
125
|
-
) {
|
|
126
|
-
const { contextValue, rootHandlers } = useCarouselRoot(
|
|
127
|
-
{
|
|
128
|
-
defaultPage,
|
|
129
|
-
page,
|
|
130
|
-
onPageChange,
|
|
131
|
-
defaultPlaying,
|
|
132
|
-
playing,
|
|
133
|
-
onPlayingChange,
|
|
134
|
-
autoplay,
|
|
135
|
-
onAutoplayStatusChange,
|
|
136
|
-
slidesPerPage,
|
|
137
|
-
slidesPerMove,
|
|
138
|
-
translations,
|
|
139
|
-
ids,
|
|
140
|
-
transition,
|
|
141
|
-
snapAlign,
|
|
142
|
-
orientation,
|
|
143
|
-
loop,
|
|
144
|
-
allowMouseDrag,
|
|
145
|
-
onDragStatusChange,
|
|
146
|
-
onOverscrollStatusChange,
|
|
147
|
-
inViewThreshold,
|
|
148
|
-
snapType,
|
|
149
|
-
},
|
|
150
|
-
imperativeRef,
|
|
151
|
-
);
|
|
152
|
-
|
|
153
|
-
return (
|
|
154
|
-
<CarouselProvider value={contextValue}>
|
|
155
|
-
<section
|
|
156
|
-
aria-roledescription="carousel"
|
|
157
|
-
data-orientation={contextValue.orientation}
|
|
158
|
-
data-transition={contextValue.transition}
|
|
159
|
-
data-loop={contextValue.loop}
|
|
160
|
-
className={className}
|
|
161
|
-
{...(ariaLabel !== undefined && { "aria-label": ariaLabel })}
|
|
162
|
-
{...(ariaLabelledBy !== undefined && {
|
|
163
|
-
"aria-labelledby": ariaLabelledBy,
|
|
164
|
-
})}
|
|
165
|
-
{...(contextValue.ids.root !== undefined && {
|
|
166
|
-
id: contextValue.ids.root,
|
|
167
|
-
})}
|
|
168
|
-
{...rootHandlers}
|
|
169
|
-
{...rest}
|
|
170
|
-
>
|
|
171
|
-
{children}
|
|
172
|
-
</section>
|
|
173
|
-
</CarouselProvider>
|
|
174
|
-
);
|
|
175
|
-
});
|
|
176
|
-
|
|
177
|
-
CarouselRoot.displayName = "CarouselRoot";
|
|
178
|
-
|
|
179
|
-
/**
|
|
180
|
-
* The slide container — the scrollable surface that holds
|
|
181
|
-
* `Carousel.Slide` children. Rendered as a `<div>` with a
|
|
182
|
-
* `data-carousel-viewport` attribute that the recommended scroll-snap
|
|
183
|
-
* CSS targets (see this component's README for the recipe).
|
|
184
|
-
*
|
|
185
|
-
* The viewport must be rendered as a descendant of `Carousel.Root`;
|
|
186
|
-
* rendering it elsewhere throws a descriptive error so misuse surfaces
|
|
187
|
-
* during development rather than as silent ARIA breakage.
|
|
188
|
-
*
|
|
189
|
-
* **Live region.** The viewport is also the live region for slide
|
|
190
|
-
* changes: `aria-live="polite"` so paged navigation is announced to
|
|
191
|
-
* assistive tech, flipping to `aria-live="off"` while autoplay is
|
|
192
|
-
* actively rotating so screen readers don't get spammed with every
|
|
193
|
-
* tick.
|
|
194
|
-
*
|
|
195
|
-
* **Styling hooks.** `data-carousel-viewport` is set on the rendered
|
|
196
|
-
* element. The component ships no styles — apply your own scroll-snap
|
|
197
|
-
* recipe via this attribute. `data-snap-type="mandatory" | "proximity"`
|
|
198
|
-
* mirrors the resolved root {@link CarouselRootProps.snapType | `snapType`}
|
|
199
|
-
* — scope `scroll-snap-type`'s strictness to it. `data-mouse-drag` is
|
|
200
|
-
* present whenever `allowMouseDrag` is `true` (a persistent hook — the
|
|
201
|
-
* natural place for a `cursor: grab` affordance, since showing that cursor
|
|
202
|
-
* when dragging isn't actually enabled would be misleading); `data-dragging`
|
|
203
|
-
* is additionally present only for the duration of an active drag (see
|
|
204
|
-
* below) — pair it with `cursor: grabbing`.
|
|
205
|
-
*
|
|
206
|
-
* **Keyboard navigation.** The Viewport is in the tab order
|
|
207
|
-
* (`tabIndex={0}`) so keyboard users can reach the rotation control
|
|
208
|
-
* without first tabbing through every slide's interactive content.
|
|
209
|
-
* With the Viewport focused:
|
|
210
|
-
*
|
|
211
|
-
* - `ArrowRight` advances by one page (same as `Carousel.NextTrigger`).
|
|
212
|
-
* - `ArrowLeft` retreats by one page (same as `Carousel.PreviousTrigger`).
|
|
213
|
-
* - `Home` jumps to the first page.
|
|
214
|
-
* - `End` jumps to the last page.
|
|
215
|
-
*
|
|
216
|
-
* Arrow keys clamp at the boundaries, mirroring the trigger buttons.
|
|
217
|
-
* Keypresses are only intercepted when the Viewport itself is the focus
|
|
218
|
-
* target — focus inside a slide (e.g. on a link or form control) keeps
|
|
219
|
-
* its native arrow-key semantics.
|
|
220
|
-
*
|
|
221
|
-
* **Mouse click-and-drag** — opt-in via {@link CarouselRootProps.allowMouseDrag |
|
|
222
|
-
* `allowMouseDrag`} on `Carousel.Root` (default `false`; an
|
|
223
|
-
* unconditionally-on drag could conflict with a consumer's own
|
|
224
|
-
* drag-sensitive slide content). When enabled: click and hold, then drag,
|
|
225
|
-
* and the viewport scrolls like a swipe: `scrollLeft`/`scrollTop` track
|
|
226
|
-
* the pointer, amplified by a sensitivity multiplier (no momentum — the
|
|
227
|
-
* multiplier only scales the tracked delta, motion still stops dead on
|
|
228
|
-
* release), once the drag clears a small movement threshold — below it,
|
|
229
|
-
* nothing happens, so a plain click on a link/button inside a slide
|
|
230
|
-
* still reaches it. Release lets `scroll-snap-type` settle to the
|
|
231
|
-
* nearest slide (the same `scrollsnapchange` sync a touch swipe already
|
|
232
|
-
* drives). A `data-dragging` attribute is set for the duration of an
|
|
233
|
-
* active drag. Only `pointerType === "mouse"` is handled — touch/pen
|
|
234
|
-
* already scroll natively regardless of this prop.
|
|
235
|
-
*
|
|
236
|
-
* **Mouse-wheel scroll.** A physical wheel's vertical notches already
|
|
237
|
-
* scroll a `orientation="vertical"` carousel natively. On the default
|
|
238
|
-
* horizontal orientation, a plain vertical wheel notch (`deltaY`)
|
|
239
|
-
* translates into horizontal scroll — browsers only do this
|
|
240
|
-
* automatically when `Shift` is held. Stands down whenever `deltaX` is
|
|
241
|
-
* non-negligible, so a trackpad/Magic Mouse horizontal swipe (which
|
|
242
|
-
* already scrolls a horizontal viewport natively via `deltaX`) is never
|
|
243
|
-
* fought.
|
|
244
|
-
*
|
|
245
|
-
* **Overscroll.** Pushing against a boundary with nowhere further to go —
|
|
246
|
-
* via the keyboard, the wheel, or a mouse drag — fires the root's
|
|
247
|
-
* {@link CarouselRootProps.onOverscrollStatusChange | `onOverscrollStatusChange`}.
|
|
248
|
-
* A mouse drag past a boundary additionally sets a persistent
|
|
249
|
-
* `data-overscroll="start" | "end"` attribute on the Viewport for the
|
|
250
|
-
* duration (removed once the drag stops pushing past it, whether by
|
|
251
|
-
* reversing back within bounds or releasing) — the natural hook for a
|
|
252
|
-
* rubber-band resistance visual. Keyboard/wheel overscroll is a single
|
|
253
|
-
* instantaneous tap with no equivalent sustained DOM state. Native
|
|
254
|
-
* touch/swipe overscroll (OS-level rubber-banding) isn't covered — that's
|
|
255
|
-
* browser-owned scroll physics with no JS hook to observe it from.
|
|
256
|
-
*
|
|
257
|
-
* @extends HTMLDivElement
|
|
258
|
-
*
|
|
259
|
-
* @example
|
|
260
|
-
* ```tsx
|
|
261
|
-
* <Carousel.Root ariaLabel="Featured products">
|
|
262
|
-
* <Carousel.Viewport>
|
|
263
|
-
* <Carousel.Slide>...</Carousel.Slide>
|
|
264
|
-
* </Carousel.Viewport>
|
|
265
|
-
* </Carousel.Root>
|
|
266
|
-
* ```
|
|
267
|
-
*/
|
|
268
|
-
export function CarouselViewport({
|
|
269
|
-
className = "",
|
|
270
|
-
children,
|
|
271
|
-
...rest
|
|
272
|
-
}: CarouselViewportProps): ReactElement {
|
|
273
|
-
const { isAutoRotating, ids, allowMouseDrag, snapType, slidesPerPage } =
|
|
274
|
-
useCarouselContext();
|
|
275
|
-
const {
|
|
276
|
-
viewportRef,
|
|
277
|
-
onKeyDown,
|
|
278
|
-
onDragStart,
|
|
279
|
-
onPointerDown,
|
|
280
|
-
onPointerMove,
|
|
281
|
-
onPointerUp,
|
|
282
|
-
onPointerCancel,
|
|
283
|
-
onClickCapture,
|
|
284
|
-
} = useCarouselViewport();
|
|
285
|
-
// Infinite loop swaps the native scroll-snap viewport for a JS transform track
|
|
286
|
-
// (RFC 0018, clone-strip revision): the engine translates one contiguous track
|
|
287
|
-
// whose real slides are flanked by a full period of aria-hidden clones, so every
|
|
288
|
-
// seam is already-painted DOM and a settle-time re-base is invisible (no per-slide
|
|
289
|
-
// shifts, no native snap to fight — the two things that flashed on iOS). Every
|
|
290
|
-
// other mode renders the slides straight into the scroll viewport as before.
|
|
291
|
-
const { trackRef, headCloneRef, tailCloneRef, isInfinite, dragHandlers } =
|
|
292
|
-
useCarouselLoop();
|
|
293
|
-
// Infinite is transform-driven, so its own pointer engine (drag → fling) owns
|
|
294
|
-
// the pointer events; the scroll-snap modes keep useCarouselViewport's
|
|
295
|
-
// mouse-drag handlers.
|
|
296
|
-
const pointerHandlers = dragHandlers ?? {
|
|
297
|
-
onPointerDown,
|
|
298
|
-
onPointerMove,
|
|
299
|
-
onPointerUp,
|
|
300
|
-
onPointerCancel,
|
|
301
|
-
};
|
|
302
|
-
|
|
303
|
-
return (
|
|
304
|
-
<div
|
|
305
|
-
ref={viewportRef}
|
|
306
|
-
data-carousel-viewport=""
|
|
307
|
-
data-snap-type={snapType}
|
|
308
|
-
tabIndex={0}
|
|
309
|
-
className={className}
|
|
310
|
-
aria-live={isAutoRotating ? "off" : "polite"}
|
|
311
|
-
onKeyDown={onKeyDown}
|
|
312
|
-
onDragStart={onDragStart}
|
|
313
|
-
{...pointerHandlers}
|
|
314
|
-
onClickCapture={onClickCapture}
|
|
315
|
-
{...(allowMouseDrag && { "data-mouse-drag": "" })}
|
|
316
|
-
{...(ids.viewport !== undefined && { id: ids.viewport })}
|
|
317
|
-
{...rest}
|
|
318
|
-
>
|
|
319
|
-
{isInfinite ? (
|
|
320
|
-
<div
|
|
321
|
-
className="primitiv-carousel__track"
|
|
322
|
-
data-carousel-track=""
|
|
323
|
-
data-slides-per-page={slidesPerPage}
|
|
324
|
-
ref={trackRef}
|
|
325
|
-
>
|
|
326
|
-
{/* Clone buffers (a full period each side) — the engine fills these
|
|
327
|
-
display:contents holders with aria-hidden copies so the strip is
|
|
328
|
-
periodic and every seam is contiguous painted DOM. */}
|
|
329
|
-
<div
|
|
330
|
-
data-carousel-clones="head"
|
|
331
|
-
aria-hidden="true"
|
|
332
|
-
style={{ display: "contents" }}
|
|
333
|
-
ref={headCloneRef}
|
|
334
|
-
/>
|
|
335
|
-
{children}
|
|
336
|
-
<div
|
|
337
|
-
data-carousel-clones="tail"
|
|
338
|
-
aria-hidden="true"
|
|
339
|
-
style={{ display: "contents" }}
|
|
340
|
-
ref={tailCloneRef}
|
|
341
|
-
/>
|
|
342
|
-
</div>
|
|
343
|
-
) : (
|
|
344
|
-
children
|
|
345
|
-
)}
|
|
346
|
-
</div>
|
|
347
|
-
);
|
|
348
|
-
}
|
|
349
|
-
|
|
350
|
-
/** @internal */
|
|
351
|
-
CarouselViewport.displayName = "CarouselViewport";
|
|
352
|
-
|
|
353
|
-
/**
|
|
354
|
-
* An individual slide. Renders a `<div>` with `role="group"` and
|
|
355
|
-
* `aria-roledescription="slide"` per the WAI-ARIA Carousel pattern, so
|
|
356
|
-
* assistive technology announces each slide as a discrete group rather
|
|
357
|
-
* than a generic region.
|
|
358
|
-
*
|
|
359
|
-
* **Self-registration.** On mount, every slide registers itself with
|
|
360
|
-
* `Carousel.Root` via a callback ref. The Root maintains an ordered list
|
|
361
|
-
* of registered slide keys, which is how the slide knows its own
|
|
362
|
-
* zero-based `data-index` and how every slide receives the live
|
|
363
|
-
* `data-total` count. Slides may be added or removed at runtime; the
|
|
364
|
-
* indices and totals update automatically.
|
|
365
|
-
*
|
|
366
|
-
* **Auto-labelling.** Each slide is labelled `"N of M"` (e.g. `"1 of 3"`)
|
|
367
|
-
* using its live index and the live total — the format the WAI-ARIA
|
|
368
|
-
* Carousel APG example uses, and what most screen readers expect. Pass
|
|
369
|
-
* {@link CarouselSlideProps.ariaLabel | `ariaLabel`} to override the
|
|
370
|
-
* auto-label with a more meaningful description (e.g.
|
|
371
|
-
* `"Hand-picked for you"`).
|
|
372
|
-
*
|
|
373
|
-
* **Styling hooks.**
|
|
374
|
-
* - `data-carousel-slide` — CSS-targeting attribute (recommended scroll-snap
|
|
375
|
-
* recipe targets `[data-carousel-slide]`).
|
|
376
|
-
* - `data-index="N"` — the slide's zero-based position in registration order.
|
|
377
|
-
* - `data-total="N"` — the live total slide count.
|
|
378
|
-
* - `data-snap-align="start" | "center" | "end"` — present only on a page's
|
|
379
|
-
* leading slide (every slide when `slidesPerPage` is 1), valued from this
|
|
380
|
-
* slide's own {@link CarouselSlideProps.snapAlign | `snapAlign`} prop if
|
|
381
|
-
* set, else the root's resolved `snapAlign`. The registry stylesheet
|
|
382
|
-
* scopes `scroll-snap-align` to this hook, both so an interior slide of a
|
|
383
|
-
* multi-slide page is never a valid scroll-snap resting position, and so
|
|
384
|
-
* the native resting position agrees with `snapAlign` rather than always
|
|
385
|
-
* being `"start"`.
|
|
386
|
-
*
|
|
387
|
-
* Must be rendered as a descendant of `Carousel.Root`; rendering it
|
|
388
|
-
* elsewhere throws a descriptive error.
|
|
389
|
-
*
|
|
390
|
-
* @extends HTMLDivElement
|
|
391
|
-
*
|
|
392
|
-
* @example Auto-labelled
|
|
393
|
-
* ```tsx
|
|
394
|
-
* <Carousel.Viewport>
|
|
395
|
-
* <Carousel.Slide>First slide</Carousel.Slide>
|
|
396
|
-
* <Carousel.Slide>Second slide</Carousel.Slide>
|
|
397
|
-
* </Carousel.Viewport>
|
|
398
|
-
* ```
|
|
399
|
-
*
|
|
400
|
-
* @example Override the auto-label
|
|
401
|
-
* ```tsx
|
|
402
|
-
* <Carousel.Slide ariaLabel="Hand-picked for you">...</Carousel.Slide>
|
|
403
|
-
* ```
|
|
404
|
-
*
|
|
405
|
-
* @example Per-slide snap alignment (overrides the root default)
|
|
406
|
-
* ```tsx
|
|
407
|
-
* <Carousel.Slide snapAlign="end">...</Carousel.Slide>
|
|
408
|
-
* ```
|
|
409
|
-
*/
|
|
410
|
-
export function CarouselSlide({
|
|
411
|
-
className = "",
|
|
412
|
-
ariaLabel,
|
|
413
|
-
snapAlign: snapAlignOverride,
|
|
414
|
-
children,
|
|
415
|
-
...rest
|
|
416
|
-
}: CarouselSlideProps): ReactElement {
|
|
417
|
-
const { slideRef, index, total, state, snapAlign } =
|
|
418
|
-
useCarouselSlide(snapAlignOverride);
|
|
419
|
-
const { translations } = useCarouselContext();
|
|
420
|
-
|
|
421
|
-
const autoLabel =
|
|
422
|
-
index >= 0 && total > 0
|
|
423
|
-
? translations.slideLabel({ index: index + 1, total })
|
|
424
|
-
: undefined;
|
|
425
|
-
const label = ariaLabel ?? autoLabel;
|
|
426
|
-
|
|
427
|
-
return (
|
|
428
|
-
<div
|
|
429
|
-
ref={slideRef}
|
|
430
|
-
role="group"
|
|
431
|
-
aria-roledescription="slide"
|
|
432
|
-
data-carousel-slide=""
|
|
433
|
-
data-index={index}
|
|
434
|
-
data-total={total}
|
|
435
|
-
data-state={state}
|
|
436
|
-
className={className}
|
|
437
|
-
{...(label !== undefined && { "aria-label": label })}
|
|
438
|
-
{...(snapAlign !== undefined && { "data-snap-align": snapAlign })}
|
|
439
|
-
{...rest}
|
|
440
|
-
>
|
|
441
|
-
{children}
|
|
442
|
-
</div>
|
|
443
|
-
);
|
|
444
|
-
}
|
|
445
|
-
|
|
446
|
-
/** @internal */
|
|
447
|
-
CarouselSlide.displayName = "CarouselSlide";
|
|
448
|
-
|
|
449
|
-
/**
|
|
450
|
-
* Advances the active page by one. Renders as
|
|
451
|
-
* `<button type="button">` and dispatches the consumer's `onClick`
|
|
452
|
-
* before invoking the navigation, so analytics handlers and similar
|
|
453
|
-
* still fire when the user advances the carousel.
|
|
454
|
-
*
|
|
455
|
-
* **Boundary clamping.** The trigger is `disabled` once the active page
|
|
456
|
-
* reaches the last slide; the click is also a no-op at boundaries
|
|
457
|
-
* because `next()` short-circuits when there's nowhere to go. The
|
|
458
|
-
* button is always disabled when there are zero or one slides
|
|
459
|
-
* registered. Consumer-supplied `disabled={true}` is also honoured (it
|
|
460
|
-
* OR's with the boundary check).
|
|
461
|
-
*
|
|
462
|
-
* Must be rendered as a descendant of `Carousel.Root`; rendering it
|
|
463
|
-
* elsewhere throws a descriptive error.
|
|
464
|
-
*
|
|
465
|
-
* @extends HTMLButtonElement
|
|
466
|
-
*
|
|
467
|
-
* @example
|
|
468
|
-
* ```tsx
|
|
469
|
-
* <Carousel.NextTrigger>Next</Carousel.NextTrigger>
|
|
470
|
-
* ```
|
|
471
|
-
*/
|
|
472
|
-
export function CarouselNextTrigger({
|
|
473
|
-
className = "",
|
|
474
|
-
onClick,
|
|
475
|
-
disabled,
|
|
476
|
-
asChild = false,
|
|
477
|
-
children,
|
|
478
|
-
...rest
|
|
479
|
-
}: CarouselNextTriggerProps): ReactElement {
|
|
480
|
-
const { next, canGoNext, ids } = useCarouselContext();
|
|
481
|
-
const isDisabled = disabled === true || !canGoNext;
|
|
482
|
-
|
|
483
|
-
const handleClick = useCallback(
|
|
484
|
-
(event: MouseEvent<HTMLButtonElement>) => {
|
|
485
|
-
onClick?.(event);
|
|
486
|
-
// Guard runs in addition to the HTML disabled attribute on the
|
|
487
|
-
// default <button> path. With asChild on a non-button element
|
|
488
|
-
// there's no native disabled to block the click, so this is the
|
|
489
|
-
// only barrier.
|
|
490
|
-
if (isDisabled) return;
|
|
491
|
-
next();
|
|
492
|
-
},
|
|
493
|
-
[next, onClick, isDisabled],
|
|
494
|
-
);
|
|
495
|
-
|
|
496
|
-
const triggerProps = {
|
|
497
|
-
className,
|
|
498
|
-
onClick: handleClick,
|
|
499
|
-
disabled: isDisabled,
|
|
500
|
-
"aria-disabled": isDisabled,
|
|
501
|
-
...(ids.nextTrigger !== undefined && { id: ids.nextTrigger }),
|
|
502
|
-
...rest,
|
|
503
|
-
};
|
|
504
|
-
|
|
505
|
-
if (asChild) {
|
|
506
|
-
return <Slot {...triggerProps}>{children}</Slot>;
|
|
507
|
-
}
|
|
508
|
-
|
|
509
|
-
return (
|
|
510
|
-
<button type="button" {...triggerProps}>
|
|
511
|
-
{children}
|
|
512
|
-
</button>
|
|
513
|
-
);
|
|
514
|
-
}
|
|
515
|
-
|
|
516
|
-
/** @internal */
|
|
517
|
-
CarouselNextTrigger.displayName = "CarouselNextTrigger";
|
|
518
|
-
|
|
519
|
-
/**
|
|
520
|
-
* Retreats the active page by one. Renders as
|
|
521
|
-
* `<button type="button">` and dispatches the consumer's `onClick`
|
|
522
|
-
* before invoking the navigation, so analytics handlers and similar
|
|
523
|
-
* still fire when the user retreats the carousel.
|
|
524
|
-
*
|
|
525
|
-
* **Boundary clamping.** The trigger is `disabled` while the active
|
|
526
|
-
* page is the first slide; the click is also a no-op at boundaries
|
|
527
|
-
* because `previous()` short-circuits when there's nowhere to go. The
|
|
528
|
-
* button is always disabled when there are zero or one slides
|
|
529
|
-
* registered. Consumer-supplied `disabled={true}` is also honoured.
|
|
530
|
-
*
|
|
531
|
-
* Must be rendered as a descendant of `Carousel.Root`; rendering it
|
|
532
|
-
* elsewhere throws a descriptive error.
|
|
533
|
-
*
|
|
534
|
-
* @extends HTMLButtonElement
|
|
535
|
-
*
|
|
536
|
-
* @example
|
|
537
|
-
* ```tsx
|
|
538
|
-
* <Carousel.PreviousTrigger>Previous</Carousel.PreviousTrigger>
|
|
539
|
-
* ```
|
|
540
|
-
*/
|
|
541
|
-
export function CarouselPreviousTrigger({
|
|
542
|
-
className = "",
|
|
543
|
-
onClick,
|
|
544
|
-
disabled,
|
|
545
|
-
asChild = false,
|
|
546
|
-
children,
|
|
547
|
-
...rest
|
|
548
|
-
}: CarouselPreviousTriggerProps): ReactElement {
|
|
549
|
-
const { previous, canGoPrevious, ids } = useCarouselContext();
|
|
550
|
-
const isDisabled = disabled === true || !canGoPrevious;
|
|
551
|
-
|
|
552
|
-
const handleClick = useCallback(
|
|
553
|
-
(event: MouseEvent<HTMLButtonElement>) => {
|
|
554
|
-
onClick?.(event);
|
|
555
|
-
if (isDisabled) return;
|
|
556
|
-
previous();
|
|
557
|
-
},
|
|
558
|
-
[previous, onClick, isDisabled],
|
|
559
|
-
);
|
|
560
|
-
|
|
561
|
-
const triggerProps = {
|
|
562
|
-
className,
|
|
563
|
-
onClick: handleClick,
|
|
564
|
-
disabled: isDisabled,
|
|
565
|
-
"aria-disabled": isDisabled,
|
|
566
|
-
...(ids.previousTrigger !== undefined && { id: ids.previousTrigger }),
|
|
567
|
-
...rest,
|
|
568
|
-
};
|
|
569
|
-
|
|
570
|
-
if (asChild) {
|
|
571
|
-
return <Slot {...triggerProps}>{children}</Slot>;
|
|
572
|
-
}
|
|
573
|
-
|
|
574
|
-
return (
|
|
575
|
-
<button type="button" {...triggerProps}>
|
|
576
|
-
{children}
|
|
577
|
-
</button>
|
|
578
|
-
);
|
|
579
|
-
}
|
|
580
|
-
|
|
581
|
-
/** @internal */
|
|
582
|
-
CarouselPreviousTrigger.displayName = "CarouselPreviousTrigger";
|
|
583
|
-
|
|
584
|
-
/**
|
|
585
|
-
* A `<div role="group">` wrapping consumer-mapped `Carousel.Indicator`
|
|
586
|
-
* dots. Use this when you want manual control over how the dots are
|
|
587
|
-
* rendered (e.g. mixing custom content into each one). For the common
|
|
588
|
-
* case of one auto-rendered dot per page, prefer `Carousel.Indicators`.
|
|
589
|
-
*
|
|
590
|
-
* Every group must have an accessible name. Pass exactly one of:
|
|
591
|
-
*
|
|
592
|
-
* - `label` — a short human-readable description of the picker (e.g.
|
|
593
|
-
* `"Choose slide"`).
|
|
594
|
-
* - `ariaLabelledBy` — the `id` of an existing heading or label element.
|
|
595
|
-
*
|
|
596
|
-
* The discriminated union on the props type rejects both-or-neither at
|
|
597
|
-
* compile time.
|
|
598
|
-
*
|
|
599
|
-
* Must be rendered as a descendant of `Carousel.Root`; rendering it
|
|
600
|
-
* elsewhere throws a descriptive error.
|
|
601
|
-
*
|
|
602
|
-
* @extends HTMLDivElement
|
|
603
|
-
*
|
|
604
|
-
* @example
|
|
605
|
-
* ```tsx
|
|
606
|
-
* <Carousel.IndicatorGroup label="Choose slide">
|
|
607
|
-
* <Carousel.Indicator index={0} />
|
|
608
|
-
* <Carousel.Indicator index={1} />
|
|
609
|
-
* <Carousel.Indicator index={2} />
|
|
610
|
-
* </Carousel.IndicatorGroup>
|
|
611
|
-
* ```
|
|
612
|
-
*/
|
|
613
|
-
export function CarouselIndicatorGroup({
|
|
614
|
-
className = "",
|
|
615
|
-
label,
|
|
616
|
-
ariaLabelledBy,
|
|
617
|
-
children,
|
|
618
|
-
...rest
|
|
619
|
-
}: CarouselIndicatorGroupProps): ReactElement {
|
|
620
|
-
const { ids } = useCarouselContext();
|
|
621
|
-
|
|
622
|
-
return (
|
|
623
|
-
<div
|
|
624
|
-
role="group"
|
|
625
|
-
className={className}
|
|
626
|
-
{...(label !== undefined && { "aria-label": label })}
|
|
627
|
-
{...(ariaLabelledBy !== undefined && {
|
|
628
|
-
"aria-labelledby": ariaLabelledBy,
|
|
629
|
-
})}
|
|
630
|
-
{...(ids.indicatorGroup !== undefined && { id: ids.indicatorGroup })}
|
|
631
|
-
{...rest}
|
|
632
|
-
>
|
|
633
|
-
{children}
|
|
634
|
-
</div>
|
|
635
|
-
);
|
|
636
|
-
}
|
|
637
|
-
|
|
638
|
-
/** @internal */
|
|
639
|
-
CarouselIndicatorGroup.displayName = "CarouselIndicatorGroup";
|
|
640
|
-
|
|
641
|
-
/**
|
|
642
|
-
* An individual indicator dot — a `<button>` that jumps to the page at
|
|
643
|
-
* `index` (zero-based) when clicked. Auto-labelled `"Slide N"` (where
|
|
644
|
-
* `N = index + 1`) so the page-position is announced to assistive tech.
|
|
645
|
-
*
|
|
646
|
-
* **Active-state ARIA.** The indicator at `currentPage` carries
|
|
647
|
-
* `aria-disabled="true"` per the WAI-ARIA Carousel APG — a soft disable
|
|
648
|
-
* that tells screen readers "you're already on this slide" without
|
|
649
|
-
* removing it from the focus order. Non-active indicators carry
|
|
650
|
-
* `aria-disabled="false"`. Both states also flip `data-state` between
|
|
651
|
-
* `"active"` and `"inactive"` so consumer CSS can paint the active dot.
|
|
652
|
-
*
|
|
653
|
-
* **`readOnly`.** When `true`, the indicator becomes a presentational-only
|
|
654
|
-
* progress dot instead of a navigation control: it renders a `<span>` (no
|
|
655
|
-
* button semantics), carries `aria-hidden="true"` (it's decorative, not
|
|
656
|
-
* announced), and clicking it no longer calls `goTo` — for a carousel whose
|
|
657
|
-
* only navigation is e.g. `allowMouseDrag`, where clickable dots would be a
|
|
658
|
-
* redundant/misleading control. It still tracks `data-state`, so CSS-driven
|
|
659
|
-
* progress display keeps working, and the consumer's own `onClick` (if
|
|
660
|
-
* passed) still fires — only the internal navigation is suppressed.
|
|
661
|
-
*
|
|
662
|
-
* **Styling hooks.**
|
|
663
|
-
* - `data-carousel-indicator` — CSS-targeting attribute.
|
|
664
|
-
* - `data-state="active" | "inactive"` — tracks the current page.
|
|
665
|
-
*
|
|
666
|
-
* Must be rendered as a descendant of `Carousel.Root`; rendering it
|
|
667
|
-
* elsewhere throws a descriptive error.
|
|
668
|
-
*
|
|
669
|
-
* @extends HTMLButtonElement
|
|
670
|
-
*
|
|
671
|
-
* @example
|
|
672
|
-
* ```tsx
|
|
673
|
-
* <Carousel.Indicator index={0} />
|
|
674
|
-
* <Carousel.Indicator index={0} readOnly />
|
|
675
|
-
* ```
|
|
676
|
-
*/
|
|
677
|
-
export function CarouselIndicator({
|
|
678
|
-
className = "",
|
|
679
|
-
index,
|
|
680
|
-
onClick,
|
|
681
|
-
readOnly = false,
|
|
682
|
-
asChild = false,
|
|
683
|
-
children,
|
|
684
|
-
...rest
|
|
685
|
-
}: CarouselIndicatorProps): ReactElement {
|
|
686
|
-
const { goTo, currentPage, translations } = useCarouselContext();
|
|
687
|
-
const isActive = index === currentPage;
|
|
688
|
-
|
|
689
|
-
const handleClick = useCallback(
|
|
690
|
-
(event: MouseEvent<HTMLButtonElement>) => {
|
|
691
|
-
onClick?.(event);
|
|
692
|
-
if (!readOnly) goTo(index);
|
|
693
|
-
},
|
|
694
|
-
[goTo, index, onClick, readOnly],
|
|
695
|
-
);
|
|
696
|
-
|
|
697
|
-
const indicatorProps = {
|
|
698
|
-
className,
|
|
699
|
-
"data-carousel-indicator": "",
|
|
700
|
-
"data-state": isActive ? "active" : "inactive",
|
|
701
|
-
onClick: handleClick,
|
|
702
|
-
...(readOnly
|
|
703
|
-
? { "aria-hidden": true }
|
|
704
|
-
: {
|
|
705
|
-
"aria-label": translations.indicatorLabel({ index: index + 1 }),
|
|
706
|
-
"aria-disabled": isActive,
|
|
707
|
-
}),
|
|
708
|
-
...rest,
|
|
709
|
-
};
|
|
710
|
-
|
|
711
|
-
if (asChild) {
|
|
712
|
-
return <Slot {...indicatorProps}>{children}</Slot>;
|
|
713
|
-
}
|
|
714
|
-
|
|
715
|
-
if (readOnly) {
|
|
716
|
-
return <span {...indicatorProps}>{children}</span>;
|
|
717
|
-
}
|
|
718
|
-
|
|
719
|
-
return (
|
|
720
|
-
<button type="button" {...indicatorProps}>
|
|
721
|
-
{children}
|
|
722
|
-
</button>
|
|
723
|
-
);
|
|
724
|
-
}
|
|
725
|
-
|
|
726
|
-
/** @internal */
|
|
727
|
-
CarouselIndicator.displayName = "CarouselIndicator";
|
|
728
|
-
|
|
729
|
-
/**
|
|
730
|
-
* Convenience wrapper that auto-renders one `Carousel.Indicator` per
|
|
731
|
-
* registered slide — the "dots between Prev and Next" you'd reach for
|
|
732
|
-
* in 90% of carousels. Internally renders a `Carousel.IndicatorGroup`
|
|
733
|
-
* containing one `Carousel.Indicator` per entry in the slide-key list,
|
|
734
|
-
* keyed by the slide's stable `useId` so React doesn't shuffle the
|
|
735
|
-
* dots when slides mount or unmount in the middle of the range.
|
|
736
|
-
*
|
|
737
|
-
* For full control over indicator content (e.g. dots that show
|
|
738
|
-
* thumbnail previews on hover), drop down to
|
|
739
|
-
* `Carousel.IndicatorGroup` + `Carousel.Indicator` instead.
|
|
740
|
-
*
|
|
741
|
-
* `readOnly` forwards to every generated indicator — see
|
|
742
|
-
* `Carousel.Indicator`'s own `readOnly` doc.
|
|
743
|
-
*
|
|
744
|
-
* Must be rendered as a descendant of `Carousel.Root`; rendering it
|
|
745
|
-
* elsewhere throws a descriptive error.
|
|
746
|
-
*
|
|
747
|
-
* @extends HTMLDivElement
|
|
748
|
-
*
|
|
749
|
-
* @example
|
|
750
|
-
* ```tsx
|
|
751
|
-
* <Carousel.Indicators label="Choose slide" />
|
|
752
|
-
* <Carousel.Indicators label="Progress" readOnly />
|
|
753
|
-
* ```
|
|
754
|
-
*/
|
|
755
|
-
export function CarouselIndicators({
|
|
756
|
-
readOnly,
|
|
757
|
-
...props
|
|
758
|
-
}: CarouselIndicatorsProps): ReactElement {
|
|
759
|
-
const { totalPages } = useCarouselContext();
|
|
760
|
-
|
|
761
|
-
return (
|
|
762
|
-
<CarouselIndicatorGroup {...props}>
|
|
763
|
-
{Array.from({ length: totalPages }, (_, index) => (
|
|
764
|
-
<CarouselIndicator key={index} index={index} readOnly={readOnly} />
|
|
765
|
-
))}
|
|
766
|
-
</CarouselIndicatorGroup>
|
|
767
|
-
);
|
|
768
|
-
}
|
|
769
|
-
|
|
770
|
-
/** @internal */
|
|
771
|
-
CarouselIndicators.displayName = "CarouselIndicators";
|
|
772
|
-
|
|
773
|
-
/**
|
|
774
|
-
* A `<button>` that toggles the carousel's `playing` flag. Renders the
|
|
775
|
-
* accessible name dictated by the WAI-ARIA Carousel APG by default —
|
|
776
|
-
* `"Start automatic slide show"` when paused, `"Stop automatic slide
|
|
777
|
-
* show"` when playing — and exposes the live `playing` flag both as a
|
|
778
|
-
* `data-state="playing" | "paused"` styling hook and to a function
|
|
779
|
-
* `children` render prop, so consumers can swap icons or labels per
|
|
780
|
-
* state without re-implementing the toggle:
|
|
781
|
-
*
|
|
782
|
-
* ```tsx
|
|
783
|
-
* <Carousel.PlayPauseTrigger>
|
|
784
|
-
* {({ playing }) => (playing ? <PauseIcon /> : <PlayIcon />)}
|
|
785
|
-
* </Carousel.PlayPauseTrigger>
|
|
786
|
-
* ```
|
|
787
|
-
*
|
|
788
|
-
* Static children also work — useful when you want a single icon and
|
|
789
|
-
* style it via `[data-state]` selectors.
|
|
790
|
-
*
|
|
791
|
-
* Requires autoplay to be enabled on `Carousel.Root` — a control that
|
|
792
|
-
* toggled a non-existent slideshow would be misleading, so rendering
|
|
793
|
-
* this trigger without an `autoplay` prop on the Root throws a
|
|
794
|
-
* descriptive error. Toggling `playing` to `true` starts the timer that
|
|
795
|
-
* advances the page on each tick (see {@link CarouselAutoplay}).
|
|
796
|
-
*
|
|
797
|
-
* Must be rendered as a descendant of `Carousel.Root`; rendering it
|
|
798
|
-
* elsewhere throws a descriptive error.
|
|
799
|
-
*
|
|
800
|
-
* @extends HTMLButtonElement
|
|
801
|
-
*
|
|
802
|
-
* @example State-aware render prop
|
|
803
|
-
* ```tsx
|
|
804
|
-
* <Carousel.PlayPauseTrigger>
|
|
805
|
-
* {({ playing }) => (playing ? "Pause" : "Play")}
|
|
806
|
-
* </Carousel.PlayPauseTrigger>
|
|
807
|
-
* ```
|
|
808
|
-
*/
|
|
809
|
-
export function CarouselPlayPauseTrigger({
|
|
810
|
-
className = "",
|
|
811
|
-
onClick,
|
|
812
|
-
asChild = false,
|
|
813
|
-
children,
|
|
814
|
-
...rest
|
|
815
|
-
}: CarouselPlayPauseTriggerProps): ReactElement {
|
|
816
|
-
const { playing, togglePlaying, translations, ids, autoplayEnabled } =
|
|
817
|
-
useCarouselContext();
|
|
818
|
-
|
|
819
|
-
if (!autoplayEnabled) {
|
|
820
|
-
throw new Error(
|
|
821
|
-
"Carousel.PlayPauseTrigger requires autoplay to be enabled on Carousel.Root",
|
|
822
|
-
);
|
|
823
|
-
}
|
|
824
|
-
|
|
825
|
-
const handleClick = useCallback(
|
|
826
|
-
(event: MouseEvent<HTMLButtonElement>) => {
|
|
827
|
-
onClick?.(event);
|
|
828
|
-
togglePlaying();
|
|
829
|
-
},
|
|
830
|
-
[onClick, togglePlaying],
|
|
831
|
-
);
|
|
832
|
-
|
|
833
|
-
const renderedChildren =
|
|
834
|
-
typeof children === "function" ? children({ playing }) : children;
|
|
835
|
-
|
|
836
|
-
const triggerProps = {
|
|
837
|
-
className,
|
|
838
|
-
"aria-label": playing
|
|
839
|
-
? translations.stopSlideshow
|
|
840
|
-
: translations.startSlideshow,
|
|
841
|
-
"data-state": playing ? "playing" : "paused",
|
|
842
|
-
onClick: handleClick,
|
|
843
|
-
...(ids.playPauseTrigger !== undefined && { id: ids.playPauseTrigger }),
|
|
844
|
-
...rest,
|
|
845
|
-
};
|
|
846
|
-
|
|
847
|
-
if (asChild) {
|
|
848
|
-
return <Slot {...triggerProps}>{renderedChildren}</Slot>;
|
|
849
|
-
}
|
|
850
|
-
|
|
851
|
-
return (
|
|
852
|
-
<button type="button" {...triggerProps}>
|
|
853
|
-
{renderedChildren}
|
|
854
|
-
</button>
|
|
855
|
-
);
|
|
856
|
-
}
|
|
857
|
-
|
|
858
|
-
/** @internal */
|
|
859
|
-
CarouselPlayPauseTrigger.displayName = "CarouselPlayPauseTrigger";
|
|
860
|
-
|
|
861
|
-
/**
|
|
862
|
-
* A `<span>` rendering the live active-page progress as text — `"1 of
|
|
863
|
-
* 3"` by default, via `translations.progressText`. Closes the gap
|
|
864
|
-
* between the imperative `getProgress()` data and an actual DOM node a
|
|
865
|
-
* consumer can drop in without wiring the announcement themselves.
|
|
866
|
-
*
|
|
867
|
-
* ```tsx
|
|
868
|
-
* <Carousel.ProgressText />
|
|
869
|
-
* ```
|
|
870
|
-
*
|
|
871
|
-
* Pass `children` to render custom content instead of the default
|
|
872
|
-
* translated text (e.g. an icon alongside the count) — the computed
|
|
873
|
-
* text is only used as a fallback.
|
|
874
|
-
*
|
|
875
|
-
* Must be rendered as a descendant of `Carousel.Root`; rendering it
|
|
876
|
-
* elsewhere throws a descriptive error (via the shared Carousel
|
|
877
|
-
* context guard).
|
|
878
|
-
*
|
|
879
|
-
* @extends HTMLSpanElement
|
|
880
|
-
*
|
|
881
|
-
* @example
|
|
882
|
-
* ```tsx
|
|
883
|
-
* <Carousel.ProgressText />
|
|
884
|
-
* ```
|
|
885
|
-
*/
|
|
886
|
-
export function CarouselProgressText({
|
|
887
|
-
children,
|
|
888
|
-
...rest
|
|
889
|
-
}: CarouselProgressTextProps): ReactElement {
|
|
890
|
-
const { currentPage, totalPages, translations } = useCarouselContext();
|
|
891
|
-
|
|
892
|
-
return (
|
|
893
|
-
<span {...rest}>
|
|
894
|
-
{children ??
|
|
895
|
-
translations.progressText({ page: currentPage, totalPages })}
|
|
896
|
-
</span>
|
|
897
|
-
);
|
|
898
|
-
}
|
|
899
|
-
|
|
900
|
-
/** @internal */
|
|
901
|
-
CarouselProgressText.displayName = "CarouselProgressText";
|
|
902
|
-
|
|
903
|
-
/** Static-property shape of the compound {@link Carousel} export: the callable {@link CarouselRoot} plus its namespaced sub-components. */
|
|
904
|
-
type CarouselCompound = typeof CarouselRoot & {
|
|
905
|
-
Root: typeof CarouselRoot;
|
|
906
|
-
Viewport: typeof CarouselViewport;
|
|
907
|
-
Slide: typeof CarouselSlide;
|
|
908
|
-
NextTrigger: typeof CarouselNextTrigger;
|
|
909
|
-
PreviousTrigger: typeof CarouselPreviousTrigger;
|
|
910
|
-
IndicatorGroup: typeof CarouselIndicatorGroup;
|
|
911
|
-
Indicator: typeof CarouselIndicator;
|
|
912
|
-
Indicators: typeof CarouselIndicators;
|
|
913
|
-
PlayPauseTrigger: typeof CarouselPlayPauseTrigger;
|
|
914
|
-
ProgressText: typeof CarouselProgressText;
|
|
915
|
-
};
|
|
916
|
-
|
|
917
|
-
/**
|
|
918
|
-
* Headless, accessible **Carousel** — a compound component implementing the
|
|
919
|
-
* WAI-ARIA Carousel pattern with zero styles.
|
|
920
|
-
*
|
|
921
|
-
* `Carousel` is both callable (it's an alias of {@link CarouselRoot |
|
|
922
|
-
* `Carousel.Root`}) and carries its sub-components as static properties.
|
|
923
|
-
* Prefer the namespaced form in application code for readability:
|
|
924
|
-
*
|
|
925
|
-
* - {@link CarouselRoot | `Carousel.Root`} — the labelled `<section>`
|
|
926
|
-
* that wraps the entire widget.
|
|
927
|
-
* - {@link CarouselViewport | `Carousel.Viewport`} — the slide
|
|
928
|
-
* container that the recommended scroll-snap CSS targets.
|
|
929
|
-
* - {@link CarouselSlide | `Carousel.Slide`} — an individual slide,
|
|
930
|
-
* self-registering with the Root for live index / total tracking.
|
|
931
|
-
* - {@link CarouselNextTrigger | `Carousel.NextTrigger`} — advances
|
|
932
|
-
* the active page by one.
|
|
933
|
-
* - {@link CarouselPreviousTrigger | `Carousel.PreviousTrigger`} —
|
|
934
|
-
* retreats the active page by one.
|
|
935
|
-
* - {@link CarouselIndicatorGroup | `Carousel.IndicatorGroup`} — a
|
|
936
|
-
* labelled `<div role="group">` for consumer-mapped dot indicators.
|
|
937
|
-
* - {@link CarouselIndicator | `Carousel.Indicator`} — an individual
|
|
938
|
-
* `<button>` that jumps to a target page when clicked.
|
|
939
|
-
* - {@link CarouselIndicators | `Carousel.Indicators`} — convenience
|
|
940
|
-
* wrapper that auto-renders one indicator per registered slide.
|
|
941
|
-
*
|
|
942
|
-
* @example
|
|
943
|
-
* ```tsx
|
|
944
|
-
* import { Carousel } from "@primitiv-ui/react";
|
|
945
|
-
*
|
|
946
|
-
* <Carousel.Root ariaLabel="Featured products">
|
|
947
|
-
* <Carousel.Viewport>
|
|
948
|
-
* <Carousel.Slide>First</Carousel.Slide>
|
|
949
|
-
* <Carousel.Slide>Second</Carousel.Slide>
|
|
950
|
-
* </Carousel.Viewport>
|
|
951
|
-
* <Carousel.PreviousTrigger>Previous</Carousel.PreviousTrigger>
|
|
952
|
-
* <Carousel.Indicators label="Choose slide" />
|
|
953
|
-
* <Carousel.NextTrigger>Next</Carousel.NextTrigger>
|
|
954
|
-
* </Carousel.Root>
|
|
955
|
-
* ```
|
|
956
|
-
*/
|
|
957
|
-
const CarouselCompound: CarouselCompound = Object.assign(CarouselRoot, {
|
|
958
|
-
Root: CarouselRoot,
|
|
959
|
-
Viewport: CarouselViewport,
|
|
960
|
-
Slide: CarouselSlide,
|
|
961
|
-
NextTrigger: CarouselNextTrigger,
|
|
962
|
-
PreviousTrigger: CarouselPreviousTrigger,
|
|
963
|
-
IndicatorGroup: CarouselIndicatorGroup,
|
|
964
|
-
Indicator: CarouselIndicator,
|
|
965
|
-
Indicators: CarouselIndicators,
|
|
966
|
-
PlayPauseTrigger: CarouselPlayPauseTrigger,
|
|
967
|
-
ProgressText: CarouselProgressText,
|
|
968
|
-
});
|
|
969
|
-
|
|
970
|
-
CarouselCompound.displayName = "Carousel";
|
|
971
|
-
|
|
972
|
-
export { CarouselCompound as Carousel };
|