@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,294 +1,294 @@
|
|
|
1
|
-
import { ref } from 'vue';
|
|
2
|
-
import type { Meta, StoryObj } from '@storybook/vue3';
|
|
3
|
-
import TickBox from '@components/TickBox/TickBox.vue';
|
|
4
|
-
|
|
5
|
-
// Meta configuration for Storybook
|
|
6
|
-
const meta: Meta<typeof TickBox> = {
|
|
7
|
-
title: 'Wl/TickBox',
|
|
8
|
-
component: TickBox,
|
|
9
|
-
tags: ['autodocs'],
|
|
10
|
-
argTypes: {
|
|
11
|
-
label: { control: 'text', description: 'Label displayed with the TickBox' },
|
|
12
|
-
success: {
|
|
13
|
-
control: 'boolean',
|
|
14
|
-
description: 'Applies success styling to the TickBox',
|
|
15
|
-
},
|
|
16
|
-
error: {
|
|
17
|
-
control: 'boolean',
|
|
18
|
-
description: 'Applies error styling to the TickBox',
|
|
19
|
-
},
|
|
20
|
-
disabled: { control: 'boolean', description: 'Disables the TickBox' },
|
|
21
|
-
value: {
|
|
22
|
-
control: 'text',
|
|
23
|
-
description:
|
|
24
|
-
'Value associated with the TickBox for array-based model binding',
|
|
25
|
-
},
|
|
26
|
-
},
|
|
27
|
-
parameters: {
|
|
28
|
-
docs: {
|
|
29
|
-
description: {
|
|
30
|
-
component: `
|
|
31
|
-
The \`TickBox\` component provides a checkbox input with customizable states, including success, error, and disabled styling. It supports both boolean and array-based model values.
|
|
32
|
-
|
|
33
|
-
### Props
|
|
34
|
-
- **\`label\`**: Text label displayed with the TickBox.
|
|
35
|
-
- **\`success\`**: Applies success styling.
|
|
36
|
-
- **\`error\`**: Applies error styling.
|
|
37
|
-
- **\`disabled\`**: Disables the checkbox input.
|
|
38
|
-
- **\`value\`**: Used when binding the TickBox to an array, where the value represents the item added to the array.
|
|
39
|
-
|
|
40
|
-
### Example Usage
|
|
41
|
-
The examples below demonstrate various configurations of the \`TickBox\` component, from simple state-based styling to using an array for managing multiple selections.
|
|
42
|
-
`,
|
|
43
|
-
},
|
|
44
|
-
},
|
|
45
|
-
},
|
|
46
|
-
};
|
|
47
|
-
|
|
48
|
-
export default meta;
|
|
49
|
-
type Story = StoryObj<typeof meta>;
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* Default TickBox Story
|
|
53
|
-
*/
|
|
54
|
-
export const Default: Story = {
|
|
55
|
-
args: {
|
|
56
|
-
label: 'Default TickBox',
|
|
57
|
-
},
|
|
58
|
-
render(args) {
|
|
59
|
-
const modelValue = ref(false);
|
|
60
|
-
return {
|
|
61
|
-
components: { TickBox },
|
|
62
|
-
setup() {
|
|
63
|
-
return { args, modelValue };
|
|
64
|
-
},
|
|
65
|
-
template: `
|
|
66
|
-
<TickBox v-bind="args" v-model="modelValue" />
|
|
67
|
-
<p>Model Value: {{ modelValue }}</p>
|
|
68
|
-
`,
|
|
69
|
-
};
|
|
70
|
-
},
|
|
71
|
-
parameters: {
|
|
72
|
-
docs: {
|
|
73
|
-
source: {
|
|
74
|
-
code: `<TickBox label="Default TickBox" />`,
|
|
75
|
-
},
|
|
76
|
-
},
|
|
77
|
-
},
|
|
78
|
-
};
|
|
79
|
-
|
|
80
|
-
/**
|
|
81
|
-
* Success State TickBox Story
|
|
82
|
-
*/
|
|
83
|
-
export const SuccessState: Story = {
|
|
84
|
-
args: {
|
|
85
|
-
label: 'Success TickBox',
|
|
86
|
-
success: true,
|
|
87
|
-
},
|
|
88
|
-
render(args) {
|
|
89
|
-
const modelValue = ref(false);
|
|
90
|
-
return {
|
|
91
|
-
components: { TickBox },
|
|
92
|
-
setup() {
|
|
93
|
-
return { args, modelValue };
|
|
94
|
-
},
|
|
95
|
-
template: `
|
|
96
|
-
<TickBox v-bind="args" v-model="modelValue" />
|
|
97
|
-
<p>Model Value: {{ modelValue }}</p>
|
|
98
|
-
`,
|
|
99
|
-
};
|
|
100
|
-
},
|
|
101
|
-
parameters: {
|
|
102
|
-
docs: {
|
|
103
|
-
source: {
|
|
104
|
-
code: `<TickBox label="Success TickBox" success />`,
|
|
105
|
-
},
|
|
106
|
-
},
|
|
107
|
-
},
|
|
108
|
-
};
|
|
109
|
-
|
|
110
|
-
/**
|
|
111
|
-
* Error State TickBox Story
|
|
112
|
-
*/
|
|
113
|
-
export const ErrorState: Story = {
|
|
114
|
-
args: {
|
|
115
|
-
label: 'Error TickBox',
|
|
116
|
-
error: true,
|
|
117
|
-
},
|
|
118
|
-
render(args) {
|
|
119
|
-
const modelValue = ref(false);
|
|
120
|
-
return {
|
|
121
|
-
components: { TickBox },
|
|
122
|
-
setup() {
|
|
123
|
-
return { args, modelValue };
|
|
124
|
-
},
|
|
125
|
-
template: `
|
|
126
|
-
<TickBox v-bind="args" v-model="modelValue" />
|
|
127
|
-
<p>Model Value: {{ modelValue }}</p>
|
|
128
|
-
`,
|
|
129
|
-
};
|
|
130
|
-
},
|
|
131
|
-
parameters: {
|
|
132
|
-
docs: {
|
|
133
|
-
source: {
|
|
134
|
-
code: `<TickBox label="Error TickBox" error />`,
|
|
135
|
-
},
|
|
136
|
-
},
|
|
137
|
-
},
|
|
138
|
-
};
|
|
139
|
-
|
|
140
|
-
/**
|
|
141
|
-
* Disabled State TickBox Story
|
|
142
|
-
*/
|
|
143
|
-
export const DisabledState: Story = {
|
|
144
|
-
args: {
|
|
145
|
-
label: 'Disabled TickBox',
|
|
146
|
-
disabled: true,
|
|
147
|
-
},
|
|
148
|
-
render(args) {
|
|
149
|
-
const modelValue = ref(false);
|
|
150
|
-
return {
|
|
151
|
-
components: { TickBox },
|
|
152
|
-
setup() {
|
|
153
|
-
return { args, modelValue };
|
|
154
|
-
},
|
|
155
|
-
template: `
|
|
156
|
-
<TickBox v-bind="args" v-model="modelValue" />
|
|
157
|
-
<p>Model Value: {{ modelValue }}</p>
|
|
158
|
-
`,
|
|
159
|
-
};
|
|
160
|
-
},
|
|
161
|
-
parameters: {
|
|
162
|
-
docs: {
|
|
163
|
-
source: {
|
|
164
|
-
code: `<TickBox label="Disabled TickBox" disabled />`,
|
|
165
|
-
},
|
|
166
|
-
},
|
|
167
|
-
},
|
|
168
|
-
};
|
|
169
|
-
|
|
170
|
-
/**
|
|
171
|
-
* TickBox with Boolean Model Value
|
|
172
|
-
*/
|
|
173
|
-
export const BooleanModel: Story = {
|
|
174
|
-
args: {
|
|
175
|
-
label: 'Boolean Model TickBox',
|
|
176
|
-
},
|
|
177
|
-
render(args) {
|
|
178
|
-
const modelValue = ref(false);
|
|
179
|
-
return {
|
|
180
|
-
components: { TickBox },
|
|
181
|
-
setup() {
|
|
182
|
-
return { args, modelValue };
|
|
183
|
-
},
|
|
184
|
-
template: `
|
|
185
|
-
<TickBox v-bind="args" v-model="modelValue" />
|
|
186
|
-
<p>Boolean Model Value: {{ modelValue }}</p>
|
|
187
|
-
`,
|
|
188
|
-
};
|
|
189
|
-
},
|
|
190
|
-
parameters: {
|
|
191
|
-
docs: {
|
|
192
|
-
source: {
|
|
193
|
-
code: `
|
|
194
|
-
<template>
|
|
195
|
-
<TickBox label="Boolean Model TickBox" v-model="modelValue" />
|
|
196
|
-
<p>Boolean Model Value: {{ modelValue }}</p>
|
|
197
|
-
</template>
|
|
198
|
-
|
|
199
|
-
<script setup>
|
|
200
|
-
import { ref } from 'vue';
|
|
201
|
-
|
|
202
|
-
const modelValue = ref(false);
|
|
203
|
-
</script>
|
|
204
|
-
`,
|
|
205
|
-
},
|
|
206
|
-
},
|
|
207
|
-
},
|
|
208
|
-
};
|
|
209
|
-
|
|
210
|
-
/**
|
|
211
|
-
* TickBox with Array Model Value
|
|
212
|
-
*/
|
|
213
|
-
export const ArrayModel: Story = {
|
|
214
|
-
args: {
|
|
215
|
-
label: 'Array Model TickBox',
|
|
216
|
-
value: 'option1',
|
|
217
|
-
},
|
|
218
|
-
render(args) {
|
|
219
|
-
const modelValue = ref([]);
|
|
220
|
-
return {
|
|
221
|
-
components: { TickBox },
|
|
222
|
-
setup() {
|
|
223
|
-
return { args, modelValue };
|
|
224
|
-
},
|
|
225
|
-
template: `
|
|
226
|
-
<TickBox v-bind="args" v-model="modelValue" />
|
|
227
|
-
<p>Array Model Value: {{ modelValue }}</p>
|
|
228
|
-
`,
|
|
229
|
-
};
|
|
230
|
-
},
|
|
231
|
-
parameters: {
|
|
232
|
-
docs: {
|
|
233
|
-
source: {
|
|
234
|
-
code: `
|
|
235
|
-
<template>
|
|
236
|
-
<TickBox label="Array Model TickBox" value="option1" v-model="modelValue" />
|
|
237
|
-
<p>Array Model Value: {{ modelValue }}</p>
|
|
238
|
-
</template>
|
|
239
|
-
|
|
240
|
-
<script setup>
|
|
241
|
-
import { ref } from 'vue';
|
|
242
|
-
|
|
243
|
-
const modelValue = ref([]);
|
|
244
|
-
</script>
|
|
245
|
-
`,
|
|
246
|
-
},
|
|
247
|
-
},
|
|
248
|
-
},
|
|
249
|
-
};
|
|
250
|
-
|
|
251
|
-
/**
|
|
252
|
-
* Multiple TickBoxes with Array Model Value
|
|
253
|
-
*/
|
|
254
|
-
export const MultipleTickBoxes: Story = {
|
|
255
|
-
render() {
|
|
256
|
-
const selectedOptions = ref([]);
|
|
257
|
-
return {
|
|
258
|
-
components: { TickBox },
|
|
259
|
-
setup() {
|
|
260
|
-
return { selectedOptions };
|
|
261
|
-
},
|
|
262
|
-
template: `
|
|
263
|
-
<div>
|
|
264
|
-
<TickBox label="Option 1" value="option1" v-model="selectedOptions" success />
|
|
265
|
-
<TickBox label="Option 2" value="option2" v-model="selectedOptions" error />
|
|
266
|
-
<TickBox label="Option 3" value="option3" v-model="selectedOptions" />
|
|
267
|
-
<p>Selected Options: {{ selectedOptions }}</p>
|
|
268
|
-
</div>
|
|
269
|
-
`,
|
|
270
|
-
};
|
|
271
|
-
},
|
|
272
|
-
parameters: {
|
|
273
|
-
docs: {
|
|
274
|
-
source: {
|
|
275
|
-
code: `
|
|
276
|
-
<template>
|
|
277
|
-
<div>
|
|
278
|
-
<TickBox label="Option 1" value="option1" success v-model="selectedOptions" />
|
|
279
|
-
<TickBox label="Option 2" value="option2" error v-model="selectedOptions" />
|
|
280
|
-
<TickBox label="Option 3" value="option3" v-model="selectedOptions" />
|
|
281
|
-
<p>Selected Options: {{ selectedOptions }}</p>
|
|
282
|
-
</div>
|
|
283
|
-
</template>
|
|
284
|
-
|
|
285
|
-
<script setup>
|
|
286
|
-
import { ref } from 'vue';
|
|
287
|
-
|
|
288
|
-
const selectedOptions = ref([]);
|
|
289
|
-
</script>
|
|
290
|
-
`,
|
|
291
|
-
},
|
|
292
|
-
},
|
|
293
|
-
},
|
|
294
|
-
};
|
|
1
|
+
import { ref } from 'vue';
|
|
2
|
+
import type { Meta, StoryObj } from '@storybook/vue3';
|
|
3
|
+
import TickBox from '@components/TickBox/TickBox.vue';
|
|
4
|
+
|
|
5
|
+
// Meta configuration for Storybook
|
|
6
|
+
const meta: Meta<typeof TickBox> = {
|
|
7
|
+
title: 'Wl/TickBox',
|
|
8
|
+
component: TickBox,
|
|
9
|
+
tags: ['autodocs'],
|
|
10
|
+
argTypes: {
|
|
11
|
+
label: { control: 'text', description: 'Label displayed with the TickBox' },
|
|
12
|
+
success: {
|
|
13
|
+
control: 'boolean',
|
|
14
|
+
description: 'Applies success styling to the TickBox',
|
|
15
|
+
},
|
|
16
|
+
error: {
|
|
17
|
+
control: 'boolean',
|
|
18
|
+
description: 'Applies error styling to the TickBox',
|
|
19
|
+
},
|
|
20
|
+
disabled: { control: 'boolean', description: 'Disables the TickBox' },
|
|
21
|
+
value: {
|
|
22
|
+
control: 'text',
|
|
23
|
+
description:
|
|
24
|
+
'Value associated with the TickBox for array-based model binding',
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
parameters: {
|
|
28
|
+
docs: {
|
|
29
|
+
description: {
|
|
30
|
+
component: `
|
|
31
|
+
The \`TickBox\` component provides a checkbox input with customizable states, including success, error, and disabled styling. It supports both boolean and array-based model values.
|
|
32
|
+
|
|
33
|
+
### Props
|
|
34
|
+
- **\`label\`**: Text label displayed with the TickBox.
|
|
35
|
+
- **\`success\`**: Applies success styling.
|
|
36
|
+
- **\`error\`**: Applies error styling.
|
|
37
|
+
- **\`disabled\`**: Disables the checkbox input.
|
|
38
|
+
- **\`value\`**: Used when binding the TickBox to an array, where the value represents the item added to the array.
|
|
39
|
+
|
|
40
|
+
### Example Usage
|
|
41
|
+
The examples below demonstrate various configurations of the \`TickBox\` component, from simple state-based styling to using an array for managing multiple selections.
|
|
42
|
+
`,
|
|
43
|
+
},
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
export default meta;
|
|
49
|
+
type Story = StoryObj<typeof meta>;
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Default TickBox Story
|
|
53
|
+
*/
|
|
54
|
+
export const Default: Story = {
|
|
55
|
+
args: {
|
|
56
|
+
label: 'Default TickBox',
|
|
57
|
+
},
|
|
58
|
+
render(args) {
|
|
59
|
+
const modelValue = ref(false);
|
|
60
|
+
return {
|
|
61
|
+
components: { TickBox },
|
|
62
|
+
setup() {
|
|
63
|
+
return { args, modelValue };
|
|
64
|
+
},
|
|
65
|
+
template: `
|
|
66
|
+
<TickBox v-bind="args" v-model="modelValue" />
|
|
67
|
+
<p>Model Value: {{ modelValue }}</p>
|
|
68
|
+
`,
|
|
69
|
+
};
|
|
70
|
+
},
|
|
71
|
+
parameters: {
|
|
72
|
+
docs: {
|
|
73
|
+
source: {
|
|
74
|
+
code: `<TickBox label="Default TickBox" />`,
|
|
75
|
+
},
|
|
76
|
+
},
|
|
77
|
+
},
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Success State TickBox Story
|
|
82
|
+
*/
|
|
83
|
+
export const SuccessState: Story = {
|
|
84
|
+
args: {
|
|
85
|
+
label: 'Success TickBox',
|
|
86
|
+
success: true,
|
|
87
|
+
},
|
|
88
|
+
render(args) {
|
|
89
|
+
const modelValue = ref(false);
|
|
90
|
+
return {
|
|
91
|
+
components: { TickBox },
|
|
92
|
+
setup() {
|
|
93
|
+
return { args, modelValue };
|
|
94
|
+
},
|
|
95
|
+
template: `
|
|
96
|
+
<TickBox v-bind="args" v-model="modelValue" />
|
|
97
|
+
<p>Model Value: {{ modelValue }}</p>
|
|
98
|
+
`,
|
|
99
|
+
};
|
|
100
|
+
},
|
|
101
|
+
parameters: {
|
|
102
|
+
docs: {
|
|
103
|
+
source: {
|
|
104
|
+
code: `<TickBox label="Success TickBox" success />`,
|
|
105
|
+
},
|
|
106
|
+
},
|
|
107
|
+
},
|
|
108
|
+
};
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* Error State TickBox Story
|
|
112
|
+
*/
|
|
113
|
+
export const ErrorState: Story = {
|
|
114
|
+
args: {
|
|
115
|
+
label: 'Error TickBox',
|
|
116
|
+
error: true,
|
|
117
|
+
},
|
|
118
|
+
render(args) {
|
|
119
|
+
const modelValue = ref(false);
|
|
120
|
+
return {
|
|
121
|
+
components: { TickBox },
|
|
122
|
+
setup() {
|
|
123
|
+
return { args, modelValue };
|
|
124
|
+
},
|
|
125
|
+
template: `
|
|
126
|
+
<TickBox v-bind="args" v-model="modelValue" />
|
|
127
|
+
<p>Model Value: {{ modelValue }}</p>
|
|
128
|
+
`,
|
|
129
|
+
};
|
|
130
|
+
},
|
|
131
|
+
parameters: {
|
|
132
|
+
docs: {
|
|
133
|
+
source: {
|
|
134
|
+
code: `<TickBox label="Error TickBox" error />`,
|
|
135
|
+
},
|
|
136
|
+
},
|
|
137
|
+
},
|
|
138
|
+
};
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* Disabled State TickBox Story
|
|
142
|
+
*/
|
|
143
|
+
export const DisabledState: Story = {
|
|
144
|
+
args: {
|
|
145
|
+
label: 'Disabled TickBox',
|
|
146
|
+
disabled: true,
|
|
147
|
+
},
|
|
148
|
+
render(args) {
|
|
149
|
+
const modelValue = ref(false);
|
|
150
|
+
return {
|
|
151
|
+
components: { TickBox },
|
|
152
|
+
setup() {
|
|
153
|
+
return { args, modelValue };
|
|
154
|
+
},
|
|
155
|
+
template: `
|
|
156
|
+
<TickBox v-bind="args" v-model="modelValue" />
|
|
157
|
+
<p>Model Value: {{ modelValue }}</p>
|
|
158
|
+
`,
|
|
159
|
+
};
|
|
160
|
+
},
|
|
161
|
+
parameters: {
|
|
162
|
+
docs: {
|
|
163
|
+
source: {
|
|
164
|
+
code: `<TickBox label="Disabled TickBox" disabled />`,
|
|
165
|
+
},
|
|
166
|
+
},
|
|
167
|
+
},
|
|
168
|
+
};
|
|
169
|
+
|
|
170
|
+
/**
|
|
171
|
+
* TickBox with Boolean Model Value
|
|
172
|
+
*/
|
|
173
|
+
export const BooleanModel: Story = {
|
|
174
|
+
args: {
|
|
175
|
+
label: 'Boolean Model TickBox',
|
|
176
|
+
},
|
|
177
|
+
render(args) {
|
|
178
|
+
const modelValue = ref(false);
|
|
179
|
+
return {
|
|
180
|
+
components: { TickBox },
|
|
181
|
+
setup() {
|
|
182
|
+
return { args, modelValue };
|
|
183
|
+
},
|
|
184
|
+
template: `
|
|
185
|
+
<TickBox v-bind="args" v-model="modelValue" />
|
|
186
|
+
<p>Boolean Model Value: {{ modelValue }}</p>
|
|
187
|
+
`,
|
|
188
|
+
};
|
|
189
|
+
},
|
|
190
|
+
parameters: {
|
|
191
|
+
docs: {
|
|
192
|
+
source: {
|
|
193
|
+
code: `
|
|
194
|
+
<template>
|
|
195
|
+
<TickBox label="Boolean Model TickBox" v-model="modelValue" />
|
|
196
|
+
<p>Boolean Model Value: {{ modelValue }}</p>
|
|
197
|
+
</template>
|
|
198
|
+
|
|
199
|
+
<script setup>
|
|
200
|
+
import { ref } from 'vue';
|
|
201
|
+
|
|
202
|
+
const modelValue = ref(false);
|
|
203
|
+
</script>
|
|
204
|
+
`,
|
|
205
|
+
},
|
|
206
|
+
},
|
|
207
|
+
},
|
|
208
|
+
};
|
|
209
|
+
|
|
210
|
+
/**
|
|
211
|
+
* TickBox with Array Model Value
|
|
212
|
+
*/
|
|
213
|
+
export const ArrayModel: Story = {
|
|
214
|
+
args: {
|
|
215
|
+
label: 'Array Model TickBox',
|
|
216
|
+
value: 'option1',
|
|
217
|
+
},
|
|
218
|
+
render(args) {
|
|
219
|
+
const modelValue = ref([]);
|
|
220
|
+
return {
|
|
221
|
+
components: { TickBox },
|
|
222
|
+
setup() {
|
|
223
|
+
return { args, modelValue };
|
|
224
|
+
},
|
|
225
|
+
template: `
|
|
226
|
+
<TickBox v-bind="args" v-model="modelValue" />
|
|
227
|
+
<p>Array Model Value: {{ modelValue }}</p>
|
|
228
|
+
`,
|
|
229
|
+
};
|
|
230
|
+
},
|
|
231
|
+
parameters: {
|
|
232
|
+
docs: {
|
|
233
|
+
source: {
|
|
234
|
+
code: `
|
|
235
|
+
<template>
|
|
236
|
+
<TickBox label="Array Model TickBox" value="option1" v-model="modelValue" />
|
|
237
|
+
<p>Array Model Value: {{ modelValue }}</p>
|
|
238
|
+
</template>
|
|
239
|
+
|
|
240
|
+
<script setup>
|
|
241
|
+
import { ref } from 'vue';
|
|
242
|
+
|
|
243
|
+
const modelValue = ref([]);
|
|
244
|
+
</script>
|
|
245
|
+
`,
|
|
246
|
+
},
|
|
247
|
+
},
|
|
248
|
+
},
|
|
249
|
+
};
|
|
250
|
+
|
|
251
|
+
/**
|
|
252
|
+
* Multiple TickBoxes with Array Model Value
|
|
253
|
+
*/
|
|
254
|
+
export const MultipleTickBoxes: Story = {
|
|
255
|
+
render() {
|
|
256
|
+
const selectedOptions = ref([]);
|
|
257
|
+
return {
|
|
258
|
+
components: { TickBox },
|
|
259
|
+
setup() {
|
|
260
|
+
return { selectedOptions };
|
|
261
|
+
},
|
|
262
|
+
template: `
|
|
263
|
+
<div>
|
|
264
|
+
<TickBox label="Option 1" value="option1" v-model="selectedOptions" success />
|
|
265
|
+
<TickBox label="Option 2" value="option2" v-model="selectedOptions" error />
|
|
266
|
+
<TickBox label="Option 3" value="option3" v-model="selectedOptions" />
|
|
267
|
+
<p>Selected Options: {{ selectedOptions }}</p>
|
|
268
|
+
</div>
|
|
269
|
+
`,
|
|
270
|
+
};
|
|
271
|
+
},
|
|
272
|
+
parameters: {
|
|
273
|
+
docs: {
|
|
274
|
+
source: {
|
|
275
|
+
code: `
|
|
276
|
+
<template>
|
|
277
|
+
<div>
|
|
278
|
+
<TickBox label="Option 1" value="option1" success v-model="selectedOptions" />
|
|
279
|
+
<TickBox label="Option 2" value="option2" error v-model="selectedOptions" />
|
|
280
|
+
<TickBox label="Option 3" value="option3" v-model="selectedOptions" />
|
|
281
|
+
<p>Selected Options: {{ selectedOptions }}</p>
|
|
282
|
+
</div>
|
|
283
|
+
</template>
|
|
284
|
+
|
|
285
|
+
<script setup>
|
|
286
|
+
import { ref } from 'vue';
|
|
287
|
+
|
|
288
|
+
const selectedOptions = ref([]);
|
|
289
|
+
</script>
|
|
290
|
+
`,
|
|
291
|
+
},
|
|
292
|
+
},
|
|
293
|
+
},
|
|
294
|
+
};
|