@volverjs/ui-vue 0.0.10-beta.2 → 0.0.10-beta.21
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/LICENSE +1 -1
- package/README.md +98 -3
- package/auto-imports.d.ts +6 -2
- package/bin/icons.cjs +1 -1
- package/bin/icons.js +23 -16
- package/dist/Volver.d.ts +1 -1
- package/dist/components/VvAccordion/VvAccordion.es.js +70 -14
- package/dist/components/VvAccordion/VvAccordion.umd.js +1 -1
- package/dist/components/VvAccordion/VvAccordion.vue.d.ts +13 -6
- package/dist/components/VvAccordion/index.d.ts +4 -1
- package/dist/components/VvAccordionGroup/VvAccordionGroup.es.js +117 -38
- package/dist/components/VvAccordionGroup/VvAccordionGroup.umd.js +1 -1
- package/dist/components/VvAccordionGroup/VvAccordionGroup.vue.d.ts +15 -8
- package/dist/components/VvAccordionGroup/index.d.ts +4 -1
- package/dist/components/VvAction/VvAction.es.js +58 -13
- package/dist/components/VvAction/VvAction.umd.js +1 -1
- package/dist/components/VvAction/VvAction.vue.d.ts +59 -12
- package/dist/components/VvAction/index.d.ts +25 -4
- package/dist/components/VvAlert/VvAlert.es.js +195 -152
- package/dist/components/VvAlert/VvAlert.umd.js +1 -1
- package/dist/components/VvAlert/VvAlert.vue.d.ts +18 -8
- package/dist/components/VvAlert/index.d.ts +9 -5
- package/dist/components/VvAlertGroup/VvAlertGroup.es.js +240 -174
- package/dist/components/VvAlertGroup/VvAlertGroup.umd.js +1 -1
- package/dist/components/VvAlertGroup/VvAlertGroup.vue.d.ts +13 -6
- package/dist/components/VvAlertGroup/index.d.ts +6 -2
- package/dist/components/VvAvatar/VvAvatar.es.js +54 -9
- package/dist/components/VvAvatar/VvAvatar.umd.js +1 -1
- package/dist/components/VvAvatar/VvAvatar.vue.d.ts +12 -4
- package/dist/components/VvAvatar/index.d.ts +4 -1
- package/dist/components/VvAvatarGroup/VvAvatarGroup.es.js +111 -36
- package/dist/components/VvAvatarGroup/VvAvatarGroup.umd.js +1 -1
- package/dist/components/VvAvatarGroup/VvAvatarGroup.vue.d.ts +10 -3
- package/dist/components/VvAvatarGroup/index.d.ts +4 -1
- package/dist/components/VvBadge/VvBadge.es.js +73 -17
- package/dist/components/VvBadge/VvBadge.umd.js +1 -1
- package/dist/components/VvBadge/VvBadge.vue.d.ts +12 -4
- package/dist/components/VvBadge/index.d.ts +4 -1
- package/dist/components/VvBreadcrumb/VvBreadcrumb.es.js +259 -49
- package/dist/components/VvBreadcrumb/VvBreadcrumb.umd.js +1 -1
- package/dist/components/VvBreadcrumb/VvBreadcrumb.vue.d.ts +27 -7
- package/dist/components/VvBreadcrumb/index.d.ts +6 -10
- package/dist/components/VvButton/VvButton.es.js +187 -141
- package/dist/components/VvButton/VvButton.umd.js +1 -1
- package/dist/components/VvButton/VvButton.vue.d.ts +101 -27
- package/dist/components/VvButton/index.d.ts +41 -14
- package/dist/components/VvButtonGroup/VvButtonGroup.es.js +69 -16
- package/dist/components/VvButtonGroup/VvButtonGroup.umd.js +1 -1
- package/dist/components/VvButtonGroup/VvButtonGroup.vue.d.ts +23 -10
- package/dist/components/VvButtonGroup/index.d.ts +8 -2
- package/dist/components/VvCard/VvCard.es.js +84 -25
- package/dist/components/VvCard/VvCard.umd.js +1 -1
- package/dist/components/VvCard/VvCard.vue.d.ts +12 -4
- package/dist/components/VvCard/index.d.ts +4 -1
- package/dist/components/VvCheckbox/VvCheckbox.es.js +91 -22
- package/dist/components/VvCheckbox/VvCheckbox.umd.js +1 -1
- package/dist/components/VvCheckbox/VvCheckbox.vue.d.ts +104 -32
- package/dist/components/VvCheckbox/index.d.ts +45 -12
- package/dist/components/VvCheckboxGroup/VvCheckboxGroup.es.js +180 -67
- package/dist/components/VvCheckboxGroup/VvCheckboxGroup.umd.js +1 -1
- package/dist/components/VvCheckboxGroup/VvCheckboxGroup.vue.d.ts +100 -29
- package/dist/components/VvCheckboxGroup/index.d.ts +45 -12
- package/dist/components/VvCombobox/VvCombobox.es.js +758 -531
- package/dist/components/VvCombobox/VvCombobox.umd.js +1 -1
- package/dist/components/VvCombobox/VvCombobox.vue.d.ts +181 -108
- package/dist/components/VvCombobox/index.d.ts +53 -22
- package/dist/components/VvDialog/VvDialog.es.js +136 -141
- package/dist/components/VvDialog/VvDialog.umd.js +1 -1
- package/dist/components/VvDialog/VvDialog.vue.d.ts +4 -4
- package/dist/components/VvDropdown/VvDropdown.es.js +121 -55
- package/dist/components/VvDropdown/VvDropdown.umd.js +1 -1
- package/dist/components/VvDropdown/VvDropdown.vue.d.ts +101 -75
- package/dist/components/VvDropdown/VvDropdownAction.vue.d.ts +72 -11
- package/dist/components/VvDropdown/VvDropdownItem.vue.d.ts +1 -1
- package/dist/components/VvDropdown/VvDropdownOptgroup.vue.d.ts +12 -4
- package/dist/components/VvDropdown/VvDropdownOption.vue.d.ts +26 -7
- package/dist/components/VvDropdown/index.d.ts +16 -11
- package/dist/components/VvDropdownAction/VvDropdownAction.es.js +82 -22
- package/dist/components/VvDropdownAction/VvDropdownAction.umd.js +1 -1
- package/dist/components/VvDropdownItem/VvDropdownItem.es.js +13 -7
- package/dist/components/VvDropdownOptgroup/VvDropdownOptgroup.es.js +56 -8
- package/dist/components/VvDropdownOptgroup/VvDropdownOptgroup.umd.js +1 -1
- package/dist/components/VvDropdownOption/VvDropdownOption.es.js +76 -17
- package/dist/components/VvDropdownOption/VvDropdownOption.umd.js +1 -1
- package/dist/components/VvIcon/VvIcon.es.js +23 -96
- package/dist/components/VvIcon/VvIcon.umd.js +1 -1
- package/dist/components/VvIcon/VvIcon.vue.d.ts +23 -66
- package/dist/components/VvIcon/index.d.ts +33 -48
- package/dist/components/VvInputFile/VvInputFile.es.js +1734 -0
- package/dist/components/VvInputFile/VvInputFile.umd.js +1 -0
- package/dist/components/VvInputFile/VvInputFile.vue.d.ts +313 -0
- package/dist/components/VvInputFile/index.d.ts +179 -0
- package/dist/components/VvInputText/VvInputClearAction.d.ts +7 -5
- package/dist/components/VvInputText/VvInputPasswordAction.d.ts +10 -8
- package/dist/components/VvInputText/VvInputStepAction.d.ts +1 -1
- package/dist/components/VvInputText/VvInputText.es.js +331 -293
- package/dist/components/VvInputText/VvInputText.umd.js +1 -1
- package/dist/components/VvInputText/VvInputText.vue.d.ts +162 -55
- package/dist/components/VvInputText/index.d.ts +71 -29
- package/dist/components/VvNav/VvNav.es.js +151 -73
- package/dist/components/VvNav/VvNav.umd.js +1 -1
- package/dist/components/VvNav/VvNav.vue.d.ts +41 -14
- package/dist/components/VvNav/VvNavItem.vue.d.ts +9 -0
- package/dist/components/VvNav/VvNavSeparator.vue.d.ts +2 -0
- package/dist/components/VvNav/index.d.ts +5 -13
- package/dist/components/VvNavItem/VvNavItem.es.js +436 -0
- package/dist/components/VvNavItem/VvNavItem.umd.js +1 -0
- package/dist/components/VvNavSeparator/VvNavSeparator.es.js +24 -0
- package/dist/components/VvNavSeparator/VvNavSeparator.umd.js +1 -0
- package/dist/components/VvProgress/VvProgress.es.js +65 -14
- package/dist/components/VvProgress/VvProgress.umd.js +1 -1
- package/dist/components/VvProgress/VvProgress.vue.d.ts +10 -3
- package/dist/components/VvProgress/index.d.ts +4 -1
- package/dist/components/VvRadio/VvRadio.es.js +89 -21
- package/dist/components/VvRadio/VvRadio.umd.js +1 -1
- package/dist/components/VvRadio/VvRadio.vue.d.ts +102 -30
- package/dist/components/VvRadio/index.d.ts +44 -11
- package/dist/components/VvRadioGroup/VvRadioGroup.es.js +180 -66
- package/dist/components/VvRadioGroup/VvRadioGroup.umd.js +1 -1
- package/dist/components/VvRadioGroup/VvRadioGroup.vue.d.ts +100 -29
- package/dist/components/VvRadioGroup/index.d.ts +45 -12
- package/dist/components/VvSelect/VvSelect.es.js +248 -226
- package/dist/components/VvSelect/VvSelect.umd.js +1 -1
- package/dist/components/VvSelect/VvSelect.vue.d.ts +112 -39
- package/dist/components/VvSelect/index.d.ts +48 -14
- package/dist/components/VvTab/VvTab.es.js +256 -110
- package/dist/components/VvTab/VvTab.umd.js +1 -1
- package/dist/components/VvTab/VvTab.vue.d.ts +50 -13
- package/dist/components/VvTab/index.d.ts +13 -4
- package/dist/components/VvTextarea/VvTextarea.es.js +229 -212
- package/dist/components/VvTextarea/VvTextarea.umd.js +1 -1
- package/dist/components/VvTextarea/VvTextarea.vue.d.ts +155 -48
- package/dist/components/VvTextarea/index.d.ts +68 -19
- package/dist/components/VvTooltip/VvTooltip.es.js +72 -17
- package/dist/components/VvTooltip/VvTooltip.umd.js +1 -1
- package/dist/components/VvTooltip/VvTooltip.vue.d.ts +10 -3
- package/dist/components/VvTooltip/index.d.ts +4 -1
- package/dist/components/common/HintSlot.d.ts +1 -1
- package/dist/components/index.d.ts +10 -0
- package/dist/components/index.es.js +2902 -1329
- package/dist/components/index.umd.js +1 -1
- package/dist/composables/alert/useAlert.d.ts +37 -4
- package/dist/composables/dropdown/useProvideDropdown.d.ts +1 -1
- package/dist/composables/index.d.ts +1 -0
- package/dist/composables/index.es.js +88 -1
- package/dist/composables/index.umd.js +1 -1
- package/dist/composables/useBlurhash.d.ts +7 -0
- package/dist/composables/useComponentIcon.d.ts +9 -8
- package/dist/composables/useVolver.d.ts +1 -1
- package/dist/directives/index.d.ts +3 -5
- package/dist/directives/index.es.js +92 -31
- package/dist/directives/index.umd.js +1 -1
- package/dist/directives/v-tooltip.es.js +90 -26
- package/dist/directives/v-tooltip.umd.js +1 -1
- package/dist/icons.es.js +210 -210
- package/dist/icons.umd.js +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.es.js +81 -16
- package/dist/index.umd.js +1 -1
- package/dist/props/index.d.ts +287 -73
- package/dist/resolvers/unplugin.d.ts +6 -1
- package/dist/resolvers/unplugin.es.js +78 -10
- package/dist/resolvers/unplugin.umd.js +1 -1
- package/dist/stories/AccordionGroup/AccordionGroup.stories.d.ts +72 -84
- package/dist/stories/AccordionGroup/AccordionGroupSlots.stories.d.ts +623 -461
- package/dist/stories/AlertGroup/AlertGroupWithComposable.stories.d.ts +1 -1
- package/dist/stories/Blurhash/BlurhashComposable.stories.d.ts +4 -0
- package/dist/stories/Combobox/Combobox.settings.d.ts +8 -0
- package/dist/stories/Icon/Icon.settings.d.ts +1 -0
- package/dist/stories/InputFile/InputFile.settings.d.ts +56 -0
- package/dist/stories/InputFile/InputFile.stories.d.ts +12 -0
- package/dist/stories/InputFile/InputFileDropArea.stories.d.ts +9 -0
- package/dist/stories/InputFile/InputFileIconPosition.stories.d.ts +8 -0
- package/dist/stories/InputFile/InputFileSlots.stories.d.ts +7 -0
- package/dist/stories/Tab/Tab.settings.d.ts +4 -37
- package/dist/types/alert.d.ts +13 -0
- package/dist/types/blurhash.d.ts +12 -0
- package/dist/types/floating-ui.d.ts +6 -0
- package/dist/types/generic.d.ts +4 -0
- package/dist/types/group.d.ts +37 -0
- package/dist/types/index.d.ts +7 -0
- package/dist/types/input-file.d.ts +16 -0
- package/dist/types/nav.d.ts +18 -0
- package/dist/utils/ObjectUtilities.d.ts +0 -1
- package/dist/workers/blurhash.d.ts +1 -0
- package/package.json +97 -80
- package/src/Volver.ts +31 -20
- package/src/assets/icons/detailed.json +1 -1
- package/src/assets/icons/normal.json +1 -1
- package/src/assets/icons/simple.json +1 -1
- package/src/components/VvAccordion/VvAccordion.vue +2 -2
- package/src/components/VvAction/VvAction.vue +5 -2
- package/src/components/VvAlert/index.ts +1 -3
- package/src/components/VvAlertGroup/index.ts +2 -1
- package/src/components/VvBreadcrumb/VvBreadcrumb.vue +20 -19
- package/src/components/VvBreadcrumb/index.ts +2 -8
- package/src/components/VvButton/VvButton.vue +6 -6
- package/src/components/VvButton/index.ts +2 -4
- package/src/components/VvCombobox/VvCombobox.vue +24 -16
- package/src/components/VvCombobox/index.ts +4 -0
- package/src/components/VvIcon/VvIcon.vue +2 -2
- package/src/components/VvIcon/index.ts +35 -48
- package/src/components/VvInputFile/VvInputFile.vue +365 -0
- package/src/components/VvInputFile/index.ts +116 -0
- package/src/components/VvInputText/VvInputClearAction.ts +10 -6
- package/src/components/VvInputText/VvInputPasswordAction.ts +13 -9
- package/src/components/VvInputText/VvInputText.vue +17 -18
- package/src/components/VvInputText/index.ts +7 -15
- package/src/components/VvNav/VvNav.vue +30 -50
- package/src/components/VvNav/VvNavItem.vue +18 -0
- package/src/components/VvNav/VvNavSeparator.vue +11 -0
- package/src/components/VvNav/index.ts +2 -15
- package/src/components/VvSelect/VvSelect.vue +5 -8
- package/src/components/VvTab/VvTab.vue +63 -35
- package/src/components/VvTab/index.ts +10 -4
- package/src/components/VvTextarea/VvTextarea.vue +6 -9
- package/src/components/index.ts +10 -0
- package/src/composables/index.ts +1 -0
- package/src/composables/useBlurhash.ts +76 -0
- package/src/composables/useComponentIcon.ts +15 -14
- package/src/composables/useUniqueId.ts +2 -2
- package/src/directives/index.ts +3 -6
- package/src/directives/v-tooltip.ts +19 -10
- package/src/index.ts +3 -1
- package/src/props/index.ts +115 -27
- package/src/resolvers/unplugin.ts +24 -14
- package/src/stories/AlertGroup/AlertGroupWithComposable.stories.ts +2 -2
- package/src/stories/Blurhash/BlurhashComposable.stories.ts +195 -0
- package/src/stories/Combobox/Combobox.settings.ts +8 -0
- package/src/stories/Icon/Icon.settings.ts +3 -3
- package/src/stories/InputFile/InputFile.settings.ts +36 -0
- package/src/stories/InputFile/InputFile.stories.ts +89 -0
- package/src/stories/InputFile/InputFileDropArea.stories.ts +56 -0
- package/src/stories/InputFile/InputFileIconPosition.stories.ts +43 -0
- package/src/stories/InputFile/InputFileSlots.stories.ts +33 -0
- package/src/stories/Nav/Nav.settings.ts +3 -4
- package/src/stories/Nav/Nav.test.ts +4 -15
- package/src/stories/Tab/Tab.settings.ts +9 -9
- package/src/stories/Tab/Tab.stories.ts +2 -2
- package/src/stories/Tab/Tab.test.ts +6 -14
- package/src/stories/argTypes.ts +1 -1
- package/src/types/blurhash.ts +21 -0
- package/src/types/generic.ts +6 -0
- package/src/types/index.ts +7 -0
- package/src/types/input-file.ts +18 -0
- package/src/types/nav.ts +20 -0
- package/src/utils/ObjectUtilities.ts +0 -11
- package/src/workers/blurhash.ts +9 -0
- package/dist/components/VvNav/VvNavItemTitle.vue.d.ts +0 -6
- package/dist/components/VvNav/VvNavSeparator.d.ts +0 -2
- package/dist/components/VvNavItemTitle/VvNavItemTitle.es.js +0 -19
- package/dist/components/VvNavItemTitle/VvNavItemTitle.umd.js +0 -1
- package/src/components/VvNav/VvNavItemTitle.vue +0 -11
- package/src/components/VvNav/VvNavSeparator.ts +0 -8
- package/src/types/generic.d.ts +0 -6
- /package/src/types/{alert.d.ts → alert.ts} +0 -0
- /package/src/types/{floating-ui.d.ts → floating-ui.ts} +0 -0
- /package/src/types/{group.d.ts → group.ts} +0 -0
package/src/props/index.ts
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import type { PropType } from 'vue'
|
|
2
|
-
import type { Option } from '
|
|
2
|
+
import type { Option } from '@/types/generic'
|
|
3
|
+
import type { NavItem } from '@/types/nav'
|
|
3
4
|
import type {
|
|
4
5
|
AutoPlacementOptions,
|
|
5
6
|
FlipOptions,
|
|
6
7
|
OffsetOptions,
|
|
7
8
|
ShiftOptions,
|
|
8
9
|
SizeOptions,
|
|
9
|
-
} from '
|
|
10
|
+
} from '@/types/floating-ui'
|
|
10
11
|
import {
|
|
11
12
|
Placement,
|
|
12
13
|
Strategy,
|
|
@@ -14,7 +15,9 @@ import {
|
|
|
14
15
|
Side,
|
|
15
16
|
AnchorTarget,
|
|
16
17
|
ButtonType,
|
|
17
|
-
|
|
18
|
+
ActionTag,
|
|
19
|
+
} from '@/constants'
|
|
20
|
+
import type { VvIconProps } from '@/components/VvIcon'
|
|
18
21
|
|
|
19
22
|
export const LinkProps = {
|
|
20
23
|
/**
|
|
@@ -33,6 +36,7 @@ export const LinkProps = {
|
|
|
33
36
|
*/
|
|
34
37
|
target: {
|
|
35
38
|
type: String as PropType<`${AnchorTarget}`>,
|
|
39
|
+
default: undefined,
|
|
36
40
|
validator: (value: AnchorTarget) =>
|
|
37
41
|
Object.values(AnchorTarget).includes(value),
|
|
38
42
|
},
|
|
@@ -49,29 +53,35 @@ export const ValidProps = {
|
|
|
49
53
|
/**
|
|
50
54
|
* Valid status
|
|
51
55
|
*/
|
|
52
|
-
valid: Boolean,
|
|
56
|
+
valid: { type: Boolean, default: false },
|
|
53
57
|
/**
|
|
54
58
|
* Valid label
|
|
55
59
|
*/
|
|
56
|
-
validLabel: [String, Array],
|
|
60
|
+
validLabel: { type: [String, Array], default: undefined },
|
|
57
61
|
}
|
|
58
62
|
|
|
59
63
|
export const InvalidProps = {
|
|
60
64
|
/**
|
|
61
65
|
* Invalid status
|
|
62
66
|
*/
|
|
63
|
-
invalid:
|
|
67
|
+
invalid: {
|
|
68
|
+
type: Boolean,
|
|
69
|
+
default: false,
|
|
70
|
+
},
|
|
64
71
|
/**
|
|
65
72
|
* Invalid label
|
|
66
73
|
*/
|
|
67
|
-
invalidLabel: [String, Array],
|
|
74
|
+
invalidLabel: { type: [String, Array], default: undefined },
|
|
68
75
|
}
|
|
69
76
|
|
|
70
77
|
export const LoadingProps = {
|
|
71
78
|
/**
|
|
72
79
|
* Loading status
|
|
73
80
|
*/
|
|
74
|
-
loading:
|
|
81
|
+
loading: {
|
|
82
|
+
type: Boolean,
|
|
83
|
+
default: false,
|
|
84
|
+
},
|
|
75
85
|
/**
|
|
76
86
|
* Loading label
|
|
77
87
|
*/
|
|
@@ -85,49 +95,80 @@ export const DisabledProps = {
|
|
|
85
95
|
/**
|
|
86
96
|
* Whether the form control is disabled
|
|
87
97
|
*/
|
|
88
|
-
disabled:
|
|
98
|
+
disabled: {
|
|
99
|
+
type: Boolean,
|
|
100
|
+
default: false,
|
|
101
|
+
},
|
|
89
102
|
}
|
|
90
103
|
|
|
91
104
|
export const SelectedProps = {
|
|
92
105
|
/**
|
|
93
106
|
* Whether the item is selected
|
|
94
107
|
*/
|
|
95
|
-
selected:
|
|
108
|
+
selected: {
|
|
109
|
+
type: Boolean,
|
|
110
|
+
default: false,
|
|
111
|
+
},
|
|
96
112
|
}
|
|
97
113
|
|
|
98
114
|
export const ActiveProps = {
|
|
99
115
|
/**
|
|
100
116
|
* Whether the item is active
|
|
101
117
|
*/
|
|
102
|
-
active:
|
|
118
|
+
active: {
|
|
119
|
+
type: Boolean,
|
|
120
|
+
default: false,
|
|
121
|
+
},
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
export const CurrentProps = {
|
|
125
|
+
/**
|
|
126
|
+
* Whether the item is current
|
|
127
|
+
*/
|
|
128
|
+
current: {
|
|
129
|
+
type: Boolean,
|
|
130
|
+
default: false,
|
|
131
|
+
},
|
|
103
132
|
}
|
|
104
133
|
|
|
105
134
|
export const PressedProps = {
|
|
106
135
|
/**
|
|
107
136
|
* Whether the item is pressed
|
|
108
137
|
*/
|
|
109
|
-
pressed:
|
|
138
|
+
pressed: {
|
|
139
|
+
type: Boolean,
|
|
140
|
+
default: false,
|
|
141
|
+
},
|
|
110
142
|
}
|
|
111
143
|
|
|
112
144
|
export const LabelProps = {
|
|
113
145
|
/**
|
|
114
146
|
* The item label
|
|
115
147
|
*/
|
|
116
|
-
label:
|
|
148
|
+
label: {
|
|
149
|
+
type: [String, Number],
|
|
150
|
+
default: undefined,
|
|
151
|
+
},
|
|
117
152
|
}
|
|
118
153
|
|
|
119
154
|
export const ReadonlyProps = {
|
|
120
155
|
/**
|
|
121
156
|
* The value is not editable
|
|
122
157
|
*/
|
|
123
|
-
readonly:
|
|
158
|
+
readonly: {
|
|
159
|
+
type: Boolean,
|
|
160
|
+
default: false,
|
|
161
|
+
},
|
|
124
162
|
}
|
|
125
163
|
|
|
126
164
|
export const ModifiersProps = {
|
|
127
165
|
/**
|
|
128
166
|
* Component BEM modifiers
|
|
129
167
|
*/
|
|
130
|
-
modifiers:
|
|
168
|
+
modifiers: {
|
|
169
|
+
type: [String, Array] as PropType<string | string[]>,
|
|
170
|
+
default: undefined,
|
|
171
|
+
},
|
|
131
172
|
}
|
|
132
173
|
|
|
133
174
|
export const HintProps = {
|
|
@@ -172,7 +213,10 @@ export const DebounceProps = {
|
|
|
172
213
|
/**
|
|
173
214
|
* Milliseconds to wait before emitting the input event
|
|
174
215
|
*/
|
|
175
|
-
debounce:
|
|
216
|
+
debounce: {
|
|
217
|
+
type: [Number, String],
|
|
218
|
+
default: undefined,
|
|
219
|
+
},
|
|
176
220
|
}
|
|
177
221
|
|
|
178
222
|
export const IconProps = {
|
|
@@ -180,7 +224,10 @@ export const IconProps = {
|
|
|
180
224
|
* VvIcon name or props
|
|
181
225
|
* @see VVIcon
|
|
182
226
|
*/
|
|
183
|
-
icon: {
|
|
227
|
+
icon: {
|
|
228
|
+
type: [String, Object] as PropType<string | VvIconProps>,
|
|
229
|
+
default: undefined,
|
|
230
|
+
},
|
|
184
231
|
/**
|
|
185
232
|
* VvIcon position
|
|
186
233
|
*/
|
|
@@ -204,7 +251,10 @@ export const FloatingLabelProps = {
|
|
|
204
251
|
/**
|
|
205
252
|
* If true the label will be floating
|
|
206
253
|
*/
|
|
207
|
-
floating:
|
|
254
|
+
floating: {
|
|
255
|
+
type: Boolean,
|
|
256
|
+
default: false,
|
|
257
|
+
},
|
|
208
258
|
}
|
|
209
259
|
|
|
210
260
|
export const UnselectableProps = {
|
|
@@ -246,6 +296,7 @@ export const DropdownProps = {
|
|
|
246
296
|
*/
|
|
247
297
|
transitionName: {
|
|
248
298
|
type: String,
|
|
299
|
+
default: undefined,
|
|
249
300
|
},
|
|
250
301
|
/**
|
|
251
302
|
* Offset of the dropdown from the trigger
|
|
@@ -316,6 +367,7 @@ export const DropdownProps = {
|
|
|
316
367
|
*/
|
|
317
368
|
triggerWidth: {
|
|
318
369
|
type: Boolean,
|
|
370
|
+
default: false,
|
|
319
371
|
},
|
|
320
372
|
}
|
|
321
373
|
|
|
@@ -334,7 +386,10 @@ export const AutofocusProps = {
|
|
|
334
386
|
* Global attribute autofocus
|
|
335
387
|
* @see https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/autofocus
|
|
336
388
|
*/
|
|
337
|
-
autofocus:
|
|
389
|
+
autofocus: {
|
|
390
|
+
type: Boolean,
|
|
391
|
+
default: false,
|
|
392
|
+
},
|
|
338
393
|
}
|
|
339
394
|
|
|
340
395
|
export const AutocompleteProps = {
|
|
@@ -368,28 +423,34 @@ export const InputTextareaProps = {
|
|
|
368
423
|
* Available for input types: text, search, url, tel, email, password
|
|
369
424
|
* @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#minlength
|
|
370
425
|
*/
|
|
371
|
-
minlength: [String, Number],
|
|
426
|
+
minlength: { type: [String, Number], default: undefined },
|
|
372
427
|
/**
|
|
373
428
|
* Input / Textarea maxlength
|
|
374
429
|
* Maximum length (number of characters) of value
|
|
375
430
|
* Available for input types: text, search, url, tel, email, password
|
|
376
431
|
* @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#maxlength
|
|
377
432
|
*/
|
|
378
|
-
maxlength: [String, Number],
|
|
433
|
+
maxlength: { type: [String, Number], default: undefined },
|
|
379
434
|
/**
|
|
380
435
|
* Input / Textarea placeholder
|
|
381
436
|
* Text that appears in the form control when it has no value set
|
|
382
437
|
* Available for input types: text, search, url, tel, email, password, number
|
|
383
438
|
* @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#placeholder
|
|
384
439
|
*/
|
|
385
|
-
placeholder:
|
|
440
|
+
placeholder: {
|
|
441
|
+
type: String,
|
|
442
|
+
default: undefined,
|
|
443
|
+
},
|
|
386
444
|
/**
|
|
387
445
|
* Input / Textarea required
|
|
388
446
|
* A value is required or must be check for the form to be submittable
|
|
389
447
|
* Available for all input types except color
|
|
390
448
|
* @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#required
|
|
391
449
|
*/
|
|
392
|
-
required:
|
|
450
|
+
required: {
|
|
451
|
+
type: Boolean,
|
|
452
|
+
default: false,
|
|
453
|
+
},
|
|
393
454
|
}
|
|
394
455
|
|
|
395
456
|
export const CheckboxRadioProps = {
|
|
@@ -407,11 +468,17 @@ export const CheckboxRadioProps = {
|
|
|
407
468
|
* Input value
|
|
408
469
|
* @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#value
|
|
409
470
|
*/
|
|
410
|
-
value:
|
|
471
|
+
value: {
|
|
472
|
+
type: [String, Number, Boolean],
|
|
473
|
+
default: undefined,
|
|
474
|
+
},
|
|
411
475
|
/**
|
|
412
476
|
* Input value
|
|
413
477
|
*/
|
|
414
|
-
modelValue:
|
|
478
|
+
modelValue: {
|
|
479
|
+
type: [Object, Number, Boolean, String],
|
|
480
|
+
default: undefined,
|
|
481
|
+
},
|
|
415
482
|
}
|
|
416
483
|
|
|
417
484
|
export const CheckboxRadioGroupProps = {
|
|
@@ -427,7 +494,10 @@ export const CheckboxRadioGroupProps = {
|
|
|
427
494
|
/**
|
|
428
495
|
* Input value
|
|
429
496
|
*/
|
|
430
|
-
modelValue:
|
|
497
|
+
modelValue: {
|
|
498
|
+
type: [String, Array, Boolean, Number, Symbol],
|
|
499
|
+
default: undefined,
|
|
500
|
+
},
|
|
431
501
|
/**
|
|
432
502
|
* Input name
|
|
433
503
|
*/
|
|
@@ -435,7 +505,10 @@ export const CheckboxRadioGroupProps = {
|
|
|
435
505
|
/**
|
|
436
506
|
* If true, the group will be displayed in a vertical column
|
|
437
507
|
*/
|
|
438
|
-
vertical:
|
|
508
|
+
vertical: {
|
|
509
|
+
type: Boolean,
|
|
510
|
+
default: false,
|
|
511
|
+
},
|
|
439
512
|
}
|
|
440
513
|
|
|
441
514
|
export const ActionProps = {
|
|
@@ -443,6 +516,7 @@ export const ActionProps = {
|
|
|
443
516
|
...LabelProps,
|
|
444
517
|
...PressedProps,
|
|
445
518
|
...ActiveProps,
|
|
519
|
+
...CurrentProps,
|
|
446
520
|
...LinkProps,
|
|
447
521
|
/**
|
|
448
522
|
* Button type
|
|
@@ -460,4 +534,18 @@ export const ActionProps = {
|
|
|
460
534
|
type: String,
|
|
461
535
|
default: undefined,
|
|
462
536
|
},
|
|
537
|
+
/**
|
|
538
|
+
* Default tag for the action
|
|
539
|
+
*/
|
|
540
|
+
defaultTag: {
|
|
541
|
+
type: String,
|
|
542
|
+
default: ActionTag.button,
|
|
543
|
+
},
|
|
544
|
+
}
|
|
545
|
+
|
|
546
|
+
export const NavProps = {
|
|
547
|
+
items: {
|
|
548
|
+
type: Array as PropType<NavItem[]>,
|
|
549
|
+
default: () => [],
|
|
550
|
+
},
|
|
463
551
|
}
|
|
@@ -2,17 +2,7 @@ import type {
|
|
|
2
2
|
ComponentResolver,
|
|
3
3
|
SideEffectsInfo,
|
|
4
4
|
} from 'unplugin-vue-components/types'
|
|
5
|
-
|
|
6
|
-
function kebabCase(str: string, options?: { condense: boolean }) {
|
|
7
|
-
if (typeof str !== 'string') throw new TypeError('expected a string')
|
|
8
|
-
return str
|
|
9
|
-
.trim()
|
|
10
|
-
.replace(/([a-z])([A-Z])/g, '$1-$2')
|
|
11
|
-
.replace(/\W/g, (m) => (/[À-ž]/.test(m) ? m : '-'))
|
|
12
|
-
.replace(/^-+|-+$/g, '')
|
|
13
|
-
.replace(/-{2,}/g, (m) => (options?.condense ? '-' : m))
|
|
14
|
-
.toLowerCase()
|
|
15
|
-
}
|
|
5
|
+
import { kebabCase } from 'change-case'
|
|
16
6
|
|
|
17
7
|
type ImportStyle = boolean | 'css' | 'scss'
|
|
18
8
|
|
|
@@ -38,11 +28,16 @@ export interface VolverResolverOptions {
|
|
|
38
28
|
* @default undefined
|
|
39
29
|
*/
|
|
40
30
|
ignore?: string[]
|
|
31
|
+
/**
|
|
32
|
+
* cherry pick components from named exports
|
|
33
|
+
* @default undefined
|
|
34
|
+
*/
|
|
35
|
+
cherryPick?: boolean
|
|
41
36
|
}
|
|
42
37
|
|
|
43
38
|
const STYLE_EXCLUDE = ['vv-icon', 'vv-action']
|
|
44
39
|
const VOLVER_PREFIX = 'vv'
|
|
45
|
-
const DIRECTIVES = ['v-tooltip']
|
|
40
|
+
const DIRECTIVES = ['v-tooltip', 'v-contextmenu']
|
|
46
41
|
|
|
47
42
|
export const getStyleNames = function (kebabName: string) {
|
|
48
43
|
if (STYLE_EXCLUDE.includes(kebabName)) {
|
|
@@ -113,6 +108,7 @@ export function VolverResolver({
|
|
|
113
108
|
importStyle,
|
|
114
109
|
directives,
|
|
115
110
|
ignore,
|
|
111
|
+
cherryPick,
|
|
116
112
|
}: VolverResolverOptions = {}): ComponentResolver[] {
|
|
117
113
|
return [
|
|
118
114
|
{
|
|
@@ -134,9 +130,16 @@ export function VolverResolver({
|
|
|
134
130
|
}
|
|
135
131
|
|
|
136
132
|
// import component
|
|
133
|
+
if (cherryPick) {
|
|
134
|
+
return {
|
|
135
|
+
from: `@volverjs/ui-vue/${kebabName}`,
|
|
136
|
+
sideEffects: getSideEffects(kebabName, importStyle),
|
|
137
|
+
}
|
|
138
|
+
}
|
|
137
139
|
return {
|
|
138
|
-
from:
|
|
140
|
+
from: '@volverjs/ui-vue/components',
|
|
139
141
|
sideEffects: getSideEffects(kebabName, importStyle),
|
|
142
|
+
name,
|
|
140
143
|
}
|
|
141
144
|
},
|
|
142
145
|
},
|
|
@@ -159,9 +162,16 @@ export function VolverResolver({
|
|
|
159
162
|
}
|
|
160
163
|
|
|
161
164
|
// import directive
|
|
165
|
+
if (cherryPick) {
|
|
166
|
+
return {
|
|
167
|
+
from: `@volverjs/ui-vue/${kebabName}`,
|
|
168
|
+
sideEffects: getSideEffects(kebabName, importStyle),
|
|
169
|
+
}
|
|
170
|
+
}
|
|
162
171
|
return {
|
|
163
|
-
from:
|
|
172
|
+
from: '@volverjs/ui-vue/directives',
|
|
164
173
|
sideEffects: getSideEffects(kebabName, importStyle),
|
|
174
|
+
name: `v${name}`,
|
|
165
175
|
}
|
|
166
176
|
},
|
|
167
177
|
},
|
|
@@ -6,7 +6,7 @@ import { Default as DefaultStory, type Story } from './AlertGroup.stories'
|
|
|
6
6
|
import { useAlert } from '@/composables/alert/useAlert'
|
|
7
7
|
|
|
8
8
|
const meta: Meta<typeof VvAlertGroup> = {
|
|
9
|
-
title: '
|
|
9
|
+
title: 'Composables/useAlert',
|
|
10
10
|
component: VvAlertGroup,
|
|
11
11
|
args: defaultArgs,
|
|
12
12
|
argTypes,
|
|
@@ -15,7 +15,7 @@ const meta: Meta<typeof VvAlertGroup> = {
|
|
|
15
15
|
|
|
16
16
|
export default meta
|
|
17
17
|
|
|
18
|
-
export const
|
|
18
|
+
export const Default: Story = {
|
|
19
19
|
...DefaultStory,
|
|
20
20
|
parameters: {
|
|
21
21
|
docs: {
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/vue3'
|
|
2
|
+
import { ref } from 'vue'
|
|
3
|
+
import VvInputFile from '@/components/VvInputFile/VvInputFile.vue'
|
|
4
|
+
import { useBlurhash } from '@/composables/useBlurhash'
|
|
5
|
+
|
|
6
|
+
const meta: Meta = {
|
|
7
|
+
title: 'Composables/useBlurhash',
|
|
8
|
+
tags: ['autodocs'],
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export default meta
|
|
12
|
+
|
|
13
|
+
export const Default: StoryObj = {
|
|
14
|
+
render: (args) => ({
|
|
15
|
+
components: { VvInputFile },
|
|
16
|
+
setup() {
|
|
17
|
+
const isLoading = ref(false)
|
|
18
|
+
const { encode, decode, loadImage } = useBlurhash()
|
|
19
|
+
const file = ref({})
|
|
20
|
+
const canvas = ref()
|
|
21
|
+
const isImgLoaded = ref(false)
|
|
22
|
+
const blurhash = ref('')
|
|
23
|
+
const imageUrl = ref('')
|
|
24
|
+
const image = ref()
|
|
25
|
+
|
|
26
|
+
return {
|
|
27
|
+
args,
|
|
28
|
+
isLoading,
|
|
29
|
+
canvas,
|
|
30
|
+
encode,
|
|
31
|
+
decode,
|
|
32
|
+
file,
|
|
33
|
+
blurhash,
|
|
34
|
+
isImgLoaded,
|
|
35
|
+
loadImage,
|
|
36
|
+
image,
|
|
37
|
+
imageUrl,
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
watch: {
|
|
41
|
+
file: {
|
|
42
|
+
immediate: true,
|
|
43
|
+
async handler(newValue) {
|
|
44
|
+
if (newValue?.size) {
|
|
45
|
+
this.imageUrl = URL.createObjectURL(newValue)
|
|
46
|
+
this.image = await this.loadImage(this.imageUrl)
|
|
47
|
+
this.blurhash = await this.encode(newValue)
|
|
48
|
+
} else {
|
|
49
|
+
this.image = null
|
|
50
|
+
this.imageUrl = ''
|
|
51
|
+
this.blurhash = ''
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
blurhash: {
|
|
56
|
+
async handler(newValue) {
|
|
57
|
+
if (this.image) {
|
|
58
|
+
const blurhashDecoded = await this.decode(
|
|
59
|
+
newValue,
|
|
60
|
+
this.image.width,
|
|
61
|
+
this.image.height,
|
|
62
|
+
)
|
|
63
|
+
|
|
64
|
+
if (this.canvas) {
|
|
65
|
+
this.canvas.width = this.image.width
|
|
66
|
+
this.canvas.height = this.image.height
|
|
67
|
+
const ctx = this.canvas.getContext('2d')
|
|
68
|
+
const imageData = ctx.createImageData(
|
|
69
|
+
this.canvas.width,
|
|
70
|
+
this.canvas.height,
|
|
71
|
+
)
|
|
72
|
+
imageData.data.set(blurhashDecoded)
|
|
73
|
+
ctx.putImageData(imageData, 0, 0)
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
template: /* html */ `
|
|
80
|
+
<div class="w-full grid gap-md grid-cols-3 h-150" :class="{ 'vv-skeleton': isLoading }">
|
|
81
|
+
<div class="w-150 h-150 col-span-1">
|
|
82
|
+
<div class="text-20 font-semibold mb-md">Upload image</div>
|
|
83
|
+
<vv-input-file v-model="file" name="input-file" modifiers="drop-area square hidden" accept=".gif,.jpg,.jpeg,.png,image/gif,image/jpeg,image/png" />
|
|
84
|
+
</div>
|
|
85
|
+
<div v-show="blurhash" class="h-150 col-span-2">
|
|
86
|
+
<picture class="flex gap-md justify-center">
|
|
87
|
+
<div>
|
|
88
|
+
<div class="text-20 font-semibold mb-md">Blurhash</div>
|
|
89
|
+
<canvas
|
|
90
|
+
ref="canvas"
|
|
91
|
+
class="w-150 h-150 block object-cover" />
|
|
92
|
+
</div>
|
|
93
|
+
<div>
|
|
94
|
+
<div class="text-20 font-semibold mb-md">Image</div>
|
|
95
|
+
<img
|
|
96
|
+
v-if="image"
|
|
97
|
+
class="w-150 h-150 block object-cover"
|
|
98
|
+
:class="{ 'vv-skeleton__item': isLoading }"
|
|
99
|
+
:src="imageUrl"
|
|
100
|
+
alt="image"
|
|
101
|
+
:width="image.width"
|
|
102
|
+
:height="image.height" />
|
|
103
|
+
</div>
|
|
104
|
+
</picture>
|
|
105
|
+
</div>
|
|
106
|
+
</div>
|
|
107
|
+
`,
|
|
108
|
+
}),
|
|
109
|
+
|
|
110
|
+
parameters: {
|
|
111
|
+
docs: {
|
|
112
|
+
source: {
|
|
113
|
+
type: 'code',
|
|
114
|
+
language: 'html',
|
|
115
|
+
code: /* html */ `
|
|
116
|
+
<div class="w-full grid gap-md grid-cols-3 h-150" :class="{ 'vv-skeleton': isLoading }">
|
|
117
|
+
<div class="w-150 h-150 col-span-1">
|
|
118
|
+
<div class="text-20 font-semibold mb-md">Upload image</div>
|
|
119
|
+
<vv-input-file v-model="file" name="input-file" modifiers="drop-area square hidden" accept=".gif,.jpg,.jpeg,.png,image/gif,image/jpeg,image/png" />
|
|
120
|
+
</div>
|
|
121
|
+
<div v-show="blurhash" class="h-150 col-span-2">
|
|
122
|
+
<picture class="flex gap-md justify-center">
|
|
123
|
+
<div>
|
|
124
|
+
<div class="text-20 font-semibold mb-md">Blurhash</div>
|
|
125
|
+
<canvas
|
|
126
|
+
ref="canvas"
|
|
127
|
+
class="w-150 h-150 block object-cover" />
|
|
128
|
+
</div>
|
|
129
|
+
<div>
|
|
130
|
+
<div class="text-20 font-semibold mb-md">Image</div>
|
|
131
|
+
<img
|
|
132
|
+
v-if="image"
|
|
133
|
+
class="w-150 h-150 block object-cover"
|
|
134
|
+
:class="{ 'vv-skeleton__item': isLoading }"
|
|
135
|
+
:src="imageUrl"
|
|
136
|
+
alt="image"
|
|
137
|
+
:width="image.width"
|
|
138
|
+
:height="image.height" />
|
|
139
|
+
</div>
|
|
140
|
+
</picture>
|
|
141
|
+
</div>
|
|
142
|
+
</div>
|
|
143
|
+
|
|
144
|
+
<script setup lang='ts'>
|
|
145
|
+
import { useBlurhash } from '@volverjs/ui-vue/composables'
|
|
146
|
+
|
|
147
|
+
const { encode, decode, loadImage } = useBlurhash()
|
|
148
|
+
|
|
149
|
+
const isLoading = ref(false)
|
|
150
|
+
const file = ref({})
|
|
151
|
+
const canvas = ref()
|
|
152
|
+
const isImgLoaded = ref(false)
|
|
153
|
+
const blurhash = ref('')
|
|
154
|
+
const imageUrl = ref('')
|
|
155
|
+
const image = ref()
|
|
156
|
+
|
|
157
|
+
watch(file, async (newValue) => {
|
|
158
|
+
if (newValue?.size) {
|
|
159
|
+
this.imageUrl = URL.createObjectURL(newValue)
|
|
160
|
+
this.image = await this.loadImage(this.imageUrl)
|
|
161
|
+
this.blurhash = await this.encode(newValue)
|
|
162
|
+
} else {
|
|
163
|
+
this.image = null
|
|
164
|
+
this.imageUrl = ''
|
|
165
|
+
this.blurhash = ''
|
|
166
|
+
}
|
|
167
|
+
}, { immediate: true })
|
|
168
|
+
|
|
169
|
+
watch(blurhash, async (newValue) => {
|
|
170
|
+
if (this.image) {
|
|
171
|
+
const blurhashDecoded = await this.decode(
|
|
172
|
+
newValue,
|
|
173
|
+
this.image.width,
|
|
174
|
+
this.image.height,
|
|
175
|
+
)
|
|
176
|
+
|
|
177
|
+
if (this.canvas) {
|
|
178
|
+
this.canvas.width = this.image.width
|
|
179
|
+
this.canvas.height = this.image.height
|
|
180
|
+
const ctx = this.canvas.getContext('2d')
|
|
181
|
+
const imageData = ctx.createImageData(
|
|
182
|
+
this.canvas.width,
|
|
183
|
+
this.canvas.height,
|
|
184
|
+
)
|
|
185
|
+
imageData.data.set(blurhashDecoded)
|
|
186
|
+
ctx.putImageData(imageData, 0, 0)
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
})
|
|
190
|
+
</script>
|
|
191
|
+
`,
|
|
192
|
+
},
|
|
193
|
+
},
|
|
194
|
+
},
|
|
195
|
+
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { VvIconPropsDefaults } from '@/components/VvIcon'
|
|
2
2
|
import normal from '@/assets/icons/normal.json'
|
|
3
3
|
import { ModifiersArgTypes } from '@/stories/argTypes'
|
|
4
4
|
|
|
5
5
|
export const defaultArgs = {
|
|
6
|
-
...
|
|
6
|
+
...VvIconPropsDefaults,
|
|
7
7
|
name: 'add-circle',
|
|
8
|
-
width: 48
|
|
8
|
+
width: 48,
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
export const argTypes = {
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { HintArgTypes, ModifiersArgTypes } from '@/stories/argTypes'
|
|
2
|
+
import { VvInputFileProps } from '@/components/VvInputFile'
|
|
3
|
+
|
|
4
|
+
export const defaultArgs = {
|
|
5
|
+
...propsToObject(VvInputFileProps),
|
|
6
|
+
name: 'vv-input-file',
|
|
7
|
+
label: 'Upload file',
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export const argTypes = {
|
|
11
|
+
...HintArgTypes,
|
|
12
|
+
modifiers: {
|
|
13
|
+
...ModifiersArgTypes.modifiers,
|
|
14
|
+
options: ['hidden', 'square', 'circle'],
|
|
15
|
+
},
|
|
16
|
+
'drop-area': {
|
|
17
|
+
description: 'Drop area slot',
|
|
18
|
+
control: {
|
|
19
|
+
type: 'text',
|
|
20
|
+
},
|
|
21
|
+
table: {
|
|
22
|
+
category: 'Slots',
|
|
23
|
+
type: {
|
|
24
|
+
summary: 'html',
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
'update:model-value': {
|
|
29
|
+
table: {
|
|
30
|
+
category: 'Events',
|
|
31
|
+
type: {
|
|
32
|
+
summary: 'File | File[]',
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
}
|