@digdir/designsystemet-react 1.0.0-next.17 → 1.0.0-next.33
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/components/Accordion/Accordion.js +15 -0
- package/dist/cjs/components/Accordion/AccordionContent.js +2 -11
- package/dist/cjs/components/Accordion/AccordionHeading.js +5 -17
- package/dist/cjs/components/Accordion/AccordionItem.js +61 -16
- package/dist/cjs/components/Accordion/index.js +4 -7
- package/dist/cjs/components/Alert/Alert.js +3 -18
- package/dist/cjs/components/Avatar/Avatar.js +36 -0
- package/dist/cjs/components/Badge/Badge.js +6 -1
- package/dist/cjs/components/Button/Button.js +6 -3
- package/dist/cjs/components/Card/Card.js +1 -1
- package/dist/cjs/components/Divider/Divider.js +5 -4
- package/dist/cjs/components/DropdownMenu/DropdownMenuContent.js +3 -22
- package/dist/cjs/components/DropdownMenu/DropdownMenuGroup.js +1 -1
- package/dist/cjs/components/DropdownMenu/DropdownMenuItem.js +1 -1
- package/dist/cjs/components/ErrorSummary/ErrorSummaryHeading.js +11 -7
- package/dist/cjs/components/ErrorSummary/ErrorSummaryItem.js +4 -4
- package/dist/cjs/components/ErrorSummary/ErrorSummaryList.js +7 -5
- package/dist/cjs/components/ErrorSummary/ErrorSummaryRoot.js +4 -4
- package/dist/cjs/components/ErrorSummary/index.js +2 -2
- package/dist/cjs/components/HelpText/HelpText.js +6 -4
- package/dist/cjs/components/Link/Link.js +2 -2
- package/dist/cjs/components/List/ListItem.js +2 -4
- package/dist/cjs/components/List/Lists.js +10 -13
- package/dist/cjs/components/List/index.js +7 -14
- package/dist/cjs/components/Modal/ModalHeader.js +1 -1
- package/dist/cjs/components/Pagination/Pagination.js +3 -17
- package/dist/cjs/components/Pagination/PaginationButton.js +2 -3
- package/dist/cjs/components/Pagination/PaginationEllipsis.js +1 -2
- package/dist/cjs/components/Pagination/PaginationItem.js +1 -2
- package/dist/cjs/components/Pagination/{PaginationContent.js → PaginationList.js} +4 -5
- package/dist/cjs/components/Pagination/PaginationNextPrev.js +4 -6
- package/dist/cjs/components/Pagination/PaginationRoot.js +2 -3
- package/dist/cjs/components/Pagination/index.js +4 -4
- package/dist/cjs/components/Popover/Popover.js +94 -0
- package/dist/cjs/components/Popover/PopoverContext.js +16 -0
- package/dist/cjs/components/Popover/PopoverTrigger.js +4 -13
- package/dist/cjs/components/Popover/index.js +6 -9
- package/dist/cjs/components/Table/Table.js +2 -22
- package/dist/cjs/components/Table/TableBody.js +2 -22
- package/dist/cjs/components/Table/TableCell.js +2 -23
- package/dist/cjs/components/Table/TableHead.js +2 -23
- package/dist/cjs/components/Table/TableHeaderCell.js +2 -29
- package/dist/cjs/components/Table/TableRow.js +2 -23
- package/dist/cjs/components/Tag/Tag.js +2 -3
- package/dist/cjs/components/ToggleGroup/ToggleGroupItem/ToggleGroupItem.js +3 -5
- package/dist/cjs/components/Tooltip/Tooltip.js +6 -25
- package/dist/cjs/components/Typography/Heading/Heading.js +2 -2
- package/dist/cjs/components/form/Combobox/Combobox.js +2 -3
- package/dist/cjs/components/form/Combobox/internal/ComboboxInput.js +1 -2
- package/dist/cjs/components/form/Combobox/useFloatingCombobox.js +1 -1
- package/dist/cjs/components/form/Select/Select.js +20 -0
- package/dist/cjs/components/form/Select/SelectOptgroup.js +13 -0
- package/dist/cjs/components/form/Select/SelectOption.js +13 -0
- package/dist/cjs/components/form/Select/index.js +16 -0
- package/dist/cjs/components/form/Select/useSelect.js +49 -0
- package/dist/cjs/components/{Skeleton → loaders/Skeleton}/Circle/Circle.js +2 -2
- package/dist/cjs/components/{Skeleton → loaders/Skeleton}/Rectangle/Rectangle.js +2 -2
- package/dist/cjs/components/{Skeleton → loaders/Skeleton}/Text/Text.js +2 -2
- package/dist/cjs/components/loaders/Spinner/Spinner.js +16 -0
- package/dist/cjs/index.js +56 -60
- package/dist/cjs/node_modules/@floating-ui/dom/dist/floating-ui.dom.js +7 -23
- package/dist/cjs/node_modules/@floating-ui/dom/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js +164 -0
- package/dist/cjs/node_modules/@floating-ui/dom/node_modules/@floating-ui/utils/dist/floating-ui.utils.js +22 -0
- package/dist/cjs/node_modules/@floating-ui/react/dist/floating-ui.react.js +85 -56
- package/dist/cjs/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.js +1 -1
- package/dist/cjs/node_modules/@floating-ui/react-dom/node_modules/@floating-ui/dom/dist/floating-ui.dom.js +677 -0
- package/dist/cjs/node_modules/@tanstack/virtual-core/dist/esm/index.js +57 -65
- package/dist/cjs/node_modules/@u-elements/u-details/dist/u-details.js +117 -0
- package/dist/cjs/utilities/hooks/useSynchronizedAnimation/useSynchronizedAnimation.js +4 -2
- package/dist/esm/components/Accordion/Accordion.js +13 -0
- package/dist/esm/components/Accordion/AccordionContent.js +3 -12
- package/dist/esm/components/Accordion/AccordionHeading.js +7 -19
- package/dist/esm/components/Accordion/AccordionItem.js +63 -17
- package/dist/esm/components/Accordion/index.js +5 -7
- package/dist/esm/components/Alert/Alert.js +4 -19
- package/dist/esm/components/Avatar/Avatar.js +34 -0
- package/dist/esm/components/Badge/Badge.js +6 -1
- package/dist/esm/components/Button/Button.js +8 -5
- package/dist/esm/components/Card/Card.js +1 -1
- package/dist/esm/components/Divider/Divider.js +5 -4
- package/dist/esm/components/DropdownMenu/DropdownMenuContent.js +4 -5
- package/dist/esm/components/DropdownMenu/DropdownMenuGroup.js +1 -1
- package/dist/esm/components/DropdownMenu/DropdownMenuItem.js +1 -1
- package/dist/esm/components/ErrorSummary/ErrorSummaryHeading.js +12 -8
- package/dist/esm/components/ErrorSummary/ErrorSummaryItem.js +4 -4
- package/dist/esm/components/ErrorSummary/ErrorSummaryList.js +7 -5
- package/dist/esm/components/ErrorSummary/ErrorSummaryRoot.js +4 -4
- package/dist/esm/components/ErrorSummary/index.js +1 -1
- package/dist/esm/components/HelpText/HelpText.js +8 -6
- package/dist/esm/components/Link/Link.js +2 -2
- package/dist/esm/components/List/ListItem.js +2 -4
- package/dist/esm/components/List/Lists.js +10 -13
- package/dist/esm/components/List/index.js +7 -12
- package/dist/esm/components/Modal/ModalHeader.js +1 -1
- package/dist/esm/components/Pagination/Pagination.js +3 -17
- package/dist/esm/components/Pagination/PaginationButton.js +2 -3
- package/dist/esm/components/Pagination/PaginationEllipsis.js +1 -2
- package/dist/esm/components/Pagination/PaginationItem.js +1 -2
- package/dist/esm/components/Pagination/{PaginationContent.js → PaginationList.js} +4 -5
- package/dist/esm/components/Pagination/PaginationNextPrev.js +4 -6
- package/dist/esm/components/Pagination/PaginationRoot.js +2 -3
- package/dist/esm/components/Pagination/index.js +4 -4
- package/dist/esm/components/Popover/Popover.js +92 -0
- package/dist/esm/components/Popover/PopoverContext.js +13 -0
- package/dist/esm/components/Popover/PopoverTrigger.js +5 -14
- package/dist/esm/components/Popover/index.js +6 -8
- package/dist/esm/components/Table/Table.js +3 -4
- package/dist/esm/components/Table/TableBody.js +3 -4
- package/dist/esm/components/Table/TableCell.js +3 -5
- package/dist/esm/components/Table/TableHead.js +3 -5
- package/dist/esm/components/Table/TableHeaderCell.js +4 -12
- package/dist/esm/components/Table/TableRow.js +3 -5
- package/dist/esm/components/Tag/Tag.js +2 -3
- package/dist/esm/components/ToggleGroup/ToggleGroupItem/ToggleGroupItem.js +3 -5
- package/dist/esm/components/Tooltip/Tooltip.js +9 -10
- package/dist/esm/components/Typography/Heading/Heading.js +2 -2
- package/dist/esm/components/form/Combobox/Combobox.js +2 -3
- package/dist/esm/components/form/Combobox/internal/ComboboxInput.js +1 -2
- package/dist/esm/components/form/Combobox/useFloatingCombobox.js +1 -1
- package/dist/esm/components/form/Select/Select.js +18 -0
- package/dist/esm/components/form/Select/SelectOptgroup.js +11 -0
- package/dist/esm/components/form/Select/SelectOption.js +11 -0
- package/dist/esm/components/form/Select/index.js +12 -0
- package/dist/esm/components/form/Select/useSelect.js +47 -0
- package/dist/esm/components/{Skeleton → loaders/Skeleton}/Circle/Circle.js +2 -2
- package/dist/esm/components/{Skeleton → loaders/Skeleton}/Rectangle/Rectangle.js +2 -2
- package/dist/esm/components/{Skeleton → loaders/Skeleton}/Text/Text.js +2 -2
- package/dist/esm/components/loaders/Spinner/Spinner.js +14 -0
- package/dist/esm/index.js +13 -15
- package/dist/esm/node_modules/@floating-ui/core/dist/floating-ui.core.js +1 -1
- package/dist/esm/node_modules/@floating-ui/dom/dist/floating-ui.dom.js +7 -21
- package/dist/esm/node_modules/@floating-ui/dom/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js +143 -0
- package/dist/esm/node_modules/@floating-ui/dom/node_modules/@floating-ui/utils/dist/floating-ui.utils.js +16 -0
- package/dist/esm/node_modules/@floating-ui/react/dist/floating-ui.react.js +85 -56
- package/dist/esm/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.js +2 -2
- package/dist/esm/node_modules/@floating-ui/react-dom/node_modules/@floating-ui/dom/dist/floating-ui.dom.js +667 -0
- package/dist/esm/node_modules/@tanstack/virtual-core/dist/esm/index.js +57 -65
- package/dist/esm/node_modules/@u-elements/u-details/dist/u-details.js +114 -0
- package/dist/esm/utilities/hooks/useSynchronizedAnimation/useSynchronizedAnimation.js +4 -2
- package/dist/types/components/Accordion/{AccordionRoot.d.ts → Accordion.d.ts} +5 -5
- package/dist/types/components/Accordion/Accordion.d.ts.map +1 -0
- package/dist/types/components/Accordion/AccordionContent.d.ts +1 -1
- package/dist/types/components/Accordion/AccordionContent.d.ts.map +1 -1
- package/dist/types/components/Accordion/AccordionHeading.d.ts +6 -20
- package/dist/types/components/Accordion/AccordionHeading.d.ts.map +1 -1
- package/dist/types/components/Accordion/AccordionItem.d.ts +12 -26
- package/dist/types/components/Accordion/AccordionItem.d.ts.map +1 -1
- package/dist/types/components/Accordion/index.d.ts +9 -11
- package/dist/types/components/Accordion/index.d.ts.map +1 -1
- package/dist/types/components/Alert/Alert.d.ts +7 -23
- package/dist/types/components/Alert/Alert.d.ts.map +1 -1
- package/dist/types/components/Avatar/Avatar.d.ts +78 -0
- package/dist/types/components/Avatar/Avatar.d.ts.map +1 -0
- package/dist/types/components/Avatar/index.d.ts +3 -0
- package/dist/types/components/Avatar/index.d.ts.map +1 -0
- package/dist/types/components/Badge/Badge.d.ts +2 -2
- package/dist/types/components/Badge/Badge.d.ts.map +1 -1
- package/dist/types/components/Breadcrumbs/BreadcrumbsItem.d.ts +1 -1
- package/dist/types/components/Breadcrumbs/BreadcrumbsItem.d.ts.map +1 -1
- package/dist/types/components/Breadcrumbs/BreadcrumbsLink.d.ts +3 -3
- package/dist/types/components/Breadcrumbs/BreadcrumbsLink.d.ts.map +1 -1
- package/dist/types/components/Breadcrumbs/BreadcrumbsList.d.ts +1 -1
- package/dist/types/components/Breadcrumbs/BreadcrumbsList.d.ts.map +1 -1
- package/dist/types/components/Breadcrumbs/BreadcrumbsNav.d.ts +6 -4
- package/dist/types/components/Breadcrumbs/BreadcrumbsNav.d.ts.map +1 -1
- package/dist/types/components/Breadcrumbs/BreadcrumbsRoot.d.ts +2 -2
- package/dist/types/components/Breadcrumbs/BreadcrumbsRoot.d.ts.map +1 -1
- package/dist/types/components/Breadcrumbs/index.d.ts +9 -9
- package/dist/types/components/Button/Button.d.ts +10 -12
- package/dist/types/components/Button/Button.d.ts.map +1 -1
- package/dist/types/components/Card/Card.d.ts +2 -2
- package/dist/types/components/Card/Card.d.ts.map +1 -1
- package/dist/types/components/Card/CardContent.d.ts +2 -2
- package/dist/types/components/Card/CardContent.d.ts.map +1 -1
- package/dist/types/components/Card/CardFooter.d.ts +2 -2
- package/dist/types/components/Card/CardFooter.d.ts.map +1 -1
- package/dist/types/components/Card/CardHeader.d.ts +2 -2
- package/dist/types/components/Card/CardHeader.d.ts.map +1 -1
- package/dist/types/components/Card/CardMedia.d.ts +2 -2
- package/dist/types/components/Card/CardMedia.d.ts.map +1 -1
- package/dist/types/components/Chip/Group/Group.d.ts +3 -3
- package/dist/types/components/Chip/Group/Group.d.ts.map +1 -1
- package/dist/types/components/Chip/Removable/Removable.d.ts +2 -2
- package/dist/types/components/Chip/Removable/Removable.d.ts.map +1 -1
- package/dist/types/components/Chip/Toggle/Toggle.d.ts +2 -2
- package/dist/types/components/Chip/Toggle/Toggle.d.ts.map +1 -1
- package/dist/types/components/Divider/Divider.d.ts +3 -15
- package/dist/types/components/Divider/Divider.d.ts.map +1 -1
- package/dist/types/components/DropdownMenu/DropdownMenuContent.d.ts +5 -5
- package/dist/types/components/DropdownMenu/DropdownMenuContent.d.ts.map +1 -1
- package/dist/types/components/DropdownMenu/DropdownMenuGroup.d.ts +5 -5
- package/dist/types/components/DropdownMenu/DropdownMenuGroup.d.ts.map +1 -1
- package/dist/types/components/DropdownMenu/DropdownMenuItem.d.ts +2 -2
- package/dist/types/components/DropdownMenu/DropdownMenuItem.d.ts.map +1 -1
- package/dist/types/components/DropdownMenu/DropdownMenuRoot.d.ts +3 -3
- package/dist/types/components/DropdownMenu/DropdownMenuRoot.d.ts.map +1 -1
- package/dist/types/components/DropdownMenu/DropdownMenuTrigger.d.ts +3 -3
- package/dist/types/components/DropdownMenu/DropdownMenuTrigger.d.ts.map +1 -1
- package/dist/types/components/ErrorSummary/ErrorSummaryHeading.d.ts +8 -6
- package/dist/types/components/ErrorSummary/ErrorSummaryHeading.d.ts.map +1 -1
- package/dist/types/components/ErrorSummary/ErrorSummaryItem.d.ts +2 -5
- package/dist/types/components/ErrorSummary/ErrorSummaryItem.d.ts.map +1 -1
- package/dist/types/components/ErrorSummary/ErrorSummaryList.d.ts +6 -7
- package/dist/types/components/ErrorSummary/ErrorSummaryList.d.ts.map +1 -1
- package/dist/types/components/ErrorSummary/ErrorSummaryRoot.d.ts +7 -6
- package/dist/types/components/ErrorSummary/ErrorSummaryRoot.d.ts.map +1 -1
- package/dist/types/components/ErrorSummary/index.d.ts +1 -1
- package/dist/types/components/ErrorSummary/index.d.ts.map +1 -1
- package/dist/types/components/HelpText/HelpText.d.ts +19 -8
- package/dist/types/components/HelpText/HelpText.d.ts.map +1 -1
- package/dist/types/components/Link/Link.d.ts +2 -2
- package/dist/types/components/Link/Link.d.ts.map +1 -1
- package/dist/types/components/List/ListItem.d.ts +2 -2
- package/dist/types/components/List/ListItem.d.ts.map +1 -1
- package/dist/types/components/List/Lists.d.ts +11 -21
- package/dist/types/components/List/Lists.d.ts.map +1 -1
- package/dist/types/components/List/index.d.ts +15 -14
- package/dist/types/components/List/index.d.ts.map +1 -1
- package/dist/types/components/Modal/ModaContent.d.ts +2 -2
- package/dist/types/components/Modal/ModaContent.d.ts.map +1 -1
- package/dist/types/components/Modal/ModalDialog.d.ts +2 -2
- package/dist/types/components/Modal/ModalDialog.d.ts.map +1 -1
- package/dist/types/components/Modal/ModalFooter.d.ts +2 -2
- package/dist/types/components/Modal/ModalFooter.d.ts.map +1 -1
- package/dist/types/components/Modal/ModalHeader.d.ts +2 -2
- package/dist/types/components/Modal/ModalHeader.d.ts.map +1 -1
- package/dist/types/components/Modal/ModalRoot.d.ts +4 -3
- package/dist/types/components/Modal/ModalRoot.d.ts.map +1 -1
- package/dist/types/components/Modal/ModalTrigger.d.ts +3 -3
- package/dist/types/components/Modal/ModalTrigger.d.ts.map +1 -1
- package/dist/types/components/Pagination/Pagination.d.ts +4 -5
- package/dist/types/components/Pagination/Pagination.d.ts.map +1 -1
- package/dist/types/components/Pagination/PaginationButton.d.ts +3 -3
- package/dist/types/components/Pagination/PaginationButton.d.ts.map +1 -1
- package/dist/types/components/Pagination/PaginationEllipsis.d.ts +1 -2
- package/dist/types/components/Pagination/PaginationEllipsis.d.ts.map +1 -1
- package/dist/types/components/Pagination/PaginationItem.d.ts +2 -3
- package/dist/types/components/Pagination/PaginationItem.d.ts.map +1 -1
- package/dist/types/components/Pagination/{PaginationContent.d.ts → PaginationList.d.ts} +4 -4
- package/dist/types/components/Pagination/PaginationList.d.ts.map +1 -0
- package/dist/types/components/Pagination/PaginationNextPrev.d.ts +4 -5
- package/dist/types/components/Pagination/PaginationNextPrev.d.ts.map +1 -1
- package/dist/types/components/Pagination/PaginationRoot.d.ts +14 -4
- package/dist/types/components/Pagination/PaginationRoot.d.ts.map +1 -1
- package/dist/types/components/Pagination/index.d.ts +9 -10
- package/dist/types/components/Pagination/index.d.ts.map +1 -1
- package/dist/types/components/Pagination/usePagination.d.ts +1 -1
- package/dist/types/components/Popover/Popover.d.ts +83 -0
- package/dist/types/components/Popover/Popover.d.ts.map +1 -0
- package/dist/types/components/Popover/PopoverContext.d.ts +13 -0
- package/dist/types/components/Popover/PopoverContext.d.ts.map +1 -0
- package/dist/types/components/Popover/PopoverTrigger.d.ts +3 -3
- package/dist/types/components/Popover/PopoverTrigger.d.ts.map +1 -1
- package/dist/types/components/Popover/index.d.ts +8 -10
- package/dist/types/components/Popover/index.d.ts.map +1 -1
- package/dist/types/components/Table/Table.d.ts +3 -3
- package/dist/types/components/Table/Table.d.ts.map +1 -1
- package/dist/types/components/Table/TableBody.d.ts +2 -2
- package/dist/types/components/Table/TableBody.d.ts.map +1 -1
- package/dist/types/components/Table/TableCell.d.ts +2 -2
- package/dist/types/components/Table/TableCell.d.ts.map +1 -1
- package/dist/types/components/Table/TableHead.d.ts +2 -2
- package/dist/types/components/Table/TableHead.d.ts.map +1 -1
- package/dist/types/components/Table/TableHeaderCell.d.ts +5 -25
- package/dist/types/components/Table/TableHeaderCell.d.ts.map +1 -1
- package/dist/types/components/Table/TableRow.d.ts +2 -2
- package/dist/types/components/Table/TableRow.d.ts.map +1 -1
- package/dist/types/components/Tabs/Tab.d.ts +2 -2
- package/dist/types/components/Tabs/Tab.d.ts.map +1 -1
- package/dist/types/components/Tabs/TabContent.d.ts +2 -2
- package/dist/types/components/Tabs/TabContent.d.ts.map +1 -1
- package/dist/types/components/Tabs/TabList.d.ts +1 -1
- package/dist/types/components/Tabs/TabList.d.ts.map +1 -1
- package/dist/types/components/Tabs/TabsRoot.d.ts +3 -3
- package/dist/types/components/Tabs/TabsRoot.d.ts.map +1 -1
- package/dist/types/components/Tag/Tag.d.ts +2 -2
- package/dist/types/components/Tag/Tag.d.ts.map +1 -1
- package/dist/types/components/ToggleGroup/ToggleGroupItem/ToggleGroupItem.d.ts +3 -3
- package/dist/types/components/ToggleGroup/ToggleGroupItem/ToggleGroupItem.d.ts.map +1 -1
- package/dist/types/components/ToggleGroup/ToggleGroupRoot.d.ts +3 -3
- package/dist/types/components/ToggleGroup/ToggleGroupRoot.d.ts.map +1 -1
- package/dist/types/components/Tooltip/Tooltip.d.ts +6 -7
- package/dist/types/components/Tooltip/Tooltip.d.ts.map +1 -1
- package/dist/types/components/Typography/ErrorMessage/ErrorMessage.d.ts +2 -2
- package/dist/types/components/Typography/ErrorMessage/ErrorMessage.d.ts.map +1 -1
- package/dist/types/components/Typography/Heading/Heading.d.ts +4 -4
- package/dist/types/components/Typography/Heading/Heading.d.ts.map +1 -1
- package/dist/types/components/Typography/Ingress/Ingress.d.ts +2 -2
- package/dist/types/components/Typography/Ingress/Ingress.d.ts.map +1 -1
- package/dist/types/components/Typography/Label/Label.d.ts +2 -2
- package/dist/types/components/Typography/Label/Label.d.ts.map +1 -1
- package/dist/types/components/Typography/Paragraph/Paragraph.d.ts +2 -2
- package/dist/types/components/Typography/Paragraph/Paragraph.d.ts.map +1 -1
- package/dist/types/components/form/Checkbox/Checkbox.d.ts +2 -2
- package/dist/types/components/form/Checkbox/Checkbox.d.ts.map +1 -1
- package/dist/types/components/form/Checkbox/CheckboxGroup.d.ts +3 -3
- package/dist/types/components/form/Checkbox/CheckboxGroup.d.ts.map +1 -1
- package/dist/types/components/form/Combobox/Combobox.d.ts +4 -4
- package/dist/types/components/form/Combobox/Combobox.d.ts.map +1 -1
- package/dist/types/components/form/Combobox/ComboboxContext.d.ts +5 -4
- package/dist/types/components/form/Combobox/ComboboxContext.d.ts.map +1 -1
- package/dist/types/components/form/Combobox/ComboboxIdContext.d.ts +4 -4
- package/dist/types/components/form/Combobox/ComboboxIdContext.d.ts.map +1 -1
- package/dist/types/components/form/Combobox/Custom.d.ts +2 -2
- package/dist/types/components/form/Combobox/Custom.d.ts.map +1 -1
- package/dist/types/components/form/Combobox/Empty.d.ts +2 -2
- package/dist/types/components/form/Combobox/Empty.d.ts.map +1 -1
- package/dist/types/components/form/Combobox/Option/Description.d.ts +2 -2
- package/dist/types/components/form/Combobox/Option/Description.d.ts.map +1 -1
- package/dist/types/components/form/Combobox/Option/Option.d.ts +3 -3
- package/dist/types/components/form/Combobox/Option/Option.d.ts.map +1 -1
- package/dist/types/components/form/Combobox/Option/useComboboxOption.d.ts +1 -1
- package/dist/types/components/form/Combobox/internal/ComboboxClearButton.d.ts +2 -1
- package/dist/types/components/form/Combobox/internal/ComboboxClearButton.d.ts.map +1 -1
- package/dist/types/components/form/Combobox/internal/ComboboxInput.d.ts +3 -2
- package/dist/types/components/form/Combobox/internal/ComboboxInput.d.ts.map +1 -1
- package/dist/types/components/form/Combobox/useCombobox.d.ts +3 -3
- package/dist/types/components/form/Combobox/useComboboxKeyboard.d.ts +2 -1
- package/dist/types/components/form/Combobox/useComboboxKeyboard.d.ts.map +1 -1
- package/dist/types/components/form/Combobox/useFloatingCombobox.d.ts +13 -12
- package/dist/types/components/form/Combobox/useFloatingCombobox.d.ts.map +1 -1
- package/dist/types/components/form/Fieldset/Fieldset.d.ts +2 -2
- package/dist/types/components/form/Fieldset/Fieldset.d.ts.map +1 -1
- package/dist/types/components/form/Fieldset/FieldsetContext.d.ts +1 -1
- package/dist/types/components/form/Fieldset/FieldsetContext.d.ts.map +1 -1
- package/dist/types/components/form/Fieldset/useFieldset.d.ts +1 -1
- package/dist/types/components/form/Radio/Radio.d.ts +2 -2
- package/dist/types/components/form/Radio/Radio.d.ts.map +1 -1
- package/dist/types/components/form/Radio/RadioGroup.d.ts +3 -3
- package/dist/types/components/form/Radio/RadioGroup.d.ts.map +1 -1
- package/dist/types/components/form/Search/Search.d.ts +2 -2
- package/dist/types/components/form/Search/Search.d.ts.map +1 -1
- package/dist/types/components/form/{NativeSelect/NativeSelect.d.ts → Select/Select.d.ts} +5 -5
- package/dist/types/components/form/Select/Select.d.ts.map +1 -0
- package/dist/types/components/form/Select/SelectOptgroup.d.ts +16 -0
- package/dist/types/components/form/Select/SelectOptgroup.d.ts.map +1 -0
- package/dist/types/components/form/Select/SelectOption.d.ts +16 -0
- package/dist/types/components/form/Select/SelectOption.d.ts.map +1 -0
- package/dist/types/components/form/Select/index.d.ts +13 -0
- package/dist/types/components/form/Select/index.d.ts.map +1 -0
- package/dist/types/components/form/Select/useSelect.d.ts +10 -0
- package/dist/types/components/form/Select/useSelect.d.ts.map +1 -0
- package/dist/types/components/form/Switch/Switch.d.ts +2 -2
- package/dist/types/components/form/Switch/Switch.d.ts.map +1 -1
- package/dist/types/components/form/Textarea/Textarea.d.ts +2 -2
- package/dist/types/components/form/Textarea/Textarea.d.ts.map +1 -1
- package/dist/types/components/form/Textfield/Textfield.d.ts +2 -2
- package/dist/types/components/form/Textfield/Textfield.d.ts.map +1 -1
- package/dist/types/components/index.d.ts +4 -4
- package/dist/types/components/index.d.ts.map +1 -1
- package/dist/types/components/loaders/Skeleton/Circle/Circle.d.ts.map +1 -0
- package/dist/types/components/loaders/Skeleton/Rectangle/Rectangle.d.ts.map +1 -0
- package/dist/types/components/loaders/Skeleton/Text/Text.d.ts.map +1 -0
- package/dist/types/components/loaders/Skeleton/index.d.ts.map +1 -0
- package/dist/types/components/{Spinner → loaders/Spinner}/Spinner.d.ts +3 -3
- package/dist/types/components/loaders/Spinner/Spinner.d.ts.map +1 -0
- package/dist/types/components/loaders/Spinner/index.d.ts.map +1 -0
- package/dist/types/utilities/AnimateHeight/AnimateHeight.d.ts +2 -2
- package/dist/types/utilities/AnimateHeight/AnimateHeight.d.ts.map +1 -1
- package/dist/types/utilities/RovingFocus/RovingFocusItem.d.ts +2 -2
- package/dist/types/utilities/RovingFocus/RovingFocusItem.d.ts.map +1 -1
- package/dist/types/utilities/RovingFocus/RovingFocusRoot.d.ts +3 -3
- package/dist/types/utilities/RovingFocus/RovingFocusRoot.d.ts.map +1 -1
- package/dist/types/utilities/RovingFocus/useRovingFocus.d.ts +163 -162
- package/dist/types/utilities/RovingFocus/useRovingFocus.d.ts.map +1 -1
- package/dist/types/utilities/hooks/useSynchronizedAnimation/useSynchronizedAnimation.d.ts +1 -1
- package/dist/types/utilities/hooks/useSynchronizedAnimation/useSynchronizedAnimation.d.ts.map +1 -1
- package/package.json +9 -4
- package/dist/cjs/components/Accordion/AccordionRoot.js +0 -16
- package/dist/cjs/components/Box/Box.js +0 -15
- package/dist/cjs/components/List/ListHeading.js +0 -28
- package/dist/cjs/components/List/ListRoot.js +0 -21
- package/dist/cjs/components/Popover/PopoverContent.js +0 -105
- package/dist/cjs/components/Popover/PopoverRoot.js +0 -68
- package/dist/cjs/components/Spinner/Spinner.js +0 -24
- package/dist/cjs/components/form/NativeSelect/NativeSelect.js +0 -21
- package/dist/cjs/components/form/NativeSelect/useNativeSelect.js +0 -55
- package/dist/cjs/utilities/AnimateHeight/AnimateHeight.js +0 -46
- package/dist/cjs/utilities/hooks/useMediaQuery/useMediaQuery.js +0 -49
- package/dist/cjs/utilities/hooks/usePrevious.js +0 -14
- package/dist/esm/components/Accordion/AccordionRoot.js +0 -14
- package/dist/esm/components/Box/Box.js +0 -13
- package/dist/esm/components/List/ListHeading.js +0 -26
- package/dist/esm/components/List/ListRoot.js +0 -18
- package/dist/esm/components/Popover/PopoverContent.js +0 -85
- package/dist/esm/components/Popover/PopoverRoot.js +0 -47
- package/dist/esm/components/Spinner/Spinner.js +0 -22
- package/dist/esm/components/form/NativeSelect/NativeSelect.js +0 -19
- package/dist/esm/components/form/NativeSelect/useNativeSelect.js +0 -53
- package/dist/esm/utilities/AnimateHeight/AnimateHeight.js +0 -44
- package/dist/esm/utilities/hooks/useMediaQuery/useMediaQuery.js +0 -47
- package/dist/esm/utilities/hooks/usePrevious.js +0 -12
- package/dist/types/components/Accordion/AccordionRoot.d.ts.map +0 -1
- package/dist/types/components/Box/Box.d.ts +0 -56
- package/dist/types/components/Box/Box.d.ts.map +0 -1
- package/dist/types/components/Box/index.d.ts +0 -3
- package/dist/types/components/Box/index.d.ts.map +0 -1
- package/dist/types/components/List/ListHeading.d.ts +0 -9
- package/dist/types/components/List/ListHeading.d.ts.map +0 -1
- package/dist/types/components/List/ListRoot.d.ts +0 -34
- package/dist/types/components/List/ListRoot.d.ts.map +0 -1
- package/dist/types/components/Pagination/PaginationContent.d.ts.map +0 -1
- package/dist/types/components/Popover/PopoverContent.d.ts +0 -8
- package/dist/types/components/Popover/PopoverContent.d.ts.map +0 -1
- package/dist/types/components/Popover/PopoverRoot.d.ts +0 -54
- package/dist/types/components/Popover/PopoverRoot.d.ts.map +0 -1
- package/dist/types/components/Skeleton/Circle/Circle.d.ts.map +0 -1
- package/dist/types/components/Skeleton/Rectangle/Rectangle.d.ts.map +0 -1
- package/dist/types/components/Skeleton/Text/Text.d.ts.map +0 -1
- package/dist/types/components/Skeleton/index.d.ts.map +0 -1
- package/dist/types/components/Spinner/Spinner.d.ts.map +0 -1
- package/dist/types/components/Spinner/index.d.ts.map +0 -1
- package/dist/types/components/form/NativeSelect/NativeSelect.d.ts.map +0 -1
- package/dist/types/components/form/NativeSelect/index.d.ts +0 -3
- package/dist/types/components/form/NativeSelect/index.d.ts.map +0 -1
- package/dist/types/components/form/NativeSelect/useNativeSelect.d.ts +0 -10
- package/dist/types/components/form/NativeSelect/useNativeSelect.d.ts.map +0 -1
- /package/dist/cjs/components/{Skeleton → loaders/Skeleton}/index.js +0 -0
- /package/dist/esm/components/{Skeleton → loaders/Skeleton}/index.js +0 -0
- /package/dist/types/components/{Skeleton → loaders/Skeleton}/Circle/Circle.d.ts +0 -0
- /package/dist/types/components/{Skeleton → loaders/Skeleton}/Rectangle/Rectangle.d.ts +0 -0
- /package/dist/types/components/{Skeleton → loaders/Skeleton}/Text/Text.d.ts +0 -0
- /package/dist/types/components/{Skeleton → loaders/Skeleton}/index.d.ts +0 -0
- /package/dist/types/components/{Spinner → loaders/Spinner}/index.d.ts +0 -0
|
@@ -2,8 +2,9 @@
|
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
4
|
var floatingUi_core = require('../../core/dist/floating-ui.core.js');
|
|
5
|
-
var floatingUi_utils = require('
|
|
6
|
-
var floatingUi_utils_dom = require('
|
|
5
|
+
var floatingUi_utils = require('../node_modules/@floating-ui/utils/dist/floating-ui.utils.js');
|
|
6
|
+
var floatingUi_utils_dom = require('../node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js');
|
|
7
|
+
var floatingUi_utils$1 = require('../../utils/dist/floating-ui.utils.js');
|
|
7
8
|
|
|
8
9
|
function getCssDimensions(element) {
|
|
9
10
|
const css = floatingUi_utils_dom.getComputedStyle(element);
|
|
@@ -107,7 +108,7 @@ function getBoundingClientRect(element, includeScale, isFixedStrategy, offsetPar
|
|
|
107
108
|
const win = floatingUi_utils_dom.getWindow(domElement);
|
|
108
109
|
const offsetWin = offsetParent && floatingUi_utils_dom.isElement(offsetParent) ? floatingUi_utils_dom.getWindow(offsetParent) : offsetParent;
|
|
109
110
|
let currentWin = win;
|
|
110
|
-
let currentIFrame = currentWin
|
|
111
|
+
let currentIFrame = floatingUi_utils_dom.getFrameElement(currentWin);
|
|
111
112
|
while (currentIFrame && offsetParent && offsetWin !== currentWin) {
|
|
112
113
|
const iframeScale = getScale(currentIFrame);
|
|
113
114
|
const iframeRect = currentIFrame.getBoundingClientRect();
|
|
@@ -121,10 +122,10 @@ function getBoundingClientRect(element, includeScale, isFixedStrategy, offsetPar
|
|
|
121
122
|
x += left;
|
|
122
123
|
y += top;
|
|
123
124
|
currentWin = floatingUi_utils_dom.getWindow(currentIFrame);
|
|
124
|
-
currentIFrame = currentWin
|
|
125
|
+
currentIFrame = floatingUi_utils_dom.getFrameElement(currentWin);
|
|
125
126
|
}
|
|
126
127
|
}
|
|
127
|
-
return floatingUi_utils.rectToClientRect({
|
|
128
|
+
return floatingUi_utils$1.rectToClientRect({
|
|
128
129
|
width,
|
|
129
130
|
height,
|
|
130
131
|
x,
|
|
@@ -260,7 +261,7 @@ function getClientRectFromClippingAncestor(element, clippingAncestor, strategy)
|
|
|
260
261
|
y: clippingAncestor.y - visualOffsets.y
|
|
261
262
|
};
|
|
262
263
|
}
|
|
263
|
-
return floatingUi_utils.rectToClientRect(rect);
|
|
264
|
+
return floatingUi_utils$1.rectToClientRect(rect);
|
|
264
265
|
}
|
|
265
266
|
function hasFixedPositionAncestor(element, stopNode) {
|
|
266
267
|
const parentNode = floatingUi_utils_dom.getParentNode(element);
|
|
@@ -628,21 +629,6 @@ const shift = floatingUi_core.shift;
|
|
|
628
629
|
*/
|
|
629
630
|
const flip = floatingUi_core.flip;
|
|
630
631
|
|
|
631
|
-
/**
|
|
632
|
-
* Provides data that allows you to change the size of the floating element —
|
|
633
|
-
* for instance, prevent it from overflowing the clipping boundary or match the
|
|
634
|
-
* width of the reference element.
|
|
635
|
-
* @see https://floating-ui.com/docs/size
|
|
636
|
-
*/
|
|
637
|
-
const size = floatingUi_core.size;
|
|
638
|
-
|
|
639
|
-
/**
|
|
640
|
-
* Provides data to position an inner element of the floating element so that it
|
|
641
|
-
* appears centered to the reference element.
|
|
642
|
-
* @see https://floating-ui.com/docs/arrow
|
|
643
|
-
*/
|
|
644
|
-
const arrow = floatingUi_core.arrow;
|
|
645
|
-
|
|
646
632
|
/**
|
|
647
633
|
* Computes the `x` and `y` coordinates that will place the floating element
|
|
648
634
|
* next to a given reference element.
|
|
@@ -667,11 +653,9 @@ const computePosition = (reference, floating, options) => {
|
|
|
667
653
|
};
|
|
668
654
|
|
|
669
655
|
exports.getOverflowAncestors = floatingUi_utils_dom.getOverflowAncestors;
|
|
670
|
-
exports.arrow = arrow;
|
|
671
656
|
exports.autoUpdate = autoUpdate;
|
|
672
657
|
exports.computePosition = computePosition;
|
|
673
658
|
exports.flip = flip;
|
|
674
659
|
exports.offset = offset;
|
|
675
660
|
exports.platform = platform;
|
|
676
661
|
exports.shift = shift;
|
|
677
|
-
exports.size = size;
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
function getNodeName(node) {
|
|
5
|
+
if (isNode(node)) {
|
|
6
|
+
return (node.nodeName || '').toLowerCase();
|
|
7
|
+
}
|
|
8
|
+
// Mocked nodes in testing environments may not be instances of Node. By
|
|
9
|
+
// returning `#document` an infinite loop won't occur.
|
|
10
|
+
// https://github.com/floating-ui/floating-ui/issues/2317
|
|
11
|
+
return '#document';
|
|
12
|
+
}
|
|
13
|
+
function getWindow(node) {
|
|
14
|
+
var _node$ownerDocument;
|
|
15
|
+
return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;
|
|
16
|
+
}
|
|
17
|
+
function getDocumentElement(node) {
|
|
18
|
+
var _ref;
|
|
19
|
+
return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;
|
|
20
|
+
}
|
|
21
|
+
function isNode(value) {
|
|
22
|
+
return value instanceof Node || value instanceof getWindow(value).Node;
|
|
23
|
+
}
|
|
24
|
+
function isElement(value) {
|
|
25
|
+
return value instanceof Element || value instanceof getWindow(value).Element;
|
|
26
|
+
}
|
|
27
|
+
function isHTMLElement(value) {
|
|
28
|
+
return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;
|
|
29
|
+
}
|
|
30
|
+
function isShadowRoot(value) {
|
|
31
|
+
// Browsers without `ShadowRoot` support.
|
|
32
|
+
if (typeof ShadowRoot === 'undefined') {
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;
|
|
36
|
+
}
|
|
37
|
+
function isOverflowElement(element) {
|
|
38
|
+
const {
|
|
39
|
+
overflow,
|
|
40
|
+
overflowX,
|
|
41
|
+
overflowY,
|
|
42
|
+
display
|
|
43
|
+
} = getComputedStyle(element);
|
|
44
|
+
return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !['inline', 'contents'].includes(display);
|
|
45
|
+
}
|
|
46
|
+
function isTableElement(element) {
|
|
47
|
+
return ['table', 'td', 'th'].includes(getNodeName(element));
|
|
48
|
+
}
|
|
49
|
+
function isTopLayer(element) {
|
|
50
|
+
return [':popover-open', ':modal'].some(selector => {
|
|
51
|
+
try {
|
|
52
|
+
return element.matches(selector);
|
|
53
|
+
} catch (e) {
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
function isContainingBlock(elementOrCss) {
|
|
59
|
+
const webkit = isWebKit();
|
|
60
|
+
const css = isElement(elementOrCss) ? getComputedStyle(elementOrCss) : elementOrCss;
|
|
61
|
+
|
|
62
|
+
// https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block
|
|
63
|
+
return css.transform !== 'none' || css.perspective !== 'none' || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || ['transform', 'perspective', 'filter'].some(value => (css.willChange || '').includes(value)) || ['paint', 'layout', 'strict', 'content'].some(value => (css.contain || '').includes(value));
|
|
64
|
+
}
|
|
65
|
+
function getContainingBlock(element) {
|
|
66
|
+
let currentNode = getParentNode(element);
|
|
67
|
+
while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {
|
|
68
|
+
if (isContainingBlock(currentNode)) {
|
|
69
|
+
return currentNode;
|
|
70
|
+
} else if (isTopLayer(currentNode)) {
|
|
71
|
+
return null;
|
|
72
|
+
}
|
|
73
|
+
currentNode = getParentNode(currentNode);
|
|
74
|
+
}
|
|
75
|
+
return null;
|
|
76
|
+
}
|
|
77
|
+
function isWebKit() {
|
|
78
|
+
if (typeof CSS === 'undefined' || !CSS.supports) return false;
|
|
79
|
+
return CSS.supports('-webkit-backdrop-filter', 'none');
|
|
80
|
+
}
|
|
81
|
+
function isLastTraversableNode(node) {
|
|
82
|
+
return ['html', 'body', '#document'].includes(getNodeName(node));
|
|
83
|
+
}
|
|
84
|
+
function getComputedStyle(element) {
|
|
85
|
+
return getWindow(element).getComputedStyle(element);
|
|
86
|
+
}
|
|
87
|
+
function getNodeScroll(element) {
|
|
88
|
+
if (isElement(element)) {
|
|
89
|
+
return {
|
|
90
|
+
scrollLeft: element.scrollLeft,
|
|
91
|
+
scrollTop: element.scrollTop
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
return {
|
|
95
|
+
scrollLeft: element.scrollX,
|
|
96
|
+
scrollTop: element.scrollY
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
function getParentNode(node) {
|
|
100
|
+
if (getNodeName(node) === 'html') {
|
|
101
|
+
return node;
|
|
102
|
+
}
|
|
103
|
+
const result =
|
|
104
|
+
// Step into the shadow DOM of the parent of a slotted node.
|
|
105
|
+
node.assignedSlot ||
|
|
106
|
+
// DOM Element detected.
|
|
107
|
+
node.parentNode ||
|
|
108
|
+
// ShadowRoot detected.
|
|
109
|
+
isShadowRoot(node) && node.host ||
|
|
110
|
+
// Fallback.
|
|
111
|
+
getDocumentElement(node);
|
|
112
|
+
return isShadowRoot(result) ? result.host : result;
|
|
113
|
+
}
|
|
114
|
+
function getNearestOverflowAncestor(node) {
|
|
115
|
+
const parentNode = getParentNode(node);
|
|
116
|
+
if (isLastTraversableNode(parentNode)) {
|
|
117
|
+
return node.ownerDocument ? node.ownerDocument.body : node.body;
|
|
118
|
+
}
|
|
119
|
+
if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {
|
|
120
|
+
return parentNode;
|
|
121
|
+
}
|
|
122
|
+
return getNearestOverflowAncestor(parentNode);
|
|
123
|
+
}
|
|
124
|
+
function getOverflowAncestors(node, list, traverseIframes) {
|
|
125
|
+
var _node$ownerDocument2;
|
|
126
|
+
if (list === void 0) {
|
|
127
|
+
list = [];
|
|
128
|
+
}
|
|
129
|
+
if (traverseIframes === void 0) {
|
|
130
|
+
traverseIframes = true;
|
|
131
|
+
}
|
|
132
|
+
const scrollableAncestor = getNearestOverflowAncestor(node);
|
|
133
|
+
const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);
|
|
134
|
+
const win = getWindow(scrollableAncestor);
|
|
135
|
+
if (isBody) {
|
|
136
|
+
const frameElement = getFrameElement(win);
|
|
137
|
+
return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []);
|
|
138
|
+
}
|
|
139
|
+
return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));
|
|
140
|
+
}
|
|
141
|
+
function getFrameElement(win) {
|
|
142
|
+
return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
exports.getComputedStyle = getComputedStyle;
|
|
146
|
+
exports.getContainingBlock = getContainingBlock;
|
|
147
|
+
exports.getDocumentElement = getDocumentElement;
|
|
148
|
+
exports.getFrameElement = getFrameElement;
|
|
149
|
+
exports.getNearestOverflowAncestor = getNearestOverflowAncestor;
|
|
150
|
+
exports.getNodeName = getNodeName;
|
|
151
|
+
exports.getNodeScroll = getNodeScroll;
|
|
152
|
+
exports.getOverflowAncestors = getOverflowAncestors;
|
|
153
|
+
exports.getParentNode = getParentNode;
|
|
154
|
+
exports.getWindow = getWindow;
|
|
155
|
+
exports.isContainingBlock = isContainingBlock;
|
|
156
|
+
exports.isElement = isElement;
|
|
157
|
+
exports.isHTMLElement = isHTMLElement;
|
|
158
|
+
exports.isLastTraversableNode = isLastTraversableNode;
|
|
159
|
+
exports.isNode = isNode;
|
|
160
|
+
exports.isOverflowElement = isOverflowElement;
|
|
161
|
+
exports.isShadowRoot = isShadowRoot;
|
|
162
|
+
exports.isTableElement = isTableElement;
|
|
163
|
+
exports.isTopLayer = isTopLayer;
|
|
164
|
+
exports.isWebKit = isWebKit;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Custom positioning reference element.
|
|
6
|
+
* @see https://floating-ui.com/docs/virtual-elements
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
const min = Math.min;
|
|
10
|
+
const max = Math.max;
|
|
11
|
+
const round = Math.round;
|
|
12
|
+
const floor = Math.floor;
|
|
13
|
+
const createCoords = v => ({
|
|
14
|
+
x: v,
|
|
15
|
+
y: v
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
exports.createCoords = createCoords;
|
|
19
|
+
exports.floor = floor;
|
|
20
|
+
exports.max = max;
|
|
21
|
+
exports.min = min;
|
|
22
|
+
exports.round = round;
|
|
@@ -423,7 +423,8 @@ const FloatingArrow = /*#__PURE__*/React__namespace.forwardRef(function Floating
|
|
|
423
423
|
floating
|
|
424
424
|
},
|
|
425
425
|
middlewareData: {
|
|
426
|
-
arrow
|
|
426
|
+
arrow,
|
|
427
|
+
shift
|
|
427
428
|
}
|
|
428
429
|
},
|
|
429
430
|
width = 14,
|
|
@@ -458,6 +459,12 @@ const FloatingArrow = /*#__PURE__*/React__namespace.forwardRef(function Floating
|
|
|
458
459
|
if (!floating) {
|
|
459
460
|
return null;
|
|
460
461
|
}
|
|
462
|
+
const [side, alignment] = placement.split('-');
|
|
463
|
+
const isVerticalSide = side === 'top' || side === 'bottom';
|
|
464
|
+
let computedStaticOffset = staticOffset;
|
|
465
|
+
if (isVerticalSide && shift != null && shift.x || !isVerticalSide && shift != null && shift.y) {
|
|
466
|
+
computedStaticOffset = null;
|
|
467
|
+
}
|
|
461
468
|
|
|
462
469
|
// Strokes must be double the border width, this ensures the stroke's width
|
|
463
470
|
// works as you'd expect.
|
|
@@ -465,16 +472,14 @@ const FloatingArrow = /*#__PURE__*/React__namespace.forwardRef(function Floating
|
|
|
465
472
|
const halfStrokeWidth = computedStrokeWidth / 2;
|
|
466
473
|
const svgX = width / 2 * (tipRadius / -8 + 1);
|
|
467
474
|
const svgY = height / 2 * tipRadius / 4;
|
|
468
|
-
const [side, alignment] = placement.split('-');
|
|
469
475
|
const isCustomShape = !!d;
|
|
470
|
-
const
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
if (staticOffset && isRTL) {
|
|
476
|
+
const yOffsetProp = computedStaticOffset && alignment === 'end' ? 'bottom' : 'top';
|
|
477
|
+
let xOffsetProp = computedStaticOffset && alignment === 'end' ? 'right' : 'left';
|
|
478
|
+
if (computedStaticOffset && isRTL) {
|
|
474
479
|
xOffsetProp = alignment === 'end' ? 'left' : 'right';
|
|
475
480
|
}
|
|
476
|
-
const arrowX = (arrow == null ? void 0 : arrow.x) != null ?
|
|
477
|
-
const arrowY = (arrow == null ? void 0 : arrow.y) != null ?
|
|
481
|
+
const arrowX = (arrow == null ? void 0 : arrow.x) != null ? computedStaticOffset || arrow.x : '';
|
|
482
|
+
const arrowY = (arrow == null ? void 0 : arrow.y) != null ? computedStaticOffset || arrow.y : '';
|
|
478
483
|
const dValue = d || 'M0,0' + (" H" + width) + (" L" + (width - svgX) + "," + (height - svgY)) + (" Q" + width / 2 + "," + height + " " + svgX + "," + (height - svgY)) + ' Z';
|
|
479
484
|
const rotation = {
|
|
480
485
|
top: isCustomShape ? 'rotate(180deg)' : '',
|
|
@@ -789,21 +794,22 @@ function useHover(context, props) {
|
|
|
789
794
|
var _handleCloseRef$curre;
|
|
790
795
|
if (!enabled) return;
|
|
791
796
|
if (open && (_handleCloseRef$curre = handleCloseRef.current) != null && _handleCloseRef$curre.__options.blockPointerEvents && isHoverOpen()) {
|
|
792
|
-
const body = floatingUi_react_utils.getDocument(elements.floating).body;
|
|
793
|
-
body.setAttribute(safePolygonIdentifier, '');
|
|
794
|
-
body.style.pointerEvents = 'none';
|
|
795
797
|
performedPointerEventsMutationRef.current = true;
|
|
796
798
|
const floatingEl = elements.floating;
|
|
797
799
|
if (floatingUi_utils_dom$1.isElement(elements.domReference) && floatingEl) {
|
|
798
800
|
var _tree$nodesRef$curren;
|
|
801
|
+
const body = floatingUi_react_utils.getDocument(elements.floating).body;
|
|
802
|
+
body.setAttribute(safePolygonIdentifier, '');
|
|
799
803
|
const ref = elements.domReference;
|
|
800
804
|
const parentFloating = tree == null || (_tree$nodesRef$curren = tree.nodesRef.current.find(node => node.id === parentId)) == null || (_tree$nodesRef$curren = _tree$nodesRef$curren.context) == null ? void 0 : _tree$nodesRef$curren.elements.floating;
|
|
801
805
|
if (parentFloating) {
|
|
802
806
|
parentFloating.style.pointerEvents = '';
|
|
803
807
|
}
|
|
808
|
+
body.style.pointerEvents = 'none';
|
|
804
809
|
ref.style.pointerEvents = 'auto';
|
|
805
810
|
floatingEl.style.pointerEvents = 'auto';
|
|
806
811
|
return () => {
|
|
812
|
+
body.style.pointerEvents = '';
|
|
807
813
|
ref.style.pointerEvents = '';
|
|
808
814
|
floatingEl.style.pointerEvents = '';
|
|
809
815
|
};
|
|
@@ -1237,6 +1243,8 @@ function FloatingPortal(props) {
|
|
|
1237
1243
|
const afterOutsideRef = React__namespace.useRef(null);
|
|
1238
1244
|
const beforeInsideRef = React__namespace.useRef(null);
|
|
1239
1245
|
const afterInsideRef = React__namespace.useRef(null);
|
|
1246
|
+
const modal = focusManagerState == null ? void 0 : focusManagerState.modal;
|
|
1247
|
+
const open = focusManagerState == null ? void 0 : focusManagerState.open;
|
|
1240
1248
|
const shouldRenderGuards =
|
|
1241
1249
|
// The FocusManager and therefore floating element are currently open/
|
|
1242
1250
|
// rendered.
|
|
@@ -1248,7 +1256,7 @@ function FloatingPortal(props) {
|
|
|
1248
1256
|
|
|
1249
1257
|
// https://codesandbox.io/s/tabbable-portal-f4tng?file=/src/TabbablePortal.tsx
|
|
1250
1258
|
React__namespace.useEffect(() => {
|
|
1251
|
-
if (!portalNode || !preserveTabOrder ||
|
|
1259
|
+
if (!portalNode || !preserveTabOrder || modal) {
|
|
1252
1260
|
return;
|
|
1253
1261
|
}
|
|
1254
1262
|
|
|
@@ -1270,7 +1278,12 @@ function FloatingPortal(props) {
|
|
|
1270
1278
|
portalNode.removeEventListener('focusin', onFocus, true);
|
|
1271
1279
|
portalNode.removeEventListener('focusout', onFocus, true);
|
|
1272
1280
|
};
|
|
1273
|
-
}, [portalNode, preserveTabOrder,
|
|
1281
|
+
}, [portalNode, preserveTabOrder, modal]);
|
|
1282
|
+
React__namespace.useEffect(() => {
|
|
1283
|
+
if (!portalNode) return;
|
|
1284
|
+
if (open) return;
|
|
1285
|
+
enableFocusInside(portalNode);
|
|
1286
|
+
}, [open, portalNode]);
|
|
1274
1287
|
return /*#__PURE__*/React__namespace.createElement(PortalContext.Provider, {
|
|
1275
1288
|
value: React__namespace.useMemo(() => ({
|
|
1276
1289
|
preserveTabOrder,
|
|
@@ -1306,13 +1319,25 @@ function FloatingPortal(props) {
|
|
|
1306
1319
|
} else {
|
|
1307
1320
|
const nextTabbable = getNextTabbable() || (focusManagerState == null ? void 0 : focusManagerState.refs.domReference.current);
|
|
1308
1321
|
nextTabbable == null || nextTabbable.focus();
|
|
1309
|
-
(focusManagerState == null ? void 0 : focusManagerState.closeOnFocusOut) && (focusManagerState == null ? void 0 : focusManagerState.onOpenChange(false, event.nativeEvent));
|
|
1322
|
+
(focusManagerState == null ? void 0 : focusManagerState.closeOnFocusOut) && (focusManagerState == null ? void 0 : focusManagerState.onOpenChange(false, event.nativeEvent, 'focus-out'));
|
|
1310
1323
|
}
|
|
1311
1324
|
}
|
|
1312
1325
|
}));
|
|
1313
1326
|
}
|
|
1314
1327
|
const usePortalContext = () => React__namespace.useContext(PortalContext);
|
|
1315
1328
|
|
|
1329
|
+
const FOCUSABLE_ATTRIBUTE = 'data-floating-ui-focusable';
|
|
1330
|
+
function getFloatingFocusElement(floatingElement) {
|
|
1331
|
+
if (!floatingElement) {
|
|
1332
|
+
return null;
|
|
1333
|
+
}
|
|
1334
|
+
// Try to find the element that has `{...getFloatingProps()}` spread on it.
|
|
1335
|
+
// This indicates the floating element is acting as a positioning wrapper, and
|
|
1336
|
+
// so focus should be managed on the child element with the event handlers and
|
|
1337
|
+
// aria props.
|
|
1338
|
+
return floatingElement.hasAttribute(FOCUSABLE_ATTRIBUTE) ? floatingElement : floatingElement.querySelector("[" + FOCUSABLE_ATTRIBUTE + "]") || floatingElement;
|
|
1339
|
+
}
|
|
1340
|
+
|
|
1316
1341
|
const LIST_LIMIT = 20;
|
|
1317
1342
|
let previouslyFocusedElements = [];
|
|
1318
1343
|
function addPreviouslyFocusedElement(element) {
|
|
@@ -1393,13 +1418,10 @@ function FloatingFocusManager(props) {
|
|
|
1393
1418
|
const isPointerDownRef = React__namespace.useRef(false);
|
|
1394
1419
|
const tabbableIndexRef = React__namespace.useRef(-1);
|
|
1395
1420
|
const isInsidePortal = portalContext != null;
|
|
1396
|
-
const
|
|
1397
|
-
// If the floating element is acting as a positioning wrapper rather than the
|
|
1398
|
-
// element that receives aria props, use it as the focus root instead.
|
|
1399
|
-
const floatingFocusNode = (firstElementChild == null ? void 0 : firstElementChild.id) === floatingId ? firstElementChild : floating;
|
|
1421
|
+
const floatingFocusElement = getFloatingFocusElement(floating);
|
|
1400
1422
|
const getTabbableContent = useEffectEvent(function (container) {
|
|
1401
1423
|
if (container === void 0) {
|
|
1402
|
-
container =
|
|
1424
|
+
container = floatingFocusElement;
|
|
1403
1425
|
}
|
|
1404
1426
|
return container ? index_esm.tabbable(container, getTabbableOptions()) : [];
|
|
1405
1427
|
});
|
|
@@ -1409,19 +1431,22 @@ function FloatingFocusManager(props) {
|
|
|
1409
1431
|
if (domReference && type === 'reference') {
|
|
1410
1432
|
return domReference;
|
|
1411
1433
|
}
|
|
1412
|
-
if (
|
|
1413
|
-
return
|
|
1434
|
+
if (floatingFocusElement && type === 'floating') {
|
|
1435
|
+
return floatingFocusElement;
|
|
1414
1436
|
}
|
|
1415
1437
|
return content;
|
|
1416
1438
|
}).filter(Boolean).flat();
|
|
1417
1439
|
});
|
|
1440
|
+
React__namespace.useEffect(() => {
|
|
1441
|
+
preventReturnFocusRef.current = false;
|
|
1442
|
+
}, [disabled]);
|
|
1418
1443
|
React__namespace.useEffect(() => {
|
|
1419
1444
|
if (disabled) return;
|
|
1420
1445
|
if (!modal) return;
|
|
1421
1446
|
function onKeyDown(event) {
|
|
1422
1447
|
if (event.key === 'Tab') {
|
|
1423
1448
|
// The focus guards have nothing to focus, so we need to stop the event.
|
|
1424
|
-
if (floatingUi_react_utils.contains(
|
|
1449
|
+
if (floatingUi_react_utils.contains(floatingFocusElement, floatingUi_react_utils.activeElement(floatingUi_react_utils.getDocument(floatingFocusElement))) && getTabbableContent().length === 0 && !isUntrappedTypeableCombobox) {
|
|
1425
1450
|
floatingUi_react_utils.stopEvent(event);
|
|
1426
1451
|
}
|
|
1427
1452
|
const els = getTabbableElements();
|
|
@@ -1434,18 +1459,18 @@ function FloatingFocusManager(props) {
|
|
|
1434
1459
|
enqueueFocus(els[1]);
|
|
1435
1460
|
}
|
|
1436
1461
|
}
|
|
1437
|
-
if (orderRef.current[1] === 'floating' && target ===
|
|
1462
|
+
if (orderRef.current[1] === 'floating' && target === floatingFocusElement && event.shiftKey) {
|
|
1438
1463
|
floatingUi_react_utils.stopEvent(event);
|
|
1439
1464
|
enqueueFocus(els[0]);
|
|
1440
1465
|
}
|
|
1441
1466
|
}
|
|
1442
1467
|
}
|
|
1443
|
-
const doc = floatingUi_react_utils.getDocument(
|
|
1468
|
+
const doc = floatingUi_react_utils.getDocument(floatingFocusElement);
|
|
1444
1469
|
doc.addEventListener('keydown', onKeyDown);
|
|
1445
1470
|
return () => {
|
|
1446
1471
|
doc.removeEventListener('keydown', onKeyDown);
|
|
1447
1472
|
};
|
|
1448
|
-
}, [disabled, domReference,
|
|
1473
|
+
}, [disabled, domReference, floatingFocusElement, modal, orderRef, isUntrappedTypeableCombobox, getTabbableContent, getTabbableElements]);
|
|
1449
1474
|
React__namespace.useEffect(() => {
|
|
1450
1475
|
if (disabled) return;
|
|
1451
1476
|
if (!floating) return;
|
|
@@ -1486,15 +1511,15 @@ function FloatingFocusManager(props) {
|
|
|
1486
1511
|
|
|
1487
1512
|
// Restore focus to the previous tabbable element index to prevent
|
|
1488
1513
|
// focus from being lost outside the floating tree.
|
|
1489
|
-
if (restoreFocus && movedToUnrelatedNode && floatingUi_react_utils.activeElement(floatingUi_react_utils.getDocument(
|
|
1514
|
+
if (restoreFocus && movedToUnrelatedNode && floatingUi_react_utils.activeElement(floatingUi_react_utils.getDocument(floatingFocusElement)) === floatingUi_react_utils.getDocument(floatingFocusElement).body) {
|
|
1490
1515
|
// Let `FloatingPortal` effect knows that focus is still inside the
|
|
1491
1516
|
// floating tree.
|
|
1492
|
-
if (floatingUi_utils_dom$1.isHTMLElement(
|
|
1493
|
-
|
|
1517
|
+
if (floatingUi_utils_dom$1.isHTMLElement(floatingFocusElement)) {
|
|
1518
|
+
floatingFocusElement.focus();
|
|
1494
1519
|
}
|
|
1495
1520
|
const prevTabbableIndex = tabbableIndexRef.current;
|
|
1496
1521
|
const tabbableContent = getTabbableContent();
|
|
1497
|
-
const nodeToFocus = tabbableContent[prevTabbableIndex] || tabbableContent[tabbableContent.length - 1] ||
|
|
1522
|
+
const nodeToFocus = tabbableContent[prevTabbableIndex] || tabbableContent[tabbableContent.length - 1] || floatingFocusElement;
|
|
1498
1523
|
if (floatingUi_utils_dom$1.isHTMLElement(nodeToFocus)) {
|
|
1499
1524
|
nodeToFocus.focus();
|
|
1500
1525
|
}
|
|
@@ -1506,7 +1531,7 @@ function FloatingFocusManager(props) {
|
|
|
1506
1531
|
// Fix React 18 Strict Mode returnFocus due to double rendering.
|
|
1507
1532
|
relatedTarget !== getPreviouslyFocusedElement()) {
|
|
1508
1533
|
preventReturnFocusRef.current = true;
|
|
1509
|
-
onOpenChange(false, event);
|
|
1534
|
+
onOpenChange(false, event, 'focus-out');
|
|
1510
1535
|
}
|
|
1511
1536
|
});
|
|
1512
1537
|
}
|
|
@@ -1520,7 +1545,7 @@ function FloatingFocusManager(props) {
|
|
|
1520
1545
|
floating.removeEventListener('focusout', handleFocusOutside);
|
|
1521
1546
|
};
|
|
1522
1547
|
}
|
|
1523
|
-
}, [disabled, domReference, floating,
|
|
1548
|
+
}, [disabled, domReference, floating, floatingFocusElement, modal, nodeId, tree, portalContext, onOpenChange, closeOnFocusOut, restoreFocus, getTabbableContent, isUntrappedTypeableCombobox]);
|
|
1524
1549
|
React__namespace.useEffect(() => {
|
|
1525
1550
|
var _portalContext$portal;
|
|
1526
1551
|
if (disabled) return;
|
|
@@ -1536,27 +1561,27 @@ function FloatingFocusManager(props) {
|
|
|
1536
1561
|
}
|
|
1537
1562
|
}, [disabled, domReference, floating, modal, orderRef, portalContext, isUntrappedTypeableCombobox, guards]);
|
|
1538
1563
|
index(() => {
|
|
1539
|
-
if (disabled || !floatingUi_utils_dom$1.isHTMLElement(
|
|
1540
|
-
const doc = floatingUi_react_utils.getDocument(
|
|
1564
|
+
if (disabled || !floatingUi_utils_dom$1.isHTMLElement(floatingFocusElement)) return;
|
|
1565
|
+
const doc = floatingUi_react_utils.getDocument(floatingFocusElement);
|
|
1541
1566
|
const previouslyFocusedElement = floatingUi_react_utils.activeElement(doc);
|
|
1542
1567
|
|
|
1543
1568
|
// Wait for any layout effect state setters to execute to set `tabIndex`.
|
|
1544
1569
|
queueMicrotask(() => {
|
|
1545
|
-
const focusableElements = getTabbableElements(
|
|
1570
|
+
const focusableElements = getTabbableElements(floatingFocusElement);
|
|
1546
1571
|
const initialFocusValue = initialFocusRef.current;
|
|
1547
|
-
const elToFocus = (typeof initialFocusValue === 'number' ? focusableElements[initialFocusValue] : initialFocusValue.current) ||
|
|
1548
|
-
const focusAlreadyInsideFloatingEl = floatingUi_react_utils.contains(
|
|
1572
|
+
const elToFocus = (typeof initialFocusValue === 'number' ? focusableElements[initialFocusValue] : initialFocusValue.current) || floatingFocusElement;
|
|
1573
|
+
const focusAlreadyInsideFloatingEl = floatingUi_react_utils.contains(floatingFocusElement, previouslyFocusedElement);
|
|
1549
1574
|
if (!ignoreInitialFocus && !focusAlreadyInsideFloatingEl && open) {
|
|
1550
1575
|
enqueueFocus(elToFocus, {
|
|
1551
|
-
preventScroll: elToFocus ===
|
|
1576
|
+
preventScroll: elToFocus === floatingFocusElement
|
|
1552
1577
|
});
|
|
1553
1578
|
}
|
|
1554
1579
|
});
|
|
1555
|
-
}, [disabled, open,
|
|
1580
|
+
}, [disabled, open, floatingFocusElement, ignoreInitialFocus, getTabbableElements, initialFocusRef]);
|
|
1556
1581
|
index(() => {
|
|
1557
|
-
if (disabled || !
|
|
1582
|
+
if (disabled || !floatingFocusElement) return;
|
|
1558
1583
|
let preventReturnFocusScroll = false;
|
|
1559
|
-
const doc = floatingUi_react_utils.getDocument(
|
|
1584
|
+
const doc = floatingUi_react_utils.getDocument(floatingFocusElement);
|
|
1560
1585
|
const previouslyFocusedElement = floatingUi_react_utils.activeElement(doc);
|
|
1561
1586
|
const contextData = dataRef.current;
|
|
1562
1587
|
let openEvent = contextData.openEvent;
|
|
@@ -1624,7 +1649,7 @@ function FloatingFocusManager(props) {
|
|
|
1624
1649
|
}
|
|
1625
1650
|
});
|
|
1626
1651
|
};
|
|
1627
|
-
}, [disabled, floating,
|
|
1652
|
+
}, [disabled, floating, floatingFocusElement, returnFocusRef, dataRef, refs, events, tree, nodeId]);
|
|
1628
1653
|
|
|
1629
1654
|
// Synchronize the `context` & `modal` value to the FloatingPortal context.
|
|
1630
1655
|
// It will decide whether or not it needs to render its own guards.
|
|
@@ -1644,11 +1669,11 @@ function FloatingFocusManager(props) {
|
|
|
1644
1669
|
}, [disabled, portalContext, modal, open, onOpenChange, refs, closeOnFocusOut]);
|
|
1645
1670
|
index(() => {
|
|
1646
1671
|
if (disabled) return;
|
|
1647
|
-
if (!
|
|
1672
|
+
if (!floatingFocusElement) return;
|
|
1648
1673
|
if (typeof MutationObserver !== 'function') return;
|
|
1649
1674
|
if (ignoreInitialFocus) return;
|
|
1650
1675
|
const handleMutation = () => {
|
|
1651
|
-
const tabIndex =
|
|
1676
|
+
const tabIndex = floatingFocusElement.getAttribute('tabindex');
|
|
1652
1677
|
const tabbableContent = getTabbableContent();
|
|
1653
1678
|
const activeEl = floatingUi_react_utils.activeElement(floatingUi_react_utils.getDocument(floating));
|
|
1654
1679
|
const tabbableIndex = tabbableContent.indexOf(activeEl);
|
|
@@ -1657,15 +1682,15 @@ function FloatingFocusManager(props) {
|
|
|
1657
1682
|
}
|
|
1658
1683
|
if (orderRef.current.includes('floating') || activeEl !== refs.domReference.current && tabbableContent.length === 0) {
|
|
1659
1684
|
if (tabIndex !== '0') {
|
|
1660
|
-
|
|
1685
|
+
floatingFocusElement.setAttribute('tabindex', '0');
|
|
1661
1686
|
}
|
|
1662
1687
|
} else if (tabIndex !== '-1') {
|
|
1663
|
-
|
|
1688
|
+
floatingFocusElement.setAttribute('tabindex', '-1');
|
|
1664
1689
|
}
|
|
1665
1690
|
};
|
|
1666
1691
|
handleMutation();
|
|
1667
1692
|
const observer = new MutationObserver(handleMutation);
|
|
1668
|
-
observer.observe(
|
|
1693
|
+
observer.observe(floatingFocusElement, {
|
|
1669
1694
|
childList: true,
|
|
1670
1695
|
subtree: true,
|
|
1671
1696
|
attributes: true
|
|
@@ -1673,7 +1698,7 @@ function FloatingFocusManager(props) {
|
|
|
1673
1698
|
return () => {
|
|
1674
1699
|
observer.disconnect();
|
|
1675
1700
|
};
|
|
1676
|
-
}, [disabled, floating,
|
|
1701
|
+
}, [disabled, floating, floatingFocusElement, refs, orderRef, getTabbableContent, ignoreInitialFocus]);
|
|
1677
1702
|
function renderDismissButton(location) {
|
|
1678
1703
|
if (disabled || !visuallyHiddenDismiss || !modal) {
|
|
1679
1704
|
return null;
|
|
@@ -2376,7 +2401,8 @@ function mergeProps(userProps, propsList, elementKey) {
|
|
|
2376
2401
|
}
|
|
2377
2402
|
return {
|
|
2378
2403
|
...(elementKey === 'floating' && {
|
|
2379
|
-
tabIndex: -1
|
|
2404
|
+
tabIndex: -1,
|
|
2405
|
+
[FOCUSABLE_ATTRIBUTE]: ''
|
|
2380
2406
|
}),
|
|
2381
2407
|
...domUserProps,
|
|
2382
2408
|
...propsList.map(value => {
|
|
@@ -2523,6 +2549,8 @@ function useListNavigation(context, props) {
|
|
|
2523
2549
|
warn('In grid list navigation mode (`cols` > 1), the `orientation` should', 'be either "horizontal" or "both".');
|
|
2524
2550
|
}
|
|
2525
2551
|
}
|
|
2552
|
+
const floatingFocusElement = getFloatingFocusElement(elements.floating);
|
|
2553
|
+
const floatingFocusElementRef = useLatestRef(floatingFocusElement);
|
|
2526
2554
|
const parentId = useFloatingParentNodeId();
|
|
2527
2555
|
const tree = useFloatingTree();
|
|
2528
2556
|
const onNavigate = useEffectEvent(unstable_onNavigate);
|
|
@@ -2538,7 +2566,6 @@ function useListNavigation(context, props) {
|
|
|
2538
2566
|
const disabledIndicesRef = useLatestRef(disabledIndices);
|
|
2539
2567
|
const latestOpenRef = useLatestRef(open);
|
|
2540
2568
|
const scrollItemIntoViewRef = useLatestRef(scrollItemIntoView);
|
|
2541
|
-
const floatingRef = useLatestRef(elements.floating);
|
|
2542
2569
|
const selectedIndexRef = useLatestRef(selectedIndex);
|
|
2543
2570
|
const [activeId, setActiveId] = React__namespace.useState();
|
|
2544
2571
|
const [virtualId, setVirtualId] = React__namespace.useState();
|
|
@@ -2754,7 +2781,7 @@ function useListNavigation(context, props) {
|
|
|
2754
2781
|
focusItem(listRef, indexRef);
|
|
2755
2782
|
onNavigate(null);
|
|
2756
2783
|
if (!virtual) {
|
|
2757
|
-
enqueueFocus(
|
|
2784
|
+
enqueueFocus(floatingFocusElementRef.current, {
|
|
2758
2785
|
preventScroll: true
|
|
2759
2786
|
});
|
|
2760
2787
|
}
|
|
@@ -2762,7 +2789,7 @@ function useListNavigation(context, props) {
|
|
|
2762
2789
|
})
|
|
2763
2790
|
};
|
|
2764
2791
|
return props;
|
|
2765
|
-
}, [open,
|
|
2792
|
+
}, [open, floatingFocusElementRef, focusItem, focusItemOnHover, listRef, onNavigate, virtual]);
|
|
2766
2793
|
const commonOnKeyDown = useEffectEvent(event => {
|
|
2767
2794
|
isPointerModalityRef.current = false;
|
|
2768
2795
|
forceSyncFocus.current = true;
|
|
@@ -2770,7 +2797,7 @@ function useListNavigation(context, props) {
|
|
|
2770
2797
|
// If the floating element is animating out, ignore navigation. Otherwise,
|
|
2771
2798
|
// the `activeIndex` gets set to 0 despite not being open so the next time
|
|
2772
2799
|
// the user ArrowDowns, the first item won't be focused.
|
|
2773
|
-
if (!latestOpenRef.current && event.currentTarget ===
|
|
2800
|
+
if (!latestOpenRef.current && event.currentTarget === floatingFocusElementRef.current) {
|
|
2774
2801
|
return;
|
|
2775
2802
|
}
|
|
2776
2803
|
if (nested && isCrossOrientationCloseKey(event.key, orientation, rtl)) {
|
|
@@ -2809,7 +2836,7 @@ function useListNavigation(context, props) {
|
|
|
2809
2836
|
const minGridIndex = cellMap.findIndex(index => index != null && !isDisabled(listRef.current, index, disabledIndices));
|
|
2810
2837
|
// last enabled index
|
|
2811
2838
|
const maxGridIndex = cellMap.reduce((foundIndex, index, cellIndex) => index != null && !isDisabled(listRef.current, index, disabledIndices) ? cellIndex : foundIndex, -1);
|
|
2812
|
-
|
|
2839
|
+
const index = cellMap[getGridNavigatedIndex({
|
|
2813
2840
|
current: cellMap.map(itemIndex => itemIndex != null ? listRef.current[itemIndex] : null)
|
|
2814
2841
|
}, {
|
|
2815
2842
|
event,
|
|
@@ -2827,9 +2854,11 @@ function useListNavigation(context, props) {
|
|
|
2827
2854
|
// top/left over bottom/right.
|
|
2828
2855
|
event.key === ARROW_DOWN ? 'bl' : event.key === ARROW_RIGHT ? 'tr' : 'tl'),
|
|
2829
2856
|
stopEvent: true
|
|
2830
|
-
})];
|
|
2831
|
-
|
|
2832
|
-
|
|
2857
|
+
})];
|
|
2858
|
+
if (index != null) {
|
|
2859
|
+
indexRef.current = index;
|
|
2860
|
+
onNavigate(indexRef.current);
|
|
2861
|
+
}
|
|
2833
2862
|
if (orientation === 'both') {
|
|
2834
2863
|
return;
|
|
2835
2864
|
}
|