@zap-wunschlachen/wl-shared-components 1.0.35 → 1.0.37
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 +43 -38
- 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/audio/test.aac +0 -0
- 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 -117
- package/src/components/Button/Button.vue +174 -136
- package/src/components/CheckBox/CheckBox.css +214 -185
- package/src/components/CheckBox/Checkbox.vue +138 -130
- 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 -29
- 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 -247
- 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 -51
- package/src/components/Loader/Loader.vue +1 -0
- 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 -315
- 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 -0
- package/src/components/index.ts +28 -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 -0
- package/tests/unit/components/Accordion/AccordionGroup.spec.ts +228 -0
- package/tests/unit/components/Accordion/AccordionGroup.spec.ts.skip +342 -342
- package/tests/unit/components/Accordion/AccordionItem.spec.ts +292 -0
- package/tests/unit/components/Accordion/AccordionItem.spec.ts.skip +383 -383
- package/tests/unit/components/Appointment/AnamneseNotification.spec.ts +176 -0
- 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 -0
- 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 -0
- package/tests/unit/components/ErrorPage/ErrorPageLogo.spec.ts +153 -0
- 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 -0
- 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 -0
- package/tests/unit/components/Icons/MiniLogo.spec.ts +38 -0
- package/tests/unit/components/Icons/RingNotification.spec.ts +393 -393
- package/tests/unit/components/Icons/SolidArrowRight.spec.ts +49 -0
- 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 -0
- package/tests/unit/components/MaintenanceBanner/MaintenanceBanner.spec.ts +302 -0
- 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 -0
- package/tsconfig.json +26 -26
- package/vite.config.ts +29 -29
- package/vitest.config.ts +83 -83
|
@@ -1,201 +1,201 @@
|
|
|
1
|
-
import { Meta, StoryObj } from '@storybook/vue3';
|
|
2
|
-
import IconBullet from '@components/IconBullet/IconBullet.vue';
|
|
3
|
-
import { action } from '@storybook/addon-actions';
|
|
4
|
-
|
|
5
|
-
// Meta configuration for the IconBullet component
|
|
6
|
-
const meta: Meta<typeof IconBullet> = {
|
|
7
|
-
title: 'WL/IconBullet/IconBullet',
|
|
8
|
-
component: IconBullet,
|
|
9
|
-
tags: ['autodocs'],
|
|
10
|
-
argTypes: {
|
|
11
|
-
content: {
|
|
12
|
-
control: 'text',
|
|
13
|
-
description:
|
|
14
|
-
'HTML content to display in the main content area. Overrides `header` and `subHeader` if provided.',
|
|
15
|
-
},
|
|
16
|
-
header: {
|
|
17
|
-
control: 'text',
|
|
18
|
-
description:
|
|
19
|
-
'Header text displayed above the subheader. Only displayed if `content` is not provided.',
|
|
20
|
-
},
|
|
21
|
-
subHeader: {
|
|
22
|
-
control: 'text',
|
|
23
|
-
description:
|
|
24
|
-
'Subheader text displayed below the header. Only displayed if `content` is not provided.',
|
|
25
|
-
},
|
|
26
|
-
icon: {
|
|
27
|
-
control: 'text',
|
|
28
|
-
description:
|
|
29
|
-
'Icon to display next to the text. If an icon slot is provided, this prop will be ignored.',
|
|
30
|
-
},
|
|
31
|
-
iconSize: {
|
|
32
|
-
control: 'text',
|
|
33
|
-
description:
|
|
34
|
-
'Size of the icon displayed next to the text. Accepts SVG-compatible size values as a string, such as "23", "28", etc. Ignored if an icon slot is provided.',
|
|
35
|
-
},
|
|
36
|
-
},
|
|
37
|
-
parameters: {
|
|
38
|
-
docs: {
|
|
39
|
-
description: {
|
|
40
|
-
component: `
|
|
41
|
-
The \`IconBullet\` component displays an icon alongside text content. It supports customization through props and slots.
|
|
42
|
-
|
|
43
|
-
### Props
|
|
44
|
-
- **\`content\`**: HTML content to display in the main content area. Overrides \`header\` and \`subHeader\` if provided.
|
|
45
|
-
- **\`header\`**: Header text displayed above the subheader. Only displayed if \`content\` is not provided.
|
|
46
|
-
- **\`subHeader\`**: Subheader text displayed below the header. Only displayed if \`content\` is not provided.
|
|
47
|
-
- **\`icon\`**: Icon to display next to the text. If an icon slot is provided, this prop will be ignored.
|
|
48
|
-
- **\`iconSize\`**: Size of the icon displayed next to the text. Accepts SVG-compatible size values as a string, such as "23", "28", etc. Ignored if an icon slot is provided.
|
|
49
|
-
|
|
50
|
-
### Slots
|
|
51
|
-
- **\`icon\`**: Slot for providing a custom icon. Takes precedence over the \`icon\` prop.
|
|
52
|
-
|
|
53
|
-
### Example Usage
|
|
54
|
-
The following examples demonstrate different ways to use the \`IconBullet\` component.
|
|
55
|
-
`,
|
|
56
|
-
},
|
|
57
|
-
},
|
|
58
|
-
},
|
|
59
|
-
};
|
|
60
|
-
|
|
61
|
-
export default meta;
|
|
62
|
-
type Story = StoryObj<typeof meta>;
|
|
63
|
-
|
|
64
|
-
/**
|
|
65
|
-
* Story using the `content` prop to display custom HTML content.
|
|
66
|
-
*/
|
|
67
|
-
export const WithContent: Story = {
|
|
68
|
-
args: {
|
|
69
|
-
content:
|
|
70
|
-
'<p>This is custom <strong>HTML</strong> content provided via the content prop.</p>',
|
|
71
|
-
icon: 'heroicons:heart',
|
|
72
|
-
iconSize: '38',
|
|
73
|
-
},
|
|
74
|
-
parameters: {
|
|
75
|
-
docs: {
|
|
76
|
-
source: {
|
|
77
|
-
code: `
|
|
78
|
-
<template>
|
|
79
|
-
<IconBullet
|
|
80
|
-
content="<p>This is custom <strong>HTML</strong> content provided via the content prop.</p>"
|
|
81
|
-
icon="heroicons:heart"
|
|
82
|
-
iconSize="38"
|
|
83
|
-
/>
|
|
84
|
-
</template>
|
|
85
|
-
`,
|
|
86
|
-
},
|
|
87
|
-
},
|
|
88
|
-
},
|
|
89
|
-
};
|
|
90
|
-
|
|
91
|
-
/**
|
|
92
|
-
* Story using `header` and `subHeader` props.
|
|
93
|
-
*/
|
|
94
|
-
export const WithHeaderAndSubHeader: Story = {
|
|
95
|
-
args: {
|
|
96
|
-
header: 'Main Header',
|
|
97
|
-
subHeader: 'This is the subheader text.',
|
|
98
|
-
icon: 'heroicons:heart',
|
|
99
|
-
iconSize: '38',
|
|
100
|
-
},
|
|
101
|
-
parameters: {
|
|
102
|
-
docs: {
|
|
103
|
-
source: {
|
|
104
|
-
code: `
|
|
105
|
-
<template>
|
|
106
|
-
<IconBullet
|
|
107
|
-
header="Main Header"
|
|
108
|
-
subHeader="This is the subheader text."
|
|
109
|
-
icon="heroicons:heart"
|
|
110
|
-
iconSize="38"
|
|
111
|
-
/>
|
|
112
|
-
</template>
|
|
113
|
-
`,
|
|
114
|
-
},
|
|
115
|
-
},
|
|
116
|
-
},
|
|
117
|
-
};
|
|
118
|
-
|
|
119
|
-
/**
|
|
120
|
-
* Story using the `icon` slot to provide a custom icon.
|
|
121
|
-
*/
|
|
122
|
-
export const WithIconSlot: Story = {
|
|
123
|
-
args: {
|
|
124
|
-
header: 'Custom Icon Slot',
|
|
125
|
-
subHeader: 'Using a custom icon via slot.',
|
|
126
|
-
},
|
|
127
|
-
render: (args) => ({
|
|
128
|
-
components: { IconBullet },
|
|
129
|
-
setup() {
|
|
130
|
-
return { args };
|
|
131
|
-
},
|
|
132
|
-
template: `
|
|
133
|
-
<IconBullet v-bind="args">
|
|
134
|
-
<template #icon>
|
|
135
|
-
<!-- Custom icon content -->
|
|
136
|
-
<v-icon color="#172774" size="38" icon="heroicons:heart"></v-icon>
|
|
137
|
-
</template>
|
|
138
|
-
</IconBullet>
|
|
139
|
-
`,
|
|
140
|
-
}),
|
|
141
|
-
parameters: {
|
|
142
|
-
docs: {
|
|
143
|
-
source: {
|
|
144
|
-
code: `
|
|
145
|
-
<template>
|
|
146
|
-
<IconBullet header="Custom Icon Slot" subHeader="Using a custom icon via slot.">
|
|
147
|
-
<template #icon>
|
|
148
|
-
<!-- Custom icon content -->
|
|
149
|
-
<v-icon color="#172774" size="38" icon="heroicons:heart"></v-icon>
|
|
150
|
-
</template>
|
|
151
|
-
</IconBullet>
|
|
152
|
-
</template>
|
|
153
|
-
`,
|
|
154
|
-
},
|
|
155
|
-
},
|
|
156
|
-
},
|
|
157
|
-
};
|
|
158
|
-
|
|
159
|
-
/**
|
|
160
|
-
* Story demonstrating all props and the icon slot.
|
|
161
|
-
*/
|
|
162
|
-
export const FullExample: Story = {
|
|
163
|
-
args: {
|
|
164
|
-
header: 'Full Example',
|
|
165
|
-
subHeader: 'This example uses header, subHeader, and a custom icon slot.',
|
|
166
|
-
iconSize: '38',
|
|
167
|
-
},
|
|
168
|
-
render: (args) => ({
|
|
169
|
-
components: { IconBullet },
|
|
170
|
-
setup() {
|
|
171
|
-
return { args };
|
|
172
|
-
},
|
|
173
|
-
template: `
|
|
174
|
-
<IconBullet v-bind="args">
|
|
175
|
-
<template #icon>
|
|
176
|
-
<!-- Custom icon content -->
|
|
177
|
-
<v-icon color="#172774" size="38" icon="heroicons:heart"></v-icon>
|
|
178
|
-
</template>
|
|
179
|
-
</IconBullet>
|
|
180
|
-
`,
|
|
181
|
-
}),
|
|
182
|
-
parameters: {
|
|
183
|
-
docs: {
|
|
184
|
-
source: {
|
|
185
|
-
code: `
|
|
186
|
-
<template>
|
|
187
|
-
<IconBullet
|
|
188
|
-
header="Full Example"
|
|
189
|
-
subHeader="This example uses header, subHeader, and a custom icon slot."
|
|
190
|
-
>
|
|
191
|
-
<template #icon>
|
|
192
|
-
<!-- Custom icon content -->
|
|
193
|
-
<v-icon color="#172774" size="38" icon="heroicons:heart"></v-icon>
|
|
194
|
-
</template>
|
|
195
|
-
</IconBullet>
|
|
196
|
-
</template>
|
|
197
|
-
`,
|
|
198
|
-
},
|
|
199
|
-
},
|
|
200
|
-
},
|
|
201
|
-
};
|
|
1
|
+
import { Meta, StoryObj } from '@storybook/vue3';
|
|
2
|
+
import IconBullet from '@components/IconBullet/IconBullet.vue';
|
|
3
|
+
import { action } from '@storybook/addon-actions';
|
|
4
|
+
|
|
5
|
+
// Meta configuration for the IconBullet component
|
|
6
|
+
const meta: Meta<typeof IconBullet> = {
|
|
7
|
+
title: 'WL/IconBullet/IconBullet',
|
|
8
|
+
component: IconBullet,
|
|
9
|
+
tags: ['autodocs'],
|
|
10
|
+
argTypes: {
|
|
11
|
+
content: {
|
|
12
|
+
control: 'text',
|
|
13
|
+
description:
|
|
14
|
+
'HTML content to display in the main content area. Overrides `header` and `subHeader` if provided.',
|
|
15
|
+
},
|
|
16
|
+
header: {
|
|
17
|
+
control: 'text',
|
|
18
|
+
description:
|
|
19
|
+
'Header text displayed above the subheader. Only displayed if `content` is not provided.',
|
|
20
|
+
},
|
|
21
|
+
subHeader: {
|
|
22
|
+
control: 'text',
|
|
23
|
+
description:
|
|
24
|
+
'Subheader text displayed below the header. Only displayed if `content` is not provided.',
|
|
25
|
+
},
|
|
26
|
+
icon: {
|
|
27
|
+
control: 'text',
|
|
28
|
+
description:
|
|
29
|
+
'Icon to display next to the text. If an icon slot is provided, this prop will be ignored.',
|
|
30
|
+
},
|
|
31
|
+
iconSize: {
|
|
32
|
+
control: 'text',
|
|
33
|
+
description:
|
|
34
|
+
'Size of the icon displayed next to the text. Accepts SVG-compatible size values as a string, such as "23", "28", etc. Ignored if an icon slot is provided.',
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
parameters: {
|
|
38
|
+
docs: {
|
|
39
|
+
description: {
|
|
40
|
+
component: `
|
|
41
|
+
The \`IconBullet\` component displays an icon alongside text content. It supports customization through props and slots.
|
|
42
|
+
|
|
43
|
+
### Props
|
|
44
|
+
- **\`content\`**: HTML content to display in the main content area. Overrides \`header\` and \`subHeader\` if provided.
|
|
45
|
+
- **\`header\`**: Header text displayed above the subheader. Only displayed if \`content\` is not provided.
|
|
46
|
+
- **\`subHeader\`**: Subheader text displayed below the header. Only displayed if \`content\` is not provided.
|
|
47
|
+
- **\`icon\`**: Icon to display next to the text. If an icon slot is provided, this prop will be ignored.
|
|
48
|
+
- **\`iconSize\`**: Size of the icon displayed next to the text. Accepts SVG-compatible size values as a string, such as "23", "28", etc. Ignored if an icon slot is provided.
|
|
49
|
+
|
|
50
|
+
### Slots
|
|
51
|
+
- **\`icon\`**: Slot for providing a custom icon. Takes precedence over the \`icon\` prop.
|
|
52
|
+
|
|
53
|
+
### Example Usage
|
|
54
|
+
The following examples demonstrate different ways to use the \`IconBullet\` component.
|
|
55
|
+
`,
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
},
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
export default meta;
|
|
62
|
+
type Story = StoryObj<typeof meta>;
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Story using the `content` prop to display custom HTML content.
|
|
66
|
+
*/
|
|
67
|
+
export const WithContent: Story = {
|
|
68
|
+
args: {
|
|
69
|
+
content:
|
|
70
|
+
'<p>This is custom <strong>HTML</strong> content provided via the content prop.</p>',
|
|
71
|
+
icon: 'heroicons:heart',
|
|
72
|
+
iconSize: '38',
|
|
73
|
+
},
|
|
74
|
+
parameters: {
|
|
75
|
+
docs: {
|
|
76
|
+
source: {
|
|
77
|
+
code: `
|
|
78
|
+
<template>
|
|
79
|
+
<IconBullet
|
|
80
|
+
content="<p>This is custom <strong>HTML</strong> content provided via the content prop.</p>"
|
|
81
|
+
icon="heroicons:heart"
|
|
82
|
+
iconSize="38"
|
|
83
|
+
/>
|
|
84
|
+
</template>
|
|
85
|
+
`,
|
|
86
|
+
},
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Story using `header` and `subHeader` props.
|
|
93
|
+
*/
|
|
94
|
+
export const WithHeaderAndSubHeader: Story = {
|
|
95
|
+
args: {
|
|
96
|
+
header: 'Main Header',
|
|
97
|
+
subHeader: 'This is the subheader text.',
|
|
98
|
+
icon: 'heroicons:heart',
|
|
99
|
+
iconSize: '38',
|
|
100
|
+
},
|
|
101
|
+
parameters: {
|
|
102
|
+
docs: {
|
|
103
|
+
source: {
|
|
104
|
+
code: `
|
|
105
|
+
<template>
|
|
106
|
+
<IconBullet
|
|
107
|
+
header="Main Header"
|
|
108
|
+
subHeader="This is the subheader text."
|
|
109
|
+
icon="heroicons:heart"
|
|
110
|
+
iconSize="38"
|
|
111
|
+
/>
|
|
112
|
+
</template>
|
|
113
|
+
`,
|
|
114
|
+
},
|
|
115
|
+
},
|
|
116
|
+
},
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Story using the `icon` slot to provide a custom icon.
|
|
121
|
+
*/
|
|
122
|
+
export const WithIconSlot: Story = {
|
|
123
|
+
args: {
|
|
124
|
+
header: 'Custom Icon Slot',
|
|
125
|
+
subHeader: 'Using a custom icon via slot.',
|
|
126
|
+
},
|
|
127
|
+
render: (args) => ({
|
|
128
|
+
components: { IconBullet },
|
|
129
|
+
setup() {
|
|
130
|
+
return { args };
|
|
131
|
+
},
|
|
132
|
+
template: `
|
|
133
|
+
<IconBullet v-bind="args">
|
|
134
|
+
<template #icon>
|
|
135
|
+
<!-- Custom icon content -->
|
|
136
|
+
<v-icon color="#172774" size="38" icon="heroicons:heart"></v-icon>
|
|
137
|
+
</template>
|
|
138
|
+
</IconBullet>
|
|
139
|
+
`,
|
|
140
|
+
}),
|
|
141
|
+
parameters: {
|
|
142
|
+
docs: {
|
|
143
|
+
source: {
|
|
144
|
+
code: `
|
|
145
|
+
<template>
|
|
146
|
+
<IconBullet header="Custom Icon Slot" subHeader="Using a custom icon via slot.">
|
|
147
|
+
<template #icon>
|
|
148
|
+
<!-- Custom icon content -->
|
|
149
|
+
<v-icon color="#172774" size="38" icon="heroicons:heart"></v-icon>
|
|
150
|
+
</template>
|
|
151
|
+
</IconBullet>
|
|
152
|
+
</template>
|
|
153
|
+
`,
|
|
154
|
+
},
|
|
155
|
+
},
|
|
156
|
+
},
|
|
157
|
+
};
|
|
158
|
+
|
|
159
|
+
/**
|
|
160
|
+
* Story demonstrating all props and the icon slot.
|
|
161
|
+
*/
|
|
162
|
+
export const FullExample: Story = {
|
|
163
|
+
args: {
|
|
164
|
+
header: 'Full Example',
|
|
165
|
+
subHeader: 'This example uses header, subHeader, and a custom icon slot.',
|
|
166
|
+
iconSize: '38',
|
|
167
|
+
},
|
|
168
|
+
render: (args) => ({
|
|
169
|
+
components: { IconBullet },
|
|
170
|
+
setup() {
|
|
171
|
+
return { args };
|
|
172
|
+
},
|
|
173
|
+
template: `
|
|
174
|
+
<IconBullet v-bind="args">
|
|
175
|
+
<template #icon>
|
|
176
|
+
<!-- Custom icon content -->
|
|
177
|
+
<v-icon color="#172774" size="38" icon="heroicons:heart"></v-icon>
|
|
178
|
+
</template>
|
|
179
|
+
</IconBullet>
|
|
180
|
+
`,
|
|
181
|
+
}),
|
|
182
|
+
parameters: {
|
|
183
|
+
docs: {
|
|
184
|
+
source: {
|
|
185
|
+
code: `
|
|
186
|
+
<template>
|
|
187
|
+
<IconBullet
|
|
188
|
+
header="Full Example"
|
|
189
|
+
subHeader="This example uses header, subHeader, and a custom icon slot."
|
|
190
|
+
>
|
|
191
|
+
<template #icon>
|
|
192
|
+
<!-- Custom icon content -->
|
|
193
|
+
<v-icon color="#172774" size="38" icon="heroicons:heart"></v-icon>
|
|
194
|
+
</template>
|
|
195
|
+
</IconBullet>
|
|
196
|
+
</template>
|
|
197
|
+
`,
|
|
198
|
+
},
|
|
199
|
+
},
|
|
200
|
+
},
|
|
201
|
+
};
|