@fremtind/jokul 0.28.1 → 0.30.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/build-stats.html +1 -1
- package/build/cjs/components/breadcrumb/index.d.cts +2 -4
- package/build/cjs/components/button/index.d.cts +1 -1
- package/build/cjs/components/button/types.cjs.map +1 -1
- package/build/cjs/components/button/types.d.cts +1 -2
- package/build/cjs/components/card/NavCard.cjs.map +1 -1
- package/build/cjs/components/card/NavCard.d.cts +1 -10
- package/build/cjs/components/card/index.d.cts +2 -2
- package/build/cjs/components/card/types.cjs.map +1 -1
- package/build/cjs/components/card/types.d.cts +8 -0
- package/build/cjs/components/combobox/Combobox.cjs.map +1 -1
- package/build/cjs/components/combobox/Combobox.d.cts +6 -7
- package/build/cjs/components/combobox/index.d.cts +1 -1
- package/build/cjs/components/cookie-consent/index.d.cts +2 -4
- package/build/cjs/components/datepicker/index.cjs +1 -1
- package/build/cjs/components/datepicker/index.d.cts +3 -3
- package/build/cjs/components/datepicker/types.d.cts +7 -0
- package/build/cjs/components/datepicker/utils.cjs +1 -1
- package/build/cjs/components/datepicker/utils.cjs.map +1 -1
- package/build/cjs/components/datepicker/utils.d.cts +0 -1
- package/build/cjs/components/datepicker/validation.cjs.map +1 -1
- package/build/cjs/components/datepicker/validation.d.cts +1 -8
- package/build/cjs/components/description-list/index.d.cts +1 -1
- package/build/cjs/components/expander/Expander.cjs.map +1 -1
- package/build/cjs/components/expander/Expander.d.cts +1 -2
- package/build/cjs/components/expander/index.d.cts +2 -4
- package/build/cjs/components/feedback/Feedback.cjs.map +1 -1
- package/build/cjs/components/feedback/Feedback.d.cts +4 -9
- package/build/cjs/components/feedback/followup/Followup.cjs.map +1 -1
- package/build/cjs/components/feedback/followup/Followup.d.cts +3 -14
- package/build/cjs/components/feedback/index.d.cts +3 -3
- package/build/cjs/components/feedback/presets.cjs.map +1 -1
- package/build/cjs/components/feedback/presets.d.cts +2 -5
- package/build/cjs/components/feedback/questions/ContactQuestion.cjs.map +1 -1
- package/build/cjs/components/feedback/questions/ContactQuestion.d.cts +3 -28
- package/build/cjs/components/feedback/types.d.cts +42 -7
- package/build/cjs/components/icon-button/index.d.cts +1 -2
- package/build/cjs/components/image/index.d.cts +1 -3
- package/build/cjs/components/index.cjs +1 -1
- package/build/cjs/components/index.d.cts +1 -1
- package/build/cjs/components/input-panel/BasePanel.cjs +2 -0
- package/build/cjs/components/input-panel/BasePanel.cjs.map +1 -0
- package/build/cjs/components/input-panel/BasePanel.d.cts +10 -0
- package/build/cjs/components/input-panel/CheckboxPanel.cjs +2 -0
- package/build/cjs/components/input-panel/CheckboxPanel.cjs.map +1 -0
- package/build/cjs/components/input-panel/CheckboxPanel.d.cts +7 -0
- package/build/cjs/components/input-panel/RadioPanel.cjs +2 -0
- package/build/cjs/components/input-panel/RadioPanel.cjs.map +1 -0
- package/build/cjs/components/{radio-panel → input-panel}/RadioPanel.d.cts +2 -4
- package/build/cjs/components/input-panel/RadioPanelGroup.cjs +2 -0
- package/build/cjs/components/input-panel/RadioPanelGroup.cjs.map +1 -0
- package/build/cjs/components/input-panel/RadioPanelGroup.d.cts +4 -0
- package/build/cjs/components/input-panel/documentation/checkbox-panel/ControlledExample.d.cts +4 -0
- package/build/cjs/components/input-panel/documentation/checkbox-panel/UncontrolledExample.d.cts +4 -0
- package/build/cjs/components/input-panel/documentation/radio-panel/ControlledExample.d.cts +4 -0
- package/build/cjs/components/input-panel/documentation/radio-panel/UncontrolledExample.d.cts +4 -0
- package/build/cjs/components/input-panel/index.cjs +2 -0
- package/build/cjs/components/input-panel/index.d.cts +3 -0
- package/build/cjs/components/input-panel/radioPanelContext.cjs +2 -0
- package/build/cjs/components/input-panel/radioPanelContext.cjs.map +1 -0
- package/build/cjs/components/input-panel/radioPanelContext.d.cts +7 -0
- package/build/cjs/components/link-list/LinkList.cjs.map +1 -1
- package/build/cjs/components/link-list/LinkList.d.cts +2 -11
- package/build/cjs/components/link-list/index.d.cts +1 -0
- package/build/cjs/components/link-list/types.cjs +2 -0
- package/build/cjs/components/link-list/types.cjs.map +1 -0
- package/build/cjs/components/link-list/types.d.cts +11 -0
- package/build/cjs/components/list/index.d.cts +2 -3
- package/build/cjs/components/loader/index.d.cts +9 -18
- package/build/cjs/components/logo/index.d.cts +2 -4
- package/build/cjs/components/menu/Menu.cjs +1 -1
- package/build/cjs/components/menu/Menu.cjs.map +1 -1
- package/build/cjs/components/modal/Modal.cjs.map +1 -1
- package/build/cjs/components/modal/Modal.d.cts +8 -2
- package/build/cjs/components/modal/index.d.cts +2 -4
- package/build/cjs/components/pagination/Pagination.cjs.map +1 -1
- package/build/cjs/components/pagination/Pagination.d.cts +2 -1
- package/build/cjs/components/pagination/index.d.cts +1 -1
- package/build/cjs/components/popover/Popover.cjs.map +1 -1
- package/build/cjs/components/popover/Popover.d.cts +6 -6
- package/build/cjs/components/popover/index.d.cts +1 -1
- package/build/cjs/components/progress-bar/index.d.cts +2 -4
- package/build/cjs/components/radio-button/index.d.cts +3 -6
- package/build/cjs/components/select/Select.cjs.map +1 -1
- package/build/cjs/components/select/Select.d.cts +5 -6
- package/build/cjs/components/select/index.d.cts +2 -4
- package/build/cjs/components/summary-table/SummaryTable.cjs.map +1 -1
- package/build/cjs/components/summary-table/SummaryTable.d.cts +2 -2
- package/build/cjs/components/summary-table/index.d.cts +2 -2
- package/build/cjs/components/system-message/SystemMessage.cjs.map +1 -1
- package/build/cjs/components/system-message/SystemMessage.d.cts +5 -6
- package/build/cjs/components/system-message/index.d.cts +1 -1
- package/build/cjs/components/tabs/index.d.cts +6 -6
- package/build/cjs/components/tag/index.d.cts +1 -3
- package/build/cjs/components/text-input/BaseTextArea.cjs.map +1 -1
- package/build/cjs/components/text-input/BaseTextArea.d.cts +1 -2
- package/build/cjs/components/text-input/index.d.cts +2 -2
- package/build/cjs/components/toast/index.d.cts +1 -1
- package/build/cjs/components/toast/toastContext.cjs.map +1 -1
- package/build/cjs/components/toast/toastContext.d.cts +1 -13
- package/build/cjs/components/toast/types.d.cts +11 -0
- package/build/cjs/components/toggle-switch/ToggleSlider.cjs.map +1 -1
- package/build/cjs/components/toggle-switch/ToggleSlider.d.cts +2 -3
- package/build/cjs/components/toggle-switch/ToggleSwitch.cjs.map +1 -1
- package/build/cjs/components/toggle-switch/ToggleSwitch.d.cts +1 -1
- package/build/cjs/components/toggle-switch/index.d.cts +2 -2
- package/build/cjs/components/tooltip/Tooltip.cjs +1 -1
- package/build/cjs/components/tooltip/Tooltip.cjs.map +1 -1
- package/build/cjs/components/tooltip/Tooltip.d.cts +2 -2
- package/build/cjs/components/tooltip/TooltipContent.cjs +1 -1
- package/build/cjs/components/tooltip/TooltipContent.cjs.map +1 -1
- package/build/cjs/components/tooltip/TooltipTrigger.cjs +1 -1
- package/build/cjs/components/tooltip/TooltipTrigger.cjs.map +1 -1
- package/build/cjs/index.cjs +1 -1
- package/build/es/components/breadcrumb/index.d.ts +2 -4
- package/build/es/components/button/index.d.ts +1 -1
- package/build/es/components/button/types.d.ts +1 -2
- package/build/es/components/button/types.js.map +1 -1
- package/build/es/components/card/NavCard.d.ts +1 -10
- package/build/es/components/card/NavCard.js.map +1 -1
- package/build/es/components/card/index.d.ts +2 -2
- package/build/es/components/card/types.d.ts +8 -0
- package/build/es/components/card/types.js.map +1 -1
- package/build/es/components/combobox/Combobox.d.ts +6 -7
- package/build/es/components/combobox/Combobox.js.map +1 -1
- package/build/es/components/combobox/index.d.ts +1 -1
- package/build/es/components/cookie-consent/index.d.ts +2 -4
- package/build/es/components/datepicker/index.d.ts +3 -3
- package/build/es/components/datepicker/index.js +1 -1
- package/build/es/components/datepicker/types.d.ts +7 -0
- package/build/es/components/datepicker/utils.d.ts +0 -1
- package/build/es/components/datepicker/utils.js +1 -1
- package/build/es/components/datepicker/utils.js.map +1 -1
- package/build/es/components/datepicker/validation.d.ts +1 -8
- package/build/es/components/datepicker/validation.js.map +1 -1
- package/build/es/components/description-list/index.d.ts +1 -1
- package/build/es/components/expander/Expander.d.ts +1 -2
- package/build/es/components/expander/Expander.js.map +1 -1
- package/build/es/components/expander/index.d.ts +2 -4
- package/build/es/components/feedback/Feedback.d.ts +4 -9
- package/build/es/components/feedback/Feedback.js.map +1 -1
- package/build/es/components/feedback/followup/Followup.d.ts +3 -14
- package/build/es/components/feedback/followup/Followup.js.map +1 -1
- package/build/es/components/feedback/index.d.ts +3 -3
- package/build/es/components/feedback/presets.d.ts +2 -5
- package/build/es/components/feedback/presets.js.map +1 -1
- package/build/es/components/feedback/questions/ContactQuestion.d.ts +3 -28
- package/build/es/components/feedback/questions/ContactQuestion.js.map +1 -1
- package/build/es/components/feedback/types.d.ts +42 -7
- package/build/es/components/icon-button/index.d.ts +1 -2
- package/build/es/components/image/index.d.ts +1 -3
- package/build/es/components/index.d.ts +1 -1
- package/build/es/components/index.js +1 -1
- package/build/es/components/input-panel/BasePanel.d.ts +10 -0
- package/build/es/components/input-panel/BasePanel.js +2 -0
- package/build/es/components/input-panel/BasePanel.js.map +1 -0
- package/build/es/components/input-panel/CheckboxPanel.d.ts +7 -0
- package/build/es/components/input-panel/CheckboxPanel.js +2 -0
- package/build/es/components/input-panel/CheckboxPanel.js.map +1 -0
- package/build/es/components/{radio-panel → input-panel}/RadioPanel.d.ts +2 -4
- package/build/es/components/input-panel/RadioPanel.js +2 -0
- package/build/es/components/input-panel/RadioPanel.js.map +1 -0
- package/build/es/components/input-panel/RadioPanelGroup.d.ts +4 -0
- package/build/es/components/input-panel/RadioPanelGroup.js +2 -0
- package/build/es/components/input-panel/RadioPanelGroup.js.map +1 -0
- package/build/es/components/input-panel/documentation/checkbox-panel/ControlledExample.d.ts +4 -0
- package/build/es/components/input-panel/documentation/checkbox-panel/UncontrolledExample.d.ts +4 -0
- package/build/es/components/input-panel/documentation/radio-panel/ControlledExample.d.ts +4 -0
- package/build/es/components/input-panel/documentation/radio-panel/UncontrolledExample.d.ts +4 -0
- package/build/es/components/input-panel/index.d.ts +3 -0
- package/build/es/components/input-panel/index.js +2 -0
- package/build/es/components/input-panel/radioPanelContext.d.ts +7 -0
- package/build/es/components/input-panel/radioPanelContext.js +2 -0
- package/build/es/components/input-panel/radioPanelContext.js.map +1 -0
- package/build/es/components/link-list/LinkList.d.ts +2 -11
- package/build/es/components/link-list/LinkList.js.map +1 -1
- package/build/es/components/link-list/index.d.ts +1 -0
- package/build/es/components/link-list/types.d.ts +11 -0
- package/build/es/components/link-list/types.js +2 -0
- package/build/es/components/link-list/types.js.map +1 -0
- package/build/es/components/list/index.d.ts +2 -3
- package/build/es/components/loader/index.d.ts +9 -18
- package/build/es/components/logo/index.d.ts +2 -4
- package/build/es/components/menu/Menu.js +1 -1
- package/build/es/components/menu/Menu.js.map +1 -1
- package/build/es/components/modal/Modal.d.ts +8 -2
- package/build/es/components/modal/Modal.js.map +1 -1
- package/build/es/components/modal/index.d.ts +2 -4
- package/build/es/components/pagination/Pagination.d.ts +2 -1
- package/build/es/components/pagination/Pagination.js.map +1 -1
- package/build/es/components/pagination/index.d.ts +1 -1
- package/build/es/components/popover/Popover.d.ts +6 -6
- package/build/es/components/popover/Popover.js.map +1 -1
- package/build/es/components/popover/index.d.ts +1 -1
- package/build/es/components/progress-bar/index.d.ts +2 -4
- package/build/es/components/radio-button/index.d.ts +3 -6
- package/build/es/components/select/Select.d.ts +5 -6
- package/build/es/components/select/Select.js.map +1 -1
- package/build/es/components/select/index.d.ts +2 -4
- package/build/es/components/summary-table/SummaryTable.d.ts +2 -2
- package/build/es/components/summary-table/SummaryTable.js.map +1 -1
- package/build/es/components/summary-table/index.d.ts +2 -2
- package/build/es/components/system-message/SystemMessage.d.ts +5 -6
- package/build/es/components/system-message/SystemMessage.js.map +1 -1
- package/build/es/components/system-message/index.d.ts +1 -1
- package/build/es/components/tabs/index.d.ts +6 -6
- package/build/es/components/tag/index.d.ts +1 -3
- package/build/es/components/text-input/BaseTextArea.d.ts +1 -2
- package/build/es/components/text-input/BaseTextArea.js.map +1 -1
- package/build/es/components/text-input/index.d.ts +2 -2
- package/build/es/components/toast/index.d.ts +1 -1
- package/build/es/components/toast/toastContext.d.ts +1 -13
- package/build/es/components/toast/toastContext.js.map +1 -1
- package/build/es/components/toast/types.d.ts +11 -0
- package/build/es/components/toggle-switch/ToggleSlider.d.ts +2 -3
- package/build/es/components/toggle-switch/ToggleSlider.js.map +1 -1
- package/build/es/components/toggle-switch/ToggleSwitch.d.ts +1 -1
- package/build/es/components/toggle-switch/ToggleSwitch.js.map +1 -1
- package/build/es/components/toggle-switch/index.d.ts +2 -2
- package/build/es/components/tooltip/Tooltip.d.ts +2 -2
- package/build/es/components/tooltip/Tooltip.js +1 -1
- package/build/es/components/tooltip/Tooltip.js.map +1 -1
- package/build/es/components/tooltip/TooltipContent.js +1 -1
- package/build/es/components/tooltip/TooltipContent.js.map +1 -1
- package/build/es/components/tooltip/TooltipTrigger.js +1 -1
- package/build/es/components/tooltip/TooltipTrigger.js.map +1 -1
- package/build/es/index.js +1 -1
- package/package.json +12 -3
- package/styles/components/button/button.css +2 -2
- package/styles/components/button/button.min.css +1 -1
- package/styles/components/checkbox/checkbox.css +4 -4
- package/styles/components/checkbox/checkbox.min.css +1 -1
- package/styles/components/feedback/feedback.css +2 -2
- package/styles/components/feedback/feedback.min.css +1 -1
- package/styles/components/input-group/input-group.css +2 -2
- package/styles/components/input-group/input-group.min.css +1 -1
- package/styles/components/input-panel/_index.scss +2 -0
- package/styles/components/input-panel/checkbox-panel.css +132 -0
- package/styles/components/input-panel/checkbox-panel.min.css +1 -0
- package/styles/components/input-panel/checkbox-panel.scss +88 -0
- package/styles/components/{radio-panel → input-panel}/radio-panel.css +67 -56
- package/styles/components/input-panel/radio-panel.min.css +1 -0
- package/styles/components/input-panel/radio-panel.scss +79 -0
- package/styles/components/input-panel/shared.css +61 -0
- package/styles/components/input-panel/shared.min.css +1 -0
- package/styles/components/input-panel/shared.scss +75 -0
- package/styles/components/loader/loader.css +6 -6
- package/styles/components/loader/loader.min.css +1 -1
- package/styles/components/loader/skeleton-loader.css +5 -5
- package/styles/components/loader/skeleton-loader.min.css +1 -1
- package/styles/components/message/message.css +2 -2
- package/styles/components/message/message.min.css +1 -1
- package/styles/components/progress-bar/progress-bar.css +2 -2
- package/styles/components/progress-bar/progress-bar.min.css +1 -1
- package/styles/components/radio-button/radio-button.css +2 -2
- package/styles/components/radio-button/radio-button.min.css +1 -1
- package/styles/components/system-message/system-message.css +2 -2
- package/styles/components/system-message/system-message.min.css +1 -1
- package/styles/components/toast/toast.css +4 -4
- package/styles/components/toast/toast.min.css +1 -1
- package/styles/components/tooltip/tooltip.css +2 -26
- package/styles/components/tooltip/tooltip.min.css +1 -1
- package/styles/components/tooltip/tooltip.scss +3 -31
- package/styles/styles.css +224 -166
- package/styles/styles.min.css +1 -1
- package/styles/styles.scss +1 -1
- package/build/cjs/components/radio-panel/RadioPanel.cjs +0 -2
- package/build/cjs/components/radio-panel/RadioPanel.cjs.map +0 -1
- package/build/cjs/components/radio-panel/index.cjs +0 -2
- package/build/cjs/components/radio-panel/index.d.cts +0 -1
- package/build/es/components/radio-panel/RadioPanel.js +0 -2
- package/build/es/components/radio-panel/RadioPanel.js.map +0 -1
- package/build/es/components/radio-panel/index.d.ts +0 -1
- package/build/es/components/radio-panel/index.js +0 -2
- package/styles/components/radio-panel/_index.scss +0 -1
- package/styles/components/radio-panel/radio-panel.min.css +0 -1
- package/styles/components/radio-panel/radio-panel.scss +0 -140
- /package/build/cjs/components/{radio-panel → input-panel}/index.cjs.map +0 -0
- /package/build/es/components/{radio-panel → input-panel}/index.js.map +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Dispatch, FormEvent, FormEventHandler, SetStateAction } from 'react';
|
|
1
|
+
import { Dispatch, FormEvent, FormEventHandler, ReactNode, SetStateAction } from 'react';
|
|
2
2
|
export type FeedbackOption<T = string | number> = {
|
|
3
3
|
/** Teksten som vises ved alternativet */
|
|
4
4
|
label: string;
|
|
@@ -13,19 +13,19 @@ interface BaseQuestion {
|
|
|
13
13
|
helpLabel?: string;
|
|
14
14
|
name?: string;
|
|
15
15
|
}
|
|
16
|
-
interface RadioQuestion extends BaseQuestion {
|
|
16
|
+
export interface RadioQuestion extends BaseQuestion {
|
|
17
17
|
type: "radio";
|
|
18
18
|
options: FeedbackOption[];
|
|
19
19
|
}
|
|
20
|
-
interface CheckboxQuestion extends BaseQuestion {
|
|
20
|
+
export interface CheckboxQuestion extends BaseQuestion {
|
|
21
21
|
type: "checkbox";
|
|
22
22
|
options: FeedbackOption[];
|
|
23
23
|
}
|
|
24
|
-
interface SmileyQuestion extends BaseQuestion {
|
|
24
|
+
export interface SmileyQuestion extends BaseQuestion {
|
|
25
25
|
type: "smiley";
|
|
26
26
|
options: FeedbackOption<number>[];
|
|
27
27
|
}
|
|
28
|
-
interface TextQuestion extends BaseQuestion {
|
|
28
|
+
export interface TextQuestion extends BaseQuestion {
|
|
29
29
|
type: "text";
|
|
30
30
|
}
|
|
31
31
|
export type MainQuestion = RadioQuestion | SmileyQuestion;
|
|
@@ -35,11 +35,11 @@ interface BaseFeedbackAnswer {
|
|
|
35
35
|
name: string;
|
|
36
36
|
type: "radio" | "checkbox" | "text";
|
|
37
37
|
}
|
|
38
|
-
interface MultiFeedbackAnswer extends BaseFeedbackAnswer {
|
|
38
|
+
export interface MultiFeedbackAnswer extends BaseFeedbackAnswer {
|
|
39
39
|
type: "checkbox";
|
|
40
40
|
value: string[];
|
|
41
41
|
}
|
|
42
|
-
interface SingleFeedbackAnswer extends BaseFeedbackAnswer {
|
|
42
|
+
export interface SingleFeedbackAnswer extends BaseFeedbackAnswer {
|
|
43
43
|
type: "radio" | "text";
|
|
44
44
|
value: string;
|
|
45
45
|
}
|
|
@@ -75,6 +75,16 @@ export type FollowupState = {
|
|
|
75
75
|
handleAbort: () => void;
|
|
76
76
|
setCurrentValue: Dispatch<SetStateAction<FeedbackOption | FeedbackOption[] | undefined>>;
|
|
77
77
|
};
|
|
78
|
+
export type FollowupProps = {
|
|
79
|
+
/** Spørsmålet/ene som skal stilles. Kan være av typen radio, checkbox eller text */
|
|
80
|
+
questions: FollowupQuestion[];
|
|
81
|
+
/** Lar deg tilpasse meldingen som kommer når brukeren har svart på spørsmålene. */
|
|
82
|
+
successMessage?: {
|
|
83
|
+
title: string;
|
|
84
|
+
children: ReactNode;
|
|
85
|
+
};
|
|
86
|
+
onSubmit: (values: FeedbackAnswer[]) => void;
|
|
87
|
+
};
|
|
78
88
|
export interface QuestionProps {
|
|
79
89
|
type?: QuestionType;
|
|
80
90
|
label: string;
|
|
@@ -83,4 +93,29 @@ export interface QuestionProps {
|
|
|
83
93
|
options?: FeedbackOption[];
|
|
84
94
|
autoFocus?: boolean;
|
|
85
95
|
}
|
|
96
|
+
export type ContactQuestionProps = {
|
|
97
|
+
/**
|
|
98
|
+
* Lar deg tilpasse spørsmålsteksten.
|
|
99
|
+
* @default "Kan vi kontakte deg for flere innspill?"
|
|
100
|
+
* */
|
|
101
|
+
label?: string;
|
|
102
|
+
/**
|
|
103
|
+
* Lar deg tilpasse teksten på knappen for innsending.
|
|
104
|
+
* @default "Sett meg på lista!"
|
|
105
|
+
* */
|
|
106
|
+
sendButtonLabel?: string;
|
|
107
|
+
/** Sett til true om du også vil spørre om brukjerens telefonnummer i tillegg til epost */
|
|
108
|
+
withPhone?: boolean;
|
|
109
|
+
/** Her kan du legge inn eventuelt annet innhold du vil ha med. Kommer mellom overskriften og feltene for utfylling */
|
|
110
|
+
children?: ReactNode;
|
|
111
|
+
onSubmit: (values: {
|
|
112
|
+
email: string;
|
|
113
|
+
phone?: string;
|
|
114
|
+
}) => void;
|
|
115
|
+
/** Lar deg tilpasse meldingen som kommer når brukeren sender inn skjemaet. */
|
|
116
|
+
successMessage?: {
|
|
117
|
+
title: string;
|
|
118
|
+
children: ReactNode;
|
|
119
|
+
};
|
|
120
|
+
};
|
|
86
121
|
export {};
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export type
|
|
2
|
-
export { IconButton } from './IconButton.js';
|
|
1
|
+
export { IconButton, type IconButtonProps } from './IconButton.js';
|
|
@@ -14,6 +14,7 @@ export * from './icon/index.js';
|
|
|
14
14
|
export * from './icon-button/index.js';
|
|
15
15
|
export * from './image/index.js';
|
|
16
16
|
export * from './input-group/index.js';
|
|
17
|
+
export * from './input-panel/index.js';
|
|
17
18
|
export * from './link/index.js';
|
|
18
19
|
export * from './link-list/index.js';
|
|
19
20
|
export * from './list/index.js';
|
|
@@ -26,7 +27,6 @@ export * from './pagination/index.js';
|
|
|
26
27
|
export * from './popover/index.js';
|
|
27
28
|
export * from './progress-bar/index.js';
|
|
28
29
|
export * from './radio-button/index.js';
|
|
29
|
-
export * from './radio-panel/index.js';
|
|
30
30
|
export * from './select/index.js';
|
|
31
31
|
export * from './summary-table/index.js';
|
|
32
32
|
export * from './system-message/index.js';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Accordion as o}from"./accordion/Accordion.js";import{AccordionItem as a}from"./accordion/AccordionItem.js";import{Breadcrumb as s}from"./breadcrumb/Breadcrumb.js";import{BreadcrumbItem as e}from"./breadcrumb/BreadcrumbItem.js";import{Button as r,PrimaryButton as t,SecondaryButton as n,TertiaryButton as i}from"./button/Button.js";import{Card as m}from"./card/Card.js";import{CardImage as c}from"./card/CardImage.js";import{InfoBlock as l,NavCard as p}from"./card/NavCard.js";import{TaskCard as d}from"./card/TaskCard.js";import{InfoCard as u}from"./card/InfoCard.js";import{Checkbox as b}from"./checkbox/Checkbox.js";import{Combobox as f,getComboboxValuePair as T}from"./combobox/Combobox.js";import{CookieConsent as I}from"./cookie-consent/CookieConsent.js";import{CookieConsentProvider as j,useCookieConsent as g}from"./cookie-consent/CookieConsentContext.js";import{isCorrectFormat as C,isWithinLowerBound as k,isWithinUpperBound as S}from"./datepicker/validation.js";import{dayMonthYearRegex as x,formatInput as h,isBlurTargetOutside as B,parseDateString as L}from"./datepicker/utils.js";import{DatePicker as M}from"./datepicker/DatePicker.js";import{Feedback as v}from"./feedback/Feedback.js";import{PRESETS as w}from"./feedback/presets.js";import{Flex as A}from"./flex/Flex.js";import{DescriptionDetail as R,DescriptionList as P,DescriptionTerm as F}from"./description-list/DescriptionList.js";import{Expander as y}from"./expander/Expander.js";import{ExpandSection as D}from"./expander/ExpandSection.js";import{Icon as E}from"./icon/Icon.js";import{ArrowVerticalAnimated as G}from"./icon/icons/animated/ArrowVerticalAnimated.js";import{ArrowHorizontalAnimated as N}from"./icon/icons/animated/ArrowHorizontalAnimated.js";import{PlusRemoveAnimated as H}from"./icon/icons/animated/PlusRemoveAnimated.js";import{ArrowDownIcon as U}from"./icon/icons/ArrowDownIcon.js";import{ArrowLeftIcon as W}from"./icon/icons/ArrowLeftIcon.js";import{ArrowNorthEastIcon as V}from"./icon/icons/ArrowNorthEastIcon.js";import{ArrowRightIcon as O}from"./icon/icons/ArrowRightIcon.js";import{ArrowUpIcon as z}from"./icon/icons/ArrowUpIcon.js";import{CalendarIcon as Q}from"./icon/icons/CalendarIcon.js";import{CheckIcon as Y}from"./icon/icons/CheckIcon.js";import{ChevronDownIcon as q}from"./icon/icons/ChevronDownIcon.js";import{ChevronLeftIcon as J}from"./icon/icons/ChevronLeftIcon.js";import{ChevronRightIcon as K}from"./icon/icons/ChevronRightIcon.js";import{ChevronUpIcon as X}from"./icon/icons/ChevronUpIcon.js";import{CloseIcon as Z}from"./icon/icons/CloseIcon.js";import{CopyIcon as $}from"./icon/icons/CopyIcon.js";import{DotsIcon as _}from"./icon/icons/DotsIcon.js";import{DragIcon as oo}from"./icon/icons/DragIcon.js";import{ErrorIcon as ao}from"./icon/icons/ErrorIcon.js";import{GreenCheckIcon as so}from"./icon/icons/GreenCheckIcon.js";import{HamburgerIcon as eo}from"./icon/icons/HamburgerIcon.js";import{InfoIcon as ro}from"./icon/icons/InfoIcon.js";import{LinkIcon as to}from"./icon/icons/LinkIcon.js";import{PlusIcon as no}from"./icon/icons/PlusIcon.js";import{QuestionIcon as io}from"./icon/icons/QuestionIcon.js";import{RedCrossIcon as mo}from"./icon/icons/RedCrossIcon.js";import{SearchIcon as co}from"./icon/icons/SearchIcon.js";import{SuccessIcon as lo}from"./icon/icons/SuccessIcon.js";import{WarningIcon as po}from"./icon/icons/WarningIcon.js";import{MinusIcon as uo}from"./icon/icons/MinusIcon.js";import{ThumbDownIcon as bo}from"./icon/icons/ThumbDownIcon.js";import{ThumbUpIcon as fo}from"./icon/icons/ThumbUpIcon.js";import{TrashCanIcon as To}from"./icon/icons/TrashCanIcon.js";import{PenIcon as Io}from"./icon/icons/PenIcon.js";import{IconButton as jo}from"./icon-button/IconButton.js";import{Image as go}from"./image/Image.js";import{FieldGroup as Co}from"./input-group/FieldGroup.js";import{InputGroup as ko}from"./input-group/InputGroup.js";import{Label as So}from"./input-group/Label.js";import{SupportLabel as xo}from"./input-group/SupportLabel.js";import{Link as ho}from"./link/Link.js";import{NavLink as Bo}from"./link/NavLink.js";import{LinkList as Lo}from"./link-list/LinkList.js";import{List as Mo,OrderedList as vo,UnorderedList as wo}from"./list/List.js";import{CheckListItem as Ao,CrossListItem as Ro,ListItem as Po}from"./list/ListItem.js";import{Loader as Fo}from"./loader/Loader.js";import{SkeletonAnimation as yo}from"./loader/skeletons/SkeletonAnimation.js";import{SkeletonButton as Do}from"./loader/skeletons/SkeletonButton.js";import{SkeletonCheckboxGroup as Eo}from"./loader/skeletons/SkeletonCheckboxGroup.js";import{SkeletonElement as Go}from"./loader/skeletons/SkeletonElement.js";import{SkeletonInput as No}from"./loader/skeletons/SkeletonInput.js";import{SkeletonRadioButtonGroup as Ho}from"./loader/skeletons/SkeletonRadioButtonGroup.js";import{SkeletonTable as Uo,SkeletonTableHeader as Wo,SkeletonTableRow as Vo}from"./loader/skeletons/SkeletonTable.js";import{SkeletonTextArea as Oo}from"./loader/skeletons/SkeletonTextArea.js";import{Logo as zo}from"./logo/Logo.js";import{LogoStamp as Qo}from"./logo/LogoStamp.js";import{ForsikringLevertAvFremtind as Yo}from"./logo/text-paths/ForsikringLevertAvFremtind.js";import{FraSB1ogDNB as qo}from"./logo/text-paths/FraSB1ogDNB.js";import{InnovasjonFraFremtind as Jo}from"./logo/text-paths/InnovasjonFraFremtind.js";import{TeknologiFraFremtind as Ko}from"./logo/text-paths/TeknologiFraFremtind.js";import{VartEgetForsikringsselskap as Xo}from"./logo/text-paths/VartEgetForsikringsselskap.js";import{VartForsikringsselskap as Zo}from"./logo/text-paths/VartForsikringsselskap.js";import{Menu as $o}from"./menu/Menu.js";import{MenuItem as _o}from"./menu/MenuItem.js";import{MenuItemCheckbox as oa}from"./menu/MenuItemCheckbox.js";import{MenuDivider as aa}from"./menu/MenuDivider.js";import{ErrorMessage as sa,InfoMessage as ea,SuccessMessage as ra,WarningMessage as ta}from"./message/Message.js";import{FormErrorMessage as na}from"./message/FormErrorMessage.js";import{Modal as ia,ModalActions as ma,ModalBody as ca,ModalCloseButton as la,ModalContainer as pa,ModalHeader as da,ModalOverlay as ua,ModalTitle as ba}from"./modal/Modal.js";import{useModal as fa}from"./modal/useModal.js";import{Pagination as Ta}from"./pagination/Pagination.js";import{Popover as Ia}from"./popover/Popover.js";import{Countdown as ja}from"./progress-bar/Countdown.js";import{ProgressBar as ga}from"./progress-bar/ProgressBar.js";import{RadioButton as Ca}from"./radio-button/RadioButton.js";import{RadioButtonGroup as ka}from"./radio-button/RadioButtonGroup.js";import{BaseRadioButton as Sa}from"./radio-button/BaseRadioButton.js";import{RadioPanel as xa}from"./radio-panel/RadioPanel.js";import{Select as ha}from"./select/Select.js";import{NativeSelect as Ba}from"./select/NativeSelect.js";import{SummaryTable as La}from"./summary-table/SummaryTable.js";import{SummaryTableRow as Ma}from"./summary-table/SummaryTableRow.js";import{ErrorSystemMessage as va,InfoSystemMessage as wa,SuccessSystemMessage as Aa,WarningSystemMessage as Ra}from"./system-message/SystemMessage.js";import{DataTable as Pa}from"./table/DataTable.js";import{Table as Fa}from"./table/Table.js";import{TableBody as ya}from"./table/TableBody.js";import{TableCaption as Da}from"./table/TableCaption.js";import{TableCell as Ea}from"./table/TableCell.js";import{TableColumn as Ga}from"./table/TableColumn.js";import{TableColumnGroup as Na}from"./table/TableColumnGroup.js";import{TableContextProvider as Ha,useTableContext as Ua}from"./table/tableContext.js";import{TableSectionContextProvider as Wa,useTableSectionContext as Va}from"./table/tableSectionContext.js";import{TableFooter as Oa}from"./table/TableFooter.js";import{TableHead as za}from"./table/TableHead.js";import{TableHeader as Qa}from"./table/TableHeader.js";import{TablePagination as Ya}from"./table/TablePagination.js";import{TableRow as qa}from"./table/TableRow.js";import{ExpandableTableRow as Ja}from"./table/ExpandableTableRow.js";import{ExpandableTableRowController as Ka}from"./table/ExpandableTableRowController.js";import{useSortableTableHeader as Xa}from"./table/utils.js";import{NavTab as Za}from"./tabs/NavTab.js";import{NavTabs as $a}from"./tabs/NavTabs.js";import{Tabs as _a}from"./tabs/Tabs.js";import{TabList as os}from"./tabs/TabList.js";import{Tab as as}from"./tabs/Tab.js";import{TabPanel as ss}from"./tabs/TabPanel.js";import{ErrorTag as es,InfoTag as rs,SuccessTag as ts,Tag as ns,WarningTag as is}from"./tag/Tag.js";import{BaseTextArea as ms}from"./text-input/BaseTextArea.js";import{BaseTextInput as cs}from"./text-input/BaseTextInput.js";import{TextArea as ls}from"./text-input/TextArea.js";import{TextInput as ps}from"./text-input/TextInput.js";import{ToastProvider as ds,useToast as us}from"./toast/toastContext.js";import{ToggleSwitch as bs}from"./toggle-switch/ToggleSwitch.js";import{ToggleSlider as fs}from"./toggle-switch/ToggleSlider.js";import{Tooltip as Ts}from"./tooltip/Tooltip.js";import{TooltipContent as Is}from"./tooltip/TooltipContent.js";import{TooltipTrigger as js}from"./tooltip/TooltipTrigger.js";import{PopupTip as gs}from"./tooltip/PopupTip.js";import{ScreenReaderOnly as Cs}from"./ScreenReaderOnly.js";export{o as Accordion,a as AccordionItem,U as ArrowDownIcon,N as ArrowHorizontalAnimated,W as ArrowLeftIcon,V as ArrowNorthEastIcon,O as ArrowRightIcon,z as ArrowUpIcon,G as ArrowVerticalAnimated,Sa as BaseRadioButton,ms as BaseTextArea,cs as BaseTextInput,s as Breadcrumb,e as BreadcrumbItem,r as Button,Q as CalendarIcon,m as Card,c as CardImage,Y as CheckIcon,Ao as CheckListItem,b as Checkbox,q as ChevronDownIcon,J as ChevronLeftIcon,K as ChevronRightIcon,X as ChevronUpIcon,Z as CloseIcon,f as Combobox,I as CookieConsent,j as CookieConsentProvider,$ as CopyIcon,ja as Countdown,Ro as CrossListItem,Pa as DataTable,M as DatePicker,R as DescriptionDetail,P as DescriptionList,F as DescriptionTerm,_ as DotsIcon,oo as DragIcon,ao as ErrorIcon,sa as ErrorMessage,va as ErrorSystemMessage,es as ErrorTag,D as ExpandSection,Ja as ExpandableTableRow,Ka as ExpandableTableRowController,y as Expander,v as Feedback,Co as FieldGroup,A as Flex,na as FormErrorMessage,Yo as ForsikringLevertAvFremtind,qo as FraSB1ogDNB,so as GreenCheckIcon,eo as HamburgerIcon,E as Icon,jo as IconButton,go as Image,l as InfoBlock,u as InfoCard,ro as InfoIcon,ea as InfoMessage,wa as InfoSystemMessage,rs as InfoTag,Jo as InnovasjonFraFremtind,ko as InputGroup,So as Label,ho as Link,to as LinkIcon,Lo as LinkList,Mo as List,Po as ListItem,Fo as Loader,zo as Logo,Qo as LogoStamp,$o as Menu,aa as MenuDivider,_o as MenuItem,oa as MenuItemCheckbox,uo as MinusIcon,ia as Modal,ma as ModalActions,ca as ModalBody,la as ModalCloseButton,pa as ModalContainer,da as ModalHeader,ua as ModalOverlay,ba as ModalTitle,Ba as NativeSelect,p as NavCard,Bo as NavLink,Za as NavTab,$a as NavTabs,vo as OrderedList,w as PRESETS,Ta as Pagination,Io as PenIcon,no as PlusIcon,H as PlusRemoveAnimated,Ia as Popover,gs as PopupTip,t as PrimaryButton,ga as ProgressBar,io as QuestionIcon,Ca as RadioButton,ka as RadioButtonGroup,xa as RadioPanel,mo as RedCrossIcon,Cs as ScreenReaderOnly,co as SearchIcon,n as SecondaryButton,ha as Select,yo as SkeletonAnimation,Do as SkeletonButton,Eo as SkeletonCheckboxGroup,Go as SkeletonElement,No as SkeletonInput,Ho as SkeletonRadioButtonGroup,Uo as SkeletonTable,Wo as SkeletonTableHeader,Vo as SkeletonTableRow,Oo as SkeletonTextArea,lo as SuccessIcon,ra as SuccessMessage,Aa as SuccessSystemMessage,ts as SuccessTag,La as SummaryTable,Ma as SummaryTableRow,xo as SupportLabel,as as Tab,os as TabList,ss as TabPanel,Fa as Table,ya as TableBody,Da as TableCaption,Ea as TableCell,Ga as TableColumn,Na as TableColumnGroup,Ha as TableContextProvider,Oa as TableFooter,za as TableHead,Qa as TableHeader,Ya as TablePagination,qa as TableRow,Wa as TableSectionContextProvider,_a as Tabs,ns as Tag,d as TaskCard,Ko as TeknologiFraFremtind,i as TertiaryButton,ls as TextArea,ps as TextInput,bo as ThumbDownIcon,fo as ThumbUpIcon,ds as ToastProvider,fs as ToggleSlider,bs as ToggleSwitch,Ts as Tooltip,Is as TooltipContent,js as TooltipTrigger,To as TrashCanIcon,wo as UnorderedList,Xo as VartEgetForsikringsselskap,Zo as VartForsikringsselskap,po as WarningIcon,ta as WarningMessage,Ra as WarningSystemMessage,is as WarningTag,x as dayMonthYearRegex,h as formatInput,T as getComboboxValuePair,B as isBlurTargetOutside,C as isCorrectFormat,k as isWithinLowerBound,S as isWithinUpperBound,L as parseDateString,g as useCookieConsent,fa as useModal,Xa as useSortableTableHeader,Ua as useTableContext,Va as useTableSectionContext,us as useToast};
|
|
1
|
+
import{Accordion as o}from"./accordion/Accordion.js";import{AccordionItem as a}from"./accordion/AccordionItem.js";import{Breadcrumb as s}from"./breadcrumb/Breadcrumb.js";import{BreadcrumbItem as e}from"./breadcrumb/BreadcrumbItem.js";import{Button as r,PrimaryButton as t,SecondaryButton as n,TertiaryButton as i}from"./button/Button.js";import{Card as m}from"./card/Card.js";import{CardImage as l}from"./card/CardImage.js";import{InfoBlock as c,NavCard as p}from"./card/NavCard.js";import{TaskCard as d}from"./card/TaskCard.js";import{InfoCard as u}from"./card/InfoCard.js";import{Checkbox as b}from"./checkbox/Checkbox.js";import{Combobox as f,getComboboxValuePair as T}from"./combobox/Combobox.js";import{CookieConsent as I}from"./cookie-consent/CookieConsent.js";import{CookieConsentProvider as j,useCookieConsent as g}from"./cookie-consent/CookieConsentContext.js";import{DatePicker as C}from"./datepicker/DatePicker.js";import{isCorrectFormat as k,isWithinLowerBound as S,isWithinUpperBound as x}from"./datepicker/validation.js";import{formatInput as h,isBlurTargetOutside as B,parseDateString as L}from"./datepicker/utils.js";import{Feedback as v}from"./feedback/Feedback.js";import{PRESETS as M}from"./feedback/presets.js";import{Flex as w}from"./flex/Flex.js";import{DescriptionDetail as A,DescriptionList as P,DescriptionTerm as R}from"./description-list/DescriptionList.js";import{Expander as F}from"./expander/Expander.js";import{ExpandSection as D}from"./expander/ExpandSection.js";import{Icon as y}from"./icon/Icon.js";import{ArrowVerticalAnimated as E}from"./icon/icons/animated/ArrowVerticalAnimated.js";import{ArrowHorizontalAnimated as G}from"./icon/icons/animated/ArrowHorizontalAnimated.js";import{PlusRemoveAnimated as N}from"./icon/icons/animated/PlusRemoveAnimated.js";import{ArrowDownIcon as H}from"./icon/icons/ArrowDownIcon.js";import{ArrowLeftIcon as U}from"./icon/icons/ArrowLeftIcon.js";import{ArrowNorthEastIcon as W}from"./icon/icons/ArrowNorthEastIcon.js";import{ArrowRightIcon as V}from"./icon/icons/ArrowRightIcon.js";import{ArrowUpIcon as O}from"./icon/icons/ArrowUpIcon.js";import{CalendarIcon as z}from"./icon/icons/CalendarIcon.js";import{CheckIcon as Q}from"./icon/icons/CheckIcon.js";import{ChevronDownIcon as q}from"./icon/icons/ChevronDownIcon.js";import{ChevronLeftIcon as J}from"./icon/icons/ChevronLeftIcon.js";import{ChevronRightIcon as K}from"./icon/icons/ChevronRightIcon.js";import{ChevronUpIcon as X}from"./icon/icons/ChevronUpIcon.js";import{CloseIcon as Y}from"./icon/icons/CloseIcon.js";import{CopyIcon as Z}from"./icon/icons/CopyIcon.js";import{DotsIcon as $}from"./icon/icons/DotsIcon.js";import{DragIcon as _}from"./icon/icons/DragIcon.js";import{ErrorIcon as oo}from"./icon/icons/ErrorIcon.js";import{GreenCheckIcon as ao}from"./icon/icons/GreenCheckIcon.js";import{HamburgerIcon as so}from"./icon/icons/HamburgerIcon.js";import{InfoIcon as eo}from"./icon/icons/InfoIcon.js";import{LinkIcon as ro}from"./icon/icons/LinkIcon.js";import{PlusIcon as to}from"./icon/icons/PlusIcon.js";import{QuestionIcon as no}from"./icon/icons/QuestionIcon.js";import{RedCrossIcon as io}from"./icon/icons/RedCrossIcon.js";import{SearchIcon as mo}from"./icon/icons/SearchIcon.js";import{SuccessIcon as lo}from"./icon/icons/SuccessIcon.js";import{WarningIcon as co}from"./icon/icons/WarningIcon.js";import{MinusIcon as po}from"./icon/icons/MinusIcon.js";import{ThumbDownIcon as uo}from"./icon/icons/ThumbDownIcon.js";import{ThumbUpIcon as bo}from"./icon/icons/ThumbUpIcon.js";import{TrashCanIcon as fo}from"./icon/icons/TrashCanIcon.js";import{PenIcon as To}from"./icon/icons/PenIcon.js";import{IconButton as Io}from"./icon-button/IconButton.js";import{Image as jo}from"./image/Image.js";import{FieldGroup as go}from"./input-group/FieldGroup.js";import{InputGroup as Co}from"./input-group/InputGroup.js";import{Label as ko}from"./input-group/Label.js";import{SupportLabel as So}from"./input-group/SupportLabel.js";import{CheckboxPanel as xo}from"./input-panel/CheckboxPanel.js";import{RadioPanel as ho}from"./input-panel/RadioPanel.js";import{RadioPanelGroup as Bo}from"./input-panel/RadioPanelGroup.js";import{Link as Lo}from"./link/Link.js";import{NavLink as vo}from"./link/NavLink.js";import{LinkList as Mo}from"./link-list/LinkList.js";import{List as wo,OrderedList as Ao,UnorderedList as Po}from"./list/List.js";import{CheckListItem as Ro,CrossListItem as Fo,ListItem as Do}from"./list/ListItem.js";import{Loader as yo}from"./loader/Loader.js";import{SkeletonAnimation as Eo}from"./loader/skeletons/SkeletonAnimation.js";import{SkeletonButton as Go}from"./loader/skeletons/SkeletonButton.js";import{SkeletonCheckboxGroup as No}from"./loader/skeletons/SkeletonCheckboxGroup.js";import{SkeletonElement as Ho}from"./loader/skeletons/SkeletonElement.js";import{SkeletonInput as Uo}from"./loader/skeletons/SkeletonInput.js";import{SkeletonRadioButtonGroup as Wo}from"./loader/skeletons/SkeletonRadioButtonGroup.js";import{SkeletonTable as Vo,SkeletonTableHeader as Oo,SkeletonTableRow as zo}from"./loader/skeletons/SkeletonTable.js";import{SkeletonTextArea as Qo}from"./loader/skeletons/SkeletonTextArea.js";import{Logo as qo}from"./logo/Logo.js";import{LogoStamp as Jo}from"./logo/LogoStamp.js";import{ForsikringLevertAvFremtind as Ko}from"./logo/text-paths/ForsikringLevertAvFremtind.js";import{FraSB1ogDNB as Xo}from"./logo/text-paths/FraSB1ogDNB.js";import{InnovasjonFraFremtind as Yo}from"./logo/text-paths/InnovasjonFraFremtind.js";import{TeknologiFraFremtind as Zo}from"./logo/text-paths/TeknologiFraFremtind.js";import{VartEgetForsikringsselskap as $o}from"./logo/text-paths/VartEgetForsikringsselskap.js";import{VartForsikringsselskap as _o}from"./logo/text-paths/VartForsikringsselskap.js";import{Menu as oa}from"./menu/Menu.js";import{MenuItem as aa}from"./menu/MenuItem.js";import{MenuItemCheckbox as sa}from"./menu/MenuItemCheckbox.js";import{MenuDivider as ea}from"./menu/MenuDivider.js";import{ErrorMessage as ra,InfoMessage as ta,SuccessMessage as na,WarningMessage as ia}from"./message/Message.js";import{FormErrorMessage as ma}from"./message/FormErrorMessage.js";import{Modal as la,ModalActions as ca,ModalBody as pa,ModalCloseButton as da,ModalContainer as ua,ModalHeader as ba,ModalOverlay as fa,ModalTitle as Ta}from"./modal/Modal.js";import{useModal as Ia}from"./modal/useModal.js";import{Pagination as ja}from"./pagination/Pagination.js";import{Popover as ga}from"./popover/Popover.js";import{Countdown as Ca}from"./progress-bar/Countdown.js";import{ProgressBar as ka}from"./progress-bar/ProgressBar.js";import{RadioButton as Sa}from"./radio-button/RadioButton.js";import{RadioButtonGroup as xa}from"./radio-button/RadioButtonGroup.js";import{BaseRadioButton as ha}from"./radio-button/BaseRadioButton.js";import{Select as Ba}from"./select/Select.js";import{NativeSelect as La}from"./select/NativeSelect.js";import{SummaryTable as va}from"./summary-table/SummaryTable.js";import{SummaryTableRow as Ma}from"./summary-table/SummaryTableRow.js";import{ErrorSystemMessage as wa,InfoSystemMessage as Aa,SuccessSystemMessage as Pa,WarningSystemMessage as Ra}from"./system-message/SystemMessage.js";import{DataTable as Fa}from"./table/DataTable.js";import{Table as Da}from"./table/Table.js";import{TableBody as ya}from"./table/TableBody.js";import{TableCaption as Ea}from"./table/TableCaption.js";import{TableCell as Ga}from"./table/TableCell.js";import{TableColumn as Na}from"./table/TableColumn.js";import{TableColumnGroup as Ha}from"./table/TableColumnGroup.js";import{TableContextProvider as Ua,useTableContext as Wa}from"./table/tableContext.js";import{TableSectionContextProvider as Va,useTableSectionContext as Oa}from"./table/tableSectionContext.js";import{TableFooter as za}from"./table/TableFooter.js";import{TableHead as Qa}from"./table/TableHead.js";import{TableHeader as qa}from"./table/TableHeader.js";import{TablePagination as Ja}from"./table/TablePagination.js";import{TableRow as Ka}from"./table/TableRow.js";import{ExpandableTableRow as Xa}from"./table/ExpandableTableRow.js";import{ExpandableTableRowController as Ya}from"./table/ExpandableTableRowController.js";import{useSortableTableHeader as Za}from"./table/utils.js";import{NavTab as $a}from"./tabs/NavTab.js";import{NavTabs as _a}from"./tabs/NavTabs.js";import{Tabs as os}from"./tabs/Tabs.js";import{TabList as as}from"./tabs/TabList.js";import{Tab as ss}from"./tabs/Tab.js";import{TabPanel as es}from"./tabs/TabPanel.js";import{ErrorTag as rs,InfoTag as ts,SuccessTag as ns,Tag as is,WarningTag as ms}from"./tag/Tag.js";import{BaseTextArea as ls}from"./text-input/BaseTextArea.js";import{BaseTextInput as cs}from"./text-input/BaseTextInput.js";import{TextArea as ps}from"./text-input/TextArea.js";import{TextInput as ds}from"./text-input/TextInput.js";import{ToastProvider as us,useToast as bs}from"./toast/toastContext.js";import{ToggleSwitch as fs}from"./toggle-switch/ToggleSwitch.js";import{ToggleSlider as Ts}from"./toggle-switch/ToggleSlider.js";import{Tooltip as Is}from"./tooltip/Tooltip.js";import{TooltipContent as js}from"./tooltip/TooltipContent.js";import{TooltipTrigger as gs}from"./tooltip/TooltipTrigger.js";import{PopupTip as Cs}from"./tooltip/PopupTip.js";import{ScreenReaderOnly as ks}from"./ScreenReaderOnly.js";export{o as Accordion,a as AccordionItem,H as ArrowDownIcon,G as ArrowHorizontalAnimated,U as ArrowLeftIcon,W as ArrowNorthEastIcon,V as ArrowRightIcon,O as ArrowUpIcon,E as ArrowVerticalAnimated,ha as BaseRadioButton,ls as BaseTextArea,cs as BaseTextInput,s as Breadcrumb,e as BreadcrumbItem,r as Button,z as CalendarIcon,m as Card,l as CardImage,Q as CheckIcon,Ro as CheckListItem,b as Checkbox,xo as CheckboxPanel,q as ChevronDownIcon,J as ChevronLeftIcon,K as ChevronRightIcon,X as ChevronUpIcon,Y as CloseIcon,f as Combobox,I as CookieConsent,j as CookieConsentProvider,Z as CopyIcon,Ca as Countdown,Fo as CrossListItem,Fa as DataTable,C as DatePicker,A as DescriptionDetail,P as DescriptionList,R as DescriptionTerm,$ as DotsIcon,_ as DragIcon,oo as ErrorIcon,ra as ErrorMessage,wa as ErrorSystemMessage,rs as ErrorTag,D as ExpandSection,Xa as ExpandableTableRow,Ya as ExpandableTableRowController,F as Expander,v as Feedback,go as FieldGroup,w as Flex,ma as FormErrorMessage,Ko as ForsikringLevertAvFremtind,Xo as FraSB1ogDNB,ao as GreenCheckIcon,so as HamburgerIcon,y as Icon,Io as IconButton,jo as Image,c as InfoBlock,u as InfoCard,eo as InfoIcon,ta as InfoMessage,Aa as InfoSystemMessage,ts as InfoTag,Yo as InnovasjonFraFremtind,Co as InputGroup,ko as Label,Lo as Link,ro as LinkIcon,Mo as LinkList,wo as List,Do as ListItem,yo as Loader,qo as Logo,Jo as LogoStamp,oa as Menu,ea as MenuDivider,aa as MenuItem,sa as MenuItemCheckbox,po as MinusIcon,la as Modal,ca as ModalActions,pa as ModalBody,da as ModalCloseButton,ua as ModalContainer,ba as ModalHeader,fa as ModalOverlay,Ta as ModalTitle,La as NativeSelect,p as NavCard,vo as NavLink,$a as NavTab,_a as NavTabs,Ao as OrderedList,M as PRESETS,ja as Pagination,To as PenIcon,to as PlusIcon,N as PlusRemoveAnimated,ga as Popover,Cs as PopupTip,t as PrimaryButton,ka as ProgressBar,no as QuestionIcon,Sa as RadioButton,xa as RadioButtonGroup,ho as RadioPanel,Bo as RadioPanelGroup,io as RedCrossIcon,ks as ScreenReaderOnly,mo as SearchIcon,n as SecondaryButton,Ba as Select,Eo as SkeletonAnimation,Go as SkeletonButton,No as SkeletonCheckboxGroup,Ho as SkeletonElement,Uo as SkeletonInput,Wo as SkeletonRadioButtonGroup,Vo as SkeletonTable,Oo as SkeletonTableHeader,zo as SkeletonTableRow,Qo as SkeletonTextArea,lo as SuccessIcon,na as SuccessMessage,Pa as SuccessSystemMessage,ns as SuccessTag,va as SummaryTable,Ma as SummaryTableRow,So as SupportLabel,ss as Tab,as as TabList,es as TabPanel,Da as Table,ya as TableBody,Ea as TableCaption,Ga as TableCell,Na as TableColumn,Ha as TableColumnGroup,Ua as TableContextProvider,za as TableFooter,Qa as TableHead,qa as TableHeader,Ja as TablePagination,Ka as TableRow,Va as TableSectionContextProvider,os as Tabs,is as Tag,d as TaskCard,Zo as TeknologiFraFremtind,i as TertiaryButton,ps as TextArea,ds as TextInput,uo as ThumbDownIcon,bo as ThumbUpIcon,us as ToastProvider,Ts as ToggleSlider,fs as ToggleSwitch,Is as Tooltip,js as TooltipContent,gs as TooltipTrigger,fo as TrashCanIcon,Po as UnorderedList,$o as VartEgetForsikringsselskap,_o as VartForsikringsselskap,co as WarningIcon,ia as WarningMessage,Ra as WarningSystemMessage,ms as WarningTag,h as formatInput,T as getComboboxValuePair,B as isBlurTargetOutside,k as isCorrectFormat,S as isWithinLowerBound,x as isWithinUpperBound,L as parseDateString,g as useCookieConsent,Ia as useModal,Za as useSortableTableHeader,Wa as useTableContext,Oa as useTableSectionContext,bs as useToast};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { default as React, ComponentPropsWithRef, ReactNode } from 'react';
|
|
2
|
+
type Props = ComponentPropsWithRef<"input"> & {
|
|
3
|
+
isChecked: boolean;
|
|
4
|
+
alwaysOpen: boolean;
|
|
5
|
+
label: string;
|
|
6
|
+
extraLabel?: ReactNode;
|
|
7
|
+
type: "radio" | "checkbox";
|
|
8
|
+
};
|
|
9
|
+
export declare const BasePanel: React.ForwardRefExoticComponent<Omit<Props, "ref"> & React.RefAttributes<HTMLInputElement>>;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsxs as a,jsx as e}from"react/jsx-runtime";import{c as l}from"../../../clsx-BeLtu-UY.js";import{forwardRef as n,useId as s,Children as t}from"react";import{useAutoAnimatedHeight as i}from"../../hooks/useAnimatedHeight/useAutoAnimateHeight.js";const r=n((function({className:n,isChecked:r,children:p,alwaysOpen:c,label:o,extraLabel:d,type:m,...u},h){const j=`content-${s()}`,_=t.count(p)>0,k=i(r);return a("div",{className:l("jkl-input-panel",`jkl-${m}-panel`,n),children:[a("label",{className:"jkl-input-panel__label",children:[e("input",{ref:h,className:"jkl-input-panel__input",type:m,"aria-controls":c?void 0:j,"aria-expanded":c?void 0:r,...u}),e("span",{"aria-hidden":"true",className:`jkl-${m}-panel__decorator`}),e("span",{className:"jkl-input-panel__main-label",children:o}),e("span",{className:l("jkl-input-panel__extra-label",{"jkl-input-panel__extra-label--text":"string"==typeof d}),children:d})]}),_&&e("div",{ref:k,"aria-hidden":!r&&!c,children:e("div",{className:"jkl-input-panel__content",id:j,"data-alwaysopen":c,children:p})})]})}));export{r as BasePanel};
|
|
2
|
+
//# sourceMappingURL=BasePanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BasePanel.js","sources":["../../../../src/components/input-panel/BasePanel.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, {\n Children,\n ComponentPropsWithRef,\n ForwardedRef,\n forwardRef,\n ReactNode,\n useId,\n} from \"react\";\nimport { useAutoAnimatedHeight } from \"../../hooks/useAnimatedHeight/useAutoAnimateHeight.js\";\n\ntype Props = ComponentPropsWithRef<\"input\"> & {\n isChecked: boolean;\n alwaysOpen: boolean;\n label: string;\n extraLabel?: ReactNode;\n type: \"radio\" | \"checkbox\";\n};\n\nexport const BasePanel = forwardRef(function BasePanel(\n {\n className,\n isChecked,\n children,\n alwaysOpen,\n label,\n extraLabel,\n type,\n ...rest\n }: Props,\n ref: ForwardedRef<HTMLInputElement>,\n) {\n const contentId = `content-${useId()}`;\n const hasChildren = Children.count(children) > 0;\n const animationRef = useAutoAnimatedHeight<HTMLDivElement>(isChecked);\n\n return (\n <div\n className={clsx(\"jkl-input-panel\", `jkl-${type}-panel`, className)}\n >\n <label className=\"jkl-input-panel__label\">\n <input\n ref={ref}\n className=\"jkl-input-panel__input\"\n type={type}\n aria-controls={!alwaysOpen ? contentId : undefined}\n aria-expanded={!alwaysOpen ? isChecked : undefined}\n {...rest}\n />\n <span\n aria-hidden=\"true\"\n className={`jkl-${type}-panel__decorator`}\n />\n <span className=\"jkl-input-panel__main-label\">{label}</span>\n <span\n className={clsx(\"jkl-input-panel__extra-label\", {\n \"jkl-input-panel__extra-label--text\":\n typeof extraLabel === \"string\",\n })}\n >\n {extraLabel}\n </span>\n </label>\n {hasChildren && (\n <div ref={animationRef} aria-hidden={!isChecked && !alwaysOpen}>\n <div\n className=\"jkl-input-panel__content\"\n id={contentId}\n data-alwaysopen={alwaysOpen}\n >\n {children}\n </div>\n </div>\n )}\n </div>\n );\n});\n"],"names":["BasePanel","forwardRef","className","isChecked","children","alwaysOpen","label","extraLabel","type","rest","ref","contentId","useId","hasChildren","Children","count","animationRef","useAutoAnimatedHeight","jsxs","clsx","jsx","id"],"mappings":"0PAmBa,MAAAA,EAAYC,GAAW,UAE5BC,UAAAA,EACAC,UAAAA,EACAC,SAAAA,EACAC,WAAAA,EACAC,MAAAA,EACAC,WAAAA,EACAC,KAAAA,KACGC,GAEPC,GAEM,MAAAC,EAAY,WAAWC,MACvBC,EAAcC,EAASC,MAAMX,GAAY,EACzCY,EAAeC,EAAsCd,GAGvD,OAAAe,EAAC,MAAA,CACGhB,UAAWiB,EAAK,kBAAmB,OAAOX,UAAcN,GAExDE,SAAA,CAACc,EAAA,QAAA,CAAMhB,UAAU,yBACbE,SAAA,CAAAgB,EAAC,QAAA,CACGV,IAAAA,EACAR,UAAU,yBACVM,KAAAA,EACA,gBAAgBH,OAAyB,EAAZM,EAC7B,gBAAgBN,OAAyB,EAAZF,KACzBM,IAERW,EAAC,OAAA,CACG,cAAY,OACZlB,UAAW,OAAOM,uBAErBY,EAAA,OAAA,CAAKlB,UAAU,8BAA+BE,SAAME,IACrDc,EAAC,OAAA,CACGlB,UAAWiB,EAAK,+BAAgC,CAC5C,qCAC0B,iBAAfZ,IAGdH,SAAAG,OAGRM,KACI,MAAI,CAAAH,IAAKM,EAAc,eAAcb,IAAcE,EAChDD,SAAAgB,EAAC,MAAA,CACGlB,UAAU,2BACVmB,GAAIV,EACJ,kBAAiBN,EAEhBD,SAAAA,QAMzB"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { default as React, ComponentPropsWithRef } from 'react';
|
|
2
|
+
export type CheckboxPanelProps = Omit<ComponentPropsWithRef<"input">, "type"> & {
|
|
3
|
+
label: string;
|
|
4
|
+
extraLabel?: React.ReactNode;
|
|
5
|
+
alwaysOpen?: boolean;
|
|
6
|
+
};
|
|
7
|
+
export declare const CheckboxPanel: React.ForwardRefExoticComponent<Omit<CheckboxPanelProps, "ref"> & React.RefAttributes<HTMLInputElement>>;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsx as e}from"react/jsx-runtime";import{forwardRef as a,useState as t,useCallback as c}from"react";import{BasePanel as r}from"./BasePanel.js";const s=a((function({label:a,extraLabel:s,alwaysOpen:l=!1,checked:o,defaultChecked:n,onChange:d,...f},h){const[k,u]=t(n||!1),p=c((e=>{null==d||d(e),u(e.target.checked)}),[d,u]),b=typeof o<"u";return e(r,{ref:h,type:"checkbox",isChecked:b?o:k,defaultChecked:n,checked:b?o:void 0,onChange:p,alwaysOpen:l,label:a,extraLabel:s,...f})}));export{s as CheckboxPanel};
|
|
2
|
+
//# sourceMappingURL=CheckboxPanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CheckboxPanel.js","sources":["../../../../src/components/input-panel/CheckboxPanel.tsx"],"sourcesContent":["import React, {\n ChangeEvent,\n ComponentPropsWithRef,\n ForwardedRef,\n forwardRef,\n useCallback,\n useState,\n} from \"react\";\nimport { BasePanel } from \"./BasePanel.js\";\n\nexport type CheckboxPanelProps = Omit<\n ComponentPropsWithRef<\"input\">,\n \"type\"\n> & {\n label: string;\n extraLabel?: React.ReactNode;\n alwaysOpen?: boolean;\n};\n\nexport const CheckboxPanel = forwardRef(function CheckboxPanel(\n {\n label,\n extraLabel,\n alwaysOpen = false,\n checked,\n defaultChecked,\n onChange,\n ...rest\n }: CheckboxPanelProps,\n ref: ForwardedRef<HTMLInputElement>,\n) {\n const [_isChecked, setIsChecked] = useState(defaultChecked || false);\n\n const handleChange = useCallback(\n (e: ChangeEvent<HTMLInputElement>) => {\n onChange?.(e);\n setIsChecked(e.target.checked);\n },\n [onChange, setIsChecked],\n );\n\n const isControlled = typeof checked !== \"undefined\";\n const isChecked = isControlled ? checked : _isChecked;\n\n return (\n <BasePanel\n ref={ref}\n type=\"checkbox\"\n isChecked={isChecked}\n defaultChecked={defaultChecked}\n checked={isControlled ? checked : undefined}\n onChange={handleChange}\n alwaysOpen={alwaysOpen}\n label={label}\n extraLabel={extraLabel}\n {...rest}\n />\n );\n});\n"],"names":["CheckboxPanel","forwardRef","label","extraLabel","alwaysOpen","checked","defaultChecked","onChange","rest","ref","_isChecked","setIsChecked","useState","handleChange","useCallback","e","target","isControlled","jsx","BasePanel","type","isChecked"],"mappings":"qJAmBa,MAAAA,EAAgBC,GAAW,UAEhCC,MAAAA,EACAC,WAAAA,EACAC,WAAAA,GAAa,EACbC,QAAAA,EACAC,eAAAA,EACAC,SAAAA,KACGC,GAEPC,GAEM,MAACC,EAAYC,GAAgBC,EAASN,IAAkB,GAExDO,EAAeC,GAChBC,IACG,MAAAR,GAAAA,EAAWQ,GACEJ,EAAAI,EAAEC,OAAOX,QAAO,GAEjC,CAACE,EAAUI,IAGTM,SAAsBZ,EAAY,IAIpC,OAAAa,EAACC,EAAA,CACGV,IAAAA,EACAW,KAAK,WACLC,UANUJ,EAAeZ,EAAUK,EAOnCJ,eAAAA,EACAD,QAASY,EAAeZ,OAAU,EAClCE,SAAUM,EACVT,WAAAA,EACAF,MAAAA,EACAC,WAAAA,KACIK,GAGhB"}
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
import { default as React, ComponentPropsWithRef } from 'react';
|
|
2
|
-
type
|
|
3
|
-
name: string;
|
|
2
|
+
export type RadioPanelProps = Omit<ComponentPropsWithRef<"input">, "type" | "aria-invalid"> & {
|
|
4
3
|
value: string;
|
|
5
4
|
label: string;
|
|
6
5
|
extraLabel?: React.ReactNode;
|
|
7
6
|
alwaysOpen?: boolean;
|
|
8
7
|
};
|
|
9
|
-
export declare const RadioPanel: React.ForwardRefExoticComponent<Omit<
|
|
10
|
-
export {};
|
|
8
|
+
export declare const RadioPanel: React.ForwardRefExoticComponent<Omit<RadioPanelProps, "ref"> & React.RefAttributes<HTMLInputElement>>;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsx as e}from"react/jsx-runtime";import{forwardRef as a,useContext as o,useCallback as r,useEffect as n}from"react";import{BasePanel as l}from"./BasePanel.js";import{context as t}from"./radioPanelContext.js";const s=a((function({alwaysOpen:a=!1,label:s,extraLabel:i,checked:d,onChange:u,value:c,defaultChecked:f,...p},h){const{onValueChange:w,checkedValue:k}=o(t),m=r((e=>{if(null==u||u(e),!w)throw new Error("RadioPanel will not work properly when used outside a RadioPanelGroup");w(c)}),[u,w,c]);n((()=>{if(f){if(!w)throw new Error("RadioPanel will not work properly when used outside a RadioPanelGroup");w(c)}}),[]);const C=typeof d<"u";return e(l,{ref:h,type:"radio",value:c,isChecked:C?d:k===c,defaultChecked:f,checked:C?d:void 0,onChange:m,alwaysOpen:a,label:s,extraLabel:i,...p})}));export{s as RadioPanel};
|
|
2
|
+
//# sourceMappingURL=RadioPanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RadioPanel.js","sources":["../../../../src/components/input-panel/RadioPanel.tsx"],"sourcesContent":["import React, {\n ChangeEvent,\n ComponentPropsWithRef,\n ForwardedRef,\n forwardRef,\n useCallback,\n useContext,\n useEffect,\n} from \"react\";\nimport { BasePanel } from \"./BasePanel.js\";\nimport { context } from \"./radioPanelContext.js\";\n\n// aria-invalid has been deprecated for the \"radio\" role, it should go on the\n// parent radiogroup\nexport type RadioPanelProps = Omit<\n ComponentPropsWithRef<\"input\">,\n \"type\" | \"aria-invalid\"\n> & {\n value: string;\n label: string;\n extraLabel?: React.ReactNode;\n alwaysOpen?: boolean;\n};\n\nexport const RadioPanel = forwardRef(function RadioPanel(\n {\n alwaysOpen = false,\n label,\n extraLabel,\n checked,\n onChange,\n value,\n defaultChecked,\n ...rest\n }: RadioPanelProps,\n ref: ForwardedRef<HTMLInputElement>,\n) {\n const { onValueChange, checkedValue } = useContext(context);\n\n const handleChange = useCallback(\n (e: ChangeEvent<HTMLInputElement>) => {\n onChange?.(e);\n if (!onValueChange) {\n throw new Error(\n \"RadioPanel will not work properly when used outside a RadioPanelGroup\",\n );\n }\n onValueChange(value);\n },\n [onChange, onValueChange, value],\n );\n\n useEffect(() => {\n if (defaultChecked) {\n if (!onValueChange) {\n throw new Error(\n \"RadioPanel will not work properly when used outside a RadioPanelGroup\",\n );\n }\n onValueChange(value);\n }\n // We never want to rerun this effect. Changing the default value after the\n // input control is first mounted should not cause any updates\n /* eslint-disable-next-line react-hooks/exhaustive-deps */\n }, []);\n\n const isControlled = typeof checked !== \"undefined\";\n const isChecked = isControlled ? checked : checkedValue === value;\n\n return (\n <BasePanel\n ref={ref}\n type=\"radio\"\n value={value}\n isChecked={isChecked}\n defaultChecked={defaultChecked}\n checked={isControlled ? checked : undefined}\n onChange={handleChange}\n alwaysOpen={alwaysOpen}\n label={label}\n extraLabel={extraLabel}\n {...rest}\n />\n );\n});\n"],"names":["RadioPanel","forwardRef","alwaysOpen","label","extraLabel","checked","onChange","value","defaultChecked","rest","ref","onValueChange","checkedValue","useContext","context","handleChange","useCallback","e","Error","useEffect","isControlled","jsx","BasePanel","type","isChecked"],"mappings":"uNAwBa,MAAAA,EAAaC,GAAW,UAE7BC,WAAAA,GAAa,EACbC,MAAAA,EACAC,WAAAA,EACAC,QAAAA,EACAC,SAAAA,EACAC,MAAAA,EACAC,eAAAA,KACGC,GAEPC,GAEM,MAAEC,cAAAA,EAAeC,aAAAA,GAAiBC,EAAWC,GAE7CC,EAAeC,GAChBC,IAEG,GADA,MAAAX,GAAAA,EAAWW,IACNN,EACD,MAAM,IAAIO,MACN,yEAGRP,EAAcJ,EAAK,GAEvB,CAACD,EAAUK,EAAeJ,IAG9BY,GAAU,KACN,GAAIX,EAAgB,CAChB,IAAKG,EACD,MAAM,IAAIO,MACN,yEAGRP,EAAcJ,EAClB,IAID,IAEGa,MAAAA,SAAsBf,EAAY,IAIpC,OAAAgB,EAACC,EAAA,CACGZ,IAAAA,EACAa,KAAK,QACLhB,MAAAA,EACAiB,UAPUJ,EAAef,EAAUO,IAAiBL,EAQpDC,eAAAA,EACAH,QAASe,EAAef,OAAU,EAClCC,SAAUS,EACVb,WAAAA,EACAC,MAAAA,EACAC,WAAAA,KACIK,GAGhB"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsx as r}from"react/jsx-runtime";import{useState as e}from"react";import{FieldGroup as a}from"../input-group/FieldGroup.js";import{context as o}from"./radioPanelContext.js";const t=({className:t,...i})=>{const[s,l]=e();return r(o.Provider,{value:{checkedValue:s,onValueChange:r=>{l(r)}},children:r(a,{className:t,role:"radiogroup","aria-invalid":!!i.errorLabel,...i})})};export{t as RadioPanelGroup};
|
|
2
|
+
//# sourceMappingURL=RadioPanelGroup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RadioPanelGroup.js","sources":["../../../../src/components/input-panel/RadioPanelGroup.tsx"],"sourcesContent":["import React, { FC, useState } from \"react\";\nimport { FieldGroup, FieldGroupProps } from \"../input-group/FieldGroup.js\";\nimport { context } from \"./radioPanelContext.js\";\n\nexport type RadioPanelGroupProps = FieldGroupProps & {};\n\nexport const RadioPanelGroup: FC<RadioPanelGroupProps> = ({\n className,\n ...rest\n}) => {\n const [checkedValue, setCheckedValue] = useState<string>();\n\n const onChange = (value: string) => {\n setCheckedValue(value);\n };\n\n return (\n <context.Provider value={{ checkedValue, onValueChange: onChange }}>\n <FieldGroup\n className={className}\n role=\"radiogroup\"\n aria-invalid={!!rest.errorLabel}\n {...rest}\n />\n </context.Provider>\n );\n};\n"],"names":["RadioPanelGroup","className","rest","checkedValue","setCheckedValue","useState","jsx","context","Provider","value","onValueChange","children","FieldGroup","role","errorLabel"],"mappings":"oLAMO,MAAMA,EAA4C,EACrDC,UAAAA,KACGC,MAEG,MAACC,EAAcC,GAAmBC,IAOpC,OAAAC,EAACC,EAAQC,SAAR,CAAiBC,MAAO,CAAEN,aAAAA,EAAcO,cAL3BD,IACdL,EAAgBK,EAAK,GAKjBE,SAAAL,EAACM,EAAA,CACGX,UAAAA,EACAY,KAAK,aACL,iBAAgBX,EAAKY,cACjBZ,KAEZ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"radioPanelContext.js","sources":["../../../../src/components/input-panel/radioPanelContext.tsx"],"sourcesContent":["import { createContext } from \"react\";\n\ntype Context = {\n checkedValue?: string;\n onValueChange?: (value: string) => void;\n};\n\nexport const context = createContext<Context>({});\n"],"names":["context","createContext"],"mappings":"sCAOa,MAAAA,EAAUC,EAAuB,CAAE"}
|
|
@@ -1,16 +1,7 @@
|
|
|
1
1
|
import { default as React } from 'react';
|
|
2
|
-
import {
|
|
3
|
-
type LinkComponent = <ElementType extends React.ElementType = "a">(props: PolymorphicPropsWithRef<ElementType>) => React.ReactElement | null;
|
|
4
|
-
type UnorderedLinkListProps = React.HTMLAttributes<HTMLUListElement> & {
|
|
5
|
-
variant: "unordered";
|
|
6
|
-
};
|
|
7
|
-
type OrderedLinkListProps = React.HTMLAttributes<HTMLOListElement> & {
|
|
8
|
-
variant: "ordered";
|
|
9
|
-
};
|
|
10
|
-
type LinkListProps = UnorderedLinkListProps | OrderedLinkListProps;
|
|
2
|
+
import { ItemProps, LinkComponent, LinkListProps } from './types.js';
|
|
11
3
|
export declare const LinkList: {
|
|
12
4
|
({ variant, className, ...rest }: LinkListProps): React.JSX.Element;
|
|
13
5
|
Link: LinkComponent;
|
|
14
|
-
Item:
|
|
6
|
+
Item: ItemProps;
|
|
15
7
|
};
|
|
16
|
-
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LinkList.js","sources":["../../../../src/components/link-list/LinkList.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React
|
|
1
|
+
{"version":3,"file":"LinkList.js","sources":["../../../../src/components/link-list/LinkList.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React from \"react\";\nimport {\n PolymorphicPropsWithRef,\n PolymorphicRef,\n} from \"../../utilities/polymorphism/polymorphism.js\";\nimport { ArrowRightIcon } from \"../icon/icons/ArrowRightIcon.js\";\nimport { ItemProps, LinkComponent, LinkListProps } from \"./types.js\";\n\nconst Item: ItemProps = ({ className, ...rest }) => {\n return (\n <li className={clsx(\"jkl-link-list-item\", className)} {...rest}></li>\n );\n};\n\nconst Link = React.forwardRef(function LinkListLink<\n ElementType extends React.ElementType = \"a\",\n>(\n props: PolymorphicPropsWithRef<ElementType>,\n ref: PolymorphicRef<ElementType>,\n) {\n const { as: Component = \"a\", children, className, ...rest } = props;\n\n return (\n <Component\n className={clsx(\"jkl-link-list-link\", className)}\n ref={ref}\n {...rest}\n >\n {children}\n <ArrowRightIcon className=\"jkl-link-list-link__arrow\" />\n </Component>\n );\n}) as LinkComponent;\n\nexport const LinkList = ({\n variant,\n className,\n ...rest\n}: LinkListProps): React.JSX.Element => {\n const Component = variant === \"ordered\" ? \"ol\" : \"ul\";\n\n return (\n <Component\n className={clsx(\"jkl-link-list\", className, {\n \"jkl-link-list--ordered\": variant === \"ordered\",\n \"jkl-link-list--unordered\": variant === \"unordered\",\n })}\n {...rest}\n />\n );\n};\n\nLinkList.Link = Link;\nLinkList.Item = Item;\n"],"names":["Link","React","forwardRef","props","ref","as","Component","children","className","rest","jsxs","clsx","jsx","ArrowRightIcon","LinkList","variant","Item"],"mappings":"sLASA,MAMMA,EAAOC,EAAMC,YAAW,SAG1BC,EACAC,GAEM,MAAEC,GAAIC,EAAY,IAAKC,SAAAA,EAAUC,UAAAA,KAAcC,GAASN,EAG1D,OAAAO,EAACJ,EAAA,CACGE,UAAWG,EAAK,qBAAsBH,GACtCJ,IAAAA,KACIK,EAEHF,SAAA,CAAAA,EACDK,EAACC,EAAe,CAAAL,UAAU,gCAGtC,IAEaM,EAAW,EACpBC,QAAAA,EACAP,UAAAA,KACGC,KAKCG,EAH0B,YAAZG,EAAwB,KAAO,KAG5C,CACGP,UAAWG,EAAK,gBAAiBH,EAAW,CACxC,yBAAsC,YAAZO,EAC1B,2BAAwC,cAAZA,OAE5BN,IAKhBK,EAASd,KAAOA,EAChBc,EAASE,KA7Ce,EAAGR,UAAAA,KAAcC,KAEjCG,EAAC,MAAGJ,UAAWG,EAAK,qBAAsBH,MAAgBC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ComponentProps, FC } from 'react';
|
|
2
|
+
import { PolymorphicPropsWithRef } from '../../utilities/polymorphism/polymorphism.js';
|
|
3
|
+
export type UnorderedLinkListProps = React.HTMLAttributes<HTMLUListElement> & {
|
|
4
|
+
variant: "unordered";
|
|
5
|
+
};
|
|
6
|
+
export type OrderedLinkListProps = React.HTMLAttributes<HTMLOListElement> & {
|
|
7
|
+
variant: "ordered";
|
|
8
|
+
};
|
|
9
|
+
export type LinkListProps = UnorderedLinkListProps | OrderedLinkListProps;
|
|
10
|
+
export type LinkComponent = <ElementType extends React.ElementType = "a">(props: PolymorphicPropsWithRef<ElementType>) => React.ReactElement | null;
|
|
11
|
+
export type ItemProps = FC<ComponentProps<"li">>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
export type
|
|
2
|
-
export {
|
|
3
|
-
export { ListItem, CheckListItem, CrossListItem } from './ListItem.js';
|
|
1
|
+
export { UnorderedList, OrderedList, List, type ListProps } from './List.js';
|
|
2
|
+
export { ListItem, CheckListItem, CrossListItem, type ListItemProps, } from './ListItem.js';
|
|
@@ -1,18 +1,9 @@
|
|
|
1
|
-
export { Loader } from './Loader.js';
|
|
2
|
-
export
|
|
3
|
-
export type
|
|
4
|
-
export {
|
|
5
|
-
export type
|
|
6
|
-
export {
|
|
7
|
-
export type
|
|
8
|
-
export {
|
|
9
|
-
export type
|
|
10
|
-
export { SkeletonElement } from './skeletons/SkeletonElement.js';
|
|
11
|
-
export type { SkeletonInputProps } from './skeletons/SkeletonInput.js';
|
|
12
|
-
export { SkeletonInput } from './skeletons/SkeletonInput.js';
|
|
13
|
-
export type { SkeletonRadioButtonGroupProps } from './skeletons/SkeletonRadioButtonGroup.js';
|
|
14
|
-
export { SkeletonRadioButtonGroup } from './skeletons/SkeletonRadioButtonGroup.js';
|
|
15
|
-
export type { SkeletonTableProps, SkeletonTableHeaderProps, SkeletonTableRowProps, } from './skeletons/SkeletonTable.js';
|
|
16
|
-
export { SkeletonTable, SkeletonTableHeader, SkeletonTableRow, } from './skeletons/SkeletonTable.js';
|
|
17
|
-
export type { SkeletonTextAreaProps } from './skeletons/SkeletonTextArea.js';
|
|
18
|
-
export { SkeletonTextArea } from './skeletons/SkeletonTextArea.js';
|
|
1
|
+
export { Loader, type LoaderVariant, type LoaderProps } from './Loader.js';
|
|
2
|
+
export { SkeletonAnimation, type SkeletonAnimationProps, } from './skeletons/SkeletonAnimation.js';
|
|
3
|
+
export { SkeletonButton, type SkeletonButtonProps, } from './skeletons/SkeletonButton.js';
|
|
4
|
+
export { SkeletonCheckboxGroup, type SkeletonCheckboxGroupProps, } from './skeletons/SkeletonCheckboxGroup.js';
|
|
5
|
+
export { SkeletonElement, type SkeletonElementProps, } from './skeletons/SkeletonElement.js';
|
|
6
|
+
export { SkeletonInput, type SkeletonInputProps, } from './skeletons/SkeletonInput.js';
|
|
7
|
+
export { SkeletonRadioButtonGroup, type SkeletonRadioButtonGroupProps, } from './skeletons/SkeletonRadioButtonGroup.js';
|
|
8
|
+
export { SkeletonTable, SkeletonTableHeader, SkeletonTableRow, type SkeletonTableProps, type SkeletonTableHeaderProps, type SkeletonTableRowProps, } from './skeletons/SkeletonTable.js';
|
|
9
|
+
export { SkeletonTextArea, type SkeletonTextAreaProps, } from './skeletons/SkeletonTextArea.js';
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
export type
|
|
2
|
-
export {
|
|
3
|
-
export type { LogoStampProps } from './LogoStamp.js';
|
|
4
|
-
export { LogoStamp } from './LogoStamp.js';
|
|
1
|
+
export { Logo, type LogoProps } from './Logo.js';
|
|
2
|
+
export { LogoStamp, type LogoStampProps } from './LogoStamp.js';
|
|
5
3
|
export { ForsikringLevertAvFremtind, FraSB1ogDNB, InnovasjonFraFremtind, TeknologiFraFremtind, VartEgetForsikringsselskap, VartForsikringsselskap, } from './text-paths/index.js';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as e,jsx as
|
|
1
|
+
import{jsxs as e,jsx as s}from"react/jsx-runtime";import{useFloatingTree as t,useFloatingNodeId as n,useFloatingParentNodeId as o,useFloating as a,offset as r,flip as i,shift as l,autoUpdate as u,useInteractions as d,useHover as c,safePolygon as m,useClick as p,useDismiss as f,useRole as g,useListNavigation as h,useMergeRefs as v,useTransitionStyles as y,FloatingNode as k,FloatingPortal as x,FloatingFocusManager as F,FloatingTree as P}from"@floating-ui/react";import{c as w}from"../../../clsx-BeLtu-UY.js";import j,{forwardRef as E,useRef as I,useState as M,useEffect as R}from"react";import*as C from"react-is";import{useBrowserPreferences as N}from"../../hooks/useBrowserPreferences/useBrowserPreferences.js";import"../../hooks/useScreen/useScreen.js";import{useId as b}from"../../hooks/useId/useId.js";import{getThemeAndDensity as O}from"../../utilities/getThemeAndDensity.js";import{useMenuWideEvents as T}from"./useMenuWideEvents.js";function D(e,s=0){switch(e){case"top":default:return`0 ${s}px`;case"left":return`${s}px 0`;case"bottom":return`0 ${-s}px`;case"right":return-s+"px 0"}}const S=E(((P,E)=>{const{children:S,className:A,initialPlacement:B,openOnHover:H=!1,keepOpenOnClickOutside:$=!1,triggerElement:K,isOpen:V,onToggle:W,...q}=P,L=b("jkl-menu"),{prefersReducedMotion:U}=N(),z=t(),G=n(),J=o(),Q=null!=J,X=I([]),[Y,Z]=M(null),{allowHover:_,isOpen:ee,setIsOpen:se}=T(z,G,J),te=void 0!==V?V:ee;R((()=>null==W?void 0:W(te)),[te,W]);const{refs:ne,placement:oe,context:ae,floatingStyles:re}=a({nodeId:G,open:te,onOpenChange:se,placement:B||(Q?"right-start":"bottom-start"),middleware:[r(2),i({fallbackAxisSideDirection:"end",crossAxis:!1}),l({padding:8})],whileElementsMounted:u}),{getReferenceProps:ie,getFloatingProps:le,getItemProps:ue}=d([c(ae,{enabled:H&&_,delay:{open:75},handleClose:m({requireIntent:!0,blockPointerEvents:!0})}),p(ae,{event:"mousedown"}),f(ae,{outsidePress:!$}),g(ae,{role:"menu"}),h(ae,{listRef:X,activeIndex:Y,nested:Q,onNavigate:Z})]),de=v([ne.setReference,E]),{theme:ce,density:me}=O(ne.reference.current),{isMounted:pe,styles:fe}=y(ae,{duration:{open:U?0:250,close:U?0:150},initial:({side:e})=>({opacity:0,translate:D(e,5)}),open:({side:e})=>({opacity:1,translate:D(e,0)}),close:({side:e})=>({opacity:0,translate:D(e,5)})});return e(k,{id:G,children:[j.isValidElement(K)&&("button"===K.type||C.isForwardRef(K))?j.cloneElement(K,{...ie({...q,ref:de,role:Q?"menuitem":void 0,"aria-controls":L,onClick(e){e.stopPropagation()}})}):K,pe&&s(x,{children:s(F,{context:ae,modal:!1,initialFocus:Q?-1:0,returnFocus:!Q,children:s("div",{className:w("jkl jkl-menu",A),"data-theme":ce,"data-layout-density":me,role:"menu","data-placement":oe,"aria-live":"assertive","aria-hidden":!te,ref:ne.setFloating,...le({id:L,style:{...re,...fe}}),children:j.Children.map(S,((e,s)=>j.isValidElement(e)&&C.isForwardRef(e)?j.cloneElement(e,ue({...e.props,tabIndex:Y===s?0:-1,role:"menuitem",ref(e){X.current[s]=e},onClick(s){var t,n;null==(n=(t=e.props).onClick)||n.call(t,s),!s.defaultPrevented&&(null==z||z.events.emit("click"))},onKeyDown(s){var t,n;null==(n=(t=e.props).onKeyDown)||n.call(t,s),!s.defaultPrevented&&(null==z||z.events.emit("keydown"),"menuitemcheckbox"===s.currentTarget.role&&"Enter"===s.key&&se(!1))},onMouseEnter(){_&&te&&Z(s)}})):e))})})})]})}));S.displayName="MenuComponent";const A=E(((e,t)=>null===o()?s(P,{children:s(S,{ref:t,...e})}):s(S,{ref:t,...e})));A.displayName="Menu";export{A as Menu};
|
|
2
2
|
//# sourceMappingURL=Menu.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Menu.js","sources":["../../../../src/components/menu/Menu.tsx"],"sourcesContent":["import {\n autoUpdate,\n flip,\n FloatingFocusManager,\n FloatingNode,\n FloatingPortal,\n FloatingTree,\n offset,\n type Placement,\n safePolygon,\n shift,\n useClick,\n useDismiss,\n useFloating,\n useFloatingNodeId,\n useFloatingParentNodeId,\n useFloatingTree,\n useHover,\n useInteractions,\n useListNavigation,\n useMergeRefs,\n useRole,\n} from \"@floating-ui/react\";\nimport clsx from \"clsx\";\nimport { AnimatePresence, motion } from \"framer-motion\";\nimport React, {\n type ButtonHTMLAttributes,\n forwardRef,\n type ReactNode,\n useEffect,\n useRef,\n useState,\n} from \"react\";\nimport * as ReactIs from \"react-is\";\nimport { DataTestAutoId, WithChildren } from \"../../core/types.js\";\nimport { useId } from \"../../hooks/useId/useId.js\";\nimport { getThemeAndDensity } from \"../../utilities/getThemeAndDensity.js\";\nimport { useMenuWideEvents } from \"./useMenuWideEvents.js\";\n\nexport interface MenuProps\n extends DataTestAutoId,\n WithChildren,\n Omit<ButtonHTMLAttributes<HTMLButtonElement>, \"children\"> {\n className?: string;\n /**\n * Initiell plassering av menyen. Dersom det ikke er plass på skjermen der du\n * angir at den skal åpnes vil den slyttes automatisk.\n * @default \"bottom-start\" på toppnivå, \"right-start\" for undermenyer\n * */\n initialPlacement?: Placement;\n /**\n * Angir om menyen skal åpnes ved hover (uten å måtte klikke)\n * @default false\n */\n openOnHover?: boolean;\n /**\n * Angir om menyen skal holdes åpen når man klikker utenfor menyen\n * @default false\n */\n keepOpenOnClickOutside?: boolean;\n /**\n * Elementet som fungerer som trigger for menyen. Dersom elementet ikke er en `<button>`\n * eller en `forwardRef<HTMLButtonElement>` vil det bli lagt inne i en knapp\n * med forhåndsdefinert stil. For å komme raskt i gang kan du bruke komponenten\n * `MenuTriggerButton` fra denne pakken.\n */\n triggerElement: ReactNode;\n /**\n * Kan brukes til å styre utenfra om menyen skal være åpen eller ikke.\n * @default false\n */\n isOpen?: boolean;\n /**\n * Callback som kalles når menyen åpnes eller lukkes.\n */\n onToggle?: (isOpen: boolean) => void;\n}\n\nconst MenuComponent = forwardRef<HTMLButtonElement, MenuProps>(\n (props, forwardedRef) => {\n const {\n children,\n className,\n initialPlacement,\n openOnHover = false,\n keepOpenOnClickOutside = false,\n triggerElement,\n isOpen: isOpenOverride,\n onToggle,\n ...triggerProps\n } = props;\n\n const MenuId = useId(\"jkl-menu\");\n\n const tree = useFloatingTree();\n const nodeId = useFloatingNodeId();\n const parentId = useFloatingParentNodeId();\n const isNested = parentId != null;\n\n const listItemsRef = useRef<Array<HTMLButtonElement | null>>([]);\n const [activeIndex, setActiveIndex] = useState<number | null>(null);\n const {\n allowHover,\n isOpen: isOpenDefault,\n setIsOpen,\n } = useMenuWideEvents(tree, nodeId, parentId);\n\n const isOpen =\n isOpenOverride !== undefined ? isOpenOverride : isOpenDefault;\n\n useEffect(() => onToggle?.(isOpen), [isOpen, onToggle]);\n\n const { x, y, refs, placement, strategy, context } = useFloating({\n nodeId,\n open: isOpen,\n onOpenChange: setIsOpen,\n placement:\n initialPlacement || (isNested ? \"right-start\" : \"bottom-start\"),\n middleware: [\n offset(2),\n flip({\n fallbackAxisSideDirection: \"end\", // Allow bottom placement in narrow viewports (https://floating-ui.com/docs/flip#fallbackaxissidedirection)\n crossAxis: false, // See https://floating-ui.com/docs/flip#combining-with-shift\n }),\n shift({ padding: 8 }),\n ],\n whileElementsMounted: autoUpdate,\n });\n\n const { getReferenceProps, getFloatingProps, getItemProps } =\n useInteractions([\n useHover(context, {\n enabled: openOnHover && allowHover,\n delay: { open: 75 },\n handleClose: safePolygon({\n requireIntent: true,\n blockPointerEvents: true,\n }),\n }),\n useClick(context, {\n event: \"mousedown\",\n }),\n useDismiss(context, { outsidePress: !keepOpenOnClickOutside }),\n useRole(context, { role: \"menu\" }),\n useListNavigation(context, {\n listRef: listItemsRef,\n activeIndex,\n nested: isNested,\n onNavigate: setActiveIndex,\n }),\n ]);\n\n const referenceRef = useMergeRefs([refs.setReference, forwardedRef]);\n\n // Siden menyen rendres på rot må vi hente lokal dark/light-verdi fra triggeren\n // Vi må gjøre dette for å ta hensyn til at tema kan styres lokalt for deler av UIet\n const { theme, density } = getThemeAndDensity(\n refs.reference.current as HTMLElement,\n );\n\n return (\n <FloatingNode id={nodeId}>\n {React.isValidElement(triggerElement) &&\n (triggerElement.type === \"button\" ||\n ReactIs.isForwardRef(triggerElement))\n ? // Dersom trigger-elementet er en knapp, sett riktige egenskaper på det\n React.cloneElement(triggerElement, {\n ...getReferenceProps({\n ...triggerProps,\n ref: referenceRef,\n role: isNested ? \"menuitem\" : undefined,\n \"aria-controls\": MenuId,\n onClick(event) {\n event.stopPropagation();\n },\n }),\n })\n : // Ellers, rendre elementet as-is, uten interaktivitet. Krev en ferdig brukbar button for å åpne menyen.\n triggerElement}\n <AnimatePresence>\n {isOpen && (\n <FloatingPortal>\n <FloatingFocusManager\n context={context}\n // Prevent outside content interference.\n modal={false}\n // Only initially focus the root floating menu.\n initialFocus={isNested ? -1 : 0}\n // Only return focus to the root menu's reference when menus close.\n returnFocus={!isNested}\n >\n <motion.div\n className={clsx(\"jkl jkl-menu\", className)}\n data-theme={theme}\n data-layout-density={density}\n role=\"menu\"\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n transition={{\n ease: \"easeIn\",\n duration: 0.1,\n }}\n data-placement={placement}\n aria-live=\"assertive\"\n aria-hidden={!isOpen}\n ref={refs.setFloating}\n {...getFloatingProps({\n id: MenuId,\n style: {\n position: strategy,\n top: y ?? \"\",\n left: x ?? \"\",\n },\n })}\n >\n {React.Children.map(\n children,\n (child, index) => {\n if (\n React.isValidElement(child) &&\n ReactIs.isForwardRef(child)\n ) {\n return React.cloneElement(\n child,\n getItemProps({\n ...child.props,\n tabIndex:\n activeIndex ===\n index\n ? 0\n : -1,\n role: \"menuitem\",\n ref(\n node: HTMLButtonElement,\n ) {\n listItemsRef.current[\n index\n ] = node;\n },\n onClick(event) {\n child.props.onClick?.(\n event as React.MouseEvent<HTMLButtonElement>,\n );\n if (\n event.defaultPrevented\n ) {\n return;\n }\n tree?.events.emit(\n \"click\",\n );\n },\n onKeyDown(event) {\n child.props.onKeyDown?.(\n event,\n );\n if (\n event.defaultPrevented\n ) {\n return;\n }\n tree?.events.emit(\n \"keydown\",\n );\n if (\n event\n .currentTarget\n .role ===\n \"menuitemcheckbox\" &&\n event.key ===\n \"Enter\"\n ) {\n // https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/menuitemcheckbox_role#keyboard_interactions\n setIsOpen(\n false,\n );\n }\n },\n onMouseEnter() {\n if (\n allowHover &&\n isOpen\n ) {\n setActiveIndex(\n index,\n );\n }\n },\n }),\n );\n }\n\n return child;\n },\n )}\n </motion.div>\n </FloatingFocusManager>\n </FloatingPortal>\n )}\n </AnimatePresence>\n </FloatingNode>\n );\n },\n);\nMenuComponent.displayName = \"MenuComponent\";\n\nexport const Menu = forwardRef<HTMLButtonElement, MenuProps>((props, ref) => {\n const parentId = useFloatingParentNodeId();\n\n if (parentId === null) {\n return (\n <FloatingTree>\n <MenuComponent ref={ref} {...props} />\n </FloatingTree>\n );\n }\n\n return <MenuComponent ref={ref} {...props} />;\n});\nMenu.displayName = \"Menu\";\n"],"names":["MenuComponent","forwardRef","props","forwardedRef","children","className","initialPlacement","openOnHover","keepOpenOnClickOutside","triggerElement","isOpen","isOpenOverride","onToggle","triggerProps","MenuId","useId","tree","useFloatingTree","nodeId","useFloatingNodeId","parentId","useFloatingParentNodeId","isNested","listItemsRef","useRef","activeIndex","setActiveIndex","useState","allowHover","isOpenDefault","setIsOpen","useMenuWideEvents","useEffect","x","y","refs","placement","strategy","context","useFloating","open","onOpenChange","middleware","offset","flip","fallbackAxisSideDirection","crossAxis","shift","padding","whileElementsMounted","autoUpdate","getReferenceProps","getFloatingProps","getItemProps","useInteractions","useHover","enabled","delay","handleClose","safePolygon","requireIntent","blockPointerEvents","useClick","event","useDismiss","outsidePress","useRole","role","useListNavigation","listRef","nested","onNavigate","referenceRef","useMergeRefs","setReference","theme","density","getThemeAndDensity","reference","current","jsxs","FloatingNode","id","React","isValidElement","type","ReactIs","isForwardRef","cloneElement","ref","onClick","stopPropagation","jsx","AnimatePresence","FloatingPortal","FloatingFocusManager","modal","initialFocus","returnFocus","motion","div","clsx","initial","opacity","animate","exit","transition","ease","duration","setFloating","style","position","top","left","Children","map","child","index","tabIndex","node","_b","_a","call","defaultPrevented","events","emit","onKeyDown","currentTarget","key","onMouseEnter","displayName","Menu","FloatingTree"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Menu.js","sources":["../../../../src/components/menu/Menu.tsx"],"sourcesContent":["import {\n autoUpdate,\n flip,\n FloatingFocusManager,\n FloatingNode,\n FloatingPortal,\n FloatingTree,\n offset,\n type Placement,\n safePolygon,\n shift,\n Side,\n useClick,\n useDismiss,\n useFloating,\n useFloatingNodeId,\n useFloatingParentNodeId,\n useFloatingTree,\n useHover,\n useInteractions,\n useListNavigation,\n useMergeRefs,\n useRole,\n useTransitionStyles,\n} from \"@floating-ui/react\";\nimport clsx from \"clsx\";\nimport React, {\n type ButtonHTMLAttributes,\n forwardRef,\n type ReactNode,\n useEffect,\n useRef,\n useState,\n} from \"react\";\nimport * as ReactIs from \"react-is\";\nimport { DataTestAutoId, WithChildren } from \"../../core/types.js\";\nimport { useBrowserPreferences } from \"../../hooks/index.js\";\nimport { useId } from \"../../hooks/useId/useId.js\";\nimport { getThemeAndDensity } from \"../../utilities/getThemeAndDensity.js\";\nimport { useMenuWideEvents } from \"./useMenuWideEvents.js\";\n\nexport interface MenuProps\n extends DataTestAutoId,\n WithChildren,\n Omit<ButtonHTMLAttributes<HTMLButtonElement>, \"children\"> {\n className?: string;\n /**\n * Initiell plassering av menyen. Dersom det ikke er plass på skjermen der du\n * angir at den skal åpnes vil den slyttes automatisk.\n * @default \"bottom-start\" på toppnivå, \"right-start\" for undermenyer\n * */\n initialPlacement?: Placement;\n /**\n * Angir om menyen skal åpnes ved hover (uten å måtte klikke)\n * @default false\n */\n openOnHover?: boolean;\n /**\n * Angir om menyen skal holdes åpen når man klikker utenfor menyen\n * @default false\n */\n keepOpenOnClickOutside?: boolean;\n /**\n * Elementet som fungerer som trigger for menyen. Dersom elementet ikke er en `<button>`\n * eller en `forwardRef<HTMLButtonElement>` vil det bli lagt inne i en knapp\n * med forhåndsdefinert stil. For å komme raskt i gang kan du bruke komponenten\n * `MenuTriggerButton` fra denne pakken.\n */\n triggerElement: ReactNode;\n /**\n * Kan brukes til å styre utenfra om menyen skal være åpen eller ikke.\n * @default false\n */\n isOpen?: boolean;\n /**\n * Callback som kalles når menyen åpnes eller lukkes.\n */\n onToggle?: (isOpen: boolean) => void;\n}\n\nfunction getTranslation(side: Side, value: number = 0) {\n switch (side) {\n case \"top\":\n return `0 ${value}px`;\n case \"left\":\n return `${value}px 0`;\n case \"bottom\":\n return `0 ${-value}px`;\n case \"right\":\n return `${-value}px 0`;\n\n default:\n return `0 ${value}px`;\n }\n}\n\nconst MenuComponent = forwardRef<HTMLButtonElement, MenuProps>(\n (props, forwardedRef) => {\n const {\n children,\n className,\n initialPlacement,\n openOnHover = false,\n keepOpenOnClickOutside = false,\n triggerElement,\n isOpen: isOpenOverride,\n onToggle,\n ...triggerProps\n } = props;\n\n const MenuId = useId(\"jkl-menu\");\n\n const { prefersReducedMotion } = useBrowserPreferences();\n\n const tree = useFloatingTree();\n const nodeId = useFloatingNodeId();\n const parentId = useFloatingParentNodeId();\n const isNested = parentId != null;\n\n const listItemsRef = useRef<Array<HTMLButtonElement | null>>([]);\n const [activeIndex, setActiveIndex] = useState<number | null>(null);\n const {\n allowHover,\n isOpen: isOpenDefault,\n setIsOpen,\n } = useMenuWideEvents(tree, nodeId, parentId);\n\n const isOpen =\n isOpenOverride !== undefined ? isOpenOverride : isOpenDefault;\n\n useEffect(() => onToggle?.(isOpen), [isOpen, onToggle]);\n\n const { refs, placement, context, floatingStyles } = useFloating({\n nodeId,\n open: isOpen,\n onOpenChange: setIsOpen,\n placement:\n initialPlacement || (isNested ? \"right-start\" : \"bottom-start\"),\n middleware: [\n offset(2),\n flip({\n fallbackAxisSideDirection: \"end\", // Allow bottom placement in narrow viewports (https://floating-ui.com/docs/flip#fallbackaxissidedirection)\n crossAxis: false, // See https://floating-ui.com/docs/flip#combining-with-shift\n }),\n shift({ padding: 8 }),\n ],\n whileElementsMounted: autoUpdate,\n });\n\n const { getReferenceProps, getFloatingProps, getItemProps } =\n useInteractions([\n useHover(context, {\n enabled: openOnHover && allowHover,\n delay: { open: 75 },\n handleClose: safePolygon({\n requireIntent: true,\n blockPointerEvents: true,\n }),\n }),\n useClick(context, {\n event: \"mousedown\",\n }),\n useDismiss(context, { outsidePress: !keepOpenOnClickOutside }),\n useRole(context, { role: \"menu\" }),\n useListNavigation(context, {\n listRef: listItemsRef,\n activeIndex,\n nested: isNested,\n onNavigate: setActiveIndex,\n }),\n ]);\n\n const referenceRef = useMergeRefs([refs.setReference, forwardedRef]);\n\n // Siden menyen rendres på rot må vi hente lokal dark/light-verdi fra triggeren\n // Vi må gjøre dette for å ta hensyn til at tema kan styres lokalt for deler av UIet\n const { theme, density } = getThemeAndDensity(\n refs.reference.current as HTMLElement,\n );\n\n const { isMounted, styles: animationStyles } = useTransitionStyles(\n context,\n {\n duration: {\n open: prefersReducedMotion ? 0 : 250,\n close: prefersReducedMotion ? 0 : 150,\n },\n initial: ({ side }) => ({\n opacity: 0,\n translate: getTranslation(side, 5),\n }),\n open: ({ side }) => ({\n opacity: 1,\n translate: getTranslation(side, 0),\n }),\n close: ({ side }) => ({\n opacity: 0,\n translate: getTranslation(side, 5),\n }),\n },\n );\n\n return (\n <FloatingNode id={nodeId}>\n {React.isValidElement(triggerElement) &&\n (triggerElement.type === \"button\" ||\n ReactIs.isForwardRef(triggerElement))\n ? // Dersom trigger-elementet er en knapp, sett riktige egenskaper på det\n React.cloneElement(triggerElement, {\n ...getReferenceProps({\n ...triggerProps,\n ref: referenceRef,\n role: isNested ? \"menuitem\" : undefined,\n \"aria-controls\": MenuId,\n onClick(event) {\n event.stopPropagation();\n },\n }),\n })\n : // Ellers, rendre elementet as-is, uten interaktivitet. Krev en ferdig brukbar button for å åpne menyen.\n triggerElement}\n {isMounted && (\n <FloatingPortal>\n <FloatingFocusManager\n context={context}\n // Prevent outside content interference.\n modal={false}\n // Only initially focus the root floating menu.\n initialFocus={isNested ? -1 : 0}\n // Only return focus to the root menu's reference when menus close.\n returnFocus={!isNested}\n >\n <div\n className={clsx(\"jkl jkl-menu\", className)}\n data-theme={theme}\n data-layout-density={density}\n role=\"menu\"\n data-placement={placement}\n aria-live=\"assertive\"\n aria-hidden={!isOpen}\n ref={refs.setFloating}\n {...getFloatingProps({\n id: MenuId,\n style: {\n ...floatingStyles,\n ...animationStyles,\n },\n })}\n >\n {React.Children.map(\n children,\n (child, index) => {\n if (\n React.isValidElement(child) &&\n ReactIs.isForwardRef(child)\n ) {\n return React.cloneElement(\n child,\n getItemProps({\n ...child.props,\n tabIndex:\n activeIndex === index\n ? 0\n : -1,\n role: \"menuitem\",\n ref(\n node: HTMLButtonElement,\n ) {\n listItemsRef.current[\n index\n ] = node;\n },\n onClick(event) {\n child.props.onClick?.(\n event as React.MouseEvent<HTMLButtonElement>,\n );\n if (\n event.defaultPrevented\n ) {\n return;\n }\n tree?.events.emit(\n \"click\",\n );\n },\n onKeyDown(event) {\n child.props.onKeyDown?.(\n event,\n );\n if (\n event.defaultPrevented\n ) {\n return;\n }\n tree?.events.emit(\n \"keydown\",\n );\n if (\n event.currentTarget\n .role ===\n \"menuitemcheckbox\" &&\n event.key ===\n \"Enter\"\n ) {\n // https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/menuitemcheckbox_role#keyboard_interactions\n setIsOpen(false);\n }\n },\n onMouseEnter() {\n if (\n allowHover &&\n isOpen\n ) {\n setActiveIndex(\n index,\n );\n }\n },\n }),\n );\n }\n\n return child;\n },\n )}\n </div>\n </FloatingFocusManager>\n </FloatingPortal>\n )}\n </FloatingNode>\n );\n },\n);\nMenuComponent.displayName = \"MenuComponent\";\n\nexport const Menu = forwardRef<HTMLButtonElement, MenuProps>((props, ref) => {\n const parentId = useFloatingParentNodeId();\n\n if (parentId === null) {\n return (\n <FloatingTree>\n <MenuComponent ref={ref} {...props} />\n </FloatingTree>\n );\n }\n\n return <MenuComponent ref={ref} {...props} />;\n});\nMenu.displayName = \"Menu\";\n"],"names":["getTranslation","side","value","MenuComponent","forwardRef","props","forwardedRef","children","className","initialPlacement","openOnHover","keepOpenOnClickOutside","triggerElement","isOpen","isOpenOverride","onToggle","triggerProps","MenuId","useId","prefersReducedMotion","useBrowserPreferences","tree","useFloatingTree","nodeId","useFloatingNodeId","parentId","useFloatingParentNodeId","isNested","listItemsRef","useRef","activeIndex","setActiveIndex","useState","allowHover","isOpenDefault","setIsOpen","useMenuWideEvents","useEffect","refs","placement","context","floatingStyles","useFloating","open","onOpenChange","middleware","offset","flip","fallbackAxisSideDirection","crossAxis","shift","padding","whileElementsMounted","autoUpdate","getReferenceProps","getFloatingProps","getItemProps","useInteractions","useHover","enabled","delay","handleClose","safePolygon","requireIntent","blockPointerEvents","useClick","event","useDismiss","outsidePress","useRole","role","useListNavigation","listRef","nested","onNavigate","referenceRef","useMergeRefs","setReference","theme","density","getThemeAndDensity","reference","current","isMounted","styles","animationStyles","useTransitionStyles","duration","close","initial","opacity","translate","jsxs","FloatingNode","id","React","isValidElement","type","ReactIs","isForwardRef","cloneElement","ref","onClick","stopPropagation","FloatingPortal","jsx","FloatingFocusManager","modal","initialFocus","returnFocus","clsx","setFloating","style","Children","map","child","index","tabIndex","node","_b","_a","call","defaultPrevented","events","emit","onKeyDown","currentTarget","key","onMouseEnter","displayName","Menu","FloatingTree"],"mappings":"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"}
|