@bethinkpl/design-system 20.1.1 → 21.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/design-system.umd.js +814 -773
- package/dist/design-system.umd.js.map +1 -1
- package/dist/lib/js/components/Drawer/DrawerHeader/DrawerHeader.vue.d.ts +282 -3
- package/dist/lib/js/components/Drawer/DrawerListItem/DrawerListItem.vue.d.ts +228 -3
- package/dist/lib/js/components/Modals/Modal/Modal.vue.d.ts +15 -0
- package/dist/lib/js/components/Modals/ModalDialog/ModalDialog.vue.d.ts +10 -0
- package/dist/lib/js/components/SelectList/SelectList.vue.d.ts +4 -3
- package/dist/lib/js/components/SelectList/SelectListItem/SelectListItem.vue.d.ts +258 -3
- package/dist/lib/js/components/SelectList/SelectListItemDivider/SelectListItemDivider.vue.d.ts +8 -3
- package/docs/iframe.html +1 -1
- package/docs/main.e1d54860.iframe.bundle.js +1 -0
- package/docs/project.json +1 -1
- package/lib/js/components/BadgeScore/BadgeScore.vue +4 -4
- package/lib/js/components/Banner/Banner.vue +14 -14
- package/lib/js/components/Buttons/IconButton/IconButton.vue +2 -2
- package/lib/js/components/Cards/CardExpandable/CardExpandable.vue +1 -1
- package/lib/js/components/Chip/Chip.vue +6 -6
- package/lib/js/components/Drawer/DrawerContent/DrawerContent.vue +1 -1
- package/lib/js/components/Drawer/DrawerDivider/DrawerDivider.vue +1 -1
- package/lib/js/components/Drawer/DrawerHeader/DrawerHeader.vue +3 -3
- package/lib/js/components/Drawer/DrawerListItem/DrawerListItem.vue +2 -2
- package/lib/js/components/Drawer/DrawerListItemGroup/DrawerListItemGroup.vue +1 -1
- package/lib/js/components/Drawer/DrawerTile/DrawerTile.vue +1 -1
- package/lib/js/components/Dropdown/Dropdown.vue +2 -2
- package/lib/js/components/Form/SelectionControl/SelectionControl.vue +12 -12
- package/lib/js/components/Headers/OverlayHeader/OverlayHeader.vue +11 -11
- package/lib/js/components/Headers/PageHeader/PageHeader.vue +5 -5
- package/lib/js/components/Headers/SectionHeader/SectionHeader.vue +19 -19
- package/lib/js/components/IconText/IconText.vue +3 -3
- package/lib/js/components/Icons/FeatureIcon/FeatureIcon.vue +6 -6
- package/lib/js/components/Modal/Modal.vue +6 -6
- package/lib/js/components/Modals/Modal/Modal.stories.ts +29 -4
- package/lib/js/components/Modals/Modal/Modal.vue +33 -4
- package/lib/js/components/Modals/ModalDialog/ModalDialog.stories.ts +18 -2
- package/lib/js/components/Modals/ModalDialog/ModalDialog.vue +18 -1
- package/lib/js/components/NumberInCircle/NumberInCircle.vue +1 -1
- package/lib/js/components/Outline/OutlineDivider/OutlineDivider.vue +1 -1
- package/lib/js/components/Outline/OutlineItem/OutlineItem.vue +4 -4
- package/lib/js/components/Outline/OutlineSectionHeader/OutlineSectionHeader.vue +1 -1
- package/lib/js/components/Pagination/Pagination.vue +4 -4
- package/lib/js/components/PopOver/PopOver.vue +2 -2
- package/lib/js/components/ProgressBar/ProgressBar.vue +8 -8
- package/lib/js/components/ProgressDonutChart/ProgressDonutChart.vue +2 -2
- package/lib/js/components/RichList/BasicRichListItem/BasicRichListItem.vue +2 -2
- package/lib/js/components/RichList/GroupRichListItem/GroupRichListItem.vue +1 -1
- package/lib/js/components/RichList/RichListItem/RichListItem.vue +27 -27
- package/lib/js/components/SectionTitle/SectionTitle.vue +2 -2
- package/lib/js/components/SelectList/SelectList.vue +1 -1
- package/lib/js/components/SelectList/SelectListItem/SelectListItem.vue +2 -2
- package/lib/js/components/SelectList/SelectListItemDivider/SelectListItemDivider.vue +1 -1
- package/lib/js/components/SelectList/SelectListSectionTitle/SelectListSectionTitle.vue +1 -1
- package/lib/js/components/SelectionTile/SelectionTile.vue +3 -3
- package/lib/js/components/Statuses/AccessStatus/AccessStatus.vue +1 -1
- package/lib/js/components/Statuses/BlockadeStatus/BlockadeStatus.vue +1 -1
- package/lib/js/components/SurveyQuestions/SurveyQuestionOpenEnded/SurveyQuestionOpenEnded.vue +2 -2
- package/lib/js/components/SurveyQuestions/SurveyQuestionScale/SurveyQuestionScale.vue +3 -3
- package/lib/js/components/SurveyQuestions/SurveyQuestionTextarea.vue +1 -1
- package/lib/js/components/SurveyToggle/SurveyToggle.vue +3 -3
- package/lib/js/components/Switch/Switch.vue +2 -2
- package/lib/js/components/TabItem/TabItem.vue +2 -2
- package/lib/js/components/Tile/Tile.vue +2 -2
- package/lib/js/components/Toggles/CounterToggle/CounterToggle.vue +2 -2
- package/lib/js/components/Toggles/ToggleButton/ToggleButton.vue +6 -7
- package/lib/js/styles/Spacings/Spacings.stories.ts +7 -7
- package/lib/styles/components/_buttons.scss +3 -3
- package/lib/styles/settings/_spacings.scss +7 -7
- package/package.json +1 -1
- package/.yarnrc.yml +0 -1
- package/docs/main.bd6db24d.iframe.bundle.js +0 -1
|
@@ -3,7 +3,8 @@ import { Args, ArgTypes, Meta, StoryFn } from '@storybook/vue3';
|
|
|
3
3
|
import Modal from './Modal.vue';
|
|
4
4
|
import { ICONS } from '../../Icons/Icon';
|
|
5
5
|
import { FEATURE_ICON_COLOR } from '../../Icons/FeatureIcon';
|
|
6
|
-
import {
|
|
6
|
+
import { MODAL_HEADER_TITLE_SIZES, MODAL_SIZES } from './Modal.consts';
|
|
7
|
+
import { BUTTON_STATES } from '../../Buttons/Button';
|
|
7
8
|
|
|
8
9
|
export default {
|
|
9
10
|
title: 'Components/Modals/Modal',
|
|
@@ -18,9 +19,9 @@ const StoryTemplate: StoryFn<typeof Modal> = (args) => ({
|
|
|
18
19
|
template:
|
|
19
20
|
'<modal :headerFeatureIcon="ICONS[headerFeatureIcon]" :size="size" :danger="danger" ' +
|
|
20
21
|
':headerTitleSize="headerTitleSize" :headerTitle="headerTitle" :headerSubtitle="headerSubtitle" :contentCentered="contentCentered" :headerFeatureIconColor="headerFeatureIconColor" ' +
|
|
21
|
-
':footerPrimaryButtonText="footerPrimaryButtonText" :footerPrimaryButtonIcon="ICONS[footerPrimaryButtonIcon]" ' +
|
|
22
|
-
':footerSecondaryButtonText="footerSecondaryButtonText" :footerSecondaryButtonIcon="ICONS[footerSecondaryButtonIcon]" ' +
|
|
23
|
-
':footerTertiaryButtonText="footerTertiaryButtonText" :footerTertiaryButtonIcon="ICONS[footerTertiaryButtonIcon]" ' +
|
|
22
|
+
':footerPrimaryButtonText="footerPrimaryButtonText" :footerPrimaryButtonIcon="ICONS[footerPrimaryButtonIcon]" :footerPrimaryButtonState="footerPrimaryButtonState" ' +
|
|
23
|
+
':footerSecondaryButtonText="footerSecondaryButtonText" :footerSecondaryButtonIcon="ICONS[footerSecondaryButtonIcon]" :footerSecondaryButtonState="footerSecondaryButtonState" ' +
|
|
24
|
+
':footerTertiaryButtonText="footerTertiaryButtonText" :footerTertiaryButtonIcon="ICONS[footerTertiaryButtonIcon]" :footerTertiaryButtonState="footerTertiaryButtonState" ' +
|
|
24
25
|
':footerCheckboxText="footerCheckboxText" :headerImage="headerImage">' +
|
|
25
26
|
'<div v-html="defaultSlot" />' +
|
|
26
27
|
'</modal>',
|
|
@@ -47,10 +48,13 @@ const args = {
|
|
|
47
48
|
headerFeatureIconColor: FEATURE_ICON_COLOR.NEUTRAL,
|
|
48
49
|
footerPrimaryButtonText: 'Primary M',
|
|
49
50
|
footerPrimaryButtonIcon: null,
|
|
51
|
+
footerPrimaryButtonState: BUTTON_STATES.DEFAULT,
|
|
50
52
|
footerSecondaryButtonText: 'Secondary M',
|
|
51
53
|
footerSecondaryButtonIcon: null,
|
|
54
|
+
footerSecondaryButtonState: BUTTON_STATES.DEFAULT,
|
|
52
55
|
footerTertiaryButtonText: 'Tertiary M',
|
|
53
56
|
footerTertiaryButtonIcon: null,
|
|
57
|
+
footerTertiaryButtonState: BUTTON_STATES.DEFAULT,
|
|
54
58
|
footerCheckboxText: '',
|
|
55
59
|
} as Args;
|
|
56
60
|
|
|
@@ -81,16 +85,28 @@ const argTypes = {
|
|
|
81
85
|
control: { type: 'select', options: [null, ...Object.keys(ICONS)] },
|
|
82
86
|
defaultValue: null,
|
|
83
87
|
},
|
|
88
|
+
footerPrimaryButtonState: {
|
|
89
|
+
control: { type: 'select', options: Object.values(BUTTON_STATES) },
|
|
90
|
+
defaultValue: BUTTON_STATES.DEFAULT,
|
|
91
|
+
},
|
|
84
92
|
footerSecondaryButtonText: { control: { type: 'text' } },
|
|
85
93
|
footerSecondaryButtonIcon: {
|
|
86
94
|
control: { type: 'select', options: [null, ...Object.keys(ICONS)] },
|
|
87
95
|
defaultValue: null,
|
|
88
96
|
},
|
|
97
|
+
footerSecondaryButtonState: {
|
|
98
|
+
control: { type: 'select', options: Object.values(BUTTON_STATES) },
|
|
99
|
+
defaultValue: BUTTON_STATES.DEFAULT,
|
|
100
|
+
},
|
|
89
101
|
footerTertiaryButtonText: { control: { type: 'text' } },
|
|
90
102
|
footerTertiaryButtonIcon: {
|
|
91
103
|
control: { type: 'select', options: [null, ...Object.keys(ICONS)] },
|
|
92
104
|
defaultValue: ICONS.FA_CHART_COLUMN,
|
|
93
105
|
},
|
|
106
|
+
footerTertiaryButtonState: {
|
|
107
|
+
control: { type: 'select', options: Object.values(BUTTON_STATES) },
|
|
108
|
+
defaultValue: BUTTON_STATES.DEFAULT,
|
|
109
|
+
},
|
|
94
110
|
footerCheckboxText: { control: { type: 'text' } },
|
|
95
111
|
onCloseModal: { action: 'close-modal' },
|
|
96
112
|
onCheckboxChange: { action: 'checkbox-change' },
|
|
@@ -123,10 +139,13 @@ const argsDanger = {
|
|
|
123
139
|
headerFeatureIconColor: FEATURE_ICON_COLOR.NEUTRAL,
|
|
124
140
|
footerPrimaryButtonText: 'Primary M',
|
|
125
141
|
footerPrimaryButtonIcon: null,
|
|
142
|
+
footerPrimaryButtonState: BUTTON_STATES.DEFAULT,
|
|
126
143
|
footerSecondaryButtonText: 'Secondary M',
|
|
127
144
|
footerSecondaryButtonIcon: null,
|
|
145
|
+
footerSecondaryButtonState: BUTTON_STATES.DEFAULT,
|
|
128
146
|
footerTertiaryButtonText: '',
|
|
129
147
|
footerTertiaryButtonIcon: null,
|
|
148
|
+
footerTertiaryButtonState: BUTTON_STATES.DEFAULT,
|
|
130
149
|
footerCheckboxText: '',
|
|
131
150
|
} as Args;
|
|
132
151
|
|
|
@@ -149,10 +168,13 @@ const argsWithImage = {
|
|
|
149
168
|
headerFeatureIconColor: null,
|
|
150
169
|
footerPrimaryButtonText: 'Primary M',
|
|
151
170
|
footerPrimaryButtonIcon: null,
|
|
171
|
+
footerPrimaryButtonState: BUTTON_STATES.DEFAULT,
|
|
152
172
|
footerSecondaryButtonText: 'Secondary M',
|
|
153
173
|
footerSecondaryButtonIcon: null,
|
|
174
|
+
footerSecondaryButtonState: BUTTON_STATES.DEFAULT,
|
|
154
175
|
footerTertiaryButtonText: '',
|
|
155
176
|
footerTertiaryButtonIcon: null,
|
|
177
|
+
footerTertiaryButtonState: BUTTON_STATES.DEFAULT,
|
|
156
178
|
footerCheckboxText: '',
|
|
157
179
|
} as Args;
|
|
158
180
|
|
|
@@ -174,10 +196,13 @@ const argsSmallHeaderAndCentered = {
|
|
|
174
196
|
headerFeatureIconColor: FEATURE_ICON_COLOR.NEUTRAL,
|
|
175
197
|
footerPrimaryButtonText: 'Primary M',
|
|
176
198
|
footerPrimaryButtonIcon: null,
|
|
199
|
+
footerPrimaryButtonState: BUTTON_STATES.DEFAULT,
|
|
177
200
|
footerSecondaryButtonText: 'Secondary M',
|
|
178
201
|
footerSecondaryButtonIcon: null,
|
|
202
|
+
footerSecondaryButtonState: BUTTON_STATES.DEFAULT,
|
|
179
203
|
footerTertiaryButtonText: '',
|
|
180
204
|
footerTertiaryButtonIcon: null,
|
|
205
|
+
footerTertiaryButtonState: BUTTON_STATES.DEFAULT,
|
|
181
206
|
footerCheckboxText: '',
|
|
182
207
|
} as Args;
|
|
183
208
|
|
|
@@ -64,6 +64,7 @@
|
|
|
64
64
|
:type="BUTTON_TYPES.TEXT"
|
|
65
65
|
:color="BUTTON_COLORS.NEUTRAL"
|
|
66
66
|
:icon-left="footerTertiaryButtonIcon"
|
|
67
|
+
:state="footerTertiaryButtonState"
|
|
67
68
|
class="ds-modal__tertiaryButton"
|
|
68
69
|
@click="$emit('tertiary-button-click')"
|
|
69
70
|
>
|
|
@@ -79,6 +80,7 @@
|
|
|
79
80
|
:type="BUTTON_TYPES.OUTLINED"
|
|
80
81
|
:color="calcFooterSecondaryButtonColor"
|
|
81
82
|
:icon-right="footerSecondaryButtonIcon"
|
|
83
|
+
:state="footerSecondaryButtonState"
|
|
82
84
|
@click="$emit('secondary-button-click')"
|
|
83
85
|
>
|
|
84
86
|
{{ footerSecondaryButtonText }}
|
|
@@ -87,6 +89,7 @@
|
|
|
87
89
|
v-if="footerPrimaryButtonText"
|
|
88
90
|
:color="calcFooterPrimaryButtonColor"
|
|
89
91
|
:icon-right="footerPrimaryButtonIcon"
|
|
92
|
+
:state="footerPrimaryButtonState"
|
|
90
93
|
@click="$emit('primary-button-click')"
|
|
91
94
|
>
|
|
92
95
|
{{ footerPrimaryButtonText }}
|
|
@@ -233,13 +236,13 @@ $image-height-small: 140px;
|
|
|
233
236
|
|
|
234
237
|
color: $color-neutral-text-heavy;
|
|
235
238
|
cursor: pointer;
|
|
236
|
-
margin-left: $space-
|
|
239
|
+
margin-left: $space-2xs;
|
|
237
240
|
}
|
|
238
241
|
|
|
239
242
|
&__close {
|
|
240
243
|
position: absolute;
|
|
241
|
-
right: $space-
|
|
242
|
-
top: $space-
|
|
244
|
+
right: $space-3xs;
|
|
245
|
+
top: $space-3xs;
|
|
243
246
|
}
|
|
244
247
|
|
|
245
248
|
&__image {
|
|
@@ -315,7 +318,12 @@ import FeatureIcon from '../../Icons/FeatureIcon/FeatureIcon.vue';
|
|
|
315
318
|
import { MODAL_HEADER_TITLE_SIZES, MODAL_SIZES } from './Modal.consts';
|
|
316
319
|
import { ICON_SIZES, ICONS } from '../../Icons/Icon';
|
|
317
320
|
import { FEATURE_ICON_COLOR, FEATURE_ICON_SIZES } from '../../Icons/FeatureIcon';
|
|
318
|
-
import WnlButton, {
|
|
321
|
+
import WnlButton, {
|
|
322
|
+
BUTTON_COLORS,
|
|
323
|
+
BUTTON_ELEVATIONS,
|
|
324
|
+
BUTTON_STATES,
|
|
325
|
+
BUTTON_TYPES,
|
|
326
|
+
} from '../../Buttons/Button';
|
|
319
327
|
import WnlIconButton, { ICON_BUTTON_COLORS } from '../../Buttons/IconButton';
|
|
320
328
|
import { toRaw } from 'vue';
|
|
321
329
|
|
|
@@ -378,6 +386,13 @@ export default {
|
|
|
378
386
|
return Object.values(ICONS).includes(toRaw(icon));
|
|
379
387
|
},
|
|
380
388
|
},
|
|
389
|
+
footerPrimaryButtonState: {
|
|
390
|
+
type: String,
|
|
391
|
+
default: BUTTON_STATES.DEFAULT,
|
|
392
|
+
validator(state) {
|
|
393
|
+
return Object.values(BUTTON_STATES).includes(state);
|
|
394
|
+
},
|
|
395
|
+
},
|
|
381
396
|
footerSecondaryButtonText: {
|
|
382
397
|
type: String,
|
|
383
398
|
default: null,
|
|
@@ -389,6 +404,13 @@ export default {
|
|
|
389
404
|
return Object.values(ICONS).includes(toRaw(icon));
|
|
390
405
|
},
|
|
391
406
|
},
|
|
407
|
+
footerSecondaryButtonState: {
|
|
408
|
+
type: String,
|
|
409
|
+
default: BUTTON_STATES.DEFAULT,
|
|
410
|
+
validator(state) {
|
|
411
|
+
return Object.values(BUTTON_STATES).includes(state);
|
|
412
|
+
},
|
|
413
|
+
},
|
|
392
414
|
footerTertiaryButtonText: {
|
|
393
415
|
type: String,
|
|
394
416
|
default: null,
|
|
@@ -400,6 +422,13 @@ export default {
|
|
|
400
422
|
return Object.values(ICONS).includes(toRaw(icon));
|
|
401
423
|
},
|
|
402
424
|
},
|
|
425
|
+
footerTertiaryButtonState: {
|
|
426
|
+
type: String,
|
|
427
|
+
default: BUTTON_STATES.DEFAULT,
|
|
428
|
+
validator(state) {
|
|
429
|
+
return Object.values(BUTTON_STATES).includes(state);
|
|
430
|
+
},
|
|
431
|
+
},
|
|
403
432
|
footerCheckboxText: {
|
|
404
433
|
type: String,
|
|
405
434
|
default: null,
|
|
@@ -3,6 +3,7 @@ import { Args, ArgTypes, Meta, StoryFn } from '@storybook/vue3';
|
|
|
3
3
|
import ModalDialog from './ModalDialog.vue';
|
|
4
4
|
import { ICONS } from '../../Icons/Icon';
|
|
5
5
|
import { FEATURE_ICON_COLOR } from '../../Icons/FeatureIcon';
|
|
6
|
+
import { BUTTON_STATES } from '../../Buttons/Button';
|
|
6
7
|
|
|
7
8
|
export default {
|
|
8
9
|
title: 'Components/Modals/ModalDialog',
|
|
@@ -17,14 +18,15 @@ const StoryTemplate: StoryFn<typeof ModalDialog> = (args) => ({
|
|
|
17
18
|
template:
|
|
18
19
|
'<modal-dialog :headerFeatureIcon="ICONS[headerFeatureIcon]" :danger="danger" ' +
|
|
19
20
|
':headerTitle="headerTitle" :headerSubtitle="headerSubtitle" :headerFeatureIconColor="headerFeatureIconColor" ' +
|
|
20
|
-
':footerPrimaryButtonText="footerPrimaryButtonText" :footerPrimaryButtonIcon="footerPrimaryButtonIcon" ' +
|
|
21
|
+
':footerPrimaryButtonText="footerPrimaryButtonText" :footerPrimaryButtonIcon="footerPrimaryButtonIcon" :footerPrimaryButtonState="footerPrimaryButtonState" ' +
|
|
21
22
|
':headerImage="headerImage" ' +
|
|
22
|
-
':footerSecondaryButtonText="footerSecondaryButtonText" :footerSecondaryButtonIcon="footerSecondaryButtonIcon">' +
|
|
23
|
+
':footerSecondaryButtonText="footerSecondaryButtonText" :footerSecondaryButtonIcon="footerSecondaryButtonIcon" :footerSecondaryButtonState="footerSecondaryButtonState">' +
|
|
23
24
|
'<div v-html="defaultSlot" />' +
|
|
24
25
|
'</modal-dialog>',
|
|
25
26
|
data() {
|
|
26
27
|
return {
|
|
27
28
|
ICONS: Object.freeze(ICONS),
|
|
29
|
+
BUTTON_STATES: Object.freeze(BUTTON_STATES),
|
|
28
30
|
};
|
|
29
31
|
},
|
|
30
32
|
});
|
|
@@ -42,8 +44,10 @@ const args = {
|
|
|
42
44
|
headerFeatureIconColor: FEATURE_ICON_COLOR.NEUTRAL,
|
|
43
45
|
footerPrimaryButtonText: 'Primary M',
|
|
44
46
|
footerPrimaryButtonIcon: null,
|
|
47
|
+
footerPrimaryButtonState: BUTTON_STATES.DEFAULT,
|
|
45
48
|
footerSecondaryButtonText: 'Secondary M',
|
|
46
49
|
footerSecondaryButtonIcon: null,
|
|
50
|
+
footerSecondaryButtonState: BUTTON_STATES.DEFAULT,
|
|
47
51
|
} as Args;
|
|
48
52
|
|
|
49
53
|
const argTypes = {
|
|
@@ -70,11 +74,19 @@ const argTypes = {
|
|
|
70
74
|
control: { type: 'select', options: [null, ...Object.keys(ICONS)] },
|
|
71
75
|
defaultValue: null,
|
|
72
76
|
},
|
|
77
|
+
footerPrimaryButtonState: {
|
|
78
|
+
control: { type: 'select', options: Object.values(BUTTON_STATES) },
|
|
79
|
+
defaultValue: BUTTON_STATES.DEFAULT,
|
|
80
|
+
},
|
|
73
81
|
footerSecondaryButtonText: { control: { type: 'text' } },
|
|
74
82
|
footerSecondaryButtonIcon: {
|
|
75
83
|
control: { type: 'select', options: [null, ...Object.keys(ICONS)] },
|
|
76
84
|
defaultValue: null,
|
|
77
85
|
},
|
|
86
|
+
footerSecondaryButtonState: {
|
|
87
|
+
control: { type: 'select', options: Object.values(BUTTON_STATES) },
|
|
88
|
+
defaultValue: BUTTON_STATES.DEFAULT,
|
|
89
|
+
},
|
|
78
90
|
} as ArgTypes;
|
|
79
91
|
|
|
80
92
|
Interactive.argTypes = argTypes;
|
|
@@ -98,8 +110,10 @@ const argsDanger = {
|
|
|
98
110
|
headerFeatureIconColor: FEATURE_ICON_COLOR.NEUTRAL,
|
|
99
111
|
footerPrimaryButtonText: 'Primary M',
|
|
100
112
|
footerPrimaryButtonIcon: null,
|
|
113
|
+
footerPrimaryButtonState: BUTTON_STATES.DEFAULT,
|
|
101
114
|
footerSecondaryButtonText: 'Secondary M',
|
|
102
115
|
footerSecondaryButtonIcon: null,
|
|
116
|
+
footerSecondaryButtonState: BUTTON_STATES.DEFAULT,
|
|
103
117
|
} as Args;
|
|
104
118
|
|
|
105
119
|
export const Danger = StoryTemplate.bind({});
|
|
@@ -118,8 +132,10 @@ const argsWithImage = {
|
|
|
118
132
|
headerFeatureIconColor: FEATURE_ICON_COLOR.NEUTRAL,
|
|
119
133
|
footerPrimaryButtonText: 'Primary M',
|
|
120
134
|
footerPrimaryButtonIcon: null,
|
|
135
|
+
footerPrimaryButtonState: BUTTON_STATES.DEFAULT,
|
|
121
136
|
footerSecondaryButtonText: 'Secondary M',
|
|
122
137
|
footerSecondaryButtonIcon: null,
|
|
138
|
+
footerSecondaryButtonState: BUTTON_STATES.DEFAULT,
|
|
123
139
|
} as Args;
|
|
124
140
|
|
|
125
141
|
export const WithImage = StoryTemplate.bind({});
|
|
@@ -12,8 +12,10 @@
|
|
|
12
12
|
:header-subtitle="headerSubtitle"
|
|
13
13
|
:footer-primary-button-text="footerPrimaryButtonText"
|
|
14
14
|
:footer-primary-button-icon="footerPrimaryButtonIcon"
|
|
15
|
+
:footer-primary-button-state="footerPrimaryButtonState"
|
|
15
16
|
:footer-secondary-button-text="footerSecondaryButtonText"
|
|
16
17
|
:footer-secondary-button-icon="footerSecondaryButtonIcon"
|
|
18
|
+
:footer-secondary-button-state="footerSecondaryButtonState"
|
|
17
19
|
@close-modal="$emit('close-modal')"
|
|
18
20
|
@primary-button-click="$emit('primary-button-click')"
|
|
19
21
|
@secondary-button-click="$emit('secondary-button-click')"
|
|
@@ -24,10 +26,11 @@
|
|
|
24
26
|
|
|
25
27
|
<script lang="ts">
|
|
26
28
|
import DsModal from '../Modal/Modal.vue';
|
|
27
|
-
import {
|
|
29
|
+
import { MODAL_HEADER_TITLE_SIZES, MODAL_SIZES } from '../Modal';
|
|
28
30
|
import { ICONS } from '../../Icons/Icon';
|
|
29
31
|
import { FEATURE_ICON_COLOR } from '../../Icons/FeatureIcon';
|
|
30
32
|
import { toRaw } from 'vue';
|
|
33
|
+
import { BUTTON_STATES } from '../../Buttons/Button';
|
|
31
34
|
|
|
32
35
|
export default {
|
|
33
36
|
name: 'ModalDialog',
|
|
@@ -74,6 +77,13 @@ export default {
|
|
|
74
77
|
return Object.values(ICONS).includes(toRaw(icon));
|
|
75
78
|
},
|
|
76
79
|
},
|
|
80
|
+
footerPrimaryButtonState: {
|
|
81
|
+
type: String,
|
|
82
|
+
default: BUTTON_STATES.DEFAULT,
|
|
83
|
+
validator(state) {
|
|
84
|
+
return Object.values(BUTTON_STATES).includes(state);
|
|
85
|
+
},
|
|
86
|
+
},
|
|
77
87
|
footerSecondaryButtonText: {
|
|
78
88
|
type: String,
|
|
79
89
|
default: null,
|
|
@@ -85,6 +95,13 @@ export default {
|
|
|
85
95
|
return Object.values(ICONS).includes(toRaw(icon));
|
|
86
96
|
},
|
|
87
97
|
},
|
|
98
|
+
footerSecondaryButtonState: {
|
|
99
|
+
type: String,
|
|
100
|
+
default: BUTTON_STATES.DEFAULT,
|
|
101
|
+
validator(state) {
|
|
102
|
+
return Object.values(BUTTON_STATES).includes(state);
|
|
103
|
+
},
|
|
104
|
+
},
|
|
88
105
|
},
|
|
89
106
|
// TODO fix me when touching this file
|
|
90
107
|
// eslint-disable-next-line vue/require-emit-validator
|
|
@@ -71,7 +71,7 @@
|
|
|
71
71
|
|
|
72
72
|
background-color: $color-neutral-background-weak;
|
|
73
73
|
border-radius: $radius-s;
|
|
74
|
-
column-gap: $space-
|
|
74
|
+
column-gap: $space-2xs;
|
|
75
75
|
display: flex;
|
|
76
76
|
justify-content: space-between;
|
|
77
77
|
padding: $space-xs;
|
|
@@ -79,7 +79,7 @@
|
|
|
79
79
|
&__rightContent,
|
|
80
80
|
&__content {
|
|
81
81
|
align-items: flex-start;
|
|
82
|
-
column-gap: $space-
|
|
82
|
+
column-gap: $space-2xs;
|
|
83
83
|
display: flex;
|
|
84
84
|
|
|
85
85
|
&.-centeredContent {
|
|
@@ -115,7 +115,7 @@
|
|
|
115
115
|
@include label-m-default-bold;
|
|
116
116
|
|
|
117
117
|
color: $color-neutral-text-weak;
|
|
118
|
-
margin-left: $space-
|
|
118
|
+
margin-left: $space-4xs;
|
|
119
119
|
}
|
|
120
120
|
|
|
121
121
|
&__icon {
|
|
@@ -170,7 +170,7 @@
|
|
|
170
170
|
padding: $space-s $space-xs;
|
|
171
171
|
|
|
172
172
|
#{$root}__content {
|
|
173
|
-
column-gap: $space-
|
|
173
|
+
column-gap: $space-3xs;
|
|
174
174
|
}
|
|
175
175
|
|
|
176
176
|
#{$root}__label {
|
|
@@ -185,7 +185,7 @@ $pagination-input-height: 32px;
|
|
|
185
185
|
border-radius: $radius-s;
|
|
186
186
|
box-shadow: inset 0 1px 3px $color-neutral-border-strong;
|
|
187
187
|
height: $pagination-input-height;
|
|
188
|
-
padding: $space-
|
|
188
|
+
padding: $space-3xs $space-2xs;
|
|
189
189
|
|
|
190
190
|
&:hover {
|
|
191
191
|
border-color: $color-neutral-border-strong-hovered;
|
|
@@ -201,7 +201,7 @@ $pagination-input-height: 32px;
|
|
|
201
201
|
@include label-l-default-regular;
|
|
202
202
|
|
|
203
203
|
color: $color-neutral-text;
|
|
204
|
-
padding: $space-
|
|
204
|
+
padding: $space-2xs $space-3xs;
|
|
205
205
|
text-align: center;
|
|
206
206
|
}
|
|
207
207
|
|
|
@@ -214,7 +214,7 @@ $pagination-input-height: 32px;
|
|
|
214
214
|
&__itemWrapper {
|
|
215
215
|
@include label-l-default-regular;
|
|
216
216
|
|
|
217
|
-
padding: $space-
|
|
217
|
+
padding: $space-4xs;
|
|
218
218
|
text-align: center;
|
|
219
219
|
|
|
220
220
|
&.-touchable:hover {
|
|
@@ -235,7 +235,7 @@ $pagination-input-height: 32px;
|
|
|
235
235
|
flex-direction: column;
|
|
236
236
|
justify-content: center;
|
|
237
237
|
min-width: $pagination-item-min-width;
|
|
238
|
-
padding: $space-
|
|
238
|
+
padding: $space-2xs;
|
|
239
239
|
|
|
240
240
|
&.-selected {
|
|
241
241
|
@include label-l-default-bold;
|
|
@@ -165,14 +165,14 @@
|
|
|
165
165
|
@include heading-m-default-bold;
|
|
166
166
|
|
|
167
167
|
color: $color-default-text;
|
|
168
|
-
margin-bottom: $space-
|
|
168
|
+
margin-bottom: $space-2xs;
|
|
169
169
|
}
|
|
170
170
|
|
|
171
171
|
&__subtitle {
|
|
172
172
|
@include heading-s-default-regular;
|
|
173
173
|
|
|
174
174
|
color: $color-neutral-text;
|
|
175
|
-
margin-bottom: $space-
|
|
175
|
+
margin-bottom: $space-2xs;
|
|
176
176
|
}
|
|
177
177
|
|
|
178
178
|
&__button {
|
|
@@ -153,7 +153,7 @@ $progress-bar-badge-colors: (
|
|
|
153
153
|
}
|
|
154
154
|
|
|
155
155
|
#{$self}__label {
|
|
156
|
-
margin-bottom: $space-
|
|
156
|
+
margin-bottom: $space-3xs;
|
|
157
157
|
}
|
|
158
158
|
}
|
|
159
159
|
|
|
@@ -201,10 +201,10 @@ $progress-bar-badge-colors: (
|
|
|
201
201
|
align-items: flex-end;
|
|
202
202
|
display: flex;
|
|
203
203
|
justify-content: space-between;
|
|
204
|
-
margin-bottom: $space-
|
|
204
|
+
margin-bottom: $space-3xs;
|
|
205
205
|
|
|
206
206
|
@media #{breakpoint-s()} {
|
|
207
|
-
margin-bottom: $space-
|
|
207
|
+
margin-bottom: $space-3xs;
|
|
208
208
|
}
|
|
209
209
|
}
|
|
210
210
|
|
|
@@ -241,26 +241,26 @@ $progress-bar-badge-colors: (
|
|
|
241
241
|
display: flex;
|
|
242
242
|
flex-wrap: wrap;
|
|
243
243
|
justify-content: right;
|
|
244
|
-
margin-bottom: $space-
|
|
245
|
-
margin-left: $space-
|
|
244
|
+
margin-bottom: $space-5xs;
|
|
245
|
+
margin-left: $space-2xs;
|
|
246
246
|
max-width: $progress-bar-label-data-max-width;
|
|
247
247
|
}
|
|
248
248
|
|
|
249
249
|
&__labelDataSupporting {
|
|
250
250
|
color: $color-neutral-text;
|
|
251
251
|
display: flex;
|
|
252
|
-
margin-left: $space-
|
|
252
|
+
margin-left: $space-5xs;
|
|
253
253
|
}
|
|
254
254
|
|
|
255
255
|
&__labelDataSeparator {
|
|
256
|
-
margin-right: $space-
|
|
256
|
+
margin-right: $space-5xs;
|
|
257
257
|
}
|
|
258
258
|
|
|
259
259
|
&__labelDataSuffix {
|
|
260
260
|
@include label-s-default-regular;
|
|
261
261
|
|
|
262
262
|
color: $color-neutral-text-weak;
|
|
263
|
-
margin-left: $space-
|
|
263
|
+
margin-left: $space-4xs;
|
|
264
264
|
}
|
|
265
265
|
|
|
266
266
|
&__range {
|
|
@@ -182,7 +182,7 @@ $progress-donut-chart-range-colors: (
|
|
|
182
182
|
|
|
183
183
|
&.-hasOverage {
|
|
184
184
|
color: $color-success-text;
|
|
185
|
-
margin-left: -$space-
|
|
185
|
+
margin-left: -$space-5xs;
|
|
186
186
|
}
|
|
187
187
|
}
|
|
188
188
|
|
|
@@ -193,7 +193,7 @@ $progress-donut-chart-range-colors: (
|
|
|
193
193
|
border-radius: 100%;
|
|
194
194
|
color: $color-neutral-text;
|
|
195
195
|
height: $progress-donut-chart-loading-dot-size;
|
|
196
|
-
margin-top: $space-
|
|
196
|
+
margin-top: $space-3xs;
|
|
197
197
|
position: relative;
|
|
198
198
|
width: $progress-donut-chart-loading-dot-size;
|
|
199
199
|
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
&__content {
|
|
62
62
|
display: flex;
|
|
63
63
|
flex-direction: column;
|
|
64
|
-
gap: $space-
|
|
64
|
+
gap: $space-4xs;
|
|
65
65
|
justify-content: center;
|
|
66
66
|
min-width: 0; // to prevent the component from being pushed by the ellipses
|
|
67
67
|
padding: $space-xs 0;
|
|
@@ -106,7 +106,7 @@
|
|
|
106
106
|
|
|
107
107
|
&.-small {
|
|
108
108
|
#{$root}__content {
|
|
109
|
-
padding: $space-
|
|
109
|
+
padding: $space-3xs 0;
|
|
110
110
|
}
|
|
111
111
|
}
|
|
112
112
|
}
|