@zap-wunschlachen/wl-shared-components 1.0.38 → 1.0.40
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/.github/workflows/playwright.yml +205 -205
- package/.github/workflows/static.yml +61 -61
- package/.github/workflows/update-snapshots.yml +37 -37
- package/.prettierrc +5 -5
- package/.storybook/main.ts +18 -18
- package/.storybook/preview.ts +37 -37
- package/.storybook/storyWrapper.vue +18 -18
- package/.storybook/withVuetifyTheme.decorator.ts +21 -21
- package/App.vue +33 -33
- package/README.md +56 -56
- package/heroicons.ts +75 -75
- package/index.html +19 -19
- package/package.json +67 -67
- package/playwright.config.ts +48 -48
- package/public/background.svg +60 -60
- package/public/style.css +187 -187
- package/public/technologies.svg +22 -22
- package/src/assets/css/base.css +234 -232
- package/src/assets/css/variables.css +112 -109
- package/src/components/Accordion/Accordion.css +59 -59
- package/src/components/Accordion/AccordionGroup.vue +51 -51
- package/src/components/Accordion/AccordionItem.vue +66 -66
- package/src/components/Appointment/Card/Actions.css +54 -54
- package/src/components/Appointment/Card/Actions.vue +99 -99
- package/src/components/Appointment/Card/AnamneseNotification.css +15 -15
- package/src/components/Appointment/Card/AnamneseNotification.vue +23 -23
- package/src/components/Appointment/Card/Card.css +80 -80
- package/src/components/Appointment/Card/Card.vue +93 -93
- package/src/components/Appointment/Card/Details.css +50 -50
- package/src/components/Appointment/Card/Details.vue +43 -43
- package/src/components/Audio/Audio.vue +187 -187
- package/src/components/Audio/Waveform.vue +118 -118
- package/src/components/Button/Button.vue +174 -174
- package/src/components/CheckBox/CheckBox.css +214 -214
- package/src/components/CheckBox/Checkbox.vue +138 -138
- package/src/components/DateInput/DateInput.css +2 -2
- package/src/components/DateInput/DateInput.vue +262 -262
- package/src/components/Dialog/Dialog.css +6 -6
- package/src/components/Dialog/Dialog.vue +38 -38
- package/src/components/EditField/EditField.css +19 -19
- package/src/components/EditField/EditField.vue +202 -202
- package/src/components/ErrorPage/ErrorPage.css +172 -172
- package/src/components/IconBullet/IconBullet.vue +86 -86
- package/src/components/IconBullet/IconBulletList.vue +41 -41
- package/src/components/Icons/AdvanceAppointments.vue +153 -153
- package/src/components/Icons/Audio/CloudFailed.vue +20 -20
- package/src/components/Icons/Audio/CloudSaved.vue +21 -21
- package/src/components/Icons/Audio/Delete.vue +15 -15
- package/src/components/Icons/Audio/Pause.vue +18 -18
- package/src/components/Icons/Audio/Play.vue +15 -15
- package/src/components/Icons/{calendar.vue → Calendar.vue} +17 -17
- package/src/components/Icons/CalendarNotification.vue +126 -126
- package/src/components/Icons/Chair.vue +32 -32
- package/src/components/Icons/ChairNotification.vue +35 -35
- package/src/components/Icons/Circle.vue +66 -66
- package/src/components/Icons/FavIcon.vue +22 -22
- package/src/components/Icons/FilledCircle.vue +11 -11
- package/src/components/Icons/Group3.vue +46 -46
- package/src/components/Icons/RingNotification.vue +54 -54
- package/src/components/Icons/SolidArrowRight.vue +14 -14
- package/src/components/Icons/checkbox.vue +19 -19
- package/src/components/Icons/outlineChecked.vue +27 -27
- package/src/components/Icons/play.vue +5 -5
- package/src/components/Input/Input.css +187 -187
- package/src/components/Input/Input.vue +253 -253
- package/src/components/Laboratory/AppointmentCard/AppointmentCard.css +7 -7
- package/src/components/Laboratory/AppointmentCard/AppointmentCard.vue +116 -116
- package/src/components/Laboratory/ChatBoxImage/ChatBoxImage.vue +81 -81
- package/src/components/Laboratory/ChatMessage/ChatMessage.vue +113 -113
- package/src/components/Laboratory/ChatMessage/ChatMessageBadge.css +4 -4
- package/src/components/Laboratory/ChatMessage/ChatMessageBadge.vue +99 -99
- package/src/components/Laboratory/ChatNotification/ChatNotification.vue +130 -130
- package/src/components/Laboratory/DocumentCard/DocumentCard.css +3 -3
- package/src/components/Laboratory/DocumentCard/DocumentCard.vue +50 -50
- package/src/components/Laboratory/DocumentCard/DocumentCardItem.vue +53 -53
- package/src/components/Laboratory/InfoCard/InfoCard.vue +162 -162
- package/src/components/Laboratory/MainColumnsBar/MainColumnsBar.vue +102 -102
- package/src/components/Laboratory/ProgressCircle/ProgressCircle.vue +152 -152
- package/src/components/Laboratory/ProgressLinear/ProgressLinear.css +33 -33
- package/src/components/Laboratory/ProgressLinear/ProgressLinear.vue +75 -75
- package/src/components/Laboratory/SelectionColumnBar/SelectionColumnBar.vue +92 -92
- package/src/components/Laboratory/StatusNotification/StatusNotification.vue +49 -49
- package/src/components/Laboratory/TagLabel/TagLabel.vue +126 -126
- package/src/components/Laboratory/TagLabelGroup/TagLabelGroup.vue +97 -97
- package/src/components/Laboratory/TicketCard/TicketCard.css +3 -3
- package/src/components/Laboratory/TicketCard/TicketCard.vue +143 -143
- package/src/components/Laboratory/TimeLine/TimeLineEvent.css +18 -18
- package/src/components/Laboratory/TimeLine/TimeLineEvent.vue +119 -119
- package/src/components/Laboratory/TimeLine/Timeline.css +4 -4
- package/src/components/Laboratory/TimeLine/Timeline.vue +30 -30
- package/src/components/Loader/Loader.css +71 -71
- package/src/components/MaintenanceBanner/MaintenanceBanner.css +353 -353
- package/src/components/MaintenanceBanner/MaintenanceBanner.vue +127 -127
- package/src/components/MaintenanceBanner/MaintenanceIllustration.vue +54 -54
- package/src/components/Modal/Modal.css +5 -5
- package/src/components/Modal/Modal.vue +22 -22
- package/src/components/NotificationBubble/NotificationBubble.css +4 -4
- package/src/components/NotificationBubble/NotificationBubble.vue +90 -90
- package/src/components/OtpInput/OtpInput.css +39 -39
- package/src/components/OtpInput/OtpInput.vue +151 -151
- package/src/components/PhoneInput/PhoneInput.css +31 -31
- package/src/components/PhoneInput/PhoneInput.vue +113 -113
- package/src/components/Select/Select.css +150 -150
- package/src/components/Select/Select.vue +316 -316
- package/src/components/TextArea/TextArea.css +3 -3
- package/src/components/TextArea/TextArea.vue +126 -126
- package/src/components/TickBox/TickBox.css +49 -49
- package/src/components/TickBox/TickBox.vue +126 -126
- package/src/components/accessibility.css +218 -218
- package/src/components/index.ts +29 -29
- package/src/constants/iconEnums.ts +3 -3
- package/src/i18n/i18n.ts +15 -15
- package/src/i18n/locales/de.json +30 -30
- package/src/i18n/locales/en.json +30 -30
- package/src/index.ts +34 -34
- package/src/main.ts +11 -11
- package/src/plugins/vuetify.ts +141 -141
- package/src/shims-vue.d.ts +10 -10
- package/src/stories/Accordion.stories.ts +650 -650
- package/src/stories/Audio.stories.ts +28 -28
- package/src/stories/Button.stories.ts +263 -263
- package/src/stories/CheckBox.stories.ts +348 -348
- package/src/stories/DateInput.stories.ts +53 -53
- package/src/stories/Dialog.stories.ts +147 -147
- package/src/stories/EditField.stories.ts +78 -78
- package/src/stories/IconBullet/IconBullet.stories.ts +201 -201
- package/src/stories/IconBullet/IconBulletList.stories.ts +275 -275
- package/src/stories/Input.stories.ts +351 -351
- package/src/stories/Laboratory/Cards/AppointmentCard/AppointmentCard.stories.ts +260 -260
- package/src/stories/Laboratory/Cards/DocumentCard/DocumentCard.stories.ts +176 -176
- package/src/stories/Laboratory/Cards/DocumentCard/DocumentCardItem.stories.ts +119 -119
- package/src/stories/Laboratory/Cards/InfoCard/InfoCard.stories.ts +320 -320
- package/src/stories/Laboratory/Cards/TicketCard/TicketCard.stories.ts +335 -335
- package/src/stories/Laboratory/Chat/ChatBoxImage.stories.ts +82 -82
- package/src/stories/Laboratory/Chat/ChatMessage.stories.ts +198 -198
- package/src/stories/Laboratory/Chat/ChatMessageBadge.stories.ts +204 -204
- package/src/stories/Laboratory/Chat/ChatNotification.stories.ts +144 -144
- package/src/stories/Laboratory/Chat/ProgressLinear.stories.ts +186 -186
- package/src/stories/Laboratory/Chat/StatusNotification.stories.ts +111 -111
- package/src/stories/Laboratory/MainColumnsBar.stories.ts +48 -48
- package/src/stories/Laboratory/ProgressCircle.stories.ts +261 -261
- package/src/stories/Laboratory/SelectionColumnBar.stories.ts +234 -234
- package/src/stories/Laboratory/TagLabel.stories.ts +418 -418
- package/src/stories/Laboratory/TagLabelGroup.stories.ts +234 -234
- package/src/stories/Laboratory/Timeline.stories.ts +403 -403
- package/src/stories/NotificationBubble.stories.ts +194 -194
- package/src/stories/OtpInput.stories.ts +100 -100
- package/src/stories/PhoneInput.stories.ts +52 -52
- package/src/stories/Select.stories.ts +419 -419
- package/src/stories/TextArea.stories.ts +112 -112
- package/src/stories/TickBox.stories.ts +294 -294
- package/src/stories/v-icon.stories.ts +91 -91
- package/src/utils/index.ts +116 -109
- package/src/vite-env.d.ts +1 -1
- package/tests/e2e/README.md +220 -220
- package/tests/e2e/accessibility.spec.ts +638 -638
- package/tests/e2e/accordion.spec.ts +42 -42
- package/tests/e2e/additional-components.spec.ts +437 -437
- package/tests/e2e/all-components.spec.ts +135 -135
- package/tests/e2e/appointment-card.spec.ts +816 -816
- package/tests/e2e/button-fixed.spec.ts +58 -58
- package/tests/e2e/button.spec.ts +76 -76
- package/tests/e2e/checkbox.spec.ts +50 -50
- package/tests/e2e/date-input.spec.ts +46 -46
- package/tests/e2e/debug.spec.ts +51 -51
- package/tests/e2e/dialog.spec.ts +58 -58
- package/tests/e2e/input.spec.ts +55 -55
- package/tests/e2e/laboratory-components.spec.ts +320 -320
- package/tests/e2e/otp-input.spec.ts +50 -50
- package/tests/e2e/select.spec.ts +52 -52
- package/tests/e2e/storybook-utils.ts +59 -59
- package/tests/e2e/test-basic.spec.ts +33 -33
- package/tests/e2e/visual-regression.spec.ts +350 -350
- package/tests/unit/accessibility/component-a11y.spec.ts +469 -469
- package/tests/unit/components/Accordion/AccordionGroup.spec.ts +228 -228
- package/tests/unit/components/Accordion/AccordionGroup.spec.ts.skip +342 -342
- package/tests/unit/components/Accordion/AccordionItem.spec.ts +292 -292
- package/tests/unit/components/Accordion/AccordionItem.spec.ts.skip +383 -383
- package/tests/unit/components/Appointment/AnamneseNotification.spec.ts +176 -176
- package/tests/unit/components/Appointment/Card/Actions.spec.ts +407 -407
- package/tests/unit/components/Appointment/Card/Card.spec.ts +485 -485
- package/tests/unit/components/Appointment/Card/Details.spec.ts +397 -397
- package/tests/unit/components/Audio/Audio.spec.ts +403 -403
- package/tests/unit/components/Audio/Waveform.spec.ts +483 -483
- package/tests/unit/components/Background/Background.spec.ts +177 -177
- package/tests/unit/components/Core/Button.spec.ts +336 -336
- package/tests/unit/components/Core/Checkbox.spec.ts +544 -544
- package/tests/unit/components/Core/DateInput.spec.ts +690 -690
- package/tests/unit/components/Core/Dialog.spec.ts +485 -485
- package/tests/unit/components/Core/EditField.spec.ts +782 -782
- package/tests/unit/components/Core/Input.spec.ts +512 -512
- package/tests/unit/components/Core/Modal.spec.ts +518 -518
- package/tests/unit/components/Core/NotificationBubble.spec.ts +606 -606
- package/tests/unit/components/Core/OtpInput.spec.ts +708 -708
- package/tests/unit/components/Core/PhoneInput.spec.ts +619 -619
- package/tests/unit/components/Core/Select.spec.ts +712 -712
- package/tests/unit/components/Core/TextArea.spec.ts +565 -565
- package/tests/unit/components/Core/TickBox.spec.ts +779 -779
- package/tests/unit/components/ErrorPage/ErrorPage.spec.ts +313 -313
- package/tests/unit/components/ErrorPage/ErrorPageLogo.spec.ts +153 -153
- package/tests/unit/components/IconBullet/IconBullet.spec.ts +356 -356
- package/tests/unit/components/IconBullet/IconBulletList.spec.ts +371 -371
- package/tests/unit/components/Icons/AdvanceAppointments.spec.ts +61 -61
- package/tests/unit/components/Icons/Audio/CloudFailed.spec.ts +108 -108
- package/tests/unit/components/Icons/Audio/CloudSaved.spec.ts +149 -149
- package/tests/unit/components/Icons/Audio/Delete.spec.ts +158 -158
- package/tests/unit/components/Icons/Audio/Pause.spec.ts +208 -208
- package/tests/unit/components/Icons/Audio/Play.spec.ts +217 -217
- package/tests/unit/components/Icons/CalendarNotification.spec.ts +186 -186
- package/tests/unit/components/Icons/Chair.spec.ts +234 -234
- package/tests/unit/components/Icons/ChairNotification.spec.ts +311 -311
- package/tests/unit/components/Icons/Circle.spec.ts +255 -255
- package/tests/unit/components/Icons/FavIcon.spec.ts +251 -251
- package/tests/unit/components/Icons/FilledCircle.spec.ts +274 -274
- package/tests/unit/components/Icons/Group3.spec.ts +355 -355
- package/tests/unit/components/Icons/Logo.spec.ts +228 -228
- package/tests/unit/components/Icons/MiniLogo.spec.ts +38 -38
- package/tests/unit/components/Icons/RingNotification.spec.ts +393 -393
- package/tests/unit/components/Icons/SolidArrowRight.spec.ts +49 -49
- package/tests/unit/components/Icons/calendar.spec.ts +286 -286
- package/tests/unit/components/Icons/checkbox.spec.ts +315 -315
- package/tests/unit/components/Icons/outlineChecked.spec.ts +434 -434
- package/tests/unit/components/Icons/play.spec.ts +308 -308
- package/tests/unit/components/Laboratory/AppointmentCard.spec.ts +167 -167
- package/tests/unit/components/Laboratory/ChatBoxImage.spec.ts +179 -179
- package/tests/unit/components/Laboratory/ChatMessage.spec.ts +263 -263
- package/tests/unit/components/Laboratory/ChatMessageBadge.spec.ts +282 -282
- package/tests/unit/components/Laboratory/ChatNotification.spec.ts +256 -256
- package/tests/unit/components/Laboratory/DocumentCard.spec.ts +228 -228
- package/tests/unit/components/Laboratory/DocumentCardItem.spec.ts +236 -236
- package/tests/unit/components/Laboratory/InfoCard.spec.ts +308 -308
- package/tests/unit/components/Laboratory/MainColumnsBar.spec.ts +251 -251
- package/tests/unit/components/Laboratory/ProgressCircle.spec.ts +290 -290
- package/tests/unit/components/Laboratory/ProgressLinear.spec.ts +275 -275
- package/tests/unit/components/Laboratory/SelectionColumnBar.spec.ts +288 -288
- package/tests/unit/components/Laboratory/StatusNotification.spec.ts +296 -296
- package/tests/unit/components/Laboratory/TagLabel.spec.ts +353 -353
- package/tests/unit/components/Laboratory/TagLabelGroup.spec.ts +377 -377
- package/tests/unit/components/Laboratory/TicketCard.spec.ts +351 -351
- package/tests/unit/components/Laboratory/TimeLineEvent.spec.ts +381 -381
- package/tests/unit/components/Laboratory/Timeline.spec.ts +419 -419
- package/tests/unit/components/Loader/Loader.spec.ts +197 -197
- package/tests/unit/components/MaintenanceBanner/MaintenanceBanner.spec.ts +302 -302
- package/tests/unit/constants/iconEnums.spec.ts +39 -39
- package/tests/unit/i18n/i18n.spec.ts +88 -88
- package/tests/unit/plugins/vuetify.spec.ts +220 -220
- package/tests/unit/setup.ts +189 -189
- package/tests/unit/src/components/index.spec.ts.skip +192 -192
- package/tests/unit/src/index.spec.ts.skip +182 -182
- package/tests/unit/src/main.spec.ts +151 -151
- package/tests/unit/utils/accessibility.spec.ts +318 -318
- package/tsconfig.json +26 -26
- package/vite.config.ts +29 -29
- package/vitest.config.ts +83 -83
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
import Audio from '@components/Audio/Audio.vue';
|
|
2
|
-
|
|
3
|
-
export default {
|
|
4
|
-
title: 'WL/Audio',
|
|
5
|
-
component: Audio,
|
|
6
|
-
tags: ['autodocs'],
|
|
7
|
-
argTypes: {
|
|
8
|
-
id: { control: 'number' },
|
|
9
|
-
src: { control: 'text' },
|
|
10
|
-
cloudStatus: { control: 'boolean' },
|
|
11
|
-
viewType: { control: 'select', options: ['OVERVIEW', 'RECORDER'], }
|
|
12
|
-
}
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
const Template = (args) => ({
|
|
16
|
-
components: { Audio },
|
|
17
|
-
setup() {
|
|
18
|
-
return { args };
|
|
19
|
-
},
|
|
20
|
-
template: `<Audio v-bind="args" />`,
|
|
21
|
-
});
|
|
22
|
-
|
|
23
|
-
export const Default = Template.bind({});
|
|
24
|
-
Default.args = {
|
|
25
|
-
id: 1,
|
|
26
|
-
src: '/audio/dummy_pink_noise.wav',
|
|
27
|
-
cloudStatus: true,
|
|
28
|
-
viewType: 'OVERVIEW'
|
|
1
|
+
import Audio from '@components/Audio/Audio.vue';
|
|
2
|
+
|
|
3
|
+
export default {
|
|
4
|
+
title: 'WL/Audio',
|
|
5
|
+
component: Audio,
|
|
6
|
+
tags: ['autodocs'],
|
|
7
|
+
argTypes: {
|
|
8
|
+
id: { control: 'number' },
|
|
9
|
+
src: { control: 'text' },
|
|
10
|
+
cloudStatus: { control: 'boolean' },
|
|
11
|
+
viewType: { control: 'select', options: ['OVERVIEW', 'RECORDER'], }
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
const Template = (args) => ({
|
|
16
|
+
components: { Audio },
|
|
17
|
+
setup() {
|
|
18
|
+
return { args };
|
|
19
|
+
},
|
|
20
|
+
template: `<Audio v-bind="args" />`,
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
export const Default = Template.bind({});
|
|
24
|
+
Default.args = {
|
|
25
|
+
id: 1,
|
|
26
|
+
src: '/audio/dummy_pink_noise.wav',
|
|
27
|
+
cloudStatus: true,
|
|
28
|
+
viewType: 'OVERVIEW'
|
|
29
29
|
};
|
|
@@ -1,263 +1,263 @@
|
|
|
1
|
-
import { Meta, StoryObj } from '@storybook/vue3';
|
|
2
|
-
import Button from '@components/Button/Button.vue';
|
|
3
|
-
|
|
4
|
-
export default {
|
|
5
|
-
title: 'Wl/Button',
|
|
6
|
-
component: Button,
|
|
7
|
-
tags: ['autodocs'],
|
|
8
|
-
argTypes: {
|
|
9
|
-
color: { control: 'color', description: 'Button color' },
|
|
10
|
-
prependIcon: { control: 'text', description: 'Prepend icon' },
|
|
11
|
-
appendIcon: { control: 'text', description: 'Append icon' },
|
|
12
|
-
loading: { control: 'boolean', description: 'Loading state of the button' },
|
|
13
|
-
density: {
|
|
14
|
-
control: 'select',
|
|
15
|
-
options: ['default', 'comfortable', 'compact'],
|
|
16
|
-
description: 'Density of the button',
|
|
17
|
-
},
|
|
18
|
-
variant: {
|
|
19
|
-
control: 'select',
|
|
20
|
-
options: ['flat', 'outlined', 'elevated', 'text', 'tonal'],
|
|
21
|
-
description: 'Button variant',
|
|
22
|
-
},
|
|
23
|
-
size: {
|
|
24
|
-
control: 'select',
|
|
25
|
-
options: ['x-small', 'small', 'default', 'large', 'x-large'],
|
|
26
|
-
description: 'Button size',
|
|
27
|
-
},
|
|
28
|
-
label: { control: 'text', description: 'Button label text' },
|
|
29
|
-
disabled: { control: 'boolean', description: 'Disables the button' },
|
|
30
|
-
},
|
|
31
|
-
args: {
|
|
32
|
-
color: '#172774',
|
|
33
|
-
prependIcon: 'heroicons:calendar',
|
|
34
|
-
appendIcon: 'heroicons:calendar',
|
|
35
|
-
loading: false,
|
|
36
|
-
density: 'default',
|
|
37
|
-
variant: 'flat',
|
|
38
|
-
size: 'x-large',
|
|
39
|
-
label: 'Button',
|
|
40
|
-
disabled: false,
|
|
41
|
-
},
|
|
42
|
-
parameters: {
|
|
43
|
-
docs: {
|
|
44
|
-
description: {
|
|
45
|
-
component: `
|
|
46
|
-
The \`Button\` component offers customizable button styles, sizes, icons, and loading states to enhance user interaction.
|
|
47
|
-
|
|
48
|
-
### Props
|
|
49
|
-
- **\`color\`**: Sets the background color of the button.
|
|
50
|
-
- **\`prependIcon\`**: Icon displayed at the start of the button.
|
|
51
|
-
- **\`appendIcon\`**: Icon displayed at the end of the button.
|
|
52
|
-
- **\`loading\`**: When true, displays a loading spinner.
|
|
53
|
-
- **\`density\`**: Adjusts padding and margins (options: \`default\`, \`comfortable\`, \`compact\`).
|
|
54
|
-
- **\`variant\`**: Specifies the button style (options: \`flat\`, \`outlined\`, \`elevated\`, \`text\`, \`tonal\`).
|
|
55
|
-
- **\`size\`**: Sets the button size (options: \`x-small\`, \`small\`, \`default\`, \`large\`, \`x-large\`).
|
|
56
|
-
- **\`label\`**: Text displayed inside the button.
|
|
57
|
-
- **\`disabled\`**: Disables button functionality.
|
|
58
|
-
|
|
59
|
-
### Example Usage
|
|
60
|
-
Examples below demonstrate various configurations of the \`Button\` component with options for icons, colors, sizes, and variants.
|
|
61
|
-
`,
|
|
62
|
-
},
|
|
63
|
-
},
|
|
64
|
-
},
|
|
65
|
-
} as Meta<typeof Button>;
|
|
66
|
-
|
|
67
|
-
type Story = StoryObj<typeof Button>;
|
|
68
|
-
|
|
69
|
-
export const Default: Story = {
|
|
70
|
-
args: { label: 'Button' },
|
|
71
|
-
parameters: {
|
|
72
|
-
docs: {
|
|
73
|
-
source: {
|
|
74
|
-
code: `
|
|
75
|
-
<template>
|
|
76
|
-
<Button label="Button" />
|
|
77
|
-
</template>
|
|
78
|
-
`,
|
|
79
|
-
},
|
|
80
|
-
},
|
|
81
|
-
},
|
|
82
|
-
};
|
|
83
|
-
|
|
84
|
-
export const WithPrependIcon: Story = {
|
|
85
|
-
args: {
|
|
86
|
-
prependIcon: '$vuetify',
|
|
87
|
-
label: 'With Icon',
|
|
88
|
-
},
|
|
89
|
-
parameters: {
|
|
90
|
-
docs: {
|
|
91
|
-
source: {
|
|
92
|
-
code: `
|
|
93
|
-
<template>
|
|
94
|
-
<Button prependIcon="$vuetify" label="With Icon" />
|
|
95
|
-
</template>
|
|
96
|
-
`,
|
|
97
|
-
},
|
|
98
|
-
},
|
|
99
|
-
},
|
|
100
|
-
};
|
|
101
|
-
|
|
102
|
-
export const LoadingState: Story = {
|
|
103
|
-
args: {
|
|
104
|
-
loading: true,
|
|
105
|
-
label: 'Loading...',
|
|
106
|
-
},
|
|
107
|
-
parameters: {
|
|
108
|
-
docs: {
|
|
109
|
-
source: {
|
|
110
|
-
code: `
|
|
111
|
-
<template>
|
|
112
|
-
<Button loading label="Loading..." />
|
|
113
|
-
</template>
|
|
114
|
-
`,
|
|
115
|
-
},
|
|
116
|
-
},
|
|
117
|
-
},
|
|
118
|
-
};
|
|
119
|
-
|
|
120
|
-
export const CustomColor: Story = {
|
|
121
|
-
args: {
|
|
122
|
-
color: '#FF5733',
|
|
123
|
-
label: 'Custom Color',
|
|
124
|
-
},
|
|
125
|
-
parameters: {
|
|
126
|
-
docs: {
|
|
127
|
-
source: {
|
|
128
|
-
code: `
|
|
129
|
-
<template>
|
|
130
|
-
<Button color="#FF5733" label="Custom Color" />
|
|
131
|
-
</template>
|
|
132
|
-
`,
|
|
133
|
-
},
|
|
134
|
-
},
|
|
135
|
-
},
|
|
136
|
-
};
|
|
137
|
-
|
|
138
|
-
export const OutlinedVariant: Story = {
|
|
139
|
-
args: {
|
|
140
|
-
variant: 'outlined',
|
|
141
|
-
label: 'Outlined Button',
|
|
142
|
-
},
|
|
143
|
-
parameters: {
|
|
144
|
-
docs: {
|
|
145
|
-
source: {
|
|
146
|
-
code: `
|
|
147
|
-
<template>
|
|
148
|
-
<Button variant="outlined" label="Outlined Button" />
|
|
149
|
-
</template>
|
|
150
|
-
`,
|
|
151
|
-
},
|
|
152
|
-
},
|
|
153
|
-
},
|
|
154
|
-
};
|
|
155
|
-
|
|
156
|
-
export const TextVariant: Story = {
|
|
157
|
-
args: {
|
|
158
|
-
variant: 'text',
|
|
159
|
-
label: 'Text Button',
|
|
160
|
-
},
|
|
161
|
-
parameters: {
|
|
162
|
-
docs: {
|
|
163
|
-
source: {
|
|
164
|
-
code: `
|
|
165
|
-
<template>
|
|
166
|
-
<Button variant="text" label="Text Button" />
|
|
167
|
-
</template>
|
|
168
|
-
`,
|
|
169
|
-
},
|
|
170
|
-
},
|
|
171
|
-
},
|
|
172
|
-
};
|
|
173
|
-
|
|
174
|
-
export const ElevatedVariant: Story = {
|
|
175
|
-
args: {
|
|
176
|
-
variant: 'elevated',
|
|
177
|
-
label: 'Elevated Button',
|
|
178
|
-
},
|
|
179
|
-
parameters: {
|
|
180
|
-
docs: {
|
|
181
|
-
source: {
|
|
182
|
-
code: `
|
|
183
|
-
<template>
|
|
184
|
-
<Button variant="elevated" label="Elevated Button" />
|
|
185
|
-
</template>
|
|
186
|
-
`,
|
|
187
|
-
},
|
|
188
|
-
},
|
|
189
|
-
},
|
|
190
|
-
};
|
|
191
|
-
|
|
192
|
-
export const TonalVariant: Story = {
|
|
193
|
-
args: {
|
|
194
|
-
variant: 'tonal',
|
|
195
|
-
label: 'Tonal Button',
|
|
196
|
-
},
|
|
197
|
-
parameters: {
|
|
198
|
-
docs: {
|
|
199
|
-
source: {
|
|
200
|
-
code: `
|
|
201
|
-
<template>
|
|
202
|
-
<Button variant="tonal" label="Tonal Button" />
|
|
203
|
-
</template>
|
|
204
|
-
`,
|
|
205
|
-
},
|
|
206
|
-
},
|
|
207
|
-
},
|
|
208
|
-
};
|
|
209
|
-
|
|
210
|
-
export const DisabledState: Story = {
|
|
211
|
-
args: {
|
|
212
|
-
disabled: true,
|
|
213
|
-
label: 'Disabled Button',
|
|
214
|
-
},
|
|
215
|
-
parameters: {
|
|
216
|
-
docs: {
|
|
217
|
-
source: {
|
|
218
|
-
code: `
|
|
219
|
-
<template>
|
|
220
|
-
<Button disabled label="Disabled Button" />
|
|
221
|
-
</template>
|
|
222
|
-
`,
|
|
223
|
-
},
|
|
224
|
-
},
|
|
225
|
-
},
|
|
226
|
-
};
|
|
227
|
-
|
|
228
|
-
export const DisabledOutlined: Story = {
|
|
229
|
-
args: {
|
|
230
|
-
disabled: true,
|
|
231
|
-
variant: 'outlined',
|
|
232
|
-
label: 'Disabled Outlined',
|
|
233
|
-
},
|
|
234
|
-
parameters: {
|
|
235
|
-
docs: {
|
|
236
|
-
source: {
|
|
237
|
-
code: `
|
|
238
|
-
<template>
|
|
239
|
-
<Button disabled variant="outlined" label="Disabled Outlined" />
|
|
240
|
-
</template>
|
|
241
|
-
`,
|
|
242
|
-
},
|
|
243
|
-
},
|
|
244
|
-
},
|
|
245
|
-
};
|
|
246
|
-
|
|
247
|
-
export const SmallButton: Story = {
|
|
248
|
-
args: {
|
|
249
|
-
size: 'small',
|
|
250
|
-
label: 'Small Button',
|
|
251
|
-
},
|
|
252
|
-
parameters: {
|
|
253
|
-
docs: {
|
|
254
|
-
source: {
|
|
255
|
-
code: `
|
|
256
|
-
<template>
|
|
257
|
-
<Button size="small" label="Small Button" />
|
|
258
|
-
</template>
|
|
259
|
-
`,
|
|
260
|
-
},
|
|
261
|
-
},
|
|
262
|
-
},
|
|
263
|
-
};
|
|
1
|
+
import { Meta, StoryObj } from '@storybook/vue3';
|
|
2
|
+
import Button from '@components/Button/Button.vue';
|
|
3
|
+
|
|
4
|
+
export default {
|
|
5
|
+
title: 'Wl/Button',
|
|
6
|
+
component: Button,
|
|
7
|
+
tags: ['autodocs'],
|
|
8
|
+
argTypes: {
|
|
9
|
+
color: { control: 'color', description: 'Button color' },
|
|
10
|
+
prependIcon: { control: 'text', description: 'Prepend icon' },
|
|
11
|
+
appendIcon: { control: 'text', description: 'Append icon' },
|
|
12
|
+
loading: { control: 'boolean', description: 'Loading state of the button' },
|
|
13
|
+
density: {
|
|
14
|
+
control: 'select',
|
|
15
|
+
options: ['default', 'comfortable', 'compact'],
|
|
16
|
+
description: 'Density of the button',
|
|
17
|
+
},
|
|
18
|
+
variant: {
|
|
19
|
+
control: 'select',
|
|
20
|
+
options: ['flat', 'outlined', 'elevated', 'text', 'tonal'],
|
|
21
|
+
description: 'Button variant',
|
|
22
|
+
},
|
|
23
|
+
size: {
|
|
24
|
+
control: 'select',
|
|
25
|
+
options: ['x-small', 'small', 'default', 'large', 'x-large'],
|
|
26
|
+
description: 'Button size',
|
|
27
|
+
},
|
|
28
|
+
label: { control: 'text', description: 'Button label text' },
|
|
29
|
+
disabled: { control: 'boolean', description: 'Disables the button' },
|
|
30
|
+
},
|
|
31
|
+
args: {
|
|
32
|
+
color: '#172774',
|
|
33
|
+
prependIcon: 'heroicons:calendar',
|
|
34
|
+
appendIcon: 'heroicons:calendar',
|
|
35
|
+
loading: false,
|
|
36
|
+
density: 'default',
|
|
37
|
+
variant: 'flat',
|
|
38
|
+
size: 'x-large',
|
|
39
|
+
label: 'Button',
|
|
40
|
+
disabled: false,
|
|
41
|
+
},
|
|
42
|
+
parameters: {
|
|
43
|
+
docs: {
|
|
44
|
+
description: {
|
|
45
|
+
component: `
|
|
46
|
+
The \`Button\` component offers customizable button styles, sizes, icons, and loading states to enhance user interaction.
|
|
47
|
+
|
|
48
|
+
### Props
|
|
49
|
+
- **\`color\`**: Sets the background color of the button.
|
|
50
|
+
- **\`prependIcon\`**: Icon displayed at the start of the button.
|
|
51
|
+
- **\`appendIcon\`**: Icon displayed at the end of the button.
|
|
52
|
+
- **\`loading\`**: When true, displays a loading spinner.
|
|
53
|
+
- **\`density\`**: Adjusts padding and margins (options: \`default\`, \`comfortable\`, \`compact\`).
|
|
54
|
+
- **\`variant\`**: Specifies the button style (options: \`flat\`, \`outlined\`, \`elevated\`, \`text\`, \`tonal\`).
|
|
55
|
+
- **\`size\`**: Sets the button size (options: \`x-small\`, \`small\`, \`default\`, \`large\`, \`x-large\`).
|
|
56
|
+
- **\`label\`**: Text displayed inside the button.
|
|
57
|
+
- **\`disabled\`**: Disables button functionality.
|
|
58
|
+
|
|
59
|
+
### Example Usage
|
|
60
|
+
Examples below demonstrate various configurations of the \`Button\` component with options for icons, colors, sizes, and variants.
|
|
61
|
+
`,
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
},
|
|
65
|
+
} as Meta<typeof Button>;
|
|
66
|
+
|
|
67
|
+
type Story = StoryObj<typeof Button>;
|
|
68
|
+
|
|
69
|
+
export const Default: Story = {
|
|
70
|
+
args: { label: 'Button' },
|
|
71
|
+
parameters: {
|
|
72
|
+
docs: {
|
|
73
|
+
source: {
|
|
74
|
+
code: `
|
|
75
|
+
<template>
|
|
76
|
+
<Button label="Button" />
|
|
77
|
+
</template>
|
|
78
|
+
`,
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
},
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
export const WithPrependIcon: Story = {
|
|
85
|
+
args: {
|
|
86
|
+
prependIcon: '$vuetify',
|
|
87
|
+
label: 'With Icon',
|
|
88
|
+
},
|
|
89
|
+
parameters: {
|
|
90
|
+
docs: {
|
|
91
|
+
source: {
|
|
92
|
+
code: `
|
|
93
|
+
<template>
|
|
94
|
+
<Button prependIcon="$vuetify" label="With Icon" />
|
|
95
|
+
</template>
|
|
96
|
+
`,
|
|
97
|
+
},
|
|
98
|
+
},
|
|
99
|
+
},
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
export const LoadingState: Story = {
|
|
103
|
+
args: {
|
|
104
|
+
loading: true,
|
|
105
|
+
label: 'Loading...',
|
|
106
|
+
},
|
|
107
|
+
parameters: {
|
|
108
|
+
docs: {
|
|
109
|
+
source: {
|
|
110
|
+
code: `
|
|
111
|
+
<template>
|
|
112
|
+
<Button loading label="Loading..." />
|
|
113
|
+
</template>
|
|
114
|
+
`,
|
|
115
|
+
},
|
|
116
|
+
},
|
|
117
|
+
},
|
|
118
|
+
};
|
|
119
|
+
|
|
120
|
+
export const CustomColor: Story = {
|
|
121
|
+
args: {
|
|
122
|
+
color: '#FF5733',
|
|
123
|
+
label: 'Custom Color',
|
|
124
|
+
},
|
|
125
|
+
parameters: {
|
|
126
|
+
docs: {
|
|
127
|
+
source: {
|
|
128
|
+
code: `
|
|
129
|
+
<template>
|
|
130
|
+
<Button color="#FF5733" label="Custom Color" />
|
|
131
|
+
</template>
|
|
132
|
+
`,
|
|
133
|
+
},
|
|
134
|
+
},
|
|
135
|
+
},
|
|
136
|
+
};
|
|
137
|
+
|
|
138
|
+
export const OutlinedVariant: Story = {
|
|
139
|
+
args: {
|
|
140
|
+
variant: 'outlined',
|
|
141
|
+
label: 'Outlined Button',
|
|
142
|
+
},
|
|
143
|
+
parameters: {
|
|
144
|
+
docs: {
|
|
145
|
+
source: {
|
|
146
|
+
code: `
|
|
147
|
+
<template>
|
|
148
|
+
<Button variant="outlined" label="Outlined Button" />
|
|
149
|
+
</template>
|
|
150
|
+
`,
|
|
151
|
+
},
|
|
152
|
+
},
|
|
153
|
+
},
|
|
154
|
+
};
|
|
155
|
+
|
|
156
|
+
export const TextVariant: Story = {
|
|
157
|
+
args: {
|
|
158
|
+
variant: 'text',
|
|
159
|
+
label: 'Text Button',
|
|
160
|
+
},
|
|
161
|
+
parameters: {
|
|
162
|
+
docs: {
|
|
163
|
+
source: {
|
|
164
|
+
code: `
|
|
165
|
+
<template>
|
|
166
|
+
<Button variant="text" label="Text Button" />
|
|
167
|
+
</template>
|
|
168
|
+
`,
|
|
169
|
+
},
|
|
170
|
+
},
|
|
171
|
+
},
|
|
172
|
+
};
|
|
173
|
+
|
|
174
|
+
export const ElevatedVariant: Story = {
|
|
175
|
+
args: {
|
|
176
|
+
variant: 'elevated',
|
|
177
|
+
label: 'Elevated Button',
|
|
178
|
+
},
|
|
179
|
+
parameters: {
|
|
180
|
+
docs: {
|
|
181
|
+
source: {
|
|
182
|
+
code: `
|
|
183
|
+
<template>
|
|
184
|
+
<Button variant="elevated" label="Elevated Button" />
|
|
185
|
+
</template>
|
|
186
|
+
`,
|
|
187
|
+
},
|
|
188
|
+
},
|
|
189
|
+
},
|
|
190
|
+
};
|
|
191
|
+
|
|
192
|
+
export const TonalVariant: Story = {
|
|
193
|
+
args: {
|
|
194
|
+
variant: 'tonal',
|
|
195
|
+
label: 'Tonal Button',
|
|
196
|
+
},
|
|
197
|
+
parameters: {
|
|
198
|
+
docs: {
|
|
199
|
+
source: {
|
|
200
|
+
code: `
|
|
201
|
+
<template>
|
|
202
|
+
<Button variant="tonal" label="Tonal Button" />
|
|
203
|
+
</template>
|
|
204
|
+
`,
|
|
205
|
+
},
|
|
206
|
+
},
|
|
207
|
+
},
|
|
208
|
+
};
|
|
209
|
+
|
|
210
|
+
export const DisabledState: Story = {
|
|
211
|
+
args: {
|
|
212
|
+
disabled: true,
|
|
213
|
+
label: 'Disabled Button',
|
|
214
|
+
},
|
|
215
|
+
parameters: {
|
|
216
|
+
docs: {
|
|
217
|
+
source: {
|
|
218
|
+
code: `
|
|
219
|
+
<template>
|
|
220
|
+
<Button disabled label="Disabled Button" />
|
|
221
|
+
</template>
|
|
222
|
+
`,
|
|
223
|
+
},
|
|
224
|
+
},
|
|
225
|
+
},
|
|
226
|
+
};
|
|
227
|
+
|
|
228
|
+
export const DisabledOutlined: Story = {
|
|
229
|
+
args: {
|
|
230
|
+
disabled: true,
|
|
231
|
+
variant: 'outlined',
|
|
232
|
+
label: 'Disabled Outlined',
|
|
233
|
+
},
|
|
234
|
+
parameters: {
|
|
235
|
+
docs: {
|
|
236
|
+
source: {
|
|
237
|
+
code: `
|
|
238
|
+
<template>
|
|
239
|
+
<Button disabled variant="outlined" label="Disabled Outlined" />
|
|
240
|
+
</template>
|
|
241
|
+
`,
|
|
242
|
+
},
|
|
243
|
+
},
|
|
244
|
+
},
|
|
245
|
+
};
|
|
246
|
+
|
|
247
|
+
export const SmallButton: Story = {
|
|
248
|
+
args: {
|
|
249
|
+
size: 'small',
|
|
250
|
+
label: 'Small Button',
|
|
251
|
+
},
|
|
252
|
+
parameters: {
|
|
253
|
+
docs: {
|
|
254
|
+
source: {
|
|
255
|
+
code: `
|
|
256
|
+
<template>
|
|
257
|
+
<Button size="small" label="Small Button" />
|
|
258
|
+
</template>
|
|
259
|
+
`,
|
|
260
|
+
},
|
|
261
|
+
},
|
|
262
|
+
},
|
|
263
|
+
};
|