@zap-wunschlachen/wl-shared-components 1.0.16 → 1.0.18
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 +149 -149
- 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 +235 -235
- package/src/assets/css/variables.css +96 -96
- 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 +34 -28
- package/src/components/Appointment/Card/Actions.vue +73 -72
- package/src/components/Appointment/Card/AnamneseNotification.css +16 -0
- package/src/components/Appointment/Card/AnamneseNotification.vue +24 -0
- package/src/components/Appointment/Card/Card.css +80 -80
- package/src/components/Appointment/Card/Card.vue +93 -87
- 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 +117 -117
- package/src/components/Button/Button.vue +119 -119
- package/src/components/CheckBox/CheckBox.css +185 -185
- package/src/components/CheckBox/Checkbox.vue +130 -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 +29 -29
- package/src/components/EditField/EditField.css +19 -19
- package/src/components/EditField/EditField.vue +202 -202
- 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 +247 -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 +51 -51
- 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 +143 -143
- 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 +304 -304
- 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/index.ts +24 -23
- package/src/constants/iconEnums.ts +3 -3
- package/src/i18n/i18n.ts +15 -15
- package/src/i18n/locales/de.json +30 -27
- package/src/i18n/locales/en.json +30 -27
- package/src/index.ts +34 -34
- package/src/main.ts +11 -11
- package/src/plugins/vuetify.ts +131 -131
- 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/types/index.ts +1 -0
- package/src/utils/index.ts +100 -100
- 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/components/Accordion/AccordionGroup.spec.ts.skip +342 -342
- package/tests/unit/components/Accordion/AccordionItem.spec.ts.skip +383 -383
- 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/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/IconBullet/IconBullet.spec.ts +356 -356
- package/tests/unit/components/IconBullet/IconBulletList.spec.ts +371 -371
- 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/RingNotification.spec.ts +393 -393
- 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/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/tsconfig.json +26 -26
- package/vite.config.ts +29 -29
- package/vitest.config.ts +83 -83
|
@@ -1,260 +1,260 @@
|
|
|
1
|
-
import { Meta, StoryObj } from '@storybook/vue3';
|
|
2
|
-
import AppointmentCard from '@components/Laboratory/AppointmentCard/AppointmentCard.vue';
|
|
3
|
-
|
|
4
|
-
// Meta configuration for the AppointmentCard component
|
|
5
|
-
const meta: Meta<typeof AppointmentCard> = {
|
|
6
|
-
title: 'WL/Laboratory/Cards/AppointmentCard',
|
|
7
|
-
component: AppointmentCard,
|
|
8
|
-
tags: ['autodocs'],
|
|
9
|
-
argTypes: {
|
|
10
|
-
date: {
|
|
11
|
-
control: 'text',
|
|
12
|
-
description: 'The date to display on the appointment card.',
|
|
13
|
-
},
|
|
14
|
-
status: {
|
|
15
|
-
control: 'select',
|
|
16
|
-
options: [
|
|
17
|
-
'Draft',
|
|
18
|
-
'Done',
|
|
19
|
-
'Ready',
|
|
20
|
-
'Took',
|
|
21
|
-
'Started',
|
|
22
|
-
'Dispatched',
|
|
23
|
-
'Proof',
|
|
24
|
-
],
|
|
25
|
-
description: 'Status string like Draft, Done, Ready, etc.',
|
|
26
|
-
},
|
|
27
|
-
treatmentName: { control: 'text', description: 'Name of the treatment.' },
|
|
28
|
-
dentistName: { control: 'text', description: 'Name of the dentist.' },
|
|
29
|
-
buttonTextColor: {
|
|
30
|
-
control: 'text',
|
|
31
|
-
description: 'Text color of the button.',
|
|
32
|
-
},
|
|
33
|
-
buttonBackgroundColor: {
|
|
34
|
-
control: 'text',
|
|
35
|
-
description: 'Background color of the button.',
|
|
36
|
-
},
|
|
37
|
-
buttonBorderColor: {
|
|
38
|
-
control: 'text',
|
|
39
|
-
description: 'Border color of the button.',
|
|
40
|
-
},
|
|
41
|
-
},
|
|
42
|
-
args: {
|
|
43
|
-
date: '16.05.2024',
|
|
44
|
-
status: 'Draft', // Default value
|
|
45
|
-
treatmentName: '01 Kontrolle',
|
|
46
|
-
dentistName: 'Dr. Anna Smith',
|
|
47
|
-
buttonTextColor: '--Dental-Blue-0',
|
|
48
|
-
buttonBackgroundColor: 'rgba(186, 230, 234, 0.10)',
|
|
49
|
-
buttonBorderColor: '--Trkis',
|
|
50
|
-
},
|
|
51
|
-
parameters: {
|
|
52
|
-
docs: {
|
|
53
|
-
description: {
|
|
54
|
-
component: `
|
|
55
|
-
The \`AppointmentCard\` component displays information about a dental appointment, including date, treatment name, dentist name, and status.
|
|
56
|
-
|
|
57
|
-
### Props
|
|
58
|
-
- **\`date\`**: The date of the appointment.
|
|
59
|
-
- **\`status\`**: Represents the status of the appointment. Options include Draft, Done, Ready, etc.
|
|
60
|
-
- **\`treatmentName\`**: The name of the treatment.
|
|
61
|
-
- **\`dentistName\`**: The name of the dentist.
|
|
62
|
-
- **\`buttonTextColor\`**, **\`buttonBackgroundColor\`**, **\`buttonBorderColor\`**: Colors for customizing the button.
|
|
63
|
-
|
|
64
|
-
### Example Usage
|
|
65
|
-
Below are examples of how to use the \`AppointmentCard\` component with various appointment statuses.
|
|
66
|
-
`,
|
|
67
|
-
},
|
|
68
|
-
},
|
|
69
|
-
},
|
|
70
|
-
};
|
|
71
|
-
|
|
72
|
-
export default meta;
|
|
73
|
-
type Story = StoryObj<typeof meta>;
|
|
74
|
-
|
|
75
|
-
// Define a common render template
|
|
76
|
-
const Template: Story = {
|
|
77
|
-
render: (args) => ({
|
|
78
|
-
components: { AppointmentCard },
|
|
79
|
-
setup() {
|
|
80
|
-
return { args };
|
|
81
|
-
},
|
|
82
|
-
template: `<div style="padding: 16px;">
|
|
83
|
-
<AppointmentCard v-bind="args" />
|
|
84
|
-
</div>`,
|
|
85
|
-
}),
|
|
86
|
-
};
|
|
87
|
-
|
|
88
|
-
// Define different stories using the common template
|
|
89
|
-
export const DraftStatus: Story = {
|
|
90
|
-
...Template,
|
|
91
|
-
args: {
|
|
92
|
-
status: 'Draft',
|
|
93
|
-
treatmentName: 'Initial Consultation',
|
|
94
|
-
dentistName: 'Dr. Anna Smith',
|
|
95
|
-
},
|
|
96
|
-
parameters: {
|
|
97
|
-
docs: {
|
|
98
|
-
source: {
|
|
99
|
-
code: `
|
|
100
|
-
<template>
|
|
101
|
-
<AppointmentCard
|
|
102
|
-
date="16.05.2024"
|
|
103
|
-
status="Draft"
|
|
104
|
-
treatmentName="Initial Consultation"
|
|
105
|
-
dentistName="Dr. Anna Smith"
|
|
106
|
-
/>
|
|
107
|
-
</template>
|
|
108
|
-
`,
|
|
109
|
-
},
|
|
110
|
-
},
|
|
111
|
-
},
|
|
112
|
-
};
|
|
113
|
-
|
|
114
|
-
export const DoneStatus: Story = {
|
|
115
|
-
...Template,
|
|
116
|
-
args: {
|
|
117
|
-
status: 'Done',
|
|
118
|
-
treatmentName: 'Implantat Checkup',
|
|
119
|
-
dentistName: 'Dr. John Doe',
|
|
120
|
-
},
|
|
121
|
-
parameters: {
|
|
122
|
-
docs: {
|
|
123
|
-
source: {
|
|
124
|
-
code: `
|
|
125
|
-
<template>
|
|
126
|
-
<AppointmentCard
|
|
127
|
-
date="16.05.2024"
|
|
128
|
-
status="Done"
|
|
129
|
-
treatmentName="Implantat Checkup"
|
|
130
|
-
dentistName="Dr. John Doe"
|
|
131
|
-
/>
|
|
132
|
-
</template>
|
|
133
|
-
`,
|
|
134
|
-
},
|
|
135
|
-
},
|
|
136
|
-
},
|
|
137
|
-
};
|
|
138
|
-
|
|
139
|
-
export const ReadyStatus: Story = {
|
|
140
|
-
...Template,
|
|
141
|
-
args: {
|
|
142
|
-
status: 'Ready',
|
|
143
|
-
treatmentName: 'Kontrolluntersuchung',
|
|
144
|
-
},
|
|
145
|
-
parameters: {
|
|
146
|
-
docs: {
|
|
147
|
-
source: {
|
|
148
|
-
code: `
|
|
149
|
-
<template>
|
|
150
|
-
<AppointmentCard
|
|
151
|
-
date="16.05.2024"
|
|
152
|
-
status="Ready"
|
|
153
|
-
treatmentName="Kontrolluntersuchung"
|
|
154
|
-
/>
|
|
155
|
-
</template>
|
|
156
|
-
`,
|
|
157
|
-
},
|
|
158
|
-
},
|
|
159
|
-
},
|
|
160
|
-
};
|
|
161
|
-
|
|
162
|
-
export const TookStatus: Story = {
|
|
163
|
-
...Template,
|
|
164
|
-
args: {
|
|
165
|
-
status: 'Took',
|
|
166
|
-
treatmentName: 'Zahnreinigung',
|
|
167
|
-
dentistName: 'Dr. John Doe',
|
|
168
|
-
},
|
|
169
|
-
parameters: {
|
|
170
|
-
docs: {
|
|
171
|
-
source: {
|
|
172
|
-
code: `
|
|
173
|
-
<template>
|
|
174
|
-
<AppointmentCard
|
|
175
|
-
date="16.05.2024"
|
|
176
|
-
status="Took"
|
|
177
|
-
treatmentName="Zahnreinigung"
|
|
178
|
-
dentistName="Dr. John Doe"
|
|
179
|
-
/>
|
|
180
|
-
</template>
|
|
181
|
-
`,
|
|
182
|
-
},
|
|
183
|
-
},
|
|
184
|
-
},
|
|
185
|
-
};
|
|
186
|
-
|
|
187
|
-
export const StartedStatus: Story = {
|
|
188
|
-
...Template,
|
|
189
|
-
args: {
|
|
190
|
-
status: 'Started',
|
|
191
|
-
treatmentName: 'Implant Procedure',
|
|
192
|
-
dentistName: 'Dr. Sarah Lee',
|
|
193
|
-
},
|
|
194
|
-
parameters: {
|
|
195
|
-
docs: {
|
|
196
|
-
source: {
|
|
197
|
-
code: `
|
|
198
|
-
<template>
|
|
199
|
-
<AppointmentCard
|
|
200
|
-
date="16.05.2024"
|
|
201
|
-
status="Started"
|
|
202
|
-
treatmentName="Implant Procedure"
|
|
203
|
-
dentistName="Dr. Sarah Lee"
|
|
204
|
-
/>
|
|
205
|
-
</template>
|
|
206
|
-
`,
|
|
207
|
-
},
|
|
208
|
-
},
|
|
209
|
-
},
|
|
210
|
-
};
|
|
211
|
-
|
|
212
|
-
export const DispatchedStatus: Story = {
|
|
213
|
-
...Template,
|
|
214
|
-
args: {
|
|
215
|
-
status: 'Dispatched',
|
|
216
|
-
treatmentName: 'Routine Checkup',
|
|
217
|
-
dentistName: 'Dr. Emily Davis',
|
|
218
|
-
},
|
|
219
|
-
parameters: {
|
|
220
|
-
docs: {
|
|
221
|
-
source: {
|
|
222
|
-
code: `
|
|
223
|
-
<template>
|
|
224
|
-
<AppointmentCard
|
|
225
|
-
date="16.05.2024"
|
|
226
|
-
status="Dispatched"
|
|
227
|
-
treatmentName="Routine Checkup"
|
|
228
|
-
dentistName="Dr. Emily Davis"
|
|
229
|
-
/>
|
|
230
|
-
</template>
|
|
231
|
-
`,
|
|
232
|
-
},
|
|
233
|
-
},
|
|
234
|
-
},
|
|
235
|
-
};
|
|
236
|
-
|
|
237
|
-
export const ProofStatus: Story = {
|
|
238
|
-
...Template,
|
|
239
|
-
args: {
|
|
240
|
-
status: 'Proof',
|
|
241
|
-
treatmentName: 'Documentation Review',
|
|
242
|
-
dentistName: 'Dr. Olivia Brown',
|
|
243
|
-
},
|
|
244
|
-
parameters: {
|
|
245
|
-
docs: {
|
|
246
|
-
source: {
|
|
247
|
-
code: `
|
|
248
|
-
<template>
|
|
249
|
-
<AppointmentCard
|
|
250
|
-
date="16.05.2024"
|
|
251
|
-
status="Proof"
|
|
252
|
-
treatmentName="Documentation Review"
|
|
253
|
-
dentistName="Dr. Olivia Brown"
|
|
254
|
-
/>
|
|
255
|
-
</template>
|
|
256
|
-
`,
|
|
257
|
-
},
|
|
258
|
-
},
|
|
259
|
-
},
|
|
260
|
-
};
|
|
1
|
+
import { Meta, StoryObj } from '@storybook/vue3';
|
|
2
|
+
import AppointmentCard from '@components/Laboratory/AppointmentCard/AppointmentCard.vue';
|
|
3
|
+
|
|
4
|
+
// Meta configuration for the AppointmentCard component
|
|
5
|
+
const meta: Meta<typeof AppointmentCard> = {
|
|
6
|
+
title: 'WL/Laboratory/Cards/AppointmentCard',
|
|
7
|
+
component: AppointmentCard,
|
|
8
|
+
tags: ['autodocs'],
|
|
9
|
+
argTypes: {
|
|
10
|
+
date: {
|
|
11
|
+
control: 'text',
|
|
12
|
+
description: 'The date to display on the appointment card.',
|
|
13
|
+
},
|
|
14
|
+
status: {
|
|
15
|
+
control: 'select',
|
|
16
|
+
options: [
|
|
17
|
+
'Draft',
|
|
18
|
+
'Done',
|
|
19
|
+
'Ready',
|
|
20
|
+
'Took',
|
|
21
|
+
'Started',
|
|
22
|
+
'Dispatched',
|
|
23
|
+
'Proof',
|
|
24
|
+
],
|
|
25
|
+
description: 'Status string like Draft, Done, Ready, etc.',
|
|
26
|
+
},
|
|
27
|
+
treatmentName: { control: 'text', description: 'Name of the treatment.' },
|
|
28
|
+
dentistName: { control: 'text', description: 'Name of the dentist.' },
|
|
29
|
+
buttonTextColor: {
|
|
30
|
+
control: 'text',
|
|
31
|
+
description: 'Text color of the button.',
|
|
32
|
+
},
|
|
33
|
+
buttonBackgroundColor: {
|
|
34
|
+
control: 'text',
|
|
35
|
+
description: 'Background color of the button.',
|
|
36
|
+
},
|
|
37
|
+
buttonBorderColor: {
|
|
38
|
+
control: 'text',
|
|
39
|
+
description: 'Border color of the button.',
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
args: {
|
|
43
|
+
date: '16.05.2024',
|
|
44
|
+
status: 'Draft', // Default value
|
|
45
|
+
treatmentName: '01 Kontrolle',
|
|
46
|
+
dentistName: 'Dr. Anna Smith',
|
|
47
|
+
buttonTextColor: '--Dental-Blue-0',
|
|
48
|
+
buttonBackgroundColor: 'rgba(186, 230, 234, 0.10)',
|
|
49
|
+
buttonBorderColor: '--Trkis',
|
|
50
|
+
},
|
|
51
|
+
parameters: {
|
|
52
|
+
docs: {
|
|
53
|
+
description: {
|
|
54
|
+
component: `
|
|
55
|
+
The \`AppointmentCard\` component displays information about a dental appointment, including date, treatment name, dentist name, and status.
|
|
56
|
+
|
|
57
|
+
### Props
|
|
58
|
+
- **\`date\`**: The date of the appointment.
|
|
59
|
+
- **\`status\`**: Represents the status of the appointment. Options include Draft, Done, Ready, etc.
|
|
60
|
+
- **\`treatmentName\`**: The name of the treatment.
|
|
61
|
+
- **\`dentistName\`**: The name of the dentist.
|
|
62
|
+
- **\`buttonTextColor\`**, **\`buttonBackgroundColor\`**, **\`buttonBorderColor\`**: Colors for customizing the button.
|
|
63
|
+
|
|
64
|
+
### Example Usage
|
|
65
|
+
Below are examples of how to use the \`AppointmentCard\` component with various appointment statuses.
|
|
66
|
+
`,
|
|
67
|
+
},
|
|
68
|
+
},
|
|
69
|
+
},
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
export default meta;
|
|
73
|
+
type Story = StoryObj<typeof meta>;
|
|
74
|
+
|
|
75
|
+
// Define a common render template
|
|
76
|
+
const Template: Story = {
|
|
77
|
+
render: (args) => ({
|
|
78
|
+
components: { AppointmentCard },
|
|
79
|
+
setup() {
|
|
80
|
+
return { args };
|
|
81
|
+
},
|
|
82
|
+
template: `<div style="padding: 16px;">
|
|
83
|
+
<AppointmentCard v-bind="args" />
|
|
84
|
+
</div>`,
|
|
85
|
+
}),
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
// Define different stories using the common template
|
|
89
|
+
export const DraftStatus: Story = {
|
|
90
|
+
...Template,
|
|
91
|
+
args: {
|
|
92
|
+
status: 'Draft',
|
|
93
|
+
treatmentName: 'Initial Consultation',
|
|
94
|
+
dentistName: 'Dr. Anna Smith',
|
|
95
|
+
},
|
|
96
|
+
parameters: {
|
|
97
|
+
docs: {
|
|
98
|
+
source: {
|
|
99
|
+
code: `
|
|
100
|
+
<template>
|
|
101
|
+
<AppointmentCard
|
|
102
|
+
date="16.05.2024"
|
|
103
|
+
status="Draft"
|
|
104
|
+
treatmentName="Initial Consultation"
|
|
105
|
+
dentistName="Dr. Anna Smith"
|
|
106
|
+
/>
|
|
107
|
+
</template>
|
|
108
|
+
`,
|
|
109
|
+
},
|
|
110
|
+
},
|
|
111
|
+
},
|
|
112
|
+
};
|
|
113
|
+
|
|
114
|
+
export const DoneStatus: Story = {
|
|
115
|
+
...Template,
|
|
116
|
+
args: {
|
|
117
|
+
status: 'Done',
|
|
118
|
+
treatmentName: 'Implantat Checkup',
|
|
119
|
+
dentistName: 'Dr. John Doe',
|
|
120
|
+
},
|
|
121
|
+
parameters: {
|
|
122
|
+
docs: {
|
|
123
|
+
source: {
|
|
124
|
+
code: `
|
|
125
|
+
<template>
|
|
126
|
+
<AppointmentCard
|
|
127
|
+
date="16.05.2024"
|
|
128
|
+
status="Done"
|
|
129
|
+
treatmentName="Implantat Checkup"
|
|
130
|
+
dentistName="Dr. John Doe"
|
|
131
|
+
/>
|
|
132
|
+
</template>
|
|
133
|
+
`,
|
|
134
|
+
},
|
|
135
|
+
},
|
|
136
|
+
},
|
|
137
|
+
};
|
|
138
|
+
|
|
139
|
+
export const ReadyStatus: Story = {
|
|
140
|
+
...Template,
|
|
141
|
+
args: {
|
|
142
|
+
status: 'Ready',
|
|
143
|
+
treatmentName: 'Kontrolluntersuchung',
|
|
144
|
+
},
|
|
145
|
+
parameters: {
|
|
146
|
+
docs: {
|
|
147
|
+
source: {
|
|
148
|
+
code: `
|
|
149
|
+
<template>
|
|
150
|
+
<AppointmentCard
|
|
151
|
+
date="16.05.2024"
|
|
152
|
+
status="Ready"
|
|
153
|
+
treatmentName="Kontrolluntersuchung"
|
|
154
|
+
/>
|
|
155
|
+
</template>
|
|
156
|
+
`,
|
|
157
|
+
},
|
|
158
|
+
},
|
|
159
|
+
},
|
|
160
|
+
};
|
|
161
|
+
|
|
162
|
+
export const TookStatus: Story = {
|
|
163
|
+
...Template,
|
|
164
|
+
args: {
|
|
165
|
+
status: 'Took',
|
|
166
|
+
treatmentName: 'Zahnreinigung',
|
|
167
|
+
dentistName: 'Dr. John Doe',
|
|
168
|
+
},
|
|
169
|
+
parameters: {
|
|
170
|
+
docs: {
|
|
171
|
+
source: {
|
|
172
|
+
code: `
|
|
173
|
+
<template>
|
|
174
|
+
<AppointmentCard
|
|
175
|
+
date="16.05.2024"
|
|
176
|
+
status="Took"
|
|
177
|
+
treatmentName="Zahnreinigung"
|
|
178
|
+
dentistName="Dr. John Doe"
|
|
179
|
+
/>
|
|
180
|
+
</template>
|
|
181
|
+
`,
|
|
182
|
+
},
|
|
183
|
+
},
|
|
184
|
+
},
|
|
185
|
+
};
|
|
186
|
+
|
|
187
|
+
export const StartedStatus: Story = {
|
|
188
|
+
...Template,
|
|
189
|
+
args: {
|
|
190
|
+
status: 'Started',
|
|
191
|
+
treatmentName: 'Implant Procedure',
|
|
192
|
+
dentistName: 'Dr. Sarah Lee',
|
|
193
|
+
},
|
|
194
|
+
parameters: {
|
|
195
|
+
docs: {
|
|
196
|
+
source: {
|
|
197
|
+
code: `
|
|
198
|
+
<template>
|
|
199
|
+
<AppointmentCard
|
|
200
|
+
date="16.05.2024"
|
|
201
|
+
status="Started"
|
|
202
|
+
treatmentName="Implant Procedure"
|
|
203
|
+
dentistName="Dr. Sarah Lee"
|
|
204
|
+
/>
|
|
205
|
+
</template>
|
|
206
|
+
`,
|
|
207
|
+
},
|
|
208
|
+
},
|
|
209
|
+
},
|
|
210
|
+
};
|
|
211
|
+
|
|
212
|
+
export const DispatchedStatus: Story = {
|
|
213
|
+
...Template,
|
|
214
|
+
args: {
|
|
215
|
+
status: 'Dispatched',
|
|
216
|
+
treatmentName: 'Routine Checkup',
|
|
217
|
+
dentistName: 'Dr. Emily Davis',
|
|
218
|
+
},
|
|
219
|
+
parameters: {
|
|
220
|
+
docs: {
|
|
221
|
+
source: {
|
|
222
|
+
code: `
|
|
223
|
+
<template>
|
|
224
|
+
<AppointmentCard
|
|
225
|
+
date="16.05.2024"
|
|
226
|
+
status="Dispatched"
|
|
227
|
+
treatmentName="Routine Checkup"
|
|
228
|
+
dentistName="Dr. Emily Davis"
|
|
229
|
+
/>
|
|
230
|
+
</template>
|
|
231
|
+
`,
|
|
232
|
+
},
|
|
233
|
+
},
|
|
234
|
+
},
|
|
235
|
+
};
|
|
236
|
+
|
|
237
|
+
export const ProofStatus: Story = {
|
|
238
|
+
...Template,
|
|
239
|
+
args: {
|
|
240
|
+
status: 'Proof',
|
|
241
|
+
treatmentName: 'Documentation Review',
|
|
242
|
+
dentistName: 'Dr. Olivia Brown',
|
|
243
|
+
},
|
|
244
|
+
parameters: {
|
|
245
|
+
docs: {
|
|
246
|
+
source: {
|
|
247
|
+
code: `
|
|
248
|
+
<template>
|
|
249
|
+
<AppointmentCard
|
|
250
|
+
date="16.05.2024"
|
|
251
|
+
status="Proof"
|
|
252
|
+
treatmentName="Documentation Review"
|
|
253
|
+
dentistName="Dr. Olivia Brown"
|
|
254
|
+
/>
|
|
255
|
+
</template>
|
|
256
|
+
`,
|
|
257
|
+
},
|
|
258
|
+
},
|
|
259
|
+
},
|
|
260
|
+
};
|