vueless 0.0.579 → 0.0.580
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/composables/useUI.ts +46 -60
- package/constants.js +3 -0
- package/package.json +1 -1
- package/types.ts +39 -48
- package/ui.button/UButton.vue +2 -3
- package/ui.button/types.ts +2 -2
- package/ui.button-link/ULink.vue +23 -24
- package/ui.button-link/storybook/stories.ts +2 -2
- package/ui.button-link/types.ts +7 -6
- package/ui.button-toggle/UToggle.vue +15 -16
- package/ui.button-toggle/storybook/stories.ts +2 -2
- package/ui.button-toggle/types.ts +6 -4
- package/ui.button-toggle-item/UToggleItem.vue +29 -20
- package/ui.button-toggle-item/storybook/stories.ts +2 -2
- package/ui.button-toggle-item/types.ts +5 -4
- package/ui.container-accordion/UAccordion.vue +22 -17
- package/ui.container-accordion/storybook/stories.ts +2 -2
- package/ui.container-accordion/types.ts +5 -4
- package/ui.container-card/UCard.vue +12 -5
- package/ui.container-card/storybook/stories.ts +2 -2
- package/ui.container-card/types.ts +4 -3
- package/ui.container-col/UCol.vue +11 -12
- package/ui.container-col/storybook/stories.ts +2 -2
- package/ui.container-col/types.ts +5 -3
- package/ui.container-divider/UDivider.vue +13 -13
- package/ui.container-divider/storybook/stories.ts +2 -2
- package/ui.container-divider/types.ts +5 -3
- package/ui.container-group/UGroup.vue +10 -8
- package/ui.container-group/storybook/stories.ts +2 -2
- package/ui.container-group/types.ts +5 -3
- package/ui.container-groups/UGroups.vue +10 -7
- package/ui.container-groups/storybook/stories.ts +2 -2
- package/ui.container-groups/types.ts +5 -3
- package/ui.container-modal/UModal.vue +43 -43
- package/ui.container-modal/storybook/stories.ts +2 -3
- package/ui.container-modal/types.ts +5 -3
- package/ui.container-modal-confirm/UModalConfirm.vue +14 -17
- package/ui.container-modal-confirm/storybook/stories.ts +8 -6
- package/ui.container-modal-confirm/types.ts +5 -3
- package/ui.container-page/UPage.vue +32 -31
- package/ui.container-page/storybook/stories.ts +2 -2
- package/ui.container-page/types.ts +4 -3
- package/ui.container-row/URow.vue +10 -13
- package/ui.container-row/storybook/stories.ts +2 -2
- package/ui.container-row/types.ts +5 -3
- package/ui.data-list/UDataList.vue +40 -51
- package/ui.data-list/storybook/stories.ts +2 -2
- package/ui.data-list/types.ts +4 -4
- package/ui.data-table/UTable.vue +61 -60
- package/ui.data-table/types.ts +4 -3
- package/ui.dropdown-badge/UDropdownBadge.vue +21 -25
- package/ui.dropdown-badge/storybook/stories.ts +3 -3
- package/ui.dropdown-badge/types.ts +4 -3
- package/ui.dropdown-button/UDropdownButton.vue +20 -23
- package/ui.dropdown-button/storybook/stories.ts +3 -3
- package/ui.dropdown-button/types.ts +4 -3
- package/ui.dropdown-link/UDropdownLink.vue +20 -23
- package/ui.dropdown-link/storybook/stories.ts +3 -3
- package/ui.dropdown-link/types.ts +4 -3
- package/ui.dropdown-list/UDropdownList.vue +28 -32
- package/ui.dropdown-list/storybook/stories.ts +4 -4
- package/ui.dropdown-list/types.ts +4 -4
- package/ui.form-calendar/UCalendar.vue +36 -34
- package/ui.form-calendar/UCalendarDayView.vue +28 -23
- package/ui.form-calendar/UCalendarMonthView.vue +24 -19
- package/ui.form-calendar/UCalendarYearView.vue +24 -19
- package/ui.form-calendar/config.ts +2 -2
- package/ui.form-calendar/storybook/stories.ts +2 -2
- package/ui.form-calendar/types.ts +8 -7
- package/ui.form-checkbox/UCheckbox.vue +23 -21
- package/ui.form-checkbox/storybook/stories.ts +2 -2
- package/ui.form-checkbox/types.ts +7 -5
- package/ui.form-checkbox-group/UCheckboxGroup.vue +17 -14
- package/ui.form-checkbox-group/storybook/stories.ts +2 -2
- package/ui.form-checkbox-group/types.ts +6 -6
- package/ui.form-checkbox-multi-state/UCheckboxMultiState.vue +33 -14
- package/ui.form-checkbox-multi-state/storybook/stories.ts +2 -2
- package/ui.form-checkbox-multi-state/types.ts +4 -4
- package/ui.form-color-picker/UColorPicker.vue +23 -21
- package/ui.form-color-picker/storybook/stories.ts +2 -2
- package/ui.form-color-picker/types.ts +5 -5
- package/ui.form-date-picker/UDatePicker.vue +42 -27
- package/ui.form-date-picker/config.ts +5 -5
- package/ui.form-date-picker/types.ts +5 -2
- package/ui.form-date-picker-range/UDatePickerRange.vue +80 -53
- package/ui.form-date-picker-range/types.ts +7 -4
- package/ui.form-input/UInput.vue +32 -28
- package/ui.form-input/storybook/stories.ts +2 -2
- package/ui.form-input/types.ts +5 -3
- package/ui.form-input-file/UInputFile.vue +37 -32
- package/ui.form-input-file/storybook/stories.ts +2 -2
- package/ui.form-input-file/types.ts +6 -4
- package/ui.form-input-money/UInputMoney.vue +13 -18
- package/ui.form-input-money/storybook/stories.ts +2 -2
- package/ui.form-input-money/types.ts +5 -3
- package/ui.form-input-number/UInputNumber.vue +23 -24
- package/ui.form-input-number/types.ts +4 -2
- package/ui.form-input-rating/UInputRating.vue +24 -19
- package/ui.form-input-rating/storybook/stories.ts +2 -2
- package/ui.form-input-rating/types.ts +5 -3
- package/ui.form-input-search/UInputSearch.vue +22 -20
- package/ui.form-input-search/storybook/stories.ts +2 -2
- package/ui.form-input-search/types.ts +5 -3
- package/ui.form-label/ULabel.vue +19 -11
- package/ui.form-label/config.ts +0 -1
- package/ui.form-label/storybook/stories.ts +2 -2
- package/ui.form-label/types.ts +10 -8
- package/ui.form-radio/URadio.vue +22 -12
- package/ui.form-radio/storybook/stories.ts +2 -2
- package/ui.form-radio/types.ts +5 -5
- package/ui.form-radio-group/URadioGroup.vue +16 -12
- package/ui.form-radio-group/storybook/stories.ts +2 -2
- package/ui.form-radio-group/types.ts +7 -7
- package/ui.form-select/USelect.vue +53 -39
- package/ui.form-switch/USwitch.vue +30 -23
- package/ui.form-switch/storybook/stories.ts +2 -2
- package/ui.form-switch/types.ts +5 -3
- package/ui.form-textarea/UTextarea.vue +19 -15
- package/ui.form-textarea/storybook/stories.ts +2 -2
- package/ui.form-textarea/types.ts +5 -3
- package/ui.image-avatar/UAvatar.vue +12 -11
- package/ui.image-avatar/types.ts +4 -2
- package/ui.image-icon/UIcon.vue +31 -18
- package/ui.image-icon/storybook/stories.ts +2 -2
- package/ui.image-icon/types.ts +12 -5
- package/ui.loader/ULoader.vue +11 -9
- package/ui.loader/storybook/stories.ts +2 -2
- package/ui.loader/types.ts +10 -3
- package/ui.loader-overlay/ULoaderOverlay.vue +11 -7
- package/ui.loader-overlay/storybook/stories.ts +2 -2
- package/ui.loader-overlay/types.ts +4 -3
- package/ui.loader-progress/ULoaderProgress.vue +14 -10
- package/ui.loader-progress/storybook/stories.ts +2 -2
- package/ui.loader-progress/types.ts +4 -3
- package/ui.navigation-pagination/UPagination.vue +34 -33
- package/ui.navigation-pagination/storybook/stories.ts +2 -2
- package/ui.navigation-pagination/types.ts +4 -3
- package/ui.navigation-progress/StepperProgress.vue +25 -12
- package/ui.navigation-progress/UProgress.vue +12 -12
- package/ui.navigation-progress/types.ts +4 -3
- package/ui.navigation-tab/UTab.vue +18 -9
- package/ui.navigation-tab/storybook/stories.ts +2 -2
- package/ui.navigation-tab/types.ts +4 -3
- package/ui.navigation-tabs/UTabs.vue +13 -8
- package/ui.navigation-tabs/storybook/stories.ts +2 -2
- package/ui.navigation-tabs/types.ts +5 -5
- package/ui.other-dot/UDot.vue +10 -8
- package/ui.other-dot/storybook/stories.ts +2 -2
- package/ui.other-dot/types.ts +4 -3
- package/ui.text-alert/UAlert.vue +24 -27
- package/ui.text-alert/storybook/stories.ts +2 -2
- package/ui.text-alert/types.ts +4 -3
- package/ui.text-badge/UBadge.vue +25 -13
- package/ui.text-badge/storybook/stories.ts +2 -2
- package/ui.text-badge/types.ts +4 -3
- package/ui.text-block/UText.vue +10 -9
- package/ui.text-block/storybook/stories.ts +2 -2
- package/ui.text-block/types.ts +4 -3
- package/ui.text-empty/UEmpty.vue +22 -19
- package/ui.text-empty/storybook/stories.ts +2 -2
- package/ui.text-empty/types.ts +4 -3
- package/ui.text-file/UFile.vue +23 -20
- package/ui.text-file/storybook/stories.ts +2 -2
- package/ui.text-file/types.ts +4 -3
- package/ui.text-files/UFiles.vue +16 -10
- package/ui.text-files/storybook/stories.ts +2 -2
- package/ui.text-files/types.ts +4 -3
- package/ui.text-header/UHeader.vue +11 -11
- package/ui.text-header/storybook/stories.ts +2 -2
- package/ui.text-header/types.ts +4 -3
- package/ui.text-money/UMoney.vue +20 -27
- package/ui.text-money/storybook/stories.ts +2 -2
- package/ui.text-money/types.ts +4 -3
- package/ui.text-notify/UNotify.vue +58 -41
- package/ui.text-notify/config.ts +3 -3
- package/ui.text-notify/constants.ts +18 -20
- package/ui.text-notify/storybook/stories.ts +2 -2
- package/ui.text-notify/types.ts +10 -5
- package/ui.text-notify/utilNotify.ts +17 -11
- package/utils/helper.ts +5 -5
- package/utils/storybook.ts +11 -1
- package/utils/ui.ts +19 -9
- package/web-types.json +521 -368
- package/ui.button-link/useAttrs.ts +0 -20
- package/ui.button-toggle/useAttrs.ts +0 -12
- package/ui.button-toggle-item/useAttrs.ts +0 -29
- package/ui.container-accordion/useAttrs.ts +0 -26
- package/ui.container-card/useAttrs.ts +0 -12
- package/ui.container-col/useAttrs.ts +0 -12
- package/ui.container-divider/useAttrs.ts +0 -17
- package/ui.container-group/useAttrs.ts +0 -12
- package/ui.container-groups/useAttrs.ts +0 -12
- package/ui.container-modal/useAttrs.ts +0 -12
- package/ui.container-modal-confirm/useAttrs.ts +0 -12
- package/ui.container-page/useAttrs.ts +0 -12
- package/ui.container-row/useAttrs.ts +0 -12
- package/ui.data-list/useAttrs.ts +0 -12
- package/ui.data-table/useAttrs.ts +0 -31
- package/ui.dropdown-badge/useAttrs.ts +0 -26
- package/ui.dropdown-button/useAttrs.ts +0 -26
- package/ui.dropdown-link/useAttrs.ts +0 -26
- package/ui.dropdown-list/useAttrs.ts +0 -12
- package/ui.form-calendar/useAttrs.ts +0 -12
- package/ui.form-checkbox/useAttrs.ts +0 -29
- package/ui.form-checkbox-group/useAttrs.ts +0 -12
- package/ui.form-checkbox-multi-state/useAttrs.ts +0 -37
- package/ui.form-color-picker/useAttrs.ts +0 -15
- package/ui.form-date-picker/useAttrs.ts +0 -43
- package/ui.form-date-picker-range/useAttrs.ts +0 -53
- package/ui.form-input/useAttrs.ts +0 -31
- package/ui.form-input-file/useAttrs.ts +0 -21
- package/ui.form-input-money/useAttrs.ts +0 -15
- package/ui.form-input-number/useAttrs.ts +0 -15
- package/ui.form-input-rating/useAttrs.ts +0 -14
- package/ui.form-input-search/useAttrs.ts +0 -15
- package/ui.form-label/useAttrs.ts +0 -20
- package/ui.form-radio/useAttrs.ts +0 -29
- package/ui.form-radio-group/useAttrs.ts +0 -12
- package/ui.form-select/useAttrs.js +0 -19
- package/ui.form-switch/useAttrs.ts +0 -28
- package/ui.form-textarea/useAttrs.ts +0 -21
- package/ui.image-avatar/useAttrs.ts +0 -12
- package/ui.image-icon/useAttrs.ts +0 -12
- package/ui.loader/useAttrs.ts +0 -12
- package/ui.loader-overlay/useAttrs.ts +0 -12
- package/ui.loader-progress/useAttrs.ts +0 -12
- package/ui.navigation-pagination/useAttrs.ts +0 -12
- package/ui.navigation-progress/useAttrs.ts +0 -17
- package/ui.navigation-tab/useAttrs.ts +0 -28
- package/ui.navigation-tabs/useAttrs.ts +0 -12
- package/ui.other-dot/useAttrs.ts +0 -12
- package/ui.text-alert/useAttrs.ts +0 -12
- package/ui.text-badge/useAttrs.ts +0 -21
- package/ui.text-block/useAttrs.ts +0 -12
- package/ui.text-empty/useAttrs.ts +0 -12
- package/ui.text-file/useAttrs.ts +0 -12
- package/ui.text-files/useAttrs.ts +0 -12
- package/ui.text-header/useAttrs.ts +0 -12
- package/ui.text-money/useAttrs.ts +0 -12
- package/ui.text-notify/useAttrs.ts +0 -12
package/ui.text-block/types.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import defaultConfig from "./config.ts";
|
|
2
|
+
import type { ComponentConfig } from "../types.ts";
|
|
2
3
|
|
|
3
|
-
export type Config =
|
|
4
|
+
export type Config = typeof defaultConfig;
|
|
4
5
|
|
|
5
|
-
export interface
|
|
6
|
+
export interface Props {
|
|
6
7
|
/**
|
|
7
8
|
* HTML markdown or plain text.
|
|
8
9
|
*/
|
|
@@ -26,7 +27,7 @@ export interface UTextProps {
|
|
|
26
27
|
/**
|
|
27
28
|
* Component config object.
|
|
28
29
|
*/
|
|
29
|
-
config?: Config
|
|
30
|
+
config?: ComponentConfig<Config>;
|
|
30
31
|
|
|
31
32
|
/**
|
|
32
33
|
* Data-test attribute for automated testing.
|
package/ui.text-empty/UEmpty.vue
CHANGED
|
@@ -1,35 +1,23 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
2
|
import { computed } from "vue";
|
|
3
3
|
|
|
4
|
+
import useUI from "../composables/useUI.ts";
|
|
5
|
+
import { getDefaults } from "../utils/ui.ts";
|
|
6
|
+
|
|
4
7
|
import UIcon from "../ui.image-icon/UIcon.vue";
|
|
5
8
|
import UHeader from "../ui.text-header/UHeader.vue";
|
|
6
|
-
import { getDefault } from "../utils/ui.ts";
|
|
7
9
|
|
|
8
10
|
import { UEmpty } from "./constants.ts";
|
|
9
11
|
import defaultConfig from "./config.ts";
|
|
10
|
-
import useAttrs from "./useAttrs.ts";
|
|
11
12
|
|
|
12
|
-
import type {
|
|
13
|
+
import type { Props, IconSize, TitleSize, Config } from "./types.ts";
|
|
13
14
|
|
|
14
15
|
defineOptions({ inheritAttrs: false });
|
|
15
16
|
|
|
16
|
-
const props = withDefaults(defineProps<
|
|
17
|
-
|
|
18
|
-
dataTest: "",
|
|
19
|
-
config: () => ({}),
|
|
17
|
+
const props = withDefaults(defineProps<Props>(), {
|
|
18
|
+
...getDefaults<Props, Config>(defaultConfig, UEmpty),
|
|
20
19
|
});
|
|
21
20
|
|
|
22
|
-
const {
|
|
23
|
-
config,
|
|
24
|
-
titleAttrs,
|
|
25
|
-
descriptionAttrs,
|
|
26
|
-
wrapperAttrs,
|
|
27
|
-
headerAttrs,
|
|
28
|
-
footerAttrs,
|
|
29
|
-
emptyIconWrapperAttrs,
|
|
30
|
-
emptyIconAttrs,
|
|
31
|
-
} = useAttrs(props);
|
|
32
|
-
|
|
33
21
|
const iconSize = computed(() => {
|
|
34
22
|
const sizes = {
|
|
35
23
|
sm: "2xl",
|
|
@@ -49,6 +37,21 @@ const titleSize = computed(() => {
|
|
|
49
37
|
|
|
50
38
|
return sizes[props.size] as TitleSize;
|
|
51
39
|
});
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Get element / nested component attributes for each config token ✨
|
|
43
|
+
* Applies: `class`, `config`, redefined default `props` and dev `vl-...` attributes.
|
|
44
|
+
*/
|
|
45
|
+
const {
|
|
46
|
+
config,
|
|
47
|
+
titleAttrs,
|
|
48
|
+
descriptionAttrs,
|
|
49
|
+
wrapperAttrs,
|
|
50
|
+
headerAttrs,
|
|
51
|
+
footerAttrs,
|
|
52
|
+
emptyIconWrapperAttrs,
|
|
53
|
+
emptyIconAttrs,
|
|
54
|
+
} = useUI<Config>(defaultConfig);
|
|
52
55
|
</script>
|
|
53
56
|
|
|
54
57
|
<template>
|
|
@@ -59,7 +62,7 @@ const titleSize = computed(() => {
|
|
|
59
62
|
<div v-bind="emptyIconWrapperAttrs">
|
|
60
63
|
<UIcon
|
|
61
64
|
internal
|
|
62
|
-
:name="config.defaults
|
|
65
|
+
:name="config.defaults.emptyIcon"
|
|
63
66
|
color="gray"
|
|
64
67
|
:size="iconSize"
|
|
65
68
|
v-bind="emptyIconAttrs"
|
|
@@ -11,9 +11,9 @@ import UIcon from "../../ui.image-icon/UIcon.vue";
|
|
|
11
11
|
import URow from "../../ui.container-row/URow.vue";
|
|
12
12
|
|
|
13
13
|
import type { Meta, StoryFn } from "@storybook/vue3";
|
|
14
|
-
import type {
|
|
14
|
+
import type { Props } from "../types.ts";
|
|
15
15
|
|
|
16
|
-
interface UEmptyArgs extends
|
|
16
|
+
interface UEmptyArgs extends Props {
|
|
17
17
|
slotTemplate?: string;
|
|
18
18
|
enum: "size";
|
|
19
19
|
}
|
package/ui.text-empty/types.ts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import defaultConfig from "./config.ts";
|
|
2
|
+
import type { ComponentConfig } from "../types.ts";
|
|
2
3
|
|
|
3
|
-
export type Config =
|
|
4
|
+
export type Config = typeof defaultConfig;
|
|
4
5
|
|
|
5
6
|
export type IconSize = "2xl" | "3xl" | "4xl";
|
|
6
7
|
export type TitleSize = "xs" | "sm" | "md";
|
|
7
8
|
|
|
8
|
-
export interface
|
|
9
|
+
export interface Props {
|
|
9
10
|
/**
|
|
10
11
|
* Empty state title.
|
|
11
12
|
*/
|
|
@@ -24,7 +25,7 @@ export interface UEmptyProps {
|
|
|
24
25
|
/**
|
|
25
26
|
* Component config object.
|
|
26
27
|
*/
|
|
27
|
-
config?: Config
|
|
28
|
+
config?: ComponentConfig<Config>;
|
|
28
29
|
|
|
29
30
|
/**
|
|
30
31
|
* Data-test attribute for automated testing.
|
package/ui.text-file/UFile.vue
CHANGED
|
@@ -1,23 +1,22 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
2
|
import { computed, ref, useId } from "vue";
|
|
3
3
|
|
|
4
|
+
import useUI from "../composables/useUI.ts";
|
|
5
|
+
import { getDefaults } from "../utils/ui.ts";
|
|
6
|
+
|
|
4
7
|
import ULink from "../ui.button-link/ULink.vue";
|
|
5
8
|
import UIcon from "../ui.image-icon/UIcon.vue";
|
|
6
9
|
|
|
7
|
-
import { getDefault } from "../utils/ui.ts";
|
|
8
|
-
|
|
9
|
-
import useAttrs from "./useAttrs.ts";
|
|
10
10
|
import { UFile } from "./constants.ts";
|
|
11
11
|
import defaultConfig from "./config.ts";
|
|
12
12
|
|
|
13
|
-
import type {
|
|
13
|
+
import type { Props, IconSize, RemoveIconSize, Config } from "./types.ts";
|
|
14
14
|
|
|
15
15
|
defineOptions({ inheritAttrs: false });
|
|
16
16
|
|
|
17
|
-
const props = withDefaults(defineProps<
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
config: () => ({}),
|
|
17
|
+
const props = withDefaults(defineProps<Props>(), {
|
|
18
|
+
...getDefaults<Props, Config>(defaultConfig, UFile),
|
|
19
|
+
label: "",
|
|
21
20
|
});
|
|
22
21
|
|
|
23
22
|
const emit = defineEmits([
|
|
@@ -32,16 +31,6 @@ const focus = ref(false);
|
|
|
32
31
|
|
|
33
32
|
const elementId = props.id || useId();
|
|
34
33
|
|
|
35
|
-
const {
|
|
36
|
-
config,
|
|
37
|
-
fileAttrs,
|
|
38
|
-
bodyAttrs,
|
|
39
|
-
fileIconAttrs,
|
|
40
|
-
fileLabelAttrs,
|
|
41
|
-
fileImageAttrs,
|
|
42
|
-
removeIconAttrs,
|
|
43
|
-
} = useAttrs(props);
|
|
44
|
-
|
|
45
34
|
const iconSize = computed(() => {
|
|
46
35
|
const sizes = {
|
|
47
36
|
sm: "xs",
|
|
@@ -73,6 +62,20 @@ function onFocus() {
|
|
|
73
62
|
function onBlur() {
|
|
74
63
|
focus.value = false;
|
|
75
64
|
}
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Get element / nested component attributes for each config token ✨
|
|
68
|
+
* Applies: `class`, `config`, redefined default `props` and dev `vl-...` attributes.
|
|
69
|
+
*/
|
|
70
|
+
const {
|
|
71
|
+
config,
|
|
72
|
+
fileAttrs,
|
|
73
|
+
bodyAttrs,
|
|
74
|
+
fileIconAttrs,
|
|
75
|
+
fileLabelAttrs,
|
|
76
|
+
fileImageAttrs,
|
|
77
|
+
removeIconAttrs,
|
|
78
|
+
} = useUI<Config>(defaultConfig);
|
|
76
79
|
</script>
|
|
77
80
|
|
|
78
81
|
<template>
|
|
@@ -89,7 +92,7 @@ function onBlur() {
|
|
|
89
92
|
interactive
|
|
90
93
|
color="gray"
|
|
91
94
|
:size="iconSize"
|
|
92
|
-
:name="config.defaults
|
|
95
|
+
:name="config.defaults.fileIcon"
|
|
93
96
|
v-bind="fileIconAttrs"
|
|
94
97
|
@focus="onFocus"
|
|
95
98
|
@blur="onBlur"
|
|
@@ -106,7 +109,7 @@ function onBlur() {
|
|
|
106
109
|
interactive
|
|
107
110
|
color="gray"
|
|
108
111
|
:size="removeIconSize"
|
|
109
|
-
:name="config.defaults
|
|
112
|
+
:name="config.defaults.removeIcon"
|
|
110
113
|
v-bind="removeIconAttrs"
|
|
111
114
|
:data-test="`${dataTest}-remove-item`"
|
|
112
115
|
@click.stop.prevent="onRemove"
|
|
@@ -8,9 +8,9 @@ import {
|
|
|
8
8
|
import UFile from "../../ui.text-file/UFile.vue";
|
|
9
9
|
|
|
10
10
|
import type { Meta, StoryFn } from "@storybook/vue3";
|
|
11
|
-
import type {
|
|
11
|
+
import type { Props } from "../types.ts";
|
|
12
12
|
|
|
13
|
-
interface UFileArgs extends
|
|
13
|
+
interface UFileArgs extends Props {
|
|
14
14
|
slotTemplate?: string;
|
|
15
15
|
}
|
|
16
16
|
|
package/ui.text-file/types.ts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import defaultConfig from "./config.ts";
|
|
2
|
+
import type { ComponentConfig } from "../types.ts";
|
|
2
3
|
|
|
3
|
-
export type Config =
|
|
4
|
+
export type Config = typeof defaultConfig;
|
|
4
5
|
|
|
5
6
|
export type IconSize = "xs" | "sm" | "md";
|
|
6
7
|
export type RemoveIconSize = "2xs" | "xs" | "sm";
|
|
7
8
|
|
|
8
|
-
export interface
|
|
9
|
+
export interface Props {
|
|
9
10
|
/**
|
|
10
11
|
* File url.
|
|
11
12
|
*/
|
|
@@ -39,7 +40,7 @@ export interface UFileProps {
|
|
|
39
40
|
/**
|
|
40
41
|
* Component config object.
|
|
41
42
|
*/
|
|
42
|
-
config?: Config
|
|
43
|
+
config?: ComponentConfig<Config>;
|
|
43
44
|
|
|
44
45
|
/**
|
|
45
46
|
* Data-test attribute for automated testing.
|
package/ui.text-files/UFiles.vue
CHANGED
|
@@ -1,23 +1,25 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
+
import { computed } from "vue";
|
|
3
|
+
|
|
4
|
+
import useUI from "../composables/useUI.ts";
|
|
5
|
+
import { getDefaults } from "../utils/ui.ts";
|
|
6
|
+
|
|
2
7
|
import UFile from "../ui.text-file/UFile.vue";
|
|
3
8
|
import ULabel from "../ui.form-label/ULabel.vue";
|
|
4
|
-
import { getDefault } from "../utils/ui.ts";
|
|
5
9
|
|
|
6
10
|
import { UFiles } from "./constants.ts";
|
|
7
11
|
import defaultConfig from "./config.ts";
|
|
8
|
-
|
|
9
|
-
import { computed } from "vue";
|
|
12
|
+
|
|
10
13
|
import { getRandomId } from "../utils/helper.ts";
|
|
11
14
|
|
|
12
|
-
import type {
|
|
15
|
+
import type { Props, Config } from "./types.ts";
|
|
13
16
|
|
|
14
17
|
defineOptions({ inheritAttrs: false });
|
|
15
18
|
|
|
16
|
-
const props = withDefaults(defineProps<
|
|
17
|
-
|
|
18
|
-
size: getDefault<UFilesProps>(defaultConfig, UFiles).size,
|
|
19
|
+
const props = withDefaults(defineProps<Props>(), {
|
|
20
|
+
...getDefaults<Props, Config>(defaultConfig, UFiles),
|
|
19
21
|
fileList: () => [],
|
|
20
|
-
|
|
22
|
+
label: "",
|
|
21
23
|
});
|
|
22
24
|
|
|
23
25
|
const emit = defineEmits([
|
|
@@ -28,8 +30,6 @@ const emit = defineEmits([
|
|
|
28
30
|
"remove",
|
|
29
31
|
]);
|
|
30
32
|
|
|
31
|
-
const { filesLabelAttrs, itemsAttrs, itemAttrs } = useAttrs(props);
|
|
32
|
-
|
|
33
33
|
const formattedFileList = computed(() => {
|
|
34
34
|
return props.fileList.map((file) => {
|
|
35
35
|
if (file instanceof File) {
|
|
@@ -46,6 +46,12 @@ const formattedFileList = computed(() => {
|
|
|
46
46
|
function onRemoveFile(fileId: string | number) {
|
|
47
47
|
emit("remove", fileId);
|
|
48
48
|
}
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Get element / nested component attributes for each config token ✨
|
|
52
|
+
* Applies: `class`, `config`, redefined default `props` and dev `vl-...` attributes.
|
|
53
|
+
*/
|
|
54
|
+
const { filesLabelAttrs, itemsAttrs, itemAttrs } = useUI<Config>(defaultConfig);
|
|
49
55
|
</script>
|
|
50
56
|
|
|
51
57
|
<template>
|
|
@@ -8,9 +8,9 @@ import {
|
|
|
8
8
|
import UFiles from "../../ui.text-files/UFiles.vue";
|
|
9
9
|
|
|
10
10
|
import type { Meta, StoryFn } from "@storybook/vue3";
|
|
11
|
-
import type {
|
|
11
|
+
import type { Props } from "../types.ts";
|
|
12
12
|
|
|
13
|
-
interface UFilesArgs extends
|
|
13
|
+
interface UFilesArgs extends Props {
|
|
14
14
|
slotTemplate?: string;
|
|
15
15
|
}
|
|
16
16
|
|
package/ui.text-files/types.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import defaultConfig from "./config.ts";
|
|
2
|
+
import type { ComponentConfig } from "../types.ts";
|
|
2
3
|
|
|
3
|
-
export type Config =
|
|
4
|
+
export type Config = typeof defaultConfig;
|
|
4
5
|
|
|
5
|
-
export interface
|
|
6
|
+
export interface Props {
|
|
6
7
|
/**
|
|
7
8
|
* List of file objects.
|
|
8
9
|
*/
|
|
@@ -36,7 +37,7 @@ export interface UFilesProps {
|
|
|
36
37
|
/**
|
|
37
38
|
* Component config object.
|
|
38
39
|
*/
|
|
39
|
-
config?: Config
|
|
40
|
+
config?: ComponentConfig<Config>;
|
|
40
41
|
|
|
41
42
|
/**
|
|
42
43
|
* Data-test attribute for automated testing.
|
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import
|
|
2
|
+
import useUI from "../composables/useUI.ts";
|
|
3
|
+
import { getDefaults } from "../utils/ui.ts";
|
|
3
4
|
|
|
4
5
|
import { UHeader } from "./constants.ts";
|
|
5
6
|
import defaultConfig from "./config.ts";
|
|
6
|
-
import useAttrs from "./useAttrs.ts";
|
|
7
7
|
|
|
8
|
-
import type {
|
|
8
|
+
import type { Props, Config } from "./types.ts";
|
|
9
9
|
|
|
10
10
|
defineOptions({ inheritAttrs: false });
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
tag: getDefault<UHeaderProps>(defaultConfig, UHeader).tag,
|
|
16
|
-
line: getDefault<UHeaderProps>(defaultConfig, UHeader).line,
|
|
17
|
-
underlined: getDefault<UHeaderProps>(defaultConfig, UHeader).underlined,
|
|
18
|
-
dataTest: "",
|
|
12
|
+
withDefaults(defineProps<Props>(), {
|
|
13
|
+
...getDefaults<Props, Config>(defaultConfig, UHeader),
|
|
14
|
+
label: "",
|
|
19
15
|
});
|
|
20
16
|
|
|
21
|
-
|
|
17
|
+
/**
|
|
18
|
+
* Get element / nested component attributes for each config token ✨
|
|
19
|
+
* Applies: `class`, `config`, redefined default `props` and dev `vl-...` attributes.
|
|
20
|
+
*/
|
|
21
|
+
const { headerAttrs } = useUI<Config>(defaultConfig);
|
|
22
22
|
</script>
|
|
23
23
|
|
|
24
24
|
<template>
|
|
@@ -9,9 +9,9 @@ import UHeader from "../../ui.text-header/UHeader.vue";
|
|
|
9
9
|
import UCol from "../../ui.container-col/UCol.vue";
|
|
10
10
|
|
|
11
11
|
import type { Meta, StoryFn } from "@storybook/vue3";
|
|
12
|
-
import type {
|
|
12
|
+
import type { Props } from "../types.ts";
|
|
13
13
|
|
|
14
|
-
interface UHeaderArgs extends
|
|
14
|
+
interface UHeaderArgs extends Props {
|
|
15
15
|
slotTemplate?: string;
|
|
16
16
|
enum: "size" | "color";
|
|
17
17
|
}
|
package/ui.text-header/types.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import defaultConfig from "./config.ts";
|
|
2
|
+
import type { ComponentConfig } from "../types.ts";
|
|
2
3
|
|
|
3
|
-
export type Config =
|
|
4
|
+
export type Config = typeof defaultConfig;
|
|
4
5
|
|
|
5
|
-
export interface
|
|
6
|
+
export interface Props {
|
|
6
7
|
/**
|
|
7
8
|
* Header label.
|
|
8
9
|
*/
|
|
@@ -57,7 +58,7 @@ export interface UHeaderProps {
|
|
|
57
58
|
/**
|
|
58
59
|
* Component config object.
|
|
59
60
|
*/
|
|
60
|
-
config?: Config
|
|
61
|
+
config?: ComponentConfig<Config>;
|
|
61
62
|
|
|
62
63
|
/**
|
|
63
64
|
* Data-test attribute for automated testing.
|
package/ui.text-money/UMoney.vue
CHANGED
|
@@ -1,44 +1,22 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
2
|
import { computed } from "vue";
|
|
3
3
|
|
|
4
|
-
import
|
|
4
|
+
import useUI from "../composables/useUI.ts";
|
|
5
|
+
import { getDefaults } from "../utils/ui.ts";
|
|
5
6
|
import { hasSlotContent } from "../utils/helper.ts";
|
|
6
7
|
|
|
7
8
|
import { UMoney } from "./constants.ts";
|
|
8
9
|
import defaultConfig from "./config.ts";
|
|
9
|
-
import { useAttrs } from "./useAttrs.ts";
|
|
10
10
|
import { separatedMoney, MONEY_SIGN_TYPE } from "./utilMoney.ts";
|
|
11
11
|
|
|
12
|
-
import type {
|
|
12
|
+
import type { Props, Config } from "./types.ts";
|
|
13
13
|
|
|
14
14
|
defineOptions({ inheritAttrs: false });
|
|
15
15
|
|
|
16
|
-
const props = withDefaults(defineProps<
|
|
17
|
-
|
|
18
|
-
color: getDefault<UMoneyProps>(defaultConfig, UMoney).color,
|
|
19
|
-
symbolAlign: getDefault<UMoneyProps>(defaultConfig, UMoney).symbolAlign,
|
|
20
|
-
symbolDivided: getDefault<UMoneyProps>(defaultConfig, UMoney).symbolDivided,
|
|
21
|
-
sign: getDefault<UMoneyProps>(defaultConfig, UMoney).sign,
|
|
22
|
-
minFractionDigits: getDefault<UMoneyProps>(defaultConfig, UMoney).minFractionDigits,
|
|
23
|
-
maxFractionDigits: getDefault<UMoneyProps>(defaultConfig, UMoney).maxFractionDigits,
|
|
24
|
-
decimalSeparator: getDefault<UMoneyProps>(defaultConfig, UMoney).decimalSeparator,
|
|
25
|
-
thousandsSeparator: getDefault<UMoneyProps>(defaultConfig, UMoney).thousandsSeparator,
|
|
26
|
-
align: getDefault<UMoneyProps>(defaultConfig, UMoney).align,
|
|
27
|
-
planned: getDefault<UMoneyProps>(defaultConfig, UMoney).planned,
|
|
28
|
-
dataTest: "",
|
|
16
|
+
const props = withDefaults(defineProps<Props>(), {
|
|
17
|
+
...getDefaults<Props, Config>(defaultConfig, UMoney),
|
|
29
18
|
});
|
|
30
19
|
|
|
31
|
-
const {
|
|
32
|
-
moneyAttrs,
|
|
33
|
-
sumAttrs,
|
|
34
|
-
mathSignAttrs,
|
|
35
|
-
integerAttrs,
|
|
36
|
-
pennyAttrs,
|
|
37
|
-
slotLeftAttrs,
|
|
38
|
-
symbolAttrs,
|
|
39
|
-
slotRightAttrs,
|
|
40
|
-
} = useAttrs(props);
|
|
41
|
-
|
|
42
20
|
const currencySymbolPosition = computed(() => {
|
|
43
21
|
return {
|
|
44
22
|
left: props.symbolAlign === "left",
|
|
@@ -68,6 +46,21 @@ const preparedMoney = computed(() => {
|
|
|
68
46
|
props.thousandsSeparator,
|
|
69
47
|
);
|
|
70
48
|
});
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Get element / nested component attributes for each config token ✨
|
|
52
|
+
* Applies: `class`, `config`, redefined default `props` and dev `vl-...` attributes.
|
|
53
|
+
*/
|
|
54
|
+
const {
|
|
55
|
+
moneyAttrs,
|
|
56
|
+
sumAttrs,
|
|
57
|
+
mathSignAttrs,
|
|
58
|
+
integerAttrs,
|
|
59
|
+
pennyAttrs,
|
|
60
|
+
slotLeftAttrs,
|
|
61
|
+
symbolAttrs,
|
|
62
|
+
slotRightAttrs,
|
|
63
|
+
} = useUI<Config>(defaultConfig);
|
|
71
64
|
</script>
|
|
72
65
|
|
|
73
66
|
<template>
|
|
@@ -12,9 +12,9 @@ import DebitIcon from "../../ui.text-money/assets/debit.svg?component";
|
|
|
12
12
|
import CreditIcon from "../../ui.text-money/assets/credit.svg?component";
|
|
13
13
|
|
|
14
14
|
import type { Meta, StoryFn } from "@storybook/vue3";
|
|
15
|
-
import type {
|
|
15
|
+
import type { Props } from "../types.ts";
|
|
16
16
|
|
|
17
|
-
interface UMoneyArgs extends
|
|
17
|
+
interface UMoneyArgs extends Props {
|
|
18
18
|
slotTemplate?: string;
|
|
19
19
|
enum: "color" | "size" | "sign" | "symbolAlign" | "align";
|
|
20
20
|
}
|
package/ui.text-money/types.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import defaultConfig from "./config.ts";
|
|
2
|
+
import type { ComponentConfig } from "../types.ts";
|
|
2
3
|
|
|
3
|
-
export type Config =
|
|
4
|
+
export type Config = typeof defaultConfig;
|
|
4
5
|
|
|
5
|
-
export interface
|
|
6
|
+
export interface Props {
|
|
6
7
|
/**
|
|
7
8
|
* Money value.
|
|
8
9
|
*/
|
|
@@ -92,7 +93,7 @@ export interface UMoneyProps {
|
|
|
92
93
|
/**
|
|
93
94
|
* Component config object.
|
|
94
95
|
*/
|
|
95
|
-
config?: Config
|
|
96
|
+
config?: ComponentConfig<Config>;
|
|
96
97
|
|
|
97
98
|
/**
|
|
98
99
|
* Data-test attribute for automated testing.
|