@purpurds/modal 5.11.2 → 5.13.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/dist/LICENSE.txt +5 -12
- package/dist/modal-content.d.ts +3 -1
- package/dist/modal-content.d.ts.map +1 -1
- package/dist/modal.cjs.js +21 -21
- package/dist/modal.cjs.js.map +1 -1
- package/dist/modal.es.js +551 -553
- package/dist/modal.es.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +9 -9
- package/src/modal-content.module.scss +3 -13
- package/src/modal-content.tsx +22 -33
- package/src/modal.stories.tsx +53 -10
package/dist/styles.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
._purpur-notification_10qwf_1{display:flex;flex-direction:column;padding:var(--purpur-spacing-200) var(--purpur-spacing-200) var(--purpur-spacing-200) var(--purpur-spacing-250);box-sizing:border-box;width:100%;background:var(--purpur-color-background-primary);border-radius:var(--purpur-border-radius-md);border:var(--purpur-border-width-sm) solid;border-left:var(--purpur-border-width-lg) solid;gap:var(--purpur-spacing-150);position:relative}._purpur-notification__top_10qwf_14{display:flex;align-items:flex-start;align-self:stretch;justify-content:space-between}._purpur-notification__header_10qwf_20{display:flex;align-items:center;gap:var(--purpur-spacing-100)}._purpur-notification__close-button_10qwf_25{position:absolute;right:calc(var(--purpur-spacing-50) + var(--purpur-spacing-25));top:calc(var(--purpur-spacing-50) + var(--purpur-spacing-25))}._purpur-notification__icon_10qwf_30{flex-shrink:0}._purpur-notification__body_10qwf_33{padding:var(--purpur-spacing-0) var(--purpur-spacing-150) var(--purpur-spacing-50) var(--purpur-spacing-0)}._purpur-notification--success_10qwf_36{border-color:var(--purpur-color-border-status-success)}._purpur-notification--success_10qwf_36 ._purpur-notification__heading_10qwf_39{color:var(--purpur-color-text-status-success-strong)}._purpur-notification--success_10qwf_36 ._purpur-notification__icon_10qwf_30{color:var(--purpur-color-text-status-success-medium)}._purpur-notification--warning_10qwf_45{border-color:var(--purpur-color-border-status-warning)}._purpur-notification--warning_10qwf_45 ._purpur-notification__heading_10qwf_39{color:var(--purpur-color-text-status-warning-strong)}._purpur-notification--warning_10qwf_45 ._purpur-notification__icon_10qwf_30{color:var(--purpur-color-text-status-warning-medium)}._purpur-notification--error_10qwf_54{border-color:var(--purpur-color-border-status-error)}._purpur-notification--error_10qwf_54 ._purpur-notification__heading_10qwf_39{color:var(--purpur-color-text-status-error-strong)}._purpur-notification--error_10qwf_54 ._purpur-notification__icon_10qwf_30{color:var(--purpur-color-text-status-error-medium)}._purpur-notification--info_10qwf_63{border-color:var(--purpur-color-border-status-info)}._purpur-notification--info_10qwf_63 ._purpur-notification__heading_10qwf_39{color:var(--purpur-color-text-status-info-strong)}._purpur-notification--info_10qwf_63 ._purpur-notification__icon_10qwf_30{color:var(--purpur-color-text-status-info-medium)}._purpur-notification--hidden_10qwf_72{display:none;visibility:hidden}._purpur-notification--has-close-button_10qwf_76 ._purpur-notification__top_10qwf_14{padding-right:var(--purpur-spacing-400)}._purpur-modal-
|
|
1
|
+
._purpur-notification_10qwf_1{display:flex;flex-direction:column;padding:var(--purpur-spacing-200) var(--purpur-spacing-200) var(--purpur-spacing-200) var(--purpur-spacing-250);box-sizing:border-box;width:100%;background:var(--purpur-color-background-primary);border-radius:var(--purpur-border-radius-md);border:var(--purpur-border-width-sm) solid;border-left:var(--purpur-border-width-lg) solid;gap:var(--purpur-spacing-150);position:relative}._purpur-notification__top_10qwf_14{display:flex;align-items:flex-start;align-self:stretch;justify-content:space-between}._purpur-notification__header_10qwf_20{display:flex;align-items:center;gap:var(--purpur-spacing-100)}._purpur-notification__close-button_10qwf_25{position:absolute;right:calc(var(--purpur-spacing-50) + var(--purpur-spacing-25));top:calc(var(--purpur-spacing-50) + var(--purpur-spacing-25))}._purpur-notification__icon_10qwf_30{flex-shrink:0}._purpur-notification__body_10qwf_33{padding:var(--purpur-spacing-0) var(--purpur-spacing-150) var(--purpur-spacing-50) var(--purpur-spacing-0)}._purpur-notification--success_10qwf_36{border-color:var(--purpur-color-border-status-success)}._purpur-notification--success_10qwf_36 ._purpur-notification__heading_10qwf_39{color:var(--purpur-color-text-status-success-strong)}._purpur-notification--success_10qwf_36 ._purpur-notification__icon_10qwf_30{color:var(--purpur-color-text-status-success-medium)}._purpur-notification--warning_10qwf_45{border-color:var(--purpur-color-border-status-warning)}._purpur-notification--warning_10qwf_45 ._purpur-notification__heading_10qwf_39{color:var(--purpur-color-text-status-warning-strong)}._purpur-notification--warning_10qwf_45 ._purpur-notification__icon_10qwf_30{color:var(--purpur-color-text-status-warning-medium)}._purpur-notification--error_10qwf_54{border-color:var(--purpur-color-border-status-error)}._purpur-notification--error_10qwf_54 ._purpur-notification__heading_10qwf_39{color:var(--purpur-color-text-status-error-strong)}._purpur-notification--error_10qwf_54 ._purpur-notification__icon_10qwf_30{color:var(--purpur-color-text-status-error-medium)}._purpur-notification--info_10qwf_63{border-color:var(--purpur-color-border-status-info)}._purpur-notification--info_10qwf_63 ._purpur-notification__heading_10qwf_39{color:var(--purpur-color-text-status-info-strong)}._purpur-notification--info_10qwf_63 ._purpur-notification__icon_10qwf_30{color:var(--purpur-color-text-status-info-medium)}._purpur-notification--hidden_10qwf_72{display:none;visibility:hidden}._purpur-notification--has-close-button_10qwf_76 ._purpur-notification__top_10qwf_14{padding-right:var(--purpur-spacing-400)}._purpur-modal-content_1ifm3_1{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;overflow:auto;background-color:var(--purpur-color-background-primary);animation:_fadeIn_1ifm3_1 var(--purpur-motion-duration-200) var(--purpur-motion-easing-ease-in-out)}._purpur-modal-content_1ifm3_1:focus{outline:0}@media (min-width: 600px){._purpur-modal-content_1ifm3_1{inset:unset;top:50%;left:50%;width:720px;max-width:calc(100% - var(--purpur-spacing-300) * 2);min-height:320px;max-height:80%;overflow:hidden;border-radius:var(--purpur-border-radius-lg);box-sizing:border-box;transform:translate(-50%,-50%);box-shadow:var(--purpur-shadow-lg)}}@media (min-width: 600px){._purpur-modal-content__overlay_1ifm3_30{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--purpur-color-overlay-default);animation:_fadeIn_1ifm3_1 var(--purpur-motion-duration-200) var(--purpur-motion-easing-ease-in-out)}}._purpur-modal-content_1ifm3_1 ._purpur-modal-content__close-button_1ifm3_37{position:absolute;top:var(--purpur-spacing-100);right:var(--purpur-spacing-100);z-index:2}@media (min-width: 600px){._purpur-modal-content_1ifm3_1 ._purpur-modal-content__close-button_1ifm3_37{top:var(--purpur-spacing-150)}}._purpur-modal-content__wrapper_1ifm3_48{height:100%;overflow:auto}@media (min-width: 600px){._purpur-modal-content__wrapper_1ifm3_48{display:flex;flex-direction:column}}._purpur-modal-content__wrapper-inner_1ifm3_58{display:flex;flex-direction:column}._purpur-modal-content__image-wrapper_1ifm3_62{position:relative;flex-shrink:0;order:-1;width:100%;aspect-ratio:2/1;overflow:hidden}@media (((min-width: 600px) and (max-width: 649px) and (max-height: 720px)) or ((min-width: 650px) and (max-height: 820px))){._purpur-modal-content__image-wrapper_1ifm3_62{aspect-ratio:3/1}}._purpur-modal-content__image-wrapper_1ifm3_62 img{position:absolute;top:50%;left:50%;display:block;width:100%;height:auto;transform:translate(-50%,-50%)}._purpur-modal-content__header_1ifm3_85{position:sticky;top:0;flex-grow:0;padding:var(--purpur-spacing-200) calc(var(--purpur-spacing-600) + var(--purpur-spacing-150)) 0 var(--purpur-spacing-200);background:var(--purpur-color-background-primary);z-index:1}@media (min-width: 600px){._purpur-modal-content__header_1ifm3_85{padding:var(--purpur-spacing-250) calc(var(--purpur-spacing-800) + var(--purpur-spacing-50)) 0 var(--purpur-spacing-300)}}._purpur-modal-content__title_1ifm3_98,._purpur-modal-content__description_1ifm3_101{margin:0}._purpur-modal-content__body_1ifm3_104{padding:var(--purpur-spacing-200) var(--purpur-spacing-200) 0}@media (min-width: 600px){._purpur-modal-content__body_1ifm3_104{padding:var(--purpur-spacing-250) var(--purpur-spacing-300) 0}}._purpur-modal-content__body-inner_1ifm3_112{position:relative;display:flex;flex-direction:column;gap:var(--purpur-spacing-400);padding-bottom:var(--purpur-spacing-250)}@media (min-width: 600px){._purpur-modal-content__body-inner_1ifm3_112{padding-bottom:var(--purpur-spacing-300)}}._purpur-modal-content__actions-buttons_1ifm3_124{display:flex;flex-direction:column;gap:var(--purpur-spacing-200);margin-top:auto}@media (min-width: 600px){._purpur-modal-content__actions-buttons_1ifm3_124{flex-direction:row-reverse;flex-grow:0}}._purpur-modal-content__actions-button_1ifm3_124{width:100%}@media (min-width: 600px){._purpur-modal-content__actions-button_1ifm3_124{width:auto}._purpur-modal-content__actions-button_1ifm3_124:nth-child(3){margin-right:auto}}._purpur-modal-content__notification_1ifm3_147{padding-top:var(--purpur-spacing-300)}._purpur-modal-content--with-image_1ifm3_150:not(._purpur-modal-content--overflow_1ifm3_150) ._purpur-modal-content__header_1ifm3_85{padding-top:var(--purpur-spacing-250)}@media (min-width: 600px){._purpur-modal-content--overflow_1ifm3_150:not(._purpur-modal-content--with-image_1ifm3_150) ._purpur-modal-content__header_1ifm3_85{position:relative}._purpur-modal-content--overflow_1ifm3_150:not(._purpur-modal-content--with-image_1ifm3_150) ._purpur-modal-content__close-button_1ifm3_37{top:50%;transform:translateY(-50%)}}._purpur-modal-content--overflow_1ifm3_150 ._purpur-modal-content__header_1ifm3_85{padding-bottom:var(--purpur-spacing-200);border-bottom:1px solid var(--purpur-color-border-weak)}._purpur-modal-content--overflow_1ifm3_150 ._purpur-modal-content__body_1ifm3_104{padding-top:var(--purpur-spacing-300)}@media (min-width: 600px){._purpur-modal-content--overflow_1ifm3_150 ._purpur-modal-content__body_1ifm3_104{padding-top:var(--purpur-spacing-400)}}._purpur-modal-content--overflow_1ifm3_150 ._purpur-modal-content__actions_1ifm3_124{position:relative}._purpur-modal-content--overflow_1ifm3_150 ._purpur-modal-content__actions-buttons_1ifm3_124{position:relative;z-index:2}._purpur-modal-content--overflow_1ifm3_150 ._purpur-modal-content__actions-separator_1ifm3_181{position:absolute;bottom:calc(100% - 1px);left:0;z-index:1;width:calc(100% - var(--purpur-spacing-300));height:calc(var(--purpur-spacing-400) + var(--purpur-spacing-100));background:linear-gradient(transparent,var(--purpur-color-background-primary));pointer-events:none}._purpur-modal-content--overflow_1ifm3_150._purpur-modal-content--sticky-footer_1ifm3_191 ._purpur-modal-content__actions-buttons_1ifm3_124{border-top:1px solid var(--purpur-color-border-weak)}._purpur-modal-content--sticky-footer_1ifm3_191{justify-content:space-between}._purpur-modal-content--sticky-footer_1ifm3_191 ._purpur-modal-content__body-inner_1ifm3_112{padding-bottom:var(--purpur-spacing-300)}._purpur-modal-content--sticky-footer_1ifm3_191 ._purpur-modal-content__actions-buttons_1ifm3_124{padding:var(--purpur-spacing-200)}@media (min-width: 600px){._purpur-modal-content--sticky-footer_1ifm3_191 ._purpur-modal-content__actions-buttons_1ifm3_124{padding-left:var(--purpur-spacing-300);padding-right:var(--purpur-spacing-300)}}._purpur-modal-content--sticky-footer_1ifm3_191 ._purpur-modal-content__notification_1ifm3_147{padding:var(--purpur-spacing-100) var(--purpur-spacing-300) var(--purpur-spacing-200)}@keyframes _fadeIn_1ifm3_1{0%{opacity:0}to{opacity:1}}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@purpurds/modal",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.13.0",
|
|
4
4
|
"license": "AGPL-3.0-only",
|
|
5
5
|
"main": "./dist/modal.cjs.js",
|
|
6
6
|
"types": "./dist/modal.d.ts",
|
|
@@ -16,14 +16,14 @@
|
|
|
16
16
|
"dependencies": {
|
|
17
17
|
"@radix-ui/react-dialog": "~1.0.5",
|
|
18
18
|
"classnames": "~2.5.0",
|
|
19
|
-
"@purpurds/button": "5.
|
|
20
|
-
"@purpurds/
|
|
21
|
-
"@purpurds/
|
|
22
|
-
"@purpurds/
|
|
23
|
-
"@purpurds/
|
|
24
|
-
"@purpurds/
|
|
25
|
-
"@purpurds/
|
|
26
|
-
"@purpurds/
|
|
19
|
+
"@purpurds/button": "5.13.0",
|
|
20
|
+
"@purpurds/icon": "5.13.0",
|
|
21
|
+
"@purpurds/heading": "5.13.0",
|
|
22
|
+
"@purpurds/paragraph": "5.13.0",
|
|
23
|
+
"@purpurds/text-spacing": "5.13.0",
|
|
24
|
+
"@purpurds/visually-hidden": "5.13.0",
|
|
25
|
+
"@purpurds/tokens": "5.13.0",
|
|
26
|
+
"@purpurds/notification": "5.13.0"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
29
|
"@rushstack/eslint-patch": "~1.10.0",
|
|
@@ -59,17 +59,12 @@ $fadeIn: fadeIn var(--purpur-motion-duration-200) var(--purpur-motion-easing-eas
|
|
|
59
59
|
@media (min-width: $purpur-breakpoint-md) {
|
|
60
60
|
display: flex;
|
|
61
61
|
flex-direction: column;
|
|
62
|
-
overflow: hidden;
|
|
63
62
|
}
|
|
64
63
|
}
|
|
65
64
|
|
|
66
65
|
&__wrapper-inner {
|
|
67
66
|
display: flex;
|
|
68
67
|
flex-direction: column;
|
|
69
|
-
|
|
70
|
-
@media (min-width: $purpur-breakpoint-md) {
|
|
71
|
-
overflow: hidden;
|
|
72
|
-
}
|
|
73
68
|
}
|
|
74
69
|
|
|
75
70
|
&__image-wrapper {
|
|
@@ -100,15 +95,12 @@ $fadeIn: fadeIn var(--purpur-motion-duration-200) var(--purpur-motion-easing-eas
|
|
|
100
95
|
position: sticky;
|
|
101
96
|
top: 0;
|
|
102
97
|
flex-grow: 0;
|
|
103
|
-
padding: var(--purpur-spacing-200) calc(var(--purpur-spacing-600) + var(--purpur-spacing-150)) 0
|
|
104
|
-
var(--purpur-spacing-200);
|
|
98
|
+
padding: var(--purpur-spacing-200) calc(var(--purpur-spacing-600) + var(--purpur-spacing-150)) 0 var(--purpur-spacing-200);
|
|
105
99
|
background: var(--purpur-color-background-primary);
|
|
106
100
|
z-index: 1;
|
|
107
101
|
|
|
108
102
|
@media (min-width: $purpur-breakpoint-md) {
|
|
109
|
-
|
|
110
|
-
padding: var(--purpur-spacing-250) calc(var(--purpur-spacing-800) + var(--purpur-spacing-50))
|
|
111
|
-
0 var(--purpur-spacing-300);
|
|
103
|
+
padding: var(--purpur-spacing-250) calc(var(--purpur-spacing-800) + var(--purpur-spacing-50)) 0 var(--purpur-spacing-300);
|
|
112
104
|
}
|
|
113
105
|
}
|
|
114
106
|
|
|
@@ -124,8 +116,6 @@ $fadeIn: fadeIn var(--purpur-motion-duration-200) var(--purpur-motion-easing-eas
|
|
|
124
116
|
padding: var(--purpur-spacing-200) var(--purpur-spacing-200) 0;
|
|
125
117
|
|
|
126
118
|
@media (min-width: $purpur-breakpoint-md) {
|
|
127
|
-
height: 100%;
|
|
128
|
-
overflow: auto;
|
|
129
119
|
padding: var(--purpur-spacing-250) var(--purpur-spacing-300) 0;
|
|
130
120
|
}
|
|
131
121
|
}
|
|
@@ -256,4 +246,4 @@ $fadeIn: fadeIn var(--purpur-motion-duration-200) var(--purpur-motion-easing-eas
|
|
|
256
246
|
to {
|
|
257
247
|
opacity: 1;
|
|
258
248
|
}
|
|
259
|
-
}
|
|
249
|
+
}
|
package/src/modal-content.tsx
CHANGED
|
@@ -4,7 +4,6 @@ import { Button, ButtonVariant } from "@purpurds/button";
|
|
|
4
4
|
import { Heading } from "@purpurds/heading";
|
|
5
5
|
import { IconClose } from "@purpurds/icon";
|
|
6
6
|
import { Paragraph } from "@purpurds/paragraph";
|
|
7
|
-
import { purpurBreakpointMd } from "@purpurds/tokens";
|
|
8
7
|
import { VisuallyHidden } from "@purpurds/visually-hidden";
|
|
9
8
|
import * as RadixDialog from "@radix-ui/react-dialog";
|
|
10
9
|
import c from "classnames/bind";
|
|
@@ -20,7 +19,7 @@ export type DefaultProps = {
|
|
|
20
19
|
/**
|
|
21
20
|
* An array of actions to be displayed at the bottom of the modal in the form of buttons. A maximum of 3 buttons will be rendered,
|
|
22
21
|
* */
|
|
23
|
-
actions?: Array<{ label: string; onClick: () => void }>;
|
|
22
|
+
actions?: Array<{ label: string; onClick: () => void; disabled?: boolean; loading?: boolean }>;
|
|
24
23
|
children: ReactNode;
|
|
25
24
|
className?: string;
|
|
26
25
|
/**
|
|
@@ -117,8 +116,6 @@ export const ModalContent = forwardRef(
|
|
|
117
116
|
const [contentOverflow, setContentOverflow] = useState(false);
|
|
118
117
|
const wrapperRef = useRef<HTMLDivElement>(null);
|
|
119
118
|
const wrapperInnerRef = useRef<HTMLDivElement>(null);
|
|
120
|
-
const bodyWrapperRef = useRef<HTMLDivElement>(null);
|
|
121
|
-
const bodyInnerRef = useRef<HTMLDivElement>(null);
|
|
122
119
|
|
|
123
120
|
const classes = cx([
|
|
124
121
|
rootClassName,
|
|
@@ -137,25 +134,13 @@ export const ModalContent = forwardRef(
|
|
|
137
134
|
};
|
|
138
135
|
|
|
139
136
|
const handleContentOverflow = useCallback(() => {
|
|
140
|
-
if (
|
|
141
|
-
!wrapperRef.current ||
|
|
142
|
-
!wrapperInnerRef.current ||
|
|
143
|
-
!bodyWrapperRef.current ||
|
|
144
|
-
!bodyInnerRef.current
|
|
145
|
-
) {
|
|
137
|
+
if (!wrapperRef.current || !wrapperInnerRef.current) {
|
|
146
138
|
return;
|
|
147
139
|
}
|
|
148
140
|
|
|
149
|
-
const
|
|
150
|
-
|
|
151
|
-
const computedStyle = window.getComputedStyle(
|
|
152
|
-
isMobile ? wrapperRef.current : bodyWrapperRef.current,
|
|
153
|
-
null
|
|
154
|
-
);
|
|
141
|
+
const computedStyle = window.getComputedStyle(wrapperRef.current, null);
|
|
155
142
|
const wrapperHeight = parseFloat(computedStyle.getPropertyValue("height"));
|
|
156
|
-
const innerHeight =
|
|
157
|
-
? wrapperInnerRef.current.offsetHeight
|
|
158
|
-
: bodyInnerRef.current.offsetHeight;
|
|
143
|
+
const innerHeight = wrapperInnerRef.current.offsetHeight;
|
|
159
144
|
|
|
160
145
|
setContentOverflow(wrapperHeight < innerHeight);
|
|
161
146
|
}, []);
|
|
@@ -226,8 +211,8 @@ export const ModalContent = forwardRef(
|
|
|
226
211
|
{image}
|
|
227
212
|
</div>
|
|
228
213
|
)}
|
|
229
|
-
<div
|
|
230
|
-
<div
|
|
214
|
+
<div className={cx(`${rootClassName}__body`)}>
|
|
215
|
+
<div className={cx(`${rootClassName}__body-inner`)}>
|
|
231
216
|
{description && hideDescription && (
|
|
232
217
|
<VisuallyHidden asChild>
|
|
233
218
|
<RadixDialog.Description data-testid={getTestId("description")}>
|
|
@@ -301,7 +286,7 @@ export const ModalActions = ({
|
|
|
301
286
|
primaryActionVariant,
|
|
302
287
|
notification,
|
|
303
288
|
}: Pick<ModalContentProps, "actions" | "notification"> & {
|
|
304
|
-
primaryActionVariant?:
|
|
289
|
+
primaryActionVariant?: PrimaryActionVariant;
|
|
305
290
|
}) => {
|
|
306
291
|
const notificationRef = useRef<HTMLDivElement>(null);
|
|
307
292
|
const buttonVariants = [primaryActionVariant, "secondary", "text"];
|
|
@@ -315,17 +300,21 @@ export const ModalActions = ({
|
|
|
315
300
|
return actions && actions.length > 0 ? (
|
|
316
301
|
<div className={cx(`${rootClassName}__actions`)}>
|
|
317
302
|
<div className={cx(`${rootClassName}__actions-buttons`)} data-testid="modal actions">
|
|
318
|
-
{actions
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
303
|
+
{actions
|
|
304
|
+
.slice(0, MAX_NUMBER_OF_ACTIONS)
|
|
305
|
+
.map(({ label, onClick, disabled, loading }, index) => (
|
|
306
|
+
<Button
|
|
307
|
+
key={label}
|
|
308
|
+
data-testid="modal actions button"
|
|
309
|
+
variant={(buttonVariants[index] as ButtonVariant) || ""}
|
|
310
|
+
onClick={onClick}
|
|
311
|
+
disabled={disabled}
|
|
312
|
+
loading={loading}
|
|
313
|
+
className={cx(`${rootClassName}__actions-button`)}
|
|
314
|
+
>
|
|
315
|
+
{label}
|
|
316
|
+
</Button>
|
|
317
|
+
))}
|
|
329
318
|
</div>
|
|
330
319
|
{notification && (
|
|
331
320
|
<div className={cx(`${rootClassName}__notification`)} ref={notificationRef}>
|
package/src/modal.stories.tsx
CHANGED
|
@@ -77,7 +77,7 @@ export const Showcase: Story = {
|
|
|
77
77
|
stickyButtons
|
|
78
78
|
zIndex={Z_INDEX_TO_MAKE_IT_LOOK_GOOD_IN_STORYBOOK}
|
|
79
79
|
>
|
|
80
|
-
<Paragraph
|
|
80
|
+
<Paragraph>
|
|
81
81
|
By clicking "I accept cookies" you consent to the storage of cookies on your
|
|
82
82
|
device to improve website navigation, analyze website usage and assist in our
|
|
83
83
|
marketing efforts.
|
|
@@ -95,7 +95,7 @@ export const Showcase: Story = {
|
|
|
95
95
|
zIndex={Z_INDEX_TO_MAKE_IT_LOOK_GOOD_IN_STORYBOOK}
|
|
96
96
|
>
|
|
97
97
|
<TextSpacing>
|
|
98
|
-
<Paragraph
|
|
98
|
+
<Paragraph>
|
|
99
99
|
We are Telia Sverige AB (org. nr 556430-0142), (hereafter ‘Telia’). In this Privacy
|
|
100
100
|
policy we describe how we, as the controller, process and protect your personal data
|
|
101
101
|
(hereafter ‘data’). Telia recognizes that the protection of your personal data is
|
|
@@ -104,14 +104,14 @@ export const Showcase: Story = {
|
|
|
104
104
|
the General Data Protection Regulation (GDPR), the Data Protection Act 2018:2181 ,
|
|
105
105
|
The Electronic Communications Act 2022:
|
|
106
106
|
</Paragraph>
|
|
107
|
-
<Paragraph
|
|
107
|
+
<Paragraph>
|
|
108
108
|
This Privacy policy applies to the processing of personal data of individuals,
|
|
109
109
|
regardless of whether you are a consumer or business customer. In addition, Telia
|
|
110
110
|
may have service-specific privacy policys, which describe the processing of personal
|
|
111
111
|
data in the context of a specific service. These can be found along with the
|
|
112
112
|
specific services that we provide.
|
|
113
113
|
</Paragraph>
|
|
114
|
-
<Paragraph
|
|
114
|
+
<Paragraph>This Privacy policy sets out:</Paragraph>
|
|
115
115
|
<ul>
|
|
116
116
|
<li>how we collect personal data</li>
|
|
117
117
|
<li>what personal data we process</li>
|
|
@@ -124,7 +124,7 @@ export const Showcase: Story = {
|
|
|
124
124
|
can execute these rights.
|
|
125
125
|
</li>
|
|
126
126
|
</ul>
|
|
127
|
-
<Paragraph
|
|
127
|
+
<Paragraph>
|
|
128
128
|
This Privacy policy does not apply to the processing of personal data processed by
|
|
129
129
|
other companies when you are using their services or websites, even if they were
|
|
130
130
|
accessed through Telia's communications network or services.
|
|
@@ -145,7 +145,7 @@ export const Showcase: Story = {
|
|
|
145
145
|
stickyButtons={false}
|
|
146
146
|
zIndex={Z_INDEX_TO_MAKE_IT_LOOK_GOOD_IN_STORYBOOK}
|
|
147
147
|
>
|
|
148
|
-
<Paragraph
|
|
148
|
+
<Paragraph>
|
|
149
149
|
Upon termination of the main subscription, all related data sims and e-sims are
|
|
150
150
|
terminated. The notice period may vary.
|
|
151
151
|
</Paragraph>
|
|
@@ -158,6 +158,11 @@ export const Showcase: Story = {
|
|
|
158
158
|
|
|
159
159
|
export const ModalContentWithImage: Story = {
|
|
160
160
|
render: () => {
|
|
161
|
+
const actions = [
|
|
162
|
+
{ label: "Primary action", onClick: () => {} },
|
|
163
|
+
{ label: "Secondary action", onClick: () => {} },
|
|
164
|
+
];
|
|
165
|
+
|
|
161
166
|
return (
|
|
162
167
|
<div style={{ display: "flex", gap: "var(--purpur-spacing-200)" }}>
|
|
163
168
|
<Modal>
|
|
@@ -165,6 +170,8 @@ export const ModalContentWithImage: Story = {
|
|
|
165
170
|
<Button variant="primary">Open</Button>
|
|
166
171
|
</Modal.Trigger>
|
|
167
172
|
<Modal.Content
|
|
173
|
+
closeButtonAllyLabel="Close"
|
|
174
|
+
showCloseButton
|
|
168
175
|
zIndex={Z_INDEX_TO_MAKE_IT_LOOK_GOOD_IN_STORYBOOK}
|
|
169
176
|
image={
|
|
170
177
|
// eslint-disable-next-line react/jsx-wrap-multilines
|
|
@@ -173,21 +180,57 @@ export const ModalContentWithImage: Story = {
|
|
|
173
180
|
alt="Familjens unga ser på tv tillsammans mysig stämning men spännande"
|
|
174
181
|
/>
|
|
175
182
|
}
|
|
183
|
+
actions={actions}
|
|
176
184
|
title="Modal with image"
|
|
177
185
|
>
|
|
178
186
|
<TextSpacing>
|
|
179
|
-
<Paragraph
|
|
187
|
+
<Paragraph>
|
|
180
188
|
Lorem ipsum dolor sit amet consectetur. Diam vitae leo amet tortor ut faucibus diam
|
|
181
189
|
faucibus eu. Pellentesque quis pellentesque sit fermentum. Mi id aenean aliquam nibh
|
|
182
190
|
placerat.Lorem ipsum dolor sit amet consectetur. Diam vitae leo amet tortor ut
|
|
183
191
|
faucibus diam faucibus eu.
|
|
184
192
|
</Paragraph>
|
|
185
|
-
<Paragraph
|
|
193
|
+
<Paragraph>
|
|
186
194
|
Pellentesque quis pellentesque sit fermentum. Mi id aenean aliquam nibh
|
|
187
195
|
placerat.Lorem ipsum dolor sit amet consectetur. Diam vitae leo amet tortor ut
|
|
188
196
|
faucibus diam faucibus eu. Pellentesque quis pellentesque sit fermentum. Mi id
|
|
189
197
|
aenean aliquam nibh placerat.
|
|
190
198
|
</Paragraph>
|
|
199
|
+
<Paragraph>
|
|
200
|
+
Donec at ipsum dui. Aenean vitae odio ultrices, efficitur justo vitae, dignissim
|
|
201
|
+
felis. Donec sodales sed sapien id commodo. In scelerisque, est nec lacinia dictum,
|
|
202
|
+
tellus nisi vulputate turpis, quis laoreet nisl nibh rhoncus nisi. Pellentesque vel
|
|
203
|
+
dictum elit. Curabitur suscipit diam ut dictum vestibulum. Pellentesque et mi ut ex
|
|
204
|
+
maximus dignissim. Maecenas id maximus magna. Nam venenatis sem elit, sit amet
|
|
205
|
+
varius tellus vulputate id. Etiam pharetra mollis tempus. Vestibulum quis euismod
|
|
206
|
+
mauris. Sed porta sagittis tempor. Aliquam fermentum, sem tempus fermentum rhoncus,
|
|
207
|
+
neque diam condimentum dui, nec sodales diam nunc sit amet velit. Aenean eu
|
|
208
|
+
hendrerit ligula, et sodales orci.
|
|
209
|
+
</Paragraph>
|
|
210
|
+
<Paragraph>
|
|
211
|
+
Nam imperdiet ante nulla, non bibendum odio fringilla at. Curabitur aliquam sem
|
|
212
|
+
diam, non eleifend ipsum hendrerit eu. Pellentesque bibendum, dolor et varius
|
|
213
|
+
imperdiet, risus metus auctor enim, consectetur dictum ex justo ut turpis. Nullam
|
|
214
|
+
vel ligula ex. Curabitur cursus, metus sit amet porta fermentum, odio leo ultricies
|
|
215
|
+
orci, sed ornare nisi enim et massa. Nulla cursus ex et lectus congue malesuada.
|
|
216
|
+
Aliquam consectetur sem eu mauris imperdiet convallis a eu eros. Nam turpis dui,
|
|
217
|
+
placerat sit amet lacus tincidunt, tempor volutpat ligula. Vivamus dapibus arcu eu
|
|
218
|
+
sollicitudin tempus. Nullam sollicitudin augue quis dictum eleifend. Sed condimentum
|
|
219
|
+
elit risus, tincidunt fermentum quam vulputate ut. In hac habitasse platea dictumst.
|
|
220
|
+
Fusce mattis gravida neque, non blandit tellus tempor sit amet. Aliquam tristique
|
|
221
|
+
accumsan mi sed tincidunt.
|
|
222
|
+
</Paragraph>
|
|
223
|
+
<Paragraph>
|
|
224
|
+
Nullam eu lacus et sapien faucibus blandit ac non ex. Maecenas eget nibh nisl. Nam
|
|
225
|
+
quam eros, fringilla sed tempor ut, semper a est. Nullam massa diam, vestibulum a
|
|
226
|
+
massa at, dignissim sagittis diam. Morbi malesuada, massa vel condimentum tincidunt,
|
|
227
|
+
turpis est elementum tellus, id blandit erat metus vitae neque. Donec et laoreet
|
|
228
|
+
magna. Mauris eget lorem ut orci eleifend imperdiet. Suspendisse a euismod nulla,
|
|
229
|
+
sed auctor neque. Quisque tempor sollicitudin vulputate. Phasellus auctor urna sed
|
|
230
|
+
nunc dignissim, in mollis leo tincidunt. Pellentesque venenatis suscipit ipsum.
|
|
231
|
+
Vestibulum at condimentum tortor. Donec vestibulum lorem eu odio pellentesque, id
|
|
232
|
+
pretium urna gravida.
|
|
233
|
+
</Paragraph>
|
|
191
234
|
</TextSpacing>
|
|
192
235
|
</Modal.Content>
|
|
193
236
|
</Modal>
|
|
@@ -216,13 +259,13 @@ export const ModalContentWithNotification: Story = {
|
|
|
216
259
|
title="Notification heading"
|
|
217
260
|
>
|
|
218
261
|
<TextSpacing>
|
|
219
|
-
<Paragraph
|
|
262
|
+
<Paragraph>
|
|
220
263
|
Lorem ipsum dolor sit amet consectetur. Diam vitae leo amet tortor ut faucibus diam
|
|
221
264
|
faucibus eu. Pellentesque quis pellentesque sit fermentum. Mi id aenean aliquam nibh
|
|
222
265
|
placerat.Lorem ipsum dolor sit amet consectetur. Diam vitae leo amet tortor ut
|
|
223
266
|
faucibus diam faucibus eu.
|
|
224
267
|
</Paragraph>
|
|
225
|
-
<Paragraph
|
|
268
|
+
<Paragraph>
|
|
226
269
|
Pellentesque quis pellentesque sit fermentum. Mi id aenean aliquam nibh
|
|
227
270
|
placerat.Lorem ipsum dolor sit amet consectetur. Diam vitae leo amet tortor ut
|
|
228
271
|
faucibus diam faucibus eu. Pellentesque quis pellentesque sit fermentum. Mi id
|