@dnanpm/ui-components 0.9.0 → 0.10.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/README.md +13 -0
- package/dist/components/Accordion/Accordion.css +5 -1
- package/dist/components/AccordionItem/AccordionItem.cjs +4 -4
- package/dist/components/AccordionItem/AccordionItem.cjs.map +1 -1
- package/dist/components/AccordionItem/AccordionItem.css +4 -1
- package/dist/components/AccordionItem/AccordionItem.d.ts.map +1 -1
- package/dist/components/AccordionItem/AccordionItem.js +2 -2
- package/dist/components/AccordionItem/AccordionItem.js.map +1 -1
- package/dist/components/Avatar/Avatar.cjs +83 -0
- package/dist/components/Avatar/Avatar.cjs.map +1 -0
- package/dist/components/Avatar/Avatar.css +188 -0
- package/dist/components/Avatar/Avatar.d.ts +3 -0
- package/dist/components/Avatar/Avatar.d.ts.map +1 -0
- package/dist/components/Avatar/Avatar.js +83 -0
- package/dist/components/Avatar/Avatar.js.map +1 -0
- package/dist/components/Avatar/Avatar.module.css.cjs +40 -0
- package/dist/components/Avatar/Avatar.module.css.cjs.map +1 -0
- package/dist/components/Avatar/Avatar.module.css.js +40 -0
- package/dist/components/Avatar/Avatar.module.css.js.map +1 -0
- package/dist/components/Avatar/Avatar.types.d.ts +66 -0
- package/dist/components/Avatar/Avatar.types.d.ts.map +1 -0
- package/dist/components/Avatar/Avatar.utils.cjs +17 -0
- package/dist/components/Avatar/Avatar.utils.cjs.map +1 -0
- package/dist/components/Avatar/Avatar.utils.d.ts +6 -0
- package/dist/components/Avatar/Avatar.utils.d.ts.map +1 -0
- package/dist/components/Avatar/Avatar.utils.js +17 -0
- package/dist/components/Avatar/Avatar.utils.js.map +1 -0
- package/dist/components/Avatar/index.d.ts +3 -0
- package/dist/components/Avatar/index.d.ts.map +1 -0
- package/dist/components/Breadcrumb/Breadcrumb.cjs +9 -12
- package/dist/components/Breadcrumb/Breadcrumb.cjs.map +1 -1
- package/dist/components/Breadcrumb/Breadcrumb.css +16 -16
- package/dist/components/Breadcrumb/Breadcrumb.d.ts.map +1 -1
- package/dist/components/Breadcrumb/Breadcrumb.js +2 -5
- package/dist/components/Breadcrumb/Breadcrumb.js.map +1 -1
- package/dist/components/Breadcrumb/Breadcrumb.module.css.cjs +5 -8
- package/dist/components/Breadcrumb/Breadcrumb.module.css.cjs.map +1 -1
- package/dist/components/Breadcrumb/Breadcrumb.module.css.js +5 -8
- package/dist/components/Breadcrumb/Breadcrumb.module.css.js.map +1 -1
- package/dist/components/Button/Button.cjs +29 -3
- package/dist/components/Button/Button.cjs.map +1 -1
- package/dist/components/Button/Button.css +78 -31
- package/dist/components/Button/Button.d.ts +1 -1
- package/dist/components/Button/Button.d.ts.map +1 -1
- package/dist/components/Button/Button.js +28 -2
- package/dist/components/Button/Button.js.map +1 -1
- package/dist/components/Button/Button.module.css.cjs +19 -11
- package/dist/components/Button/Button.module.css.cjs.map +1 -1
- package/dist/components/Button/Button.module.css.js +19 -11
- package/dist/components/Button/Button.module.css.js.map +1 -1
- package/dist/components/Button/Button.types.d.ts +20 -3
- package/dist/components/Button/Button.types.d.ts.map +1 -1
- package/dist/components/Button/index.d.ts +1 -1
- package/dist/components/Button/index.d.ts.map +1 -1
- package/dist/components/ButtonCard/ButtonCard.cjs +19 -14
- package/dist/components/ButtonCard/ButtonCard.cjs.map +1 -1
- package/dist/components/ButtonCard/ButtonCard.css +63 -20
- package/dist/components/ButtonCard/ButtonCard.d.ts +2 -1
- package/dist/components/ButtonCard/ButtonCard.d.ts.map +1 -1
- package/dist/components/ButtonCard/ButtonCard.js +17 -12
- package/dist/components/ButtonCard/ButtonCard.js.map +1 -1
- package/dist/components/ButtonCard/ButtonCard.module.css.cjs +14 -12
- package/dist/components/ButtonCard/ButtonCard.module.css.cjs.map +1 -1
- package/dist/components/ButtonCard/ButtonCard.module.css.js +14 -12
- package/dist/components/ButtonCard/ButtonCard.module.css.js.map +1 -1
- package/dist/components/ButtonCard/ButtonCard.types.d.ts +3 -2
- package/dist/components/ButtonCard/ButtonCard.types.d.ts.map +1 -1
- package/dist/components/Checkbox/Checkbox.cjs +105 -0
- package/dist/components/Checkbox/Checkbox.cjs.map +1 -0
- package/dist/components/Checkbox/Checkbox.css +323 -0
- package/dist/components/Checkbox/Checkbox.d.ts +3 -0
- package/dist/components/Checkbox/Checkbox.d.ts.map +1 -0
- package/dist/components/Checkbox/Checkbox.js +105 -0
- package/dist/components/Checkbox/Checkbox.js.map +1 -0
- package/dist/components/Checkbox/Checkbox.module.css.cjs +35 -0
- package/dist/components/Checkbox/Checkbox.module.css.cjs.map +1 -0
- package/dist/components/Checkbox/Checkbox.module.css.js +35 -0
- package/dist/components/Checkbox/Checkbox.module.css.js.map +1 -0
- package/dist/components/Checkbox/Checkbox.types.d.ts +47 -0
- package/dist/components/Checkbox/Checkbox.types.d.ts.map +1 -0
- package/dist/components/Checkbox/index.d.ts +3 -0
- package/dist/components/Checkbox/index.d.ts.map +1 -0
- package/dist/components/ContentCard/ContentCard.cjs +8 -7
- package/dist/components/ContentCard/ContentCard.cjs.map +1 -1
- package/dist/components/ContentCard/ContentCard.css +39 -34
- package/dist/components/ContentCard/ContentCard.d.ts.map +1 -1
- package/dist/components/ContentCard/ContentCard.js +3 -2
- package/dist/components/ContentCard/ContentCard.js.map +1 -1
- package/dist/components/ContentCard/ContentCard.module.css.cjs +18 -18
- package/dist/components/ContentCard/ContentCard.module.css.js +18 -18
- package/dist/components/ContentCard/ContentCard.types.d.ts +2 -1
- package/dist/components/ContentCard/ContentCard.types.d.ts.map +1 -1
- package/dist/components/Drawer/Drawer.cjs +15 -7
- package/dist/components/Drawer/Drawer.cjs.map +1 -1
- package/dist/components/Drawer/Drawer.css +48 -45
- package/dist/components/Drawer/Drawer.d.ts.map +1 -1
- package/dist/components/Drawer/Drawer.js +12 -4
- package/dist/components/Drawer/Drawer.js.map +1 -1
- package/dist/components/Drawer/Drawer.module.css.cjs +16 -16
- package/dist/components/Drawer/Drawer.module.css.js +16 -16
- package/dist/components/Footer/Footer.cjs +8 -9
- package/dist/components/Footer/Footer.cjs.map +1 -1
- package/dist/components/Footer/Footer.css +87 -83
- package/dist/components/Footer/Footer.d.ts.map +1 -1
- package/dist/components/Footer/Footer.js +1 -2
- package/dist/components/Footer/Footer.js.map +1 -1
- package/dist/components/Footer/Footer.module.css.cjs +39 -39
- package/dist/components/Footer/Footer.module.css.js +39 -39
- package/dist/components/FunctionButton/FunctionButton.cjs +2 -2
- package/dist/components/FunctionButton/FunctionButton.cjs.map +1 -1
- package/dist/components/FunctionButton/FunctionButton.css +5 -1
- package/dist/components/FunctionButton/FunctionButton.js +1 -1
- package/dist/components/FunctionButton/FunctionButton.js.map +1 -1
- package/dist/components/Hero/Hero.cjs +30 -27
- package/dist/components/Hero/Hero.cjs.map +1 -1
- package/dist/components/Hero/Hero.css +49 -44
- package/dist/components/Hero/Hero.d.ts +1 -1
- package/dist/components/Hero/Hero.d.ts.map +1 -1
- package/dist/components/Hero/Hero.js +30 -27
- package/dist/components/Hero/Hero.js.map +1 -1
- package/dist/components/Hero/Hero.module.css.cjs +18 -18
- package/dist/components/Hero/Hero.module.css.js +18 -18
- package/dist/components/Hero/Hero.types.d.ts +2 -6
- package/dist/components/Hero/Hero.types.d.ts.map +1 -1
- package/dist/components/IconButton/IconButton.cjs +3 -4
- package/dist/components/IconButton/IconButton.cjs.map +1 -1
- package/dist/components/IconButton/IconButton.css +5 -1
- package/dist/components/IconButton/IconButton.d.ts.map +1 -1
- package/dist/components/IconButton/IconButton.js +1 -2
- package/dist/components/IconButton/IconButton.js.map +1 -1
- package/dist/components/Label/Label.css +5 -1
- package/dist/components/MainNavigation/MainNavigation.cjs +216 -162
- package/dist/components/MainNavigation/MainNavigation.cjs.map +1 -1
- package/dist/components/MainNavigation/MainNavigation.css +206 -183
- package/dist/components/MainNavigation/MainNavigation.d.ts +1 -1
- package/dist/components/MainNavigation/MainNavigation.d.ts.map +1 -1
- package/dist/components/MainNavigation/MainNavigation.js +177 -123
- package/dist/components/MainNavigation/MainNavigation.js.map +1 -1
- package/dist/components/MainNavigation/MainNavigation.module.css.cjs +80 -78
- package/dist/components/MainNavigation/MainNavigation.module.css.cjs.map +1 -1
- package/dist/components/MainNavigation/MainNavigation.module.css.js +80 -78
- package/dist/components/MainNavigation/MainNavigation.module.css.js.map +1 -1
- package/dist/components/MainNavigation/MainNavigation.types.d.ts +0 -13
- package/dist/components/MainNavigation/MainNavigation.types.d.ts.map +1 -1
- package/dist/components/MainNavigation/MainNavigation.utils.cjs +8 -4
- package/dist/components/MainNavigation/MainNavigation.utils.cjs.map +1 -1
- package/dist/components/MainNavigation/MainNavigation.utils.d.ts +1 -0
- package/dist/components/MainNavigation/MainNavigation.utils.d.ts.map +1 -1
- package/dist/components/MainNavigation/MainNavigation.utils.js +8 -4
- package/dist/components/MainNavigation/MainNavigation.utils.js.map +1 -1
- package/dist/components/Modal/Modal.cjs +14 -6
- package/dist/components/Modal/Modal.cjs.map +1 -1
- package/dist/components/Modal/Modal.css +44 -40
- package/dist/components/Modal/Modal.d.ts.map +1 -1
- package/dist/components/Modal/Modal.js +12 -4
- package/dist/components/Modal/Modal.js.map +1 -1
- package/dist/components/Modal/Modal.module.css.cjs +18 -18
- package/dist/components/Modal/Modal.module.css.js +18 -18
- package/dist/components/Notification/Notification.cjs +3 -2
- package/dist/components/Notification/Notification.cjs.map +1 -1
- package/dist/components/Notification/Notification.css +16 -11
- package/dist/components/Notification/Notification.d.ts.map +1 -1
- package/dist/components/Notification/Notification.js +2 -1
- package/dist/components/Notification/Notification.js.map +1 -1
- package/dist/components/Notification/Notification.module.css.cjs +9 -9
- package/dist/components/Notification/Notification.module.css.js +9 -9
- package/dist/components/Pagination/Pagination.cjs +142 -0
- package/dist/components/Pagination/Pagination.cjs.map +1 -0
- package/dist/components/Pagination/Pagination.css +256 -0
- package/dist/components/Pagination/Pagination.d.ts +3 -0
- package/dist/components/Pagination/Pagination.d.ts.map +1 -0
- package/dist/components/Pagination/Pagination.js +142 -0
- package/dist/components/Pagination/Pagination.js.map +1 -0
- package/dist/components/Pagination/Pagination.module.css.cjs +34 -0
- package/dist/components/Pagination/Pagination.module.css.cjs.map +1 -0
- package/dist/components/Pagination/Pagination.module.css.js +34 -0
- package/dist/components/Pagination/Pagination.module.css.js.map +1 -0
- package/dist/components/Pagination/Pagination.types.d.ts +20 -0
- package/dist/components/Pagination/Pagination.types.d.ts.map +1 -0
- package/dist/components/Pagination/Pagination.utils.cjs +76 -0
- package/dist/components/Pagination/Pagination.utils.cjs.map +1 -0
- package/dist/components/Pagination/Pagination.utils.d.ts +21 -0
- package/dist/components/Pagination/Pagination.utils.d.ts.map +1 -0
- package/dist/components/Pagination/Pagination.utils.js +76 -0
- package/dist/components/Pagination/Pagination.utils.js.map +1 -0
- package/dist/components/Pagination/index.d.ts +3 -0
- package/dist/components/Pagination/index.d.ts.map +1 -0
- package/dist/components/Pictograph/Pictograph.css +5 -1
- package/dist/components/Pictograph/PictographItem.css +5 -1
- package/dist/components/Quote/Quote.css +5 -1
- package/dist/components/Spinner/Spinner.css +5 -1
- package/dist/design-tokens/dist/tokens.cjs +5 -0
- package/dist/design-tokens/dist/tokens.cjs.map +1 -0
- package/dist/design-tokens/dist/tokens.js +5 -0
- package/dist/design-tokens/dist/tokens.js.map +1 -0
- package/dist/index.cjs +6 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +7 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/styles/utilities.css +6 -0
- package/dist/styles/utils/elevation.css +35 -26
- package/dist/styles/utils/focus.css +63 -68
- package/dist/styles/utils/index.cjs +33 -0
- package/dist/styles/utils/index.cjs.map +1 -0
- package/dist/styles/utils/index.d.ts +20 -0
- package/dist/styles/utils/index.d.ts.map +1 -0
- package/dist/styles/utils/index.js +33 -0
- package/dist/styles/utils/index.js.map +1 -0
- package/dist/styles/utils/overlay.css +35 -27
- package/dist/styles/utils/text-decoration.css +20 -12
- package/dist/styles.css +27 -3
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/isRenderable/index.d.ts +2 -0
- package/dist/utils/isRenderable/index.d.ts.map +1 -0
- package/dist/utils/isRenderable/isRenderable.cjs +5 -0
- package/dist/utils/isRenderable/isRenderable.cjs.map +1 -0
- package/dist/utils/isRenderable/isRenderable.d.ts +4 -0
- package/dist/utils/isRenderable/isRenderable.d.ts.map +1 -0
- package/dist/utils/isRenderable/isRenderable.js +5 -0
- package/dist/utils/isRenderable/isRenderable.js.map +1 -0
- package/package.json +12 -4
- package/dist/styles/utils/elevation.module.css.cjs +0 -16
- package/dist/styles/utils/elevation.module.css.cjs.map +0 -1
- package/dist/styles/utils/elevation.module.css.js +0 -16
- package/dist/styles/utils/elevation.module.css.js.map +0 -1
- package/dist/styles/utils/focus.module.css.cjs +0 -16
- package/dist/styles/utils/focus.module.css.cjs.map +0 -1
- package/dist/styles/utils/focus.module.css.js +0 -16
- package/dist/styles/utils/focus.module.css.js.map +0 -1
- package/dist/styles/utils/overlay.module.css.cjs +0 -13
- package/dist/styles/utils/overlay.module.css.cjs.map +0 -1
- package/dist/styles/utils/overlay.module.css.js +0 -13
- package/dist/styles/utils/overlay.module.css.js.map +0 -1
- package/dist/styles/utils/text-decoration.module.css.cjs +0 -13
- package/dist/styles/utils/text-decoration.module.css.cjs.map +0 -1
- package/dist/styles/utils/text-decoration.module.css.js +0 -13
- package/dist/styles/utils/text-decoration.module.css.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
@layer dds-base, dds-components;@layer dds-components { @layer fallback, components; }@layer dds-components.components{.
|
|
1
|
+
@layer dds-base, dds-components;@layer dds-components { @layer fallback, components; }@layer dds-components.components{._drawer_t9y6s_1 {
|
|
2
2
|
--_drawer-transition-duration-open: 400ms;
|
|
3
3
|
--_drawer-transition-duration-close: 200ms;
|
|
4
4
|
position: fixed;
|
|
@@ -23,43 +23,43 @@
|
|
|
23
23
|
transition-behavior: allow-discrete;
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
.
|
|
26
|
+
._drawer_t9y6s_1:not([open]) {
|
|
27
27
|
display: none;
|
|
28
28
|
}
|
|
29
|
-
._drawer--
|
|
29
|
+
._drawer--small_t9y6s_29 {
|
|
30
30
|
width: 375px;
|
|
31
31
|
}
|
|
32
|
-
._drawer--
|
|
32
|
+
._drawer--medium_t9y6s_32 {
|
|
33
33
|
width: 768px;
|
|
34
34
|
}
|
|
35
|
-
._drawer--
|
|
35
|
+
._drawer--large_t9y6s_35 {
|
|
36
36
|
width: 1080px;
|
|
37
37
|
}
|
|
38
|
-
._drawer--
|
|
39
|
-
._drawer--
|
|
38
|
+
._drawer--opening_t9y6s_38,
|
|
39
|
+
._drawer--closing_t9y6s_39 {
|
|
40
40
|
display: flex;
|
|
41
41
|
flex-direction: column;
|
|
42
42
|
}
|
|
43
|
-
._drawer--
|
|
43
|
+
._drawer--opening_t9y6s_38 {
|
|
44
44
|
transition-duration: var(--_drawer-transition-duration-open);
|
|
45
45
|
transform: translateX(-100%);
|
|
46
46
|
}
|
|
47
|
-
._drawer--
|
|
47
|
+
._drawer--closing_t9y6s_39 {
|
|
48
48
|
transform: translateX(0);
|
|
49
49
|
}
|
|
50
|
-
._drawer--
|
|
50
|
+
._drawer--left_t9y6s_50 {
|
|
51
51
|
right: auto;
|
|
52
52
|
left: 0;
|
|
53
53
|
transform: translateX(-100%);
|
|
54
54
|
}
|
|
55
|
-
._drawer--
|
|
55
|
+
._drawer--left_t9y6s_50._drawer--opening_t9y6s_38 {
|
|
56
56
|
transform: translateX(0);
|
|
57
57
|
}
|
|
58
|
-
._drawer--
|
|
58
|
+
._drawer--left_t9y6s_50._drawer--closing_t9y6s_39 {
|
|
59
59
|
transform: translateX(-100%);
|
|
60
60
|
}
|
|
61
61
|
|
|
62
|
-
.
|
|
62
|
+
._drawer_t9y6s_1::backdrop {
|
|
63
63
|
background: var(--color-semantic-utility-overlay-strong);
|
|
64
64
|
opacity: 0;
|
|
65
65
|
transition-property: opacity, overlay;
|
|
@@ -67,25 +67,25 @@
|
|
|
67
67
|
transition-timing-function: ease;
|
|
68
68
|
transition-behavior: allow-discrete;
|
|
69
69
|
}
|
|
70
|
-
._drawer--
|
|
70
|
+
._drawer--opening_t9y6s_38::backdrop {
|
|
71
71
|
opacity: 1;
|
|
72
72
|
transition-duration: var(--_drawer-transition-duration-open);
|
|
73
73
|
}
|
|
74
|
-
._drawer--
|
|
74
|
+
._drawer--closing_t9y6s_39::backdrop {
|
|
75
75
|
opacity: 0;
|
|
76
76
|
transition-duration: var(--_drawer-transition-duration-close);
|
|
77
77
|
}
|
|
78
|
-
.
|
|
78
|
+
._drawer__container_t9y6s_78 {
|
|
79
79
|
display: flex;
|
|
80
80
|
min-height: 0;
|
|
81
81
|
flex: 1 1 auto;
|
|
82
82
|
flex-direction: column;
|
|
83
83
|
overflow: auto;
|
|
84
84
|
}
|
|
85
|
-
._drawer--fixed-
|
|
85
|
+
._drawer--fixed-title_t9y6s_85 ._drawer__container_t9y6s_78 {
|
|
86
86
|
overflow: hidden;
|
|
87
87
|
}
|
|
88
|
-
.
|
|
88
|
+
._drawer__title_t9y6s_88 {
|
|
89
89
|
display: flex;
|
|
90
90
|
flex: 0 0 auto;
|
|
91
91
|
flex-direction: column;
|
|
@@ -95,22 +95,22 @@
|
|
|
95
95
|
border-bottom: var(--borderwidth-semantic-xs) solid var(--color-semantic-border-neutral-base);
|
|
96
96
|
background: var(--color-semantic-surface-base);
|
|
97
97
|
}
|
|
98
|
-
.
|
|
98
|
+
._drawer__heading_t9y6s_98 {
|
|
99
99
|
margin: 0;
|
|
100
100
|
font: var(--typography-heading-md);
|
|
101
101
|
}
|
|
102
|
-
.
|
|
102
|
+
._drawer__description_t9y6s_102 {
|
|
103
103
|
margin: 0;
|
|
104
104
|
}
|
|
105
|
-
.
|
|
105
|
+
._drawer__content_t9y6s_105 {
|
|
106
106
|
flex: 1 1 auto;
|
|
107
107
|
padding: var(--spacing-space-20);
|
|
108
108
|
overflow-wrap: anywhere;
|
|
109
109
|
}
|
|
110
|
-
._drawer--fixed-
|
|
110
|
+
._drawer--fixed-title_t9y6s_85 ._drawer__content_t9y6s_105 {
|
|
111
111
|
overflow: auto;
|
|
112
112
|
}
|
|
113
|
-
.
|
|
113
|
+
._drawer__close_t9y6s_113 {
|
|
114
114
|
position: absolute;
|
|
115
115
|
z-index: 1;
|
|
116
116
|
top: 0;
|
|
@@ -126,93 +126,96 @@
|
|
|
126
126
|
color: var(--color-semantic-foreground-secondary-strong);
|
|
127
127
|
cursor: pointer;
|
|
128
128
|
}
|
|
129
|
-
.
|
|
129
|
+
._drawer__close_t9y6s_113 svg {
|
|
130
130
|
width: 24px;
|
|
131
131
|
height: 24px;
|
|
132
132
|
}
|
|
133
|
-
._drawer__bottom-
|
|
133
|
+
._drawer__bottom-bar_t9y6s_133 {
|
|
134
134
|
flex: 0 0 auto;
|
|
135
135
|
padding: var(--spacing-space-20) var(--spacing-space-20) var(--spacing-space-24);
|
|
136
136
|
border: none;
|
|
137
137
|
border-radius: 0;
|
|
138
138
|
border-top: var(--borderwidth-semantic-xs) solid var(--color-semantic-border-neutral-base);
|
|
139
139
|
}
|
|
140
|
-
._drawer--
|
|
140
|
+
._drawer--dark_t9y6s_140 ._drawer__title_t9y6s_88 {
|
|
141
141
|
border-bottom-color: var(--color-semantic-border-secondary);
|
|
142
142
|
background: var(--color-semantic-surface-secondary-strong);
|
|
143
143
|
color: var(--color-semantic-foreground-inverse);
|
|
144
144
|
}
|
|
145
|
-
._drawer--
|
|
145
|
+
._drawer--dark_t9y6s_140 ._drawer__close_t9y6s_113 {
|
|
146
146
|
background: var(--color-semantic-surface-secondary-mid);
|
|
147
147
|
color: var(--color-semantic-foreground-inverse);
|
|
148
148
|
}
|
|
149
149
|
|
|
150
|
-
@media (
|
|
151
|
-
._drawer--
|
|
150
|
+
@media (width >= 768px) {
|
|
151
|
+
._drawer--medium_t9y6s_32 {
|
|
152
152
|
--_drawer-transition-duration-open: 500ms;
|
|
153
153
|
--_drawer-transition-duration-close: 300ms;
|
|
154
154
|
}
|
|
155
|
-
._drawer--
|
|
155
|
+
._drawer--large_t9y6s_35 {
|
|
156
156
|
--_drawer-transition-duration-open: 500ms;
|
|
157
157
|
--_drawer-transition-duration-close: 300ms;
|
|
158
158
|
}
|
|
159
159
|
}
|
|
160
|
-
@media (
|
|
161
|
-
._drawer--
|
|
160
|
+
@media (width >= 1024px) {
|
|
161
|
+
._drawer--large_t9y6s_35 {
|
|
162
162
|
--_drawer-transition-duration-open: 600ms;
|
|
163
163
|
--_drawer-transition-duration-close: 400ms;
|
|
164
164
|
}
|
|
165
165
|
}
|
|
166
|
-
@media (
|
|
167
|
-
.
|
|
166
|
+
@media (width < 360px) {
|
|
167
|
+
._drawer_t9y6s_1 {
|
|
168
168
|
width: 100vw;
|
|
169
169
|
max-width: 100vw;
|
|
170
170
|
}
|
|
171
171
|
}
|
|
172
172
|
@media (prefers-reduced-motion: reduce) {
|
|
173
|
-
.
|
|
174
|
-
.
|
|
173
|
+
._drawer_t9y6s_1,
|
|
174
|
+
._drawer_t9y6s_1::backdrop {
|
|
175
175
|
transition: none;
|
|
176
176
|
}
|
|
177
177
|
}
|
|
178
178
|
@media (forced-colors: active) {
|
|
179
|
-
.
|
|
179
|
+
._drawer_t9y6s_1 {
|
|
180
180
|
border: 2px solid CanvasText;
|
|
181
181
|
box-shadow: none;
|
|
182
182
|
}
|
|
183
|
-
.
|
|
183
|
+
._drawer_t9y6s_1::backdrop {
|
|
184
184
|
background: Canvas;
|
|
185
185
|
opacity: 0.7;
|
|
186
186
|
}
|
|
187
|
-
.
|
|
187
|
+
._drawer__close_t9y6s_113 {
|
|
188
188
|
border: 1px solid ButtonBorder;
|
|
189
189
|
background: ButtonFace;
|
|
190
190
|
color: ButtonText;
|
|
191
191
|
}
|
|
192
192
|
}
|
|
193
193
|
|
|
194
|
-
._drawer--
|
|
194
|
+
._drawer--opening_t9y6s_38 {
|
|
195
195
|
@starting-style {
|
|
196
196
|
transform: translateX(0);
|
|
197
197
|
}
|
|
198
198
|
}
|
|
199
|
-
._drawer--
|
|
199
|
+
._drawer--opening_t9y6s_38::backdrop {
|
|
200
200
|
@starting-style {
|
|
201
201
|
opacity: 0;
|
|
202
202
|
}
|
|
203
203
|
}
|
|
204
|
-
._drawer--
|
|
204
|
+
._drawer--closing_t9y6s_39 {
|
|
205
205
|
@starting-style {
|
|
206
206
|
transform: translateX(-100%);
|
|
207
207
|
}
|
|
208
208
|
}
|
|
209
|
-
._drawer--
|
|
209
|
+
._drawer--left_t9y6s_50._drawer--opening_t9y6s_38 {
|
|
210
210
|
@starting-style {
|
|
211
211
|
transform: translateX(-100%);
|
|
212
212
|
}
|
|
213
213
|
}
|
|
214
|
-
._drawer--
|
|
214
|
+
._drawer--left_t9y6s_50._drawer--closing_t9y6s_39 {
|
|
215
215
|
@starting-style {
|
|
216
216
|
transform: translateX(0);
|
|
217
217
|
}
|
|
218
|
-
}
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Do not edit directly, this file was auto-generated.
|
|
221
|
+
*/ }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Drawer.d.ts","sourceRoot":"","sources":["../../../src/components/Drawer/Drawer.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Drawer.d.ts","sourceRoot":"","sources":["../../../src/components/Drawer/Drawer.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,eAAO,MAAM,MAAM,GAAI,+SAuBpB,WAAW,mDAqFb,CAAC"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
2
|
import { useId } from "react";
|
|
3
3
|
import { Close } from "@dnanpm/icons";
|
|
4
|
-
import elevationStyles from "../../styles/utils/
|
|
5
|
-
import focusStyles from "../../styles/utils/focus.module.css.js";
|
|
4
|
+
import { focusStyles, elevationStyles } from "../../styles/utils/index.js";
|
|
6
5
|
import { useDialogDismissal } from "../Modal/useDialogDismissal.js";
|
|
7
6
|
import { useNativeDialog } from "../Modal/useNativeDialog.js";
|
|
8
7
|
import styles from "./Drawer.module.css.js";
|
|
@@ -51,6 +50,7 @@ const Drawer = ({
|
|
|
51
50
|
"dialog",
|
|
52
51
|
{
|
|
53
52
|
...props,
|
|
53
|
+
"data-color-scheme": "light",
|
|
54
54
|
ref: (node) => {
|
|
55
55
|
dialogRef.current = node;
|
|
56
56
|
if (typeof ref === "function") ref(node);
|
|
@@ -80,13 +80,21 @@ const Drawer = ({
|
|
|
80
80
|
className: cn(styles.drawer__close, focusStyles.focusable),
|
|
81
81
|
"aria-label": closeLabel,
|
|
82
82
|
"data-dialog-autofocus": "true",
|
|
83
|
+
"data-color-scheme": headerStyle,
|
|
83
84
|
onClick: close,
|
|
84
85
|
children: /* @__PURE__ */ jsx(Close, { "aria-hidden": "true" })
|
|
85
86
|
}
|
|
86
87
|
),
|
|
87
|
-
(title || description) && /* @__PURE__ */ jsxs("div", { className: styles.drawer__title, children: [
|
|
88
|
+
(title || description) && /* @__PURE__ */ jsxs("div", { className: styles.drawer__title, "data-color-scheme": headerStyle, children: [
|
|
88
89
|
title && /* @__PURE__ */ jsx("h2", { id: titleId, className: styles.drawer__heading, children: title }),
|
|
89
|
-
description && /* @__PURE__ */ jsx(
|
|
90
|
+
description && /* @__PURE__ */ jsx(
|
|
91
|
+
"div",
|
|
92
|
+
{
|
|
93
|
+
id: descriptionId,
|
|
94
|
+
className: cn(styles.drawer__description, "dds-prose"),
|
|
95
|
+
children: description
|
|
96
|
+
}
|
|
97
|
+
)
|
|
90
98
|
] }),
|
|
91
99
|
/* @__PURE__ */ jsx("div", { className: styles.drawer__content, children })
|
|
92
100
|
] }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Drawer.js","sources":["../../../src/components/Drawer/Drawer.tsx"],"sourcesContent":["import { useId } from 'react';\nimport { Close } from '@dnanpm/icons';\nimport { cn } from '../../utils/cn';\nimport elevationStyles
|
|
1
|
+
{"version":3,"file":"Drawer.js","sources":["../../../src/components/Drawer/Drawer.tsx"],"sourcesContent":["import { useId } from 'react';\nimport { Close } from '@dnanpm/icons';\nimport { cn } from '../../utils/cn';\nimport { elevationStyles, focusStyles } from '../../styles/utils';\nimport { useDialogDismissal } from '../Modal/useDialogDismissal';\nimport { useNativeDialog } from '../Modal/useNativeDialog';\nimport styles from './Drawer.module.css';\nimport type { DrawerProps } from './Drawer.types';\n\nexport const Drawer = ({\n open,\n onOpenChange,\n title,\n description,\n children,\n footer,\n size = 'small',\n headerStyle = 'light',\n side = 'right',\n fixedTitle = false,\n disableCloseOptions = false,\n closeLabel = 'Sulje dialogi',\n keepMounted = false,\n className,\n ref,\n onKeyDown,\n onClick,\n onPointerDown,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n 'aria-describedby': ariaDescribedBy,\n ...props\n}: DrawerProps) => {\n const titleId = useId();\n const descriptionId = useId();\n const { dialogRef, close, phase, isPresent } = useNativeDialog({\n open: open ?? false,\n keepMounted,\n onOpenChange,\n });\n const describedBy =\n [description ? descriptionId : undefined, ariaDescribedBy].filter(Boolean).join(' ') ||\n undefined;\n const dialogDismissalProps = useDialogDismissal({\n close,\n disableCloseOptions,\n onClick,\n onKeyDown,\n onPointerDown,\n });\n\n if (!isPresent) return null;\n\n return (\n <dialog\n {...props}\n data-color-scheme=\"light\"\n ref={(node) => {\n dialogRef.current = node;\n if (typeof ref === 'function') ref(node);\n else if (ref) ref.current = node;\n }}\n className={cn(\n styles.drawer,\n elevationStyles.elevationHigh,\n styles[`drawer--${size}`],\n styles[`drawer--${headerStyle}`],\n styles[`drawer--${side}`],\n { [styles['drawer--fixed-title']]: fixedTitle },\n { [styles['drawer--opening']]: phase !== 'closing' },\n { [styles['drawer--closing']]: phase === 'closing' },\n className,\n )}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy ?? (!ariaLabel && title ? titleId : undefined)}\n aria-describedby={describedBy}\n {...dialogDismissalProps}\n >\n <div className={styles.drawer__container}>\n {!disableCloseOptions && (\n <button\n type=\"button\"\n className={cn(styles.drawer__close, focusStyles.focusable)}\n aria-label={closeLabel}\n data-dialog-autofocus=\"true\"\n data-color-scheme={headerStyle}\n onClick={close}\n >\n <Close aria-hidden=\"true\" />\n </button>\n )}\n {(title || description) && (\n <div className={styles.drawer__title} data-color-scheme={headerStyle}>\n {title && (\n <h2 id={titleId} className={styles.drawer__heading}>\n {title}\n </h2>\n )}\n {description && (\n <div\n id={descriptionId}\n className={cn(styles.drawer__description, 'dds-prose')}\n >\n {description}\n </div>\n )}\n </div>\n )}\n <div className={styles.drawer__content}>{children}</div>\n </div>\n {footer && (\n <div className={cn(styles['drawer__bottom-bar'], elevationStyles.elevationMedium)}>\n {footer}\n </div>\n )}\n </dialog>\n );\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -1,30 +1,30 @@
|
|
|
1
1
|
require('./Drawer.css');
|
|
2
2
|
"use strict";
|
|
3
3
|
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
4
|
-
const drawer = "
|
|
5
|
-
const drawer__container = "
|
|
6
|
-
const drawer__title = "
|
|
7
|
-
const drawer__heading = "
|
|
8
|
-
const drawer__description = "
|
|
9
|
-
const drawer__content = "
|
|
10
|
-
const drawer__close = "
|
|
4
|
+
const drawer = "_drawer_t9y6s_1";
|
|
5
|
+
const drawer__container = "_drawer__container_t9y6s_78";
|
|
6
|
+
const drawer__title = "_drawer__title_t9y6s_88";
|
|
7
|
+
const drawer__heading = "_drawer__heading_t9y6s_98";
|
|
8
|
+
const drawer__description = "_drawer__description_t9y6s_102";
|
|
9
|
+
const drawer__content = "_drawer__content_t9y6s_105";
|
|
10
|
+
const drawer__close = "_drawer__close_t9y6s_113";
|
|
11
11
|
const styles = {
|
|
12
12
|
drawer,
|
|
13
|
-
"drawer--small": "_drawer--
|
|
14
|
-
"drawer--medium": "_drawer--
|
|
15
|
-
"drawer--large": "_drawer--
|
|
16
|
-
"drawer--opening": "_drawer--
|
|
17
|
-
"drawer--closing": "_drawer--
|
|
18
|
-
"drawer--left": "_drawer--
|
|
13
|
+
"drawer--small": "_drawer--small_t9y6s_29",
|
|
14
|
+
"drawer--medium": "_drawer--medium_t9y6s_32",
|
|
15
|
+
"drawer--large": "_drawer--large_t9y6s_35",
|
|
16
|
+
"drawer--opening": "_drawer--opening_t9y6s_38",
|
|
17
|
+
"drawer--closing": "_drawer--closing_t9y6s_39",
|
|
18
|
+
"drawer--left": "_drawer--left_t9y6s_50",
|
|
19
19
|
drawer__container,
|
|
20
|
-
"drawer--fixed-title": "_drawer--fixed-
|
|
20
|
+
"drawer--fixed-title": "_drawer--fixed-title_t9y6s_85",
|
|
21
21
|
drawer__title,
|
|
22
22
|
drawer__heading,
|
|
23
23
|
drawer__description,
|
|
24
24
|
drawer__content,
|
|
25
25
|
drawer__close,
|
|
26
|
-
"drawer__bottom-bar": "_drawer__bottom-
|
|
27
|
-
"drawer--dark": "_drawer--
|
|
26
|
+
"drawer__bottom-bar": "_drawer__bottom-bar_t9y6s_133",
|
|
27
|
+
"drawer--dark": "_drawer--dark_t9y6s_140"
|
|
28
28
|
};
|
|
29
29
|
exports.default = styles;
|
|
30
30
|
exports.drawer = drawer;
|
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
import './Drawer.css';
|
|
2
|
-
const drawer = "
|
|
3
|
-
const drawer__container = "
|
|
4
|
-
const drawer__title = "
|
|
5
|
-
const drawer__heading = "
|
|
6
|
-
const drawer__description = "
|
|
7
|
-
const drawer__content = "
|
|
8
|
-
const drawer__close = "
|
|
2
|
+
const drawer = "_drawer_t9y6s_1";
|
|
3
|
+
const drawer__container = "_drawer__container_t9y6s_78";
|
|
4
|
+
const drawer__title = "_drawer__title_t9y6s_88";
|
|
5
|
+
const drawer__heading = "_drawer__heading_t9y6s_98";
|
|
6
|
+
const drawer__description = "_drawer__description_t9y6s_102";
|
|
7
|
+
const drawer__content = "_drawer__content_t9y6s_105";
|
|
8
|
+
const drawer__close = "_drawer__close_t9y6s_113";
|
|
9
9
|
const styles = {
|
|
10
10
|
drawer,
|
|
11
|
-
"drawer--small": "_drawer--
|
|
12
|
-
"drawer--medium": "_drawer--
|
|
13
|
-
"drawer--large": "_drawer--
|
|
14
|
-
"drawer--opening": "_drawer--
|
|
15
|
-
"drawer--closing": "_drawer--
|
|
16
|
-
"drawer--left": "_drawer--
|
|
11
|
+
"drawer--small": "_drawer--small_t9y6s_29",
|
|
12
|
+
"drawer--medium": "_drawer--medium_t9y6s_32",
|
|
13
|
+
"drawer--large": "_drawer--large_t9y6s_35",
|
|
14
|
+
"drawer--opening": "_drawer--opening_t9y6s_38",
|
|
15
|
+
"drawer--closing": "_drawer--closing_t9y6s_39",
|
|
16
|
+
"drawer--left": "_drawer--left_t9y6s_50",
|
|
17
17
|
drawer__container,
|
|
18
|
-
"drawer--fixed-title": "_drawer--fixed-
|
|
18
|
+
"drawer--fixed-title": "_drawer--fixed-title_t9y6s_85",
|
|
19
19
|
drawer__title,
|
|
20
20
|
drawer__heading,
|
|
21
21
|
drawer__description,
|
|
22
22
|
drawer__content,
|
|
23
23
|
drawer__close,
|
|
24
|
-
"drawer__bottom-bar": "_drawer__bottom-
|
|
25
|
-
"drawer--dark": "_drawer--
|
|
24
|
+
"drawer__bottom-bar": "_drawer__bottom-bar_t9y6s_133",
|
|
25
|
+
"drawer--dark": "_drawer--dark_t9y6s_140"
|
|
26
26
|
};
|
|
27
27
|
export {
|
|
28
28
|
styles as default,
|
|
@@ -3,8 +3,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
|
3
3
|
const jsxRuntime = require("react/jsx-runtime");
|
|
4
4
|
const react = require("react");
|
|
5
5
|
const icons = require("@dnanpm/icons");
|
|
6
|
-
const
|
|
7
|
-
const textDecoration_module = require("../../styles/utils/text-decoration.module.css.cjs");
|
|
6
|
+
const index = require("../../styles/utils/index.cjs");
|
|
8
7
|
const appStoreBadge = require("./assets/app-store-badge.svg.cjs");
|
|
9
8
|
const googlePlayBadge = require("./assets/google-play-badge.svg.cjs");
|
|
10
9
|
const Footer_module = require("./Footer.module.css.cjs");
|
|
@@ -12,7 +11,7 @@ const Footer_utils = require("./Footer.utils.cjs");
|
|
|
12
11
|
const IconButton = require("../IconButton/IconButton.cjs");
|
|
13
12
|
const cn = require("../../utils/cn/cn.cjs");
|
|
14
13
|
const AccordionItem = require("../AccordionItem/AccordionItem.cjs");
|
|
15
|
-
const linkClasses = (extra) => cn.cn(Footer_module.default.footer__link,
|
|
14
|
+
const linkClasses = (extra) => cn.cn(Footer_module.default.footer__link, index.textDecorationStyles.underlineLink, index.focusStyles.focusable, extra);
|
|
16
15
|
const renderNavLink = (link, renderLink) => renderLink(
|
|
17
16
|
{
|
|
18
17
|
href: link.href,
|
|
@@ -25,7 +24,7 @@ const renderNavLink = (link, renderLink) => renderLink(
|
|
|
25
24
|
const renderBadge = (link, src, renderLink, fallbackAriaLabel) => renderLink(
|
|
26
25
|
{
|
|
27
26
|
href: link.href,
|
|
28
|
-
className: cn.cn(Footer_module.default.footer__badge,
|
|
27
|
+
className: cn.cn(Footer_module.default.footer__badge, index.focusStyles.focusable),
|
|
29
28
|
"aria-label": link.ariaLabel ?? fallbackAriaLabel,
|
|
30
29
|
children: /* @__PURE__ */ jsxRuntime.jsx("img", { src, alt: "", "aria-hidden": "true" })
|
|
31
30
|
},
|
|
@@ -67,12 +66,12 @@ const Footer = ({
|
|
|
67
66
|
className: cn.cn(Footer_module.default.footer, className),
|
|
68
67
|
...props,
|
|
69
68
|
children: [
|
|
70
|
-
topSection && topSection.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: Footer_module.default.footer__top, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn.cn(Footer_module.default.footer__inner, Footer_module.default["footer__top-row"]), children: topSection.map((group,
|
|
69
|
+
topSection && topSection.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: Footer_module.default.footer__top, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn.cn(Footer_module.default.footer__inner, Footer_module.default["footer__top-row"]), children: topSection.map((group, index2) => {
|
|
71
70
|
const Icon = Footer_utils.resolveTopSectionIcon(group.icon);
|
|
72
71
|
const links = group.links.filter(
|
|
73
72
|
(link) => !link.opensChat || onChatOpen
|
|
74
73
|
);
|
|
75
|
-
const headingId = `${topSectionHeadingId}-${
|
|
74
|
+
const headingId = `${topSectionHeadingId}-${index2}`;
|
|
76
75
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
77
76
|
"section",
|
|
78
77
|
{
|
|
@@ -160,7 +159,7 @@ const Footer = ({
|
|
|
160
159
|
className: cn.cn(
|
|
161
160
|
Footer_module.default.footer__language,
|
|
162
161
|
isCurrent && Footer_module.default["footer__language--current"],
|
|
163
|
-
|
|
162
|
+
index.focusStyles.focusable
|
|
164
163
|
),
|
|
165
164
|
"aria-label": language.ariaLabel,
|
|
166
165
|
"aria-current": isCurrent ? "true" : void 0,
|
|
@@ -184,7 +183,7 @@ const Footer = ({
|
|
|
184
183
|
href: social.href,
|
|
185
184
|
className: cn.cn(
|
|
186
185
|
Footer_module.default["footer__social-link"],
|
|
187
|
-
|
|
186
|
+
index.focusStyles.focusable
|
|
188
187
|
),
|
|
189
188
|
"aria-label": social.ariaLabel ?? Footer_utils.defaultSocialAriaLabel(social.platform),
|
|
190
189
|
children: Icon ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -213,7 +212,7 @@ const Footer = ({
|
|
|
213
212
|
className: cn.cn(
|
|
214
213
|
Footer_module.default.footer__organization,
|
|
215
214
|
isCurrent && Footer_module.default["footer__organization--current"],
|
|
216
|
-
|
|
215
|
+
index.focusStyles.focusable
|
|
217
216
|
),
|
|
218
217
|
"aria-current": isCurrent ? "true" : void 0,
|
|
219
218
|
children: organization.label
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Footer.cjs","sources":["../../../src/components/Footer/Footer.tsx"],"sourcesContent":["import { useId } from 'react';\nimport { ArrowRight } from '@dnanpm/icons';\nimport { AccordionItem } from '../AccordionItem';\nimport { IconButton } from '../IconButton';\nimport { cn } from '../../utils/cn';\nimport focusStyles from '../../styles/utils/focus.module.css';\nimport textDecorationStyles from '../../styles/utils/text-decoration.module.css';\nimport appStoreBadge from './assets/app-store-badge.svg';\nimport googlePlayBadge from './assets/google-play-badge.svg';\nimport styles from './Footer.module.css';\nimport {\n defaultAppStoreAriaLabel,\n defaultCopyrightLabel,\n defaultGooglePlayAriaLabel,\n defaultRenderLink,\n defaultSocialAriaLabel,\n resolveSocialIcon,\n resolveTopSectionIcon,\n} from './Footer.utils';\nimport type {\n FooterAppLink,\n FooterLink,\n FooterLinkProps,\n FooterProps,\n FooterRenderLink,\n} from './Footer.types';\n\nconst linkClasses = (extra?: string) =>\n cn(styles.footer__link, textDecorationStyles.underlineLink, focusStyles.focusable, extra);\n\nconst renderNavLink = (link: FooterLink, renderLink: FooterRenderLink) =>\n renderLink(\n {\n href: link.href,\n className: linkClasses(),\n 'aria-label': link.ariaLabel,\n children: link.label,\n },\n { external: link.external ?? false },\n );\n\nconst renderBadge = (\n link: FooterAppLink,\n src: string,\n renderLink: FooterRenderLink,\n fallbackAriaLabel: string,\n) =>\n renderLink(\n {\n href: link.href,\n className: cn(styles.footer__badge, focusStyles.focusable),\n 'aria-label': link.ariaLabel ?? fallbackAriaLabel,\n children: <img src={src} alt=\"\" aria-hidden=\"true\" />,\n },\n { external: true },\n );\n\nexport const Footer = ({\n topSection,\n navigation,\n socialLinks,\n organizations,\n currentOrganizationId,\n languages,\n currentLanguageCode,\n appLinks,\n mandatoryLinks,\n copyrightLabel,\n renderLink = defaultRenderLink,\n onChatOpen,\n onCookieSettingsClick,\n navigationLabel = 'Footer linkit',\n socialLabel = 'DNA sosiaalisessa mediassa',\n organizationsLabel = 'Valitse sivusto',\n languagesLabel = 'Valitse kieli',\n mandatoryLinksLabel = 'Lakisääteiset linkit',\n className,\n ref,\n ...props\n}: FooterProps) => {\n const visibleMandatoryLinks = (mandatoryLinks ?? []).filter(\n (link) => !link.opensCookieSettings || onCookieSettingsClick,\n );\n\n const hasBadges = Boolean(appLinks?.appStore || appLinks?.googlePlay);\n const topSectionHeadingId = useId();\n\n return (\n <footer\n ref={ref}\n data-color-scheme=\"dark\"\n className={cn(styles.footer, className)}\n {...props}\n >\n {topSection && topSection.length > 0 && (\n <div className={styles.footer__top}>\n <div className={cn(styles.footer__inner, styles['footer__top-row'])}>\n {topSection.map((group, index) => {\n const Icon = resolveTopSectionIcon(group.icon);\n const links = group.links.filter(\n (link) => !link.opensChat || onChatOpen,\n );\n // Names the section as a landmark so it is discoverable alongside the main nav.\n const headingId = `${topSectionHeadingId}-${index}`;\n\n return (\n <section\n key={group.title}\n aria-labelledby={headingId}\n className={styles['footer__top-column']}\n >\n <div className={styles['footer__top-heading']}>\n {Icon && (\n <Icon\n className={styles['footer__top-icon']}\n aria-hidden=\"true\"\n />\n )}\n <h2 id={headingId} className={styles['footer__top-title']}>\n {group.title}\n </h2>\n </div>\n {links.length > 0 && (\n <ul className={styles['footer__top-links']}>\n {links.map((link) => (\n <li key={link.label}>\n {link.opensChat ? (\n <IconButton\n icon={ArrowRight}\n onClick={onChatOpen}\n className={styles['footer__top-link']}\n labelBehavior=\"wrap\"\n >\n {link.label}\n </IconButton>\n ) : (\n <IconButton\n icon={ArrowRight}\n href={link.href}\n aria-label={link.ariaLabel}\n className={styles['footer__top-link']}\n labelBehavior=\"wrap\"\n renderLink={(linkProps) =>\n renderLink(\n linkProps as FooterLinkProps,\n {\n external:\n link.external ?? false,\n },\n )\n }\n >\n {link.label}\n </IconButton>\n )}\n </li>\n ))}\n </ul>\n )}\n </section>\n );\n })}\n </div>\n </div>\n )}\n\n <div className={styles.footer__bottom}>\n <div className={cn(styles.footer__inner, styles.footer__container)}>\n {navigation && navigation.length > 0 && (\n <nav aria-label={navigationLabel}>\n {/* Accordions below 768px; the columns branch is display:none here. */}\n <div className={styles['footer__nav-accordions']}>\n {navigation.map((group) => (\n <AccordionItem\n key={group.heading}\n variant=\"panel\"\n label={group.heading}\n className={styles.footer__accordion}\n >\n <ul className={styles['footer__link-list']}>\n {group.links.map((link) => (\n <li key={link.label}>\n {renderNavLink(link, renderLink)}\n </li>\n ))}\n </ul>\n </AccordionItem>\n ))}\n </div>\n\n <div className={styles['footer__nav-columns']}>\n {navigation.map((group) => (\n <div key={group.heading} className={styles.footer__column}>\n <h2 className={styles['footer__column-heading']}>\n {group.heading}\n </h2>\n <ul className={styles['footer__link-list']}>\n {group.links.map((link) => (\n <li key={link.label}>\n {renderNavLink(link, renderLink)}\n </li>\n ))}\n </ul>\n </div>\n ))}\n </div>\n </nav>\n )}\n\n {/* The bottom bar always renders: it carries the copyright. */}\n <div\n className={cn(\n styles.footer__divider,\n Boolean(navigation?.length) && styles['footer__divider--after-nav'],\n )}\n />\n\n <div className={styles.footer__meta}>\n {languages && languages.length > 0 && (\n <ul\n className={styles['footer__language-list']}\n aria-label={languagesLabel}\n >\n {languages.map((language) => {\n const isCurrent = language.code === currentLanguageCode;\n\n return (\n <li key={language.code}>\n {renderLink(\n {\n href: language.href,\n className: cn(\n styles.footer__language,\n isCurrent &&\n styles['footer__language--current'],\n focusStyles.focusable,\n ),\n 'aria-label': language.ariaLabel,\n 'aria-current': isCurrent ? 'true' : undefined,\n children: language.label,\n },\n { external: language.external ?? false },\n )}\n </li>\n );\n })}\n </ul>\n )}\n\n <div className={styles['footer__meta-center']}>\n {socialLinks && socialLinks.length > 0 && (\n <ul\n className={styles['footer__social-list']}\n aria-label={socialLabel}\n >\n {socialLinks.map((social) => {\n const Icon = resolveSocialIcon(social.platform);\n\n return (\n <li key={social.platform}>\n {renderLink(\n {\n href: social.href,\n className: cn(\n styles['footer__social-link'],\n focusStyles.focusable,\n ),\n 'aria-label':\n social.ariaLabel ??\n defaultSocialAriaLabel(social.platform),\n children: Icon ? (\n <Icon\n className={\n styles['footer__social-icon']\n }\n aria-hidden=\"true\"\n />\n ) : null,\n },\n { external: true },\n )}\n </li>\n );\n })}\n </ul>\n )}\n\n {organizations && organizations.length > 0 && (\n <ul\n className={styles['footer__organization-list']}\n aria-label={organizationsLabel}\n >\n {organizations.map((organization) => {\n const isCurrent = organization.id === currentOrganizationId;\n\n return (\n <li key={organization.id}>\n {renderLink(\n {\n href: organization.href,\n className: cn(\n styles.footer__organization,\n isCurrent &&\n styles[\n 'footer__organization--current'\n ],\n focusStyles.focusable,\n ),\n 'aria-current': isCurrent\n ? 'true'\n : undefined,\n children: organization.label,\n },\n {\n external: organization.external ?? false,\n },\n )}\n </li>\n );\n })}\n </ul>\n )}\n\n <ul\n className={styles['footer__legal-list']}\n aria-label={mandatoryLinksLabel}\n >\n {visibleMandatoryLinks.map((link) => (\n <li key={link.label}>\n {link.opensCookieSettings ? (\n <button\n type=\"button\"\n onClick={onCookieSettingsClick}\n className={linkClasses(styles.footer__action)}\n >\n {link.label}\n </button>\n ) : (\n renderNavLink(link, renderLink)\n )}\n </li>\n ))}\n <li className={styles.footer__copyright}>\n {copyrightLabel ?? defaultCopyrightLabel()}\n </li>\n </ul>\n </div>\n\n {hasBadges && (\n <div className={styles.footer__apps}>\n {appLinks?.title && (\n <span className={styles['footer__apps-title']}>\n {appLinks.title}\n </span>\n )}\n <div className={styles.footer__badges}>\n {appLinks?.appStore &&\n renderBadge(\n appLinks.appStore,\n appStoreBadge,\n renderLink,\n defaultAppStoreAriaLabel,\n )}\n {appLinks?.googlePlay &&\n renderBadge(\n appLinks.googlePlay,\n googlePlayBadge,\n renderLink,\n defaultGooglePlayAriaLabel,\n )}\n </div>\n </div>\n )}\n </div>\n </div>\n </div>\n </footer>\n );\n};\n"],"names":["cn","styles","textDecorationStyles","focusStyles","jsx","defaultRenderLink","useId","jsxs","resolveTopSectionIcon","IconButton","ArrowRight","AccordionItem","resolveSocialIcon","defaultSocialAriaLabel","defaultCopyrightLabel","defaultAppStoreAriaLabel","defaultGooglePlayAriaLabel"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Footer.cjs","sources":["../../../src/components/Footer/Footer.tsx"],"sourcesContent":["import { useId } from 'react';\nimport { ArrowRight } from '@dnanpm/icons';\nimport { AccordionItem } from '../AccordionItem';\nimport { IconButton } from '../IconButton';\nimport { cn } from '../../utils/cn';\nimport { focusStyles, textDecorationStyles } from '../../styles/utils';\nimport appStoreBadge from './assets/app-store-badge.svg';\nimport googlePlayBadge from './assets/google-play-badge.svg';\nimport styles from './Footer.module.css';\nimport {\n defaultAppStoreAriaLabel,\n defaultCopyrightLabel,\n defaultGooglePlayAriaLabel,\n defaultRenderLink,\n defaultSocialAriaLabel,\n resolveSocialIcon,\n resolveTopSectionIcon,\n} from './Footer.utils';\nimport type {\n FooterAppLink,\n FooterLink,\n FooterLinkProps,\n FooterProps,\n FooterRenderLink,\n} from './Footer.types';\n\nconst linkClasses = (extra?: string) =>\n cn(styles.footer__link, textDecorationStyles.underlineLink, focusStyles.focusable, extra);\n\nconst renderNavLink = (link: FooterLink, renderLink: FooterRenderLink) =>\n renderLink(\n {\n href: link.href,\n className: linkClasses(),\n 'aria-label': link.ariaLabel,\n children: link.label,\n },\n { external: link.external ?? false },\n );\n\nconst renderBadge = (\n link: FooterAppLink,\n src: string,\n renderLink: FooterRenderLink,\n fallbackAriaLabel: string,\n) =>\n renderLink(\n {\n href: link.href,\n className: cn(styles.footer__badge, focusStyles.focusable),\n 'aria-label': link.ariaLabel ?? fallbackAriaLabel,\n children: <img src={src} alt=\"\" aria-hidden=\"true\" />,\n },\n { external: true },\n );\n\nexport const Footer = ({\n topSection,\n navigation,\n socialLinks,\n organizations,\n currentOrganizationId,\n languages,\n currentLanguageCode,\n appLinks,\n mandatoryLinks,\n copyrightLabel,\n renderLink = defaultRenderLink,\n onChatOpen,\n onCookieSettingsClick,\n navigationLabel = 'Footer linkit',\n socialLabel = 'DNA sosiaalisessa mediassa',\n organizationsLabel = 'Valitse sivusto',\n languagesLabel = 'Valitse kieli',\n mandatoryLinksLabel = 'Lakisääteiset linkit',\n className,\n ref,\n ...props\n}: FooterProps) => {\n const visibleMandatoryLinks = (mandatoryLinks ?? []).filter(\n (link) => !link.opensCookieSettings || onCookieSettingsClick,\n );\n\n const hasBadges = Boolean(appLinks?.appStore || appLinks?.googlePlay);\n const topSectionHeadingId = useId();\n\n return (\n <footer\n ref={ref}\n data-color-scheme=\"dark\"\n className={cn(styles.footer, className)}\n {...props}\n >\n {topSection && topSection.length > 0 && (\n <div className={styles.footer__top}>\n <div className={cn(styles.footer__inner, styles['footer__top-row'])}>\n {topSection.map((group, index) => {\n const Icon = resolveTopSectionIcon(group.icon);\n const links = group.links.filter(\n (link) => !link.opensChat || onChatOpen,\n );\n // Names the section as a landmark so it is discoverable alongside the main nav.\n const headingId = `${topSectionHeadingId}-${index}`;\n\n return (\n <section\n key={group.title}\n aria-labelledby={headingId}\n className={styles['footer__top-column']}\n >\n <div className={styles['footer__top-heading']}>\n {Icon && (\n <Icon\n className={styles['footer__top-icon']}\n aria-hidden=\"true\"\n />\n )}\n <h2 id={headingId} className={styles['footer__top-title']}>\n {group.title}\n </h2>\n </div>\n {links.length > 0 && (\n <ul className={styles['footer__top-links']}>\n {links.map((link) => (\n <li key={link.label}>\n {link.opensChat ? (\n <IconButton\n icon={ArrowRight}\n onClick={onChatOpen}\n className={styles['footer__top-link']}\n labelBehavior=\"wrap\"\n >\n {link.label}\n </IconButton>\n ) : (\n <IconButton\n icon={ArrowRight}\n href={link.href}\n aria-label={link.ariaLabel}\n className={styles['footer__top-link']}\n labelBehavior=\"wrap\"\n renderLink={(linkProps) =>\n renderLink(\n linkProps as FooterLinkProps,\n {\n external:\n link.external ?? false,\n },\n )\n }\n >\n {link.label}\n </IconButton>\n )}\n </li>\n ))}\n </ul>\n )}\n </section>\n );\n })}\n </div>\n </div>\n )}\n\n <div className={styles.footer__bottom}>\n <div className={cn(styles.footer__inner, styles.footer__container)}>\n {navigation && navigation.length > 0 && (\n <nav aria-label={navigationLabel}>\n {/* Accordions below 768px; the columns branch is display:none here. */}\n <div className={styles['footer__nav-accordions']}>\n {navigation.map((group) => (\n <AccordionItem\n key={group.heading}\n variant=\"panel\"\n label={group.heading}\n className={styles.footer__accordion}\n >\n <ul className={styles['footer__link-list']}>\n {group.links.map((link) => (\n <li key={link.label}>\n {renderNavLink(link, renderLink)}\n </li>\n ))}\n </ul>\n </AccordionItem>\n ))}\n </div>\n\n <div className={styles['footer__nav-columns']}>\n {navigation.map((group) => (\n <div key={group.heading} className={styles.footer__column}>\n <h2 className={styles['footer__column-heading']}>\n {group.heading}\n </h2>\n <ul className={styles['footer__link-list']}>\n {group.links.map((link) => (\n <li key={link.label}>\n {renderNavLink(link, renderLink)}\n </li>\n ))}\n </ul>\n </div>\n ))}\n </div>\n </nav>\n )}\n\n {/* The bottom bar always renders: it carries the copyright. */}\n <div\n className={cn(\n styles.footer__divider,\n Boolean(navigation?.length) && styles['footer__divider--after-nav'],\n )}\n />\n\n <div className={styles.footer__meta}>\n {languages && languages.length > 0 && (\n <ul\n className={styles['footer__language-list']}\n aria-label={languagesLabel}\n >\n {languages.map((language) => {\n const isCurrent = language.code === currentLanguageCode;\n\n return (\n <li key={language.code}>\n {renderLink(\n {\n href: language.href,\n className: cn(\n styles.footer__language,\n isCurrent &&\n styles['footer__language--current'],\n focusStyles.focusable,\n ),\n 'aria-label': language.ariaLabel,\n 'aria-current': isCurrent ? 'true' : undefined,\n children: language.label,\n },\n { external: language.external ?? false },\n )}\n </li>\n );\n })}\n </ul>\n )}\n\n <div className={styles['footer__meta-center']}>\n {socialLinks && socialLinks.length > 0 && (\n <ul\n className={styles['footer__social-list']}\n aria-label={socialLabel}\n >\n {socialLinks.map((social) => {\n const Icon = resolveSocialIcon(social.platform);\n\n return (\n <li key={social.platform}>\n {renderLink(\n {\n href: social.href,\n className: cn(\n styles['footer__social-link'],\n focusStyles.focusable,\n ),\n 'aria-label':\n social.ariaLabel ??\n defaultSocialAriaLabel(social.platform),\n children: Icon ? (\n <Icon\n className={\n styles['footer__social-icon']\n }\n aria-hidden=\"true\"\n />\n ) : null,\n },\n { external: true },\n )}\n </li>\n );\n })}\n </ul>\n )}\n\n {organizations && organizations.length > 0 && (\n <ul\n className={styles['footer__organization-list']}\n aria-label={organizationsLabel}\n >\n {organizations.map((organization) => {\n const isCurrent = organization.id === currentOrganizationId;\n\n return (\n <li key={organization.id}>\n {renderLink(\n {\n href: organization.href,\n className: cn(\n styles.footer__organization,\n isCurrent &&\n styles[\n 'footer__organization--current'\n ],\n focusStyles.focusable,\n ),\n 'aria-current': isCurrent\n ? 'true'\n : undefined,\n children: organization.label,\n },\n {\n external: organization.external ?? false,\n },\n )}\n </li>\n );\n })}\n </ul>\n )}\n\n <ul\n className={styles['footer__legal-list']}\n aria-label={mandatoryLinksLabel}\n >\n {visibleMandatoryLinks.map((link) => (\n <li key={link.label}>\n {link.opensCookieSettings ? (\n <button\n type=\"button\"\n onClick={onCookieSettingsClick}\n className={linkClasses(styles.footer__action)}\n >\n {link.label}\n </button>\n ) : (\n renderNavLink(link, renderLink)\n )}\n </li>\n ))}\n <li className={styles.footer__copyright}>\n {copyrightLabel ?? defaultCopyrightLabel()}\n </li>\n </ul>\n </div>\n\n {hasBadges && (\n <div className={styles.footer__apps}>\n {appLinks?.title && (\n <span className={styles['footer__apps-title']}>\n {appLinks.title}\n </span>\n )}\n <div className={styles.footer__badges}>\n {appLinks?.appStore &&\n renderBadge(\n appLinks.appStore,\n appStoreBadge,\n renderLink,\n defaultAppStoreAriaLabel,\n )}\n {appLinks?.googlePlay &&\n renderBadge(\n appLinks.googlePlay,\n googlePlayBadge,\n renderLink,\n defaultGooglePlayAriaLabel,\n )}\n </div>\n </div>\n )}\n </div>\n </div>\n </div>\n </footer>\n );\n};\n"],"names":["cn","styles","textDecorationStyles","focusStyles","jsx","defaultRenderLink","useId","jsxs","index","resolveTopSectionIcon","IconButton","ArrowRight","AccordionItem","resolveSocialIcon","defaultSocialAriaLabel","defaultCopyrightLabel","defaultAppStoreAriaLabel","defaultGooglePlayAriaLabel"],"mappings":"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"}
|