@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
package/LICENSE
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
Copyright 2024 Digitaliseringsdirektoratet (Digdir)
|
|
2
|
+
|
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
4
|
+
|
|
5
|
+
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
|
6
|
+
|
|
7
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# @uppsala-designsystem/ui
|
|
2
|
+
|
|
3
|
+
React implementation of the Designsystemet components
|
|
4
|
+
|
|
5
|
+
- Uses `@uppsala-designsystem/theme` and `@uppsala-designsystem/css` for styling.
|
|
6
|
+
- All components support `forwardRef`.
|
|
7
|
+
- Most components extend and behave as native html-elements.
|
|
8
|
+
- Most components support composition and `asChild` for overriding the underlying html-element.
|
|
9
|
+
- SSR support.
|
|
@@ -0,0 +1,18 @@
|
|
|
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
|
+
* Alerts are used to inform users about important information, warnings, errors, or success.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* <Alert data-color='info'>Detta är ett informationsmeddelande</Alert>
|
|
13
|
+
*/
|
|
14
|
+
const Alert = react.forwardRef(function Alert({ "data-color": color = "info", className, ...rest }, ref) {
|
|
15
|
+
return (jsxRuntime.jsx("div", { className: cl("ds-alert", className), "data-color": color, ref: ref, ...rest }));
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
exports.Alert = Alert;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
5
|
+
var reactSlot = require('@radix-ui/react-slot');
|
|
6
|
+
var cl = require('clsx/lite');
|
|
7
|
+
var react = require('react');
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Avatars are used to represent people or entities.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* <Avatar aria-label="John Doe" initials="JD" />
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* <Avatar aria-label="John Doe">
|
|
17
|
+
* <img src='…' alt='John Doe' />
|
|
18
|
+
* </Avatar>
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* <Avatar aria-label="John Doe">
|
|
22
|
+
* <Icon />
|
|
23
|
+
* </Avatar>
|
|
24
|
+
*/
|
|
25
|
+
const Avatar = react.forwardRef(function Avatar({ 'aria-label': ariaLabel, variant = 'circle', className, children, initials, ...rest }, ref) {
|
|
26
|
+
const useSlot = children && typeof children !== 'string';
|
|
27
|
+
const Component = useSlot ? reactSlot.Slot : react.Fragment;
|
|
28
|
+
return (jsxRuntime.jsx("span", { ref: ref, className: cl('ds-avatar', className), "data-variant": variant, "data-initials": initials, role: 'img', "aria-label": ariaLabel, ...rest, children: jsxRuntime.jsx(Component, { ...(useSlot ? { 'aria-hidden': true } : {}), children: children }) }));
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
exports.Avatar = Avatar;
|
|
@@ -0,0 +1,23 @@
|
|
|
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
|
+
* `Badge` is a non-interactive component for displaying status with or without numbers.
|
|
10
|
+
*
|
|
11
|
+
* @example without children
|
|
12
|
+
* <Badge count={5} maxCount={10} />
|
|
13
|
+
*
|
|
14
|
+
* @example with children
|
|
15
|
+
* <Badge count={5} maxCount={10}>
|
|
16
|
+
* <Icon />
|
|
17
|
+
* </Badge>
|
|
18
|
+
*/
|
|
19
|
+
const Badge = react.forwardRef(function Badge({ className, count, maxCount, variant = 'base', ...rest }, ref) {
|
|
20
|
+
return (jsxRuntime.jsx("span", { className: cl('ds-badge', className), "data-count": count && maxCount && count > maxCount ? `${maxCount}+` : count, "data-variant": variant, ref: ref, ...rest }));
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
exports.Badge = Badge;
|
|
@@ -0,0 +1,21 @@
|
|
|
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
|
+
* `BadgePosition` is a component that positions the badge.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* <BadgePosition placement='top-right' overlap='circle'>
|
|
13
|
+
* <Badge count={5} maxCount={10} />
|
|
14
|
+
* <Element />
|
|
15
|
+
* </BadgePosition>
|
|
16
|
+
*/
|
|
17
|
+
const BadgePosition = react.forwardRef(function BadgePlacement({ className, overlap = 'rectangle', placement = 'top-right', ...rest }, ref) {
|
|
18
|
+
return (jsxRuntime.jsx("span", { className: cl('ds-badge--position', className), "data-overlap": overlap, "data-placement": placement, ref: ref, ...rest }));
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
exports.BadgePosition = BadgePosition;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var Badge$1 = require('./Badge.js');
|
|
5
|
+
var BadgePosition = require('./BadgePosition.js');
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* `Badge` is a non-interactive component for displaying status with or without numbers.
|
|
9
|
+
*
|
|
10
|
+
* @example without children
|
|
11
|
+
* <Badge count={5} maxCount={10} />
|
|
12
|
+
*/
|
|
13
|
+
const Badge = Object.assign(Badge$1.Badge, { Position: BadgePosition.BadgePosition });
|
|
14
|
+
Badge.Position.displayName = 'Badge.Position';
|
|
15
|
+
|
|
16
|
+
exports.BadgePosition = BadgePosition.BadgePosition;
|
|
17
|
+
exports.Badge = Badge;
|
|
@@ -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
|
+
* `Breadcrumbs` is a component that displays a list of breadcrumbs.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* <Breadcrumbs aria-label='Du är här:' {...args}>
|
|
13
|
+
* <Breadcrumbs.Link href='#' aria-label='Tillbaka till Nivå 1'>
|
|
14
|
+
* Nivå 1
|
|
15
|
+
* </Breadcrumbs.Link>
|
|
16
|
+
* <Breadcrumbs.List>
|
|
17
|
+
* <Breadcrumbs.Item>
|
|
18
|
+
* <Breadcrumbs.Link href='#'>Nivå 1</Breadcrumbs.Link>
|
|
19
|
+
* </Breadcrumbs.Item>
|
|
20
|
+
* <Breadcrumbs.Item>
|
|
21
|
+
* <Breadcrumbs.Link href='#'>Nivå 2</Breadcrumbs.Link>
|
|
22
|
+
* </Breadcrumbs.Item>
|
|
23
|
+
* </Breadcrumbs.List>
|
|
24
|
+
* </Breadcrumbs>
|
|
25
|
+
*/
|
|
26
|
+
const Breadcrumbs = react.forwardRef(({ "aria-label": ariaLabel = "Du är här:", className, ...rest }, ref) => (jsxRuntime.jsx("nav", { "aria-label": ariaLabel, className: cl("ds-breadcrumbs", className), ref: ref, ...rest })));
|
|
27
|
+
|
|
28
|
+
exports.Breadcrumbs = Breadcrumbs;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
5
|
+
var react = require('react');
|
|
6
|
+
|
|
7
|
+
const BreadcrumbsItem = react.forwardRef(function BreadcrumbsItem({ className, ...rest }, ref) {
|
|
8
|
+
return jsxRuntime.jsx("li", { ref: ref, ...rest });
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
exports.BreadcrumbsItem = BreadcrumbsItem;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
5
|
+
var react = require('react');
|
|
6
|
+
var Link = require('../Link/Link.js');
|
|
7
|
+
|
|
8
|
+
const BreadcrumbsLink = react.forwardRef(function BreadcrumbsLink(rest, ref) {
|
|
9
|
+
return jsxRuntime.jsx(Link.Link, { ref: ref, ...rest });
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
exports.BreadcrumbsLink = BreadcrumbsLink;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
5
|
+
var react$1 = require('@floating-ui/react');
|
|
6
|
+
var react = require('react');
|
|
7
|
+
|
|
8
|
+
const BreadcrumbsList = react.forwardRef(function BreadcrumbsList(rest, ref) {
|
|
9
|
+
const innerRef = react.useRef(null);
|
|
10
|
+
const mergedRefs = react$1.useMergeRefs([innerRef, ref]);
|
|
11
|
+
// Set aria-current on last link
|
|
12
|
+
react.useEffect(() => {
|
|
13
|
+
const links = innerRef.current?.querySelectorAll(':scope > * > *') || [];
|
|
14
|
+
const lastLink = links[links?.length - 1];
|
|
15
|
+
lastLink?.setAttribute('aria-current', 'page');
|
|
16
|
+
return () => lastLink?.removeAttribute('aria-current'); // Remove on re-render as React can re-use DOM elements
|
|
17
|
+
});
|
|
18
|
+
return jsxRuntime.jsx("ol", { ref: mergedRefs, ...rest });
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
exports.BreadcrumbsList = BreadcrumbsList;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var Breadcrumbs$1 = require('./Breadcrumbs.js');
|
|
5
|
+
var BreadcrumbsItem = require('./BreadcrumbsItem.js');
|
|
6
|
+
var BreadcrumbsLink = require('./BreadcrumbsLink.js');
|
|
7
|
+
var BreadcrumbsList = require('./BreadcrumbsList.js');
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* `Breadcrumbs` is a component that displays a list of breadcrumbs.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* <Breadcrumbs aria-label='Du er her:' {...args}>
|
|
14
|
+
* <Breadcrumbs.Link href='#' aria-label='Tilbake til Nivå 1'>
|
|
15
|
+
* Nivå 1
|
|
16
|
+
* </Breadcrumbs.Link>
|
|
17
|
+
* <Breadcrumbs.List>
|
|
18
|
+
* <Breadcrumbs.Item>
|
|
19
|
+
* <Breadcrumbs.Link href='#'>Nivå 1</Breadcrumbs.Link>
|
|
20
|
+
* </Breadcrumbs.Item>
|
|
21
|
+
* <Breadcrumbs.Item>
|
|
22
|
+
* <Breadcrumbs.Link href='#'>Nivå 2</Breadcrumbs.Link>
|
|
23
|
+
* </Breadcrumbs.Item>
|
|
24
|
+
* </Breadcrumbs.List>
|
|
25
|
+
* </Breadcrumbs>
|
|
26
|
+
*/
|
|
27
|
+
const Breadcrumbs = Object.assign(Breadcrumbs$1.Breadcrumbs, {
|
|
28
|
+
List: BreadcrumbsList.BreadcrumbsList,
|
|
29
|
+
Item: BreadcrumbsItem.BreadcrumbsItem,
|
|
30
|
+
Link: BreadcrumbsLink.BreadcrumbsLink,
|
|
31
|
+
});
|
|
32
|
+
Breadcrumbs.List.displayName = 'Breadcrumbs.List';
|
|
33
|
+
Breadcrumbs.Item.displayName = 'Breadcrumbs.Item';
|
|
34
|
+
Breadcrumbs.Link.displayName = 'Breadcrumbs.Link';
|
|
35
|
+
|
|
36
|
+
exports.BreadcrumbsItem = BreadcrumbsItem.BreadcrumbsItem;
|
|
37
|
+
exports.BreadcrumbsLink = BreadcrumbsLink.BreadcrumbsLink;
|
|
38
|
+
exports.BreadcrumbsList = BreadcrumbsList.BreadcrumbsList;
|
|
39
|
+
exports.Breadcrumbs = Breadcrumbs;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
5
|
+
var reactSlot = require('@radix-ui/react-slot');
|
|
6
|
+
var cl = require('clsx/lite');
|
|
7
|
+
var react = require('react');
|
|
8
|
+
var Spinner = require('../Spinner/Spinner.js');
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Button used for interaction
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* <Button>Click me</Button>
|
|
15
|
+
*/
|
|
16
|
+
const Button = react.forwardRef(function Button({ asChild, className, children, icon = false, loading = false, variant = 'primary', ...rest }, ref) {
|
|
17
|
+
const Component = asChild ? reactSlot.Slot : 'button';
|
|
18
|
+
// Fallbacks to undefined to prevent rendering attribute="false"
|
|
19
|
+
return (jsxRuntime.jsxs(Component, { "aria-busy": Boolean(loading) || undefined, "aria-disabled": Boolean(loading) || undefined, className: cl('ds-button', className), "data-icon": icon || undefined, "data-variant": variant, ref: ref,
|
|
20
|
+
/* don't set type when we use `asChild` */
|
|
21
|
+
type: asChild ? undefined : 'button', ...rest, children: [loading === true ? (jsxRuntime.jsx(Spinner.Spinner, { "aria-hidden": 'true' })) : (loading // Allow custom loading spinner
|
|
22
|
+
), jsxRuntime.jsx(reactSlot.Slottable, { children: children })] }));
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
exports.Button = Button;
|
|
@@ -0,0 +1,43 @@
|
|
|
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
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Card component to present content in a structured way.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* <Card>
|
|
15
|
+
* <Card.Block>Header</Card.Block>
|
|
16
|
+
* <Card.Block>Content</Card.Block>
|
|
17
|
+
* <Card.Block>Footer</Card.Block>
|
|
18
|
+
* </Card>
|
|
19
|
+
*/
|
|
20
|
+
const Card = react.forwardRef(function Card({ asChild = false, variant = 'default', className, ...rest }, ref) {
|
|
21
|
+
const Component = asChild ? reactSlot.Slot : 'div';
|
|
22
|
+
const cardRef = react.useRef(null);
|
|
23
|
+
const mergedRefs = react$1.useMergeRefs([cardRef, ref]);
|
|
24
|
+
// Forward click on card to heading links for better accessibility
|
|
25
|
+
// https://adrianroselli.com/2020/02/block-links-cards-clickable-regions-etc.html
|
|
26
|
+
react.useEffect(() => {
|
|
27
|
+
const card = cardRef.current;
|
|
28
|
+
const handleClick = ({ ctrlKey, metaKey, target }) => {
|
|
29
|
+
const link = card?.querySelector(':is(h1,h2,h3,h4,h5,h6) a');
|
|
30
|
+
if (!link || link?.contains(target))
|
|
31
|
+
return; // Let links handle their own clicks
|
|
32
|
+
if (ctrlKey || metaKey)
|
|
33
|
+
window.open(link.href, '', 'noreferrer');
|
|
34
|
+
else
|
|
35
|
+
link.click(); // Using link.click instead of window.location.href as this will trigger the browser's handling of rel=, target=, etc.
|
|
36
|
+
};
|
|
37
|
+
card?.addEventListener('click', handleClick);
|
|
38
|
+
return () => card?.removeEventListener('click', handleClick);
|
|
39
|
+
}, []);
|
|
40
|
+
return (jsxRuntime.jsx(Component, { className: cl(`ds-card`, className), "data-variant": variant, ref: mergedRefs, ...rest }));
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
exports.Card = Card;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
5
|
+
var reactSlot = require('@radix-ui/react-slot');
|
|
6
|
+
var cl = require('clsx/lite');
|
|
7
|
+
var react = require('react');
|
|
8
|
+
|
|
9
|
+
const CardBlock = react.forwardRef(function CardBlock({ asChild, className, ...rest }, ref) {
|
|
10
|
+
const Component = asChild ? reactSlot.Slot : 'div';
|
|
11
|
+
return (jsxRuntime.jsx(Component, { className: cl(`ds-card__block`, className), ref: ref, ...rest }));
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
exports.CardBlock = CardBlock;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var Card$1 = require('./Card.js');
|
|
5
|
+
var CardBlock = require('./CardBlock.js');
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Card component to present content in a structured way.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* <Card>
|
|
12
|
+
* <Card.Block>Header</Card.Block>
|
|
13
|
+
* <Card.Block>Content</Card.Block>
|
|
14
|
+
* <Card.Block>Footer</Card.Block>
|
|
15
|
+
* </Card>
|
|
16
|
+
*/
|
|
17
|
+
const Card = Object.assign(Card$1.Card, {
|
|
18
|
+
Block: CardBlock.CardBlock,
|
|
19
|
+
});
|
|
20
|
+
Card.Block.displayName = 'Card.Block';
|
|
21
|
+
|
|
22
|
+
exports.CardBlock = CardBlock.CardBlock;
|
|
23
|
+
exports.Card = Card;
|
|
@@ -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
|
+
* Checkbox used to select multiple options.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* <Checkbox label="I agree" value="agree" />
|
|
16
|
+
*/
|
|
17
|
+
const Checkbox = react.forwardRef(function Checkbox({ '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: 'checkbox', 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.Checkbox = Checkbox;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
5
|
+
var reactSlot = require('@radix-ui/react-slot');
|
|
6
|
+
var cl = require('clsx/lite');
|
|
7
|
+
var react = require('react');
|
|
8
|
+
var Input = require('../Input/Input.js');
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Chip.Button used for interaction
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* <Chip.Button>Click me</Chip.Button>
|
|
15
|
+
*/
|
|
16
|
+
const ChipButton = react.forwardRef(function ChipButton({ asChild, className, ...rest }, ref) {
|
|
17
|
+
const Component = asChild ? reactSlot.Slot : 'button';
|
|
18
|
+
return (jsxRuntime.jsx(Component, { className: cl('ds-chip', className), type: asChild ? undefined : 'button', ref: ref, ...rest }));
|
|
19
|
+
});
|
|
20
|
+
/**
|
|
21
|
+
* Chip.Removable used for interaction
|
|
22
|
+
* @example
|
|
23
|
+
* <Chip.Removable>Click to remove me</Chip.Removable>
|
|
24
|
+
*/
|
|
25
|
+
const ChipRemovable = react.forwardRef(function ChipRemovable(props, ref) {
|
|
26
|
+
return jsxRuntime.jsx(ChipButton, { "data-removable": true, ref: ref, ...props });
|
|
27
|
+
});
|
|
28
|
+
/**
|
|
29
|
+
* Chip.Checkbox used for multiselection
|
|
30
|
+
* @example
|
|
31
|
+
* <Chip.Checkbox name="language" value="nynorsk">Nynorsk</Chip.Checkbox>
|
|
32
|
+
* <Chip.Checkbox name="language" value="bokmål">Bokmål</Chip.Checkbox>
|
|
33
|
+
*/
|
|
34
|
+
const ChipCheckbox = react.forwardRef(function ChipCheckbox({ asChild, children, className, 'data-size': size, 'data-color': color, ...rest }, ref) {
|
|
35
|
+
const inputType = rest.type ?? 'checkbox';
|
|
36
|
+
const Component = asChild ? reactSlot.Slot : 'label';
|
|
37
|
+
return (jsxRuntime.jsxs(Component, { className: cl('ds-chip', className), "data-size": size, "data-color": color, ref: ref, children: [jsxRuntime.jsx(Input.Input, { ...rest, type: inputType }), jsxRuntime.jsx(reactSlot.Slottable, { children: children })] }));
|
|
38
|
+
});
|
|
39
|
+
/**
|
|
40
|
+
* Chip.Radio used for single selection
|
|
41
|
+
* @example
|
|
42
|
+
* <Chip.Radio name="language" value="nynorsk">Nynorsk</Chip.Radio>
|
|
43
|
+
* <Chip.Radio name="language" value="bokmål">Bokmål</Chip.Radio>
|
|
44
|
+
*/
|
|
45
|
+
const ChipRadio = react.forwardRef(function ChipRadio(props, ref) {
|
|
46
|
+
return jsxRuntime.jsx(ChipCheckbox, { ref, type: 'radio', ...props });
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
exports.ChipButton = ChipButton;
|
|
50
|
+
exports.ChipCheckbox = ChipCheckbox;
|
|
51
|
+
exports.ChipRadio = ChipRadio;
|
|
52
|
+
exports.ChipRemovable = ChipRemovable;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var Chips = require('./Chips.js');
|
|
5
|
+
|
|
6
|
+
const Chip = {
|
|
7
|
+
Button: Chips.ChipButton,
|
|
8
|
+
Checkbox: Chips.ChipCheckbox,
|
|
9
|
+
Radio: Chips.ChipRadio,
|
|
10
|
+
Removable: Chips.ChipRemovable,
|
|
11
|
+
};
|
|
12
|
+
Chip.Button.displayName = 'Chip.Button';
|
|
13
|
+
Chip.Checkbox.displayName = 'Chip.Checkbox';
|
|
14
|
+
Chip.Radio.displayName = 'Chip.Radio';
|
|
15
|
+
Chip.Removable.displayName = 'Chip.Removable';
|
|
16
|
+
|
|
17
|
+
exports.ChipButton = Chips.ChipButton;
|
|
18
|
+
exports.ChipCheckbox = Chips.ChipCheckbox;
|
|
19
|
+
exports.ChipRadio = Chips.ChipRadio;
|
|
20
|
+
exports.ChipRemovable = Chips.ChipRemovable;
|
|
21
|
+
exports.Chip = Chip;
|
|
@@ -0,0 +1,43 @@
|
|
|
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
|
+
require('@u-elements/u-details');
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Details component, contains `Details.Summary` and `Details.Content` components.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* <Details>
|
|
15
|
+
* <Details.Summary>Header</Details.Summary>
|
|
16
|
+
* <Details.Content>Content</Details.Content>
|
|
17
|
+
* </Details>
|
|
18
|
+
*/
|
|
19
|
+
const Details = react.forwardRef(function Details({ className, open, defaultOpen = false, variant = 'default', onToggle, ...rest }, ref) {
|
|
20
|
+
const detailsRef = react.useRef(null);
|
|
21
|
+
const initialOpen = react.useRef(defaultOpen); // Allow rendering defaultOpen on server, but only render once on client
|
|
22
|
+
const mergedRefs = react$1.useMergeRefs([detailsRef, ref]);
|
|
23
|
+
const onToggleRef = react.useRef(onToggle); // Using ref to enable access inside useEffect without re-binding event listeners
|
|
24
|
+
const openRef = react.useRef(open);
|
|
25
|
+
onToggleRef.current = onToggle;
|
|
26
|
+
openRef.current = open;
|
|
27
|
+
// Provide onToggle event and controlled state
|
|
28
|
+
react.useEffect(() => {
|
|
29
|
+
const details = detailsRef.current;
|
|
30
|
+
const handleToggle = (event) => {
|
|
31
|
+
if (!details || details?.open === openRef.current)
|
|
32
|
+
return;
|
|
33
|
+
onToggleRef.current?.(event);
|
|
34
|
+
if (openRef.current !== undefined)
|
|
35
|
+
details.open = openRef.current; // Don't update DOM unless controlled state changes
|
|
36
|
+
};
|
|
37
|
+
details?.addEventListener('toggle', handleToggle, true);
|
|
38
|
+
return () => details?.removeEventListener('toggle', handleToggle, true);
|
|
39
|
+
}, []);
|
|
40
|
+
return (jsxRuntime.jsx("u-details", { class: cl('ds-details', className), open: (open ?? initialOpen.current) || undefined, "data-variant": variant, ref: mergedRefs, ...rest }));
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
exports.Details = Details;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
5
|
+
var react = require('react');
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Details content component, contains the content of the details item.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* <DetailsContent>Content</DetailsContent>
|
|
12
|
+
*/
|
|
13
|
+
const DetailsContent = react.forwardRef(function DetailsContent(rest, ref) {
|
|
14
|
+
return jsxRuntime.jsx("div", { ref: ref, ...rest });
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
exports.DetailsContent = DetailsContent;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
5
|
+
var react = require('react');
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Details summary component, contains a the heading to toggle the content.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* <Details.Summary>Heading</Details.Summary>
|
|
12
|
+
*/
|
|
13
|
+
const DetailsSummary = react.forwardRef(function DetailsSummary({ className, ...rest }, ref) {
|
|
14
|
+
/* Set `className` as `class` so react is happy */
|
|
15
|
+
return (jsxRuntime.jsx("u-summary", { suppressHydrationWarning: true, ref: ref, class: className, ...rest }));
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
exports.DetailsSummary = DetailsSummary;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var Details$1 = require('./Details.js');
|
|
5
|
+
var DetailsContent = require('./DetailsContent.js');
|
|
6
|
+
var DetailsSummary = require('./DetailsSummary.js');
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Details component, contains `Details.Summary` and `Details.Content` components.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* <Details>
|
|
13
|
+
* <Details.Summary>Header</Details.Summary>
|
|
14
|
+
* <Details.Content>Content</Details.Content>
|
|
15
|
+
* </Details>
|
|
16
|
+
*/
|
|
17
|
+
const Details = Object.assign(Details$1.Details, {
|
|
18
|
+
Summary: DetailsSummary.DetailsSummary,
|
|
19
|
+
Content: DetailsContent.DetailsContent,
|
|
20
|
+
});
|
|
21
|
+
Details.Summary.displayName = 'Details.Summary';
|
|
22
|
+
Details.Content.displayName = 'Details.Content';
|
|
23
|
+
|
|
24
|
+
exports.DetailsContent = DetailsContent.DetailsContent;
|
|
25
|
+
exports.DetailsSummary = DetailsSummary.DetailsSummary;
|
|
26
|
+
exports.Details = Details;
|
|
@@ -0,0 +1,82 @@
|
|
|
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 DialogTriggerContext = require('./DialogTriggerContext.js');
|
|
10
|
+
var Button = require('../Button/Button.js');
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Dialog component, used to display a dialog dialog.
|
|
14
|
+
*
|
|
15
|
+
* @example with TriggerContext
|
|
16
|
+
* <Dialog.TriggerContext>
|
|
17
|
+
* <Dialog.Trigger>Open Dialog</Dialog.Trigger>
|
|
18
|
+
* <Dialog>
|
|
19
|
+
* <Dialog.Block>
|
|
20
|
+
* Content
|
|
21
|
+
* </Dialog.Block>
|
|
22
|
+
* </Dialog>
|
|
23
|
+
* </Dialog.TriggerContext>
|
|
24
|
+
*
|
|
25
|
+
* @example without TriggerContext
|
|
26
|
+
* const dialogRef = useRef<HTMLDialogElement>(null);
|
|
27
|
+
*
|
|
28
|
+
* ...
|
|
29
|
+
*
|
|
30
|
+
* <Button onClick={() => dialogRef.current?.showModal()}>Open Dialog</Button>
|
|
31
|
+
* <Dialog ref={dialogRef}>
|
|
32
|
+
* Content
|
|
33
|
+
* </Dialog>
|
|
34
|
+
*/
|
|
35
|
+
const Dialog = react.forwardRef(function Dialog({ asChild, children, className, closeButton = "Stäng dialogfönster", closedby = "closerequest", modal = true, onClose, open, ...rest }, ref) {
|
|
36
|
+
const contextRef = react.useContext(DialogTriggerContext.Context);
|
|
37
|
+
const dialogRef = react.useRef(null); // This local ref is used to make sure the dialog works without a DialogTriggerContext
|
|
38
|
+
const Component = asChild ? reactSlot.Slot : "dialog";
|
|
39
|
+
const mergedRefs = react$1.useMergeRefs([contextRef, ref, dialogRef]);
|
|
40
|
+
const showProp = modal ? "showModal" : "show";
|
|
41
|
+
react.useEffect(() => dialogRef.current?.[open ? showProp : "close"](), [open, showProp]); // Toggle open based on prop
|
|
42
|
+
react.useEffect(() => {
|
|
43
|
+
const dialog = dialogRef.current;
|
|
44
|
+
const handleClosedby = (event) => {
|
|
45
|
+
const { clientY: y, clientX: x, target } = event;
|
|
46
|
+
if (event instanceof KeyboardEvent)
|
|
47
|
+
return (closedby === "none" &&
|
|
48
|
+
event.key === "Escape" &&
|
|
49
|
+
event.preventDefault()); // Skip ESC-key if closedby="none"
|
|
50
|
+
if (window.getSelection()?.toString())
|
|
51
|
+
return; // Fix bug where if you select text spanning two divs it thinks you clicked outside
|
|
52
|
+
if (dialog && target === dialog && closedby === "any") {
|
|
53
|
+
const { top, left, right, bottom } = dialog.getBoundingClientRect();
|
|
54
|
+
const isInDialog = top <= y && y <= bottom && left <= x && x <= right;
|
|
55
|
+
if (!isInDialog)
|
|
56
|
+
dialog?.close(); // Both <dialog> and ::backdrop is considered same event.target
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
const handleAutoFocus = () => {
|
|
60
|
+
const autofocus = dialog?.querySelector("[autofocus]");
|
|
61
|
+
if (document.activeElement !== autofocus)
|
|
62
|
+
autofocus?.focus();
|
|
63
|
+
};
|
|
64
|
+
dialog?.addEventListener("animationend", handleAutoFocus);
|
|
65
|
+
dialog?.addEventListener("click", handleClosedby);
|
|
66
|
+
dialog?.addEventListener("keydown", handleClosedby);
|
|
67
|
+
return () => {
|
|
68
|
+
dialog?.removeEventListener("animationend", handleAutoFocus);
|
|
69
|
+
dialog?.removeEventListener("click", handleClosedby);
|
|
70
|
+
dialog?.removeEventListener("keydown", handleClosedby);
|
|
71
|
+
};
|
|
72
|
+
}, [closedby]);
|
|
73
|
+
/* handle closing */
|
|
74
|
+
react.useEffect(() => {
|
|
75
|
+
const handleClose = (event) => onClose?.(event);
|
|
76
|
+
dialogRef.current?.addEventListener("close", handleClose);
|
|
77
|
+
return () => dialogRef.current?.removeEventListener("close", handleClose);
|
|
78
|
+
}, [onClose]);
|
|
79
|
+
return (jsxRuntime.jsxs(Component, { className: cl("ds-dialog", className), ref: mergedRefs, "data-modal": modal, ...rest, children: [closeButton !== false && (jsxRuntime.jsx("form", { method: "dialog", children: jsxRuntime.jsx(Button.Button, { "aria-label": closeButton, autoFocus: true, "data-color": "neutral", icon: true, name: "close", type: "submit", variant: "tertiary" }) })), children] }));
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
exports.Dialog = Dialog;
|