@zap-wunschlachen/wl-shared-components 1.0.37 → 1.0.38
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 -43
- 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 +232 -232
- package/src/assets/css/variables.css +109 -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/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/calendar.vue +17 -17
- 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/StagingBanner/StagingBanner.css +19 -0
- package/src/components/StagingBanner/StagingBanner.vue +82 -0
- 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 -28
- 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 +109 -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
- package/public/audio/test.aac +0 -0
|
@@ -1,275 +1,275 @@
|
|
|
1
|
-
import { Meta, StoryObj } from '@storybook/vue3';
|
|
2
|
-
import IconBulletList from '@components/IconBullet/IconBulletList.vue';
|
|
3
|
-
import IconBullet from '@components/IconBullet/IconBullet.vue';
|
|
4
|
-
|
|
5
|
-
// Meta configuration for the IconBulletList component
|
|
6
|
-
const meta: Meta<typeof IconBulletList> = {
|
|
7
|
-
title: 'Wl/IconBullet/IconBulletList',
|
|
8
|
-
tags: ['autodocs'],
|
|
9
|
-
component: IconBulletList,
|
|
10
|
-
argTypes: {
|
|
11
|
-
header: {
|
|
12
|
-
control: 'text',
|
|
13
|
-
description: 'Header text displayed if the header slot is not provided.',
|
|
14
|
-
},
|
|
15
|
-
},
|
|
16
|
-
parameters: {
|
|
17
|
-
docs: {
|
|
18
|
-
description: {
|
|
19
|
-
component: `
|
|
20
|
-
The \`IconBulletList\` component displays a list of \`IconBullet\` components with an optional header. The header can be provided via a prop or a slot.
|
|
21
|
-
|
|
22
|
-
### Props
|
|
23
|
-
- **\`header\`**: Header text displayed if the \`header\` slot is not provided.
|
|
24
|
-
|
|
25
|
-
### Slots
|
|
26
|
-
- **\`header\`**: Slot for custom header content. Overrides the \`header\` prop.
|
|
27
|
-
- **Default Slot**: Used to pass in \`IconBullet\` components.
|
|
28
|
-
|
|
29
|
-
### Example Usage
|
|
30
|
-
Below are examples demonstrating how to use the \`IconBulletList\` component.
|
|
31
|
-
`,
|
|
32
|
-
},
|
|
33
|
-
},
|
|
34
|
-
},
|
|
35
|
-
};
|
|
36
|
-
|
|
37
|
-
export default meta;
|
|
38
|
-
type Story = StoryObj<typeof meta>;
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* Story using the `header` prop and including child `IconBullet` components.
|
|
42
|
-
*/
|
|
43
|
-
export const WithHeaderAndBullets: Story = {
|
|
44
|
-
args: {
|
|
45
|
-
header:
|
|
46
|
-
'Welche Vorteile haben festsitzende Zähne an einem Tag gegenüber Prothesen?',
|
|
47
|
-
},
|
|
48
|
-
render: (args) => ({
|
|
49
|
-
components: { IconBulletList, IconBullet },
|
|
50
|
-
setup() {
|
|
51
|
-
return { args };
|
|
52
|
-
},
|
|
53
|
-
template: `
|
|
54
|
-
<IconBulletList v-bind="args">
|
|
55
|
-
<IconBullet
|
|
56
|
-
header="Bequemer Zugang"
|
|
57
|
-
subHeader="Unsere Zahnärzte kommen direkt ins Pflegeheim"
|
|
58
|
-
>
|
|
59
|
-
<template #icon>
|
|
60
|
-
<v-icon size="38" icon="heroicons:calendar" color="#172774" />
|
|
61
|
-
</template>
|
|
62
|
-
</IconBullet>
|
|
63
|
-
<IconBullet
|
|
64
|
-
header="Einfühlsame Behandlung"
|
|
65
|
-
subHeader="Speziell geschult für ältere und pflegebedürftige Patienten"
|
|
66
|
-
icon="heroicons:calendar"
|
|
67
|
-
iconSize="38"
|
|
68
|
-
/>
|
|
69
|
-
<IconBullet
|
|
70
|
-
header="Regelmäßige Kontrollen"
|
|
71
|
-
subHeader="Untersuchungen für Ihre Zahngesundheit bei regelmäßigen Besuchen"
|
|
72
|
-
icon="heroicons:calendar"
|
|
73
|
-
iconSize="38"
|
|
74
|
-
/>
|
|
75
|
-
<IconBullet
|
|
76
|
-
header="Bequemer Zugang"
|
|
77
|
-
subHeader="Unsere Zahnärzte kommen direkt ins Pflegeheim"
|
|
78
|
-
icon="heroicons:calendar"
|
|
79
|
-
iconSize="38"
|
|
80
|
-
/>
|
|
81
|
-
</IconBulletList>
|
|
82
|
-
`,
|
|
83
|
-
}),
|
|
84
|
-
parameters: {
|
|
85
|
-
docs: {
|
|
86
|
-
source: {
|
|
87
|
-
code: `
|
|
88
|
-
<template>
|
|
89
|
-
<IconBulletList
|
|
90
|
-
header="Welche Vorteile haben festsitzende Zähne an einem Tag gegenüber Prothesen?"
|
|
91
|
-
>
|
|
92
|
-
<IconBullet
|
|
93
|
-
header="Bequemer Zugang"
|
|
94
|
-
subHeader="Unsere Zahnärzte kommen direkt ins Pflegeheim"
|
|
95
|
-
>
|
|
96
|
-
<template #icon>
|
|
97
|
-
<v-icon size="38" icon="heroicons:calendar" color="#172774" />
|
|
98
|
-
</template>
|
|
99
|
-
</IconBullet>
|
|
100
|
-
<IconBullet
|
|
101
|
-
header="Einfühlsame Behandlung"
|
|
102
|
-
subHeader="Speziell geschult für ältere und pflegebedürftige Patienten"
|
|
103
|
-
icon="heroicons:calendar"
|
|
104
|
-
iconSize="38"
|
|
105
|
-
/>
|
|
106
|
-
<IconBullet
|
|
107
|
-
header="Regelmäßige Kontrollen"
|
|
108
|
-
subHeader="Untersuchungen für Ihre Zahngesundheit bei regelmäßigen Besuchen"
|
|
109
|
-
icon="heroicons:calendar"
|
|
110
|
-
iconSize="38"
|
|
111
|
-
/>
|
|
112
|
-
<IconBullet
|
|
113
|
-
header="Bequemer Zugang"
|
|
114
|
-
subHeader="Unsere Zahnärzte kommen direkt ins Pflegeheim"
|
|
115
|
-
icon="heroicons:calendar"
|
|
116
|
-
iconSize="38"
|
|
117
|
-
/>
|
|
118
|
-
</IconBulletList>
|
|
119
|
-
</template>
|
|
120
|
-
`,
|
|
121
|
-
},
|
|
122
|
-
},
|
|
123
|
-
},
|
|
124
|
-
};
|
|
125
|
-
|
|
126
|
-
/**
|
|
127
|
-
* Story overriding the header using the `header` slot.
|
|
128
|
-
*/
|
|
129
|
-
export const WithHeaderSlot: Story = {
|
|
130
|
-
render: () => ({
|
|
131
|
-
components: { IconBulletList, IconBullet },
|
|
132
|
-
template: `
|
|
133
|
-
<IconBulletList>
|
|
134
|
-
<template #header>
|
|
135
|
-
<h2>Custom Header Content via Slot</h2>
|
|
136
|
-
</template>
|
|
137
|
-
<IconBullet
|
|
138
|
-
header="Custom Bullet"
|
|
139
|
-
subHeader="This bullet uses a custom icon via slot."
|
|
140
|
-
>
|
|
141
|
-
<template #icon>
|
|
142
|
-
<v-icon size="38" icon="heroicons:star" color="#172774" />
|
|
143
|
-
</template>
|
|
144
|
-
</IconBullet>
|
|
145
|
-
</IconBulletList>
|
|
146
|
-
`,
|
|
147
|
-
}),
|
|
148
|
-
parameters: {
|
|
149
|
-
docs: {
|
|
150
|
-
source: {
|
|
151
|
-
code: `
|
|
152
|
-
<template>
|
|
153
|
-
<IconBulletList>
|
|
154
|
-
<template #header>
|
|
155
|
-
<h2>Custom Header Content via Slot</h2>
|
|
156
|
-
</template>
|
|
157
|
-
<IconBullet
|
|
158
|
-
header="Custom Bullet"
|
|
159
|
-
subHeader="This bullet uses a custom icon via slot."
|
|
160
|
-
>
|
|
161
|
-
<template #icon>
|
|
162
|
-
<v-icon size="38" icon="heroicons:star" color="#172774" />
|
|
163
|
-
</template>
|
|
164
|
-
</IconBullet>
|
|
165
|
-
</IconBulletList>
|
|
166
|
-
</template>
|
|
167
|
-
`,
|
|
168
|
-
},
|
|
169
|
-
},
|
|
170
|
-
},
|
|
171
|
-
};
|
|
172
|
-
|
|
173
|
-
/**
|
|
174
|
-
* Story demonstrating multiple `IconBullet` components without additional content.
|
|
175
|
-
*/
|
|
176
|
-
export const MultipleBullets: Story = {
|
|
177
|
-
args: {
|
|
178
|
-
header: 'IconBulletList with Multiple Bullets',
|
|
179
|
-
},
|
|
180
|
-
render: (args) => ({
|
|
181
|
-
components: { IconBulletList, IconBullet },
|
|
182
|
-
setup() {
|
|
183
|
-
return { args };
|
|
184
|
-
},
|
|
185
|
-
template: `
|
|
186
|
-
<IconBulletList v-bind="args">
|
|
187
|
-
<IconBullet
|
|
188
|
-
header="Erster Punkt"
|
|
189
|
-
subHeader="Details zum ersten Punkt."
|
|
190
|
-
icon="heroicons:check-circle"
|
|
191
|
-
iconSize="38"
|
|
192
|
-
/>
|
|
193
|
-
<IconBullet
|
|
194
|
-
header="Zweiter Punkt"
|
|
195
|
-
subHeader="Details zum zweiten Punkt."
|
|
196
|
-
icon="heroicons:check-circle"
|
|
197
|
-
iconSize="38"
|
|
198
|
-
/>
|
|
199
|
-
<IconBullet
|
|
200
|
-
header="Dritter Punkt"
|
|
201
|
-
subHeader="Details zum dritten Punkt."
|
|
202
|
-
icon="heroicons:check-circle"
|
|
203
|
-
iconSize="38"
|
|
204
|
-
/>
|
|
205
|
-
</IconBulletList>
|
|
206
|
-
`,
|
|
207
|
-
}),
|
|
208
|
-
parameters: {
|
|
209
|
-
docs: {
|
|
210
|
-
source: {
|
|
211
|
-
code: `
|
|
212
|
-
<template>
|
|
213
|
-
<IconBulletList header="IconBulletList with Multiple Bullets">
|
|
214
|
-
<IconBullet
|
|
215
|
-
header="Erster Punkt"
|
|
216
|
-
subHeader="Details zum ersten Punkt."
|
|
217
|
-
icon="heroicons:check-circle"
|
|
218
|
-
iconSize="38"
|
|
219
|
-
/>
|
|
220
|
-
<IconBullet
|
|
221
|
-
header="Zweiter Punkt"
|
|
222
|
-
subHeader="Details zum zweiten Punkt."
|
|
223
|
-
icon="heroicons:check-circle"
|
|
224
|
-
iconSize="38"
|
|
225
|
-
/>
|
|
226
|
-
<IconBullet
|
|
227
|
-
header="Dritter Punkt"
|
|
228
|
-
subHeader="Details zum dritten Punkt."
|
|
229
|
-
icon="heroicons:check-circle"
|
|
230
|
-
iconSize="38"
|
|
231
|
-
/>
|
|
232
|
-
</IconBulletList>
|
|
233
|
-
</template>
|
|
234
|
-
`,
|
|
235
|
-
},
|
|
236
|
-
},
|
|
237
|
-
},
|
|
238
|
-
};
|
|
239
|
-
|
|
240
|
-
/**
|
|
241
|
-
* Story demonstrating the component without a header (neither prop nor slot).
|
|
242
|
-
*/
|
|
243
|
-
export const WithoutHeader: Story = {
|
|
244
|
-
render: () => ({
|
|
245
|
-
components: { IconBulletList, IconBullet },
|
|
246
|
-
template: `
|
|
247
|
-
<IconBulletList>
|
|
248
|
-
<IconBullet
|
|
249
|
-
header="Bullet Without List Header"
|
|
250
|
-
subHeader="This list has no header."
|
|
251
|
-
icon="heroicons:information-circle"
|
|
252
|
-
iconSize="38"
|
|
253
|
-
/>
|
|
254
|
-
</IconBulletList>
|
|
255
|
-
`,
|
|
256
|
-
}),
|
|
257
|
-
parameters: {
|
|
258
|
-
docs: {
|
|
259
|
-
source: {
|
|
260
|
-
code: `
|
|
261
|
-
<template>
|
|
262
|
-
<IconBulletList>
|
|
263
|
-
<IconBullet
|
|
264
|
-
header="Bullet Without List Header"
|
|
265
|
-
subHeader="This list has no header."
|
|
266
|
-
icon="heroicons:information-circle"
|
|
267
|
-
iconSize="38"
|
|
268
|
-
/>
|
|
269
|
-
</IconBulletList>
|
|
270
|
-
</template>
|
|
271
|
-
`,
|
|
272
|
-
},
|
|
273
|
-
},
|
|
274
|
-
},
|
|
275
|
-
};
|
|
1
|
+
import { Meta, StoryObj } from '@storybook/vue3';
|
|
2
|
+
import IconBulletList from '@components/IconBullet/IconBulletList.vue';
|
|
3
|
+
import IconBullet from '@components/IconBullet/IconBullet.vue';
|
|
4
|
+
|
|
5
|
+
// Meta configuration for the IconBulletList component
|
|
6
|
+
const meta: Meta<typeof IconBulletList> = {
|
|
7
|
+
title: 'Wl/IconBullet/IconBulletList',
|
|
8
|
+
tags: ['autodocs'],
|
|
9
|
+
component: IconBulletList,
|
|
10
|
+
argTypes: {
|
|
11
|
+
header: {
|
|
12
|
+
control: 'text',
|
|
13
|
+
description: 'Header text displayed if the header slot is not provided.',
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
parameters: {
|
|
17
|
+
docs: {
|
|
18
|
+
description: {
|
|
19
|
+
component: `
|
|
20
|
+
The \`IconBulletList\` component displays a list of \`IconBullet\` components with an optional header. The header can be provided via a prop or a slot.
|
|
21
|
+
|
|
22
|
+
### Props
|
|
23
|
+
- **\`header\`**: Header text displayed if the \`header\` slot is not provided.
|
|
24
|
+
|
|
25
|
+
### Slots
|
|
26
|
+
- **\`header\`**: Slot for custom header content. Overrides the \`header\` prop.
|
|
27
|
+
- **Default Slot**: Used to pass in \`IconBullet\` components.
|
|
28
|
+
|
|
29
|
+
### Example Usage
|
|
30
|
+
Below are examples demonstrating how to use the \`IconBulletList\` component.
|
|
31
|
+
`,
|
|
32
|
+
},
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
export default meta;
|
|
38
|
+
type Story = StoryObj<typeof meta>;
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Story using the `header` prop and including child `IconBullet` components.
|
|
42
|
+
*/
|
|
43
|
+
export const WithHeaderAndBullets: Story = {
|
|
44
|
+
args: {
|
|
45
|
+
header:
|
|
46
|
+
'Welche Vorteile haben festsitzende Zähne an einem Tag gegenüber Prothesen?',
|
|
47
|
+
},
|
|
48
|
+
render: (args) => ({
|
|
49
|
+
components: { IconBulletList, IconBullet },
|
|
50
|
+
setup() {
|
|
51
|
+
return { args };
|
|
52
|
+
},
|
|
53
|
+
template: `
|
|
54
|
+
<IconBulletList v-bind="args">
|
|
55
|
+
<IconBullet
|
|
56
|
+
header="Bequemer Zugang"
|
|
57
|
+
subHeader="Unsere Zahnärzte kommen direkt ins Pflegeheim"
|
|
58
|
+
>
|
|
59
|
+
<template #icon>
|
|
60
|
+
<v-icon size="38" icon="heroicons:calendar" color="#172774" />
|
|
61
|
+
</template>
|
|
62
|
+
</IconBullet>
|
|
63
|
+
<IconBullet
|
|
64
|
+
header="Einfühlsame Behandlung"
|
|
65
|
+
subHeader="Speziell geschult für ältere und pflegebedürftige Patienten"
|
|
66
|
+
icon="heroicons:calendar"
|
|
67
|
+
iconSize="38"
|
|
68
|
+
/>
|
|
69
|
+
<IconBullet
|
|
70
|
+
header="Regelmäßige Kontrollen"
|
|
71
|
+
subHeader="Untersuchungen für Ihre Zahngesundheit bei regelmäßigen Besuchen"
|
|
72
|
+
icon="heroicons:calendar"
|
|
73
|
+
iconSize="38"
|
|
74
|
+
/>
|
|
75
|
+
<IconBullet
|
|
76
|
+
header="Bequemer Zugang"
|
|
77
|
+
subHeader="Unsere Zahnärzte kommen direkt ins Pflegeheim"
|
|
78
|
+
icon="heroicons:calendar"
|
|
79
|
+
iconSize="38"
|
|
80
|
+
/>
|
|
81
|
+
</IconBulletList>
|
|
82
|
+
`,
|
|
83
|
+
}),
|
|
84
|
+
parameters: {
|
|
85
|
+
docs: {
|
|
86
|
+
source: {
|
|
87
|
+
code: `
|
|
88
|
+
<template>
|
|
89
|
+
<IconBulletList
|
|
90
|
+
header="Welche Vorteile haben festsitzende Zähne an einem Tag gegenüber Prothesen?"
|
|
91
|
+
>
|
|
92
|
+
<IconBullet
|
|
93
|
+
header="Bequemer Zugang"
|
|
94
|
+
subHeader="Unsere Zahnärzte kommen direkt ins Pflegeheim"
|
|
95
|
+
>
|
|
96
|
+
<template #icon>
|
|
97
|
+
<v-icon size="38" icon="heroicons:calendar" color="#172774" />
|
|
98
|
+
</template>
|
|
99
|
+
</IconBullet>
|
|
100
|
+
<IconBullet
|
|
101
|
+
header="Einfühlsame Behandlung"
|
|
102
|
+
subHeader="Speziell geschult für ältere und pflegebedürftige Patienten"
|
|
103
|
+
icon="heroicons:calendar"
|
|
104
|
+
iconSize="38"
|
|
105
|
+
/>
|
|
106
|
+
<IconBullet
|
|
107
|
+
header="Regelmäßige Kontrollen"
|
|
108
|
+
subHeader="Untersuchungen für Ihre Zahngesundheit bei regelmäßigen Besuchen"
|
|
109
|
+
icon="heroicons:calendar"
|
|
110
|
+
iconSize="38"
|
|
111
|
+
/>
|
|
112
|
+
<IconBullet
|
|
113
|
+
header="Bequemer Zugang"
|
|
114
|
+
subHeader="Unsere Zahnärzte kommen direkt ins Pflegeheim"
|
|
115
|
+
icon="heroicons:calendar"
|
|
116
|
+
iconSize="38"
|
|
117
|
+
/>
|
|
118
|
+
</IconBulletList>
|
|
119
|
+
</template>
|
|
120
|
+
`,
|
|
121
|
+
},
|
|
122
|
+
},
|
|
123
|
+
},
|
|
124
|
+
};
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* Story overriding the header using the `header` slot.
|
|
128
|
+
*/
|
|
129
|
+
export const WithHeaderSlot: Story = {
|
|
130
|
+
render: () => ({
|
|
131
|
+
components: { IconBulletList, IconBullet },
|
|
132
|
+
template: `
|
|
133
|
+
<IconBulletList>
|
|
134
|
+
<template #header>
|
|
135
|
+
<h2>Custom Header Content via Slot</h2>
|
|
136
|
+
</template>
|
|
137
|
+
<IconBullet
|
|
138
|
+
header="Custom Bullet"
|
|
139
|
+
subHeader="This bullet uses a custom icon via slot."
|
|
140
|
+
>
|
|
141
|
+
<template #icon>
|
|
142
|
+
<v-icon size="38" icon="heroicons:star" color="#172774" />
|
|
143
|
+
</template>
|
|
144
|
+
</IconBullet>
|
|
145
|
+
</IconBulletList>
|
|
146
|
+
`,
|
|
147
|
+
}),
|
|
148
|
+
parameters: {
|
|
149
|
+
docs: {
|
|
150
|
+
source: {
|
|
151
|
+
code: `
|
|
152
|
+
<template>
|
|
153
|
+
<IconBulletList>
|
|
154
|
+
<template #header>
|
|
155
|
+
<h2>Custom Header Content via Slot</h2>
|
|
156
|
+
</template>
|
|
157
|
+
<IconBullet
|
|
158
|
+
header="Custom Bullet"
|
|
159
|
+
subHeader="This bullet uses a custom icon via slot."
|
|
160
|
+
>
|
|
161
|
+
<template #icon>
|
|
162
|
+
<v-icon size="38" icon="heroicons:star" color="#172774" />
|
|
163
|
+
</template>
|
|
164
|
+
</IconBullet>
|
|
165
|
+
</IconBulletList>
|
|
166
|
+
</template>
|
|
167
|
+
`,
|
|
168
|
+
},
|
|
169
|
+
},
|
|
170
|
+
},
|
|
171
|
+
};
|
|
172
|
+
|
|
173
|
+
/**
|
|
174
|
+
* Story demonstrating multiple `IconBullet` components without additional content.
|
|
175
|
+
*/
|
|
176
|
+
export const MultipleBullets: Story = {
|
|
177
|
+
args: {
|
|
178
|
+
header: 'IconBulletList with Multiple Bullets',
|
|
179
|
+
},
|
|
180
|
+
render: (args) => ({
|
|
181
|
+
components: { IconBulletList, IconBullet },
|
|
182
|
+
setup() {
|
|
183
|
+
return { args };
|
|
184
|
+
},
|
|
185
|
+
template: `
|
|
186
|
+
<IconBulletList v-bind="args">
|
|
187
|
+
<IconBullet
|
|
188
|
+
header="Erster Punkt"
|
|
189
|
+
subHeader="Details zum ersten Punkt."
|
|
190
|
+
icon="heroicons:check-circle"
|
|
191
|
+
iconSize="38"
|
|
192
|
+
/>
|
|
193
|
+
<IconBullet
|
|
194
|
+
header="Zweiter Punkt"
|
|
195
|
+
subHeader="Details zum zweiten Punkt."
|
|
196
|
+
icon="heroicons:check-circle"
|
|
197
|
+
iconSize="38"
|
|
198
|
+
/>
|
|
199
|
+
<IconBullet
|
|
200
|
+
header="Dritter Punkt"
|
|
201
|
+
subHeader="Details zum dritten Punkt."
|
|
202
|
+
icon="heroicons:check-circle"
|
|
203
|
+
iconSize="38"
|
|
204
|
+
/>
|
|
205
|
+
</IconBulletList>
|
|
206
|
+
`,
|
|
207
|
+
}),
|
|
208
|
+
parameters: {
|
|
209
|
+
docs: {
|
|
210
|
+
source: {
|
|
211
|
+
code: `
|
|
212
|
+
<template>
|
|
213
|
+
<IconBulletList header="IconBulletList with Multiple Bullets">
|
|
214
|
+
<IconBullet
|
|
215
|
+
header="Erster Punkt"
|
|
216
|
+
subHeader="Details zum ersten Punkt."
|
|
217
|
+
icon="heroicons:check-circle"
|
|
218
|
+
iconSize="38"
|
|
219
|
+
/>
|
|
220
|
+
<IconBullet
|
|
221
|
+
header="Zweiter Punkt"
|
|
222
|
+
subHeader="Details zum zweiten Punkt."
|
|
223
|
+
icon="heroicons:check-circle"
|
|
224
|
+
iconSize="38"
|
|
225
|
+
/>
|
|
226
|
+
<IconBullet
|
|
227
|
+
header="Dritter Punkt"
|
|
228
|
+
subHeader="Details zum dritten Punkt."
|
|
229
|
+
icon="heroicons:check-circle"
|
|
230
|
+
iconSize="38"
|
|
231
|
+
/>
|
|
232
|
+
</IconBulletList>
|
|
233
|
+
</template>
|
|
234
|
+
`,
|
|
235
|
+
},
|
|
236
|
+
},
|
|
237
|
+
},
|
|
238
|
+
};
|
|
239
|
+
|
|
240
|
+
/**
|
|
241
|
+
* Story demonstrating the component without a header (neither prop nor slot).
|
|
242
|
+
*/
|
|
243
|
+
export const WithoutHeader: Story = {
|
|
244
|
+
render: () => ({
|
|
245
|
+
components: { IconBulletList, IconBullet },
|
|
246
|
+
template: `
|
|
247
|
+
<IconBulletList>
|
|
248
|
+
<IconBullet
|
|
249
|
+
header="Bullet Without List Header"
|
|
250
|
+
subHeader="This list has no header."
|
|
251
|
+
icon="heroicons:information-circle"
|
|
252
|
+
iconSize="38"
|
|
253
|
+
/>
|
|
254
|
+
</IconBulletList>
|
|
255
|
+
`,
|
|
256
|
+
}),
|
|
257
|
+
parameters: {
|
|
258
|
+
docs: {
|
|
259
|
+
source: {
|
|
260
|
+
code: `
|
|
261
|
+
<template>
|
|
262
|
+
<IconBulletList>
|
|
263
|
+
<IconBullet
|
|
264
|
+
header="Bullet Without List Header"
|
|
265
|
+
subHeader="This list has no header."
|
|
266
|
+
icon="heroicons:information-circle"
|
|
267
|
+
iconSize="38"
|
|
268
|
+
/>
|
|
269
|
+
</IconBulletList>
|
|
270
|
+
</template>
|
|
271
|
+
`,
|
|
272
|
+
},
|
|
273
|
+
},
|
|
274
|
+
},
|
|
275
|
+
};
|