@digdir/designsystemet-react 1.0.0-next.34 → 1.0.0-next.35
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/components/Accordion/AccordionContent.js +1 -2
- package/dist/cjs/components/Accordion/AccordionHeading.js +4 -6
- package/dist/cjs/components/Accordion/AccordionItem.js +16 -52
- package/dist/cjs/components/Alert/Alert.js +1 -2
- package/dist/cjs/components/Avatar/Avatar.js +1 -7
- package/dist/cjs/components/Badge/Badge.js +1 -7
- package/dist/cjs/components/Breadcrumbs/Breadcrumbs.js +1 -2
- package/dist/cjs/components/Button/Button.js +4 -3
- package/dist/cjs/components/Card/Card.js +24 -6
- package/dist/cjs/components/Card/{CardMedia.js → CardBlock.js} +3 -4
- package/dist/cjs/components/Card/index.js +6 -17
- package/dist/cjs/components/Chip/Chips.js +50 -0
- package/dist/cjs/components/Chip/index.js +12 -11
- package/dist/cjs/components/Dropdown/DropdownHeading.js +2 -5
- package/dist/cjs/components/ErrorSummary/ErrorSummaryHeading.js +2 -2
- package/dist/cjs/components/{Typography/Heading → Heading}/Heading.js +2 -3
- package/dist/cjs/components/{Typography/Label → Label}/Label.js +2 -3
- package/dist/cjs/components/List/Lists.js +1 -2
- package/dist/cjs/components/Modal/Modal.js +45 -0
- package/dist/cjs/components/Modal/ModalBlock.js +14 -0
- package/dist/cjs/components/Modal/ModalContext.js +17 -0
- package/dist/cjs/components/Modal/ModalTrigger.js +4 -5
- package/dist/cjs/components/Modal/index.js +12 -22
- package/dist/cjs/components/Pagination/Pagination.js +9 -14
- package/dist/cjs/components/Pagination/PaginationButton.js +4 -4
- package/dist/cjs/components/Pagination/PaginationItem.js +1 -4
- package/dist/cjs/components/Pagination/PaginationList.js +2 -5
- package/dist/cjs/components/Pagination/index.js +5 -19
- package/dist/cjs/components/Pagination/usePagination.js +46 -51
- package/dist/cjs/components/{Typography/Paragraph → Paragraph}/Paragraph.js +2 -8
- package/dist/cjs/components/Popover/Popover.js +3 -4
- package/dist/cjs/components/SkipLink/SkipLink.js +4 -4
- package/dist/cjs/components/Table/Table.js +1 -2
- package/dist/cjs/components/Tabs/TabsPanel.js +1 -2
- package/dist/cjs/components/Tabs/TabsTab.js +1 -2
- package/dist/cjs/components/Tag/Tag.js +1 -2
- package/dist/cjs/components/Tooltip/Tooltip.js +5 -6
- package/dist/cjs/components/{Typography/ValidationMessage → ValidationMessage}/ValidationMessage.js +2 -2
- package/dist/cjs/components/form/CharacterCounter.js +1 -1
- package/dist/cjs/components/form/Checkbox/Checkbox.js +2 -2
- package/dist/cjs/components/form/Combobox/Combobox.js +1 -2
- package/dist/cjs/components/form/Combobox/Custom.js +1 -1
- package/dist/cjs/components/form/Combobox/Empty.js +1 -1
- package/dist/cjs/components/form/Combobox/Option/Option.js +1 -1
- package/dist/cjs/components/form/Combobox/internal/ComboboxChips.js +2 -2
- package/dist/cjs/components/form/Combobox/internal/ComboboxError.js +1 -1
- package/dist/cjs/components/form/Combobox/internal/ComboboxInput.js +2 -2
- package/dist/cjs/components/form/Combobox/internal/ComboboxLabel.js +2 -2
- package/dist/cjs/components/form/Fieldset/Fieldset.js +3 -3
- package/dist/cjs/components/form/Radio/Radio.js +2 -2
- package/dist/cjs/components/form/Search/Search.js +2 -2
- package/dist/cjs/components/form/Select/Select.js +3 -3
- package/dist/cjs/components/form/Switch/Switch.js +3 -3
- package/dist/cjs/components/form/Textarea/Textarea.js +3 -3
- package/dist/cjs/components/form/Textfield/Textfield.js +3 -3
- package/dist/cjs/components/loaders/Skeleton/Skeleton.js +4 -2
- package/dist/cjs/index.js +17 -39
- package/dist/esm/components/Accordion/AccordionContent.js +1 -2
- package/dist/esm/components/Accordion/AccordionHeading.js +4 -6
- package/dist/esm/components/Accordion/AccordionItem.js +17 -53
- package/dist/esm/components/Alert/Alert.js +1 -2
- package/dist/esm/components/Avatar/Avatar.js +1 -7
- package/dist/esm/components/Badge/Badge.js +1 -7
- package/dist/esm/components/Breadcrumbs/Breadcrumbs.js +1 -2
- package/dist/esm/components/Button/Button.js +5 -4
- package/dist/esm/components/Card/Card.js +25 -7
- package/dist/esm/components/Card/{CardMedia.js → CardBlock.js} +3 -4
- package/dist/esm/components/Card/index.js +6 -14
- package/dist/esm/components/Chip/Chips.js +45 -0
- package/dist/esm/components/Chip/index.js +9 -9
- package/dist/esm/components/Dropdown/DropdownHeading.js +3 -6
- package/dist/esm/components/ErrorSummary/ErrorSummaryHeading.js +2 -2
- package/dist/esm/components/{Typography/Heading → Heading}/Heading.js +2 -3
- package/dist/esm/components/Label/Label.js +18 -0
- package/dist/esm/components/List/Lists.js +1 -2
- package/dist/esm/components/Modal/Modal.js +43 -0
- package/dist/esm/components/Modal/ModalBlock.js +12 -0
- package/dist/esm/components/Modal/ModalContext.js +14 -0
- package/dist/esm/components/Modal/ModalTrigger.js +4 -5
- package/dist/esm/components/Modal/index.js +11 -18
- package/dist/esm/components/Pagination/Pagination.js +11 -17
- package/dist/esm/components/Pagination/PaginationButton.js +3 -3
- package/dist/esm/components/Pagination/PaginationItem.js +2 -5
- package/dist/esm/components/Pagination/PaginationList.js +3 -6
- package/dist/esm/components/Pagination/index.js +6 -16
- package/dist/esm/components/Pagination/usePagination.js +47 -52
- package/dist/esm/components/Paragraph/Paragraph.js +18 -0
- package/dist/esm/components/Popover/Popover.js +3 -4
- package/dist/esm/components/SkipLink/SkipLink.js +4 -4
- package/dist/esm/components/Table/Table.js +1 -2
- package/dist/esm/components/Tabs/TabsPanel.js +1 -2
- package/dist/esm/components/Tabs/TabsTab.js +1 -2
- package/dist/esm/components/Tag/Tag.js +1 -2
- package/dist/esm/components/Tooltip/Tooltip.js +5 -6
- package/dist/esm/components/{Typography/ValidationMessage → ValidationMessage}/ValidationMessage.js +2 -2
- package/dist/esm/components/form/CharacterCounter.js +1 -1
- package/dist/esm/components/form/Checkbox/Checkbox.js +2 -2
- package/dist/esm/components/form/Combobox/Combobox.js +2 -3
- package/dist/esm/components/form/Combobox/Custom.js +1 -1
- package/dist/esm/components/form/Combobox/Empty.js +1 -1
- package/dist/esm/components/form/Combobox/Option/Option.js +1 -1
- package/dist/esm/components/form/Combobox/internal/ComboboxChips.js +2 -2
- package/dist/esm/components/form/Combobox/internal/ComboboxError.js +1 -1
- package/dist/esm/components/form/Combobox/internal/ComboboxInput.js +2 -2
- package/dist/esm/components/form/Combobox/internal/ComboboxLabel.js +2 -2
- package/dist/esm/components/form/Fieldset/Fieldset.js +3 -3
- package/dist/esm/components/form/Radio/Radio.js +2 -2
- package/dist/esm/components/form/Search/Search.js +2 -2
- package/dist/esm/components/form/Select/Select.js +3 -3
- package/dist/esm/components/form/Switch/Switch.js +3 -3
- package/dist/esm/components/form/Textarea/Textarea.js +3 -3
- package/dist/esm/components/form/Textfield/Textfield.js +3 -3
- package/dist/esm/components/loaders/Skeleton/Skeleton.js +4 -2
- package/dist/esm/index.js +8 -20
- package/dist/types/components/Accordion/AccordionContent.d.ts.map +1 -1
- package/dist/types/components/Accordion/AccordionHeading.d.ts +2 -2
- package/dist/types/components/Accordion/AccordionHeading.d.ts.map +1 -1
- package/dist/types/components/Accordion/AccordionItem.d.ts +8 -8
- package/dist/types/components/Accordion/AccordionItem.d.ts.map +1 -1
- package/dist/types/components/Alert/Alert.d.ts.map +1 -1
- package/dist/types/components/Avatar/Avatar.d.ts.map +1 -1
- package/dist/types/components/Badge/Badge.d.ts.map +1 -1
- package/dist/types/components/Breadcrumbs/Breadcrumbs.d.ts.map +1 -1
- package/dist/types/components/Button/Button.d.ts.map +1 -1
- package/dist/types/components/Card/Card.d.ts +5 -15
- package/dist/types/components/Card/Card.d.ts.map +1 -1
- package/dist/types/components/Card/{CardMedia.d.ts → CardBlock.d.ts} +3 -3
- package/dist/types/components/Card/{CardMedia.d.ts.map → CardBlock.d.ts.map} +1 -1
- package/dist/types/components/Card/index.d.ts +12 -16
- package/dist/types/components/Card/index.d.ts.map +1 -1
- package/dist/types/components/Chip/Chips.d.ts +45 -0
- package/dist/types/components/Chip/Chips.d.ts.map +1 -0
- package/dist/types/components/Chip/index.d.ts +20 -21
- package/dist/types/components/Chip/index.d.ts.map +1 -1
- package/dist/types/components/Dropdown/DropdownHeading.d.ts.map +1 -1
- package/dist/types/components/ErrorSummary/ErrorSummaryHeading.d.ts +1 -2
- package/dist/types/components/ErrorSummary/ErrorSummaryHeading.d.ts.map +1 -1
- package/dist/types/components/ErrorSummary/index.d.ts +0 -1
- package/dist/types/components/ErrorSummary/index.d.ts.map +1 -1
- package/dist/types/components/{Typography/Heading → Heading}/Heading.d.ts +0 -4
- package/dist/types/components/Heading/Heading.d.ts.map +1 -0
- package/dist/types/components/Heading/index.d.ts.map +1 -0
- package/dist/types/components/{Typography/Label → Label}/Label.d.ts +0 -4
- package/dist/types/components/Label/Label.d.ts.map +1 -0
- package/dist/types/components/Label/index.d.ts.map +1 -0
- package/dist/types/components/List/Lists.d.ts.map +1 -1
- package/dist/types/components/Modal/Modal.d.ts +38 -0
- package/dist/types/components/Modal/Modal.d.ts.map +1 -0
- package/dist/types/components/{Card/CardFooter.d.ts → Modal/ModalBlock.d.ts} +3 -3
- package/dist/types/components/Modal/ModalBlock.d.ts.map +1 -0
- package/dist/types/components/Modal/ModalContext.d.ts +10 -0
- package/dist/types/components/Modal/ModalContext.d.ts.map +1 -0
- package/dist/types/components/Modal/ModalTrigger.d.ts.map +1 -1
- package/dist/types/components/Modal/index.d.ts +31 -20
- package/dist/types/components/Modal/index.d.ts.map +1 -1
- package/dist/types/components/Pagination/Pagination.d.ts +23 -36
- package/dist/types/components/Pagination/Pagination.d.ts.map +1 -1
- package/dist/types/components/Pagination/PaginationButton.d.ts +4 -3
- package/dist/types/components/Pagination/PaginationButton.d.ts.map +1 -1
- package/dist/types/components/Pagination/PaginationItem.d.ts.map +1 -1
- package/dist/types/components/Pagination/PaginationList.d.ts +1 -1
- package/dist/types/components/Pagination/PaginationList.d.ts.map +1 -1
- package/dist/types/components/Pagination/index.d.ts +16 -17
- package/dist/types/components/Pagination/index.d.ts.map +1 -1
- package/dist/types/components/Pagination/usePagination.d.ts +41 -17
- package/dist/types/components/Pagination/usePagination.d.ts.map +1 -1
- package/dist/types/components/{Typography/Paragraph → Paragraph}/Paragraph.d.ts +2 -6
- package/dist/types/components/Paragraph/Paragraph.d.ts.map +1 -0
- package/dist/types/components/Paragraph/index.d.ts.map +1 -0
- package/dist/types/components/Popover/Popover.d.ts.map +1 -1
- package/dist/types/components/SkipLink/SkipLink.d.ts +7 -5
- package/dist/types/components/SkipLink/SkipLink.d.ts.map +1 -1
- package/dist/types/components/Table/Table.d.ts.map +1 -1
- package/dist/types/components/Tabs/TabsPanel.d.ts.map +1 -1
- package/dist/types/components/Tabs/TabsTab.d.ts.map +1 -1
- package/dist/types/components/Tag/Tag.d.ts +2 -5
- package/dist/types/components/Tag/Tag.d.ts.map +1 -1
- package/dist/types/components/Tooltip/Tooltip.d.ts.map +1 -1
- package/dist/types/components/{Typography/ValidationMessage → ValidationMessage}/ValidationMessage.d.ts +0 -4
- package/dist/types/components/ValidationMessage/ValidationMessage.d.ts.map +1 -0
- package/dist/types/components/ValidationMessage/index.d.ts.map +1 -0
- package/dist/types/components/form/Checkbox/Checkbox.d.ts.map +1 -1
- package/dist/types/components/form/Combobox/Combobox.d.ts.map +1 -1
- package/dist/types/components/form/Combobox/internal/ComboboxLabel.d.ts.map +1 -1
- package/dist/types/components/form/Fieldset/Fieldset.d.ts.map +1 -1
- package/dist/types/components/form/Radio/Radio.d.ts.map +1 -1
- package/dist/types/components/form/Search/Search.d.ts.map +1 -1
- package/dist/types/components/form/Select/Select.d.ts.map +1 -1
- package/dist/types/components/form/Switch/Switch.d.ts.map +1 -1
- package/dist/types/components/form/Textarea/Textarea.d.ts.map +1 -1
- package/dist/types/components/form/Textfield/Textfield.d.ts.map +1 -1
- package/dist/types/components/index.d.ts +4 -1
- package/dist/types/components/index.d.ts.map +1 -1
- package/dist/types/components/loaders/Skeleton/Skeleton.d.ts +8 -17
- package/dist/types/components/loaders/Skeleton/Skeleton.d.ts.map +1 -1
- package/package.json +3 -3
- package/dist/cjs/components/Card/CardContent.js +0 -16
- package/dist/cjs/components/Card/CardFooter.js +0 -16
- package/dist/cjs/components/Card/CardHeader.js +0 -16
- package/dist/cjs/components/Chip/Group/Group.js +0 -15
- package/dist/cjs/components/Chip/Removable/Removable.js +0 -17
- package/dist/cjs/components/Chip/Toggle/Toggle.js +0 -18
- package/dist/cjs/components/Modal/ModaContent.js +0 -15
- package/dist/cjs/components/Modal/ModalDialog.js +0 -73
- package/dist/cjs/components/Modal/ModalFooter.js +0 -15
- package/dist/cjs/components/Modal/ModalHeader.js +0 -20
- package/dist/cjs/components/Modal/ModalRoot.js +0 -31
- package/dist/cjs/components/Modal/useModalState.js +0 -30
- package/dist/cjs/components/Modal/useScrollLock.js +0 -29
- package/dist/cjs/components/Pagination/PaginationEllipsis.js +0 -15
- package/dist/cjs/components/Pagination/PaginationNextPrev.js +0 -16
- package/dist/cjs/components/Pagination/PaginationRoot.js +0 -18
- package/dist/cjs/components/Typography/Ingress/Ingress.js +0 -21
- package/dist/esm/components/Card/CardContent.js +0 -14
- package/dist/esm/components/Card/CardFooter.js +0 -14
- package/dist/esm/components/Card/CardHeader.js +0 -14
- package/dist/esm/components/Chip/Group/Group.js +0 -12
- package/dist/esm/components/Chip/Removable/Removable.js +0 -15
- package/dist/esm/components/Chip/Toggle/Toggle.js +0 -16
- package/dist/esm/components/Modal/ModaContent.js +0 -13
- package/dist/esm/components/Modal/ModalDialog.js +0 -71
- package/dist/esm/components/Modal/ModalFooter.js +0 -13
- package/dist/esm/components/Modal/ModalHeader.js +0 -18
- package/dist/esm/components/Modal/ModalRoot.js +0 -28
- package/dist/esm/components/Modal/useModalState.js +0 -28
- package/dist/esm/components/Modal/useScrollLock.js +0 -27
- package/dist/esm/components/Pagination/PaginationEllipsis.js +0 -13
- package/dist/esm/components/Pagination/PaginationNextPrev.js +0 -13
- package/dist/esm/components/Pagination/PaginationRoot.js +0 -15
- package/dist/esm/components/Typography/Ingress/Ingress.js +0 -19
- package/dist/esm/components/Typography/Label/Label.js +0 -19
- package/dist/esm/components/Typography/Paragraph/Paragraph.js +0 -24
- package/dist/types/components/Card/CardContent.d.ts +0 -16
- package/dist/types/components/Card/CardContent.d.ts.map +0 -1
- package/dist/types/components/Card/CardFooter.d.ts.map +0 -1
- package/dist/types/components/Card/CardHeader.d.ts +0 -16
- package/dist/types/components/Card/CardHeader.d.ts.map +0 -1
- package/dist/types/components/Chip/Group/Group.d.ts +0 -20
- package/dist/types/components/Chip/Group/Group.d.ts.map +0 -1
- package/dist/types/components/Chip/Removable/Removable.d.ts +0 -17
- package/dist/types/components/Chip/Removable/Removable.d.ts.map +0 -1
- package/dist/types/components/Chip/Toggle/Toggle.d.ts +0 -33
- package/dist/types/components/Chip/Toggle/Toggle.d.ts.map +0 -1
- package/dist/types/components/Modal/ModaContent.d.ts +0 -16
- package/dist/types/components/Modal/ModaContent.d.ts.map +0 -1
- package/dist/types/components/Modal/ModalDialog.d.ts +0 -38
- package/dist/types/components/Modal/ModalDialog.d.ts.map +0 -1
- package/dist/types/components/Modal/ModalFooter.d.ts +0 -16
- package/dist/types/components/Modal/ModalFooter.d.ts.map +0 -1
- package/dist/types/components/Modal/ModalHeader.d.ts +0 -44
- package/dist/types/components/Modal/ModalHeader.d.ts.map +0 -1
- package/dist/types/components/Modal/ModalRoot.d.ts +0 -17
- package/dist/types/components/Modal/ModalRoot.d.ts.map +0 -1
- package/dist/types/components/Modal/useModalState.d.ts +0 -2
- package/dist/types/components/Modal/useModalState.d.ts.map +0 -1
- package/dist/types/components/Modal/useScrollLock.d.ts +0 -2
- package/dist/types/components/Modal/useScrollLock.d.ts.map +0 -1
- package/dist/types/components/Pagination/PaginationEllipsis.d.ts +0 -4
- package/dist/types/components/Pagination/PaginationEllipsis.d.ts.map +0 -1
- package/dist/types/components/Pagination/PaginationNextPrev.d.ts +0 -10
- package/dist/types/components/Pagination/PaginationNextPrev.d.ts.map +0 -1
- package/dist/types/components/Pagination/PaginationRoot.d.ts +0 -53
- package/dist/types/components/Pagination/PaginationRoot.d.ts.map +0 -1
- package/dist/types/components/Typography/Heading/Heading.d.ts.map +0 -1
- package/dist/types/components/Typography/Heading/index.d.ts.map +0 -1
- package/dist/types/components/Typography/Ingress/Ingress.d.ts +0 -34
- package/dist/types/components/Typography/Ingress/Ingress.d.ts.map +0 -1
- package/dist/types/components/Typography/Ingress/index.d.ts +0 -2
- package/dist/types/components/Typography/Ingress/index.d.ts.map +0 -1
- package/dist/types/components/Typography/Label/Label.d.ts.map +0 -1
- package/dist/types/components/Typography/Label/index.d.ts.map +0 -1
- package/dist/types/components/Typography/Paragraph/Paragraph.d.ts.map +0 -1
- package/dist/types/components/Typography/Paragraph/index.d.ts.map +0 -1
- package/dist/types/components/Typography/ValidationMessage/ValidationMessage.d.ts.map +0 -1
- package/dist/types/components/Typography/ValidationMessage/index.d.ts.map +0 -1
- package/dist/types/components/Typography/index.d.ts +0 -6
- package/dist/types/components/Typography/index.d.ts.map +0 -1
- package/dist/types/utilities/AnimateHeight/AnimateHeight.d.ts +0 -9
- package/dist/types/utilities/AnimateHeight/AnimateHeight.d.ts.map +0 -1
- package/dist/types/utilities/AnimateHeight/index.d.ts +0 -3
- package/dist/types/utilities/AnimateHeight/index.d.ts.map +0 -1
- /package/dist/types/components/{Typography/Heading → Heading}/index.d.ts +0 -0
- /package/dist/types/components/{Typography/Label → Label}/index.d.ts +0 -0
- /package/dist/types/components/{Typography/Paragraph → Paragraph}/index.d.ts +0 -0
- /package/dist/types/components/{Typography/ValidationMessage → ValidationMessage}/index.d.ts +0 -0
|
@@ -6,14 +6,14 @@ var akselIcons = require('@navikt/aksel-icons');
|
|
|
6
6
|
var cl = require('clsx/lite');
|
|
7
7
|
var react = require('react');
|
|
8
8
|
var useSwitch = require('./useSwitch.js');
|
|
9
|
-
var Paragraph = require('../../
|
|
9
|
+
var Paragraph = require('../../Paragraph/Paragraph.js');
|
|
10
10
|
var omit = require('../../../utilities/omit/omit.js');
|
|
11
|
-
var Label = require('../../
|
|
11
|
+
var Label = require('../../Label/Label.js');
|
|
12
12
|
|
|
13
13
|
const Switch = react.forwardRef((props, ref) => {
|
|
14
14
|
const { children, description, position = 'left', className, ...rest } = props;
|
|
15
15
|
const { inputProps, descriptionId, size = 'md', readOnly, } = useSwitch.useSwitch(props);
|
|
16
|
-
return (jsxRuntime.jsx(Paragraph.Paragraph, { asChild: true, size: size, children: jsxRuntime.jsxs("div", { className: cl(`ds-switch`, `ds-switch--${size}`, inputProps.disabled && `ds-switch--disabled`, readOnly && `ds-switch--readonly`, className), children: [jsxRuntime.jsx("input", { className: `ds-switch__input`, disabled: inputProps.disabled, ref: ref, ...omit.omit(['size', 'error'], rest), ...inputProps }), jsxRuntime.jsxs(Label.Label, { className: cl(`ds-switch__label`, position === 'right' && `ds-switch__label--right`), htmlFor: inputProps.id, size: size, weight: 'regular', children: [jsxRuntime.jsx("span", { className: `ds-switch__track`, children: jsxRuntime.jsx("span", { className: `ds-switch__thumb` }) }), readOnly && (jsxRuntime.jsx(akselIcons.PadlockLockedFillIcon, { "aria-hidden": true, className: `ds-switch__readonly__icon` })), children && jsxRuntime.jsx("span", { children: children })] }), description && (jsxRuntime.jsx(Paragraph.Paragraph, { asChild: true, size: size, children: jsxRuntime.jsx("div", { id: descriptionId, className: `ds-switch__description`, children: description }) }))] }) }));
|
|
16
|
+
return (jsxRuntime.jsx(Paragraph.Paragraph, { asChild: true, size: size, ...(inputProps.disabled && { 'aria-disabled': true }), children: jsxRuntime.jsxs("div", { className: cl(`ds-switch`, `ds-switch--${size}`, inputProps.disabled && `ds-switch--disabled`, readOnly && `ds-switch--readonly`, className), children: [jsxRuntime.jsx("input", { className: `ds-switch__input`, disabled: inputProps.disabled, ref: ref, ...omit.omit(['size', 'error'], rest), ...inputProps }), jsxRuntime.jsxs(Label.Label, { className: cl(`ds-switch__label`, position === 'right' && `ds-switch__label--right`), htmlFor: inputProps.id, size: size, weight: 'regular', children: [jsxRuntime.jsx("span", { className: `ds-switch__track`, children: jsxRuntime.jsx("span", { className: `ds-switch__thumb` }) }), readOnly && (jsxRuntime.jsx(akselIcons.PadlockLockedFillIcon, { "aria-hidden": true, className: `ds-switch__readonly__icon` })), children && jsxRuntime.jsx("span", { children: children })] }), description && (jsxRuntime.jsx(Paragraph.Paragraph, { asChild: true, size: size, children: jsxRuntime.jsx("div", { id: descriptionId, className: `ds-switch__description`, children: description }) }))] }) }));
|
|
17
17
|
});
|
|
18
18
|
Switch.displayName = 'Switch';
|
|
19
19
|
|
|
@@ -7,10 +7,10 @@ var cl = require('clsx/lite');
|
|
|
7
7
|
var react = require('react');
|
|
8
8
|
var CharacterCounter = require('../CharacterCounter.js');
|
|
9
9
|
var useTextarea = require('./useTextarea.js');
|
|
10
|
-
var Paragraph = require('../../
|
|
11
|
-
var Label = require('../../
|
|
10
|
+
var Paragraph = require('../../Paragraph/Paragraph.js');
|
|
11
|
+
var Label = require('../../Label/Label.js');
|
|
12
12
|
var omit = require('../../../utilities/omit/omit.js');
|
|
13
|
-
var ValidationMessage = require('../../
|
|
13
|
+
var ValidationMessage = require('../../ValidationMessage/ValidationMessage.js');
|
|
14
14
|
|
|
15
15
|
/** Textarea field
|
|
16
16
|
*
|
|
@@ -7,10 +7,10 @@ var cl = require('clsx/lite');
|
|
|
7
7
|
var react = require('react');
|
|
8
8
|
var CharacterCounter = require('../CharacterCounter.js');
|
|
9
9
|
var useTextfield = require('./useTextfield.js');
|
|
10
|
-
var Paragraph = require('../../
|
|
11
|
-
var Label = require('../../
|
|
10
|
+
var Paragraph = require('../../Paragraph/Paragraph.js');
|
|
11
|
+
var Label = require('../../Label/Label.js');
|
|
12
12
|
var omit = require('../../../utilities/omit/omit.js');
|
|
13
|
-
var ValidationMessage = require('../../
|
|
13
|
+
var ValidationMessage = require('../../ValidationMessage/ValidationMessage.js');
|
|
14
14
|
|
|
15
15
|
/** Text input field
|
|
16
16
|
*
|
|
@@ -8,11 +8,13 @@ var cl = require('clsx/lite');
|
|
|
8
8
|
var react = require('react');
|
|
9
9
|
var useSynchronizedAnimation = require('../../../utilities/hooks/useSynchronizedAnimation/useSynchronizedAnimation.js');
|
|
10
10
|
|
|
11
|
-
const Skeleton = react.forwardRef(function Skeleton({ asChild, className, height, style, variant = 'rectangle', width, ...rest }, ref) {
|
|
11
|
+
const Skeleton = react.forwardRef(function Skeleton({ asChild, className, children, height, style, variant = 'rectangle', width, ...rest }, ref) {
|
|
12
12
|
const Component = asChild ? reactSlot.Slot : 'span';
|
|
13
|
+
const isText = variant === 'text';
|
|
14
|
+
const childrenText = isText && '-'.repeat(Number(width) || 1); // s followed by a ­ makes the most average character length
|
|
13
15
|
const animationRef = useSynchronizedAnimation.useSynchronizedAnimation('ds-skeleton-opacity-fade');
|
|
14
16
|
const mergedRefs = react$1.useMergeRefs([animationRef, ref]);
|
|
15
|
-
return (jsxRuntime.jsx(Component, { "aria-hidden": 'true', className: cl('ds-skeleton', className), "data-variant": variant, ref: mergedRefs, style: { width, height, ...style }, ...rest }));
|
|
17
|
+
return (jsxRuntime.jsx(Component, { "aria-hidden": 'true', className: cl('ds-skeleton', className), "data-variant": variant, ref: mergedRefs, style: isText ? style : { width, height, ...style }, ...rest, children: children || childrenText }));
|
|
16
18
|
});
|
|
17
19
|
|
|
18
20
|
exports.Skeleton = Skeleton;
|
package/dist/cjs/index.js
CHANGED
|
@@ -21,11 +21,10 @@ var Link = require('./components/Link/Link.js');
|
|
|
21
21
|
var index$1 = require('./components/List/index.js');
|
|
22
22
|
var Lists = require('./components/List/Lists.js');
|
|
23
23
|
var ListItem = require('./components/List/ListItem.js');
|
|
24
|
-
var
|
|
25
|
-
var Heading = require('./components/
|
|
26
|
-
var
|
|
27
|
-
var
|
|
28
|
-
var ValidationMessage = require('./components/Typography/ValidationMessage/ValidationMessage.js');
|
|
24
|
+
var Label = require('./components/Label/Label.js');
|
|
25
|
+
var Heading = require('./components/Heading/Heading.js');
|
|
26
|
+
var Paragraph = require('./components/Paragraph/Paragraph.js');
|
|
27
|
+
var ValidationMessage = require('./components/ValidationMessage/ValidationMessage.js');
|
|
29
28
|
var index$2 = require('./components/Accordion/index.js');
|
|
30
29
|
var AccordionItem = require('./components/Accordion/AccordionItem.js');
|
|
31
30
|
var AccordionContent = require('./components/Accordion/AccordionContent.js');
|
|
@@ -36,17 +35,12 @@ var SelectOptgroup = require('./components/form/Select/SelectOptgroup.js');
|
|
|
36
35
|
var Alert = require('./components/Alert/Alert.js');
|
|
37
36
|
var Tag = require('./components/Tag/Tag.js');
|
|
38
37
|
var index$4 = require('./components/Chip/index.js');
|
|
39
|
-
var
|
|
40
|
-
var Removable = require('./components/Chip/Removable/Removable.js');
|
|
41
|
-
var Toggle = require('./components/Chip/Toggle/Toggle.js');
|
|
38
|
+
var Chips = require('./components/Chip/Chips.js');
|
|
42
39
|
var usePagination = require('./components/Pagination/usePagination.js');
|
|
43
40
|
var index$5 = require('./components/Pagination/index.js');
|
|
44
|
-
var PaginationRoot = require('./components/Pagination/PaginationRoot.js');
|
|
45
41
|
var PaginationList = require('./components/Pagination/PaginationList.js');
|
|
46
42
|
var PaginationItem = require('./components/Pagination/PaginationItem.js');
|
|
47
43
|
var PaginationButton = require('./components/Pagination/PaginationButton.js');
|
|
48
|
-
var PaginationEllipsis = require('./components/Pagination/PaginationEllipsis.js');
|
|
49
|
-
var PaginationNextPrev = require('./components/Pagination/PaginationNextPrev.js');
|
|
50
44
|
var SkipLink = require('./components/SkipLink/SkipLink.js');
|
|
51
45
|
var Tooltip = require('./components/Tooltip/Tooltip.js');
|
|
52
46
|
var index$6 = require('./components/form/Checkbox/index.js');
|
|
@@ -68,12 +62,9 @@ var PopoverContext = require('./components/Popover/PopoverContext.js');
|
|
|
68
62
|
var PopoverTrigger = require('./components/Popover/PopoverTrigger.js');
|
|
69
63
|
var Divider = require('./components/Divider/Divider.js');
|
|
70
64
|
var index$b = require('./components/Modal/index.js');
|
|
71
|
-
var
|
|
72
|
-
var
|
|
73
|
-
var ModalFooter = require('./components/Modal/ModalFooter.js');
|
|
74
|
-
var ModalHeader = require('./components/Modal/ModalHeader.js');
|
|
65
|
+
var ModalBlock = require('./components/Modal/ModalBlock.js');
|
|
66
|
+
var ModalContext = require('./components/Modal/ModalContext.js');
|
|
75
67
|
var ModalTrigger = require('./components/Modal/ModalTrigger.js');
|
|
76
|
-
var ModalDialog = require('./components/Modal/ModalDialog.js');
|
|
77
68
|
var index$c = require('./components/Dropdown/index.js');
|
|
78
69
|
var DropdownContext = require('./components/Dropdown/DropdownContext.js');
|
|
79
70
|
var DropdownList = require('./components/Dropdown/DropdownList.js');
|
|
@@ -82,10 +73,7 @@ var DropdownItem = require('./components/Dropdown/DropdownItem.js');
|
|
|
82
73
|
var DropdownTrigger = require('./components/Dropdown/DropdownTrigger.js');
|
|
83
74
|
var Search = require('./components/form/Search/Search.js');
|
|
84
75
|
var index$d = require('./components/Card/index.js');
|
|
85
|
-
var
|
|
86
|
-
var CardContent = require('./components/Card/CardContent.js');
|
|
87
|
-
var CardFooter = require('./components/Card/CardFooter.js');
|
|
88
|
-
var CardMedia = require('./components/Card/CardMedia.js');
|
|
76
|
+
var CardBlock = require('./components/Card/CardBlock.js');
|
|
89
77
|
var index$e = require('./components/form/Combobox/index.js');
|
|
90
78
|
var Option = require('./components/form/Combobox/Option/Option.js');
|
|
91
79
|
var Empty = require('./components/form/Combobox/Empty.js');
|
|
@@ -125,10 +113,9 @@ exports.List = index$1.List;
|
|
|
125
113
|
exports.ListOrdered = Lists.ListOrdered;
|
|
126
114
|
exports.ListUnordered = Lists.ListUnordered;
|
|
127
115
|
exports.ListItem = ListItem.ListItem;
|
|
128
|
-
exports.Paragraph = Paragraph.Paragraph;
|
|
129
|
-
exports.Heading = Heading.Heading;
|
|
130
|
-
exports.Ingress = Ingress.Ingress;
|
|
131
116
|
exports.Label = Label.Label;
|
|
117
|
+
exports.Heading = Heading.Heading;
|
|
118
|
+
exports.Paragraph = Paragraph.Paragraph;
|
|
132
119
|
exports.ValidationMessage = ValidationMessage.ValidationMessage;
|
|
133
120
|
exports.Accordion = index$2.Accordion;
|
|
134
121
|
exports.AccordionItem = AccordionItem.AccordionItem;
|
|
@@ -140,18 +127,15 @@ exports.SelectOptgroup = SelectOptgroup.SelectOptgroup;
|
|
|
140
127
|
exports.Alert = Alert.Alert;
|
|
141
128
|
exports.Tag = Tag.Tag;
|
|
142
129
|
exports.Chip = index$4.Chip;
|
|
143
|
-
exports.
|
|
144
|
-
exports.
|
|
145
|
-
exports.
|
|
130
|
+
exports.ChipButton = Chips.ChipButton;
|
|
131
|
+
exports.ChipCheckbox = Chips.ChipCheckbox;
|
|
132
|
+
exports.ChipRadio = Chips.ChipRadio;
|
|
133
|
+
exports.ChipRemovable = Chips.ChipRemovable;
|
|
146
134
|
exports.usePagination = usePagination.usePagination;
|
|
147
135
|
exports.Pagination = index$5.Pagination;
|
|
148
|
-
exports.PaginationRoot = PaginationRoot.PaginationRoot;
|
|
149
136
|
exports.PaginationList = PaginationList.PaginationList;
|
|
150
137
|
exports.PaginationItem = PaginationItem.PaginationItem;
|
|
151
138
|
exports.PaginationButton = PaginationButton.PaginationButton;
|
|
152
|
-
exports.PaginationEllipsis = PaginationEllipsis.PaginationEllipsis;
|
|
153
|
-
exports.PaginationNext = PaginationNextPrev.PaginationNext;
|
|
154
|
-
exports.PaginationPrevious = PaginationNextPrev.PaginationPrevious;
|
|
155
139
|
exports.SkipLink = SkipLink.SkipLink;
|
|
156
140
|
exports.Tooltip = Tooltip.Tooltip;
|
|
157
141
|
exports.Checkbox = index$6.Checkbox;
|
|
@@ -173,12 +157,9 @@ exports.PopoverContext = PopoverContext.PopoverContext;
|
|
|
173
157
|
exports.PopoverTrigger = PopoverTrigger.PopoverTrigger;
|
|
174
158
|
exports.Divider = Divider.Divider;
|
|
175
159
|
exports.Modal = index$b.Modal;
|
|
176
|
-
exports.
|
|
177
|
-
exports.
|
|
178
|
-
exports.ModalFooter = ModalFooter.ModalFooter;
|
|
179
|
-
exports.ModalHeader = ModalHeader.ModalHeader;
|
|
160
|
+
exports.ModalBlock = ModalBlock.ModalBlock;
|
|
161
|
+
exports.ModalContext = ModalContext.ModalContext;
|
|
180
162
|
exports.ModalTrigger = ModalTrigger.ModalTrigger;
|
|
181
|
-
exports.ModalDialog = ModalDialog.ModalDialog;
|
|
182
163
|
exports.Dropdown = index$c.Dropdown;
|
|
183
164
|
exports.DropdownContext = DropdownContext.DropdownContext;
|
|
184
165
|
exports.DropdownList = DropdownList.DropdownList;
|
|
@@ -187,10 +168,7 @@ exports.DropdownItem = DropdownItem.DropdownItem;
|
|
|
187
168
|
exports.DropdownTrigger = DropdownTrigger.DropdownTrigger;
|
|
188
169
|
exports.Search = Search.Search;
|
|
189
170
|
exports.Card = index$d.Card;
|
|
190
|
-
exports.
|
|
191
|
-
exports.CardContent = CardContent.CardContent;
|
|
192
|
-
exports.CardFooter = CardFooter.CardFooter;
|
|
193
|
-
exports.CardMedia = CardMedia.CardMedia;
|
|
171
|
+
exports.CardBlock = CardBlock.CardBlock;
|
|
194
172
|
exports.Combobox = index$e.Combobox;
|
|
195
173
|
exports.ComboboxOption = Option.ComboboxOption;
|
|
196
174
|
exports.ComboboxEmpty = Empty.ComboboxEmpty;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx } from 'react/jsx-runtime';
|
|
3
3
|
import { forwardRef } from 'react';
|
|
4
|
-
import { Paragraph } from '../Typography/Paragraph/Paragraph.js';
|
|
5
4
|
|
|
6
5
|
/**
|
|
7
6
|
* Accordion content component, contains the content of the accordion item.
|
|
@@ -9,7 +8,7 @@ import { Paragraph } from '../Typography/Paragraph/Paragraph.js';
|
|
|
9
8
|
* <AccordionContent>Content</AccordionContent>
|
|
10
9
|
*/
|
|
11
10
|
const AccordionContent = forwardRef(function AccordionContent(rest, ref) {
|
|
12
|
-
return
|
|
11
|
+
return jsx("div", { ref: ref, ...rest });
|
|
13
12
|
});
|
|
14
13
|
|
|
15
14
|
export { AccordionContent };
|
|
@@ -1,17 +1,15 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx } from 'react/jsx-runtime';
|
|
3
|
-
import cl from 'clsx/lite';
|
|
4
3
|
import { forwardRef } from 'react';
|
|
5
|
-
import { Paragraph } from '../Typography/Paragraph/Paragraph.js';
|
|
6
4
|
|
|
7
5
|
/**
|
|
8
|
-
* Accordion
|
|
6
|
+
* Accordion heading component, contains a button to toggle the content.
|
|
9
7
|
* @example
|
|
10
|
-
* <
|
|
8
|
+
* <AccordionHeading>Heading</AccordionHeading>
|
|
11
9
|
*/
|
|
12
10
|
const AccordionHeading = forwardRef(function AccordionHeading({ className, ...rest }, ref) {
|
|
13
|
-
|
|
14
|
-
|
|
11
|
+
/* Set `className` as `class` so react is happy */
|
|
12
|
+
return jsx("u-summary", { ref: ref, class: className, ...rest });
|
|
15
13
|
});
|
|
16
14
|
|
|
17
15
|
export { AccordionHeading };
|
|
@@ -2,75 +2,39 @@
|
|
|
2
2
|
import { jsx } from 'react/jsx-runtime';
|
|
3
3
|
import { useMergeRefs } from '@floating-ui/react';
|
|
4
4
|
import cl from 'clsx/lite';
|
|
5
|
-
import { forwardRef,
|
|
5
|
+
import { forwardRef, useRef, useEffect } from 'react';
|
|
6
6
|
import '@u-elements/u-details';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
|
-
* Accordion item component, contains `Accordion.
|
|
9
|
+
* Accordion item component, contains `Accordion.Heading` and `Accordion.Content` components.
|
|
10
10
|
* @example
|
|
11
11
|
* <AccordionItem>
|
|
12
|
-
* <
|
|
12
|
+
* <AccordionHeading>Header</AccordionHeading>
|
|
13
13
|
* <AccordionContent>Content</AccordionContent>
|
|
14
14
|
* </AccordionItem>
|
|
15
15
|
*/
|
|
16
|
-
const AccordionItem = forwardRef(function AccordionItem({ className, open, defaultOpen = false,
|
|
17
|
-
const [internalOpen, setInternalOpen] = useState(open ?? defaultOpen);
|
|
18
|
-
const initialOpen = useRef(internalOpen); // Allow rendering initial open state on server, but animate in browser
|
|
19
|
-
const controlledOpen = useRef(internalOpen); // Using ref so we can access it inside useEffect without unbinding/binding event listeners
|
|
16
|
+
const AccordionItem = forwardRef(function AccordionItem({ className, open, defaultOpen = false, onToggle, ...rest }, ref) {
|
|
20
17
|
const detailsRef = useRef(null);
|
|
18
|
+
const initialOpen = useRef(defaultOpen); // Allow rendering defaultOpen on server, but only render once on client
|
|
21
19
|
const mergedRefs = useMergeRefs([detailsRef, ref]);
|
|
22
|
-
|
|
23
|
-
|
|
20
|
+
const onToggleRef = useRef(onToggle); // Using ref to enable access inside useEffect without re-binding event listeners
|
|
21
|
+
const openRef = useRef(open);
|
|
22
|
+
onToggleRef.current = onToggle;
|
|
23
|
+
openRef.current = open;
|
|
24
|
+
// Provide onToggle event and controlled state
|
|
24
25
|
useEffect(() => {
|
|
25
26
|
const details = detailsRef.current;
|
|
26
|
-
const
|
|
27
|
-
|
|
28
|
-
event?.preventDefault(); // Prevent native <details> toggle so we can animate
|
|
29
|
-
setInternalOpen((open) => !open);
|
|
30
|
-
};
|
|
31
|
-
const handleToggle = () => {
|
|
32
|
-
if (!details || details.open === controlledOpen.current)
|
|
27
|
+
const handleToggle = (event) => {
|
|
28
|
+
if (!details || details?.open === openRef.current)
|
|
33
29
|
return;
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
details.open = controlledOpen.current;
|
|
38
|
-
}); // Let onFound run before correcting state
|
|
30
|
+
onToggleRef.current?.(event);
|
|
31
|
+
if (openRef.current !== undefined)
|
|
32
|
+
details.open = openRef.current; // Don't update DOM unless controlled state changes
|
|
39
33
|
};
|
|
40
34
|
details?.addEventListener('toggle', handleToggle, true);
|
|
41
|
-
|
|
42
|
-
return () => {
|
|
43
|
-
details?.removeEventListener('toggle', handleToggle, true);
|
|
44
|
-
summary?.removeEventListener('click', handleSummaryClick);
|
|
45
|
-
};
|
|
35
|
+
return () => details?.removeEventListener('toggle', handleToggle, true);
|
|
46
36
|
}, []);
|
|
47
|
-
|
|
48
|
-
animateHeight(detailsRef.current, controlledOpen.current);
|
|
49
|
-
}, [controlledOpen.current]);
|
|
50
|
-
return (jsx("u-details", { class: cl('ds-accordion__item', className), open: initialOpen.current || undefined, ref: mergedRefs, ...rest }));
|
|
37
|
+
return (jsx("u-details", { class: cl('ds-accordion__item', className), open: (open ?? initialOpen.current) || undefined, ref: mergedRefs, ...rest }));
|
|
51
38
|
});
|
|
52
|
-
const animateHeight = (details, open) => {
|
|
53
|
-
const content = details?.querySelector(':scope > :not(summary, u-summary)');
|
|
54
|
-
const hasContent = content instanceof HTMLElement;
|
|
55
|
-
const hasAnimate = details && 'animate' in details;
|
|
56
|
-
const hasReducedMotion = window.matchMedia?.('(prefers-reduced-motion: reduce)').matches;
|
|
57
|
-
details?.setAttribute('data-chevron-open', `${open}`); // Make flip on click
|
|
58
|
-
if (hasReducedMotion || !hasAnimate || !hasContent) {
|
|
59
|
-
if (details)
|
|
60
|
-
details.open = open;
|
|
61
|
-
}
|
|
62
|
-
else if (details.open !== open) {
|
|
63
|
-
details.open = true;
|
|
64
|
-
const opened = `${content.scrollHeight}px`;
|
|
65
|
-
content.style.overflow = 'clip'; // Clip content while animating
|
|
66
|
-
content.animate({
|
|
67
|
-
height: [open ? '0px' : opened, open ? opened : '0px'],
|
|
68
|
-
paddingBlock: [open ? '0px' : '', open ? '' : '0px'],
|
|
69
|
-
}, { duration: 400, easing: 'ease-in-out' }).onfinish = () => {
|
|
70
|
-
content.style.removeProperty('overflow'); // Restore overlow
|
|
71
|
-
details.open = open;
|
|
72
|
-
};
|
|
73
|
-
}
|
|
74
|
-
};
|
|
75
39
|
|
|
76
40
|
export { AccordionItem };
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
import { jsx } from 'react/jsx-runtime';
|
|
3
3
|
import cl from 'clsx/lite';
|
|
4
4
|
import { forwardRef } from 'react';
|
|
5
|
-
import { Paragraph } from '../Typography/Paragraph/Paragraph.js';
|
|
6
5
|
|
|
7
6
|
/**
|
|
8
7
|
* Alerts are used to inform users about important information, warnings, errors, or success.
|
|
@@ -10,7 +9,7 @@ import { Paragraph } from '../Typography/Paragraph/Paragraph.js';
|
|
|
10
9
|
* <Alert color='info'>Dette er en informasjonsmelding</Alert>
|
|
11
10
|
*/
|
|
12
11
|
const Alert = forwardRef(function Alert({ color = 'info', size = 'md', className, ...rest }, ref) {
|
|
13
|
-
return (jsx(
|
|
12
|
+
return (jsx("div", { className: cl('ds-alert', className), "data-color": color, "data-size": size, ref: ref, ...rest }));
|
|
14
13
|
});
|
|
15
14
|
|
|
16
15
|
export { Alert };
|
|
@@ -4,12 +4,6 @@ import { Slot } from '@radix-ui/react-slot';
|
|
|
4
4
|
import cl from 'clsx/lite';
|
|
5
5
|
import { forwardRef, Fragment } from 'react';
|
|
6
6
|
|
|
7
|
-
const fontSizeMap = {
|
|
8
|
-
xs: 'ds-paragraph--xs',
|
|
9
|
-
sm: 'ds-heading--2xs',
|
|
10
|
-
md: 'ds-heading--sm',
|
|
11
|
-
lg: 'ds-heading--md',
|
|
12
|
-
};
|
|
13
7
|
/**
|
|
14
8
|
* Avatars are used to represent people or entities.
|
|
15
9
|
*
|
|
@@ -28,7 +22,7 @@ const fontSizeMap = {
|
|
|
28
22
|
*/
|
|
29
23
|
const Avatar = forwardRef(function Avatar({ 'aria-label': ariaLabel, color = 'accent', size = 'md', variant = 'circle', className, children, ...rest }, ref) {
|
|
30
24
|
const Component = children && typeof children !== 'string' ? Slot : Fragment;
|
|
31
|
-
return (jsx("span", { ref: ref, className: cl('ds-avatar',
|
|
25
|
+
return (jsx("span", { ref: ref, className: cl('ds-avatar', className), "data-variant": variant, "data-color": color, "data-size": size, role: 'img', "aria-label": ariaLabel, ...rest, children: jsx(Component, { ...(children ? { 'aria-hidden': true } : {}), children: children }) }));
|
|
32
26
|
});
|
|
33
27
|
|
|
34
28
|
export { Avatar };
|
|
@@ -2,13 +2,7 @@
|
|
|
2
2
|
import { jsx } from 'react/jsx-runtime';
|
|
3
3
|
import cl from 'clsx/lite';
|
|
4
4
|
import { forwardRef } from 'react';
|
|
5
|
-
import { Paragraph } from '../Typography/Paragraph/Paragraph.js';
|
|
6
5
|
|
|
7
|
-
const paragraphSizeMap = {
|
|
8
|
-
sm: 'xs',
|
|
9
|
-
md: 'sm',
|
|
10
|
-
lg: 'md',
|
|
11
|
-
};
|
|
12
6
|
/**
|
|
13
7
|
* `Badge` is a non-interactive component for displaying status with or without numbers.
|
|
14
8
|
*
|
|
@@ -25,7 +19,7 @@ const paragraphSizeMap = {
|
|
|
25
19
|
* ```
|
|
26
20
|
*/
|
|
27
21
|
const Badge = forwardRef(function Badge({ className, color = 'accent', count, maxCount, overlap = 'rectangle', placement = 'top-right', size = 'md', ...rest }, ref) {
|
|
28
|
-
return (jsx(
|
|
22
|
+
return (jsx("span", { className: cl('ds-badge', className), "data-color": color, "data-count": count && maxCount && count > maxCount ? `${maxCount}+` : count, "data-overlap": rest.children ? overlap : null, "data-placement": rest.children ? placement : null, "data-size": size, ref: ref, ...rest }));
|
|
29
23
|
});
|
|
30
24
|
|
|
31
25
|
export { Badge };
|
|
@@ -2,8 +2,7 @@
|
|
|
2
2
|
import { jsx } from 'react/jsx-runtime';
|
|
3
3
|
import cl from 'clsx/lite';
|
|
4
4
|
import { forwardRef } from 'react';
|
|
5
|
-
import { Paragraph } from '../Typography/Paragraph/Paragraph.js';
|
|
6
5
|
|
|
7
|
-
const Breadcrumbs = forwardRef(({ 'aria-label': ariaLabel = 'Du er her:', className, size, ...rest }, ref) => (jsx(
|
|
6
|
+
const Breadcrumbs = forwardRef(({ 'aria-label': ariaLabel = 'Du er her:', className, size, ...rest }, ref) => (jsx("nav", { "aria-label": ariaLabel, className: cl('ds-breadcrumbs', className), "data-size": size, ref: ref, ...rest })));
|
|
8
7
|
|
|
9
8
|
export { Breadcrumbs };
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import {
|
|
2
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
3
3
|
import { Slottable, Slot } from '@radix-ui/react-slot';
|
|
4
4
|
import cl from 'clsx/lite';
|
|
5
5
|
import { forwardRef } from 'react';
|
|
6
|
-
import { Paragraph } from '../Typography/Paragraph/Paragraph.js';
|
|
7
6
|
import { Spinner } from '../loaders/Spinner/Spinner.js';
|
|
8
7
|
|
|
9
8
|
/**
|
|
@@ -15,8 +14,10 @@ const Button = forwardRef(function Button({ asChild, className, children, color
|
|
|
15
14
|
const Component = asChild ? Slot : 'button';
|
|
16
15
|
const spinnerColor = color === 'accent' ? color : 'neutral';
|
|
17
16
|
// Fallbacks to undefined to prevent rendering attribute="false"
|
|
18
|
-
return (
|
|
19
|
-
|
|
17
|
+
return (jsxs(Component, { "aria-busy": Boolean(loading) || undefined, className: cl('ds-button', className), "data-color": color, "data-icon": icon || undefined, "data-size": size, "data-variant": variant, ref: ref,
|
|
18
|
+
/* don't set type when we use `asChild` */
|
|
19
|
+
type: asChild ? undefined : 'button', ...rest, children: [loading === true ? (jsx(Spinner, { "aria-hidden": 'true', color: spinnerColor, size: 'sm', title: '' })) : (loading // Allow custom loading spinner
|
|
20
|
+
), jsx(Slottable, { children: children })] }));
|
|
20
21
|
});
|
|
21
22
|
|
|
22
23
|
export { Button };
|
|
@@ -1,22 +1,40 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx } from 'react/jsx-runtime';
|
|
3
|
+
import { useMergeRefs } from '@floating-ui/react';
|
|
3
4
|
import { Slot } from '@radix-ui/react-slot';
|
|
4
5
|
import cl from 'clsx/lite';
|
|
5
|
-
import { forwardRef } from 'react';
|
|
6
|
+
import { forwardRef, useRef, useEffect } from 'react';
|
|
6
7
|
|
|
7
8
|
/**
|
|
8
9
|
* Card component to present content in a structured way.
|
|
9
10
|
* @example
|
|
10
11
|
* <Card>
|
|
11
|
-
* <Card.
|
|
12
|
-
* <Card.
|
|
13
|
-
* <Card.
|
|
12
|
+
* <Card.Block>Header</Card.Block>
|
|
13
|
+
* <Card.Block>Content</Card.Block>
|
|
14
|
+
* <Card.Block>Footer</Card.Block>
|
|
14
15
|
* </Card>
|
|
15
16
|
*/
|
|
16
|
-
const Card = forwardRef(({
|
|
17
|
+
const Card = forwardRef(function Card({ asChild = false, color = 'neutral', className, ...rest }, ref) {
|
|
17
18
|
const Component = asChild ? Slot : 'div';
|
|
18
|
-
|
|
19
|
+
const cardRef = useRef(null);
|
|
20
|
+
const mergedRefs = useMergeRefs([cardRef, ref]);
|
|
21
|
+
// Forward click on card to heading links for better accessibility
|
|
22
|
+
// https://adrianroselli.com/2020/02/block-links-cards-clickable-regions-etc.html
|
|
23
|
+
useEffect(() => {
|
|
24
|
+
const card = cardRef.current;
|
|
25
|
+
const handleClick = ({ ctrlKey, metaKey, target }) => {
|
|
26
|
+
const link = card?.querySelector(':is(h1,h2,h3,h4,h5,h6) a');
|
|
27
|
+
if (!link || link?.contains(target))
|
|
28
|
+
return; // Let links handle their own clicks
|
|
29
|
+
if (ctrlKey || metaKey)
|
|
30
|
+
window.open(link.href, '', 'noreferrer');
|
|
31
|
+
else
|
|
32
|
+
link.click(); // Using link.click instead of window.location.href as this will trigger the browser's handling of rel=, target=, etc.
|
|
33
|
+
};
|
|
34
|
+
card?.addEventListener('click', handleClick);
|
|
35
|
+
return () => card?.removeEventListener('click', handleClick);
|
|
36
|
+
}, []);
|
|
37
|
+
return (jsx(Component, { className: cl(`ds-card`, className), "data-color": color, ref: mergedRefs, ...rest }));
|
|
19
38
|
});
|
|
20
|
-
Card.displayName = 'Card';
|
|
21
39
|
|
|
22
40
|
export { Card };
|
|
@@ -4,10 +4,9 @@ import { Slot } from '@radix-ui/react-slot';
|
|
|
4
4
|
import cl from 'clsx/lite';
|
|
5
5
|
import { forwardRef } from 'react';
|
|
6
6
|
|
|
7
|
-
const
|
|
7
|
+
const CardBlock = forwardRef(function CardBlock({ asChild, className, ...rest }, ref) {
|
|
8
8
|
const Component = asChild ? Slot : 'div';
|
|
9
|
-
return (jsx(Component, { className: cl(`ds-
|
|
9
|
+
return (jsx(Component, { className: cl(`ds-card__block`, className), ref: ref, ...rest }));
|
|
10
10
|
});
|
|
11
|
-
CardMedia.displayName = 'CardMedia';
|
|
12
11
|
|
|
13
|
-
export {
|
|
12
|
+
export { CardBlock };
|
|
@@ -1,18 +1,10 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { Card as Card$1 } from './Card.js';
|
|
3
|
-
import {
|
|
4
|
-
import { CardFooter } from './CardFooter.js';
|
|
5
|
-
import { CardHeader } from './CardHeader.js';
|
|
6
|
-
import { CardMedia } from './CardMedia.js';
|
|
3
|
+
import { CardBlock } from './CardBlock.js';
|
|
7
4
|
|
|
8
|
-
const Card = Card$1
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
Card.
|
|
12
|
-
Card.Media = CardMedia;
|
|
13
|
-
Card.Header.displayName = 'Card.Header';
|
|
14
|
-
Card.Content.displayName = 'Card.Content';
|
|
15
|
-
Card.Footer.displayName = 'Card.Footer';
|
|
16
|
-
Card.Media.displayName = 'Card.Media';
|
|
5
|
+
const Card = Object.assign(Card$1, {
|
|
6
|
+
Block: CardBlock,
|
|
7
|
+
});
|
|
8
|
+
Card.Block.displayName = 'Card.Block';
|
|
17
9
|
|
|
18
|
-
export { Card,
|
|
10
|
+
export { Card, CardBlock };
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
3
|
+
import { Slottable, Slot } from '@radix-ui/react-slot';
|
|
4
|
+
import cl from 'clsx/lite';
|
|
5
|
+
import { forwardRef } from 'react';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Chip.Button used for interaction
|
|
9
|
+
* @example
|
|
10
|
+
* <Chip.Button>Click me</Chip.Button>
|
|
11
|
+
*/
|
|
12
|
+
const ChipButton = forwardRef(function ChipButton({ asChild, className, size, ...rest }, ref) {
|
|
13
|
+
const Component = asChild ? Slot : 'button';
|
|
14
|
+
return (jsx(Component, { className: cl('ds-chip', className), "data-size": size, type: asChild ? undefined : 'button', ref: ref, ...rest }));
|
|
15
|
+
});
|
|
16
|
+
/**
|
|
17
|
+
* Chip.Removable used for interaction
|
|
18
|
+
* @example
|
|
19
|
+
* <Chip.Removable>Click to remove me</Chip.Removable>
|
|
20
|
+
*/
|
|
21
|
+
const ChipRemovable = forwardRef(function ChipRemovable(props, ref) {
|
|
22
|
+
return jsx(ChipButton, { "data-removable": true, ref: ref, ...props });
|
|
23
|
+
});
|
|
24
|
+
/**
|
|
25
|
+
* Chip.Checkbox used for multiselection
|
|
26
|
+
* @example
|
|
27
|
+
* <Chip.Checkbox name="language" value="nynorsk">Nynorsk</Chip.Checkbox>
|
|
28
|
+
* <Chip.Checkbox name="language" value="bokmål">Bokmål</Chip.Checkbox>
|
|
29
|
+
*/
|
|
30
|
+
const ChipCheckbox = forwardRef(function ChipCheckbox({ asChild, children, className, size, ...rest }, ref) {
|
|
31
|
+
const inputType = rest.type ?? 'checkbox';
|
|
32
|
+
const Component = asChild ? Slot : 'label';
|
|
33
|
+
return (jsxs(Component, { className: cl('ds-chip', className), "data-size": size, ref: ref, children: [jsx("input", { ...rest, type: inputType }), jsx(Slottable, { children: children })] }));
|
|
34
|
+
});
|
|
35
|
+
/**
|
|
36
|
+
* Chip.Radio used for single selection
|
|
37
|
+
* @example
|
|
38
|
+
* <Chip.Radio name="language" value="nynorsk">Nynorsk</Chip.Radio>
|
|
39
|
+
* <Chip.Radio name="language" value="bokmål">Bokmål</Chip.Radio>
|
|
40
|
+
*/
|
|
41
|
+
const ChipRadio = forwardRef(function ChipRadio(props, ref) {
|
|
42
|
+
return jsx(ChipCheckbox, { ref, type: 'radio', ...props });
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
export { ChipButton, ChipCheckbox, ChipRadio, ChipRemovable };
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import {
|
|
3
|
-
import { RemovableChip } from './Removable/Removable.js';
|
|
4
|
-
import { ToggleChip } from './Toggle/Toggle.js';
|
|
2
|
+
import { ChipButton, ChipCheckbox, ChipRadio, ChipRemovable } from './Chips.js';
|
|
5
3
|
|
|
6
4
|
const Chip = {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
Button: ChipButton,
|
|
6
|
+
Checkbox: ChipCheckbox,
|
|
7
|
+
Radio: ChipRadio,
|
|
8
|
+
Removable: ChipRemovable,
|
|
10
9
|
};
|
|
11
|
-
Chip.
|
|
10
|
+
Chip.Button.displayName = 'Chip.Button';
|
|
11
|
+
Chip.Checkbox.displayName = 'Chip.Checkbox';
|
|
12
|
+
Chip.Radio.displayName = 'Chip.Radio';
|
|
12
13
|
Chip.Removable.displayName = 'Chip.Removable';
|
|
13
|
-
Chip.Toggle.displayName = 'Chip.Toggle';
|
|
14
14
|
|
|
15
|
-
export { Chip,
|
|
15
|
+
export { Chip, ChipButton, ChipCheckbox, ChipRadio, ChipRemovable };
|
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx } from 'react/jsx-runtime';
|
|
3
3
|
import cl from 'clsx/lite';
|
|
4
|
-
import { forwardRef
|
|
5
|
-
import { DropdownCtx } from './Dropdown.js';
|
|
6
|
-
import { Paragraph } from '../Typography/Paragraph/Paragraph.js';
|
|
4
|
+
import { forwardRef } from 'react';
|
|
7
5
|
|
|
8
|
-
const DropdownHeading = forwardRef(function DropdownHeading({
|
|
9
|
-
|
|
10
|
-
return (jsx(Paragraph, { asChild: true, size: size, children: jsx("h2", { ref: ref, className: cl('ds-dropdown__heading', className), ...rest, children: children }) }));
|
|
6
|
+
const DropdownHeading = forwardRef(function DropdownHeading({ className, ...rest }, ref) {
|
|
7
|
+
return (jsx("h2", { ref: ref, className: cl('ds-dropdown__heading', className), ...rest }));
|
|
11
8
|
});
|
|
12
9
|
|
|
13
10
|
export { DropdownHeading };
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { jsx } from 'react/jsx-runtime';
|
|
3
3
|
import { forwardRef, useContext, useEffect } from 'react';
|
|
4
4
|
import { ErrorSummaryContext } from './ErrorSummary.js';
|
|
5
|
-
import { Heading } from '../
|
|
5
|
+
import { Heading } from '../Heading/Heading.js';
|
|
6
6
|
|
|
7
7
|
const HEADING_SIZE_MAP = {
|
|
8
8
|
sm: '2xs',
|
|
@@ -15,7 +15,7 @@ const ErrorSummaryHeading = forwardRef(function ErrorSummaryHeading({ className,
|
|
|
15
15
|
if (id && headingId !== id)
|
|
16
16
|
setHeadingId(id);
|
|
17
17
|
}, [headingId, id, setHeadingId]);
|
|
18
|
-
return (jsx(Heading, { id: headingId, size: HEADING_SIZE_MAP[size ?? 'md'],
|
|
18
|
+
return (jsx(Heading, { id: headingId, size: HEADING_SIZE_MAP[size ?? 'md'], ref: ref, ...rest }));
|
|
19
19
|
});
|
|
20
20
|
|
|
21
21
|
export { ErrorSummaryHeading };
|