@vuetify/nightly 3.0.0-beta.0 → 3.0.0-beta.2
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/CHANGELOG.md +53 -2
- package/dist/json/attributes.json +343 -195
- package/dist/json/importMap.json +20 -0
- package/dist/json/tags.json +106 -44
- package/dist/json/web-types.json +946 -549
- package/dist/vuetify.css +1486 -1085
- package/dist/vuetify.d.ts +9036 -8077
- package/dist/vuetify.esm.js +1511 -944
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +1510 -943
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +3 -3
- package/dist/vuetify.min.js +825 -754
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAlert/VAlert.css +29 -8
- package/lib/components/VAlert/VAlert.mjs +31 -17
- package/lib/components/VAlert/VAlert.mjs.map +1 -1
- package/lib/components/VAlert/VAlert.sass +27 -7
- package/lib/components/VAlert/VAlertTitle.mjs +1 -0
- package/lib/components/VAlert/VAlertTitle.mjs.map +1 -1
- package/lib/components/VAlert/_variables.scss +14 -7
- package/lib/components/VApp/VApp.css +1 -0
- package/lib/components/VApp/VApp.sass +1 -0
- package/lib/components/VAppBar/VAppBar.mjs +7 -3
- package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
- package/lib/components/VAppBar/VAppBarTitle.mjs.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.mjs +82 -69
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAvatar/VAvatar.mjs +15 -14
- package/lib/components/VAvatar/VAvatar.mjs.map +1 -1
- package/lib/components/VBanner/VBanner.css +82 -58
- package/lib/components/VBanner/VBanner.mjs +39 -43
- package/lib/components/VBanner/VBanner.mjs.map +1 -1
- package/lib/components/VBanner/VBanner.sass +61 -54
- package/lib/components/VBanner/VBannerActions.mjs +34 -2
- package/lib/components/VBanner/VBannerActions.mjs.map +1 -1
- package/lib/components/VBanner/VBannerAvatar.mjs +20 -0
- package/lib/components/VBanner/VBannerAvatar.mjs.map +1 -0
- package/lib/components/VBanner/VBannerIcon.mjs +20 -0
- package/lib/components/VBanner/VBannerIcon.mjs.map +1 -0
- package/lib/components/VBanner/_variables.scss +10 -14
- package/lib/components/VBanner/index.mjs +2 -0
- package/lib/components/VBanner/index.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +2 -0
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs +10 -9
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs.map +1 -1
- package/lib/components/VBtn/VBtn.css +20 -1
- package/lib/components/VBtn/VBtn.mjs +20 -7
- package/lib/components/VBtn/VBtn.mjs.map +1 -1
- package/lib/components/VBtn/VBtn.sass +15 -2
- package/lib/components/VBtn/_variables.scss +3 -0
- package/lib/components/VBtnGroup/VBtnGroup.css +14 -6
- package/lib/components/VBtnGroup/VBtnGroup.sass +14 -6
- package/lib/components/VCard/VCard.css +13 -11
- package/lib/components/VCard/VCard.mjs +5 -2
- package/lib/components/VCard/VCard.mjs.map +1 -1
- package/lib/components/VCard/VCard.sass +12 -9
- package/lib/components/VCard/VCardActions.mjs +1 -2
- package/lib/components/VCard/VCardActions.mjs.map +1 -1
- package/lib/components/VCard/VCardContent.mjs +3 -0
- package/lib/components/VCard/VCardContent.mjs.map +1 -0
- package/lib/components/VCard/_variables.scss +11 -5
- package/lib/components/VCard/index.mjs +1 -0
- package/lib/components/VCard/index.mjs.map +1 -1
- package/lib/components/VCarousel/VCarousel.mjs +1 -1
- package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
- package/lib/components/VCheckbox/VCheckbox.mjs +2 -2
- package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
- package/lib/components/VChip/VChip.css +3 -0
- package/lib/components/VChip/VChip.sass +3 -0
- package/lib/components/VChip/_variables.scss +3 -0
- package/lib/components/VColorPicker/VColorPickerCanvas.css +1 -1
- package/lib/components/VCombobox/VCombobox.mjs +92 -74
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VDialog/VDialog.css +31 -11
- package/lib/components/VDialog/VDialog.mjs +6 -9
- package/lib/components/VDialog/VDialog.mjs.map +1 -1
- package/lib/components/VDialog/VDialog.sass +27 -10
- package/lib/components/VDialog/_variables.scss +3 -6
- package/lib/components/VExpansionPanel/VExpansionPanel.css +3 -2
- package/lib/components/VExpansionPanel/VExpansionPanel.mjs +6 -2
- package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +5 -3
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanels.mjs +4 -0
- package/lib/components/VExpansionPanel/VExpansionPanels.mjs.map +1 -1
- package/lib/components/VField/VField.css +1 -1
- package/lib/components/VField/VField.mjs +3 -4
- package/lib/components/VField/VField.mjs.map +1 -1
- package/lib/components/VField/VField.sass +1 -1
- package/lib/components/VFileInput/VFileInput.mjs +2 -1
- package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
- package/lib/components/VFooter/VFooter.mjs +32 -15
- package/lib/components/VFooter/VFooter.mjs.map +1 -1
- package/lib/components/VForm/VForm.mjs +25 -11
- package/lib/components/VForm/VForm.mjs.map +1 -1
- package/lib/components/VIcon/VIcon.css +27 -12
- package/lib/components/VIcon/VIcon.mjs +19 -16
- package/lib/components/VIcon/VIcon.mjs.map +1 -1
- package/lib/components/VIcon/VIcon.sass +27 -16
- package/lib/components/VIcon/_variables.scss +1 -0
- package/lib/components/VInput/VInput.css +3 -1
- package/lib/components/VInput/VInput.mjs +3 -4
- package/lib/components/VInput/VInput.mjs.map +1 -1
- package/lib/components/VInput/VInput.sass +3 -1
- package/lib/components/VInput/_variables.scss +4 -0
- package/lib/components/VList/VList.css +7 -6
- package/lib/components/VList/VList.mjs +36 -17
- package/lib/components/VList/VList.mjs.map +1 -1
- package/lib/components/VList/VList.sass +3 -2
- package/lib/components/VList/VListChildren.mjs +1 -1
- package/lib/components/VList/VListChildren.mjs.map +1 -1
- package/lib/components/VList/VListGroup.mjs +28 -10
- package/lib/components/VList/VListGroup.mjs.map +1 -1
- package/lib/components/VList/VListItem.css +119 -42
- package/lib/components/VList/VListItem.mjs +36 -32
- package/lib/components/VList/VListItem.mjs.map +1 -1
- package/lib/components/VList/VListItem.sass +76 -28
- package/lib/components/VList/VListItemAction.mjs +29 -0
- package/lib/components/VList/VListItemAction.mjs.map +1 -0
- package/lib/components/VList/VListItemAvatar.mjs +10 -16
- package/lib/components/VList/VListItemAvatar.mjs.map +1 -1
- package/lib/components/VList/VListItemIcon.mjs +23 -0
- package/lib/components/VList/VListItemIcon.mjs.map +1 -0
- package/lib/components/VList/VListItemMedia.mjs +4 -4
- package/lib/components/VList/VListItemMedia.mjs.map +1 -1
- package/lib/components/VList/_variables.scss +12 -3
- package/lib/components/VList/index.mjs +2 -0
- package/lib/components/VList/index.mjs.map +1 -1
- package/lib/components/VMenu/VMenu.css +2 -12
- package/lib/components/VMenu/VMenu.mjs +61 -31
- package/lib/components/VMenu/VMenu.mjs.map +1 -1
- package/lib/components/VMenu/VMenu.sass +3 -6
- package/lib/components/VMenu/shared.mjs +2 -0
- package/lib/components/VMenu/shared.mjs.map +1 -0
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +1 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
- package/lib/components/VOverlay/VOverlay.css +8 -0
- package/lib/components/VOverlay/VOverlay.mjs +16 -15
- package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
- package/lib/components/VOverlay/VOverlay.sass +9 -0
- package/lib/components/VOverlay/_variables.scss +1 -0
- package/lib/components/VOverlay/positionStrategies.mjs +7 -3
- package/lib/components/VOverlay/positionStrategies.mjs.map +1 -1
- package/lib/components/VOverlay/scrollStrategies.mjs +9 -0
- package/lib/components/VOverlay/scrollStrategies.mjs.map +1 -1
- package/lib/components/VOverlay/useActivator.mjs +50 -14
- package/lib/components/VOverlay/useActivator.mjs.map +1 -1
- package/lib/components/VPagination/VPagination.mjs +10 -12
- package/lib/components/VPagination/VPagination.mjs.map +1 -1
- package/lib/components/VProgressLinear/VProgressLinear.css +1 -1
- package/lib/components/VRadio/VRadio.mjs +1 -2
- package/lib/components/VRadio/VRadio.mjs.map +1 -1
- package/lib/components/VRadioGroup/VRadioGroup.mjs +2 -2
- package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
- package/lib/components/VRangeSlider/VRangeSlider.mjs +5 -2
- package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
- package/lib/components/VRating/VRating.css +2 -2
- package/lib/components/VRating/VRating.mjs +13 -3
- package/lib/components/VRating/VRating.mjs.map +1 -1
- package/lib/components/VRating/VRating.sass +2 -2
- package/lib/components/VSelect/VSelect.mjs +70 -91
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelectionControl/VSelectionControl.mjs +2 -1
- package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs +2 -2
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs.map +1 -1
- package/lib/components/VSlideGroup/VSlideGroup.css +0 -5
- package/lib/components/VSlideGroup/VSlideGroup.mjs +36 -14
- package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
- package/lib/components/VSlideGroup/VSlideGroup.sass +0 -4
- package/lib/components/VSlideGroup/VSlideGroupItem.mjs +3 -1
- package/lib/components/VSlideGroup/VSlideGroupItem.mjs.map +1 -1
- package/lib/components/VSlider/VSlider.css +7 -2
- package/lib/components/VSlider/VSlider.sass +11 -5
- package/lib/components/VSlider/VSliderTrack.css +6 -6
- package/lib/components/VSlider/VSliderTrack.mjs +1 -1
- package/lib/components/VSlider/VSliderTrack.mjs.map +1 -1
- package/lib/components/VSlider/VSliderTrack.sass +7 -7
- package/lib/components/VSlider/_variables.scss +5 -2
- package/lib/components/VSnackbar/VSnackbar.css +14 -13
- package/lib/components/VSnackbar/VSnackbar.mjs +22 -10
- package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
- package/lib/components/VSnackbar/VSnackbar.sass +15 -16
- package/lib/components/VSnackbar/_variables.scss +0 -4
- package/lib/components/VSwitch/VSwitch.mjs +8 -5
- package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
- package/lib/components/VSystemBar/VSystemBar.css +0 -5
- package/lib/components/VSystemBar/VSystemBar.mjs +31 -14
- package/lib/components/VSystemBar/VSystemBar.mjs.map +1 -1
- package/lib/components/VSystemBar/VSystemBar.sass +0 -5
- package/lib/components/VSystemBar/_variables.scss +0 -3
- package/lib/components/VTabs/VTab.mjs +28 -32
- package/lib/components/VTabs/VTab.mjs.map +1 -1
- package/lib/components/VTabs/VTabs.css +6 -2
- package/lib/components/VTabs/VTabs.mjs +7 -8
- package/lib/components/VTabs/VTabs.mjs.map +1 -1
- package/lib/components/VTabs/VTabs.sass +6 -1
- package/lib/components/VTabs/shared.mjs +2 -0
- package/lib/components/VTabs/shared.mjs.map +1 -0
- package/lib/components/VTextField/VTextField.css +4 -4
- package/lib/components/VTextField/VTextField.mjs +5 -9
- package/lib/components/VTextField/VTextField.mjs.map +1 -1
- package/lib/components/VTextField/VTextField.sass +5 -5
- package/lib/components/VTextarea/VTextarea.css +7 -4
- package/lib/components/VTextarea/VTextarea.sass +9 -5
- package/lib/components/VTimeline/VTimeline.css +187 -48
- package/lib/components/VTimeline/VTimeline.mjs +27 -11
- package/lib/components/VTimeline/VTimeline.mjs.map +1 -1
- package/lib/components/VTimeline/VTimeline.sass +196 -51
- package/lib/components/VTimeline/VTimelineDivider.mjs +2 -1
- package/lib/components/VTimeline/VTimelineDivider.mjs.map +1 -1
- package/lib/components/VTimeline/_variables.scss +2 -1
- package/lib/components/VToolbar/VToolbar.css +8 -1
- package/lib/components/VToolbar/VToolbar.mjs +8 -11
- package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
- package/lib/components/VToolbar/VToolbar.sass +2 -1
- package/lib/components/VToolbar/VToolbarItems.mjs +0 -1
- package/lib/components/VToolbar/VToolbarItems.mjs.map +1 -1
- package/lib/components/VToolbar/_variables.scss +13 -1
- package/lib/components/VWindow/VWindow.mjs +0 -8
- package/lib/components/VWindow/VWindow.mjs.map +1 -1
- package/lib/components/index.d.ts +9025 -8077
- package/lib/composables/defaults.mjs +2 -2
- package/lib/composables/defaults.mjs.map +1 -1
- package/lib/composables/form.mjs +18 -5
- package/lib/composables/form.mjs.map +1 -1
- package/lib/composables/forwardRef.mjs +10 -6
- package/lib/composables/forwardRef.mjs.map +1 -1
- package/lib/composables/group.mjs +14 -6
- package/lib/composables/group.mjs.map +1 -1
- package/lib/composables/index.mjs.map +1 -1
- package/lib/composables/items.mjs +56 -0
- package/lib/composables/items.mjs.map +1 -0
- package/lib/composables/layout.mjs +7 -3
- package/lib/composables/layout.mjs.map +1 -1
- package/lib/composables/loader.mjs.map +1 -1
- package/lib/composables/nested/nested.mjs +27 -14
- package/lib/composables/nested/nested.mjs.map +1 -1
- package/lib/composables/nested/openStrategies.mjs +63 -36
- package/lib/composables/nested/openStrategies.mjs.map +1 -1
- package/lib/composables/nested/selectStrategies.mjs +163 -122
- package/lib/composables/nested/selectStrategies.mjs.map +1 -1
- package/lib/composables/overlay.mjs +5 -1
- package/lib/composables/overlay.mjs.map +1 -1
- package/lib/composables/proxiedModel.mjs.map +1 -1
- package/lib/composables/resizeObserver.mjs +1 -9
- package/lib/composables/resizeObserver.mjs.map +1 -1
- package/lib/composables/router.mjs +17 -5
- package/lib/composables/router.mjs.map +1 -1
- package/lib/composables/selectLink.mjs +19 -0
- package/lib/composables/selectLink.mjs.map +1 -0
- package/lib/composables/stack.mjs +7 -4
- package/lib/composables/stack.mjs.map +1 -1
- package/lib/composables/validation.mjs +6 -3
- package/lib/composables/validation.mjs.map +1 -1
- package/lib/composables/variant.mjs +0 -3
- package/lib/composables/variant.mjs.map +1 -1
- package/lib/directives/ripple/index.mjs +15 -3
- package/lib/directives/ripple/index.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +12 -7
- package/lib/framework.mjs.map +1 -1
- package/lib/index.d.ts +18 -2
- package/lib/locale/ca.mjs +9 -9
- package/lib/locale/ca.mjs.map +1 -1
- package/lib/styles/generic/_colors.scss +0 -1
- package/lib/styles/main.css +400 -392
- package/lib/styles/settings/_utilities.scss +54 -26
- package/lib/styles/tools/_states.sass +2 -1
- package/lib/util/defineComponent.mjs +37 -6
- package/lib/util/defineComponent.mjs.map +1 -1
- package/lib/util/getCurrentInstance.mjs +1 -1
- package/lib/util/getCurrentInstance.mjs.map +1 -1
- package/lib/util/helpers.mjs.map +1 -1
- package/package.json +31 -29
|
@@ -7,6 +7,7 @@ $icon-btn-margin-start-multiplier: -9 !default;
|
|
|
7
7
|
$icon-btn-margin-end-multiplier: 4.5 !default;
|
|
8
8
|
$icon-btn-margin-start: calc(var(--v-btn-height) / #{$icon-btn-margin-start-multiplier}) !default;
|
|
9
9
|
$icon-btn-margin-end: calc(var(--v-btn-height) / #{$icon-btn-margin-end-multiplier}) !default;
|
|
10
|
+
$icon-btn-stacked-margin: 4px !default;
|
|
10
11
|
$icon-left-margin-left: map.get(settings.$grid-gutters, 'md') !default;
|
|
11
12
|
$icon-letter-spacing: normal !default;
|
|
12
13
|
$icon-line-height: 1 !default;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
.v-input {
|
|
2
2
|
display: grid;
|
|
3
3
|
flex: 1 1 auto;
|
|
4
|
+
font-size: 1rem;
|
|
5
|
+
font-weight: 400;
|
|
4
6
|
}
|
|
5
7
|
.v-input--disabled {
|
|
6
8
|
pointer-events: none;
|
|
@@ -34,7 +36,7 @@
|
|
|
34
36
|
|
|
35
37
|
.v-input--horizontal {
|
|
36
38
|
grid-template-areas: "prepend control append" "a messages b";
|
|
37
|
-
grid-template-columns: max-content
|
|
39
|
+
grid-template-columns: max-content minmax(0, 1fr) max-content;
|
|
38
40
|
grid-template-rows: auto auto;
|
|
39
41
|
}
|
|
40
42
|
.v-input--horizontal .v-input__prepend {
|
|
@@ -33,13 +33,12 @@ export const VInput = genericComponent()({
|
|
|
33
33
|
props: { ...makeVInputProps()
|
|
34
34
|
},
|
|
35
35
|
emits: {
|
|
36
|
-
'click:prepend': e => true,
|
|
37
|
-
'click:append': e => true,
|
|
38
36
|
'update:modelValue': val => true
|
|
39
37
|
},
|
|
40
38
|
|
|
41
39
|
setup(props, _ref) {
|
|
42
40
|
let {
|
|
41
|
+
attrs,
|
|
43
42
|
slots,
|
|
44
43
|
emit
|
|
45
44
|
} = _ref;
|
|
@@ -85,14 +84,14 @@ export const VInput = genericComponent()({
|
|
|
85
84
|
}, [hasPrepend && _createVNode("div", {
|
|
86
85
|
"class": "v-input__prepend"
|
|
87
86
|
}, [slots == null ? void 0 : (_slots$prepend = slots.prepend) == null ? void 0 : _slots$prepend.call(slots, slotProps.value), props.prependIcon && _createVNode(VIcon, {
|
|
88
|
-
"onClick":
|
|
87
|
+
"onClick": attrs['onClick:prepend'],
|
|
89
88
|
"icon": props.prependIcon
|
|
90
89
|
}, null)]), slots.default && _createVNode("div", {
|
|
91
90
|
"class": "v-input__control"
|
|
92
91
|
}, [(_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots, slotProps.value)]), hasAppend && _createVNode("div", {
|
|
93
92
|
"class": "v-input__append"
|
|
94
93
|
}, [slots == null ? void 0 : (_slots$append = slots.append) == null ? void 0 : _slots$append.call(slots, slotProps.value), props.appendIcon && _createVNode(VIcon, {
|
|
95
|
-
"onClick":
|
|
94
|
+
"onClick": attrs['onClick:append'],
|
|
96
95
|
"icon": props.appendIcon
|
|
97
96
|
}, null)]), hasDetails && _createVNode("div", {
|
|
98
97
|
"class": "v-input__details"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/VInput/VInput.tsx"],"names":["VIcon","VMessages","makeDensityProps","useDensity","makeValidationProps","useValidation","computed","genericComponent","getUid","pick","propsFactory","useRender","makeVInputProps","id","String","appendIcon","prependIcon","hideDetails","Boolean","messages","type","Array","default","direction","validator","v","includes","VInput","name","props","emits","
|
|
1
|
+
{"version":3,"sources":["../../../src/components/VInput/VInput.tsx"],"names":["VIcon","VMessages","makeDensityProps","useDensity","makeValidationProps","useValidation","computed","genericComponent","getUid","pick","propsFactory","useRender","makeVInputProps","id","String","appendIcon","prependIcon","hideDetails","Boolean","messages","type","Array","default","direction","validator","v","includes","VInput","name","props","emits","val","setup","attrs","slots","emit","densityClasses","errorMessages","isDirty","isDisabled","isReadonly","isPristine","isValid","isValidating","reset","resetValidation","validate","validationClasses","uid","slotProps","hasPrepend","prepend","hasAppend","append","hasMessages","length","value","hasDetails","message","details","filterInputProps","Object","keys"],"mappings":"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","sourcesContent":["// Styles\nimport './VInput.sass'\n\n// Components\nimport { VIcon } from '@/components/VIcon'\nimport { VMessages } from '@/components/VMessages'\n\n// Composables\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeValidationProps, useValidation } from '@/composables/validation'\n\n// Utilities\nimport { computed } from 'vue'\nimport { genericComponent, getUid, pick, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { ComputedRef, ExtractPropTypes, PropType, Ref } from 'vue'\nimport type { MakeSlots } from '@/util'\n\nexport interface VInputSlot {\n id: ComputedRef<string>\n isDirty: ComputedRef<boolean>\n isDisabled: ComputedRef<boolean>\n isReadonly: ComputedRef<boolean>\n isPristine: Ref<boolean>\n isValid: ComputedRef<boolean | null>\n isValidating: Ref<boolean>\n reset: () => void\n resetValidation: () => void\n validate: () => void\n}\n\nexport const makeVInputProps = propsFactory({\n id: String,\n appendIcon: String,\n prependIcon: String,\n hideDetails: [Boolean, String] as PropType<boolean | 'auto'>,\n messages: {\n type: [Array, String] as PropType<string | string[]>,\n default: () => ([]),\n },\n direction: {\n type: String as PropType<'horizontal' | 'vertical'>,\n default: 'horizontal',\n validator: (v: any) => ['horizontal', 'vertical'].includes(v),\n },\n\n ...makeDensityProps(),\n ...makeValidationProps(),\n})\n\nexport type VInputSlots = MakeSlots<{\n default: [VInputSlot]\n prepend: [VInputSlot]\n append: [VInputSlot]\n details: [VInputSlot]\n}>\n\nexport const VInput = genericComponent<new <T>() => {\n $slots: VInputSlots\n}>()({\n name: 'VInput',\n\n props: {\n ...makeVInputProps(),\n },\n\n emits: {\n 'update:modelValue': (val: any) => true,\n },\n\n setup (props, { attrs, slots, emit }) {\n const { densityClasses } = useDensity(props)\n const {\n errorMessages,\n isDirty,\n isDisabled,\n isReadonly,\n isPristine,\n isValid,\n isValidating,\n reset,\n resetValidation,\n validate,\n validationClasses,\n } = useValidation(props)\n\n const uid = getUid()\n const id = computed(() => props.id || `input-${uid}`)\n\n const slotProps = computed<VInputSlot>(() => ({\n id,\n isDirty,\n isDisabled,\n isReadonly,\n isPristine,\n isValid,\n isValidating,\n reset,\n resetValidation,\n validate,\n }))\n\n useRender(() => {\n const hasPrepend = !!(slots.prepend || props.prependIcon)\n const hasAppend = !!(slots.append || props.appendIcon)\n const hasMessages = !!(\n props.messages?.length ||\n errorMessages.value.length\n )\n const hasDetails = !props.hideDetails || (\n props.hideDetails === 'auto' &&\n hasMessages\n )\n\n return (\n <div class={[\n 'v-input',\n `v-input--${props.direction}`,\n densityClasses.value,\n validationClasses.value,\n ]}\n >\n { hasPrepend && (\n <div\n class=\"v-input__prepend\"\n >\n { slots?.prepend?.(slotProps.value) }\n\n { props.prependIcon && (\n <VIcon\n onClick={ attrs['onClick:prepend'] }\n icon={ props.prependIcon }\n />\n ) }\n </div>\n ) }\n\n { slots.default && (\n <div class=\"v-input__control\">\n { slots.default?.(slotProps.value) }\n </div>\n ) }\n\n { hasAppend && (\n <div\n class=\"v-input__append\"\n >\n { slots?.append?.(slotProps.value) }\n\n { props.appendIcon && (\n <VIcon\n onClick={ attrs['onClick:append'] }\n icon={ props.appendIcon }\n />\n ) }\n </div>\n ) }\n\n { hasDetails && (\n <div class=\"v-input__details\">\n <VMessages\n active={ hasMessages }\n messages={ errorMessages.value.length > 0\n ? errorMessages.value\n : props.messages\n }\n v-slots={{ message: slots.message }}\n />\n\n { slots.details?.(slotProps.value) }\n </div>\n ) }\n </div>\n )\n })\n\n return {\n reset,\n resetValidation,\n validate,\n }\n },\n})\n\nexport type VInput = InstanceType<typeof VInput>\n\nexport function filterInputProps (props: ExtractPropTypes<ReturnType<typeof makeVInputProps>>) {\n return pick(props, Object.keys(VInput.props) as any)\n}\n"],"file":"VInput.mjs"}
|
|
@@ -5,6 +5,8 @@
|
|
|
5
5
|
.v-input
|
|
6
6
|
display: grid
|
|
7
7
|
flex: 1 1 auto
|
|
8
|
+
font-size: $input-font-size
|
|
9
|
+
font-weight: $input-font-weight
|
|
8
10
|
|
|
9
11
|
&--disabled
|
|
10
12
|
pointer-events: none
|
|
@@ -27,7 +29,7 @@
|
|
|
27
29
|
|
|
28
30
|
.v-input--horizontal
|
|
29
31
|
grid-template-areas: "prepend control append" "a messages b"
|
|
30
|
-
grid-template-columns: max-content
|
|
32
|
+
grid-template-columns: max-content minmax(0, 1fr) max-content
|
|
31
33
|
grid-template-rows: auto auto
|
|
32
34
|
|
|
33
35
|
.v-input__prepend
|
|
@@ -1,8 +1,12 @@
|
|
|
1
|
+
@use 'sass:map';
|
|
1
2
|
@use '../../styles/settings';
|
|
3
|
+
@use '../../styles/tools';
|
|
2
4
|
|
|
3
5
|
// CONTROL
|
|
4
6
|
$input-density: ('default': 0, 'comfortable': -2, 'compact': -4) !default;
|
|
5
7
|
$input-control-height: 56px !default;
|
|
8
|
+
$input-font-size: tools.map-deep-get(settings.$typography, 'body-1', 'size') !default;
|
|
9
|
+
$input-font-weight: tools.map-deep-get(settings.$typography, 'body-1', 'weight') !default;
|
|
6
10
|
|
|
7
11
|
// DETAILS
|
|
8
12
|
$input-details-font-size: .75rem !default;
|
|
@@ -24,8 +24,9 @@
|
|
|
24
24
|
pointer-events: none;
|
|
25
25
|
user-select: none;
|
|
26
26
|
}
|
|
27
|
-
.v-list--
|
|
28
|
-
|
|
27
|
+
.v-list--nav {
|
|
28
|
+
padding-inline-start: 8px;
|
|
29
|
+
padding-inline-end: 8px;
|
|
29
30
|
}
|
|
30
31
|
.v-list--rounded {
|
|
31
32
|
border-radius: 4px;
|
|
@@ -54,7 +55,7 @@
|
|
|
54
55
|
font-weight: 500;
|
|
55
56
|
line-height: 1.375rem;
|
|
56
57
|
padding-inline-end: 16px;
|
|
57
|
-
min-height:
|
|
58
|
+
min-height: 40px;
|
|
58
59
|
transition: 0.2s min-height cubic-bezier(0.4, 0, 0.2, 1);
|
|
59
60
|
}
|
|
60
61
|
.v-list-subheader__text {
|
|
@@ -64,17 +65,17 @@
|
|
|
64
65
|
white-space: nowrap;
|
|
65
66
|
}
|
|
66
67
|
.v-list--density-default .v-list-subheader {
|
|
67
|
-
min-height:
|
|
68
|
+
min-height: 40px;
|
|
68
69
|
padding-inline-start: calc(16px + var(--indent-padding)) !important;
|
|
69
70
|
}
|
|
70
71
|
|
|
71
72
|
.v-list--density-comfortable .v-list-subheader {
|
|
72
|
-
min-height:
|
|
73
|
+
min-height: 36px;
|
|
73
74
|
padding-inline-start: calc(16px + var(--indent-padding)) !important;
|
|
74
75
|
}
|
|
75
76
|
|
|
76
77
|
.v-list--density-compact .v-list-subheader {
|
|
77
|
-
min-height:
|
|
78
|
+
min-height: 32px;
|
|
78
79
|
padding-inline-start: calc(16px + var(--indent-padding)) !important;
|
|
79
80
|
}
|
|
80
81
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createVNode as _createVNode } from "vue";
|
|
1
|
+
import { createVNode as _createVNode, resolveDirective as _resolveDirective } from "vue";
|
|
2
2
|
// Styles
|
|
3
3
|
import "./VList.css"; // Components
|
|
4
4
|
|
|
@@ -13,7 +13,9 @@ import { makeTagProps } from "../../composables/tag.mjs";
|
|
|
13
13
|
import { useBackgroundColor } from "../../composables/color.mjs";
|
|
14
14
|
import { makeThemeProps, provideTheme } from "../../composables/theme.mjs";
|
|
15
15
|
import { makeNestedProps, useNested } from "../../composables/nested/nested.mjs";
|
|
16
|
-
import {
|
|
16
|
+
import { makeVariantProps } from "../../composables/variant.mjs";
|
|
17
|
+
import { createList } from "./list.mjs";
|
|
18
|
+
import { provideDefaults } from "../../composables/defaults.mjs"; // Utilities
|
|
17
19
|
|
|
18
20
|
import { computed, toRef } from 'vue';
|
|
19
21
|
import { genericComponent, useRender } from "../../util/index.mjs"; // Types
|
|
@@ -50,17 +52,19 @@ const parseItems = items => {
|
|
|
50
52
|
export const VList = genericComponent()({
|
|
51
53
|
name: 'VList',
|
|
52
54
|
props: {
|
|
53
|
-
|
|
55
|
+
activeColor: String,
|
|
56
|
+
activeClass: String,
|
|
57
|
+
bgColor: String,
|
|
54
58
|
disabled: Boolean,
|
|
55
59
|
lines: {
|
|
56
|
-
type: String,
|
|
60
|
+
type: [Boolean, String],
|
|
57
61
|
default: 'one'
|
|
58
62
|
},
|
|
59
63
|
nav: Boolean,
|
|
60
64
|
items: Array,
|
|
61
65
|
...makeNestedProps({
|
|
62
66
|
selectStrategy: 'single-leaf',
|
|
63
|
-
openStrategy: '
|
|
67
|
+
openStrategy: 'list'
|
|
64
68
|
}),
|
|
65
69
|
...makeBorderProps(),
|
|
66
70
|
...makeDensityProps(),
|
|
@@ -68,7 +72,10 @@ export const VList = genericComponent()({
|
|
|
68
72
|
...makeElevationProps(),
|
|
69
73
|
...makeRoundedProps(),
|
|
70
74
|
...makeTagProps(),
|
|
71
|
-
...makeThemeProps()
|
|
75
|
+
...makeThemeProps(),
|
|
76
|
+
...makeVariantProps({
|
|
77
|
+
variant: 'text'
|
|
78
|
+
})
|
|
72
79
|
},
|
|
73
80
|
emits: {
|
|
74
81
|
'update:selected': val => true,
|
|
@@ -88,7 +95,7 @@ export const VList = genericComponent()({
|
|
|
88
95
|
const {
|
|
89
96
|
backgroundColorClasses,
|
|
90
97
|
backgroundColorStyles
|
|
91
|
-
} = useBackgroundColor(toRef(props, '
|
|
98
|
+
} = useBackgroundColor(toRef(props, 'bgColor'));
|
|
92
99
|
const {
|
|
93
100
|
borderClasses
|
|
94
101
|
} = useBorder(props);
|
|
@@ -108,25 +115,37 @@ export const VList = genericComponent()({
|
|
|
108
115
|
open,
|
|
109
116
|
select
|
|
110
117
|
} = useNested(props);
|
|
118
|
+
const lineClasses = computed(() => props.lines ? `v-list--${props.lines}-line` : undefined);
|
|
119
|
+
const activeColor = toRef(props, 'activeColor');
|
|
120
|
+
const color = toRef(props, 'color');
|
|
111
121
|
createList();
|
|
122
|
+
provideDefaults({
|
|
123
|
+
VListGroup: {
|
|
124
|
+
activeColor,
|
|
125
|
+
color
|
|
126
|
+
},
|
|
127
|
+
VListItem: {
|
|
128
|
+
activeClass: toRef(props, 'activeClass'),
|
|
129
|
+
activeColor,
|
|
130
|
+
color,
|
|
131
|
+
density: toRef(props, 'density'),
|
|
132
|
+
disabled: toRef(props, 'disabled'),
|
|
133
|
+
lines: toRef(props, 'lines'),
|
|
134
|
+
nav: toRef(props, 'nav'),
|
|
135
|
+
variant: toRef(props, 'variant')
|
|
136
|
+
}
|
|
137
|
+
});
|
|
112
138
|
useRender(() => {
|
|
113
139
|
return _createVNode(props.tag, {
|
|
114
140
|
"class": ['v-list', {
|
|
115
141
|
'v-list--disabled': props.disabled,
|
|
116
|
-
'v-list--nav': props.nav
|
|
117
|
-
|
|
118
|
-
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value],
|
|
142
|
+
'v-list--nav': props.nav
|
|
143
|
+
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value],
|
|
119
144
|
"style": [backgroundColorStyles.value, dimensionStyles.value]
|
|
120
145
|
}, {
|
|
121
146
|
default: () => [_createVNode(VListChildren, {
|
|
122
147
|
"items": items.value
|
|
123
|
-
},
|
|
124
|
-
default: slots.default,
|
|
125
|
-
item: slots.item,
|
|
126
|
-
title: slots.title,
|
|
127
|
-
subtitle: slots.subtitle,
|
|
128
|
-
header: slots.header
|
|
129
|
-
})]
|
|
148
|
+
}, slots)]
|
|
130
149
|
});
|
|
131
150
|
});
|
|
132
151
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/VList/VList.tsx"],"names":["VListChildren","makeBorderProps","useBorder","makeDensityProps","useDensity","makeDimensionProps","useDimension","makeElevationProps","useElevation","makeRoundedProps","useRounded","makeTagProps","useBackgroundColor","makeThemeProps","provideTheme","makeNestedProps","useNested","createList","computed","toRef","genericComponent","useRender","parseItems","items","undefined","map","item","type","value","title","$type","$children","props","children","VList","name","
|
|
1
|
+
{"version":3,"sources":["../../../src/components/VList/VList.tsx"],"names":["VListChildren","makeBorderProps","useBorder","makeDensityProps","useDensity","makeDimensionProps","useDimension","makeElevationProps","useElevation","makeRoundedProps","useRounded","makeTagProps","useBackgroundColor","makeThemeProps","provideTheme","makeNestedProps","useNested","makeVariantProps","createList","provideDefaults","computed","toRef","genericComponent","useRender","parseItems","items","undefined","map","item","type","value","title","$type","$children","props","children","VList","name","activeColor","String","activeClass","bgColor","disabled","Boolean","lines","default","nav","Array","selectStrategy","openStrategy","variant","emits","val","setup","slots","themeClasses","backgroundColorClasses","backgroundColorStyles","borderClasses","densityClasses","dimensionStyles","elevationClasses","roundedClasses","open","select","lineClasses","color","VListGroup","VListItem","density"],"mappings":"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","sourcesContent":["// Styles\nimport './VList.sass'\n\n// Components\nimport { VListChildren } from './VListChildren'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { makeNestedProps, useNested } from '@/composables/nested/nested'\nimport { makeVariantProps } from '@/composables/variant'\nimport { createList } from './list'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { genericComponent, useRender } from '@/util'\n\n// Types\nimport type { Prop, PropType } from 'vue'\nimport type { MakeSlots } from '@/util'\nimport type { ListGroupActivatorSlot } from './VListGroup'\n\nexport type ListItem = {\n [key: string]: any\n $type?: 'item' | 'subheader' | 'divider'\n $children?: (string | ListItem)[]\n}\n\nexport type InternalListItem = {\n type?: 'item' | 'subheader' | 'divider'\n props?: Record<string, any>\n children?: InternalListItem[]\n}\n\nconst parseItems = (items?: (string | ListItem)[]): InternalListItem[] | undefined => {\n if (!items) return undefined\n\n return items.map(item => {\n if (typeof item === 'string') return { type: 'item', value: item, title: item }\n\n const { $type, $children, ...props } = item\n\n if ($type === 'subheader') return { type: 'subheader', props }\n if ($type === 'divider') return { type: 'divider', props }\n\n return { type: 'item', props, children: parseItems($children) }\n })\n}\n\nexport const VList = genericComponent<new <T>() => {\n $props: {\n items?: T[]\n }\n $slots: MakeSlots<{\n subheader: []\n header: [ListGroupActivatorSlot]\n item: [T]\n }>\n}>()({\n name: 'VList',\n\n props: {\n activeColor: String,\n activeClass: String,\n bgColor: String,\n disabled: Boolean,\n lines: {\n type: [Boolean, String] as PropType<'one' | 'two' | 'three' | false>,\n default: 'one',\n },\n nav: Boolean,\n items: Array as Prop<ListItem[]>,\n\n ...makeNestedProps({\n selectStrategy: 'single-leaf' as const,\n openStrategy: 'list' as const,\n }),\n ...makeBorderProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'text' } as const),\n },\n\n emits: {\n 'update:selected': (val: string[]) => true,\n 'update:opened': (val: string[]) => true,\n 'click:open': (value: { id: string, value: boolean, path: string[] }) => true,\n 'click:select': (value: { id: string, value: boolean, path: string[] }) => true,\n },\n\n setup (props, { slots }) {\n const items = computed(() => parseItems(props.items))\n const { themeClasses } = provideTheme(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'bgColor'))\n const { borderClasses } = useBorder(props)\n const { densityClasses } = useDensity(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n const { open, select } = useNested(props)\n const lineClasses = computed(() => props.lines ? `v-list--${props.lines}-line` : undefined)\n const activeColor = toRef(props, 'activeColor')\n const color = toRef(props, 'color')\n\n createList()\n\n provideDefaults({\n VListGroup: {\n activeColor,\n color,\n },\n VListItem: {\n activeClass: toRef(props, 'activeClass'),\n activeColor,\n color,\n density: toRef(props, 'density'),\n disabled: toRef(props, 'disabled'),\n lines: toRef(props, 'lines'),\n nav: toRef(props, 'nav'),\n variant: toRef(props, 'variant'),\n },\n })\n\n useRender(() => {\n return (\n <props.tag\n class={[\n 'v-list',\n {\n 'v-list--disabled': props.disabled,\n 'v-list--nav': props.nav,\n },\n themeClasses.value,\n backgroundColorClasses.value,\n borderClasses.value,\n densityClasses.value,\n elevationClasses.value,\n lineClasses.value,\n roundedClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n dimensionStyles.value,\n ]}\n >\n <VListChildren items={ items.value } v-slots={ slots }></VListChildren>\n </props.tag>\n )\n })\n\n return {\n open,\n select,\n }\n },\n})\n\nexport type VList = InstanceType<typeof VList>\n"],"file":"VList.mjs"}
|
|
@@ -18,8 +18,9 @@
|
|
|
18
18
|
pointer-events: none
|
|
19
19
|
user-select: none
|
|
20
20
|
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
&--nav
|
|
22
|
+
padding-inline-start: $list-nav-padding
|
|
23
|
+
padding-inline-end: $list-nav-padding
|
|
23
24
|
|
|
24
25
|
&--rounded
|
|
25
26
|
@include tools.rounded($list-rounded-border-radius)
|
|
@@ -39,7 +39,7 @@ export const VListChildren = genericComponent()({
|
|
|
39
39
|
} = _ref3;
|
|
40
40
|
return slots.header ? slots.header({ ...itemProps,
|
|
41
41
|
...activatorProps
|
|
42
|
-
}) : _createVNode(VListItem, _mergeProps(itemProps, activatorProps),
|
|
42
|
+
}) : _createVNode(VListItem, _mergeProps(itemProps, activatorProps), slots);
|
|
43
43
|
},
|
|
44
44
|
default: () => _createVNode(VListChildren, {
|
|
45
45
|
"items": children
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/VList/VListChildren.tsx"],"names":["VDivider","VListGroup","VListItem","VListSubheader","genericComponent","createList","VListChildren","name","props","items","Array","setup","slots","default","map","children","itemProps","type","value","activator","activatorProps","header","item"],"mappings":";AAAA;SACSA,Q;SACAC,U;SACAC,S;SACAC,c,gCAET;;SACSC,gB;SACAC,U,sBAET;;AAOA,OAAO,MAAMC,aAAa,GAAGF,gBAAgB,GAWxC;AACHG,EAAAA,IAAI,EAAE,eADH;AAGHC,EAAAA,KAAK,EAAE;AACLC,IAAAA,KAAK,EAAEC;AADF,GAHJ;;AAOHC,EAAAA,KAAK,CAAEH,KAAF,QAAoB;AAAA,QAAX;AAAEI,MAAAA;AAAF,KAAW;AACvBP,IAAAA,UAAU;AAEV,WAAO;AAAA;;AAAA,kDAAMO,KAAK,CAACC,OAAZ,qBAAM,qBAAAD,KAAK,CAAX,6CAA2BJ,KAAK,CAACC,KAAjC,qBAA2B,aAAaK,GAAb,CAAiB,SAA0C;AAAA,YAAzC;AAAEC,UAAAA,QAAF;AAAYP,UAAAA,KAAK,EAAEQ,SAAnB;AAA8BC,UAAAA;AAA9B,SAAyC;AAC3F,YAAIA,IAAI,KAAK,SAAb,EAAwB,8BAAqBD,SAArB;AAExB,YAAIC,IAAI,KAAK,WAAb,EAA0B,oCAA2BD,SAA3B,EAAgDJ,KAAhD;AAE1B,eAAOG,QAAQ;AAAA,mBAEHC,SAFG,oBAEHA,SAAS,CAAEE;AAFR;AAKTC,UAAAA,SAAS,EAAE;AAAA,gBAAC;AAAEX,cAAAA,KAAK,EAAEY;AAAT,aAAD;AAAA,mBAA+BR,KAAK,CAACS,MAAN,GACtCT,KAAK,CAACS,MAAN,CAAa,EAAE,GAAGL,SAAL;AAAgB,iBAAGI;AAAnB,aAAb,CADsC,uCAEtBJ,SAFsB,EAELI,cAFK,
|
|
1
|
+
{"version":3,"sources":["../../../src/components/VList/VListChildren.tsx"],"names":["VDivider","VListGroup","VListItem","VListSubheader","genericComponent","createList","VListChildren","name","props","items","Array","setup","slots","default","map","children","itemProps","type","value","activator","activatorProps","header","item"],"mappings":";AAAA;SACSA,Q;SACAC,U;SACAC,S;SACAC,c,gCAET;;SACSC,gB;SACAC,U,sBAET;;AAOA,OAAO,MAAMC,aAAa,GAAGF,gBAAgB,GAWxC;AACHG,EAAAA,IAAI,EAAE,eADH;AAGHC,EAAAA,KAAK,EAAE;AACLC,IAAAA,KAAK,EAAEC;AADF,GAHJ;;AAOHC,EAAAA,KAAK,CAAEH,KAAF,QAAoB;AAAA,QAAX;AAAEI,MAAAA;AAAF,KAAW;AACvBP,IAAAA,UAAU;AAEV,WAAO;AAAA;;AAAA,kDAAMO,KAAK,CAACC,OAAZ,qBAAM,qBAAAD,KAAK,CAAX,6CAA2BJ,KAAK,CAACC,KAAjC,qBAA2B,aAAaK,GAAb,CAAiB,SAA0C;AAAA,YAAzC;AAAEC,UAAAA,QAAF;AAAYP,UAAAA,KAAK,EAAEQ,SAAnB;AAA8BC,UAAAA;AAA9B,SAAyC;AAC3F,YAAIA,IAAI,KAAK,SAAb,EAAwB,8BAAqBD,SAArB;AAExB,YAAIC,IAAI,KAAK,WAAb,EAA0B,oCAA2BD,SAA3B,EAAgDJ,KAAhD;AAE1B,eAAOG,QAAQ;AAAA,mBAEHC,SAFG,oBAEHA,SAAS,CAAEE;AAFR;AAKTC,UAAAA,SAAS,EAAE;AAAA,gBAAC;AAAEX,cAAAA,KAAK,EAAEY;AAAT,aAAD;AAAA,mBAA+BR,KAAK,CAACS,MAAN,GACtCT,KAAK,CAACS,MAAN,CAAa,EAAE,GAAGL,SAAL;AAAgB,iBAAGI;AAAnB,aAAb,CADsC,uCAEtBJ,SAFsB,EAELI,cAFK,GAEsBR,KAFtB,CAA/B;AAAA,WALF;AAQTC,UAAAA,OAAO,EAAE;AAAA,qBACgBE;AADhB,aACqCH,KADrC;AARA,aAcbA,KAAK,CAACU,IAAN,GAAaV,KAAK,CAACU,IAAN,CAAWN,SAAX,CAAb,2BAAqDA,SAArD,EAA2EJ,KAA3E,CAdF;AAgBD,OArBiC,CAA3B;AAAA,KAAP;AAsBD;;AAhCE,CAXwC,CAAtC","sourcesContent":["// Components\nimport { VDivider } from '../VDivider'\nimport { VListGroup } from './VListGroup'\nimport { VListItem } from './VListItem'\nimport { VListSubheader } from './VListSubheader'\n\n// Utilities\nimport { genericComponent } from '@/util'\nimport { createList } from './list'\n\n// Types\nimport type { InternalListItem } from './VList'\nimport type { ListItemSubtitleSlot, ListItemTitleSlot } from './VListItem'\nimport type { ListGroupActivatorSlot } from './VListGroup'\nimport type { MakeSlots } from '@/util'\nimport type { Prop } from 'vue'\n\nexport const VListChildren = genericComponent<new <T extends InternalListItem>() => {\n $props: {\n items?: T[]\n }\n $slots: MakeSlots<{\n default: []\n header: [ListGroupActivatorSlot]\n item: [T]\n title: [ListItemTitleSlot]\n subtitle: [ListItemSubtitleSlot]\n }>\n}>()({\n name: 'VListChildren',\n\n props: {\n items: Array as Prop<InternalListItem[]>,\n },\n\n setup (props, { slots }) {\n createList()\n\n return () => slots.default?.() ?? props.items?.map(({ children, props: itemProps, type }) => {\n if (type === 'divider') return <VDivider {...itemProps} />\n\n if (type === 'subheader') return <VListSubheader {...itemProps} v-slots={ slots } />\n\n return children ? (\n <VListGroup\n value={ itemProps?.value }\n >\n {{\n activator: ({ props: activatorProps }) => slots.header\n ? slots.header({ ...itemProps, ...activatorProps })\n : <VListItem { ...itemProps } { ...activatorProps } v-slots={ slots } />,\n default: () => (\n <VListChildren items={ children } v-slots={ slots } />\n ),\n }}\n </VListGroup>\n ) : (\n slots.item ? slots.item(itemProps) : <VListItem { ...itemProps } v-slots={ slots } />\n )\n })\n },\n})\n"],"file":"VListChildren.mjs"}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { withDirectives as _withDirectives, vShow as _vShow, createVNode as _createVNode } from "vue";
|
|
2
2
|
// Components
|
|
3
|
+
import { VDefaultsProvider } from "../VDefaultsProvider/index.mjs";
|
|
3
4
|
import { VExpandTransition } from "../transitions/index.mjs"; // Composables
|
|
4
5
|
|
|
5
6
|
import { useList } from "./list.mjs";
|
|
6
7
|
import { makeTagProps } from "../../composables/tag.mjs";
|
|
7
8
|
import { useNestedGroupActivator, useNestedItem } from "../../composables/nested/nested.mjs"; // Utilities
|
|
8
9
|
|
|
9
|
-
import { computed,
|
|
10
|
-
import { genericComponent } from "../../util/index.mjs"; // Types
|
|
10
|
+
import { computed, toRef } from 'vue';
|
|
11
|
+
import { defineComponent, genericComponent } from "../../util/index.mjs"; // Types
|
|
11
12
|
|
|
12
13
|
const VListGroupActivator = defineComponent({
|
|
13
14
|
name: 'VListGroupActivator',
|
|
@@ -28,6 +29,8 @@ const VListGroupActivator = defineComponent({
|
|
|
28
29
|
export const VListGroup = genericComponent()({
|
|
29
30
|
name: 'VListGroup',
|
|
30
31
|
props: {
|
|
32
|
+
activeColor: String,
|
|
33
|
+
color: String,
|
|
31
34
|
collapseIcon: {
|
|
32
35
|
type: String,
|
|
33
36
|
default: '$collapse'
|
|
@@ -54,11 +57,17 @@ export const VListGroup = genericComponent()({
|
|
|
54
57
|
open(!isOpen.value, e);
|
|
55
58
|
};
|
|
56
59
|
|
|
57
|
-
const activatorProps = computed(() =>
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
60
|
+
const activatorProps = computed(() => {
|
|
61
|
+
var _props$activeColor;
|
|
62
|
+
|
|
63
|
+
return {
|
|
64
|
+
onClick,
|
|
65
|
+
active: isOpen.value,
|
|
66
|
+
appendIcon: isOpen.value ? props.collapseIcon : props.expandIcon,
|
|
67
|
+
class: 'v-list-group__header',
|
|
68
|
+
color: isOpen.value ? (_props$activeColor = props.activeColor) != null ? _props$activeColor : props.color : undefined
|
|
69
|
+
};
|
|
70
|
+
});
|
|
62
71
|
return () => {
|
|
63
72
|
var _slots$default2;
|
|
64
73
|
|
|
@@ -67,9 +76,18 @@ export const VListGroup = genericComponent()({
|
|
|
67
76
|
'v-list-group--prepend': list == null ? void 0 : list.hasPrepend.value
|
|
68
77
|
}]
|
|
69
78
|
}, {
|
|
70
|
-
default: () => [slots.activator && _createVNode(
|
|
71
|
-
|
|
72
|
-
|
|
79
|
+
default: () => [slots.activator && _createVNode(VDefaultsProvider, {
|
|
80
|
+
"defaults": {
|
|
81
|
+
VListItemIcon: {
|
|
82
|
+
color: activatorProps.value.color
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}, {
|
|
86
|
+
default: () => [_createVNode(VListGroupActivator, null, {
|
|
87
|
+
default: () => [slots.activator({
|
|
88
|
+
props: activatorProps.value,
|
|
89
|
+
isOpen
|
|
90
|
+
})]
|
|
73
91
|
})]
|
|
74
92
|
}), _createVNode(VExpandTransition, null, {
|
|
75
93
|
default: () => [_withDirectives(_createVNode("div", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/VList/VListGroup.tsx"],"names":["VExpandTransition","useList","makeTagProps","useNestedGroupActivator","useNestedItem","computed","
|
|
1
|
+
{"version":3,"sources":["../../../src/components/VList/VListGroup.tsx"],"names":["VDefaultsProvider","VExpandTransition","useList","makeTagProps","useNestedGroupActivator","useNestedItem","computed","toRef","defineComponent","genericComponent","VListGroupActivator","name","setup","_","slots","default","VListGroup","props","activeColor","String","color","collapseIcon","type","expandIcon","value","isOpen","open","list","onClick","e","activatorProps","active","appendIcon","class","undefined","hasPrepend","activator","VListItemIcon"],"mappings":";AAAA;SACSA,iB;SACAC,iB,oCAET;;SACSC,O;SACAC,Y;SACAC,uB,EAAyBC,a,+CAElC;;AACA,SAASC,QAAT,EAAmBC,KAAnB,QAAgC,KAAhC;SACSC,e,EAAiBC,gB,gCAE1B;;AAcA,MAAMC,mBAAmB,GAAGF,eAAe,CAAC;AAC1CG,EAAAA,IAAI,EAAE,qBADoC;;AAG1CC,EAAAA,KAAK,CAAEC,CAAF,QAAgB;AAAA,QAAX;AAAEC,MAAAA;AAAF,KAAW;AACnBV,IAAAA,uBAAuB;AAEvB,WAAO;AAAA;;AAAA,+BAAMU,KAAK,CAACC,OAAZ,qBAAM,oBAAAD,KAAK,CAAX;AAAA,KAAP;AACD;;AAPyC,CAAD,CAA3C;AAUA,OAAO,MAAME,UAAU,GAAGP,gBAAgB,GAQrC;AACHE,EAAAA,IAAI,EAAE,YADH;AAGHM,EAAAA,KAAK,EAAE;AACLC,IAAAA,WAAW,EAAEC,MADR;AAELC,IAAAA,KAAK,EAAED,MAFF;AAGLE,IAAAA,YAAY,EAAE;AACZC,MAAAA,IAAI,EAAEH,MADM;AAEZJ,MAAAA,OAAO,EAAE;AAFG,KAHT;AAOLQ,IAAAA,UAAU,EAAE;AACVD,MAAAA,IAAI,EAAEH,MADI;AAEVJ,MAAAA,OAAO,EAAE;AAFC,KAPP;AAWLS,IAAAA,KAAK,EAAE,IAXF;AAaL,OAAGrB,YAAY;AAbV,GAHJ;;AAmBHS,EAAAA,KAAK,CAAEK,KAAF,SAAoB;AAAA,QAAX;AAAEH,MAAAA;AAAF,KAAW;AACvB,UAAM;AAAEW,MAAAA,MAAF;AAAUC,MAAAA;AAAV,QAAmBrB,aAAa,CAACE,KAAK,CAACU,KAAD,EAAQ,OAAR,CAAN,EAAwB,IAAxB,CAAtC;AACA,UAAMU,IAAI,GAAGzB,OAAO,EAApB;;AAEA,UAAM0B,OAAO,GAAIC,CAAD,IAAc;AAC5BH,MAAAA,IAAI,CAAC,CAACD,MAAM,CAACD,KAAT,EAAgBK,CAAhB,CAAJ;AACD,KAFD;;AAIA,UAAMC,cAAoD,GAAGxB,QAAQ,CAAC;AAAA;;AAAA,aAAO;AAC3EsB,QAAAA,OAD2E;AAE3EG,QAAAA,MAAM,EAAEN,MAAM,CAACD,KAF4D;AAG3EQ,QAAAA,UAAU,EAAEP,MAAM,CAACD,KAAP,GAAeP,KAAK,CAACI,YAArB,GAAoCJ,KAAK,CAACM,UAHqB;AAI3EU,QAAAA,KAAK,EAAE,sBAJoE;AAK3Eb,QAAAA,KAAK,EAAEK,MAAM,CAACD,KAAP,yBAAeP,KAAK,CAACC,WAArB,iCAAoCD,KAAK,CAACG,KAA1C,GAAkDc;AALkB,OAAP;AAAA,KAAD,CAArE;AAQA,WAAO,MAAM;AAAA;;AACX;AAAA,iBAEW,CACL,cADK,EAEL;AACE,mCAAyBP,IAAzB,oBAAyBA,IAAI,CAAEQ,UAAN,CAAiBX;AAD5C,SAFK;AAFX;AAAA,wBASMV,KAAK,CAACsB,SAAN;AAAA,sBAEY;AACRC,YAAAA,aAAa,EAAE;AAAEjB,cAAAA,KAAK,EAAEU,cAAc,CAACN,KAAf,CAAqBJ;AAA9B;AADP;AAFZ;AAAA;AAAA,4BAOMN,KAAK,CAACsB,SAAN,CAAgB;AAAEnB,cAAAA,KAAK,EAAEa,cAAc,CAACN,KAAxB;AAA+BC,cAAAA;AAA/B,aAAhB,CAPN;AAAA;AAAA,UATN;AAAA;AAAA,qBAqBiB;AArBjB,iCAsBUX,KAAK,CAACC,OAtBhB,qBAsBU,qBAAAD,KAAK,CAtBf,cAqB+CW,MAAM,CAACD,KArBtD;AAAA;AAAA;AA2BD,KA5BD;AA6BD;;AAhEE,CARqC,CAAnC","sourcesContent":["// Components\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VExpandTransition } from '@/components/transitions'\n\n// Composables\nimport { useList } from './list'\nimport { makeTagProps } from '@/composables/tag'\nimport { useNestedGroupActivator, useNestedItem } from '@/composables/nested/nested'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { defineComponent, genericComponent } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\nimport type { MakeSlots } from '@/util'\nimport type { InternalListItem } from './VList'\n\nexport type ListGroupActivatorSlot = {\n props: {\n onClick: (e: Event) => void\n appendIcon: string\n class: string\n color?: string\n }\n}\n\nconst VListGroupActivator = defineComponent({\n name: 'VListGroupActivator',\n\n setup (_, { slots }) {\n useNestedGroupActivator()\n\n return () => slots.default?.()\n },\n})\n\nexport const VListGroup = genericComponent<new <T extends InternalListItem>() => {\n $props: {\n items?: T[]\n }\n $slots: MakeSlots<{\n activator: [ListGroupActivatorSlot]\n default: []\n }>\n}>()({\n name: 'VListGroup',\n\n props: {\n activeColor: String,\n color: String,\n collapseIcon: {\n type: String,\n default: '$collapse',\n },\n expandIcon: {\n type: String,\n default: '$expand',\n },\n value: null,\n\n ...makeTagProps(),\n },\n\n setup (props, { slots }) {\n const { isOpen, open } = useNestedItem(toRef(props, 'value'), true)\n const list = useList()\n\n const onClick = (e: Event) => {\n open(!isOpen.value, e)\n }\n\n const activatorProps: Ref<ListGroupActivatorSlot['props']> = computed(() => ({\n onClick,\n active: isOpen.value,\n appendIcon: isOpen.value ? props.collapseIcon : props.expandIcon,\n class: 'v-list-group__header',\n color: isOpen.value ? props.activeColor ?? props.color : undefined,\n }))\n\n return () => {\n return (\n <props.tag\n class={[\n 'v-list-group',\n {\n 'v-list-group--prepend': list?.hasPrepend.value,\n },\n ]}\n >\n { slots.activator && (\n <VDefaultsProvider\n defaults={{\n VListItemIcon: { color: activatorProps.value.color },\n }}\n >\n <VListGroupActivator>\n { slots.activator({ props: activatorProps.value, isOpen }) }\n </VListGroupActivator>\n </VDefaultsProvider>\n ) }\n <VExpandTransition>\n <div class=\"v-list-group__items\" v-show={isOpen.value}>\n { slots.default?.() }\n </div>\n </VExpandTransition>\n </props.tag>\n )\n }\n },\n})\n"],"file":"VListGroup.mjs"}
|