@bethinkpl/design-system 30.1.2 → 30.3.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/dist/design-system.css +1 -1
- package/dist/design-system.js +26585 -272
- package/dist/design-system.js.map +1 -1
- package/dist/lib/js/components/Buttons/IconButton/IconButton.vue.d.ts +4 -0
- package/dist/lib/js/components/Cards/Card/Card.vue.d.ts +2 -0
- package/dist/lib/js/components/Cards/CardExpandable/CardExpandable.vue.d.ts +13 -0
- package/dist/lib/js/components/Chip/Chip.vue.d.ts +8 -0
- package/dist/lib/js/components/DatePickers/DateBox/DateBox.vue.d.ts +4 -0
- package/dist/lib/js/components/DatePickers/DatePicker/DatePicker.vue.d.ts +4 -0
- package/dist/lib/js/components/DatePickers/DateRangePicker/DateRangePicker.vue.d.ts +4 -0
- package/dist/lib/js/components/Drawer/DrawerHeader/DrawerHeader.vue.d.ts +44 -14
- package/dist/lib/js/components/Drawer/DrawerListItem/DrawerListItem.vue.d.ts +4 -0
- package/dist/lib/js/components/Drawer/DrawerSection/DrawerSection.vue.d.ts +12 -0
- package/dist/lib/js/components/Form/Checkbox/Checkbox.consts.d.ts +18 -5
- package/dist/lib/js/components/Form/Checkbox/Checkbox.vue.d.ts +31 -461
- package/dist/lib/js/components/Form/Checkbox/index.d.ts +2 -0
- package/dist/lib/js/components/Form/CheckboxGroupField/CheckboxGroupField.consts.d.ts +9 -0
- package/dist/lib/js/components/Form/CheckboxGroupField/CheckboxGroupField.types.d.ts +12 -0
- package/dist/lib/js/components/Form/CheckboxGroupField/index.d.ts +1 -0
- package/dist/lib/js/components/Form/FormControlLabel/FormControlLabel.consts.d.ts +13 -0
- package/dist/lib/js/components/Form/FormControlLabel/FormControlLabel.vue.d.ts +28 -0
- package/dist/lib/js/components/Form/FormField/FormField.types.d.ts +1 -0
- package/dist/lib/js/components/Form/FormField/FormField.utils.d.ts +2 -2
- package/dist/lib/js/components/Form/InputField/useInputFieldWithinForm.d.ts +1 -1
- package/dist/lib/js/components/Form/RadioButton/RadioButton.vue.d.ts +4 -0
- package/dist/lib/js/components/Headers/OverlayHeader/OverlayHeader.vue.d.ts +8 -0
- package/dist/lib/js/components/Headers/SectionHeader/SectionHeader.vue.d.ts +8 -0
- package/dist/lib/js/components/Icons/Icon/Icon.consts.d.ts +4 -0
- package/dist/lib/js/components/Modal/Modal.vue.d.ts +4 -0
- package/dist/lib/js/components/Modals/Modal/Modal.vue.d.ts +8 -0
- package/dist/lib/js/components/Modals/ModalDialog/ModalDialog.vue.d.ts +8 -0
- package/dist/lib/js/components/Outline/OutlineItem/OutlineItem.vue.d.ts +4 -0
- package/dist/lib/js/components/Pagination/Pagination.vue.d.ts +12 -0
- package/dist/lib/js/components/ProgressBar/ProgressBar.vue.d.ts +4 -0
- package/dist/lib/js/components/ProgressDonutChart/ProgressDonutChart.vue.d.ts +4 -0
- package/dist/lib/js/components/RichList/BasicRichListItem/BasicRichListItem.vue.d.ts +69 -469
- package/dist/lib/js/components/RichList/RichListItem/RichListItem.vue.d.ts +69 -469
- package/dist/lib/js/components/SelectList/SelectListItem/SelectListItem.vue.d.ts +4 -0
- package/dist/lib/js/components/SelectList/SelectListItemToggle/SelectListItemToggle.vue.d.ts +4 -0
- package/dist/lib/js/components/SelectionTile/SelectionTile.vue.d.ts +29 -1533
- package/dist/lib/js/components/Statuses/AccessStatus/AccessStatus.vue.d.ts +4 -0
- package/dist/lib/js/components/Statuses/BlockadeStatus/BlockadeStatus.vue.d.ts +4 -0
- package/dist/lib/js/components/SurveyQuestions/SurveyQuestionOpenEnded/SurveyQuestionOpenEnded.vue.d.ts +21 -0
- package/dist/lib/js/components/SurveyQuestions/SurveyQuestionScale/SurveyQuestionScale.vue.d.ts +21 -0
- package/dist/lib/js/components/Switch/Switch.vue.d.ts +4 -0
- package/dist/lib/js/components/Tile/Tile.sb.shared.d.ts +4 -0
- package/dist/lib/js/components/Toast/Toast.vue.d.ts +9 -0
- package/dist/lib/js/components/Toggles/ToggleButton/ToggleButton.vue.d.ts +4 -0
- package/dist/lib/js/composables/useFormFieldWithinForm.d.ts +7 -0
- package/dist/lib/js/icons/fontawesome.d.ts +4 -0
- package/dist/storybook/localhost:8080/node_modules/.vite/deps/@bethinkpl_design-system.js?v=62a0baa6 +7919 -0
- package/lib/js/components/Cards/Card/Card.spec.ts +23 -0
- package/lib/js/components/Cards/Card/Card.stories.ts +1 -0
- package/lib/js/components/Cards/Card/Card.vue +21 -4
- package/lib/js/components/Drawer/DrawerHeader/DrawerHeader.vue +13 -13
- package/lib/js/components/Form/Checkbox/Checkbox.consts.ts +27 -10
- package/lib/js/components/Form/Checkbox/Checkbox.spec.ts +294 -0
- package/lib/js/components/Form/Checkbox/Checkbox.stories.ts +60 -19
- package/lib/js/components/Form/Checkbox/Checkbox.vue +272 -55
- package/lib/js/components/Form/Checkbox/index.ts +2 -0
- package/lib/js/components/Form/CheckboxGroupField/CheckboxGroupField.consts.ts +11 -0
- package/lib/js/components/Form/CheckboxGroupField/CheckboxGroupField.spec.ts +268 -0
- package/lib/js/components/Form/CheckboxGroupField/CheckboxGroupField.stories.ts +92 -0
- package/lib/js/components/Form/CheckboxGroupField/CheckboxGroupField.types.ts +13 -0
- package/lib/js/components/Form/CheckboxGroupField/CheckboxGroupField.vue +97 -0
- package/lib/js/components/Form/CheckboxGroupField/index.ts +1 -0
- package/lib/js/components/Form/Form.stories.ts +67 -0
- package/lib/js/components/Form/FormControlLabel/FormControlLabel.consts.ts +16 -0
- package/lib/js/components/Form/FormControlLabel/FormControlLabel.vue +61 -0
- package/lib/js/components/Form/FormField/FormField.types.ts +2 -1
- package/lib/js/components/Form/FormField/FormField.utils.ts +14 -10
- package/lib/js/components/Form/FormField/FormField.vue +3 -2
- package/lib/js/components/Form/InputField/InputField.vue +1 -7
- package/lib/js/components/Form/InputField/useInputFieldWithinForm.ts +4 -29
- package/lib/js/components/RichList/RichListItem/RichListItem.vue +11 -8
- package/lib/js/components/SelectionTile/SelectionTile.vue +64 -95
- package/lib/js/composables/useFormFieldWithinForm.ts +26 -0
- package/lib/js/composables/useLegacyI18n.ts +0 -1
- package/lib/js/icons/fontawesome.ts +8 -0
- package/lib/styles/settings/_animations.scss +3 -0
- package/package.json +7 -2
|
@@ -7,21 +7,26 @@
|
|
|
7
7
|
'-ds-default': state === SELECTION_TILE_STATE.DEFAULT,
|
|
8
8
|
'-ds-disabled': state === SELECTION_TILE_STATE.DISABLED,
|
|
9
9
|
'-ds-loading': isLoading,
|
|
10
|
-
'-ds-focused': inputIsFocused && !isLoading,
|
|
11
10
|
},
|
|
12
11
|
]"
|
|
13
12
|
@click="updateIsSelected(!isSelected)"
|
|
14
13
|
>
|
|
15
14
|
<div class="ds-selectionTile__wrapper">
|
|
16
|
-
<
|
|
17
|
-
|
|
15
|
+
<radio-button
|
|
16
|
+
v-if="type === SELECTION_TILE_TYPE.RADIO_BUTTON"
|
|
18
17
|
:size="SELECTION_CONTROL_SIZE.X_SMALL"
|
|
19
18
|
:is-selected="isSelected"
|
|
20
19
|
:state="SELECTION_CONTROL_STATE_MAP[state]"
|
|
21
20
|
@update:is-selected="updateIsSelected($event)"
|
|
22
|
-
@input:focus="onInputFocus"
|
|
23
|
-
@input:blur="onInputBlur"
|
|
24
21
|
/>
|
|
22
|
+
<checkbox
|
|
23
|
+
v-else
|
|
24
|
+
:size="CHECKBOX_SIZES.X_SMALL"
|
|
25
|
+
:model-value="isSelected"
|
|
26
|
+
:state="CHECKBOX_STATE_MAP[state]"
|
|
27
|
+
@update:model-value="(value) => updateIsSelected(value !== false)"
|
|
28
|
+
/>
|
|
29
|
+
|
|
25
30
|
<div class="ds-selectionTile__textWrapper">
|
|
26
31
|
<div class="ds-selectionTile__title">{{ title }}</div>
|
|
27
32
|
|
|
@@ -102,8 +107,8 @@ $selection-tile-min-height: 48px;
|
|
|
102
107
|
display: flex;
|
|
103
108
|
}
|
|
104
109
|
|
|
105
|
-
&:
|
|
106
|
-
|
|
110
|
+
&:focus-within:not(.-ds-loading),
|
|
111
|
+
&:hover:not(.-ds-loading) {
|
|
107
112
|
background-color: $color-neutral-background-weak-hovered;
|
|
108
113
|
outline-color: $color-neutral-border-hovered;
|
|
109
114
|
}
|
|
@@ -112,8 +117,8 @@ $selection-tile-min-height: 48px;
|
|
|
112
117
|
background-color: $color-primary-background;
|
|
113
118
|
outline-color: $color-primary-border;
|
|
114
119
|
|
|
115
|
-
&:
|
|
116
|
-
|
|
120
|
+
&:focus-within:not(.-ds-loading),
|
|
121
|
+
&:hover:not(.-ds-loading) {
|
|
117
122
|
background-color: $color-primary-background-hovered;
|
|
118
123
|
outline-color: $color-primary-border-hovered;
|
|
119
124
|
}
|
|
@@ -153,8 +158,8 @@ $selection-tile-min-height: 48px;
|
|
|
153
158
|
}
|
|
154
159
|
</style>
|
|
155
160
|
|
|
156
|
-
<script lang="ts">
|
|
157
|
-
import {
|
|
161
|
+
<script setup lang="ts">
|
|
162
|
+
import { computed } from 'vue';
|
|
158
163
|
import {
|
|
159
164
|
SELECTION_TILE_STATE,
|
|
160
165
|
SELECTION_TILE_TYPE,
|
|
@@ -166,97 +171,61 @@ import Icon from '../Icons/Icon/Icon.vue';
|
|
|
166
171
|
import {
|
|
167
172
|
SELECTION_CONTROL_SIZE,
|
|
168
173
|
SELECTION_CONTROL_STATE,
|
|
174
|
+
SelectionControlState,
|
|
169
175
|
} from '../Form/SelectionControl/SelectionControl.consts';
|
|
170
|
-
import
|
|
176
|
+
import { CHECKBOX_SIZES, CHECKBOX_STATES, CheckboxState } from '../Form/Checkbox';
|
|
177
|
+
import Checkbox from '../Form/Checkbox/Checkbox.vue';
|
|
178
|
+
import RadioButton from '../Form/RadioButton/RadioButton.vue';
|
|
171
179
|
|
|
172
|
-
const SELECTION_CONTROL_STATE_MAP = {
|
|
180
|
+
const SELECTION_CONTROL_STATE_MAP: Record<SelectionTileState, SelectionControlState> = {
|
|
173
181
|
[SELECTION_TILE_STATE.DEFAULT]: SELECTION_CONTROL_STATE.DEFAULT,
|
|
174
182
|
[SELECTION_TILE_STATE.LOADING]: SELECTION_CONTROL_STATE.LOADING,
|
|
175
183
|
[SELECTION_TILE_STATE.DISABLED]: SELECTION_CONTROL_STATE.DISABLED,
|
|
176
184
|
};
|
|
177
185
|
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
Checkbox: defineAsyncComponent(() => import('../Form/Checkbox/Checkbox.vue')),
|
|
184
|
-
RadioButton: defineAsyncComponent(() => import('../Form/RadioButton/RadioButton.vue')),
|
|
185
|
-
},
|
|
186
|
-
props: {
|
|
187
|
-
type: {
|
|
188
|
-
type: String as PropType<SelectionTileType>,
|
|
189
|
-
default: SELECTION_TILE_TYPE.RADIO_BUTTON,
|
|
190
|
-
validator(type: SelectionTileType) {
|
|
191
|
-
return Object.values(SELECTION_TILE_TYPE).includes(type);
|
|
192
|
-
},
|
|
193
|
-
},
|
|
194
|
-
title: {
|
|
195
|
-
type: String,
|
|
196
|
-
required: true,
|
|
197
|
-
},
|
|
198
|
-
supportingText: {
|
|
199
|
-
type: String,
|
|
200
|
-
default: null,
|
|
201
|
-
},
|
|
202
|
-
icon: {
|
|
203
|
-
type: Object,
|
|
204
|
-
default: null,
|
|
205
|
-
validator(icon: IconItem) {
|
|
206
|
-
return Object.values(ICONS).includes(toRaw(icon));
|
|
207
|
-
},
|
|
208
|
-
},
|
|
209
|
-
isSelected: {
|
|
210
|
-
type: Boolean,
|
|
211
|
-
default: false,
|
|
212
|
-
},
|
|
213
|
-
state: {
|
|
214
|
-
type: String as PropType<SelectionTileState>,
|
|
215
|
-
default: SELECTION_TILE_STATE.DEFAULT,
|
|
216
|
-
validator(state: SelectionTileState) {
|
|
217
|
-
return Object.values(SELECTION_TILE_STATE).includes(state);
|
|
218
|
-
},
|
|
219
|
-
},
|
|
220
|
-
},
|
|
221
|
-
// TODO fix me when touching this file
|
|
222
|
-
// eslint-disable-next-line vue/require-emit-validator
|
|
223
|
-
emits: ['update:is-selected', 'icon-click'],
|
|
224
|
-
data() {
|
|
225
|
-
return {
|
|
226
|
-
ICONS: Object.freeze(ICONS),
|
|
227
|
-
ICON_SIZES: Object.freeze(ICON_SIZES),
|
|
228
|
-
SELECTION_CONTROL_SIZE: Object.freeze(SELECTION_CONTROL_SIZE),
|
|
229
|
-
SELECTION_TILE_STATE: Object.freeze(SELECTION_TILE_STATE),
|
|
230
|
-
SELECTION_TILE_TYPE: Object.freeze(SELECTION_TILE_TYPE),
|
|
231
|
-
SELECTION_CONTROL_STATE_MAP,
|
|
232
|
-
inputIsFocused: false,
|
|
233
|
-
};
|
|
234
|
-
},
|
|
235
|
-
computed: {
|
|
236
|
-
isLoading() {
|
|
237
|
-
return this.state === SELECTION_TILE_STATE.LOADING;
|
|
238
|
-
},
|
|
239
|
-
},
|
|
240
|
-
methods: {
|
|
241
|
-
updateIsSelected(value: boolean) {
|
|
242
|
-
if (this.isLoading || this.state === SELECTION_TILE_STATE.DISABLED) {
|
|
243
|
-
return;
|
|
244
|
-
}
|
|
186
|
+
const CHECKBOX_STATE_MAP: Record<SelectionTileState, CheckboxState> = {
|
|
187
|
+
[SELECTION_TILE_STATE.DEFAULT]: CHECKBOX_STATES.DEFAULT,
|
|
188
|
+
[SELECTION_TILE_STATE.LOADING]: CHECKBOX_STATES.DEFAULT,
|
|
189
|
+
[SELECTION_TILE_STATE.DISABLED]: CHECKBOX_STATES.DISABLED,
|
|
190
|
+
};
|
|
245
191
|
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
192
|
+
// Props
|
|
193
|
+
const {
|
|
194
|
+
type = SELECTION_TILE_TYPE.RADIO_BUTTON,
|
|
195
|
+
supportingText = null,
|
|
196
|
+
icon = null,
|
|
197
|
+
isSelected = false,
|
|
198
|
+
state = SELECTION_TILE_STATE.DEFAULT,
|
|
199
|
+
} = defineProps<{
|
|
200
|
+
type?: SelectionTileType;
|
|
201
|
+
title: string;
|
|
202
|
+
supportingText?: string | null;
|
|
203
|
+
icon?: IconItem | null;
|
|
204
|
+
isSelected?: boolean;
|
|
205
|
+
state?: SelectionTileState;
|
|
206
|
+
}>();
|
|
207
|
+
|
|
208
|
+
const emit = defineEmits<{
|
|
209
|
+
'update:is-selected': [value: boolean];
|
|
210
|
+
'icon-click': [];
|
|
211
|
+
}>();
|
|
212
|
+
|
|
213
|
+
const isLoading = computed(() => {
|
|
214
|
+
return state === SELECTION_TILE_STATE.LOADING;
|
|
261
215
|
});
|
|
216
|
+
|
|
217
|
+
const updateIsSelected = (value: boolean) => {
|
|
218
|
+
if (isLoading.value || state === SELECTION_TILE_STATE.DISABLED) {
|
|
219
|
+
return;
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
emit('update:is-selected', value);
|
|
223
|
+
};
|
|
224
|
+
|
|
225
|
+
const onIconClick = (event: Event) => {
|
|
226
|
+
if (!isLoading.value) {
|
|
227
|
+
event.stopPropagation();
|
|
228
|
+
emit('icon-click');
|
|
229
|
+
}
|
|
230
|
+
};
|
|
262
231
|
</script>
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { inject, MaybeRefOrGetter, ref, Ref, toValue } from 'vue';
|
|
2
|
+
import { FormContextKey, useField } from 'vee-validate';
|
|
3
|
+
|
|
4
|
+
export function useFormFieldWithinForm<T = string>(
|
|
5
|
+
name: MaybeRefOrGetter<string | undefined>,
|
|
6
|
+
modelValue: Ref<T | undefined>,
|
|
7
|
+
) {
|
|
8
|
+
const nameValue = toValue(name);
|
|
9
|
+
const form = inject(FormContextKey, null);
|
|
10
|
+
|
|
11
|
+
if (nameValue && !form) {
|
|
12
|
+
throw new Error(
|
|
13
|
+
`Field with name "${name}" must be used within a component that provides a FormContext, e.g. by using useForm()`,
|
|
14
|
+
);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
const field = nameValue ? useField<Array<string>>(nameValue, undefined) : null;
|
|
18
|
+
|
|
19
|
+
const value = field ? field.value : modelValue;
|
|
20
|
+
|
|
21
|
+
return {
|
|
22
|
+
field,
|
|
23
|
+
value,
|
|
24
|
+
errors: field?.errors ?? ref<Array<string>>([]),
|
|
25
|
+
};
|
|
26
|
+
}
|
|
@@ -151,6 +151,7 @@ import { faSquare } from '@fortawesome/pro-regular-svg-icons/faSquare';
|
|
|
151
151
|
import { faSquareCaretRight } from '@fortawesome/pro-regular-svg-icons/faSquareCaretRight';
|
|
152
152
|
import { faSquareCheck } from '@fortawesome/pro-regular-svg-icons/faSquareCheck';
|
|
153
153
|
import { faSquareList } from '@fortawesome/pro-regular-svg-icons/faSquareList';
|
|
154
|
+
import { faSquareMinus } from '@fortawesome/pro-regular-svg-icons/faSquareMinus';
|
|
154
155
|
import { faStar } from '@fortawesome/pro-regular-svg-icons/faStar';
|
|
155
156
|
import { faTag } from '@fortawesome/pro-regular-svg-icons/faTag';
|
|
156
157
|
import { faTags } from '@fortawesome/pro-regular-svg-icons/faTags';
|
|
@@ -225,6 +226,9 @@ import { faChevronLeft as falChevronLeft } from '@fortawesome/pro-light-svg-icon
|
|
|
225
226
|
import { faChevronRight as falChevronRight } from '@fortawesome/pro-light-svg-icons/faChevronRight';
|
|
226
227
|
|
|
227
228
|
import { faSpinnerThird as fadSpinnerThird } from '@fortawesome/pro-duotone-svg-icons/faSpinnerThird';
|
|
229
|
+
import { faSquareMinus as fadSquareMinus } from '@fortawesome/duotone-regular-svg-icons/faSquareMinus';
|
|
230
|
+
import { faSquare as fadSquare } from '@fortawesome/duotone-regular-svg-icons/faSquare';
|
|
231
|
+
import { faSquareCheck as fadSquareCheck } from '@fortawesome/pro-duotone-svg-icons/faSquareCheck';
|
|
228
232
|
|
|
229
233
|
import { faFacebook } from '@fortawesome/free-brands-svg-icons/faFacebook';
|
|
230
234
|
import { faUserGear } from '@fortawesome/pro-regular-svg-icons/faUserGear';
|
|
@@ -441,6 +445,7 @@ export const FONTAWESOME_ICONS = {
|
|
|
441
445
|
FA_SQUARE_CHECK: faSquareCheck,
|
|
442
446
|
FA_SQUARE_LIST_SOLID: fasSquareList,
|
|
443
447
|
FA_SQUARE_LIST: faSquareList,
|
|
448
|
+
FA_SQUARE_MINUS: faSquareMinus,
|
|
444
449
|
FA_SQUARE: faSquare,
|
|
445
450
|
FA_STAR_SOLID: fasStar,
|
|
446
451
|
FA_STAR: faStar,
|
|
@@ -470,6 +475,9 @@ export const FONTAWESOME_ICONS = {
|
|
|
470
475
|
FA_WINDOW_MAXIMIZE: faWindowMaximize,
|
|
471
476
|
FA_XMARK: faXmark,
|
|
472
477
|
FAD_SPINNER_THIRD: fadSpinnerThird,
|
|
478
|
+
FAD_SQUARE_MINUS: fadSquareMinus,
|
|
479
|
+
FAD_SQUARE: fadSquare,
|
|
480
|
+
FAD_SQUARE_CHECK: fadSquareCheck,
|
|
473
481
|
} as const;
|
|
474
482
|
|
|
475
483
|
export function initialize() {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bethinkpl/design-system",
|
|
3
|
-
"version": "30.
|
|
3
|
+
"version": "30.3.0",
|
|
4
4
|
"description": "Bethink universe design-system",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -41,6 +41,7 @@
|
|
|
41
41
|
"synchronizeTypography": "npx ts-node tools/importers/SynchronizeTypographyTokens.ts"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
|
+
"@fortawesome/duotone-regular-svg-icons": "7.0.1",
|
|
44
45
|
"@fortawesome/fontawesome-svg-core": "7.0.1",
|
|
45
46
|
"@fortawesome/free-brands-svg-icons": "7.0.1",
|
|
46
47
|
"@fortawesome/pro-duotone-svg-icons": "7.0.1",
|
|
@@ -53,6 +54,7 @@
|
|
|
53
54
|
"@storybook/addon-controls": "^8.3.4",
|
|
54
55
|
"@storybook/addon-designs": "^8.0.3",
|
|
55
56
|
"@storybook/addon-docs": "^8.3.4",
|
|
57
|
+
"@storybook/addon-essentials": "8.6.14",
|
|
56
58
|
"@storybook/addon-storysource": "^8.3.4",
|
|
57
59
|
"@storybook/addon-viewport": "^8.3.4",
|
|
58
60
|
"@storybook/vue3": "^8.3.4",
|
|
@@ -60,6 +62,7 @@
|
|
|
60
62
|
"@types/node": "^17.0.9",
|
|
61
63
|
"@typescript-eslint/eslint-plugin": "8.45.0",
|
|
62
64
|
"@typescript-eslint/parser": "8.45.0",
|
|
65
|
+
"@vee-validate/zod": "4.15.1",
|
|
63
66
|
"@vitejs/plugin-vue": "^5.1.4",
|
|
64
67
|
"@vitest/coverage-c8": "0.33.0",
|
|
65
68
|
"@vitest/ui": "3.1.4",
|
|
@@ -100,11 +103,13 @@
|
|
|
100
103
|
"vue-popperjs": "github:bethinkpl/vue-popper#df07fdb562d604fad966f0e8d6db1fc48febad6e",
|
|
101
104
|
"vue-tsc": "2.2.10",
|
|
102
105
|
"wait-for-expect": "^3.0.2",
|
|
103
|
-
"yaml-eslint-parser": "^1.3.0"
|
|
106
|
+
"yaml-eslint-parser": "^1.3.0",
|
|
107
|
+
"zod": "4.1.12"
|
|
104
108
|
},
|
|
105
109
|
"dependencies": {
|
|
106
110
|
"@primevue/themes": "4.0.0-rc.3",
|
|
107
111
|
"primevue": "4.0.0-rc.3",
|
|
112
|
+
"reka-ui": "2.6.0",
|
|
108
113
|
"vee-validate": "4.15.1",
|
|
109
114
|
"vue-component-type-helpers": "2.2.10"
|
|
110
115
|
},
|