@rikstv/shared-components 1.1.97 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/accordion/Accordion-4b8edd28.mjs +669 -0
- package/dist/components/breadcrumb/Breadcrumb-1b579cc3.mjs +21 -0
- package/dist/components/button/ArrowButton-af5de307.mjs +48 -0
- package/dist/components/button/BaseButton-4f6e9dd4.mjs +46 -0
- package/dist/components/button/BaseButton.d.ts +2 -2
- package/dist/components/button/BaseDecoratedButton-c5799b0f.mjs +15 -0
- package/dist/components/button/BaseLinkButton-348be18c.mjs +42 -0
- package/dist/components/button/BaseLinkButton.d.ts +2 -2
- package/dist/components/button/Button-4e09c58d.mjs +17 -0
- package/dist/components/button/DecoratedButton-ab90a6bd.mjs +21 -0
- package/dist/components/button/IconButton-dd3478ff.mjs +15 -0
- package/dist/components/button/LinkButton-85fc759b.mjs +8 -0
- package/dist/components/button/LinkButton.d.ts +1 -1
- package/dist/components/checkbox/BaseCheckbox-6fed1663.mjs +41 -0
- package/dist/components/checkbox/Checkbox-cc58a275.mjs +22 -0
- package/dist/components/core/Core-ba0340f6.mjs +46 -0
- package/dist/components/core/LightMode-b458f91d.mjs +9 -0
- package/dist/components/core/RiksTV-698a6154.mjs +6 -0
- package/dist/components/core/Strim-51ea8e08.mjs +6 -0
- package/dist/components/core/hooks/useBrowserPreferences.d.ts +1 -1
- package/dist/components/icons/{Arrow.js → Arrow-feb3e25e.mjs} +9 -10
- package/dist/components/icons/{Chevron.js → Chevron-ef147695.mjs} +9 -12
- package/dist/components/list/CheckmarkListItem-f9df7013.mjs +38 -0
- package/dist/components/list/CrossmarkListItem-348c226a.mjs +28 -0
- package/dist/components/list/List-86ad4810.mjs +27 -0
- package/dist/components/list/ListItem-4e47bb2e.mjs +5 -0
- package/dist/components/list/OrderedListItem-a70598a1.mjs +5 -0
- package/dist/components/loader/Loader-7ab4a8f0.mjs +21 -0
- package/dist/components/loader/RawLoader-7e00f143.mjs +47 -0
- package/dist/components/notificationDot/NotificationDot-b03fa811.mjs +26 -0
- package/dist/components/panel/{Info.js → Info-7fe85f53.mjs} +20 -12
- package/dist/components/panel/Panel-5cd1bda7.mjs +50 -0
- package/dist/components/panel/{Success.js → Success-c116cc05.mjs} +75 -23
- package/dist/components/panel/Warning-fa1839e3.mjs +11 -0
- package/dist/components/progress/CircularProgress-e4622fd6.mjs +52 -0
- package/dist/components/progress/Progress-ef42810b.mjs +26 -0
- package/dist/components/spacing/Gutter-32112716.mjs +5 -0
- package/dist/components/spacing/GutterPadding-6be6c9d9.mjs +5 -0
- package/dist/components/textfield/TextField-765a87bf.mjs +70 -0
- package/dist/components/toggle/FieldSet-4bdc4b7e.mjs +13 -0
- package/dist/components/toggle/RadioToggle-1528c002.mjs +17 -0
- package/dist/components/toggleButton/ToggleButton-a2d4302f.mjs +47 -0
- package/dist/components/toggleInlineButton/ToggleInlineButton-1e480eaa.mjs +40 -0
- package/dist/components/toggleLinkButton/ToggleLinkButton-08c60e4d.mjs +45 -0
- package/dist/components/typography/Typography-91af1c48.mjs +33 -0
- package/dist/components/typography/Typography.d.ts +2 -2
- package/dist/shared-components.mjs +199 -0
- package/dist/style.css +1 -1
- package/package.json +2 -4
- package/dist/components/accordion/Accordion.js +0 -34
- package/dist/components/breadcrumb/Breadcrumb.js +0 -39
- package/dist/components/button/ArrowButton.js +0 -44
- package/dist/components/button/BaseButton.js +0 -42
- package/dist/components/button/BaseDecoratedButton.js +0 -32
- package/dist/components/button/BaseLinkButton.js +0 -44
- package/dist/components/button/Button.js +0 -29
- package/dist/components/button/DecoratedButton.js +0 -23
- package/dist/components/button/IconButton.js +0 -24
- package/dist/components/button/LinkButton.js +0 -10
- package/dist/components/checkbox/BaseCheckbox.js +0 -35
- package/dist/components/checkbox/Checkbox.js +0 -26
- package/dist/components/core/Core.js +0 -76
- package/dist/components/core/LightMode.js +0 -14
- package/dist/components/core/RiksTV.js +0 -43
- package/dist/components/core/Strim.js +0 -10
- package/dist/components/list/CheckmarkListItem.js +0 -36
- package/dist/components/list/CrossmarkListItem.js +0 -27
- package/dist/components/list/List.js +0 -28
- package/dist/components/list/ListItem.js +0 -19
- package/dist/components/list/OrderedListItem.js +0 -19
- package/dist/components/loader/Loader.js +0 -31
- package/dist/components/loader/RawLoader.js +0 -30
- package/dist/components/notificationDot/NotificationDot.js +0 -22
- package/dist/components/panel/Panel.js +0 -55
- package/dist/components/panel/Warning.js +0 -14
- package/dist/components/progress/CircularProgress.js +0 -87
- package/dist/components/progress/Progress.js +0 -42
- package/dist/components/spacing/Gutter.js +0 -13
- package/dist/components/spacing/GutterPadding.js +0 -13
- package/dist/components/textfield/TextField.js +0 -63
- package/dist/components/toggle/FieldSet.js +0 -29
- package/dist/components/toggle/RadioToggle.js +0 -30
- package/dist/components/toggleButton/ToggleButton.js +0 -64
- package/dist/components/toggleInlineButton/ToggleInlineButton.js +0 -48
- package/dist/components/toggleLinkButton/ToggleLinkButton.js +0 -55
- package/dist/components/typography/Typography.js +0 -67
- package/dist/shared-components.es.js +0 -213
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { forwardRef, useRef, useState } from "react";
|
|
2
|
-
import { B as BaseCheckbox } from "../checkbox/BaseCheckbox.js";
|
|
3
|
-
import { j as jsx } from "../core/RiksTV.js";
|
|
4
|
-
var toggleInlineButton = /* @__PURE__ */ (() => ".rds-toggle-inline-button{--border-color: var(--rds-toggle-collapsed);display:inline-block;user-select:none}.rds-toggle-inline-button__input{opacity:0;position:absolute}.rds-light .rds-toggle-inline-button__content{color:var(--rds-button-primary-fg)}\n")();
|
|
5
|
-
const ToggleInlineButton = forwardRef(({
|
|
6
|
-
defaultChecked,
|
|
7
|
-
lightBackground,
|
|
8
|
-
children,
|
|
9
|
-
onChange,
|
|
10
|
-
id,
|
|
11
|
-
className = "",
|
|
12
|
-
inputClassName = "",
|
|
13
|
-
labelClassName = "",
|
|
14
|
-
...rest
|
|
15
|
-
}, ref) => {
|
|
16
|
-
const internalRef = useRef(null);
|
|
17
|
-
const [isChecked, setIsChecked] = useState(!!defaultChecked);
|
|
18
|
-
const inputRef = ref || internalRef;
|
|
19
|
-
const handleChange = (e) => {
|
|
20
|
-
var _a;
|
|
21
|
-
if (typeof onChange === "function") {
|
|
22
|
-
onChange(e);
|
|
23
|
-
}
|
|
24
|
-
if (typeof inputRef !== "function") {
|
|
25
|
-
setIsChecked(!!((_a = inputRef.current) == null ? void 0 : _a.checked));
|
|
26
|
-
} else {
|
|
27
|
-
setIsChecked(!isChecked);
|
|
28
|
-
}
|
|
29
|
-
};
|
|
30
|
-
return /* @__PURE__ */ jsx(BaseCheckbox, {
|
|
31
|
-
id,
|
|
32
|
-
ref: inputRef,
|
|
33
|
-
onChange: handleChange,
|
|
34
|
-
checked: isChecked,
|
|
35
|
-
dataTestId: "toggle-inline-button__label",
|
|
36
|
-
containerClassName: `rds-toggle-inline-button ${className}`,
|
|
37
|
-
inputClassName: `rds-toggle-inline-button__input ${inputClassName}`,
|
|
38
|
-
labelClassName: `${lightBackground ? "rds-light" : ""} ${labelClassName}`,
|
|
39
|
-
...rest,
|
|
40
|
-
children: /* @__PURE__ */ jsx("span", {
|
|
41
|
-
"data-testid": "toggle-inline-button__label__text",
|
|
42
|
-
className: "rds-toggle-inline-button__content",
|
|
43
|
-
children
|
|
44
|
-
})
|
|
45
|
-
});
|
|
46
|
-
});
|
|
47
|
-
ToggleInlineButton.displayName = "ToggleInlineButton";
|
|
48
|
-
export { ToggleInlineButton as T };
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { forwardRef, useRef, useState } from "react";
|
|
2
|
-
import { B as BaseCheckbox } from "../checkbox/BaseCheckbox.js";
|
|
3
|
-
import { C as Chevron } from "../icons/Chevron.js";
|
|
4
|
-
import { j as jsx, a as jsxs } from "../core/RiksTV.js";
|
|
5
|
-
var toggleLinkButton = /* @__PURE__ */ (() => ".rds-toggle-link-button{--border-color: var(--rds-toggle-collapsed);display:inline-block;user-select:none}.rds-toggle-link-button__input{opacity:0;position:absolute}.rds-toggle-link-button__input:checked+.rds-toggle-link-button__label{--chevron-direction: 180deg;--border-color: var(--rds-toggle-expanded)}.rds-toggle-link-button__label__content{display:flex;align-items:center}.rds-toggle-link-button__label__content>span:first-child{border-bottom:2px solid var(--border-color);padding-bottom:7px}.rds-toggle-link-button__label__chevron{padding-left:var(--rds-spacing--8)}.rds-toggle-link-button__label__chevron>svg{height:100%;width:20px;transform:rotate(var(--chevron-direction));transition:transform 125ms ease-in-out;transform-origin:center}.rds-toggle-link-button__label__chevron>svg>path{fill:currentColor}.rds-light{--border-color: var(--rds-foreground-tertiary)}.rds-light .rds-toggle-link-button__input:checked+.rds-toggle-link-button__label{--border-color: var(--rds-background-secondary)}.rds-light .rds-toggle-link-button__label{color:var(--rds-button-primary-fg)}\n")();
|
|
6
|
-
const ToggleLinkButton = forwardRef(({
|
|
7
|
-
defaultChecked,
|
|
8
|
-
toggledContentId,
|
|
9
|
-
iconClass = "",
|
|
10
|
-
lightBackground,
|
|
11
|
-
children,
|
|
12
|
-
onChange,
|
|
13
|
-
id,
|
|
14
|
-
className = "",
|
|
15
|
-
...rest
|
|
16
|
-
}, ref) => {
|
|
17
|
-
const internalRef = useRef(null);
|
|
18
|
-
const [isChecked, setIsChecked] = useState(!!defaultChecked);
|
|
19
|
-
const inputRef = ref || internalRef;
|
|
20
|
-
const handleChange = (e) => {
|
|
21
|
-
var _a;
|
|
22
|
-
if (typeof onChange === "function") {
|
|
23
|
-
onChange(e);
|
|
24
|
-
}
|
|
25
|
-
if (typeof inputRef !== "function") {
|
|
26
|
-
setIsChecked(!!((_a = inputRef.current) == null ? void 0 : _a.checked));
|
|
27
|
-
} else {
|
|
28
|
-
setIsChecked(!isChecked);
|
|
29
|
-
}
|
|
30
|
-
};
|
|
31
|
-
return /* @__PURE__ */ jsx(BaseCheckbox, {
|
|
32
|
-
id,
|
|
33
|
-
ref: inputRef,
|
|
34
|
-
onChange: handleChange,
|
|
35
|
-
checked: isChecked,
|
|
36
|
-
"aria-controls": toggledContentId,
|
|
37
|
-
dataTestId: "toggle-link-button__label",
|
|
38
|
-
containerClassName: "rds-toggle-link-button",
|
|
39
|
-
inputClassName: "rds-toggle-link-button__input",
|
|
40
|
-
labelClassName: `rds-toggle-link-button__label ${lightBackground ? "rds-light" : ""} ${className}`,
|
|
41
|
-
...rest,
|
|
42
|
-
children: /* @__PURE__ */ jsxs("span", {
|
|
43
|
-
className: "rds-toggle-link-button__label__content",
|
|
44
|
-
children: [/* @__PURE__ */ jsx("span", {
|
|
45
|
-
"data-testid": `toggle-link-button__label__text`,
|
|
46
|
-
children
|
|
47
|
-
}), /* @__PURE__ */ jsx("span", {
|
|
48
|
-
className: `rds-toggle-link-button__label__chevron ${iconClass}`,
|
|
49
|
-
children: /* @__PURE__ */ jsx(Chevron, {})
|
|
50
|
-
})]
|
|
51
|
-
})
|
|
52
|
-
});
|
|
53
|
-
});
|
|
54
|
-
ToggleLinkButton.displayName = "ToggleLinkButton";
|
|
55
|
-
export { ToggleLinkButton as T };
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import { forwardRef } from "react";
|
|
2
|
-
import { j as jsx } from "../core/RiksTV.js";
|
|
3
|
-
var typography = /* @__PURE__ */ (() => ".rtv{--sub-body-color--light: var(--rds-foreground-solid-soft)}.strm{--sub-body-color--light: var(--rds-button-primary-fg)}.rds-link{font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;color:var(--rds-foreground-primary);transition:75ms ease color}.rds-link:visited{color:var(--rds-foreground-primary)}.rds-link:hover{text-decoration-thickness:2px;color:var(--rds-heading-accent)}.rds-link:active{text-decoration:none;text-shadow:0px 0px 1px var(--rds-foreground-primary)}.rds-link--active,.rds-link[aria-current=page]{text-shadow:0px 0px 1px var(--rds-foreground-primary)}.rds-link:focus::-moz-focus-inner{border-style:none;outline:0}.rds-link:focus button::-moz-focus-inner,.rds-link:focus [type=button]::-moz-focus-inner,.rds-link:focus [type=reset]::-moz-focus-inner,.rds-link:focus [type=submit]::-moz-focus-inner{border-style:none}.rds-link:focus input[type=button]::-moz-focus-inner{outline:0}html:not([data-mousenavigation]):not([data-touchnavigation]) .rds-link:focus{outline-offset:2px;outline:2px solid var(--rds-feedback-info);transition:outline-offset .25s ease}.rds-display-title{font-family:var(--rds-font-family-lg-headlines);font-size:clamp(2.5rem,calc(1.4285714286rem + 2.9761904762vw),5rem);font-weight:400;line-height:1.2;color:var(--rds-foreground-primary)}.rds-title-1{font-family:var(--rds-font-family-lg-headlines);font-size:clamp(1.875rem,calc(1.1785714286rem + 1.9345238095vw),3.5rem);font-weight:400;line-height:1.2;color:var(--rds-foreground-primary)}.rds-title-2{font-family:var(--rds-font-family-lg-headlines);font-size:clamp(1.5rem,calc(1.0714285714rem + 1.1904761905vw),2.5rem);font-weight:400;line-height:1.2;color:var(--rds-foreground-primary)}.rds-sub-title-2{font-family:var(--rds-font-family-lg-headlines);font-size:clamp(1.375rem,calc(1.1071428571rem + .744047619vw),2rem);font-weight:400;line-height:1.2;color:var(--rds-foreground-primary)}.rds-title-3{font-family:var(--rds-font-family-m-headlines);font-size:clamp(1.25rem,calc(1.1964285714rem + .1488095238vw),1.375rem);font-weight:400;line-height:1.2;color:var(--rds-heading-accent)}.rds-title-4{font-family:var(--rds-font-family-m-headlines);font-size:clamp(1rem,calc(.9464285714rem + .1488095238vw),1.125rem);font-weight:400;line-height:1.2;color:var(--rds-foreground-primary)}.rds-lead{font-family:var(--rds-font-family-lead);font-size:clamp(1rem,calc(.9464285714rem + .1488095238vw),1.125rem);font-weight:400;line-height:1.5;color:var(--rds-foreground-primary)}.rds-body,.rds-span{font-family:var(--rds-font-family-body);font-size:clamp(1rem,calc(.9464285714rem + .1488095238vw),1.125rem);font-weight:400;line-height:1.5;color:var(--rds-foreground-primary)}.rds-sub-body{font-family:var(--rds-font-family-body);font-size:clamp(.875rem,calc(.8214285714rem + .1488095238vw),1rem);font-weight:400;line-height:1.5;color:var(--rds-foreground-primary)}.rds-tag{font-family:var(--rds-font-family-headlines);text-transform:uppercase;font-size:clamp(.75rem,calc(.6964285714rem + .1488095238vw),.875rem);line-height:1.2;font-weight:400;letter-spacing:.09375rem;color:var(--rds-foreground-primary)}.rds-bold{font-family:var(--rds-font-family-headlines);font-size:clamp(1.125rem,calc(1.125rem + 0vw),1.125rem);font-weight:400;line-height:1.5;color:var(--rds-foreground-primary)}.rds-meta{font-family:var(--rds-font-family-body);font-size:clamp(.75rem,calc(.6964285714rem + .1488095238vw),.875rem);font-weight:400;line-height:1.5;color:var(--rds-foreground-overlay-heavy)}.rds-link--light,.rds-light .rds-link{color:var(--rds-background-primary)}.rds-link--light:hover,.rds-light .rds-link:hover{color:var(--rds-foreground-tertiary)}.rds-link--light:active,.rds-light .rds-link:active{text-shadow:0px 0px 1px var(--rds-background-primary)}.rds-link--light:visited,.rds-light .rds-link:visited{color:var(--rds-background-primary)}.rds-link--light--active,.rds-link--light[aria-current=page],.rds-light [aria-current=page].rds-link{text-shadow:0px 0px 1px var(--rds-background-primary)}.rds-light .rds-display-title,.rds-display-title--light{color:var(--rds-foreground-tertiary)}.rds-light .rds-title-1,.rds-title-1--light,.rds-light .rds-title-2,.rds-title-2--light,.rds-light .rds-title-3,.rds-title-3--light,.rds-light .rds-title-4,.rds-title-4--light,.rds-light .rds-sub-title-2,.rds-sub-title-2--light,.rds-light .rds-lead,.rds-lead--light{color:var(--rds-button-primary-fg)}.rds-light .rds-body,.rds-light .rds-span,.rds-body--light{color:var(--rds-background-primary)}.rds-light .rds-sub-body,.rds-sub-body--light{color:var(--sub-body-color--light)}.rds-light .rds-tag,.rds-tag--light,.rds-light .rds-bold,.rds-bold--light{color:var(--rds-background-primary)}.rds-light .rds-meta,.rds-meta--light{color:var(--rds-button-primary-fg)}\n")();
|
|
4
|
-
const typographyFactory = (factoryProps) => forwardRef(({
|
|
5
|
-
children,
|
|
6
|
-
lookLike = factoryProps.lookLike,
|
|
7
|
-
className = "",
|
|
8
|
-
lightBackground = false,
|
|
9
|
-
...props
|
|
10
|
-
}, ref) => {
|
|
11
|
-
const C = factoryProps.semanticElement;
|
|
12
|
-
return /* @__PURE__ */ jsx(C, {
|
|
13
|
-
className: `rds-${lookLike} ${lightBackground ? `rds-${lookLike}--light` : ""} ${className}`,
|
|
14
|
-
...props,
|
|
15
|
-
ref,
|
|
16
|
-
children
|
|
17
|
-
});
|
|
18
|
-
});
|
|
19
|
-
const DisplayTitle = typographyFactory({
|
|
20
|
-
semanticElement: "h1",
|
|
21
|
-
lookLike: "display-title"
|
|
22
|
-
});
|
|
23
|
-
const H1 = typographyFactory({
|
|
24
|
-
semanticElement: "h1",
|
|
25
|
-
lookLike: "title-1"
|
|
26
|
-
});
|
|
27
|
-
const H2 = typographyFactory({
|
|
28
|
-
semanticElement: "h2",
|
|
29
|
-
lookLike: "title-2"
|
|
30
|
-
});
|
|
31
|
-
const H3 = typographyFactory({
|
|
32
|
-
semanticElement: "h3",
|
|
33
|
-
lookLike: "title-3"
|
|
34
|
-
});
|
|
35
|
-
const H4 = typographyFactory({
|
|
36
|
-
semanticElement: "h4",
|
|
37
|
-
lookLike: "title-4"
|
|
38
|
-
});
|
|
39
|
-
const Lead = typographyFactory({
|
|
40
|
-
semanticElement: "p",
|
|
41
|
-
lookLike: "lead"
|
|
42
|
-
});
|
|
43
|
-
const Body = typographyFactory({
|
|
44
|
-
semanticElement: "p",
|
|
45
|
-
lookLike: "body"
|
|
46
|
-
});
|
|
47
|
-
const SubBody = typographyFactory({
|
|
48
|
-
semanticElement: "p",
|
|
49
|
-
lookLike: "sub-body"
|
|
50
|
-
});
|
|
51
|
-
const Tag = typographyFactory({
|
|
52
|
-
semanticElement: "span",
|
|
53
|
-
lookLike: "tag"
|
|
54
|
-
});
|
|
55
|
-
const Bold = typographyFactory({
|
|
56
|
-
semanticElement: "strong",
|
|
57
|
-
lookLike: "bold"
|
|
58
|
-
});
|
|
59
|
-
const Meta = typographyFactory({
|
|
60
|
-
semanticElement: "span",
|
|
61
|
-
lookLike: "meta"
|
|
62
|
-
});
|
|
63
|
-
const Span = typographyFactory({
|
|
64
|
-
semanticElement: "span",
|
|
65
|
-
lookLike: "span"
|
|
66
|
-
});
|
|
67
|
-
export { Body as B, DisplayTitle as D, H1 as H, Lead as L, Meta as M, Span as S, Tag as T, H2 as a, H3 as b, H4 as c, Bold as d, SubBody as e };
|
|
@@ -1,213 +0,0 @@
|
|
|
1
|
-
export { R as RiksTVProvider } from "./components/core/RiksTV.js";
|
|
2
|
-
export { S as StrimProvider } from "./components/core/Strim.js";
|
|
3
|
-
export { L as LightMode } from "./components/core/LightMode.js";
|
|
4
|
-
export { G as Gutter } from "./components/spacing/Gutter.js";
|
|
5
|
-
export { G as GutterPadding } from "./components/spacing/GutterPadding.js";
|
|
6
|
-
export { N as NotificationDot } from "./components/notificationDot/NotificationDot.js";
|
|
7
|
-
export { A as Accordion } from "./components/accordion/Accordion.js";
|
|
8
|
-
export { P as Panel } from "./components/panel/Panel.js";
|
|
9
|
-
export { B as Breadcrumb, a as BreadcrumbCurrent } from "./components/breadcrumb/Breadcrumb.js";
|
|
10
|
-
export { P as Progress } from "./components/progress/Progress.js";
|
|
11
|
-
export { L as Loader } from "./components/loader/Loader.js";
|
|
12
|
-
export { C as CircularProgress } from "./components/progress/CircularProgress.js";
|
|
13
|
-
export { P as PrimaryButton, S as SecondaryButton, T as TertiaryButton } from "./components/button/Button.js";
|
|
14
|
-
export { P as PrimaryArrowButton, S as SecondaryArrowButton, T as TertiaryArrowButton } from "./components/button/ArrowButton.js";
|
|
15
|
-
export { P as PrimaryIconButton, S as SecondaryIconButton, T as TertiaryIconButton } from "./components/button/IconButton.js";
|
|
16
|
-
export { T as ToggleButton } from "./components/toggleButton/ToggleButton.js";
|
|
17
|
-
export { T as ToggleInlineButton } from "./components/toggleInlineButton/ToggleInlineButton.js";
|
|
18
|
-
export { T as ToggleLinkButton } from "./components/toggleLinkButton/ToggleLinkButton.js";
|
|
19
|
-
export { C as Checkbox } from "./components/checkbox/Checkbox.js";
|
|
20
|
-
export { a as RadioToggleInput } from "./components/toggle/RadioToggle.js";
|
|
21
|
-
export { F as FieldSet } from "./components/toggle/FieldSet.js";
|
|
22
|
-
export { T as TextField } from "./components/textfield/TextField.js";
|
|
23
|
-
export { B as Body, d as Bold, D as DisplayTitle, H as H1, a as H2, b as H3, c as H4, L as Lead, M as Meta, S as Span, e as SubBody, T as Tag } from "./components/typography/Typography.js";
|
|
24
|
-
export { L as List } from "./components/list/List.js";
|
|
25
|
-
export { C as CheckmarkListItem } from "./components/list/CheckmarkListItem.js";
|
|
26
|
-
export { L as ListItem } from "./components/list/ListItem.js";
|
|
27
|
-
export { C as CrossmarkListItem } from "./components/list/CrossmarkListItem.js";
|
|
28
|
-
export { O as OrderedListItem } from "./components/list/OrderedListItem.js";
|
|
29
|
-
import { useState, useEffect, useRef, useCallback, useLayoutEffect } from "react";
|
|
30
|
-
export { L as LinkButton } from "./components/button/LinkButton.js";
|
|
31
|
-
export { B as BaseLinkButton } from "./components/button/BaseLinkButton.js";
|
|
32
|
-
import "./components/core/Core.js";
|
|
33
|
-
import "./components/icons/Chevron.js";
|
|
34
|
-
import "./components/panel/Success.js";
|
|
35
|
-
import "./components/panel/Warning.js";
|
|
36
|
-
import "./components/panel/Info.js";
|
|
37
|
-
import "./components/loader/RawLoader.js";
|
|
38
|
-
import "./components/button/BaseButton.js";
|
|
39
|
-
import "./components/button/DecoratedButton.js";
|
|
40
|
-
import "./components/button/BaseDecoratedButton.js";
|
|
41
|
-
import "./components/icons/Arrow.js";
|
|
42
|
-
import "./components/checkbox/BaseCheckbox.js";
|
|
43
|
-
const PREFERS_REDUCED_MOTION = "(prefers-reduced-motion: reduce)";
|
|
44
|
-
const getInitialMediaQueryMatch = (mediaQuery) => {
|
|
45
|
-
if (typeof window !== "undefined" && window.matchMedia) {
|
|
46
|
-
return window.matchMedia(mediaQuery).matches;
|
|
47
|
-
}
|
|
48
|
-
return false;
|
|
49
|
-
};
|
|
50
|
-
const addMediaQueryListener = (mq, callback) => {
|
|
51
|
-
if (typeof mq.addEventListener !== "undefined") {
|
|
52
|
-
mq.addEventListener("change", callback);
|
|
53
|
-
}
|
|
54
|
-
};
|
|
55
|
-
const useBrowserPreferences = () => {
|
|
56
|
-
const [prefersReducedMotion, setPrefersReducedMotion] = useState(getInitialMediaQueryMatch(PREFERS_REDUCED_MOTION));
|
|
57
|
-
useEffect(() => {
|
|
58
|
-
if (typeof window !== "undefined" && window.matchMedia) {
|
|
59
|
-
addMediaQueryListener(window.matchMedia(PREFERS_REDUCED_MOTION), (e2) => {
|
|
60
|
-
setPrefersReducedMotion(e2.matches);
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
}, []);
|
|
64
|
-
return { prefersReducedMotion };
|
|
65
|
-
};
|
|
66
|
-
function useAnimatedHeight(isOpen, options) {
|
|
67
|
-
const raf1 = useRef();
|
|
68
|
-
const raf2 = useRef();
|
|
69
|
-
const elementRef = useRef(null);
|
|
70
|
-
const firstRender = useRef(true);
|
|
71
|
-
const { prefersReducedMotion } = useBrowserPreferences();
|
|
72
|
-
function handleTransitionEnd(event) {
|
|
73
|
-
var _a;
|
|
74
|
-
const element = elementRef.current;
|
|
75
|
-
if (element && event.target === element) {
|
|
76
|
-
element.removeAttribute("style");
|
|
77
|
-
(_a = options == null ? void 0 : options.onTransitionEnd) == null ? void 0 : _a.call(options, isOpen);
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
const runAnimation = useCallback(() => {
|
|
81
|
-
var _a, _b;
|
|
82
|
-
if (firstRender.current) {
|
|
83
|
-
return;
|
|
84
|
-
}
|
|
85
|
-
(_a = options == null ? void 0 : options.onTransitionStart) == null ? void 0 : _a.call(options, isOpen);
|
|
86
|
-
if (prefersReducedMotion) {
|
|
87
|
-
(_b = options == null ? void 0 : options.onTransitionEnd) == null ? void 0 : _b.call(options, isOpen);
|
|
88
|
-
return;
|
|
89
|
-
}
|
|
90
|
-
const element = elementRef.current;
|
|
91
|
-
if (element) {
|
|
92
|
-
element.style.display = "block";
|
|
93
|
-
element.style.overflow = "hidden";
|
|
94
|
-
if (isOpen) {
|
|
95
|
-
element.style.height = "0";
|
|
96
|
-
element.style.height = `${element.scrollHeight}px`;
|
|
97
|
-
} else {
|
|
98
|
-
if (element.scrollHeight === 0) {
|
|
99
|
-
element.removeAttribute("style");
|
|
100
|
-
return;
|
|
101
|
-
}
|
|
102
|
-
element.style.height = `${element.scrollHeight}px`;
|
|
103
|
-
raf1.current = requestAnimationFrame(() => {
|
|
104
|
-
raf2.current = requestAnimationFrame(() => {
|
|
105
|
-
element.style.height = `${0}px`;
|
|
106
|
-
});
|
|
107
|
-
});
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
}, [isOpen, options, prefersReducedMotion]);
|
|
111
|
-
useLayoutEffect(() => {
|
|
112
|
-
runAnimation();
|
|
113
|
-
}, [isOpen, runAnimation]);
|
|
114
|
-
useEffect(() => {
|
|
115
|
-
const element = elementRef.current;
|
|
116
|
-
if (element) {
|
|
117
|
-
element.addEventListener("transitionend", handleTransitionEnd);
|
|
118
|
-
}
|
|
119
|
-
return () => {
|
|
120
|
-
if (element) {
|
|
121
|
-
element.removeEventListener("transitionend", handleTransitionEnd);
|
|
122
|
-
}
|
|
123
|
-
};
|
|
124
|
-
}, [isOpen]);
|
|
125
|
-
useEffect(() => {
|
|
126
|
-
const r1 = raf1.current;
|
|
127
|
-
const r2 = raf2.current;
|
|
128
|
-
firstRender.current = false;
|
|
129
|
-
return () => {
|
|
130
|
-
r1 && cancelAnimationFrame(r1);
|
|
131
|
-
r2 && cancelAnimationFrame(r2);
|
|
132
|
-
};
|
|
133
|
-
}, [raf1, raf2]);
|
|
134
|
-
return [elementRef, runAnimation];
|
|
135
|
-
}
|
|
136
|
-
const useClickOutsideListener = ({ ref, callback, condition = true }) => {
|
|
137
|
-
const handleClick = useCallback((e2) => {
|
|
138
|
-
if ((ref == null ? void 0 : ref.current) && !ref.current.contains(e2.target)) {
|
|
139
|
-
callback(e2);
|
|
140
|
-
}
|
|
141
|
-
}, [callback, ref]);
|
|
142
|
-
useEffect(() => {
|
|
143
|
-
if (ref && condition) {
|
|
144
|
-
document && document.addEventListener("click", handleClick);
|
|
145
|
-
}
|
|
146
|
-
return () => {
|
|
147
|
-
document && document.removeEventListener("click", handleClick);
|
|
148
|
-
};
|
|
149
|
-
}, [ref, condition, handleClick]);
|
|
150
|
-
};
|
|
151
|
-
const intersectionObserverSupported = (() => {
|
|
152
|
-
const entry = globalThis.IntersectionObserverEntry;
|
|
153
|
-
return "IntersectionObserver" in globalThis && entry && "isIntersecting" in entry.prototype;
|
|
154
|
-
})();
|
|
155
|
-
const noop = () => void 0;
|
|
156
|
-
const useIntersectionObserver = (callback, options = {}, fallback = noop, enabled = true) => {
|
|
157
|
-
const [triggerElement, setTriggerElement] = useState(null);
|
|
158
|
-
const observedElementRef = useCallback((refNode) => setTriggerElement(refNode), [setTriggerElement]);
|
|
159
|
-
const optionsRef = useRef(options);
|
|
160
|
-
const observerRef = useRef(null);
|
|
161
|
-
useEffect(() => {
|
|
162
|
-
if (!intersectionObserverSupported) {
|
|
163
|
-
fallback == null ? void 0 : fallback();
|
|
164
|
-
return;
|
|
165
|
-
}
|
|
166
|
-
let observer = observerRef.current;
|
|
167
|
-
observer == null ? void 0 : observer.disconnect();
|
|
168
|
-
if (triggerElement && enabled) {
|
|
169
|
-
observer = new IntersectionObserver(callback, optionsRef.current);
|
|
170
|
-
observer.observe(triggerElement);
|
|
171
|
-
}
|
|
172
|
-
return () => {
|
|
173
|
-
observer == null ? void 0 : observer.disconnect();
|
|
174
|
-
};
|
|
175
|
-
}, [triggerElement, callback, fallback, enabled]);
|
|
176
|
-
return [observedElementRef];
|
|
177
|
-
};
|
|
178
|
-
const useElementVisible = (options = { rootMargin: "150px" }, enabled = true) => {
|
|
179
|
-
const [isVisible, setIsVisible] = useState(false);
|
|
180
|
-
const [targetRef] = useIntersectionObserver((items) => {
|
|
181
|
-
const isIntersecting = items.some((i) => i.isIntersecting);
|
|
182
|
-
setIsVisible(isIntersecting);
|
|
183
|
-
}, options, void 0, enabled);
|
|
184
|
-
return [targetRef, isVisible];
|
|
185
|
-
};
|
|
186
|
-
const hasWindowWithMutationObserver = () => typeof window !== "undefined" && typeof MutationObserver !== "undefined";
|
|
187
|
-
const useMutationObserver = (target, onObservation, config) => {
|
|
188
|
-
const observerRef = useRef(null);
|
|
189
|
-
useEffect(() => {
|
|
190
|
-
let observer = observerRef.current;
|
|
191
|
-
if (hasWindowWithMutationObserver()) {
|
|
192
|
-
if (observer) {
|
|
193
|
-
observer.disconnect();
|
|
194
|
-
}
|
|
195
|
-
observer = new MutationObserver(onObservation);
|
|
196
|
-
if (target) {
|
|
197
|
-
if ("current" in target) {
|
|
198
|
-
if (target.current) {
|
|
199
|
-
observer.observe(target.current, config);
|
|
200
|
-
}
|
|
201
|
-
} else {
|
|
202
|
-
observer.observe(target, config);
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
return () => {
|
|
207
|
-
if (hasWindowWithMutationObserver() && observer) {
|
|
208
|
-
observer.disconnect();
|
|
209
|
-
}
|
|
210
|
-
};
|
|
211
|
-
}, [target, onObservation, config]);
|
|
212
|
-
};
|
|
213
|
-
export { useAnimatedHeight, useBrowserPreferences, useClickOutsideListener, useElementVisible, useIntersectionObserver, useMutationObserver };
|