@zap-wunschlachen/wl-shared-components 1.0.34 → 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 -41
- 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,204 +1,204 @@
|
|
|
1
|
-
import { Meta, StoryObj } from '@storybook/vue3';
|
|
2
|
-
import ChatMessageBadge from '@components/Laboratory/ChatMessage/ChatMessageBadge.vue';
|
|
3
|
-
|
|
4
|
-
// Meta configuration for the ChatMessageBadge component
|
|
5
|
-
const meta: Meta<typeof ChatMessageBadge> = {
|
|
6
|
-
title: 'WL/Laboratory/Chat/ChatMessageBadge',
|
|
7
|
-
component: ChatMessageBadge,
|
|
8
|
-
tags: ['autodocs'],
|
|
9
|
-
argTypes: {
|
|
10
|
-
badgeColor: {
|
|
11
|
-
control: 'color',
|
|
12
|
-
description: 'The background color of the badge.',
|
|
13
|
-
},
|
|
14
|
-
icon: {
|
|
15
|
-
control: 'text',
|
|
16
|
-
description: 'The icon displayed inside the badge, e.g., mdi-mail.',
|
|
17
|
-
},
|
|
18
|
-
iconColor: {
|
|
19
|
-
control: 'color',
|
|
20
|
-
description: 'The color of the icon displayed in the badge.',
|
|
21
|
-
},
|
|
22
|
-
fabBaseColor: {
|
|
23
|
-
control: 'color',
|
|
24
|
-
description: 'The base color of the floating action button (FAB).',
|
|
25
|
-
},
|
|
26
|
-
fabColor: {
|
|
27
|
-
control: 'color',
|
|
28
|
-
description: 'The background color of the FAB.',
|
|
29
|
-
},
|
|
30
|
-
fabIcon: { control: 'text', description: 'The icon displayed in the FAB.' },
|
|
31
|
-
fabText: {
|
|
32
|
-
control: 'text',
|
|
33
|
-
description: 'Text displayed within the FAB, e.g., initials.',
|
|
34
|
-
},
|
|
35
|
-
textColor: {
|
|
36
|
-
control: 'color',
|
|
37
|
-
description: 'The color of the text displayed in the badge.',
|
|
38
|
-
},
|
|
39
|
-
},
|
|
40
|
-
args: {
|
|
41
|
-
badgeColor: 'var(--Power-Red-0)', // Default badge color
|
|
42
|
-
icon: 'mdi-mail', // Default icon
|
|
43
|
-
iconColor: 'white', // Default icon color
|
|
44
|
-
fabBaseColor: 'white', // Default FAB base color
|
|
45
|
-
fabColor: 'var(--Dental-Blue-0)', // Default FAB color
|
|
46
|
-
fabIcon: '$vuetify', // Default FAB icon
|
|
47
|
-
fabText: 'Mj', // Default FAB text
|
|
48
|
-
textColor: 'white', // Default text color
|
|
49
|
-
},
|
|
50
|
-
parameters: {
|
|
51
|
-
docs: {
|
|
52
|
-
description: {
|
|
53
|
-
component: `
|
|
54
|
-
The \`ChatMessageBadge\` component is used to display a badge with customizable colors, icons, and text. It provides flexibility for different styles, supporting options like background colors, icon colors, and floating action button (FAB) properties.
|
|
55
|
-
|
|
56
|
-
### Props
|
|
57
|
-
- **\`badgeColor\`**: Sets the background color of the badge.
|
|
58
|
-
- **\`icon\`**: The icon displayed within the badge.
|
|
59
|
-
- **\`iconColor\`**: Defines the color of the icon.
|
|
60
|
-
- **\`fabBaseColor\`**: The base color of the floating action button (FAB).
|
|
61
|
-
- **\`fabColor\`**: The background color of the FAB.
|
|
62
|
-
- **\`fabIcon\`**: The icon displayed in the FAB.
|
|
63
|
-
- **\`fabText\`**: Text displayed within the FAB, often used for initials or abbreviations.
|
|
64
|
-
- **\`textColor\`**: Sets the color of any text displayed in the badge.
|
|
65
|
-
|
|
66
|
-
### Usage
|
|
67
|
-
This component is suitable for displaying notification badges in a chat application or messaging interface, allowing customization for both appearance and content.
|
|
68
|
-
`,
|
|
69
|
-
},
|
|
70
|
-
},
|
|
71
|
-
},
|
|
72
|
-
};
|
|
73
|
-
|
|
74
|
-
export default meta;
|
|
75
|
-
type Story = StoryObj<typeof meta>;
|
|
76
|
-
|
|
77
|
-
// Define a common render template
|
|
78
|
-
const Template: Story = {
|
|
79
|
-
render: (args) => ({
|
|
80
|
-
components: { ChatMessageBadge },
|
|
81
|
-
setup() {
|
|
82
|
-
return { args };
|
|
83
|
-
},
|
|
84
|
-
template: '<ChatMessageBadge v-bind="args" />',
|
|
85
|
-
}),
|
|
86
|
-
parameters: {
|
|
87
|
-
docs: {
|
|
88
|
-
source: {
|
|
89
|
-
code: `
|
|
90
|
-
<template>
|
|
91
|
-
<ChatMessageBadge
|
|
92
|
-
:badgeColor="badgeColor"
|
|
93
|
-
:icon="icon"
|
|
94
|
-
:iconColor="iconColor"
|
|
95
|
-
:fabBaseColor="fabBaseColor"
|
|
96
|
-
:fabColor="fabColor"
|
|
97
|
-
:fabIcon="fabIcon"
|
|
98
|
-
:fabText="fabText"
|
|
99
|
-
:textColor="textColor"
|
|
100
|
-
/>
|
|
101
|
-
</template>
|
|
102
|
-
|
|
103
|
-
<script setup>
|
|
104
|
-
import ChatMessageBadge from '@components/Laboratory/ChatMessage/ChatMessageBadge.vue';
|
|
105
|
-
</script>
|
|
106
|
-
`,
|
|
107
|
-
},
|
|
108
|
-
},
|
|
109
|
-
},
|
|
110
|
-
};
|
|
111
|
-
|
|
112
|
-
// Story with default values
|
|
113
|
-
export const Default: Story = { ...Template };
|
|
114
|
-
|
|
115
|
-
// Story with custom badge color and icon
|
|
116
|
-
export const CustomBadgeIcon: Story = {
|
|
117
|
-
...Template,
|
|
118
|
-
args: {
|
|
119
|
-
badgeColor: 'blue',
|
|
120
|
-
icon: 'mdi-bell',
|
|
121
|
-
},
|
|
122
|
-
parameters: {
|
|
123
|
-
docs: {
|
|
124
|
-
source: {
|
|
125
|
-
code: `
|
|
126
|
-
<template>
|
|
127
|
-
<ChatMessageBadge
|
|
128
|
-
badgeColor="blue"
|
|
129
|
-
icon="mdi-bell"
|
|
130
|
-
iconColor="white"
|
|
131
|
-
fabBaseColor="white"
|
|
132
|
-
fabColor="var(--Dental-Blue-0)"
|
|
133
|
-
fabIcon="$vuetify"
|
|
134
|
-
fabText="Mj"
|
|
135
|
-
textColor="white"
|
|
136
|
-
/>
|
|
137
|
-
</template>
|
|
138
|
-
`,
|
|
139
|
-
},
|
|
140
|
-
},
|
|
141
|
-
},
|
|
142
|
-
};
|
|
143
|
-
|
|
144
|
-
// Story with a custom FAB icon and text
|
|
145
|
-
export const CustomFabIconText: Story = {
|
|
146
|
-
...Template,
|
|
147
|
-
args: {
|
|
148
|
-
fabIcon: 'mdi-home',
|
|
149
|
-
fabText: 'AB',
|
|
150
|
-
fabColor: 'green',
|
|
151
|
-
},
|
|
152
|
-
parameters: {
|
|
153
|
-
docs: {
|
|
154
|
-
source: {
|
|
155
|
-
code: `
|
|
156
|
-
<template>
|
|
157
|
-
<ChatMessageBadge
|
|
158
|
-
badgeColor="var(--Power-Red-0)"
|
|
159
|
-
icon="mdi-mail"
|
|
160
|
-
iconColor="white"
|
|
161
|
-
fabBaseColor="white"
|
|
162
|
-
fabColor="green"
|
|
163
|
-
fabIcon="mdi-home"
|
|
164
|
-
fabText="AB"
|
|
165
|
-
textColor="white"
|
|
166
|
-
/>
|
|
167
|
-
</template>
|
|
168
|
-
`,
|
|
169
|
-
},
|
|
170
|
-
},
|
|
171
|
-
},
|
|
172
|
-
};
|
|
173
|
-
|
|
174
|
-
// Story with all custom colors
|
|
175
|
-
export const AllCustomColors: Story = {
|
|
176
|
-
...Template,
|
|
177
|
-
args: {
|
|
178
|
-
badgeColor: 'purple',
|
|
179
|
-
iconColor: 'yellow',
|
|
180
|
-
fabBaseColor: 'black',
|
|
181
|
-
fabColor: 'orange',
|
|
182
|
-
textColor: 'blue',
|
|
183
|
-
},
|
|
184
|
-
parameters: {
|
|
185
|
-
docs: {
|
|
186
|
-
source: {
|
|
187
|
-
code: `
|
|
188
|
-
<template>
|
|
189
|
-
<ChatMessageBadge
|
|
190
|
-
badgeColor="purple"
|
|
191
|
-
icon="mdi-mail"
|
|
192
|
-
iconColor="yellow"
|
|
193
|
-
fabBaseColor="black"
|
|
194
|
-
fabColor="orange"
|
|
195
|
-
fabIcon="$vuetify"
|
|
196
|
-
fabText="Mj"
|
|
197
|
-
textColor="blue"
|
|
198
|
-
/>
|
|
199
|
-
</template>
|
|
200
|
-
`,
|
|
201
|
-
},
|
|
202
|
-
},
|
|
203
|
-
},
|
|
204
|
-
};
|
|
1
|
+
import { Meta, StoryObj } from '@storybook/vue3';
|
|
2
|
+
import ChatMessageBadge from '@components/Laboratory/ChatMessage/ChatMessageBadge.vue';
|
|
3
|
+
|
|
4
|
+
// Meta configuration for the ChatMessageBadge component
|
|
5
|
+
const meta: Meta<typeof ChatMessageBadge> = {
|
|
6
|
+
title: 'WL/Laboratory/Chat/ChatMessageBadge',
|
|
7
|
+
component: ChatMessageBadge,
|
|
8
|
+
tags: ['autodocs'],
|
|
9
|
+
argTypes: {
|
|
10
|
+
badgeColor: {
|
|
11
|
+
control: 'color',
|
|
12
|
+
description: 'The background color of the badge.',
|
|
13
|
+
},
|
|
14
|
+
icon: {
|
|
15
|
+
control: 'text',
|
|
16
|
+
description: 'The icon displayed inside the badge, e.g., mdi-mail.',
|
|
17
|
+
},
|
|
18
|
+
iconColor: {
|
|
19
|
+
control: 'color',
|
|
20
|
+
description: 'The color of the icon displayed in the badge.',
|
|
21
|
+
},
|
|
22
|
+
fabBaseColor: {
|
|
23
|
+
control: 'color',
|
|
24
|
+
description: 'The base color of the floating action button (FAB).',
|
|
25
|
+
},
|
|
26
|
+
fabColor: {
|
|
27
|
+
control: 'color',
|
|
28
|
+
description: 'The background color of the FAB.',
|
|
29
|
+
},
|
|
30
|
+
fabIcon: { control: 'text', description: 'The icon displayed in the FAB.' },
|
|
31
|
+
fabText: {
|
|
32
|
+
control: 'text',
|
|
33
|
+
description: 'Text displayed within the FAB, e.g., initials.',
|
|
34
|
+
},
|
|
35
|
+
textColor: {
|
|
36
|
+
control: 'color',
|
|
37
|
+
description: 'The color of the text displayed in the badge.',
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
args: {
|
|
41
|
+
badgeColor: 'var(--Power-Red-0)', // Default badge color
|
|
42
|
+
icon: 'mdi-mail', // Default icon
|
|
43
|
+
iconColor: 'white', // Default icon color
|
|
44
|
+
fabBaseColor: 'white', // Default FAB base color
|
|
45
|
+
fabColor: 'var(--Dental-Blue-0)', // Default FAB color
|
|
46
|
+
fabIcon: '$vuetify', // Default FAB icon
|
|
47
|
+
fabText: 'Mj', // Default FAB text
|
|
48
|
+
textColor: 'white', // Default text color
|
|
49
|
+
},
|
|
50
|
+
parameters: {
|
|
51
|
+
docs: {
|
|
52
|
+
description: {
|
|
53
|
+
component: `
|
|
54
|
+
The \`ChatMessageBadge\` component is used to display a badge with customizable colors, icons, and text. It provides flexibility for different styles, supporting options like background colors, icon colors, and floating action button (FAB) properties.
|
|
55
|
+
|
|
56
|
+
### Props
|
|
57
|
+
- **\`badgeColor\`**: Sets the background color of the badge.
|
|
58
|
+
- **\`icon\`**: The icon displayed within the badge.
|
|
59
|
+
- **\`iconColor\`**: Defines the color of the icon.
|
|
60
|
+
- **\`fabBaseColor\`**: The base color of the floating action button (FAB).
|
|
61
|
+
- **\`fabColor\`**: The background color of the FAB.
|
|
62
|
+
- **\`fabIcon\`**: The icon displayed in the FAB.
|
|
63
|
+
- **\`fabText\`**: Text displayed within the FAB, often used for initials or abbreviations.
|
|
64
|
+
- **\`textColor\`**: Sets the color of any text displayed in the badge.
|
|
65
|
+
|
|
66
|
+
### Usage
|
|
67
|
+
This component is suitable for displaying notification badges in a chat application or messaging interface, allowing customization for both appearance and content.
|
|
68
|
+
`,
|
|
69
|
+
},
|
|
70
|
+
},
|
|
71
|
+
},
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
export default meta;
|
|
75
|
+
type Story = StoryObj<typeof meta>;
|
|
76
|
+
|
|
77
|
+
// Define a common render template
|
|
78
|
+
const Template: Story = {
|
|
79
|
+
render: (args) => ({
|
|
80
|
+
components: { ChatMessageBadge },
|
|
81
|
+
setup() {
|
|
82
|
+
return { args };
|
|
83
|
+
},
|
|
84
|
+
template: '<ChatMessageBadge v-bind="args" />',
|
|
85
|
+
}),
|
|
86
|
+
parameters: {
|
|
87
|
+
docs: {
|
|
88
|
+
source: {
|
|
89
|
+
code: `
|
|
90
|
+
<template>
|
|
91
|
+
<ChatMessageBadge
|
|
92
|
+
:badgeColor="badgeColor"
|
|
93
|
+
:icon="icon"
|
|
94
|
+
:iconColor="iconColor"
|
|
95
|
+
:fabBaseColor="fabBaseColor"
|
|
96
|
+
:fabColor="fabColor"
|
|
97
|
+
:fabIcon="fabIcon"
|
|
98
|
+
:fabText="fabText"
|
|
99
|
+
:textColor="textColor"
|
|
100
|
+
/>
|
|
101
|
+
</template>
|
|
102
|
+
|
|
103
|
+
<script setup>
|
|
104
|
+
import ChatMessageBadge from '@components/Laboratory/ChatMessage/ChatMessageBadge.vue';
|
|
105
|
+
</script>
|
|
106
|
+
`,
|
|
107
|
+
},
|
|
108
|
+
},
|
|
109
|
+
},
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
// Story with default values
|
|
113
|
+
export const Default: Story = { ...Template };
|
|
114
|
+
|
|
115
|
+
// Story with custom badge color and icon
|
|
116
|
+
export const CustomBadgeIcon: Story = {
|
|
117
|
+
...Template,
|
|
118
|
+
args: {
|
|
119
|
+
badgeColor: 'blue',
|
|
120
|
+
icon: 'mdi-bell',
|
|
121
|
+
},
|
|
122
|
+
parameters: {
|
|
123
|
+
docs: {
|
|
124
|
+
source: {
|
|
125
|
+
code: `
|
|
126
|
+
<template>
|
|
127
|
+
<ChatMessageBadge
|
|
128
|
+
badgeColor="blue"
|
|
129
|
+
icon="mdi-bell"
|
|
130
|
+
iconColor="white"
|
|
131
|
+
fabBaseColor="white"
|
|
132
|
+
fabColor="var(--Dental-Blue-0)"
|
|
133
|
+
fabIcon="$vuetify"
|
|
134
|
+
fabText="Mj"
|
|
135
|
+
textColor="white"
|
|
136
|
+
/>
|
|
137
|
+
</template>
|
|
138
|
+
`,
|
|
139
|
+
},
|
|
140
|
+
},
|
|
141
|
+
},
|
|
142
|
+
};
|
|
143
|
+
|
|
144
|
+
// Story with a custom FAB icon and text
|
|
145
|
+
export const CustomFabIconText: Story = {
|
|
146
|
+
...Template,
|
|
147
|
+
args: {
|
|
148
|
+
fabIcon: 'mdi-home',
|
|
149
|
+
fabText: 'AB',
|
|
150
|
+
fabColor: 'green',
|
|
151
|
+
},
|
|
152
|
+
parameters: {
|
|
153
|
+
docs: {
|
|
154
|
+
source: {
|
|
155
|
+
code: `
|
|
156
|
+
<template>
|
|
157
|
+
<ChatMessageBadge
|
|
158
|
+
badgeColor="var(--Power-Red-0)"
|
|
159
|
+
icon="mdi-mail"
|
|
160
|
+
iconColor="white"
|
|
161
|
+
fabBaseColor="white"
|
|
162
|
+
fabColor="green"
|
|
163
|
+
fabIcon="mdi-home"
|
|
164
|
+
fabText="AB"
|
|
165
|
+
textColor="white"
|
|
166
|
+
/>
|
|
167
|
+
</template>
|
|
168
|
+
`,
|
|
169
|
+
},
|
|
170
|
+
},
|
|
171
|
+
},
|
|
172
|
+
};
|
|
173
|
+
|
|
174
|
+
// Story with all custom colors
|
|
175
|
+
export const AllCustomColors: Story = {
|
|
176
|
+
...Template,
|
|
177
|
+
args: {
|
|
178
|
+
badgeColor: 'purple',
|
|
179
|
+
iconColor: 'yellow',
|
|
180
|
+
fabBaseColor: 'black',
|
|
181
|
+
fabColor: 'orange',
|
|
182
|
+
textColor: 'blue',
|
|
183
|
+
},
|
|
184
|
+
parameters: {
|
|
185
|
+
docs: {
|
|
186
|
+
source: {
|
|
187
|
+
code: `
|
|
188
|
+
<template>
|
|
189
|
+
<ChatMessageBadge
|
|
190
|
+
badgeColor="purple"
|
|
191
|
+
icon="mdi-mail"
|
|
192
|
+
iconColor="yellow"
|
|
193
|
+
fabBaseColor="black"
|
|
194
|
+
fabColor="orange"
|
|
195
|
+
fabIcon="$vuetify"
|
|
196
|
+
fabText="Mj"
|
|
197
|
+
textColor="blue"
|
|
198
|
+
/>
|
|
199
|
+
</template>
|
|
200
|
+
`,
|
|
201
|
+
},
|
|
202
|
+
},
|
|
203
|
+
},
|
|
204
|
+
};
|