@zap-wunschlachen/wl-shared-components 1.0.0
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 +215 -0
- package/.github/workflows/static.yml +62 -0
- package/.prettierrc +5 -0
- package/.storybook/main.ts +18 -0
- package/.storybook/preview.ts +37 -0
- package/.storybook/storyWrapper.vue +18 -0
- package/.storybook/withVuetifyTheme.decorator.ts +21 -0
- package/App.vue +95 -0
- package/README.md +56 -0
- package/heroicons.ts +75 -0
- package/index.html +19 -0
- package/package.json +66 -0
- package/playwright.config.ts +35 -0
- package/public/audio/dummy_pink_noise.wav +0 -0
- package/public/background.svg +60 -0
- package/public/javascript.svg +1 -0
- package/public/style.css +187 -0
- package/public/technologies.svg +22 -0
- package/src/assets/css/base.css +235 -0
- package/src/assets/css/variables.css +96 -0
- package/src/assets/fonts/Outfit-Black.ttf +0 -0
- package/src/assets/fonts/Outfit-Bold.ttf +0 -0
- package/src/assets/fonts/Outfit-ExtraBold.ttf +0 -0
- package/src/assets/fonts/Outfit-ExtraLight.ttf +0 -0
- package/src/assets/fonts/Outfit-Light.ttf +0 -0
- package/src/assets/fonts/Outfit-Medium.ttf +0 -0
- package/src/assets/fonts/Outfit-Regular.ttf +0 -0
- package/src/assets/fonts/Outfit-SemiBold.ttf +0 -0
- package/src/assets/fonts/Outfit-Thin.ttf +0 -0
- package/src/components/Accordion/Accordion.css +59 -0
- package/src/components/Accordion/AccordionGroup.vue +51 -0
- package/src/components/Accordion/AccordionItem.vue +66 -0
- package/src/components/Appointment/Card/Actions.css +30 -0
- package/src/components/Appointment/Card/Actions.vue +66 -0
- package/src/components/Appointment/Card/Card.css +49 -0
- package/src/components/Appointment/Card/Card.vue +55 -0
- package/src/components/Appointment/Card/Details.css +51 -0
- package/src/components/Appointment/Card/Details.vue +44 -0
- package/src/components/Audio/Audio.vue +188 -0
- package/src/components/Audio/Waveform.vue +118 -0
- package/src/components/Button/Button.vue +119 -0
- package/src/components/CheckBox/CheckBox.css +185 -0
- package/src/components/CheckBox/Checkbox.vue +130 -0
- package/src/components/DateInput/DateInput.css +3 -0
- package/src/components/DateInput/DateInput.vue +263 -0
- package/src/components/Dialog/Dialog.css +6 -0
- package/src/components/Dialog/Dialog.vue +29 -0
- package/src/components/EditField/EditField.css +20 -0
- package/src/components/EditField/EditField.vue +202 -0
- package/src/components/IconBullet/IconBullet.vue +86 -0
- package/src/components/IconBullet/IconBulletList.vue +41 -0
- package/src/components/Icons/Audio/CloudFailed.vue +21 -0
- package/src/components/Icons/Audio/CloudSaved.vue +22 -0
- package/src/components/Icons/Audio/Delete.vue +16 -0
- package/src/components/Icons/Audio/Pause.vue +19 -0
- package/src/components/Icons/Audio/Play.vue +16 -0
- package/src/components/Icons/CalendarNotification.vue +126 -0
- package/src/components/Icons/Chair.vue +32 -0
- package/src/components/Icons/ChairNotification.vue +35 -0
- package/src/components/Icons/Circle.vue +66 -0
- package/src/components/Icons/FavIcon.vue +22 -0
- package/src/components/Icons/FilledCircle.vue +11 -0
- package/src/components/Icons/Group3.vue +46 -0
- package/src/components/Icons/RingNotification.vue +54 -0
- package/src/components/Icons/SolidArrowRight.vue +14 -0
- package/src/components/Icons/calendar.vue +17 -0
- package/src/components/Icons/checkbox.vue +19 -0
- package/src/components/Icons/outlineChecked.vue +27 -0
- package/src/components/Icons/play.vue +6 -0
- package/src/components/Input/Input.css +187 -0
- package/src/components/Input/Input.vue +247 -0
- package/src/components/Laboratory/AppointmentCard/AppointmentCard.css +7 -0
- package/src/components/Laboratory/AppointmentCard/AppointmentCard.vue +116 -0
- package/src/components/Laboratory/ChatBoxImage/ChatBoxImage.vue +81 -0
- package/src/components/Laboratory/ChatMessage/ChatMessage.vue +113 -0
- package/src/components/Laboratory/ChatMessage/ChatMessageBadge.css +4 -0
- package/src/components/Laboratory/ChatMessage/ChatMessageBadge.vue +99 -0
- package/src/components/Laboratory/ChatNotification/ChatNotification.vue +130 -0
- package/src/components/Laboratory/DocumentCard/DocumentCard.css +3 -0
- package/src/components/Laboratory/DocumentCard/DocumentCard.vue +50 -0
- package/src/components/Laboratory/DocumentCard/DocumentCardItem.vue +53 -0
- package/src/components/Laboratory/InfoCard/InfoCard.vue +162 -0
- package/src/components/Laboratory/MainColumnsBar/MainColumnsBar.vue +102 -0
- package/src/components/Laboratory/ProgressCircle/ProgressCircle.vue +152 -0
- package/src/components/Laboratory/ProgressLinear/ProgressLinear.css +33 -0
- package/src/components/Laboratory/ProgressLinear/ProgressLinear.vue +75 -0
- package/src/components/Laboratory/SelectionColumnBar/SelectionColumnBar.vue +92 -0
- package/src/components/Laboratory/StatusNotification/StatusNotification.vue +49 -0
- package/src/components/Laboratory/TagLabel/TagLabel.vue +126 -0
- package/src/components/Laboratory/TagLabelGroup/TagLabelGroup.vue +97 -0
- package/src/components/Laboratory/TicketCard/TicketCard.css +3 -0
- package/src/components/Laboratory/TicketCard/TicketCard.vue +143 -0
- package/src/components/Laboratory/TimeLine/TimeLineEvent.css +18 -0
- package/src/components/Laboratory/TimeLine/TimeLineEvent.vue +119 -0
- package/src/components/Laboratory/TimeLine/Timeline.css +4 -0
- package/src/components/Laboratory/TimeLine/Timeline.vue +30 -0
- package/src/components/Modal/Modal.css +6 -0
- package/src/components/Modal/Modal.vue +23 -0
- package/src/components/NotificationBubble/NotificationBubble.css +4 -0
- package/src/components/NotificationBubble/NotificationBubble.vue +90 -0
- package/src/components/OtpInput/OtpInput.css +39 -0
- package/src/components/OtpInput/OtpInput.vue +144 -0
- package/src/components/PhoneInput/PhoneInput.css +32 -0
- package/src/components/PhoneInput/PhoneInput.vue +114 -0
- package/src/components/Select/Select.css +150 -0
- package/src/components/Select/Select.vue +304 -0
- package/src/components/TextArea/TextArea.css +3 -0
- package/src/components/TextArea/TextArea.vue +126 -0
- package/src/components/TickBox/TickBox.css +49 -0
- package/src/components/TickBox/TickBox.vue +126 -0
- package/src/components/index.ts +20 -0
- package/src/constants/buttonEnums.ts +0 -0
- package/src/constants/iconEnums.ts +4 -0
- package/src/i18n/i18n.ts +16 -0
- package/src/i18n/locales/de.json +19 -0
- package/src/i18n/locales/en.json +19 -0
- package/src/index.ts +31 -0
- package/src/main.ts +11 -0
- package/src/plugins/vuetify.ts +131 -0
- package/src/shims-vue.d.ts +10 -0
- package/src/stories/Accordion.stories.ts +650 -0
- package/src/stories/Audio.stories.ts +29 -0
- package/src/stories/Button.stories.ts +263 -0
- package/src/stories/CheckBox.stories.ts +348 -0
- package/src/stories/DateInput.stories.ts +54 -0
- package/src/stories/Dialog.stories.ts +147 -0
- package/src/stories/EditField.stories.ts +79 -0
- package/src/stories/IconBullet/IconBullet.stories.ts +201 -0
- package/src/stories/IconBullet/IconBulletList.stories.ts +275 -0
- package/src/stories/Input.stories.ts +351 -0
- package/src/stories/Laboratory/Cards/AppointmentCard/AppointmentCard.stories.ts +260 -0
- package/src/stories/Laboratory/Cards/DocumentCard/DocumentCard.stories.ts +176 -0
- package/src/stories/Laboratory/Cards/DocumentCard/DocumentCardItem.stories.ts +119 -0
- package/src/stories/Laboratory/Cards/InfoCard/InfoCard.stories.ts +320 -0
- package/src/stories/Laboratory/Cards/TicketCard/TicketCard.stories.ts +335 -0
- package/src/stories/Laboratory/Chat/ChatBoxImage.stories.ts +82 -0
- package/src/stories/Laboratory/Chat/ChatMessage.stories.ts +198 -0
- package/src/stories/Laboratory/Chat/ChatMessageBadge.stories.ts +204 -0
- package/src/stories/Laboratory/Chat/ChatNotification.stories.ts +144 -0
- package/src/stories/Laboratory/Chat/ProgressLinear.stories.ts +186 -0
- package/src/stories/Laboratory/Chat/StatusNotification.stories.ts +111 -0
- package/src/stories/Laboratory/MainColumnsBar.stories.ts +48 -0
- package/src/stories/Laboratory/ProgressCircle.stories.ts +261 -0
- package/src/stories/Laboratory/SelectionColumnBar.stories.ts +234 -0
- package/src/stories/Laboratory/TagLabel.stories.ts +418 -0
- package/src/stories/Laboratory/TagLabelGroup.stories.ts +234 -0
- package/src/stories/Laboratory/Timeline.stories.ts +403 -0
- package/src/stories/NotificationBubble.stories.ts +194 -0
- package/src/stories/OtpInput.stories.ts +101 -0
- package/src/stories/PhoneInput.stories.ts +53 -0
- package/src/stories/Select.stories.ts +419 -0
- package/src/stories/TextArea.stories.ts +112 -0
- package/src/stories/TickBox.stories.ts +294 -0
- package/src/stories/assets/accessibility.png +0 -0
- package/src/stories/assets/accessibility.svg +1 -0
- package/src/stories/assets/addon-library.png +0 -0
- package/src/stories/assets/assets.png +0 -0
- package/src/stories/assets/avif-test-image.avif +0 -0
- package/src/stories/assets/context.png +0 -0
- package/src/stories/assets/discord.svg +1 -0
- package/src/stories/assets/docs.png +0 -0
- package/src/stories/assets/figma-plugin.png +0 -0
- package/src/stories/assets/github.svg +1 -0
- package/src/stories/assets/share.png +0 -0
- package/src/stories/assets/styling.png +0 -0
- package/src/stories/assets/testing.png +0 -0
- package/src/stories/assets/theming.png +0 -0
- package/src/stories/assets/tutorials.svg +1 -0
- package/src/stories/assets/youtube.svg +1 -0
- package/src/stories/v-icon.stories.ts +91 -0
- package/src/types/index.ts +21 -0
- package/src/vite-env.d.ts +1 -0
- package/tests/e2e/README.md +221 -0
- package/tests/e2e/accessibility.spec.ts +639 -0
- package/tests/e2e/accordion.spec.ts +42 -0
- package/tests/e2e/additional-components.spec.ts +438 -0
- package/tests/e2e/all-components.spec.ts +135 -0
- package/tests/e2e/button-fixed.spec.ts +59 -0
- package/tests/e2e/button.spec.ts +76 -0
- package/tests/e2e/checkbox.spec.ts +50 -0
- package/tests/e2e/date-input.spec.ts +46 -0
- package/tests/e2e/debug.spec.ts +52 -0
- package/tests/e2e/dialog.spec.ts +58 -0
- package/tests/e2e/input.spec.ts +55 -0
- package/tests/e2e/laboratory-components.spec.ts +321 -0
- package/tests/e2e/otp-input.spec.ts +50 -0
- package/tests/e2e/select.spec.ts +52 -0
- package/tests/e2e/storybook-utils.ts +59 -0
- package/tests/e2e/test-basic.spec.ts +34 -0
- package/tests/e2e/visual-regression.spec.ts +351 -0
- package/tests/unit/components/Accordion/AccordionGroup.spec.ts +343 -0
- package/tests/unit/components/Accordion/AccordionItem.spec.ts +384 -0
- package/tests/unit/components/Audio/Audio.spec.ts +404 -0
- package/tests/unit/components/Audio/Waveform.spec.ts +484 -0
- package/tests/unit/components/Core/Button.spec.ts +337 -0
- package/tests/unit/components/Core/Checkbox.spec.ts +545 -0
- package/tests/unit/components/Core/DateInput.spec.ts +691 -0
- package/tests/unit/components/Core/Dialog.spec.ts +486 -0
- package/tests/unit/components/Core/EditField.spec.ts +783 -0
- package/tests/unit/components/Core/Input.spec.ts +513 -0
- package/tests/unit/components/Core/Modal.spec.ts +519 -0
- package/tests/unit/components/Core/NotificationBubble.spec.ts +607 -0
- package/tests/unit/components/Core/OtpInput.spec.ts +709 -0
- package/tests/unit/components/Core/PhoneInput.spec.ts +620 -0
- package/tests/unit/components/Core/Select.spec.ts +713 -0
- package/tests/unit/components/Core/TextArea.spec.ts +566 -0
- package/tests/unit/components/Core/TickBox.spec.ts +780 -0
- package/tests/unit/components/IconBullet/IconBullet.spec.ts +357 -0
- package/tests/unit/components/IconBullet/IconBulletList.spec.ts +372 -0
- package/tests/unit/components/Icons/Audio/CloudFailed.spec.ts +109 -0
- package/tests/unit/components/Icons/Audio/CloudSaved.spec.ts +150 -0
- package/tests/unit/components/Icons/Audio/Delete.spec.ts +159 -0
- package/tests/unit/components/Icons/Audio/Pause.spec.ts +209 -0
- package/tests/unit/components/Icons/Audio/Play.spec.ts +218 -0
- package/tests/unit/components/Icons/CalendarNotification.spec.ts +187 -0
- package/tests/unit/components/Icons/Chair.spec.ts +235 -0
- package/tests/unit/components/Icons/ChairNotification.spec.ts +312 -0
- package/tests/unit/components/Icons/Circle.spec.ts +256 -0
- package/tests/unit/components/Icons/FavIcon.spec.ts +252 -0
- package/tests/unit/components/Icons/FilledCircle.spec.ts +275 -0
- package/tests/unit/components/Icons/Group3.spec.ts +356 -0
- package/tests/unit/components/Icons/RingNotification.spec.ts +394 -0
- package/tests/unit/components/Icons/calendar.spec.ts +287 -0
- package/tests/unit/components/Icons/checkbox.spec.ts +316 -0
- package/tests/unit/components/Icons/outlineChecked.spec.ts +435 -0
- package/tests/unit/components/Icons/play.spec.ts +309 -0
- package/tests/unit/components/Laboratory/AppointmentCard.spec.ts +168 -0
- package/tests/unit/components/Laboratory/ChatBoxImage.spec.ts +180 -0
- package/tests/unit/components/Laboratory/ChatMessage.spec.ts +264 -0
- package/tests/unit/components/Laboratory/ChatMessageBadge.spec.ts +283 -0
- package/tests/unit/components/Laboratory/ChatNotification.spec.ts +257 -0
- package/tests/unit/components/Laboratory/DocumentCard.spec.ts +229 -0
- package/tests/unit/components/Laboratory/DocumentCardItem.spec.ts +237 -0
- package/tests/unit/components/Laboratory/InfoCard.spec.ts +309 -0
- package/tests/unit/components/Laboratory/MainColumnsBar.spec.ts +252 -0
- package/tests/unit/components/Laboratory/ProgressCircle.spec.ts +291 -0
- package/tests/unit/components/Laboratory/ProgressLinear.spec.ts +276 -0
- package/tests/unit/components/Laboratory/SelectionColumnBar.spec.ts +289 -0
- package/tests/unit/components/Laboratory/StatusNotification.spec.ts +297 -0
- package/tests/unit/components/Laboratory/TagLabel.spec.ts +354 -0
- package/tests/unit/components/Laboratory/TagLabelGroup.spec.ts +378 -0
- package/tests/unit/components/Laboratory/TicketCard.spec.ts +352 -0
- package/tests/unit/components/Laboratory/TimeLineEvent.spec.ts +382 -0
- package/tests/unit/components/Laboratory/Timeline.spec.ts +420 -0
- package/tests/unit/constants/iconEnums.spec.ts +40 -0
- package/tests/unit/i18n/i18n.spec.ts +89 -0
- package/tests/unit/plugins/vuetify.spec.ts +221 -0
- package/tests/unit/setup.ts +190 -0
- package/tests/unit/src/components/index.spec.ts +193 -0
- package/tests/unit/src/index.spec.ts +183 -0
- package/tests/unit/src/main.spec.ts +152 -0
- package/tsconfig.json +26 -0
- package/vite.config.ts +29 -0
- package/vitest.config.ts +84 -0
|
@@ -0,0 +1,418 @@
|
|
|
1
|
+
import { Meta, StoryObj } from '@storybook/vue3';
|
|
2
|
+
import TagLabel from '@components/Laboratory/TagLabel/TagLabel.vue';
|
|
3
|
+
|
|
4
|
+
// Meta configuration for the TagLabel component
|
|
5
|
+
const meta: Meta<typeof TagLabel> = {
|
|
6
|
+
title: 'WL/Laboratory/TagLabel',
|
|
7
|
+
component: TagLabel,
|
|
8
|
+
tags: ['autodocs'],
|
|
9
|
+
argTypes: {
|
|
10
|
+
status: {
|
|
11
|
+
control: 'select',
|
|
12
|
+
options: [
|
|
13
|
+
'Draft',
|
|
14
|
+
'Proof',
|
|
15
|
+
'Ready',
|
|
16
|
+
'Design Ready',
|
|
17
|
+
'Production Ready',
|
|
18
|
+
'Ready for Treatment',
|
|
19
|
+
'Started',
|
|
20
|
+
'Dispatched',
|
|
21
|
+
'Design Started',
|
|
22
|
+
'Production Started',
|
|
23
|
+
'Shipping Dispatched',
|
|
24
|
+
'Took',
|
|
25
|
+
'Design Proof',
|
|
26
|
+
'Treatment Took',
|
|
27
|
+
'Treatment Done',
|
|
28
|
+
'Done',
|
|
29
|
+
'Follow-up Case Created',
|
|
30
|
+
'Arrived',
|
|
31
|
+
'Warning',
|
|
32
|
+
],
|
|
33
|
+
description: 'The status label to display.',
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
args: {
|
|
37
|
+
status: 'Draft', // Default value
|
|
38
|
+
},
|
|
39
|
+
parameters: {
|
|
40
|
+
docs: {
|
|
41
|
+
description: {
|
|
42
|
+
component: `
|
|
43
|
+
The \`TagLabel\` component displays a styled label representing various statuses.
|
|
44
|
+
|
|
45
|
+
### Props
|
|
46
|
+
|
|
47
|
+
- **\`status\`**: The status label to display. Options include:
|
|
48
|
+
|
|
49
|
+
- 'Draft'
|
|
50
|
+
- 'Proof'
|
|
51
|
+
- 'Ready'
|
|
52
|
+
- 'Design Ready'
|
|
53
|
+
- 'Production Ready'
|
|
54
|
+
- 'Ready for Treatment'
|
|
55
|
+
- 'Started'
|
|
56
|
+
- 'Dispatched'
|
|
57
|
+
- 'Design Started'
|
|
58
|
+
- 'Production Started'
|
|
59
|
+
- 'Shipping Dispatched'
|
|
60
|
+
- 'Took'
|
|
61
|
+
- 'Design Proof'
|
|
62
|
+
- 'Treatment Took'
|
|
63
|
+
- 'Treatment Done'
|
|
64
|
+
- 'Done'
|
|
65
|
+
- 'Follow-up Case Created'
|
|
66
|
+
- 'Arrived'
|
|
67
|
+
|
|
68
|
+
### Usage
|
|
69
|
+
|
|
70
|
+
Use the \`TagLabel\` component to display a status label with appropriate styling based on the provided status.
|
|
71
|
+
|
|
72
|
+
Below are examples of different statuses.
|
|
73
|
+
`,
|
|
74
|
+
},
|
|
75
|
+
},
|
|
76
|
+
},
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
export default meta;
|
|
80
|
+
type Story = StoryObj<typeof meta>;
|
|
81
|
+
|
|
82
|
+
// Define a common render template
|
|
83
|
+
const Template: Story = {
|
|
84
|
+
render: (args) => ({
|
|
85
|
+
components: { TagLabel },
|
|
86
|
+
setup() {
|
|
87
|
+
return { args };
|
|
88
|
+
},
|
|
89
|
+
template: `<div style="padding: 16px;">
|
|
90
|
+
<TagLabel v-bind="args" />
|
|
91
|
+
</div>`,
|
|
92
|
+
}),
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
// Stories for each status
|
|
96
|
+
export const Draft: Story = {
|
|
97
|
+
...Template,
|
|
98
|
+
args: {
|
|
99
|
+
status: 'Draft',
|
|
100
|
+
},
|
|
101
|
+
parameters: {
|
|
102
|
+
docs: {
|
|
103
|
+
source: {
|
|
104
|
+
code: `
|
|
105
|
+
<template>
|
|
106
|
+
<TagLabel status="Draft" />
|
|
107
|
+
</template>
|
|
108
|
+
`,
|
|
109
|
+
},
|
|
110
|
+
},
|
|
111
|
+
},
|
|
112
|
+
};
|
|
113
|
+
|
|
114
|
+
export const Proof: Story = {
|
|
115
|
+
...Template,
|
|
116
|
+
args: {
|
|
117
|
+
status: 'Proof',
|
|
118
|
+
},
|
|
119
|
+
parameters: {
|
|
120
|
+
docs: {
|
|
121
|
+
source: {
|
|
122
|
+
code: `
|
|
123
|
+
<template>
|
|
124
|
+
<TagLabel status="Proof" />
|
|
125
|
+
</template>
|
|
126
|
+
`,
|
|
127
|
+
},
|
|
128
|
+
},
|
|
129
|
+
},
|
|
130
|
+
};
|
|
131
|
+
|
|
132
|
+
export const Ready: Story = {
|
|
133
|
+
...Template,
|
|
134
|
+
args: {
|
|
135
|
+
status: 'Ready',
|
|
136
|
+
},
|
|
137
|
+
parameters: {
|
|
138
|
+
docs: {
|
|
139
|
+
source: {
|
|
140
|
+
code: `
|
|
141
|
+
<template>
|
|
142
|
+
<TagLabel status="Ready" />
|
|
143
|
+
</template>
|
|
144
|
+
`,
|
|
145
|
+
},
|
|
146
|
+
},
|
|
147
|
+
},
|
|
148
|
+
};
|
|
149
|
+
|
|
150
|
+
export const DesignReady: Story = {
|
|
151
|
+
...Template,
|
|
152
|
+
args: {
|
|
153
|
+
status: 'Design Ready',
|
|
154
|
+
},
|
|
155
|
+
parameters: {
|
|
156
|
+
docs: {
|
|
157
|
+
source: {
|
|
158
|
+
code: `
|
|
159
|
+
<template>
|
|
160
|
+
<TagLabel status="Design Ready" />
|
|
161
|
+
</template>
|
|
162
|
+
`,
|
|
163
|
+
},
|
|
164
|
+
},
|
|
165
|
+
},
|
|
166
|
+
};
|
|
167
|
+
|
|
168
|
+
export const ProductionReady: Story = {
|
|
169
|
+
...Template,
|
|
170
|
+
args: {
|
|
171
|
+
status: 'Production Ready',
|
|
172
|
+
},
|
|
173
|
+
parameters: {
|
|
174
|
+
docs: {
|
|
175
|
+
source: {
|
|
176
|
+
code: `
|
|
177
|
+
<template>
|
|
178
|
+
<TagLabel status="Production Ready" />
|
|
179
|
+
</template>
|
|
180
|
+
`,
|
|
181
|
+
},
|
|
182
|
+
},
|
|
183
|
+
},
|
|
184
|
+
};
|
|
185
|
+
|
|
186
|
+
export const ReadyForTreatment: Story = {
|
|
187
|
+
...Template,
|
|
188
|
+
args: {
|
|
189
|
+
status: 'Ready for Treatment',
|
|
190
|
+
},
|
|
191
|
+
parameters: {
|
|
192
|
+
docs: {
|
|
193
|
+
source: {
|
|
194
|
+
code: `
|
|
195
|
+
<template>
|
|
196
|
+
<TagLabel status="Ready for Treatment" />
|
|
197
|
+
</template>
|
|
198
|
+
`,
|
|
199
|
+
},
|
|
200
|
+
},
|
|
201
|
+
},
|
|
202
|
+
};
|
|
203
|
+
|
|
204
|
+
export const Started: Story = {
|
|
205
|
+
...Template,
|
|
206
|
+
args: {
|
|
207
|
+
status: 'Started',
|
|
208
|
+
},
|
|
209
|
+
parameters: {
|
|
210
|
+
docs: {
|
|
211
|
+
source: {
|
|
212
|
+
code: `
|
|
213
|
+
<template>
|
|
214
|
+
<TagLabel status="Started" />
|
|
215
|
+
</template>
|
|
216
|
+
`,
|
|
217
|
+
},
|
|
218
|
+
},
|
|
219
|
+
},
|
|
220
|
+
};
|
|
221
|
+
|
|
222
|
+
export const Dispatched: Story = {
|
|
223
|
+
...Template,
|
|
224
|
+
args: {
|
|
225
|
+
status: 'Dispatched',
|
|
226
|
+
},
|
|
227
|
+
parameters: {
|
|
228
|
+
docs: {
|
|
229
|
+
source: {
|
|
230
|
+
code: `
|
|
231
|
+
<template>
|
|
232
|
+
<TagLabel status="Dispatched" />
|
|
233
|
+
</template>
|
|
234
|
+
`,
|
|
235
|
+
},
|
|
236
|
+
},
|
|
237
|
+
},
|
|
238
|
+
};
|
|
239
|
+
|
|
240
|
+
export const DesignStarted: Story = {
|
|
241
|
+
...Template,
|
|
242
|
+
args: {
|
|
243
|
+
status: 'Design Started',
|
|
244
|
+
},
|
|
245
|
+
parameters: {
|
|
246
|
+
docs: {
|
|
247
|
+
source: {
|
|
248
|
+
code: `
|
|
249
|
+
<template>
|
|
250
|
+
<TagLabel status="Design Started" />
|
|
251
|
+
</template>
|
|
252
|
+
`,
|
|
253
|
+
},
|
|
254
|
+
},
|
|
255
|
+
},
|
|
256
|
+
};
|
|
257
|
+
|
|
258
|
+
export const ProductionStarted: Story = {
|
|
259
|
+
...Template,
|
|
260
|
+
args: {
|
|
261
|
+
status: 'Production Started',
|
|
262
|
+
},
|
|
263
|
+
parameters: {
|
|
264
|
+
docs: {
|
|
265
|
+
source: {
|
|
266
|
+
code: `
|
|
267
|
+
<template>
|
|
268
|
+
<TagLabel status="Production Started" />
|
|
269
|
+
</template>
|
|
270
|
+
`,
|
|
271
|
+
},
|
|
272
|
+
},
|
|
273
|
+
},
|
|
274
|
+
};
|
|
275
|
+
|
|
276
|
+
export const ShippingDispatched: Story = {
|
|
277
|
+
...Template,
|
|
278
|
+
args: {
|
|
279
|
+
status: 'Shipping Dispatched',
|
|
280
|
+
},
|
|
281
|
+
parameters: {
|
|
282
|
+
docs: {
|
|
283
|
+
source: {
|
|
284
|
+
code: `
|
|
285
|
+
<template>
|
|
286
|
+
<TagLabel status="Shipping Dispatched" />
|
|
287
|
+
</template>
|
|
288
|
+
`,
|
|
289
|
+
},
|
|
290
|
+
},
|
|
291
|
+
},
|
|
292
|
+
};
|
|
293
|
+
|
|
294
|
+
export const Took: Story = {
|
|
295
|
+
...Template,
|
|
296
|
+
args: {
|
|
297
|
+
status: 'Took',
|
|
298
|
+
},
|
|
299
|
+
parameters: {
|
|
300
|
+
docs: {
|
|
301
|
+
source: {
|
|
302
|
+
code: `
|
|
303
|
+
<template>
|
|
304
|
+
<TagLabel status="Took" />
|
|
305
|
+
</template>
|
|
306
|
+
`,
|
|
307
|
+
},
|
|
308
|
+
},
|
|
309
|
+
},
|
|
310
|
+
};
|
|
311
|
+
|
|
312
|
+
export const DesignProof: Story = {
|
|
313
|
+
...Template,
|
|
314
|
+
args: {
|
|
315
|
+
status: 'Design Proof',
|
|
316
|
+
},
|
|
317
|
+
parameters: {
|
|
318
|
+
docs: {
|
|
319
|
+
source: {
|
|
320
|
+
code: `
|
|
321
|
+
<template>
|
|
322
|
+
<TagLabel status="Design Proof" />
|
|
323
|
+
</template>
|
|
324
|
+
`,
|
|
325
|
+
},
|
|
326
|
+
},
|
|
327
|
+
},
|
|
328
|
+
};
|
|
329
|
+
|
|
330
|
+
export const TreatmentTook: Story = {
|
|
331
|
+
...Template,
|
|
332
|
+
args: {
|
|
333
|
+
status: 'Treatment Took',
|
|
334
|
+
},
|
|
335
|
+
parameters: {
|
|
336
|
+
docs: {
|
|
337
|
+
source: {
|
|
338
|
+
code: `
|
|
339
|
+
<template>
|
|
340
|
+
<TagLabel status="Treatment Took" />
|
|
341
|
+
</template>
|
|
342
|
+
`,
|
|
343
|
+
},
|
|
344
|
+
},
|
|
345
|
+
},
|
|
346
|
+
};
|
|
347
|
+
|
|
348
|
+
export const TreatmentDone: Story = {
|
|
349
|
+
...Template,
|
|
350
|
+
args: {
|
|
351
|
+
status: 'Treatment Done',
|
|
352
|
+
},
|
|
353
|
+
parameters: {
|
|
354
|
+
docs: {
|
|
355
|
+
source: {
|
|
356
|
+
code: `
|
|
357
|
+
<template>
|
|
358
|
+
<TagLabel status="Treatment Done" />
|
|
359
|
+
</template>
|
|
360
|
+
`,
|
|
361
|
+
},
|
|
362
|
+
},
|
|
363
|
+
},
|
|
364
|
+
};
|
|
365
|
+
|
|
366
|
+
export const Done: Story = {
|
|
367
|
+
...Template,
|
|
368
|
+
args: {
|
|
369
|
+
status: 'Done',
|
|
370
|
+
},
|
|
371
|
+
parameters: {
|
|
372
|
+
docs: {
|
|
373
|
+
source: {
|
|
374
|
+
code: `
|
|
375
|
+
<template>
|
|
376
|
+
<TagLabel status="Done" />
|
|
377
|
+
</template>
|
|
378
|
+
`,
|
|
379
|
+
},
|
|
380
|
+
},
|
|
381
|
+
},
|
|
382
|
+
};
|
|
383
|
+
|
|
384
|
+
export const FollowUpCaseCreated: Story = {
|
|
385
|
+
...Template,
|
|
386
|
+
args: {
|
|
387
|
+
status: 'Follow-up Case Created',
|
|
388
|
+
},
|
|
389
|
+
parameters: {
|
|
390
|
+
docs: {
|
|
391
|
+
source: {
|
|
392
|
+
code: `
|
|
393
|
+
<template>
|
|
394
|
+
<TagLabel status="Follow-up Case Created" />
|
|
395
|
+
</template>
|
|
396
|
+
`,
|
|
397
|
+
},
|
|
398
|
+
},
|
|
399
|
+
},
|
|
400
|
+
};
|
|
401
|
+
|
|
402
|
+
export const Arrived: Story = {
|
|
403
|
+
...Template,
|
|
404
|
+
args: {
|
|
405
|
+
status: 'Arrived',
|
|
406
|
+
},
|
|
407
|
+
parameters: {
|
|
408
|
+
docs: {
|
|
409
|
+
source: {
|
|
410
|
+
code: `
|
|
411
|
+
<template>
|
|
412
|
+
<TagLabel status="Arrived" />
|
|
413
|
+
</template>
|
|
414
|
+
`,
|
|
415
|
+
},
|
|
416
|
+
},
|
|
417
|
+
},
|
|
418
|
+
};
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
import { Meta, StoryObj } from '@storybook/vue3';
|
|
2
|
+
import TagLabelGroup from '@components/Laboratory/TagLabelGroup/TagLabelGroup.vue';
|
|
3
|
+
|
|
4
|
+
// Meta configuration for the TagLabelGroup component
|
|
5
|
+
const meta: Meta<typeof TagLabelGroup> = {
|
|
6
|
+
title: 'WL/Laboratory/TagLabelGroup',
|
|
7
|
+
component: TagLabelGroup,
|
|
8
|
+
tags: ['autodocs'],
|
|
9
|
+
argTypes: {
|
|
10
|
+
text: {
|
|
11
|
+
control: 'text',
|
|
12
|
+
description: 'The text displayed within the TagLabelGroup.',
|
|
13
|
+
defaultValue: 'Text',
|
|
14
|
+
},
|
|
15
|
+
status: {
|
|
16
|
+
control: 'text',
|
|
17
|
+
description: 'The status label, e.g., "Done", "Ready".',
|
|
18
|
+
defaultValue: 'Done',
|
|
19
|
+
},
|
|
20
|
+
iconSize: {
|
|
21
|
+
control: 'text',
|
|
22
|
+
description: 'Size of the icons in the group.',
|
|
23
|
+
defaultValue: '30',
|
|
24
|
+
},
|
|
25
|
+
iconsBefore: {
|
|
26
|
+
control: 'object',
|
|
27
|
+
description: 'Array of icon configurations displayed before the text.',
|
|
28
|
+
defaultValue: [
|
|
29
|
+
{ backgroundColor: 'white', borderColor: '#C1C1C2' }, // Default properties for the icons before
|
|
30
|
+
],
|
|
31
|
+
},
|
|
32
|
+
iconsAfter: {
|
|
33
|
+
control: 'object',
|
|
34
|
+
description: 'Array of icon configurations displayed after the text.',
|
|
35
|
+
defaultValue: [
|
|
36
|
+
{ backgroundColor: 'white', borderColor: '#C1C1C2' }, // Default properties for the icons after
|
|
37
|
+
],
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
parameters: {
|
|
41
|
+
docs: {
|
|
42
|
+
description: {
|
|
43
|
+
component: `
|
|
44
|
+
The \`TagLabelGroup\` component displays a group of icons and a status label, allowing for customization of icon properties and display order.
|
|
45
|
+
|
|
46
|
+
### Props
|
|
47
|
+
|
|
48
|
+
- **\`text\`**: The text displayed within the TagLabelGroup.
|
|
49
|
+
- **\`status\`**: The status label to display, such as 'Done' or 'Ready'.
|
|
50
|
+
- **\`iconSize\`**: The size of the icons in the group.
|
|
51
|
+
- **\`iconsBefore\`**: An array of icon configurations displayed before the text.
|
|
52
|
+
- **\`iconsAfter\`**: An array of icon configurations displayed after the text.
|
|
53
|
+
|
|
54
|
+
### Example Usage
|
|
55
|
+
|
|
56
|
+
Below are examples of how to use the \`TagLabelGroup\` component with different configurations.
|
|
57
|
+
`,
|
|
58
|
+
},
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
export default meta;
|
|
64
|
+
type Story = StoryObj<typeof meta>;
|
|
65
|
+
|
|
66
|
+
// Default Story
|
|
67
|
+
export const Default: Story = {
|
|
68
|
+
args: {
|
|
69
|
+
text: 'Shipping',
|
|
70
|
+
status: 'Dispatched',
|
|
71
|
+
iconsBefore: [],
|
|
72
|
+
iconsAfter: [{ backgroundColor: '#D8FDE4', borderColor: '#01D449' }],
|
|
73
|
+
iconSize: '28',
|
|
74
|
+
},
|
|
75
|
+
render: (args) => ({
|
|
76
|
+
components: { TagLabelGroup },
|
|
77
|
+
setup() {
|
|
78
|
+
return { args };
|
|
79
|
+
},
|
|
80
|
+
template: `
|
|
81
|
+
<div style="padding: 16px;">
|
|
82
|
+
<TagLabelGroup v-bind="args" />
|
|
83
|
+
</div>
|
|
84
|
+
`,
|
|
85
|
+
}),
|
|
86
|
+
parameters: {
|
|
87
|
+
docs: {
|
|
88
|
+
source: {
|
|
89
|
+
code: `
|
|
90
|
+
<template>
|
|
91
|
+
<TagLabelGroup
|
|
92
|
+
text="Shipping"
|
|
93
|
+
status="Dispatched"
|
|
94
|
+
:iconsBefore="[]"
|
|
95
|
+
:iconsAfter="[{ backgroundColor: '#D8FDE4', borderColor: '#01D449' }]"
|
|
96
|
+
iconSize="28"
|
|
97
|
+
/>
|
|
98
|
+
</template>
|
|
99
|
+
`,
|
|
100
|
+
},
|
|
101
|
+
},
|
|
102
|
+
},
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
// Story with custom icons and status
|
|
106
|
+
export const DesignReady: Story = {
|
|
107
|
+
args: {
|
|
108
|
+
status: 'Ready',
|
|
109
|
+
iconsBefore: [],
|
|
110
|
+
iconsAfter: [
|
|
111
|
+
{ backgroundColor: '#FEFDBD', borderColor: '#4F4700' },
|
|
112
|
+
{ backgroundColor: '#CCE8FD', borderColor: '#172774' },
|
|
113
|
+
{ backgroundColor: '#D8FDE4', borderColor: '#01D449' },
|
|
114
|
+
],
|
|
115
|
+
iconSize: '28',
|
|
116
|
+
},
|
|
117
|
+
render: (args) => ({
|
|
118
|
+
components: { TagLabelGroup },
|
|
119
|
+
setup() {
|
|
120
|
+
return { args };
|
|
121
|
+
},
|
|
122
|
+
template: `
|
|
123
|
+
<div style="padding: 16px;">
|
|
124
|
+
<TagLabelGroup v-bind="args" />
|
|
125
|
+
</div>
|
|
126
|
+
`,
|
|
127
|
+
}),
|
|
128
|
+
parameters: {
|
|
129
|
+
docs: {
|
|
130
|
+
source: {
|
|
131
|
+
code: `
|
|
132
|
+
<template>
|
|
133
|
+
<TagLabelGroup
|
|
134
|
+
status="Ready"
|
|
135
|
+
:iconsBefore="[]"
|
|
136
|
+
:iconsAfter="[
|
|
137
|
+
{ backgroundColor: '#FEFDBD', borderColor: '#4F4700' },
|
|
138
|
+
{ backgroundColor: '#CCE8FD', borderColor: '#172774' },
|
|
139
|
+
{ backgroundColor: '#D8FDE4', borderColor: '#01D449' }
|
|
140
|
+
]"
|
|
141
|
+
iconSize="28"
|
|
142
|
+
/>
|
|
143
|
+
</template>
|
|
144
|
+
`,
|
|
145
|
+
},
|
|
146
|
+
},
|
|
147
|
+
},
|
|
148
|
+
};
|
|
149
|
+
|
|
150
|
+
// Story with custom icons and status
|
|
151
|
+
export const DesignProof: Story = {
|
|
152
|
+
args: {
|
|
153
|
+
status: 'Proof',
|
|
154
|
+
iconsBefore: [
|
|
155
|
+
{ backgroundColor: '#FEEAF2', borderColor: '#4F4700' },
|
|
156
|
+
{ backgroundColor: '#FEFDBD', borderColor: '#4F4700' },
|
|
157
|
+
],
|
|
158
|
+
iconsAfter: [{ backgroundColor: '#D8FDE4', borderColor: '#01D449' }],
|
|
159
|
+
iconSize: '28',
|
|
160
|
+
},
|
|
161
|
+
render: (args) => ({
|
|
162
|
+
components: { TagLabelGroup },
|
|
163
|
+
setup() {
|
|
164
|
+
return { args };
|
|
165
|
+
},
|
|
166
|
+
template: `
|
|
167
|
+
<div style="padding: 16px;">
|
|
168
|
+
<TagLabelGroup v-bind="args" />
|
|
169
|
+
</div>
|
|
170
|
+
`,
|
|
171
|
+
}),
|
|
172
|
+
parameters: {
|
|
173
|
+
docs: {
|
|
174
|
+
source: {
|
|
175
|
+
code: `
|
|
176
|
+
<template>
|
|
177
|
+
<TagLabelGroup
|
|
178
|
+
status="Proof"
|
|
179
|
+
:iconsBefore="[
|
|
180
|
+
{ backgroundColor: '#FEEAF2', borderColor: '#4F4700' },
|
|
181
|
+
{ backgroundColor: '#FEFDBD', borderColor: '#4F4700' }
|
|
182
|
+
]"
|
|
183
|
+
:iconsAfter="[{ backgroundColor: '#D8FDE4', borderColor: '#01D449' }]"
|
|
184
|
+
iconSize="28"
|
|
185
|
+
/>
|
|
186
|
+
</template>
|
|
187
|
+
`,
|
|
188
|
+
},
|
|
189
|
+
},
|
|
190
|
+
},
|
|
191
|
+
};
|
|
192
|
+
|
|
193
|
+
// Story with icons before the text
|
|
194
|
+
export const TreatmentDone: Story = {
|
|
195
|
+
args: {
|
|
196
|
+
status: 'Done',
|
|
197
|
+
iconsBefore: [
|
|
198
|
+
{ backgroundColor: '#FEEAF2', borderColor: '#172774' },
|
|
199
|
+
{ backgroundColor: '#CCE8FD', borderColor: '#172774' },
|
|
200
|
+
],
|
|
201
|
+
iconsAfter: [],
|
|
202
|
+
iconSize: '28',
|
|
203
|
+
},
|
|
204
|
+
render: (args) => ({
|
|
205
|
+
components: { TagLabelGroup },
|
|
206
|
+
setup() {
|
|
207
|
+
return { args };
|
|
208
|
+
},
|
|
209
|
+
template: `
|
|
210
|
+
<div style="padding: 16px;">
|
|
211
|
+
<TagLabelGroup v-bind="args" />
|
|
212
|
+
</div>
|
|
213
|
+
`,
|
|
214
|
+
}),
|
|
215
|
+
parameters: {
|
|
216
|
+
docs: {
|
|
217
|
+
source: {
|
|
218
|
+
code: `
|
|
219
|
+
<template>
|
|
220
|
+
<TagLabelGroup
|
|
221
|
+
status="Done"
|
|
222
|
+
:iconsBefore="[
|
|
223
|
+
{ backgroundColor: '#FEEAF2', borderColor: '#172774' },
|
|
224
|
+
{ backgroundColor: '#CCE8FD', borderColor: '#172774' }
|
|
225
|
+
]"
|
|
226
|
+
:iconsAfter="[]"
|
|
227
|
+
iconSize="28"
|
|
228
|
+
/>
|
|
229
|
+
</template>
|
|
230
|
+
`,
|
|
231
|
+
},
|
|
232
|
+
},
|
|
233
|
+
},
|
|
234
|
+
};
|