@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
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
|
|
4
4
|
var jsxRuntime = require('react/jsx-runtime');
|
|
5
5
|
var react = require('react');
|
|
6
|
-
var Paragraph = require('../Typography/Paragraph/Paragraph.js');
|
|
7
6
|
|
|
8
7
|
/**
|
|
9
8
|
* Accordion content component, contains the content of the accordion item.
|
|
@@ -11,7 +10,7 @@ var Paragraph = require('../Typography/Paragraph/Paragraph.js');
|
|
|
11
10
|
* <AccordionContent>Content</AccordionContent>
|
|
12
11
|
*/
|
|
13
12
|
const AccordionContent = react.forwardRef(function AccordionContent(rest, ref) {
|
|
14
|
-
return
|
|
13
|
+
return jsxRuntime.jsx("div", { ref: ref, ...rest });
|
|
15
14
|
});
|
|
16
15
|
|
|
17
16
|
exports.AccordionContent = AccordionContent;
|
|
@@ -2,18 +2,16 @@
|
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
4
|
var jsxRuntime = require('react/jsx-runtime');
|
|
5
|
-
var cl = require('clsx/lite');
|
|
6
5
|
var react = require('react');
|
|
7
|
-
var Paragraph = require('../Typography/Paragraph/Paragraph.js');
|
|
8
6
|
|
|
9
7
|
/**
|
|
10
|
-
* Accordion
|
|
8
|
+
* Accordion heading component, contains a button to toggle the content.
|
|
11
9
|
* @example
|
|
12
|
-
* <
|
|
10
|
+
* <AccordionHeading>Heading</AccordionHeading>
|
|
13
11
|
*/
|
|
14
12
|
const AccordionHeading = react.forwardRef(function AccordionHeading({ className, ...rest }, ref) {
|
|
15
|
-
|
|
16
|
-
|
|
13
|
+
/* Set `className` as `class` so react is happy */
|
|
14
|
+
return jsxRuntime.jsx("u-summary", { ref: ref, class: className, ...rest });
|
|
17
15
|
});
|
|
18
16
|
|
|
19
17
|
exports.AccordionHeading = AccordionHeading;
|
|
@@ -8,71 +8,35 @@ var react = require('react');
|
|
|
8
8
|
require('@u-elements/u-details');
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
|
-
* Accordion item component, contains `Accordion.
|
|
11
|
+
* Accordion item component, contains `Accordion.Heading` and `Accordion.Content` components.
|
|
12
12
|
* @example
|
|
13
13
|
* <AccordionItem>
|
|
14
|
-
* <
|
|
14
|
+
* <AccordionHeading>Header</AccordionHeading>
|
|
15
15
|
* <AccordionContent>Content</AccordionContent>
|
|
16
16
|
* </AccordionItem>
|
|
17
17
|
*/
|
|
18
|
-
const AccordionItem = react.forwardRef(function AccordionItem({ className, open, defaultOpen = false,
|
|
19
|
-
const [internalOpen, setInternalOpen] = react.useState(open ?? defaultOpen);
|
|
20
|
-
const initialOpen = react.useRef(internalOpen); // Allow rendering initial open state on server, but animate in browser
|
|
21
|
-
const controlledOpen = react.useRef(internalOpen); // Using ref so we can access it inside useEffect without unbinding/binding event listeners
|
|
18
|
+
const AccordionItem = react.forwardRef(function AccordionItem({ className, open, defaultOpen = false, onToggle, ...rest }, ref) {
|
|
22
19
|
const detailsRef = react.useRef(null);
|
|
20
|
+
const initialOpen = react.useRef(defaultOpen); // Allow rendering defaultOpen on server, but only render once on client
|
|
23
21
|
const mergedRefs = react$1.useMergeRefs([detailsRef, ref]);
|
|
24
|
-
|
|
25
|
-
|
|
22
|
+
const onToggleRef = react.useRef(onToggle); // Using ref to enable access inside useEffect without re-binding event listeners
|
|
23
|
+
const openRef = react.useRef(open);
|
|
24
|
+
onToggleRef.current = onToggle;
|
|
25
|
+
openRef.current = open;
|
|
26
|
+
// Provide onToggle event and controlled state
|
|
26
27
|
react.useEffect(() => {
|
|
27
28
|
const details = detailsRef.current;
|
|
28
|
-
const
|
|
29
|
-
|
|
30
|
-
event?.preventDefault(); // Prevent native <details> toggle so we can animate
|
|
31
|
-
setInternalOpen((open) => !open);
|
|
32
|
-
};
|
|
33
|
-
const handleToggle = () => {
|
|
34
|
-
if (!details || details.open === controlledOpen.current)
|
|
29
|
+
const handleToggle = (event) => {
|
|
30
|
+
if (!details || details?.open === openRef.current)
|
|
35
31
|
return;
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
details.open = controlledOpen.current;
|
|
40
|
-
}); // Let onFound run before correcting state
|
|
32
|
+
onToggleRef.current?.(event);
|
|
33
|
+
if (openRef.current !== undefined)
|
|
34
|
+
details.open = openRef.current; // Don't update DOM unless controlled state changes
|
|
41
35
|
};
|
|
42
36
|
details?.addEventListener('toggle', handleToggle, true);
|
|
43
|
-
|
|
44
|
-
return () => {
|
|
45
|
-
details?.removeEventListener('toggle', handleToggle, true);
|
|
46
|
-
summary?.removeEventListener('click', handleSummaryClick);
|
|
47
|
-
};
|
|
37
|
+
return () => details?.removeEventListener('toggle', handleToggle, true);
|
|
48
38
|
}, []);
|
|
49
|
-
|
|
50
|
-
animateHeight(detailsRef.current, controlledOpen.current);
|
|
51
|
-
}, [controlledOpen.current]);
|
|
52
|
-
return (jsxRuntime.jsx("u-details", { class: cl('ds-accordion__item', className), open: initialOpen.current || undefined, ref: mergedRefs, ...rest }));
|
|
39
|
+
return (jsxRuntime.jsx("u-details", { class: cl('ds-accordion__item', className), open: (open ?? initialOpen.current) || undefined, ref: mergedRefs, ...rest }));
|
|
53
40
|
});
|
|
54
|
-
const animateHeight = (details, open) => {
|
|
55
|
-
const content = details?.querySelector(':scope > :not(summary, u-summary)');
|
|
56
|
-
const hasContent = content instanceof HTMLElement;
|
|
57
|
-
const hasAnimate = details && 'animate' in details;
|
|
58
|
-
const hasReducedMotion = window.matchMedia?.('(prefers-reduced-motion: reduce)').matches;
|
|
59
|
-
details?.setAttribute('data-chevron-open', `${open}`); // Make flip on click
|
|
60
|
-
if (hasReducedMotion || !hasAnimate || !hasContent) {
|
|
61
|
-
if (details)
|
|
62
|
-
details.open = open;
|
|
63
|
-
}
|
|
64
|
-
else if (details.open !== open) {
|
|
65
|
-
details.open = true;
|
|
66
|
-
const opened = `${content.scrollHeight}px`;
|
|
67
|
-
content.style.overflow = 'clip'; // Clip content while animating
|
|
68
|
-
content.animate({
|
|
69
|
-
height: [open ? '0px' : opened, open ? opened : '0px'],
|
|
70
|
-
paddingBlock: [open ? '0px' : '', open ? '' : '0px'],
|
|
71
|
-
}, { duration: 400, easing: 'ease-in-out' }).onfinish = () => {
|
|
72
|
-
content.style.removeProperty('overflow'); // Restore overlow
|
|
73
|
-
details.open = open;
|
|
74
|
-
};
|
|
75
|
-
}
|
|
76
|
-
};
|
|
77
41
|
|
|
78
42
|
exports.AccordionItem = AccordionItem;
|
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
var jsxRuntime = require('react/jsx-runtime');
|
|
5
5
|
var cl = require('clsx/lite');
|
|
6
6
|
var react = require('react');
|
|
7
|
-
var Paragraph = require('../Typography/Paragraph/Paragraph.js');
|
|
8
7
|
|
|
9
8
|
/**
|
|
10
9
|
* Alerts are used to inform users about important information, warnings, errors, or success.
|
|
@@ -12,7 +11,7 @@ var Paragraph = require('../Typography/Paragraph/Paragraph.js');
|
|
|
12
11
|
* <Alert color='info'>Dette er en informasjonsmelding</Alert>
|
|
13
12
|
*/
|
|
14
13
|
const Alert = react.forwardRef(function Alert({ color = 'info', size = 'md', className, ...rest }, ref) {
|
|
15
|
-
return (jsxRuntime.jsx(
|
|
14
|
+
return (jsxRuntime.jsx("div", { className: cl('ds-alert', className), "data-color": color, "data-size": size, ref: ref, ...rest }));
|
|
16
15
|
});
|
|
17
16
|
|
|
18
17
|
exports.Alert = Alert;
|
|
@@ -6,12 +6,6 @@ var reactSlot = require('@radix-ui/react-slot');
|
|
|
6
6
|
var cl = require('clsx/lite');
|
|
7
7
|
var react = require('react');
|
|
8
8
|
|
|
9
|
-
const fontSizeMap = {
|
|
10
|
-
xs: 'ds-paragraph--xs',
|
|
11
|
-
sm: 'ds-heading--2xs',
|
|
12
|
-
md: 'ds-heading--sm',
|
|
13
|
-
lg: 'ds-heading--md',
|
|
14
|
-
};
|
|
15
9
|
/**
|
|
16
10
|
* Avatars are used to represent people or entities.
|
|
17
11
|
*
|
|
@@ -30,7 +24,7 @@ const fontSizeMap = {
|
|
|
30
24
|
*/
|
|
31
25
|
const Avatar = react.forwardRef(function Avatar({ 'aria-label': ariaLabel, color = 'accent', size = 'md', variant = 'circle', className, children, ...rest }, ref) {
|
|
32
26
|
const Component = children && typeof children !== 'string' ? reactSlot.Slot : react.Fragment;
|
|
33
|
-
return (jsxRuntime.jsx("span", { ref: ref, className: cl('ds-avatar',
|
|
27
|
+
return (jsxRuntime.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: jsxRuntime.jsx(Component, { ...(children ? { 'aria-hidden': true } : {}), children: children }) }));
|
|
34
28
|
});
|
|
35
29
|
|
|
36
30
|
exports.Avatar = Avatar;
|
|
@@ -4,13 +4,7 @@
|
|
|
4
4
|
var jsxRuntime = require('react/jsx-runtime');
|
|
5
5
|
var cl = require('clsx/lite');
|
|
6
6
|
var react = require('react');
|
|
7
|
-
var Paragraph = require('../Typography/Paragraph/Paragraph.js');
|
|
8
7
|
|
|
9
|
-
const paragraphSizeMap = {
|
|
10
|
-
sm: 'xs',
|
|
11
|
-
md: 'sm',
|
|
12
|
-
lg: 'md',
|
|
13
|
-
};
|
|
14
8
|
/**
|
|
15
9
|
* `Badge` is a non-interactive component for displaying status with or without numbers.
|
|
16
10
|
*
|
|
@@ -27,7 +21,7 @@ const paragraphSizeMap = {
|
|
|
27
21
|
* ```
|
|
28
22
|
*/
|
|
29
23
|
const Badge = react.forwardRef(function Badge({ className, color = 'accent', count, maxCount, overlap = 'rectangle', placement = 'top-right', size = 'md', ...rest }, ref) {
|
|
30
|
-
return (jsxRuntime.jsx(
|
|
24
|
+
return (jsxRuntime.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 }));
|
|
31
25
|
});
|
|
32
26
|
|
|
33
27
|
exports.Badge = Badge;
|
|
@@ -4,8 +4,7 @@
|
|
|
4
4
|
var jsxRuntime = require('react/jsx-runtime');
|
|
5
5
|
var cl = require('clsx/lite');
|
|
6
6
|
var react = require('react');
|
|
7
|
-
var Paragraph = require('../Typography/Paragraph/Paragraph.js');
|
|
8
7
|
|
|
9
|
-
const Breadcrumbs = react.forwardRef(({ 'aria-label': ariaLabel = 'Du er her:', className, size, ...rest }, ref) => (jsxRuntime.jsx(
|
|
8
|
+
const Breadcrumbs = react.forwardRef(({ 'aria-label': ariaLabel = 'Du er her:', className, size, ...rest }, ref) => (jsxRuntime.jsx("nav", { "aria-label": ariaLabel, className: cl('ds-breadcrumbs', className), "data-size": size, ref: ref, ...rest })));
|
|
10
9
|
|
|
11
10
|
exports.Breadcrumbs = Breadcrumbs;
|
|
@@ -5,7 +5,6 @@ var jsxRuntime = require('react/jsx-runtime');
|
|
|
5
5
|
var reactSlot = require('@radix-ui/react-slot');
|
|
6
6
|
var cl = require('clsx/lite');
|
|
7
7
|
var react = require('react');
|
|
8
|
-
var Paragraph = require('../Typography/Paragraph/Paragraph.js');
|
|
9
8
|
var Spinner = require('../loaders/Spinner/Spinner.js');
|
|
10
9
|
|
|
11
10
|
/**
|
|
@@ -17,8 +16,10 @@ const Button = react.forwardRef(function Button({ asChild, className, children,
|
|
|
17
16
|
const Component = asChild ? reactSlot.Slot : 'button';
|
|
18
17
|
const spinnerColor = color === 'accent' ? color : 'neutral';
|
|
19
18
|
// Fallbacks to undefined to prevent rendering attribute="false"
|
|
20
|
-
return (jsxRuntime.
|
|
21
|
-
|
|
19
|
+
return (jsxRuntime.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,
|
|
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', color: spinnerColor, size: 'sm', title: '' })) : (loading // Allow custom loading spinner
|
|
22
|
+
), jsxRuntime.jsx(reactSlot.Slottable, { children: children })] }));
|
|
22
23
|
});
|
|
23
24
|
|
|
24
25
|
exports.Button = Button;
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
4
|
var jsxRuntime = require('react/jsx-runtime');
|
|
5
|
+
var react$1 = require('@floating-ui/react');
|
|
5
6
|
var reactSlot = require('@radix-ui/react-slot');
|
|
6
7
|
var cl = require('clsx/lite');
|
|
7
8
|
var react = require('react');
|
|
@@ -10,15 +11,32 @@ var react = require('react');
|
|
|
10
11
|
* Card component to present content in a structured way.
|
|
11
12
|
* @example
|
|
12
13
|
* <Card>
|
|
13
|
-
* <Card.
|
|
14
|
-
* <Card.
|
|
15
|
-
* <Card.
|
|
14
|
+
* <Card.Block>Header</Card.Block>
|
|
15
|
+
* <Card.Block>Content</Card.Block>
|
|
16
|
+
* <Card.Block>Footer</Card.Block>
|
|
16
17
|
* </Card>
|
|
17
18
|
*/
|
|
18
|
-
const Card = react.forwardRef(({
|
|
19
|
+
const Card = react.forwardRef(function Card({ asChild = false, color = 'neutral', className, ...rest }, ref) {
|
|
19
20
|
const Component = asChild ? reactSlot.Slot : 'div';
|
|
20
|
-
|
|
21
|
+
const cardRef = react.useRef(null);
|
|
22
|
+
const mergedRefs = react$1.useMergeRefs([cardRef, ref]);
|
|
23
|
+
// Forward click on card to heading links for better accessibility
|
|
24
|
+
// https://adrianroselli.com/2020/02/block-links-cards-clickable-regions-etc.html
|
|
25
|
+
react.useEffect(() => {
|
|
26
|
+
const card = cardRef.current;
|
|
27
|
+
const handleClick = ({ ctrlKey, metaKey, target }) => {
|
|
28
|
+
const link = card?.querySelector(':is(h1,h2,h3,h4,h5,h6) a');
|
|
29
|
+
if (!link || link?.contains(target))
|
|
30
|
+
return; // Let links handle their own clicks
|
|
31
|
+
if (ctrlKey || metaKey)
|
|
32
|
+
window.open(link.href, '', 'noreferrer');
|
|
33
|
+
else
|
|
34
|
+
link.click(); // Using link.click instead of window.location.href as this will trigger the browser's handling of rel=, target=, etc.
|
|
35
|
+
};
|
|
36
|
+
card?.addEventListener('click', handleClick);
|
|
37
|
+
return () => card?.removeEventListener('click', handleClick);
|
|
38
|
+
}, []);
|
|
39
|
+
return (jsxRuntime.jsx(Component, { className: cl(`ds-card`, className), "data-color": color, ref: mergedRefs, ...rest }));
|
|
21
40
|
});
|
|
22
|
-
Card.displayName = 'Card';
|
|
23
41
|
|
|
24
42
|
exports.Card = Card;
|
|
@@ -6,10 +6,9 @@ var reactSlot = require('@radix-ui/react-slot');
|
|
|
6
6
|
var cl = require('clsx/lite');
|
|
7
7
|
var react = require('react');
|
|
8
8
|
|
|
9
|
-
const
|
|
9
|
+
const CardBlock = react.forwardRef(function CardBlock({ asChild, className, ...rest }, ref) {
|
|
10
10
|
const Component = asChild ? reactSlot.Slot : 'div';
|
|
11
|
-
return (jsxRuntime.jsx(Component, { className: cl(`ds-
|
|
11
|
+
return (jsxRuntime.jsx(Component, { className: cl(`ds-card__block`, className), ref: ref, ...rest }));
|
|
12
12
|
});
|
|
13
|
-
CardMedia.displayName = 'CardMedia';
|
|
14
13
|
|
|
15
|
-
exports.
|
|
14
|
+
exports.CardBlock = CardBlock;
|
|
@@ -2,23 +2,12 @@
|
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
4
|
var Card$1 = require('./Card.js');
|
|
5
|
-
var
|
|
6
|
-
var CardFooter = require('./CardFooter.js');
|
|
7
|
-
var CardHeader = require('./CardHeader.js');
|
|
8
|
-
var CardMedia = require('./CardMedia.js');
|
|
5
|
+
var CardBlock = require('./CardBlock.js');
|
|
9
6
|
|
|
10
|
-
const Card = Card$1.Card
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
Card.
|
|
14
|
-
Card.Media = CardMedia.CardMedia;
|
|
15
|
-
Card.Header.displayName = 'Card.Header';
|
|
16
|
-
Card.Content.displayName = 'Card.Content';
|
|
17
|
-
Card.Footer.displayName = 'Card.Footer';
|
|
18
|
-
Card.Media.displayName = 'Card.Media';
|
|
7
|
+
const Card = Object.assign(Card$1.Card, {
|
|
8
|
+
Block: CardBlock.CardBlock,
|
|
9
|
+
});
|
|
10
|
+
Card.Block.displayName = 'Card.Block';
|
|
19
11
|
|
|
20
|
-
exports.
|
|
21
|
-
exports.CardFooter = CardFooter.CardFooter;
|
|
22
|
-
exports.CardHeader = CardHeader.CardHeader;
|
|
23
|
-
exports.CardMedia = CardMedia.CardMedia;
|
|
12
|
+
exports.CardBlock = CardBlock.CardBlock;
|
|
24
13
|
exports.Card = Card;
|
|
@@ -0,0 +1,50 @@
|
|
|
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
|
+
* Chip.Button used for interaction
|
|
11
|
+
* @example
|
|
12
|
+
* <Chip.Button>Click me</Chip.Button>
|
|
13
|
+
*/
|
|
14
|
+
const ChipButton = react.forwardRef(function ChipButton({ asChild, className, size, ...rest }, ref) {
|
|
15
|
+
const Component = asChild ? reactSlot.Slot : 'button';
|
|
16
|
+
return (jsxRuntime.jsx(Component, { className: cl('ds-chip', className), "data-size": size, type: asChild ? undefined : 'button', ref: ref, ...rest }));
|
|
17
|
+
});
|
|
18
|
+
/**
|
|
19
|
+
* Chip.Removable used for interaction
|
|
20
|
+
* @example
|
|
21
|
+
* <Chip.Removable>Click to remove me</Chip.Removable>
|
|
22
|
+
*/
|
|
23
|
+
const ChipRemovable = react.forwardRef(function ChipRemovable(props, ref) {
|
|
24
|
+
return jsxRuntime.jsx(ChipButton, { "data-removable": true, ref: ref, ...props });
|
|
25
|
+
});
|
|
26
|
+
/**
|
|
27
|
+
* Chip.Checkbox used for multiselection
|
|
28
|
+
* @example
|
|
29
|
+
* <Chip.Checkbox name="language" value="nynorsk">Nynorsk</Chip.Checkbox>
|
|
30
|
+
* <Chip.Checkbox name="language" value="bokmål">Bokmål</Chip.Checkbox>
|
|
31
|
+
*/
|
|
32
|
+
const ChipCheckbox = react.forwardRef(function ChipCheckbox({ asChild, children, className, size, ...rest }, ref) {
|
|
33
|
+
const inputType = rest.type ?? 'checkbox';
|
|
34
|
+
const Component = asChild ? reactSlot.Slot : 'label';
|
|
35
|
+
return (jsxRuntime.jsxs(Component, { className: cl('ds-chip', className), "data-size": size, ref: ref, children: [jsxRuntime.jsx("input", { ...rest, type: inputType }), jsxRuntime.jsx(reactSlot.Slottable, { children: children })] }));
|
|
36
|
+
});
|
|
37
|
+
/**
|
|
38
|
+
* Chip.Radio used for single selection
|
|
39
|
+
* @example
|
|
40
|
+
* <Chip.Radio name="language" value="nynorsk">Nynorsk</Chip.Radio>
|
|
41
|
+
* <Chip.Radio name="language" value="bokmål">Bokmål</Chip.Radio>
|
|
42
|
+
*/
|
|
43
|
+
const ChipRadio = react.forwardRef(function ChipRadio(props, ref) {
|
|
44
|
+
return jsxRuntime.jsx(ChipCheckbox, { ref, type: 'radio', ...props });
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
exports.ChipButton = ChipButton;
|
|
48
|
+
exports.ChipCheckbox = ChipCheckbox;
|
|
49
|
+
exports.ChipRadio = ChipRadio;
|
|
50
|
+
exports.ChipRemovable = ChipRemovable;
|
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var
|
|
5
|
-
var Removable = require('./Removable/Removable.js');
|
|
6
|
-
var Toggle = require('./Toggle/Toggle.js');
|
|
4
|
+
var Chips = require('./Chips.js');
|
|
7
5
|
|
|
8
6
|
const Chip = {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
Button: Chips.ChipButton,
|
|
8
|
+
Checkbox: Chips.ChipCheckbox,
|
|
9
|
+
Radio: Chips.ChipRadio,
|
|
10
|
+
Removable: Chips.ChipRemovable,
|
|
12
11
|
};
|
|
13
|
-
Chip.
|
|
12
|
+
Chip.Button.displayName = 'Chip.Button';
|
|
13
|
+
Chip.Checkbox.displayName = 'Chip.Checkbox';
|
|
14
|
+
Chip.Radio.displayName = 'Chip.Radio';
|
|
14
15
|
Chip.Removable.displayName = 'Chip.Removable';
|
|
15
|
-
Chip.Toggle.displayName = 'Chip.Toggle';
|
|
16
16
|
|
|
17
|
-
exports.
|
|
18
|
-
exports.
|
|
19
|
-
exports.
|
|
17
|
+
exports.ChipButton = Chips.ChipButton;
|
|
18
|
+
exports.ChipCheckbox = Chips.ChipCheckbox;
|
|
19
|
+
exports.ChipRadio = Chips.ChipRadio;
|
|
20
|
+
exports.ChipRemovable = Chips.ChipRemovable;
|
|
20
21
|
exports.Chip = Chip;
|
|
@@ -4,12 +4,9 @@
|
|
|
4
4
|
var jsxRuntime = require('react/jsx-runtime');
|
|
5
5
|
var cl = require('clsx/lite');
|
|
6
6
|
var react = require('react');
|
|
7
|
-
var Dropdown = require('./Dropdown.js');
|
|
8
|
-
var Paragraph = require('../Typography/Paragraph/Paragraph.js');
|
|
9
7
|
|
|
10
|
-
const DropdownHeading = react.forwardRef(function DropdownHeading({
|
|
11
|
-
|
|
12
|
-
return (jsxRuntime.jsx(Paragraph.Paragraph, { asChild: true, size: size, children: jsxRuntime.jsx("h2", { ref: ref, className: cl('ds-dropdown__heading', className), ...rest, children: children }) }));
|
|
8
|
+
const DropdownHeading = react.forwardRef(function DropdownHeading({ className, ...rest }, ref) {
|
|
9
|
+
return (jsxRuntime.jsx("h2", { ref: ref, className: cl('ds-dropdown__heading', className), ...rest }));
|
|
13
10
|
});
|
|
14
11
|
|
|
15
12
|
exports.DropdownHeading = DropdownHeading;
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
var jsxRuntime = require('react/jsx-runtime');
|
|
5
5
|
var react = require('react');
|
|
6
6
|
var ErrorSummary = require('./ErrorSummary.js');
|
|
7
|
-
var Heading = require('../
|
|
7
|
+
var Heading = require('../Heading/Heading.js');
|
|
8
8
|
|
|
9
9
|
const HEADING_SIZE_MAP = {
|
|
10
10
|
sm: '2xs',
|
|
@@ -17,7 +17,7 @@ const ErrorSummaryHeading = react.forwardRef(function ErrorSummaryHeading({ clas
|
|
|
17
17
|
if (id && headingId !== id)
|
|
18
18
|
setHeadingId(id);
|
|
19
19
|
}, [headingId, id, setHeadingId]);
|
|
20
|
-
return (jsxRuntime.jsx(Heading.Heading, { id: headingId, size: HEADING_SIZE_MAP[size ?? 'md'],
|
|
20
|
+
return (jsxRuntime.jsx(Heading.Heading, { id: headingId, size: HEADING_SIZE_MAP[size ?? 'md'], ref: ref, ...rest }));
|
|
21
21
|
});
|
|
22
22
|
|
|
23
23
|
exports.ErrorSummaryHeading = ErrorSummaryHeading;
|
|
@@ -12,10 +12,9 @@ var react = require('react');
|
|
|
12
12
|
* @example
|
|
13
13
|
* <Heading size='lg' level={2}>Heading</Heading>
|
|
14
14
|
*/
|
|
15
|
-
const Heading = react.forwardRef(({ size = 'xl', level = 2,
|
|
15
|
+
const Heading = react.forwardRef(function Heading({ size = 'xl', level = 2, className, asChild, ...rest }, ref) {
|
|
16
16
|
const Component = asChild ? reactSlot.Slot : `h${level}`;
|
|
17
|
-
return (jsxRuntime.jsx(Component, {
|
|
17
|
+
return (jsxRuntime.jsx(Component, { className: cl(`ds-heading`, className), "data-size": size, ref: ref, ...rest }));
|
|
18
18
|
});
|
|
19
|
-
Heading.displayName = 'Heading';
|
|
20
19
|
|
|
21
20
|
exports.Heading = Heading;
|
|
@@ -12,10 +12,9 @@ var react = require('react');
|
|
|
12
12
|
* @example
|
|
13
13
|
* <Label size='lg'>Label</Label>
|
|
14
14
|
*/
|
|
15
|
-
const Label = react.forwardRef(({ className,
|
|
15
|
+
const Label = react.forwardRef(function Label({ className, size = 'md', weight = 'medium', asChild, ...rest }, ref) {
|
|
16
16
|
const Component = asChild ? reactSlot.Slot : 'label';
|
|
17
|
-
return (jsxRuntime.jsx(Component, { ref: ref, className: cl(
|
|
17
|
+
return (jsxRuntime.jsx(Component, { ref: ref, className: cl(`ds-label--${size}`, weight && `ds-font-weight--${weight}`, className), ...rest }));
|
|
18
18
|
});
|
|
19
|
-
Label.displayName = 'Label';
|
|
20
19
|
|
|
21
20
|
exports.Label = Label;
|
|
@@ -5,11 +5,10 @@ var jsxRuntime = require('react/jsx-runtime');
|
|
|
5
5
|
var reactSlot = require('@radix-ui/react-slot');
|
|
6
6
|
var cl = require('clsx/lite');
|
|
7
7
|
var react = require('react');
|
|
8
|
-
var Paragraph = require('../Typography/Paragraph/Paragraph.js');
|
|
9
8
|
|
|
10
9
|
const render = (tagName, { asChild, className, size = 'md', ...rest }, ref) => {
|
|
11
10
|
const Component = asChild ? reactSlot.Slot : tagName;
|
|
12
|
-
return (jsxRuntime.jsx(
|
|
11
|
+
return (jsxRuntime.jsx(Component, { className: cl(`ds-list`, className), "data-size": size, ref: ref, ...rest }));
|
|
13
12
|
};
|
|
14
13
|
const ListUnordered = react.forwardRef(function ListUnordered(props, ref) {
|
|
15
14
|
return render('ul', props, ref);
|
|
@@ -0,0 +1,45 @@
|
|
|
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 ModalContext = require('./ModalContext.js');
|
|
10
|
+
var Button = require('../Button/Button.js');
|
|
11
|
+
|
|
12
|
+
const Modal = react.forwardRef(function Modal({ asChild, children, className, closeButton = 'Lukk dialogvindu', onClose, open, backdropClose = false, ...rest }, ref) {
|
|
13
|
+
const contextRef = react.useContext(ModalContext.Context);
|
|
14
|
+
const modalRef = react.useRef(null); // This local ref is used to make sure the modal works without a ModalContext
|
|
15
|
+
const Component = asChild ? reactSlot.Slot : 'dialog';
|
|
16
|
+
const mergedRefs = react$1.useMergeRefs([contextRef, ref, modalRef]);
|
|
17
|
+
react.useEffect(() => modalRef.current?.[open ? 'showModal' : 'close'](), [open]); // Toggle open based on prop
|
|
18
|
+
react.useEffect(() => {
|
|
19
|
+
const modal = modalRef.current;
|
|
20
|
+
const handleBackdropClick = ({ clientY: y, clientX: x, target, }) => {
|
|
21
|
+
if (window.getSelection()?.toString())
|
|
22
|
+
return; // Fix bug where if you select text spanning two divs it thinks you clicked outside
|
|
23
|
+
if (modal && target === modal && backdropClose) {
|
|
24
|
+
const { top, left, right, bottom } = modal.getBoundingClientRect();
|
|
25
|
+
const isInDialog = top <= y && y <= bottom && left <= x && x <= right;
|
|
26
|
+
if (!isInDialog)
|
|
27
|
+
modal?.close(); // Both <dialog> and ::backdrop is considered same event.target
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
const handleAutoFocus = () => {
|
|
31
|
+
const autofocus = modal?.querySelector('[autofocus]');
|
|
32
|
+
if (document.activeElement !== autofocus)
|
|
33
|
+
autofocus?.focus();
|
|
34
|
+
};
|
|
35
|
+
modal?.addEventListener('animationend', handleAutoFocus);
|
|
36
|
+
modal?.addEventListener('click', handleBackdropClick);
|
|
37
|
+
return () => {
|
|
38
|
+
modal?.removeEventListener('animationend', handleAutoFocus);
|
|
39
|
+
modal?.removeEventListener('click', handleBackdropClick);
|
|
40
|
+
};
|
|
41
|
+
}, [backdropClose]);
|
|
42
|
+
return (jsxRuntime.jsxs(Component, { className: cl('ds-modal', className), ref: mergedRefs, ...rest, children: [closeButton !== false && (jsxRuntime.jsx("form", { method: 'dialog', children: jsxRuntime.jsx(Button.Button, { "aria-label": closeButton, autoFocus: true, color: 'neutral', icon: true, name: 'close', size: 'md', type: 'submit', variant: 'tertiary' }) })), children] }));
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
exports.Modal = Modal;
|
|
@@ -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 ModalBlock = react.forwardRef(function ModalBlock({ asChild, className, ...rest }, ref) {
|
|
10
|
+
const Component = asChild ? reactSlot.Slot : 'div';
|
|
11
|
+
return (jsxRuntime.jsx(Component, { className: cl('ds-modal__block', className), ref: ref, ...rest }));
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
exports.ModalBlock = ModalBlock;
|
|
@@ -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
|
+
const Context = react.createContext({
|
|
8
|
+
current: null,
|
|
9
|
+
});
|
|
10
|
+
const ModalContext = ({ children }) => {
|
|
11
|
+
const contextRef = react.useRef(null);
|
|
12
|
+
return jsxRuntime.jsx(Context.Provider, { value: contextRef, children: children });
|
|
13
|
+
};
|
|
14
|
+
ModalContext.displayName = 'ModalContext';
|
|
15
|
+
|
|
16
|
+
exports.Context = Context;
|
|
17
|
+
exports.ModalContext = ModalContext;
|
|
@@ -5,13 +5,12 @@ var jsxRuntime = require('react/jsx-runtime');
|
|
|
5
5
|
var reactSlot = require('@radix-ui/react-slot');
|
|
6
6
|
var react = require('react');
|
|
7
7
|
var Button = require('../Button/Button.js');
|
|
8
|
-
var
|
|
8
|
+
var ModalContext = require('./ModalContext.js');
|
|
9
9
|
|
|
10
|
-
const ModalTrigger = react.forwardRef(({ asChild, ...rest }, ref)
|
|
11
|
-
const
|
|
10
|
+
const ModalTrigger = react.forwardRef(function ModalTrigger({ asChild, ...rest }, ref) {
|
|
11
|
+
const contextRef = react.useContext(ModalContext.Context);
|
|
12
12
|
const Component = asChild ? reactSlot.Slot : Button.Button;
|
|
13
|
-
return (jsxRuntime.jsx(Component, {
|
|
13
|
+
return (jsxRuntime.jsx(Component, { "aria-haspopup": 'dialog', onClick: () => contextRef?.current?.showModal(), ref: ref, ...rest }));
|
|
14
14
|
});
|
|
15
|
-
ModalTrigger.displayName = 'ModalTrigger';
|
|
16
15
|
|
|
17
16
|
exports.ModalTrigger = ModalTrigger;
|
|
@@ -1,31 +1,21 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var
|
|
5
|
-
var
|
|
6
|
-
var
|
|
7
|
-
var ModalHeader = require('./ModalHeader.js');
|
|
8
|
-
var ModalRoot = require('./ModalRoot.js');
|
|
4
|
+
var Modal$1 = require('./Modal.js');
|
|
5
|
+
var ModalBlock = require('./ModalBlock.js');
|
|
6
|
+
var ModalContext = require('./ModalContext.js');
|
|
9
7
|
var ModalTrigger = require('./ModalTrigger.js');
|
|
10
8
|
|
|
11
|
-
const Modal = {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
Modal.
|
|
17
|
-
Modal.
|
|
18
|
-
Modal.Root.displayName = 'Modal.Root';
|
|
19
|
-
Modal.Dialog.displayName = 'Modal.Dialog';
|
|
20
|
-
Modal.Footer.displayName = 'Modal.Footer';
|
|
21
|
-
Modal.Header.displayName = 'Modal.Header';
|
|
22
|
-
Modal.Content.displayName = 'Modal.Content';
|
|
9
|
+
const Modal = Object.assign(Modal$1.Modal, {
|
|
10
|
+
Block: ModalBlock.ModalBlock,
|
|
11
|
+
Context: ModalContext.ModalContext,
|
|
12
|
+
Trigger: ModalTrigger.ModalTrigger,
|
|
13
|
+
});
|
|
14
|
+
Modal.Block.displayName = 'Modal.Block';
|
|
15
|
+
Modal.Context.displayName = 'Modal.Context';
|
|
23
16
|
Modal.Trigger.displayName = 'Modal.Trigger';
|
|
24
17
|
|
|
25
|
-
exports.
|
|
26
|
-
exports.
|
|
27
|
-
exports.ModalFooter = ModalFooter.ModalFooter;
|
|
28
|
-
exports.ModalHeader = ModalHeader.ModalHeader;
|
|
29
|
-
exports.ModalRoot = ModalRoot.ModalRoot;
|
|
18
|
+
exports.ModalBlock = ModalBlock.ModalBlock;
|
|
19
|
+
exports.ModalContext = ModalContext.ModalContext;
|
|
30
20
|
exports.ModalTrigger = ModalTrigger.ModalTrigger;
|
|
31
21
|
exports.Modal = Modal;
|