@uppsala-designsystem/ui 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +7 -0
- package/README.md +9 -0
- package/dist/cjs/components/Alert/Alert.js +18 -0
- package/dist/cjs/components/Avatar/Avatar.js +31 -0
- package/dist/cjs/components/Badge/Badge.js +23 -0
- package/dist/cjs/components/Badge/BadgePosition.js +21 -0
- package/dist/cjs/components/Badge/index.js +17 -0
- package/dist/cjs/components/Breadcrumbs/Breadcrumbs.js +28 -0
- package/dist/cjs/components/Breadcrumbs/BreadcrumbsItem.js +11 -0
- package/dist/cjs/components/Breadcrumbs/BreadcrumbsLink.js +12 -0
- package/dist/cjs/components/Breadcrumbs/BreadcrumbsList.js +21 -0
- package/dist/cjs/components/Breadcrumbs/index.js +39 -0
- package/dist/cjs/components/Button/Button.js +25 -0
- package/dist/cjs/components/Card/Card.js +43 -0
- package/dist/cjs/components/Card/CardBlock.js +14 -0
- package/dist/cjs/components/Card/index.js +23 -0
- package/dist/cjs/components/Checkbox/Checkbox.js +21 -0
- package/dist/cjs/components/Chip/Chips.js +52 -0
- package/dist/cjs/components/Chip/index.js +21 -0
- package/dist/cjs/components/Details/Details.js +43 -0
- package/dist/cjs/components/Details/DetailsContent.js +17 -0
- package/dist/cjs/components/Details/DetailsSummary.js +18 -0
- package/dist/cjs/components/Details/index.js +26 -0
- package/dist/cjs/components/Dialog/Dialog.js +82 -0
- package/dist/cjs/components/Dialog/DialogBlock.js +30 -0
- package/dist/cjs/components/Dialog/DialogTrigger.js +33 -0
- package/dist/cjs/components/Dialog/DialogTriggerContext.js +28 -0
- package/dist/cjs/components/Dialog/index.js +34 -0
- package/dist/cjs/components/Divider/Divider.js +20 -0
- package/dist/cjs/components/Dropdown/Dropdown.js +40 -0
- package/dist/cjs/components/Dropdown/DropdownButton.js +12 -0
- package/dist/cjs/components/Dropdown/DropdownHeading.js +12 -0
- package/dist/cjs/components/Dropdown/DropdownItem.js +11 -0
- package/dist/cjs/components/Dropdown/DropdownList.js +11 -0
- package/dist/cjs/components/Dropdown/DropdownTrigger.js +13 -0
- package/dist/cjs/components/Dropdown/DropdownTriggerContext.js +29 -0
- package/dist/cjs/components/Dropdown/index.js +49 -0
- package/dist/cjs/components/ErrorSummary/ErrorSummary.js +37 -0
- package/dist/cjs/components/ErrorSummary/ErrorSummaryHeading.js +18 -0
- package/dist/cjs/components/ErrorSummary/ErrorSummaryItem.js +19 -0
- package/dist/cjs/components/ErrorSummary/ErrorSummaryLink.js +15 -0
- package/dist/cjs/components/ErrorSummary/ErrorSummaryList.js +12 -0
- package/dist/cjs/components/ErrorSummary/index.js +41 -0
- package/dist/cjs/components/Field/Field.js +28 -0
- package/dist/cjs/components/Field/FieldAffix.js +37 -0
- package/dist/cjs/components/Field/FieldCounter.js +40 -0
- package/dist/cjs/components/Field/FieldDescription.js +11 -0
- package/dist/cjs/components/Field/fieldObserver.js +102 -0
- package/dist/cjs/components/Field/index.js +35 -0
- package/dist/cjs/components/Fieldset/Fieldset.js +27 -0
- package/dist/cjs/components/Fieldset/FieldsetDescription.js +20 -0
- package/dist/cjs/components/Fieldset/FieldsetLegend.js +18 -0
- package/dist/cjs/components/Fieldset/index.js +32 -0
- package/dist/cjs/components/Heading/Heading.js +20 -0
- package/dist/cjs/components/InfoCard/InfoCard.js +24 -0
- package/dist/cjs/components/Input/Input.js +22 -0
- package/dist/cjs/components/Label/Label.js +20 -0
- package/dist/cjs/components/Link/Link.js +21 -0
- package/dist/cjs/components/List/ListItem.js +13 -0
- package/dist/cjs/components/List/Lists.js +41 -0
- package/dist/cjs/components/List/index.js +19 -0
- package/dist/cjs/components/Pagination/Pagination.js +32 -0
- package/dist/cjs/components/Pagination/PaginationButton.js +20 -0
- package/dist/cjs/components/Pagination/PaginationItem.js +23 -0
- package/dist/cjs/components/Pagination/PaginationList.js +25 -0
- package/dist/cjs/components/Pagination/index.js +39 -0
- package/dist/cjs/components/Paragraph/Paragraph.js +21 -0
- package/dist/cjs/components/Popover/Popover.js +135 -0
- package/dist/cjs/components/Popover/PopoverTrigger.js +45 -0
- package/dist/cjs/components/Popover/PopoverTriggerContext.js +27 -0
- package/dist/cjs/components/Popover/index.js +28 -0
- package/dist/cjs/components/Radio/Radio.js +21 -0
- package/dist/cjs/components/Search/Search.js +28 -0
- package/dist/cjs/components/Search/SearchButton.js +21 -0
- package/dist/cjs/components/Search/SearchClear.js +47 -0
- package/dist/cjs/components/Search/SearchInput.js +22 -0
- package/dist/cjs/components/Search/index.js +37 -0
- package/dist/cjs/components/Select/Select.js +31 -0
- package/dist/cjs/components/Select/SelectOptgroup.js +24 -0
- package/dist/cjs/components/Select/SelectOption.js +22 -0
- package/dist/cjs/components/Select/index.js +26 -0
- package/dist/cjs/components/Skeleton/Skeleton.js +27 -0
- package/dist/cjs/components/SkipLink/SkipLink.js +19 -0
- package/dist/cjs/components/Spinner/Spinner.js +23 -0
- package/dist/cjs/components/Suggestion/Suggestion.js +101 -0
- package/dist/cjs/components/Suggestion/SuggestionChips.js +13 -0
- package/dist/cjs/components/Suggestion/SuggestionClear.js +24 -0
- package/dist/cjs/components/Suggestion/SuggestionEmpty.js +23 -0
- package/dist/cjs/components/Suggestion/SuggestionInput.js +34 -0
- package/dist/cjs/components/Suggestion/SuggestionList.js +51 -0
- package/dist/cjs/components/Suggestion/SuggestionOption.js +11 -0
- package/dist/cjs/components/Suggestion/index.js +71 -0
- package/dist/cjs/components/Switch/Switch.js +20 -0
- package/dist/cjs/components/Table/Table.js +37 -0
- package/dist/cjs/components/Table/TableBody.js +22 -0
- package/dist/cjs/components/Table/TableCell.js +17 -0
- package/dist/cjs/components/Table/TableFoot.js +22 -0
- package/dist/cjs/components/Table/TableHead.js +22 -0
- package/dist/cjs/components/Table/TableHeaderCell.js +17 -0
- package/dist/cjs/components/Table/TableRow.js +20 -0
- package/dist/cjs/components/Table/index.js +59 -0
- package/dist/cjs/components/Tabs/Tabs.js +43 -0
- package/dist/cjs/components/Tabs/TabsList.js +23 -0
- package/dist/cjs/components/Tabs/TabsPanel.js +31 -0
- package/dist/cjs/components/Tabs/TabsTab.js +21 -0
- package/dist/cjs/components/Tabs/index.js +36 -0
- package/dist/cjs/components/Tag/Tag.js +18 -0
- package/dist/cjs/components/Textarea/Textarea.js +18 -0
- package/dist/cjs/components/Textfield/Textfield.js +27 -0
- package/dist/cjs/components/Timeline/Timeline.js +25 -0
- package/dist/cjs/components/Timeline/TimelineItem.js +23 -0
- package/dist/cjs/components/Timeline/index.js +27 -0
- package/dist/cjs/components/ToggleGroup/ToggleGroup.js +129 -0
- package/dist/cjs/components/ToggleGroup/ToggleGroupItem.js +20 -0
- package/dist/cjs/components/ToggleGroup/index.js +23 -0
- package/dist/cjs/components/ToggleGroup/useToggleGroupitem.js +32 -0
- package/dist/cjs/components/Tooltip/Tooltip.js +122 -0
- package/dist/cjs/components/ValidationMessage/ValidationMessage.js +20 -0
- package/dist/cjs/index.js +242 -0
- package/dist/cjs/layouts/Container/Container.js +19 -0
- package/dist/cjs/layouts/Grid/GridCol.js +12 -0
- package/dist/cjs/layouts/Grid/GridRow.js +12 -0
- package/dist/cjs/utilities/RovingFocus/RovingFocusItem.js +72 -0
- package/dist/cjs/utilities/RovingFocus/RovingFocusRoot.js +72 -0
- package/dist/cjs/utilities/RovingFocus/useRovingFocus.js +43 -0
- package/dist/cjs/utilities/hooks/useCheckboxGroup/useCheckboxGroup.js +121 -0
- package/dist/cjs/utilities/hooks/useDebounceCallback/useDebounceCallback.js +27 -0
- package/dist/cjs/utilities/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js +9 -0
- package/dist/cjs/utilities/hooks/useMediaQuery/useMediaQuery.js +49 -0
- package/dist/cjs/utilities/hooks/useMergeRefs/useMergeRefs.js +57 -0
- package/dist/cjs/utilities/hooks/usePagination/usePagination.js +97 -0
- package/dist/cjs/utilities/hooks/useRadioGroup/useRadioGroup.js +99 -0
- package/dist/cjs/utilities/hooks/useSynchronizedAnimation/useSynchronizedAnimation.js +48 -0
- package/dist/cjs/utilities/omit/omit.js +28 -0
- package/dist/esm/components/Alert/Alert.js +16 -0
- package/dist/esm/components/Avatar/Avatar.js +29 -0
- package/dist/esm/components/Badge/Badge.js +21 -0
- package/dist/esm/components/Badge/BadgePosition.js +19 -0
- package/dist/esm/components/Badge/index.js +14 -0
- package/dist/esm/components/Breadcrumbs/Breadcrumbs.js +26 -0
- package/dist/esm/components/Breadcrumbs/BreadcrumbsItem.js +9 -0
- package/dist/esm/components/Breadcrumbs/BreadcrumbsLink.js +10 -0
- package/dist/esm/components/Breadcrumbs/BreadcrumbsList.js +19 -0
- package/dist/esm/components/Breadcrumbs/index.js +34 -0
- package/dist/esm/components/Button/Button.js +23 -0
- package/dist/esm/components/Card/Card.js +41 -0
- package/dist/esm/components/Card/CardBlock.js +12 -0
- package/dist/esm/components/Card/index.js +20 -0
- package/dist/esm/components/Checkbox/Checkbox.js +19 -0
- package/dist/esm/components/Chip/Chips.js +47 -0
- package/dist/esm/components/Chip/index.js +15 -0
- package/dist/esm/components/Details/Details.js +41 -0
- package/dist/esm/components/Details/DetailsContent.js +15 -0
- package/dist/esm/components/Details/DetailsSummary.js +16 -0
- package/dist/esm/components/Details/index.js +22 -0
- package/dist/esm/components/Dialog/Dialog.js +80 -0
- package/dist/esm/components/Dialog/DialogBlock.js +28 -0
- package/dist/esm/components/Dialog/DialogTrigger.js +31 -0
- package/dist/esm/components/Dialog/DialogTriggerContext.js +25 -0
- package/dist/esm/components/Dialog/index.js +29 -0
- package/dist/esm/components/Divider/Divider.js +18 -0
- package/dist/esm/components/Dropdown/Dropdown.js +38 -0
- package/dist/esm/components/Dropdown/DropdownButton.js +10 -0
- package/dist/esm/components/Dropdown/DropdownHeading.js +10 -0
- package/dist/esm/components/Dropdown/DropdownItem.js +9 -0
- package/dist/esm/components/Dropdown/DropdownList.js +9 -0
- package/dist/esm/components/Dropdown/DropdownTrigger.js +11 -0
- package/dist/esm/components/Dropdown/DropdownTriggerContext.js +27 -0
- package/dist/esm/components/Dropdown/index.js +41 -0
- package/dist/esm/components/ErrorSummary/ErrorSummary.js +34 -0
- package/dist/esm/components/ErrorSummary/ErrorSummaryHeading.js +16 -0
- package/dist/esm/components/ErrorSummary/ErrorSummaryItem.js +17 -0
- package/dist/esm/components/ErrorSummary/ErrorSummaryLink.js +13 -0
- package/dist/esm/components/ErrorSummary/ErrorSummaryList.js +10 -0
- package/dist/esm/components/ErrorSummary/index.js +35 -0
- package/dist/esm/components/Field/Field.js +26 -0
- package/dist/esm/components/Field/FieldAffix.js +34 -0
- package/dist/esm/components/Field/FieldCounter.js +38 -0
- package/dist/esm/components/Field/FieldDescription.js +9 -0
- package/dist/esm/components/Field/fieldObserver.js +97 -0
- package/dist/esm/components/Field/index.js +29 -0
- package/dist/esm/components/Fieldset/Fieldset.js +25 -0
- package/dist/esm/components/Fieldset/FieldsetDescription.js +18 -0
- package/dist/esm/components/Fieldset/FieldsetLegend.js +16 -0
- package/dist/esm/components/Fieldset/index.js +28 -0
- package/dist/esm/components/Heading/Heading.js +18 -0
- package/dist/esm/components/InfoCard/InfoCard.js +22 -0
- package/dist/esm/components/Input/Input.js +20 -0
- package/dist/esm/components/Label/Label.js +18 -0
- package/dist/esm/components/Link/Link.js +19 -0
- package/dist/esm/components/List/ListItem.js +11 -0
- package/dist/esm/components/List/Lists.js +38 -0
- package/dist/esm/components/List/index.js +14 -0
- package/dist/esm/components/Pagination/Pagination.js +30 -0
- package/dist/esm/components/Pagination/PaginationButton.js +18 -0
- package/dist/esm/components/Pagination/PaginationItem.js +21 -0
- package/dist/esm/components/Pagination/PaginationList.js +23 -0
- package/dist/esm/components/Pagination/index.js +34 -0
- package/dist/esm/components/Paragraph/Paragraph.js +19 -0
- package/dist/esm/components/Popover/Popover.js +133 -0
- package/dist/esm/components/Popover/PopoverTrigger.js +43 -0
- package/dist/esm/components/Popover/PopoverTriggerContext.js +24 -0
- package/dist/esm/components/Popover/index.js +24 -0
- package/dist/esm/components/Radio/Radio.js +19 -0
- package/dist/esm/components/Search/Search.js +26 -0
- package/dist/esm/components/Search/SearchButton.js +19 -0
- package/dist/esm/components/Search/SearchClear.js +44 -0
- package/dist/esm/components/Search/SearchInput.js +20 -0
- package/dist/esm/components/Search/index.js +32 -0
- package/dist/esm/components/Select/Select.js +29 -0
- package/dist/esm/components/Select/SelectOptgroup.js +22 -0
- package/dist/esm/components/Select/SelectOption.js +20 -0
- package/dist/esm/components/Select/index.js +22 -0
- package/dist/esm/components/Skeleton/Skeleton.js +25 -0
- package/dist/esm/components/SkipLink/SkipLink.js +17 -0
- package/dist/esm/components/Spinner/Spinner.js +21 -0
- package/dist/esm/components/Suggestion/Suggestion.js +98 -0
- package/dist/esm/components/Suggestion/SuggestionChips.js +11 -0
- package/dist/esm/components/Suggestion/SuggestionClear.js +22 -0
- package/dist/esm/components/Suggestion/SuggestionEmpty.js +21 -0
- package/dist/esm/components/Suggestion/SuggestionInput.js +32 -0
- package/dist/esm/components/Suggestion/SuggestionList.js +49 -0
- package/dist/esm/components/Suggestion/SuggestionOption.js +9 -0
- package/dist/esm/components/Suggestion/index.js +56 -0
- package/dist/esm/components/Switch/Switch.js +18 -0
- package/dist/esm/components/Table/Table.js +35 -0
- package/dist/esm/components/Table/TableBody.js +20 -0
- package/dist/esm/components/Table/TableCell.js +15 -0
- package/dist/esm/components/Table/TableFoot.js +20 -0
- package/dist/esm/components/Table/TableHead.js +20 -0
- package/dist/esm/components/Table/TableHeaderCell.js +15 -0
- package/dist/esm/components/Table/TableRow.js +18 -0
- package/dist/esm/components/Table/index.js +51 -0
- package/dist/esm/components/Tabs/Tabs.js +40 -0
- package/dist/esm/components/Tabs/TabsList.js +21 -0
- package/dist/esm/components/Tabs/TabsPanel.js +29 -0
- package/dist/esm/components/Tabs/TabsTab.js +19 -0
- package/dist/esm/components/Tabs/index.js +31 -0
- package/dist/esm/components/Tag/Tag.js +16 -0
- package/dist/esm/components/Textarea/Textarea.js +16 -0
- package/dist/esm/components/Textfield/Textfield.js +25 -0
- package/dist/esm/components/Timeline/Timeline.js +23 -0
- package/dist/esm/components/Timeline/TimelineItem.js +21 -0
- package/dist/esm/components/Timeline/index.js +24 -0
- package/dist/esm/components/ToggleGroup/ToggleGroup.js +126 -0
- package/dist/esm/components/ToggleGroup/ToggleGroupItem.js +18 -0
- package/dist/esm/components/ToggleGroup/index.js +20 -0
- package/dist/esm/components/ToggleGroup/useToggleGroupitem.js +30 -0
- package/dist/esm/components/Tooltip/Tooltip.js +120 -0
- package/dist/esm/components/ValidationMessage/ValidationMessage.js +18 -0
- package/dist/esm/index.js +112 -0
- package/dist/esm/layouts/Container/Container.js +17 -0
- package/dist/esm/layouts/Grid/GridCol.js +10 -0
- package/dist/esm/layouts/Grid/GridRow.js +10 -0
- package/dist/esm/utilities/RovingFocus/RovingFocusItem.js +68 -0
- package/dist/esm/utilities/RovingFocus/RovingFocusRoot.js +69 -0
- package/dist/esm/utilities/RovingFocus/useRovingFocus.js +41 -0
- package/dist/esm/utilities/hooks/useCheckboxGroup/useCheckboxGroup.js +119 -0
- package/dist/esm/utilities/hooks/useDebounceCallback/useDebounceCallback.js +25 -0
- package/dist/esm/utilities/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js +7 -0
- package/dist/esm/utilities/hooks/useMediaQuery/useMediaQuery.js +47 -0
- package/dist/esm/utilities/hooks/useMergeRefs/useMergeRefs.js +55 -0
- package/dist/esm/utilities/hooks/usePagination/usePagination.js +95 -0
- package/dist/esm/utilities/hooks/useRadioGroup/useRadioGroup.js +97 -0
- package/dist/esm/utilities/hooks/useSynchronizedAnimation/useSynchronizedAnimation.js +46 -0
- package/dist/esm/utilities/omit/omit.js +26 -0
- package/dist/react-types.d.ts +11 -0
- package/dist/types/colors.d.ts +24 -0
- package/dist/types/colors.d.ts.map +1 -0
- package/dist/types/components/Alert/Alert.d.ts +27 -0
- package/dist/types/components/Alert/Alert.d.ts.map +1 -0
- package/dist/types/components/Alert/index.d.ts +3 -0
- package/dist/types/components/Alert/index.d.ts.map +1 -0
- package/dist/types/components/Avatar/Avatar.d.ts +72 -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 +58 -0
- package/dist/types/components/Badge/Badge.d.ts.map +1 -0
- package/dist/types/components/Badge/BadgePosition.d.ts +41 -0
- package/dist/types/components/Badge/BadgePosition.d.ts.map +1 -0
- package/dist/types/components/Badge/index.d.ts +23 -0
- package/dist/types/components/Badge/index.d.ts.map +1 -0
- package/dist/types/components/Breadcrumbs/Breadcrumbs.d.ts +36 -0
- package/dist/types/components/Breadcrumbs/Breadcrumbs.d.ts.map +1 -0
- package/dist/types/components/Breadcrumbs/BreadcrumbsItem.d.ts +4 -0
- package/dist/types/components/Breadcrumbs/BreadcrumbsItem.d.ts.map +1 -0
- package/dist/types/components/Breadcrumbs/BreadcrumbsLink.d.ts +7 -0
- package/dist/types/components/Breadcrumbs/BreadcrumbsLink.d.ts.map +1 -0
- package/dist/types/components/Breadcrumbs/BreadcrumbsList.d.ts +4 -0
- package/dist/types/components/Breadcrumbs/BreadcrumbsList.d.ts.map +1 -0
- package/dist/types/components/Breadcrumbs/index.d.ts +37 -0
- package/dist/types/components/Breadcrumbs/index.d.ts.map +1 -0
- package/dist/types/components/Button/Button.d.ts +77 -0
- package/dist/types/components/Button/Button.d.ts.map +1 -0
- package/dist/types/components/Button/index.d.ts +3 -0
- package/dist/types/components/Button/index.d.ts.map +1 -0
- package/dist/types/components/Card/Card.d.ts +44 -0
- package/dist/types/components/Card/Card.d.ts.map +1 -0
- package/dist/types/components/Card/CardBlock.d.ts +16 -0
- package/dist/types/components/Card/CardBlock.d.ts.map +1 -0
- package/dist/types/components/Card/index.d.ts +24 -0
- package/dist/types/components/Card/index.d.ts.map +1 -0
- package/dist/types/components/Checkbox/Checkbox.d.ts +34 -0
- package/dist/types/components/Checkbox/Checkbox.d.ts.map +1 -0
- package/dist/types/components/Checkbox/index.d.ts +3 -0
- package/dist/types/components/Checkbox/index.d.ts.map +1 -0
- package/dist/types/components/Chip/Chips.d.ts +43 -0
- package/dist/types/components/Chip/Chips.d.ts.map +1 -0
- package/dist/types/components/Chip/index.d.ts +18 -0
- package/dist/types/components/Chip/index.d.ts.map +1 -0
- package/dist/types/components/Details/Details.d.ts +50 -0
- package/dist/types/components/Details/Details.d.ts.map +1 -0
- package/dist/types/components/Details/DetailsContent.d.ts +10 -0
- package/dist/types/components/Details/DetailsContent.d.ts.map +1 -0
- package/dist/types/components/Details/DetailsSummary.d.ts +16 -0
- package/dist/types/components/Details/DetailsSummary.d.ts.map +1 -0
- package/dist/types/components/Details/index.d.ts +22 -0
- package/dist/types/components/Details/index.d.ts.map +1 -0
- package/dist/types/components/Dialog/Dialog.d.ts +95 -0
- package/dist/types/components/Dialog/Dialog.d.ts.map +1 -0
- package/dist/types/components/Dialog/DialogBlock.d.ts +32 -0
- package/dist/types/components/Dialog/DialogBlock.d.ts.map +1 -0
- package/dist/types/components/Dialog/DialogTrigger.d.ts +23 -0
- package/dist/types/components/Dialog/DialogTrigger.d.ts.map +1 -0
- package/dist/types/components/Dialog/DialogTriggerContext.d.ts +21 -0
- package/dist/types/components/Dialog/DialogTriggerContext.d.ts.map +1 -0
- package/dist/types/components/Dialog/index.d.ts +46 -0
- package/dist/types/components/Dialog/index.d.ts.map +1 -0
- package/dist/types/components/Divider/Divider.d.ts +10 -0
- package/dist/types/components/Divider/Divider.d.ts.map +1 -0
- package/dist/types/components/Divider/index.d.ts +3 -0
- package/dist/types/components/Divider/index.d.ts.map +1 -0
- package/dist/types/components/Dropdown/Dropdown.d.ts +46 -0
- package/dist/types/components/Dropdown/Dropdown.d.ts.map +1 -0
- package/dist/types/components/Dropdown/DropdownButton.d.ts +4 -0
- package/dist/types/components/Dropdown/DropdownButton.d.ts.map +1 -0
- package/dist/types/components/Dropdown/DropdownHeading.d.ts +9 -0
- package/dist/types/components/Dropdown/DropdownHeading.d.ts.map +1 -0
- package/dist/types/components/Dropdown/DropdownItem.d.ts +4 -0
- package/dist/types/components/Dropdown/DropdownItem.d.ts.map +1 -0
- package/dist/types/components/Dropdown/DropdownList.d.ts +4 -0
- package/dist/types/components/Dropdown/DropdownList.d.ts.map +1 -0
- package/dist/types/components/Dropdown/DropdownTrigger.d.ts +4 -0
- package/dist/types/components/Dropdown/DropdownTrigger.d.ts.map +1 -0
- package/dist/types/components/Dropdown/DropdownTriggerContext.d.ts +25 -0
- package/dist/types/components/Dropdown/DropdownTriggerContext.d.ts.map +1 -0
- package/dist/types/components/Dropdown/index.d.ts +48 -0
- package/dist/types/components/Dropdown/index.d.ts.map +1 -0
- package/dist/types/components/ErrorSummary/ErrorSummary.d.ts +31 -0
- package/dist/types/components/ErrorSummary/ErrorSummary.d.ts.map +1 -0
- package/dist/types/components/ErrorSummary/ErrorSummaryHeading.d.ts +9 -0
- package/dist/types/components/ErrorSummary/ErrorSummaryHeading.d.ts.map +1 -0
- package/dist/types/components/ErrorSummary/ErrorSummaryItem.d.ts +12 -0
- package/dist/types/components/ErrorSummary/ErrorSummaryItem.d.ts.map +1 -0
- package/dist/types/components/ErrorSummary/ErrorSummaryLink.d.ts +10 -0
- package/dist/types/components/ErrorSummary/ErrorSummaryLink.d.ts.map +1 -0
- package/dist/types/components/ErrorSummary/ErrorSummaryList.d.ts +6 -0
- package/dist/types/components/ErrorSummary/ErrorSummaryList.d.ts.map +1 -0
- package/dist/types/components/ErrorSummary/index.d.ts +47 -0
- package/dist/types/components/ErrorSummary/index.d.ts.map +1 -0
- package/dist/types/components/Field/Field.d.ts +28 -0
- package/dist/types/components/Field/Field.d.ts.map +1 -0
- package/dist/types/components/Field/FieldAffix.d.ts +27 -0
- package/dist/types/components/Field/FieldAffix.d.ts.map +1 -0
- package/dist/types/components/Field/FieldCounter.d.ts +58 -0
- package/dist/types/components/Field/FieldCounter.d.ts.map +1 -0
- package/dist/types/components/Field/FieldDescription.d.ts +4 -0
- package/dist/types/components/Field/FieldDescription.d.ts.map +1 -0
- package/dist/types/components/Field/fieldObserver.d.ts +5 -0
- package/dist/types/components/Field/fieldObserver.d.ts.map +1 -0
- package/dist/types/components/Field/index.d.ts +35 -0
- package/dist/types/components/Field/index.d.ts.map +1 -0
- package/dist/types/components/Fieldset/Fieldset.d.ts +20 -0
- package/dist/types/components/Fieldset/Fieldset.d.ts.map +1 -0
- package/dist/types/components/Fieldset/FieldsetDescription.d.ts +16 -0
- package/dist/types/components/Fieldset/FieldsetDescription.d.ts.map +1 -0
- package/dist/types/components/Fieldset/FieldsetLegend.d.ts +11 -0
- package/dist/types/components/Fieldset/FieldsetLegend.d.ts.map +1 -0
- package/dist/types/components/Fieldset/index.d.ts +30 -0
- package/dist/types/components/Fieldset/index.d.ts.map +1 -0
- package/dist/types/components/Heading/Heading.d.ts +52 -0
- package/dist/types/components/Heading/Heading.d.ts.map +1 -0
- package/dist/types/components/Heading/index.d.ts +3 -0
- package/dist/types/components/Heading/index.d.ts.map +1 -0
- package/dist/types/components/InfoCard/InfoCard.d.ts +32 -0
- package/dist/types/components/InfoCard/InfoCard.d.ts.map +1 -0
- package/dist/types/components/InfoCard/index.d.ts +3 -0
- package/dist/types/components/InfoCard/index.d.ts.map +1 -0
- package/dist/types/components/Input/Input.d.ts +62 -0
- package/dist/types/components/Input/Input.d.ts.map +1 -0
- package/dist/types/components/Input/index.d.ts +3 -0
- package/dist/types/components/Input/index.d.ts.map +1 -0
- package/dist/types/components/Label/Label.d.ts +33 -0
- package/dist/types/components/Label/Label.d.ts.map +1 -0
- package/dist/types/components/Label/index.d.ts +3 -0
- package/dist/types/components/Label/index.d.ts.map +1 -0
- package/dist/types/components/Link/Link.d.ts +32 -0
- package/dist/types/components/Link/Link.d.ts.map +1 -0
- package/dist/types/components/Link/index.d.ts +3 -0
- package/dist/types/components/Link/index.d.ts.map +1 -0
- package/dist/types/components/List/ListItem.d.ts +16 -0
- package/dist/types/components/List/ListItem.d.ts.map +1 -0
- package/dist/types/components/List/Lists.d.ts +47 -0
- package/dist/types/components/List/Lists.d.ts.map +1 -0
- package/dist/types/components/List/index.d.ts +17 -0
- package/dist/types/components/List/index.d.ts.map +1 -0
- package/dist/types/components/Pagination/Pagination.d.ts +46 -0
- package/dist/types/components/Pagination/Pagination.d.ts.map +1 -0
- package/dist/types/components/Pagination/PaginationButton.d.ts +25 -0
- package/dist/types/components/Pagination/PaginationButton.d.ts.map +1 -0
- package/dist/types/components/Pagination/PaginationItem.d.ts +26 -0
- package/dist/types/components/Pagination/PaginationItem.d.ts.map +1 -0
- package/dist/types/components/Pagination/PaginationList.d.ts +28 -0
- package/dist/types/components/Pagination/PaginationList.d.ts.map +1 -0
- package/dist/types/components/Pagination/index.d.ts +41 -0
- package/dist/types/components/Pagination/index.d.ts.map +1 -0
- package/dist/types/components/Paragraph/Paragraph.d.ts +41 -0
- package/dist/types/components/Paragraph/Paragraph.d.ts.map +1 -0
- package/dist/types/components/Paragraph/index.d.ts +3 -0
- package/dist/types/components/Paragraph/index.d.ts.map +1 -0
- package/dist/types/components/Popover/Popover.d.ts +123 -0
- package/dist/types/components/Popover/Popover.d.ts.map +1 -0
- package/dist/types/components/Popover/PopoverTrigger.d.ts +44 -0
- package/dist/types/components/Popover/PopoverTrigger.d.ts.map +1 -0
- package/dist/types/components/Popover/PopoverTriggerContext.d.ts +24 -0
- package/dist/types/components/Popover/PopoverTriggerContext.d.ts.map +1 -0
- package/dist/types/components/Popover/index.d.ts +35 -0
- package/dist/types/components/Popover/index.d.ts.map +1 -0
- package/dist/types/components/Radio/Radio.d.ts +34 -0
- package/dist/types/components/Radio/Radio.d.ts.map +1 -0
- package/dist/types/components/Radio/index.d.ts +3 -0
- package/dist/types/components/Radio/index.d.ts.map +1 -0
- package/dist/types/components/Search/Search.d.ts +20 -0
- package/dist/types/components/Search/Search.d.ts.map +1 -0
- package/dist/types/components/Search/SearchButton.d.ts +33 -0
- package/dist/types/components/Search/SearchButton.d.ts.map +1 -0
- package/dist/types/components/Search/SearchClear.d.ts +32 -0
- package/dist/types/components/Search/SearchClear.d.ts.map +1 -0
- package/dist/types/components/Search/SearchInput.d.ts +12 -0
- package/dist/types/components/Search/SearchInput.d.ts.map +1 -0
- package/dist/types/components/Search/index.d.ts +39 -0
- package/dist/types/components/Search/index.d.ts.map +1 -0
- package/dist/types/components/Select/Select.d.ts +38 -0
- package/dist/types/components/Select/Select.d.ts.map +1 -0
- package/dist/types/components/Select/SelectOptgroup.d.ts +27 -0
- package/dist/types/components/Select/SelectOptgroup.d.ts.map +1 -0
- package/dist/types/components/Select/SelectOption.d.ts +25 -0
- package/dist/types/components/Select/SelectOption.d.ts.map +1 -0
- package/dist/types/components/Select/index.d.ts +27 -0
- package/dist/types/components/Select/index.d.ts.map +1 -0
- package/dist/types/components/Skeleton/Skeleton.d.ts +37 -0
- package/dist/types/components/Skeleton/Skeleton.d.ts.map +1 -0
- package/dist/types/components/Skeleton/index.d.ts +3 -0
- package/dist/types/components/Skeleton/index.d.ts.map +1 -0
- package/dist/types/components/SkipLink/SkipLink.d.ts +31 -0
- package/dist/types/components/SkipLink/SkipLink.d.ts.map +1 -0
- package/dist/types/components/SkipLink/index.d.ts +3 -0
- package/dist/types/components/SkipLink/index.d.ts.map +1 -0
- package/dist/types/components/Spinner/Spinner.d.ts +25 -0
- package/dist/types/components/Spinner/Spinner.d.ts.map +1 -0
- package/dist/types/components/Spinner/index.d.ts +3 -0
- package/dist/types/components/Spinner/index.d.ts.map +1 -0
- package/dist/types/components/Suggestion/Suggestion.d.ts +199 -0
- package/dist/types/components/Suggestion/Suggestion.d.ts.map +1 -0
- package/dist/types/components/Suggestion/SuggestionChips.d.ts +11 -0
- package/dist/types/components/Suggestion/SuggestionChips.d.ts.map +1 -0
- package/dist/types/components/Suggestion/SuggestionClear.d.ts +28 -0
- package/dist/types/components/Suggestion/SuggestionClear.d.ts.map +1 -0
- package/dist/types/components/Suggestion/SuggestionEmpty.d.ts +15 -0
- package/dist/types/components/Suggestion/SuggestionEmpty.d.ts.map +1 -0
- package/dist/types/components/Suggestion/SuggestionInput.d.ts +33 -0
- package/dist/types/components/Suggestion/SuggestionInput.d.ts.map +1 -0
- package/dist/types/components/Suggestion/SuggestionList.d.ts +40 -0
- package/dist/types/components/Suggestion/SuggestionList.d.ts.map +1 -0
- package/dist/types/components/Suggestion/SuggestionOption.d.ts +5 -0
- package/dist/types/components/Suggestion/SuggestionOption.d.ts.map +1 -0
- package/dist/types/components/Suggestion/index.d.ts +138 -0
- package/dist/types/components/Suggestion/index.d.ts.map +1 -0
- package/dist/types/components/Switch/Switch.d.ts +36 -0
- package/dist/types/components/Switch/Switch.d.ts.map +1 -0
- package/dist/types/components/Switch/index.d.ts +3 -0
- package/dist/types/components/Switch/index.d.ts.map +1 -0
- package/dist/types/components/Table/Table.d.ts +72 -0
- package/dist/types/components/Table/Table.d.ts.map +1 -0
- package/dist/types/components/Table/TableBody.d.ts +15 -0
- package/dist/types/components/Table/TableBody.d.ts.map +1 -0
- package/dist/types/components/Table/TableCell.d.ts +10 -0
- package/dist/types/components/Table/TableCell.d.ts.map +1 -0
- package/dist/types/components/Table/TableFoot.d.ts +15 -0
- package/dist/types/components/Table/TableFoot.d.ts.map +1 -0
- package/dist/types/components/Table/TableHead.d.ts +15 -0
- package/dist/types/components/Table/TableHead.d.ts.map +1 -0
- package/dist/types/components/Table/TableHeaderCell.d.ts +23 -0
- package/dist/types/components/Table/TableHeaderCell.d.ts.map +1 -0
- package/dist/types/components/Table/TableRow.d.ts +13 -0
- package/dist/types/components/Table/TableRow.d.ts.map +1 -0
- package/dist/types/components/Table/index.d.ts +56 -0
- package/dist/types/components/Table/index.d.ts.map +1 -0
- package/dist/types/components/Tabs/Tabs.d.ts +59 -0
- package/dist/types/components/Tabs/Tabs.d.ts.map +1 -0
- package/dist/types/components/Tabs/TabsList.d.ts +13 -0
- package/dist/types/components/Tabs/TabsList.d.ts.map +1 -0
- package/dist/types/components/Tabs/TabsPanel.d.ts +22 -0
- package/dist/types/components/Tabs/TabsPanel.d.ts.map +1 -0
- package/dist/types/components/Tabs/TabsTab.d.ts +20 -0
- package/dist/types/components/Tabs/TabsTab.d.ts.map +1 -0
- package/dist/types/components/Tabs/index.d.ts +37 -0
- package/dist/types/components/Tabs/index.d.ts.map +1 -0
- package/dist/types/components/Tag/Tag.d.ts +23 -0
- package/dist/types/components/Tag/Tag.d.ts.map +1 -0
- package/dist/types/components/Tag/index.d.ts +3 -0
- package/dist/types/components/Tag/index.d.ts.map +1 -0
- package/dist/types/components/Textarea/Textarea.d.ts +11 -0
- package/dist/types/components/Textarea/Textarea.d.ts.map +1 -0
- package/dist/types/components/Textarea/index.d.ts +3 -0
- package/dist/types/components/Textarea/index.d.ts.map +1 -0
- package/dist/types/components/Textfield/Textfield.d.ts +74 -0
- package/dist/types/components/Textfield/Textfield.d.ts.map +1 -0
- package/dist/types/components/Textfield/index.d.ts +3 -0
- package/dist/types/components/Textfield/index.d.ts.map +1 -0
- package/dist/types/components/Timeline/Timeline.d.ts +35 -0
- package/dist/types/components/Timeline/Timeline.d.ts.map +1 -0
- package/dist/types/components/Timeline/TimelineItem.d.ts +21 -0
- package/dist/types/components/Timeline/TimelineItem.d.ts.map +1 -0
- package/dist/types/components/Timeline/index.d.ts +27 -0
- package/dist/types/components/Timeline/index.d.ts.map +1 -0
- package/dist/types/components/ToggleGroup/ToggleGroup.d.ts +67 -0
- package/dist/types/components/ToggleGroup/ToggleGroup.d.ts.map +1 -0
- package/dist/types/components/ToggleGroup/ToggleGroupItem.d.ts +21 -0
- package/dist/types/components/ToggleGroup/ToggleGroupItem.d.ts.map +1 -0
- package/dist/types/components/ToggleGroup/index.d.ts +26 -0
- package/dist/types/components/ToggleGroup/index.d.ts.map +1 -0
- package/dist/types/components/ToggleGroup/useToggleGroupitem.d.ts +11 -0
- package/dist/types/components/ToggleGroup/useToggleGroupitem.d.ts.map +1 -0
- package/dist/types/components/Tooltip/Tooltip.d.ts +63 -0
- package/dist/types/components/Tooltip/Tooltip.d.ts.map +1 -0
- package/dist/types/components/Tooltip/index.d.ts +3 -0
- package/dist/types/components/Tooltip/index.d.ts.map +1 -0
- package/dist/types/components/ValidationMessage/ValidationMessage.d.ts +35 -0
- package/dist/types/components/ValidationMessage/ValidationMessage.d.ts.map +1 -0
- package/dist/types/components/ValidationMessage/index.d.ts +3 -0
- package/dist/types/components/ValidationMessage/index.d.ts.map +1 -0
- package/dist/types/components/index.d.ts +42 -0
- package/dist/types/components/index.d.ts.map +1 -0
- package/dist/types/index.d.ts +5 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/layouts/Container/Container.d.ts +10 -0
- package/dist/types/layouts/Container/Container.d.ts.map +1 -0
- package/dist/types/layouts/Container/index.d.ts +2 -0
- package/dist/types/layouts/Container/index.d.ts.map +1 -0
- package/dist/types/layouts/Grid/GridCol.d.ts +20 -0
- package/dist/types/layouts/Grid/GridCol.d.ts.map +1 -0
- package/dist/types/layouts/Grid/GridRow.d.ts +6 -0
- package/dist/types/layouts/Grid/GridRow.d.ts.map +1 -0
- package/dist/types/layouts/Grid/index.d.ts +5 -0
- package/dist/types/layouts/Grid/index.d.ts.map +1 -0
- package/dist/types/layouts/index.d.ts +3 -0
- package/dist/types/layouts/index.d.ts.map +1 -0
- package/dist/types/types.d.ts +28 -0
- package/dist/types/types.d.ts.map +1 -0
- package/dist/types/utilities/RovingFocus/RovingFocusItem.d.ts +16 -0
- package/dist/types/utilities/RovingFocus/RovingFocusItem.d.ts.map +1 -0
- package/dist/types/utilities/RovingFocus/RovingFocusRoot.d.ts +33 -0
- package/dist/types/utilities/RovingFocus/RovingFocusRoot.d.ts.map +1 -0
- package/dist/types/utilities/RovingFocus/index.d.ts +4 -0
- package/dist/types/utilities/RovingFocus/index.d.ts.map +1 -0
- package/dist/types/utilities/RovingFocus/useRovingFocus.d.ts +295 -0
- package/dist/types/utilities/RovingFocus/useRovingFocus.d.ts.map +1 -0
- package/dist/types/utilities/hooks/index.d.ts +12 -0
- package/dist/types/utilities/hooks/index.d.ts.map +1 -0
- package/dist/types/utilities/hooks/useCheckboxGroup/useCheckboxGroup.d.ts +64 -0
- package/dist/types/utilities/hooks/useCheckboxGroup/useCheckboxGroup.d.ts.map +1 -0
- package/dist/types/utilities/hooks/useDebounceCallback/useDebounceCallback.d.ts +4 -0
- package/dist/types/utilities/hooks/useDebounceCallback/useDebounceCallback.d.ts.map +1 -0
- package/dist/types/utilities/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.d.ts +3 -0
- package/dist/types/utilities/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.d.ts.map +1 -0
- package/dist/types/utilities/hooks/useMediaQuery/useMediaQuery.d.ts +7 -0
- package/dist/types/utilities/hooks/useMediaQuery/useMediaQuery.d.ts.map +1 -0
- package/dist/types/utilities/hooks/useMergeRefs/useMergeRefs.d.ts +6 -0
- package/dist/types/utilities/hooks/useMergeRefs/useMergeRefs.d.ts.map +1 -0
- package/dist/types/utilities/hooks/usePagination/usePagination.d.ts +82 -0
- package/dist/types/utilities/hooks/usePagination/usePagination.d.ts.map +1 -0
- package/dist/types/utilities/hooks/useRadioGroup/useRadioGroup.d.ts +56 -0
- package/dist/types/utilities/hooks/useRadioGroup/useRadioGroup.d.ts.map +1 -0
- package/dist/types/utilities/hooks/useSynchronizedAnimation/useSynchronizedAnimation.d.ts +14 -0
- package/dist/types/utilities/hooks/useSynchronizedAnimation/useSynchronizedAnimation.d.ts.map +1 -0
- package/dist/types/utilities/index.d.ts +5 -0
- package/dist/types/utilities/index.d.ts.map +1 -0
- package/dist/types/utilities/omit/omit.d.ts +11 -0
- package/dist/types/utilities/omit/omit.d.ts.map +1 -0
- package/dist/types/utilities/types.d.ts +6 -0
- package/dist/types/utilities/types.d.ts.map +1 -0
- package/package.json +83 -0
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
5
|
+
var dom = require('@floating-ui/dom');
|
|
6
|
+
var react$1 = require('@floating-ui/react');
|
|
7
|
+
var reactSlot = require('@radix-ui/react-slot');
|
|
8
|
+
var cl = require('clsx/lite');
|
|
9
|
+
var react = require('react');
|
|
10
|
+
var PopoverTriggerContext = require('./PopoverTriggerContext.js');
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Popover component, used to display content in a popover over an element.
|
|
14
|
+
*
|
|
15
|
+
* @example with TriggerContext
|
|
16
|
+
* <Popover.TriggerContext>
|
|
17
|
+
* <Popover.Trigger>Open Popover</Popover.Trigger>
|
|
18
|
+
* <Popover>
|
|
19
|
+
* Content
|
|
20
|
+
* </Popover>
|
|
21
|
+
* </Popover.TriggerContext>
|
|
22
|
+
*
|
|
23
|
+
* @example without TriggerContext
|
|
24
|
+
* <Button popovertarget="my-popover">Open Popover</Button>
|
|
25
|
+
* <Popover id="my-popover">
|
|
26
|
+
* Content
|
|
27
|
+
* </Popover>
|
|
28
|
+
*/
|
|
29
|
+
const Popover = react.forwardRef(function Popover({ id, className, onClose, onOpen, open, variant = 'default', placement = 'top', autoPlacement = true, asChild = false, ...rest }, ref) {
|
|
30
|
+
const Component = asChild ? reactSlot.Slot : 'div';
|
|
31
|
+
const popoverRef = react.useRef(null);
|
|
32
|
+
const mergedRefs = react$1.useMergeRefs([popoverRef, ref]);
|
|
33
|
+
const { popoverId, setPopoverId } = react.useContext(PopoverTriggerContext.Context);
|
|
34
|
+
const [internalOpen, setInternalOpen] = react.useState(false);
|
|
35
|
+
const controlledOpen = open ?? internalOpen;
|
|
36
|
+
// NOTE: This code is purely to add React controlled component ability to Popover API
|
|
37
|
+
react.useEffect(() => {
|
|
38
|
+
const popover = popoverRef.current;
|
|
39
|
+
const handleClick = (event) => {
|
|
40
|
+
const el = event.target;
|
|
41
|
+
const isTrigger = el?.closest?.(`[popovertarget="${popover?.id}"]`);
|
|
42
|
+
const isOutside = !isTrigger && !popover?.contains(el);
|
|
43
|
+
if (isTrigger) {
|
|
44
|
+
event.preventDefault(); // Prevent native Popover API
|
|
45
|
+
setInternalOpen((open) => !open);
|
|
46
|
+
onOpen?.();
|
|
47
|
+
}
|
|
48
|
+
if (isOutside) {
|
|
49
|
+
setInternalOpen(false);
|
|
50
|
+
onClose?.();
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
const handleKeydown = (event) => {
|
|
54
|
+
if (event.key !== 'Escape' || !controlledOpen)
|
|
55
|
+
return;
|
|
56
|
+
event.preventDefault(); // Prevent closing fullscreen in Safari
|
|
57
|
+
setInternalOpen(false);
|
|
58
|
+
onClose?.();
|
|
59
|
+
};
|
|
60
|
+
popover?.togglePopover?.(controlledOpen);
|
|
61
|
+
document.addEventListener('click', handleClick, true); // Use capture to execute before React event API
|
|
62
|
+
document.addEventListener('keydown', handleKeydown);
|
|
63
|
+
return () => {
|
|
64
|
+
document.removeEventListener('click', handleClick, true);
|
|
65
|
+
document.removeEventListener('keydown', handleKeydown);
|
|
66
|
+
};
|
|
67
|
+
}, [controlledOpen]);
|
|
68
|
+
// Position with floating-ui
|
|
69
|
+
react.useEffect(() => {
|
|
70
|
+
const popover = popoverRef.current;
|
|
71
|
+
const trigger = document.querySelector(`[popovertarget="${popover?.id}"]`);
|
|
72
|
+
if (popover && trigger && controlledOpen)
|
|
73
|
+
return dom.autoUpdate(trigger, popover, () => {
|
|
74
|
+
dom.computePosition(trigger, popover, {
|
|
75
|
+
placement,
|
|
76
|
+
strategy: 'fixed',
|
|
77
|
+
middleware: [
|
|
78
|
+
dom.offset((data) => {
|
|
79
|
+
// get pseudo element arrow size
|
|
80
|
+
const styles = getComputedStyle(data.elements.floating, '::before');
|
|
81
|
+
return parseFloat(styles.height);
|
|
82
|
+
}),
|
|
83
|
+
...(autoPlacement
|
|
84
|
+
? [dom.flip({ fallbackAxisSideDirection: 'start' }), dom.shift()]
|
|
85
|
+
: []),
|
|
86
|
+
arrowPseudoElement,
|
|
87
|
+
],
|
|
88
|
+
}).then(({ x, y }) => {
|
|
89
|
+
popover.style.translate = `${x}px ${y}px`;
|
|
90
|
+
});
|
|
91
|
+
});
|
|
92
|
+
}, [controlledOpen, placement, id, autoPlacement]);
|
|
93
|
+
// Update context with id
|
|
94
|
+
react.useEffect(() => {
|
|
95
|
+
if (id)
|
|
96
|
+
setPopoverId?.(id);
|
|
97
|
+
}, [id]);
|
|
98
|
+
return (jsxRuntime.jsx(Component, { className: cl('ds-popover', className), id: id || popoverId,
|
|
99
|
+
// @ts-ignore @types/react-dom does not understand popover yet
|
|
100
|
+
popover: 'manual', "data-variant": variant, ref: mergedRefs, ...rest }));
|
|
101
|
+
});
|
|
102
|
+
const arrowPseudoElement = {
|
|
103
|
+
name: 'ArrowPseudoElement',
|
|
104
|
+
fn(data) {
|
|
105
|
+
const { elements, rects, placement } = data;
|
|
106
|
+
let arrowX = `${Math.round(rects.reference.width / 2 + rects.reference.x - data.x)}px`;
|
|
107
|
+
let arrowY = `${Math.round(rects.reference.height / 2 + rects.reference.y - data.y)}px`;
|
|
108
|
+
if (rects.reference.width > rects.floating.width) {
|
|
109
|
+
arrowX = `${Math.round(rects.floating.width / 2)}px`;
|
|
110
|
+
}
|
|
111
|
+
if (rects.reference.height > rects.floating.height) {
|
|
112
|
+
arrowY = `${Math.round(rects.floating.height / 2)}px`;
|
|
113
|
+
}
|
|
114
|
+
switch (placement.split('-')[0]) {
|
|
115
|
+
case 'top':
|
|
116
|
+
arrowY = '100%';
|
|
117
|
+
break;
|
|
118
|
+
case 'right':
|
|
119
|
+
arrowX = '0';
|
|
120
|
+
break;
|
|
121
|
+
case 'bottom':
|
|
122
|
+
arrowY = '0';
|
|
123
|
+
break;
|
|
124
|
+
case 'left':
|
|
125
|
+
arrowX = '100%';
|
|
126
|
+
break;
|
|
127
|
+
}
|
|
128
|
+
elements.floating.setAttribute('data-placement', placement.split('-')[0]); // We only need top/left/right/bottom
|
|
129
|
+
elements.floating.style.setProperty('--ds-popover-arrow-x', arrowX);
|
|
130
|
+
elements.floating.style.setProperty('--ds-popover-arrow-y', arrowY);
|
|
131
|
+
return data;
|
|
132
|
+
},
|
|
133
|
+
};
|
|
134
|
+
|
|
135
|
+
exports.Popover = Popover;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
5
|
+
var reactSlot = require('@radix-ui/react-slot');
|
|
6
|
+
var react = require('react');
|
|
7
|
+
var Button = require('../Button/Button.js');
|
|
8
|
+
var PopoverTriggerContext = require('./PopoverTriggerContext.js');
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* PopoverTrigger component, used to trigger a popover.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* <Popover.TriggerContext>
|
|
15
|
+
* <Popover.Trigger>Open Popover</Popover.Trigger>
|
|
16
|
+
* <Popover>
|
|
17
|
+
* Content
|
|
18
|
+
* </Popover>
|
|
19
|
+
* </Popover.TriggerContext>
|
|
20
|
+
*
|
|
21
|
+
* @example inline
|
|
22
|
+
* <Popover.TriggerContext>
|
|
23
|
+
* <Paragraph>
|
|
24
|
+
* We can use it <Popover.Trigger inline={true}>inline</Popover.Trigger>.
|
|
25
|
+
* </Paragraph>
|
|
26
|
+
* <Popover>
|
|
27
|
+
* Content
|
|
28
|
+
* </Popover>
|
|
29
|
+
* </Popover.TriggerContext>
|
|
30
|
+
*/
|
|
31
|
+
const PopoverTrigger = react.forwardRef(function PopoverTrigger({ id, inline, asChild, ...rest }, ref) {
|
|
32
|
+
const { popoverId } = react.useContext(PopoverTriggerContext.Context);
|
|
33
|
+
const Component = asChild ? reactSlot.Slot : inline ? 'button' : Button.Button;
|
|
34
|
+
const popoverProps = Object.assign({
|
|
35
|
+
[react.version.startsWith('19') ? 'popoverTarget' : 'popovertarget']: popoverId,
|
|
36
|
+
...(inline
|
|
37
|
+
? {
|
|
38
|
+
'data-popover': 'inline',
|
|
39
|
+
}
|
|
40
|
+
: {}),
|
|
41
|
+
}, rest);
|
|
42
|
+
return jsxRuntime.jsx(Component, { ref: ref, ...popoverProps });
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
exports.PopoverTrigger = PopoverTrigger;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
5
|
+
var react = require('react');
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* PopoverTriggerContext component, use to wrap a Popover.Trigger and Popover.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* <Popover.TriggerContext>
|
|
12
|
+
* <Popover.Trigger>Open Popover</Popover.Trigger>
|
|
13
|
+
* <Popover>
|
|
14
|
+
* Content
|
|
15
|
+
* </Popover>
|
|
16
|
+
* </Popover.TriggerContext>
|
|
17
|
+
*/
|
|
18
|
+
const PopoverTriggerContext = ({ children, }) => {
|
|
19
|
+
const randomPopoverId = react.useId();
|
|
20
|
+
const [popoverId, setPopoverId] = react.useState(randomPopoverId);
|
|
21
|
+
return (jsxRuntime.jsx(Context.Provider, { value: { popoverId, setPopoverId }, children: children }));
|
|
22
|
+
};
|
|
23
|
+
PopoverTriggerContext.displayName = 'PopoverTriggerContext';
|
|
24
|
+
const Context = react.createContext({});
|
|
25
|
+
|
|
26
|
+
exports.Context = Context;
|
|
27
|
+
exports.PopoverTriggerContext = PopoverTriggerContext;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var Popover$1 = require('./Popover.js');
|
|
5
|
+
var PopoverTrigger = require('./PopoverTrigger.js');
|
|
6
|
+
var PopoverTriggerContext = require('./PopoverTriggerContext.js');
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Popover component, used to display content in a popover over an element.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* <Popover.TriggerContext>
|
|
13
|
+
* <Popover.Trigger>Open Popover</Popover.Trigger>
|
|
14
|
+
* <Popover>
|
|
15
|
+
* Content
|
|
16
|
+
* </Popover>
|
|
17
|
+
* </Popover.TriggerContext>
|
|
18
|
+
*/
|
|
19
|
+
const Popover = Object.assign(Popover$1.Popover, {
|
|
20
|
+
TriggerContext: PopoverTriggerContext.PopoverTriggerContext,
|
|
21
|
+
Trigger: PopoverTrigger.PopoverTrigger,
|
|
22
|
+
});
|
|
23
|
+
Popover.TriggerContext.displayName = 'Popover.TriggerContext';
|
|
24
|
+
Popover.Trigger.displayName = 'Popover.Trigger';
|
|
25
|
+
|
|
26
|
+
exports.PopoverTrigger = PopoverTrigger.PopoverTrigger;
|
|
27
|
+
exports.PopoverTriggerContext = PopoverTriggerContext.PopoverTriggerContext;
|
|
28
|
+
exports.Popover = Popover;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
5
|
+
var react = require('react');
|
|
6
|
+
var index = require('../Field/index.js');
|
|
7
|
+
var Input = require('../Input/Input.js');
|
|
8
|
+
var Label = require('../Label/Label.js');
|
|
9
|
+
var ValidationMessage = require('../ValidationMessage/ValidationMessage.js');
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Radio used to select multiple options.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* <Radio label="I agree" value="agree" />
|
|
16
|
+
*/
|
|
17
|
+
const Radio = react.forwardRef(function Radio({ 'data-size': size, className, style, children, label, description, error, ...rest }, ref) {
|
|
18
|
+
return (jsxRuntime.jsxs(index.Field, { "data-size": size, className: className, style: style, children: [jsxRuntime.jsx(Input.Input, { type: 'radio', ref: ref, ...rest }), !!label && jsxRuntime.jsx(Label.Label, { weight: 'regular', children: label }), !!description && jsxRuntime.jsx("div", { "data-field": 'description', children: description }), !!error && jsxRuntime.jsx(ValidationMessage.ValidationMessage, { children: error })] }));
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
exports.Radio = Radio;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
5
|
+
var cl = require('clsx/lite');
|
|
6
|
+
var react = require('react');
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Search component, use to display different variations of a search input
|
|
10
|
+
*
|
|
11
|
+
* @example with button
|
|
12
|
+
* <Search>
|
|
13
|
+
* <Search.Input aria-label='Søk' />
|
|
14
|
+
* <Search.Clear />
|
|
15
|
+
* <Search.Button />
|
|
16
|
+
* </Search>
|
|
17
|
+
*
|
|
18
|
+
* @example with icon
|
|
19
|
+
* <Search>
|
|
20
|
+
* <Search.Input aria-label='Søk' />
|
|
21
|
+
* <Search.Clear />
|
|
22
|
+
* </Search>
|
|
23
|
+
*/
|
|
24
|
+
const Search = react.forwardRef(function Search({ className, ...rest }, ref) {
|
|
25
|
+
return jsxRuntime.jsx("div", { ref: ref, className: cl('ds-search', className), ...rest });
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
exports.Search = Search;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
5
|
+
var react = require('react');
|
|
6
|
+
var Button = require('../Button/Button.js');
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* SearchButton component, used to display a search button within a Search component.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* <Search>
|
|
13
|
+
* <Search.Input aria-label='Søk' />
|
|
14
|
+
* <Search.Button>Søk</Search.Button>
|
|
15
|
+
* </Search>
|
|
16
|
+
*/
|
|
17
|
+
const SearchButton = react.forwardRef(function SearchButton({ children = "Sök", ...rest }, ref) {
|
|
18
|
+
return (jsxRuntime.jsx(Button.Button, { ref: ref, type: "submit", ...rest, children: children }));
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
exports.SearchButton = SearchButton;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
5
|
+
var react = require('react');
|
|
6
|
+
var Button = require('../Button/Button.js');
|
|
7
|
+
|
|
8
|
+
const setReactInputValue = (input, value) => {
|
|
9
|
+
const previousValue = input.value;
|
|
10
|
+
input.value = value;
|
|
11
|
+
const tracker = input._valueTracker;
|
|
12
|
+
if (typeof tracker !== "undefined") {
|
|
13
|
+
tracker.setValue(previousValue);
|
|
14
|
+
}
|
|
15
|
+
//'change' instead of 'input', see https://github.com/facebook/react/issues/11488#issuecomment-381590324
|
|
16
|
+
input.dispatchEvent(new Event("change", { bubbles: true }));
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* SearchClear component, used to display a clear buttun when the search input is not empty.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* <Search>
|
|
23
|
+
* <Search.Input aria-label='Sök' />
|
|
24
|
+
* <Search.Clear />
|
|
25
|
+
* </Search>
|
|
26
|
+
*/
|
|
27
|
+
const SearchClear = react.forwardRef(function SearchClear({ "aria-label": label = "Töm", onClick, ...rest }, ref) {
|
|
28
|
+
const handleClear = (e) => {
|
|
29
|
+
const target = e.target;
|
|
30
|
+
let input = null;
|
|
31
|
+
if (target instanceof HTMLElement)
|
|
32
|
+
input = target.closest(".ds-search")?.querySelector("input");
|
|
33
|
+
if (!input)
|
|
34
|
+
throw new Error("Input is missing");
|
|
35
|
+
/* narrow type to make TS happy */
|
|
36
|
+
if (!(input instanceof HTMLInputElement))
|
|
37
|
+
throw new Error("Input is not an input element");
|
|
38
|
+
e.preventDefault();
|
|
39
|
+
setReactInputValue(input, "");
|
|
40
|
+
input.focus();
|
|
41
|
+
onClick?.(e);
|
|
42
|
+
};
|
|
43
|
+
return (jsxRuntime.jsx(Button.Button, { ref: ref, variant: "tertiary", type: "reset", "aria-label": label, onClick: handleClear, icon: true, ...rest }));
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
exports.SearchClear = SearchClear;
|
|
47
|
+
exports.setReactInputValue = setReactInputValue;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
5
|
+
var react = require('react');
|
|
6
|
+
var Input = require('../Input/Input.js');
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* SearchInput component, used to display a search input within the Search component.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* <Search>
|
|
13
|
+
* <Search.Input aria-label='Søk' />
|
|
14
|
+
* </Search>
|
|
15
|
+
*/
|
|
16
|
+
const SearchInput = react.forwardRef(function SearchInput({ ...rest }, ref) {
|
|
17
|
+
return (jsxRuntime.jsx(Input.Input, { ref: ref, type: 'search',
|
|
18
|
+
/* We need an empty placeholder for the clear button to be able to show/hide */
|
|
19
|
+
placeholder: '', ...rest }));
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
exports.SearchInput = SearchInput;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var Search$1 = require('./Search.js');
|
|
5
|
+
var SearchButton = require('./SearchButton.js');
|
|
6
|
+
var SearchClear = require('./SearchClear.js');
|
|
7
|
+
var SearchInput = require('./SearchInput.js');
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Search component, use to display different variations of a search input
|
|
11
|
+
*
|
|
12
|
+
* @example with button
|
|
13
|
+
* <Search>
|
|
14
|
+
* <Search.Input aria-label='Søk' />
|
|
15
|
+
* <Search.Clear />
|
|
16
|
+
* <Search.Button />
|
|
17
|
+
* </Search>
|
|
18
|
+
*
|
|
19
|
+
* @example with icon
|
|
20
|
+
* <Search>
|
|
21
|
+
* <Search.Input aria-label='Søk' />
|
|
22
|
+
* <Search.Clear />
|
|
23
|
+
* </Search>
|
|
24
|
+
*/
|
|
25
|
+
const Search = Object.assign(Search$1.Search, {
|
|
26
|
+
Clear: SearchClear.SearchClear,
|
|
27
|
+
Button: SearchButton.SearchButton,
|
|
28
|
+
Input: SearchInput.SearchInput,
|
|
29
|
+
});
|
|
30
|
+
Search.Clear.displayName = 'Search.Clear';
|
|
31
|
+
Search.Button.displayName = 'Search.Button';
|
|
32
|
+
Search.Input.displayName = 'Search.Input';
|
|
33
|
+
|
|
34
|
+
exports.SearchButton = SearchButton.SearchButton;
|
|
35
|
+
exports.SearchClear = SearchClear.SearchClear;
|
|
36
|
+
exports.SearchInput = SearchInput.SearchInput;
|
|
37
|
+
exports.Search = Search;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
5
|
+
var cl = require('clsx/lite');
|
|
6
|
+
var react = require('react');
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Select component, used to display a native select.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* <Select>
|
|
13
|
+
* <Select.Option value='1'>Option 1</Select.Option>
|
|
14
|
+
* <Select.Option value='2'>Option 2</Select.Option>
|
|
15
|
+
* </Select>
|
|
16
|
+
*/
|
|
17
|
+
const Select = react.forwardRef(function Select({ className, onKeyDown, onMouseDown, width, ...rest }, ref) {
|
|
18
|
+
return (jsxRuntime.jsx("select", { className: cl('ds-input', className), "data-width": width, ref: ref, onKeyDown: (event) => {
|
|
19
|
+
if (event.key === 'Tab')
|
|
20
|
+
return;
|
|
21
|
+
if (rest.readOnly)
|
|
22
|
+
event.preventDefault(); // Make readonly work for select
|
|
23
|
+
onKeyDown?.(event);
|
|
24
|
+
}, onMouseDown: (event) => {
|
|
25
|
+
if (rest.readOnly)
|
|
26
|
+
event.preventDefault(); // Make readonly work for select
|
|
27
|
+
onMouseDown?.(event);
|
|
28
|
+
}, ...rest }));
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
exports.Select = Select;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
5
|
+
var reactSlot = require('@radix-ui/react-slot');
|
|
6
|
+
var react = require('react');
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* SelectOptgroup component, used to display a native optgroup within a select.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* <Select>
|
|
13
|
+
* <Select.Optgroup label='Group 1'>
|
|
14
|
+
* <Select.Option value='1'>Option 1</Select.Option>
|
|
15
|
+
* <Select.Option value='2'>Option 2</Select.Option>
|
|
16
|
+
* </Select.Optgroup>
|
|
17
|
+
* </Select>
|
|
18
|
+
*/
|
|
19
|
+
const SelectOptgroup = react.forwardRef(function SelectOptgroup({ asChild, ...rest }, ref) {
|
|
20
|
+
const Component = asChild ? reactSlot.Slot : 'optgroup';
|
|
21
|
+
return jsxRuntime.jsx(Component, { ...rest, ref: ref });
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
exports.SelectOptgroup = SelectOptgroup;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
5
|
+
var reactSlot = require('@radix-ui/react-slot');
|
|
6
|
+
var react = require('react');
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* SelectOption component, used to display a native option within a select.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* <Select>
|
|
13
|
+
* <Select.Option value='1'>Option 1</Select.Option>
|
|
14
|
+
* <Select.Option value='2'>Option 2</Select.Option>
|
|
15
|
+
* </Select>
|
|
16
|
+
*/
|
|
17
|
+
const SelectOption = react.forwardRef(function SelectOption({ asChild, ...rest }, ref) {
|
|
18
|
+
const Component = asChild ? reactSlot.Slot : 'option';
|
|
19
|
+
return jsxRuntime.jsx(Component, { ...rest, ref: ref });
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
exports.SelectOption = SelectOption;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var Select$1 = require('./Select.js');
|
|
5
|
+
var SelectOptgroup = require('./SelectOptgroup.js');
|
|
6
|
+
var SelectOption = require('./SelectOption.js');
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Select component, used to display a native select.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* <Select>
|
|
13
|
+
* <Select.Option value='1'>Option 1</Select.Option>
|
|
14
|
+
* <Select.Option value='2'>Option 2</Select.Option>
|
|
15
|
+
* </Select>
|
|
16
|
+
*/
|
|
17
|
+
const Select = Object.assign(Select$1.Select, {
|
|
18
|
+
Option: SelectOption.SelectOption,
|
|
19
|
+
Optgroup: SelectOptgroup.SelectOptgroup,
|
|
20
|
+
});
|
|
21
|
+
Select.Option.displayName = 'Select.Option';
|
|
22
|
+
Select.Optgroup.displayName = 'Select.Optgroup';
|
|
23
|
+
|
|
24
|
+
exports.SelectOptgroup = SelectOptgroup.SelectOptgroup;
|
|
25
|
+
exports.SelectOption = SelectOption.SelectOption;
|
|
26
|
+
exports.Select = Select;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
5
|
+
var react$1 = require('@floating-ui/react');
|
|
6
|
+
var reactSlot = require('@radix-ui/react-slot');
|
|
7
|
+
var cl = require('clsx/lite');
|
|
8
|
+
var react = require('react');
|
|
9
|
+
var useSynchronizedAnimation = require('../../utilities/hooks/useSynchronizedAnimation/useSynchronizedAnimation.js');
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Skeleton is used to represent a draft of page while the content loads.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* <Skeleton variant="circle" />
|
|
16
|
+
* <Skeleton variant="text" />
|
|
17
|
+
* <Skeleton variant="rectangle" />
|
|
18
|
+
*/
|
|
19
|
+
const Skeleton = react.forwardRef(function Skeleton({ asChild, className, height, style, variant = 'rectangle', width, ...rest }, ref) {
|
|
20
|
+
const Component = asChild ? reactSlot.Slot : 'span';
|
|
21
|
+
const isText = variant === 'text';
|
|
22
|
+
const animationRef = useSynchronizedAnimation.useSynchronizedAnimation('ds-skeleton-opacity-fade');
|
|
23
|
+
const mergedRefs = react$1.useMergeRefs([animationRef, ref]);
|
|
24
|
+
return (jsxRuntime.jsx(Component, { "aria-hidden": 'true', className: cl('ds-skeleton', className), "data-text": isText ? '-'.repeat(Number(width) || 1) : undefined, "data-variant": variant, ref: mergedRefs, style: isText ? style : { width, height, ...style }, ...rest }));
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
exports.Skeleton = Skeleton;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
5
|
+
var cl = require('clsx/lite');
|
|
6
|
+
var react = require('react');
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* SkipLink component, used to display a skip link within the page.
|
|
10
|
+
* Place it at the top of the page to allow users to skip to the main content.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* <SkipLink href='#main-content'>Skip to main content</SkipLink>
|
|
14
|
+
*/
|
|
15
|
+
const SkipLink = react.forwardRef(function SkipLink({ children, className, ...rest }, ref) {
|
|
16
|
+
return (jsxRuntime.jsx("a", { className: cl('ds-skiplink', className), ...rest, ref: ref, children: children }));
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
exports.SkipLink = SkipLink;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
5
|
+
var react$1 = require('@floating-ui/react');
|
|
6
|
+
var cl = require('clsx/lite');
|
|
7
|
+
var react = require('react');
|
|
8
|
+
var useSynchronizedAnimation = require('../../utilities/hooks/useSynchronizedAnimation/useSynchronizedAnimation.js');
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Spinner component used for indicating busy or indeterminate loading.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* <Spinner aria-label='Loading users...' />
|
|
15
|
+
*/
|
|
16
|
+
const Spinner = react.forwardRef(function Spinner({ 'aria-label': ariaLabel, className, ...rest }, ref) {
|
|
17
|
+
const svgRef = useSynchronizedAnimation.useSynchronizedAnimation('ds-spinner-rotate-animation');
|
|
18
|
+
const strokeRef = useSynchronizedAnimation.useSynchronizedAnimation('ds-spinner-stroke-animation');
|
|
19
|
+
const mergedRefs = react$1.useMergeRefs([svgRef, ref]);
|
|
20
|
+
return (jsxRuntime.jsxs("svg", { "aria-label": ariaLabel, className: cl('ds-spinner', className), ref: mergedRefs, role: 'img', viewBox: '0 0 50 50', ...rest, children: [jsxRuntime.jsx("circle", { className: cl('ds-spinner__background'), cx: '25', cy: '25', r: '20', fill: 'none', strokeWidth: '5' }), jsxRuntime.jsx("circle", { className: cl(`ds-spinner__circle`), cx: '25', cy: '25', r: '20', fill: 'none', strokeWidth: '5', ref: strokeRef })] }));
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
exports.Spinner = Spinner;
|