@vuetify/nightly 3.0.0-beta.10 → 3.0.0-beta.13
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 +13 -2
- package/dist/json/attributes.json +37 -29
- package/dist/json/importMap.json +46 -46
- package/dist/json/tags.json +10 -8
- package/dist/json/web-types.json +101 -87
- package/dist/vuetify.css +545 -441
- package/dist/vuetify.d.ts +12095 -10059
- package/dist/vuetify.esm.js +401 -266
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +371 -236
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +3 -3
- package/dist/vuetify.min.js +496 -490
- package/dist/vuetify.min.js.map +1 -1
- package/lib/blueprints/index.d.ts +171 -0
- package/lib/blueprints/md1.d.ts +167 -0
- package/lib/blueprints/md2.d.ts +167 -0
- package/lib/blueprints/md3.d.ts +167 -0
- package/lib/components/VAlert/index.d.ts +185 -0
- package/lib/components/VApp/index.d.ts +83 -0
- package/lib/components/VAppBar/VAppBar.css +3 -0
- package/lib/components/VAppBar/VAppBar.sass +3 -0
- package/lib/components/VAppBar/index.d.ts +156 -0
- package/lib/components/VAutocomplete/VAutocomplete.mjs +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/index.d.ts +1569 -0
- package/lib/components/VAvatar/VAvatar.css +44 -2
- package/lib/components/VAvatar/VAvatar.mjs +16 -12
- package/lib/components/VAvatar/VAvatar.mjs.map +1 -1
- package/lib/components/VAvatar/VAvatar.sass +5 -1
- package/lib/components/VAvatar/_variables.scss +9 -4
- package/lib/components/VAvatar/index.d.ts +80 -0
- package/lib/components/VBadge/index.d.ts +123 -0
- package/lib/components/VBanner/index.d.ts +122 -0
- package/lib/components/VBottomNavigation/index.d.ts +143 -0
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs +2 -2
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/index.d.ts +301 -0
- package/lib/components/VBtn/VBtn.css +8 -3
- package/lib/components/VBtn/VBtn.mjs +16 -6
- package/lib/components/VBtn/VBtn.mjs.map +1 -1
- package/lib/components/VBtn/index.d.ts +210 -0
- package/lib/components/VBtnGroup/index.d.ts +65 -0
- package/lib/components/VBtnToggle/VBtnToggle.mjs +1 -3
- package/lib/components/VBtnToggle/VBtnToggle.mjs.map +1 -1
- package/lib/components/VBtnToggle/index.d.ts +175 -0
- package/lib/components/VCard/VCard.css +8 -3
- package/lib/components/VCard/index.d.ts +230 -0
- package/lib/components/VCarousel/VCarousel.mjs +3 -3
- package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
- package/lib/components/VCarousel/index.d.ts +80 -0
- package/lib/components/VCheckbox/index.d.ts +291 -0
- package/lib/components/VChip/index.d.ts +195 -0
- package/lib/components/VChipGroup/index.d.ts +89 -0
- package/lib/components/VCode/index.d.ts +19 -0
- package/lib/components/VColorPicker/index.d.ts +116 -0
- package/lib/components/VCombobox/VCombobox.mjs +1 -1
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/index.d.ts +1590 -0
- package/lib/components/VCounter/index.d.ts +223 -0
- package/lib/components/VDefaultsProvider/index.d.ts +26 -0
- package/lib/components/VDialog/VDialog.css +2 -0
- package/lib/components/VDialog/VDialog.mjs +17 -12
- package/lib/components/VDialog/VDialog.mjs.map +1 -1
- package/lib/components/VDialog/VDialog.sass +2 -0
- package/lib/components/VDialog/index.d.ts +859 -0
- package/lib/components/VDivider/index.d.ts +22 -0
- package/lib/components/VExpansionPanel/VExpansionPanel.css +8 -3
- package/lib/components/VExpansionPanel/index.d.ts +206 -0
- package/lib/components/VField/VField.css +27 -24
- package/lib/components/VField/VField.mjs +1 -1
- package/lib/components/VField/VField.mjs.map +1 -1
- package/lib/components/VField/VField.sass +23 -21
- package/lib/components/VField/index.d.ts +332 -0
- package/lib/components/VFileInput/VFileInput.mjs +3 -3
- package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
- package/lib/components/VFileInput/index.d.ts +236 -0
- package/lib/components/VFooter/VFooter.css +7 -0
- package/lib/components/VFooter/VFooter.sass +1 -1
- package/lib/components/VFooter/_variables.scss +11 -0
- package/lib/components/VFooter/index.d.ts +76 -0
- package/lib/components/VForm/index.d.ts +72 -0
- package/lib/components/VGrid/index.d.ts +154 -0
- package/lib/components/VHover/index.d.ts +30 -0
- package/lib/components/VIcon/index.d.ts +124 -0
- package/lib/components/VImg/VImg.mjs +29 -27
- package/lib/components/VImg/VImg.mjs.map +1 -1
- package/lib/components/VImg/index.d.ts +89 -0
- package/lib/components/VInput/VInput.mjs +4 -4
- package/lib/components/VInput/VInput.mjs.map +1 -1
- package/lib/components/VInput/index.d.ts +325 -0
- package/lib/components/VItemGroup/index.d.ts +210 -0
- package/lib/components/VKbd/index.d.ts +19 -0
- package/lib/components/VLabel/VLabel.css +4 -1
- package/lib/components/VLabel/VLabel.mjs +4 -1
- package/lib/components/VLabel/VLabel.mjs.map +1 -1
- package/lib/components/VLabel/VLabel.sass +3 -1
- package/lib/components/VLabel/index.d.ts +16 -0
- package/lib/components/VLayout/index.d.ts +75 -0
- package/lib/components/VLazy/index.d.ts +85 -0
- package/lib/components/VList/VListItem.css +8 -3
- package/lib/components/VList/VListItem.mjs +4 -4
- package/lib/components/VList/VListItem.mjs.map +1 -1
- package/lib/components/VList/index.d.ts +1250 -0
- package/lib/components/VLocaleProvider/index.d.ts +23 -0
- package/lib/components/VMain/index.d.ts +26 -0
- package/lib/components/VMenu/VMenu.mjs +16 -3
- package/lib/components/VMenu/VMenu.mjs.map +1 -1
- package/lib/components/VMenu/index.d.ts +817 -0
- package/lib/components/VMessages/index.d.ts +234 -0
- package/lib/components/VNavigationDrawer/index.d.ts +148 -0
- package/lib/components/VNoSsr/index.d.ts +7 -0
- package/lib/components/VOverlay/VOverlay.mjs +4 -3
- package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
- package/lib/components/VOverlay/index.d.ts +579 -0
- package/lib/components/VOverlay/useActivator.mjs +27 -1
- package/lib/components/VOverlay/useActivator.mjs.map +1 -1
- package/lib/components/VPagination/VPagination.mjs +6 -3
- package/lib/components/VPagination/VPagination.mjs.map +1 -1
- package/lib/components/VPagination/index.d.ts +247 -0
- package/lib/components/VParallax/VParallax.mjs +24 -10
- package/lib/components/VParallax/VParallax.mjs.map +1 -1
- package/lib/components/VParallax/index.d.ts +18 -0
- package/lib/components/VProgressCircular/index.d.ts +68 -0
- package/lib/components/VProgressLinear/index.d.ts +101 -0
- package/lib/components/VRadio/index.d.ts +103 -0
- package/lib/components/VRadioGroup/VRadioGroup.css +2 -3
- package/lib/components/VRadioGroup/VRadioGroup.mjs +2 -1
- package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
- package/lib/components/VRadioGroup/VRadioGroup.sass +2 -2
- package/lib/components/VRadioGroup/_variables.scss +0 -1
- package/lib/components/VRadioGroup/index.d.ts +186 -0
- package/lib/components/VRangeSlider/VRangeSlider.mjs +12 -2
- package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
- package/lib/components/VRangeSlider/index.d.ts +242 -0
- package/lib/components/VRating/index.d.ts +356 -0
- package/lib/components/VResponsive/index.d.ts +23 -0
- package/lib/components/VSelect/VSelect.mjs +1 -1
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelect/index.d.ts +1521 -0
- package/lib/components/VSelectionControl/VSelectionControl.mjs +2 -1
- package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
- package/lib/components/VSelectionControl/index.d.ts +275 -0
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.css +5 -0
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs +3 -1
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs.map +1 -1
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.sass +5 -0
- package/lib/components/VSelectionControlGroup/index.d.ts +47 -0
- package/lib/components/VSheet/index.d.ts +68 -0
- package/lib/components/VSlideGroup/index.d.ts +151 -0
- package/lib/components/VSlider/VSlider.css +7 -2
- package/lib/components/VSlider/VSlider.mjs +14 -4
- package/lib/components/VSlider/VSlider.mjs.map +1 -1
- package/lib/components/VSlider/VSlider.sass +6 -2
- package/lib/components/VSlider/VSliderTrack.css +20 -20
- package/lib/components/VSlider/VSliderTrack.mjs +7 -3
- package/lib/components/VSlider/VSliderTrack.mjs.map +1 -1
- package/lib/components/VSlider/VSliderTrack.sass +14 -14
- package/lib/components/VSlider/_variables.scss +2 -2
- package/lib/components/VSlider/index.d.ts +239 -0
- package/lib/components/VSlider/slider.mjs +2 -2
- package/lib/components/VSlider/slider.mjs.map +1 -1
- package/lib/components/VSnackbar/VSnackbar.mjs +3 -2
- package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
- package/lib/components/VSnackbar/index.d.ts +892 -0
- package/lib/components/VSwitch/index.d.ts +175 -0
- package/lib/components/VSystemBar/index.d.ts +61 -0
- package/lib/components/VTable/index.d.ts +39 -0
- package/lib/components/VTabs/VTab.mjs +1 -0
- package/lib/components/VTabs/VTab.mjs.map +1 -1
- package/lib/components/VTabs/index.d.ts +178 -0
- package/lib/components/VTextField/VTextField.css +2 -3
- package/lib/components/VTextField/VTextField.sass +2 -4
- package/lib/components/VTextField/index.d.ts +582 -0
- package/lib/components/VTextarea/VTextarea.css +5 -3
- package/lib/components/VTextarea/VTextarea.mjs +2 -1
- package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
- package/lib/components/VTextarea/VTextarea.sass +5 -4
- package/lib/components/VTextarea/index.d.ts +218 -0
- package/lib/components/VThemeProvider/index.d.ts +24 -0
- package/lib/components/VTimeline/VTimeline.css +21 -6
- package/lib/components/VTimeline/VTimeline.mjs +6 -1
- package/lib/components/VTimeline/VTimeline.mjs.map +1 -1
- package/lib/components/VTimeline/VTimeline.sass +16 -2
- package/lib/components/VTimeline/_variables.scss +4 -3
- package/lib/components/VTimeline/index.d.ts +154 -0
- package/lib/components/VToolbar/VToolbar.css +0 -1
- package/lib/components/VToolbar/VToolbar.sass +0 -1
- package/lib/components/VToolbar/index.d.ts +414 -0
- package/lib/components/VTooltip/VTooltip.mjs.map +1 -1
- package/lib/components/VTooltip/index.d.ts +799 -0
- package/lib/components/VValidation/index.d.ts +61 -0
- package/lib/components/VWindow/index.d.ts +428 -0
- package/lib/components/index.d.ts +12037 -10009
- package/lib/components/transitions/index.d.ts +454 -0
- package/lib/composables/display.mjs +3 -3
- package/lib/composables/display.mjs.map +1 -1
- package/lib/composables/items.mjs.map +1 -1
- package/lib/composables/locale.mjs +10 -3
- package/lib/composables/locale.mjs.map +1 -1
- package/lib/composables/proxiedModel.mjs +28 -10
- package/lib/composables/proxiedModel.mjs.map +1 -1
- package/lib/composables/router.mjs +10 -2
- package/lib/composables/router.mjs.map +1 -1
- package/lib/composables/selectLink.mjs +4 -4
- package/lib/composables/selectLink.mjs.map +1 -1
- package/lib/composables/theme.mjs +37 -33
- package/lib/composables/theme.mjs.map +1 -1
- package/lib/composables/validation.mjs +1 -1
- package/lib/composables/validation.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +46 -51
- package/lib/framework.mjs.map +1 -1
- package/lib/index.d.ts +31 -22
- package/lib/locale/adapters/vue-i18n.d.ts +35 -0
- package/lib/locale/adapters/vue-intl.d.ts +42 -0
- package/lib/styles/main.css +73 -73
- package/lib/styles/settings/_colors.scss +84 -84
- package/lib/styles/tools/_states.sass +8 -3
- package/lib/util/getCurrentInstance.mjs +2 -3
- package/lib/util/getCurrentInstance.mjs.map +1 -1
- package/lib/util/helpers.mjs +6 -11
- package/lib/util/helpers.mjs.map +1 -1
- package/package.json +4 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VTextarea.mjs","names":["filterFieldProps","makeVFieldProps","filterInputProps","makeVInputProps","VInput","VCounter","VField","Intersect","forwardRefs","useProxiedModel","computed","nextTick","onBeforeUnmount","onMounted","ref","watch","callEvent","clamp","convertToUnit","defineComponent","filterInputAttrs","useRender","VTextarea","name","directives","inheritAttrs","props","autoGrow","Boolean","autofocus","counter","Number","String","counterValue","Function","hint","persistentHint","prefix","placeholder","persistentPlaceholder","persistentCounter","noResize","rows","type","default","validator","v","isNaN","parseFloat","maxRows","suffix","emits","e","val","setup","attrs","emit","slots","model","value","toString","length","max","maxlength","undefined","onIntersect","isIntersecting","entries","target","focus","vInputRef","vFieldRef","isFocused","controlHeight","textareaRef","isActive","messages","onFocus","document","activeElement","onControlClick","onClear","stopPropagation","onInput","sizerRef","calculateInputHeight","style","getComputedStyle","fieldStyle","$el","padding","getPropertyValue","height","scrollHeight","lineHeight","minHeight","Math","maxHeight","Infinity","density","observer","ResizeObserver","observe","disconnect","hasCounter","hasDetails","details","rootAttrs","inputAttrs","modelValue","_","inputProps","fieldProps","isDisabled","isDirty","isReadonly","isValid","dirty","class","fieldClass","slotProps","handler"],"sources":["../../../src/components/VTextarea/VTextarea.tsx"],"sourcesContent":["// Styles\nimport './VTextarea.sass'\nimport '../VTextField/VTextField.sass'\n\n// Components\nimport { filterFieldProps, makeVFieldProps } from '@/components/VField/VField'\nimport { filterInputProps, makeVInputProps, VInput } from '@/components/VInput/VInput'\nimport { VCounter } from '@/components/VCounter'\nimport { VField } from '@/components/VField'\n\n// Directives\nimport Intersect from '@/directives/intersect'\n\n// Composables\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, nextTick, onBeforeUnmount, onMounted, ref, watch } from 'vue'\nimport { callEvent, clamp, convertToUnit, defineComponent, filterInputAttrs, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const VTextarea = defineComponent({\n name: 'VTextarea',\n\n directives: { Intersect },\n\n inheritAttrs: false,\n\n props: {\n autoGrow: Boolean,\n autofocus: Boolean,\n counter: [Boolean, Number, String] as PropType<true | number | string>,\n counterValue: Function as PropType<(value: any) => number>,\n hint: String,\n persistentHint: Boolean,\n prefix: String,\n placeholder: String,\n persistentPlaceholder: Boolean,\n persistentCounter: Boolean,\n noResize: Boolean,\n rows: {\n type: [Number, String],\n default: 5,\n validator: (v: any) => !isNaN(parseFloat(v)),\n },\n maxRows: {\n type: [Number, String],\n validator: (v: any) => !isNaN(parseFloat(v)),\n },\n suffix: String,\n\n ...makeVInputProps(),\n ...makeVFieldProps(),\n },\n\n emits: {\n 'click:control': (e: MouseEvent) => true,\n 'update:modelValue': (val: string) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const model = useProxiedModel(props, 'modelValue')\n const counterValue = computed(() => {\n return typeof props.counterValue === 'function'\n ? props.counterValue(model.value)\n : (model.value || '').toString().length\n })\n const max = computed(() => {\n if (attrs.maxlength) return attrs.maxlength as undefined\n\n if (\n !props.counter ||\n (typeof props.counter !== 'number' &&\n typeof props.counter !== 'string')\n ) return undefined\n\n return props.counter\n })\n\n function onIntersect (\n isIntersecting: boolean,\n entries: IntersectionObserverEntry[]\n ) {\n if (!props.autofocus || !isIntersecting) return\n\n (entries[0].target as HTMLInputElement)?.focus?.()\n }\n\n const vInputRef = ref<VInput>()\n const vFieldRef = ref<VInput>()\n const isFocused = ref(false)\n const controlHeight = ref('')\n const textareaRef = ref<HTMLInputElement>()\n const isActive = computed(() => (\n isFocused.value ||\n props.persistentPlaceholder\n ))\n\n const messages = computed(() => {\n return props.messages.length\n ? props.messages\n : (isActive.value || props.persistentHint) ? props.hint : ''\n })\n\n function onFocus () {\n if (textareaRef.value !== document.activeElement) {\n textareaRef.value?.focus()\n }\n\n if (!isFocused.value) isFocused.value = true\n }\n function onControlClick (e: MouseEvent) {\n onFocus()\n\n emit('click:control', e)\n }\n function onClear (e: MouseEvent) {\n e.stopPropagation()\n\n onFocus()\n\n nextTick(() => {\n model.value = ''\n\n callEvent(props['onClick:clear'], e)\n })\n }\n function onInput (e: Event) {\n model.value = (e.target as HTMLTextAreaElement).value\n }\n\n const sizerRef = ref<HTMLTextAreaElement>()\n function calculateInputHeight () {\n if (!props.autoGrow) return\n\n nextTick(() => {\n if (!sizerRef.value || !vFieldRef.value) return\n\n const style = getComputedStyle(sizerRef.value)\n const fieldStyle = getComputedStyle(vFieldRef.value.$el)\n\n const padding = parseFloat(style.getPropertyValue('--v-field-padding-top')) +\n parseFloat(style.getPropertyValue('--v-input-padding-top')) +\n parseFloat(style.getPropertyValue('--v-field-padding-bottom'))\n\n const height = sizerRef.value.scrollHeight\n const lineHeight = parseFloat(style.lineHeight)\n const minHeight = Math.max(\n parseFloat(props.rows) * lineHeight + padding,\n parseFloat(fieldStyle.getPropertyValue('--v-input-control-height'))\n )\n const maxHeight = parseFloat(props.maxRows!) * lineHeight + padding || Infinity\n\n controlHeight.value = convertToUnit(clamp(height ?? 0, minHeight, maxHeight))\n })\n }\n\n onMounted(calculateInputHeight)\n watch(model, calculateInputHeight)\n watch(() => props.rows, calculateInputHeight)\n watch(() => props.maxRows, calculateInputHeight)\n watch(() => props.density, calculateInputHeight)\n\n let observer: ResizeObserver | undefined\n watch(sizerRef, val => {\n if (val) {\n observer = new ResizeObserver(calculateInputHeight)\n observer.observe(sizerRef.value!)\n } else {\n observer?.disconnect()\n }\n })\n onBeforeUnmount(() => {\n observer?.disconnect()\n })\n\n useRender(() => {\n const hasCounter = !!(slots.counter || props.counter || props.counterValue)\n const hasDetails = !!(hasCounter || slots.details)\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n const [{ modelValue: _, ...inputProps }] = filterInputProps(props)\n const [fieldProps] = filterFieldProps(props)\n\n return (\n <VInput\n ref={ vInputRef }\n v-model={ model.value }\n class={[\n 'v-textarea v-text-field',\n {\n 'v-textarea--prefixed': props.prefix,\n 'v-textarea--suffixed': props.suffix,\n 'v-text-field--prefixed': props.prefix,\n 'v-text-field--suffixed': props.suffix,\n 'v-textarea--auto-grow': props.autoGrow,\n 'v-textarea--no-resize': props.noResize || props.autoGrow,\n },\n ]}\n onClick:prepend={ props['onClick:prepend'] }\n onClick:append={ props['onClick:append'] }\n { ...rootAttrs }\n { ...inputProps }\n messages={ messages.value }\n >\n {{\n ...slots,\n default: ({\n isDisabled,\n isDirty,\n isReadonly,\n isValid,\n }) => (\n <VField\n ref={ vFieldRef }\n style={{\n '--v-textarea-control-height': controlHeight.value,\n }}\n onClick:control={ onControlClick }\n onClick:clear={ onClear }\n onClick:prependInner={ props['onClick:prependInner'] }\n onClick:appendInner={ props['onClick:appendInner'] }\n role=\"textbox\"\n { ...fieldProps }\n active={ isActive.value || isDirty.value }\n dirty={ isDirty.value || props.dirty }\n focused={ isFocused.value }\n error={ isValid.value === false }\n >\n {{\n ...slots,\n default: ({\n props: { class: fieldClass, ...slotProps },\n }) => (\n <>\n { props.prefix && (\n <span class=\"v-text-field__prefix\">\n { props.prefix }\n </span>\n ) }\n\n <textarea\n ref={ textareaRef }\n class={ fieldClass }\n value={ model.value }\n onInput={ onInput }\n v-intersect={[{\n handler: onIntersect,\n }, null, ['once']]}\n autofocus={ props.autofocus }\n readonly={ isReadonly.value }\n disabled={ isDisabled.value }\n placeholder={ props.placeholder }\n rows={ props.rows }\n name={ props.name }\n onFocus={ onFocus }\n onBlur={ () => (isFocused.value = false) }\n { ...slotProps }\n { ...inputAttrs }\n />\n\n { props.autoGrow && (\n <textarea\n class={[\n fieldClass,\n 'v-textarea__sizer',\n ]}\n v-model={ model.value }\n ref={ sizerRef }\n readonly\n aria-hidden=\"true\"\n />\n )}\n\n { props.suffix && (\n <span class=\"v-text-field__suffix\">\n { props.suffix }\n </span>\n ) }\n </>\n ),\n }}\n </VField>\n ),\n details: hasDetails ? slotProps => (\n <>\n { slots.details?.(slotProps) }\n\n { hasCounter && (\n <>\n <span />\n\n <VCounter\n active={ props.persistentCounter || isFocused.value }\n value={ counterValue.value }\n max={ max.value }\n v-slots={ slots.counter }\n />\n </>\n ) }\n </>\n ) : undefined,\n }}\n </VInput>\n )\n })\n\n return forwardRefs({}, vInputRef, vFieldRef, textareaRef)\n },\n})\n\nexport type VTextarea = InstanceType<typeof VTextarea>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VTextarea.mjs","names":["filterFieldProps","makeVFieldProps","filterInputProps","makeVInputProps","VInput","VCounter","VField","Intersect","forwardRefs","useProxiedModel","computed","nextTick","onBeforeUnmount","onMounted","ref","watch","callEvent","clamp","convertToUnit","defineComponent","filterInputAttrs","useRender","VTextarea","name","directives","inheritAttrs","props","autoGrow","Boolean","autofocus","counter","Number","String","counterValue","Function","hint","persistentHint","prefix","placeholder","persistentPlaceholder","persistentCounter","noResize","rows","type","default","validator","v","isNaN","parseFloat","maxRows","suffix","emits","e","val","setup","attrs","emit","slots","model","value","toString","length","max","maxlength","undefined","onIntersect","isIntersecting","entries","target","focus","vInputRef","vFieldRef","isFocused","controlHeight","textareaRef","isActive","messages","onFocus","document","activeElement","onControlClick","onClear","stopPropagation","onInput","sizerRef","calculateInputHeight","style","getComputedStyle","fieldStyle","$el","padding","getPropertyValue","height","scrollHeight","lineHeight","minHeight","Math","maxHeight","Infinity","density","observer","ResizeObserver","observe","disconnect","hasCounter","hasDetails","details","rootAttrs","inputAttrs","modelValue","_","inputProps","fieldProps","includes","variant","isDisabled","isDirty","isReadonly","isValid","dirty","class","fieldClass","slotProps","handler"],"sources":["../../../src/components/VTextarea/VTextarea.tsx"],"sourcesContent":["// Styles\nimport './VTextarea.sass'\nimport '../VTextField/VTextField.sass'\n\n// Components\nimport { filterFieldProps, makeVFieldProps } from '@/components/VField/VField'\nimport { filterInputProps, makeVInputProps, VInput } from '@/components/VInput/VInput'\nimport { VCounter } from '@/components/VCounter'\nimport { VField } from '@/components/VField'\n\n// Directives\nimport Intersect from '@/directives/intersect'\n\n// Composables\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, nextTick, onBeforeUnmount, onMounted, ref, watch } from 'vue'\nimport { callEvent, clamp, convertToUnit, defineComponent, filterInputAttrs, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const VTextarea = defineComponent({\n name: 'VTextarea',\n\n directives: { Intersect },\n\n inheritAttrs: false,\n\n props: {\n autoGrow: Boolean,\n autofocus: Boolean,\n counter: [Boolean, Number, String] as PropType<true | number | string>,\n counterValue: Function as PropType<(value: any) => number>,\n hint: String,\n persistentHint: Boolean,\n prefix: String,\n placeholder: String,\n persistentPlaceholder: Boolean,\n persistentCounter: Boolean,\n noResize: Boolean,\n rows: {\n type: [Number, String],\n default: 5,\n validator: (v: any) => !isNaN(parseFloat(v)),\n },\n maxRows: {\n type: [Number, String],\n validator: (v: any) => !isNaN(parseFloat(v)),\n },\n suffix: String,\n\n ...makeVInputProps(),\n ...makeVFieldProps(),\n },\n\n emits: {\n 'click:control': (e: MouseEvent) => true,\n 'update:modelValue': (val: string) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const model = useProxiedModel(props, 'modelValue')\n const counterValue = computed(() => {\n return typeof props.counterValue === 'function'\n ? props.counterValue(model.value)\n : (model.value || '').toString().length\n })\n const max = computed(() => {\n if (attrs.maxlength) return attrs.maxlength as undefined\n\n if (\n !props.counter ||\n (typeof props.counter !== 'number' &&\n typeof props.counter !== 'string')\n ) return undefined\n\n return props.counter\n })\n\n function onIntersect (\n isIntersecting: boolean,\n entries: IntersectionObserverEntry[]\n ) {\n if (!props.autofocus || !isIntersecting) return\n\n (entries[0].target as HTMLInputElement)?.focus?.()\n }\n\n const vInputRef = ref<VInput>()\n const vFieldRef = ref<VInput>()\n const isFocused = ref(false)\n const controlHeight = ref('')\n const textareaRef = ref<HTMLInputElement>()\n const isActive = computed(() => (\n isFocused.value ||\n props.persistentPlaceholder\n ))\n\n const messages = computed(() => {\n return props.messages.length\n ? props.messages\n : (isActive.value || props.persistentHint) ? props.hint : ''\n })\n\n function onFocus () {\n if (textareaRef.value !== document.activeElement) {\n textareaRef.value?.focus()\n }\n\n if (!isFocused.value) isFocused.value = true\n }\n function onControlClick (e: MouseEvent) {\n onFocus()\n\n emit('click:control', e)\n }\n function onClear (e: MouseEvent) {\n e.stopPropagation()\n\n onFocus()\n\n nextTick(() => {\n model.value = ''\n\n callEvent(props['onClick:clear'], e)\n })\n }\n function onInput (e: Event) {\n model.value = (e.target as HTMLTextAreaElement).value\n }\n\n const sizerRef = ref<HTMLTextAreaElement>()\n function calculateInputHeight () {\n if (!props.autoGrow) return\n\n nextTick(() => {\n if (!sizerRef.value || !vFieldRef.value) return\n\n const style = getComputedStyle(sizerRef.value)\n const fieldStyle = getComputedStyle(vFieldRef.value.$el)\n\n const padding = parseFloat(style.getPropertyValue('--v-field-padding-top')) +\n parseFloat(style.getPropertyValue('--v-input-padding-top')) +\n parseFloat(style.getPropertyValue('--v-field-padding-bottom'))\n\n const height = sizerRef.value.scrollHeight\n const lineHeight = parseFloat(style.lineHeight)\n const minHeight = Math.max(\n parseFloat(props.rows) * lineHeight + padding,\n parseFloat(fieldStyle.getPropertyValue('--v-input-control-height'))\n )\n const maxHeight = parseFloat(props.maxRows!) * lineHeight + padding || Infinity\n\n controlHeight.value = convertToUnit(clamp(height ?? 0, minHeight, maxHeight))\n })\n }\n\n onMounted(calculateInputHeight)\n watch(model, calculateInputHeight)\n watch(() => props.rows, calculateInputHeight)\n watch(() => props.maxRows, calculateInputHeight)\n watch(() => props.density, calculateInputHeight)\n\n let observer: ResizeObserver | undefined\n watch(sizerRef, val => {\n if (val) {\n observer = new ResizeObserver(calculateInputHeight)\n observer.observe(sizerRef.value!)\n } else {\n observer?.disconnect()\n }\n })\n onBeforeUnmount(() => {\n observer?.disconnect()\n })\n\n useRender(() => {\n const hasCounter = !!(slots.counter || props.counter || props.counterValue)\n const hasDetails = !!(hasCounter || slots.details)\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n const [{ modelValue: _, ...inputProps }] = filterInputProps(props)\n const [fieldProps] = filterFieldProps(props)\n\n return (\n <VInput\n ref={ vInputRef }\n v-model={ model.value }\n class={[\n 'v-textarea v-text-field',\n {\n 'v-textarea--prefixed': props.prefix,\n 'v-textarea--suffixed': props.suffix,\n 'v-text-field--prefixed': props.prefix,\n 'v-text-field--suffixed': props.suffix,\n 'v-textarea--auto-grow': props.autoGrow,\n 'v-textarea--no-resize': props.noResize || props.autoGrow,\n 'v-text-field--flush-details': ['plain', 'underlined'].includes(props.variant),\n },\n ]}\n onClick:prepend={ props['onClick:prepend'] }\n onClick:append={ props['onClick:append'] }\n { ...rootAttrs }\n { ...inputProps }\n messages={ messages.value }\n >\n {{\n ...slots,\n default: ({\n isDisabled,\n isDirty,\n isReadonly,\n isValid,\n }) => (\n <VField\n ref={ vFieldRef }\n style={{\n '--v-textarea-control-height': controlHeight.value,\n }}\n onClick:control={ onControlClick }\n onClick:clear={ onClear }\n onClick:prependInner={ props['onClick:prependInner'] }\n onClick:appendInner={ props['onClick:appendInner'] }\n role=\"textbox\"\n { ...fieldProps }\n active={ isActive.value || isDirty.value }\n dirty={ isDirty.value || props.dirty }\n focused={ isFocused.value }\n error={ isValid.value === false }\n >\n {{\n ...slots,\n default: ({\n props: { class: fieldClass, ...slotProps },\n }) => (\n <>\n { props.prefix && (\n <span class=\"v-text-field__prefix\">\n { props.prefix }\n </span>\n ) }\n\n <textarea\n ref={ textareaRef }\n class={ fieldClass }\n value={ model.value }\n onInput={ onInput }\n v-intersect={[{\n handler: onIntersect,\n }, null, ['once']]}\n autofocus={ props.autofocus }\n readonly={ isReadonly.value }\n disabled={ isDisabled.value }\n placeholder={ props.placeholder }\n rows={ props.rows }\n name={ props.name }\n onFocus={ onFocus }\n onBlur={ () => (isFocused.value = false) }\n { ...slotProps }\n { ...inputAttrs }\n />\n\n { props.autoGrow && (\n <textarea\n class={[\n fieldClass,\n 'v-textarea__sizer',\n ]}\n v-model={ model.value }\n ref={ sizerRef }\n readonly\n aria-hidden=\"true\"\n />\n )}\n\n { props.suffix && (\n <span class=\"v-text-field__suffix\">\n { props.suffix }\n </span>\n ) }\n </>\n ),\n }}\n </VField>\n ),\n details: hasDetails ? slotProps => (\n <>\n { slots.details?.(slotProps) }\n\n { hasCounter && (\n <>\n <span />\n\n <VCounter\n active={ props.persistentCounter || isFocused.value }\n value={ counterValue.value }\n max={ max.value }\n v-slots={ slots.counter }\n />\n </>\n ) }\n </>\n ) : undefined,\n }}\n </VInput>\n )\n })\n\n return forwardRefs({}, vInputRef, vFieldRef, textareaRef)\n },\n})\n\nexport type VTextarea = InstanceType<typeof VTextarea>\n"],"mappings":"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"}
|
|
@@ -5,6 +5,9 @@
|
|
|
5
5
|
@use './variables' as *
|
|
6
6
|
|
|
7
7
|
.v-textarea
|
|
8
|
+
.v-field
|
|
9
|
+
--v-textarea-control-height: var(--v-input-control-height)
|
|
10
|
+
|
|
8
11
|
.v-field__field
|
|
9
12
|
--v-input-control-height: var(--v-textarea-control-height)
|
|
10
13
|
|
|
@@ -34,15 +37,13 @@
|
|
|
34
37
|
min-height: 0 !important
|
|
35
38
|
pointer-events: none
|
|
36
39
|
|
|
37
|
-
.v-field--
|
|
38
|
-
textarea
|
|
39
|
-
opacity: 0
|
|
40
|
-
|
|
40
|
+
.v-field--no-label,
|
|
41
41
|
.v-field--active
|
|
42
42
|
textarea
|
|
43
43
|
opacity: 1
|
|
44
44
|
|
|
45
45
|
textarea
|
|
46
|
+
opacity: 0
|
|
46
47
|
flex: 1
|
|
47
48
|
min-width: 0
|
|
48
49
|
transition: .15s opacity settings.$standard-easing
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
import * as vue from 'vue';
|
|
2
|
+
import { PropType, JSXComponent } from 'vue';
|
|
3
|
+
|
|
4
|
+
declare type EventProp<T = (...args: any[]) => any> = T | T[];
|
|
5
|
+
declare const EventProp: PropType<EventProp<(...args: any[]) => any>>;
|
|
6
|
+
|
|
7
|
+
declare type ValidationResult = string | boolean;
|
|
8
|
+
declare type ValidationRule = ValidationResult | PromiseLike<ValidationResult> | ((value: any) => ValidationResult) | ((value: any) => PromiseLike<ValidationResult>);
|
|
9
|
+
|
|
10
|
+
declare type IconValue = string | JSXComponent;
|
|
11
|
+
declare const IconValue: PropType<IconValue>;
|
|
12
|
+
|
|
13
|
+
declare const VTextarea: vue.DefineComponent<{
|
|
14
|
+
loading: BooleanConstructor;
|
|
15
|
+
theme: StringConstructor;
|
|
16
|
+
appendInnerIcon: PropType<IconValue>;
|
|
17
|
+
bgColor: StringConstructor;
|
|
18
|
+
clearable: BooleanConstructor;
|
|
19
|
+
clearIcon: {
|
|
20
|
+
type: PropType<IconValue>;
|
|
21
|
+
default: string;
|
|
22
|
+
};
|
|
23
|
+
active: BooleanConstructor;
|
|
24
|
+
color: StringConstructor;
|
|
25
|
+
dirty: BooleanConstructor;
|
|
26
|
+
disabled: BooleanConstructor;
|
|
27
|
+
error: BooleanConstructor;
|
|
28
|
+
label: StringConstructor;
|
|
29
|
+
persistentClear: BooleanConstructor;
|
|
30
|
+
prependInnerIcon: PropType<IconValue>;
|
|
31
|
+
reverse: BooleanConstructor;
|
|
32
|
+
singleLine: BooleanConstructor;
|
|
33
|
+
variant: {
|
|
34
|
+
type: PropType<"filled" | "outlined" | "plain" | "underlined" | "solo">;
|
|
35
|
+
default: string;
|
|
36
|
+
validator: (v: any) => boolean;
|
|
37
|
+
};
|
|
38
|
+
'onClick:clear': PropType<EventProp<(...args: any[]) => any>>;
|
|
39
|
+
'onClick:appendInner': PropType<EventProp<(...args: any[]) => any>>;
|
|
40
|
+
'onClick:prependInner': PropType<EventProp<(...args: any[]) => any>>;
|
|
41
|
+
errorMessages: {
|
|
42
|
+
type: PropType<string | string[]>;
|
|
43
|
+
default: () => never[];
|
|
44
|
+
};
|
|
45
|
+
maxErrors: {
|
|
46
|
+
type: (StringConstructor | NumberConstructor)[];
|
|
47
|
+
default: number;
|
|
48
|
+
};
|
|
49
|
+
name: StringConstructor;
|
|
50
|
+
readonly: BooleanConstructor;
|
|
51
|
+
rules: {
|
|
52
|
+
type: PropType<ValidationRule[]>;
|
|
53
|
+
default: () => never[];
|
|
54
|
+
};
|
|
55
|
+
modelValue: null;
|
|
56
|
+
validationValue: null;
|
|
57
|
+
density: {
|
|
58
|
+
type: PropType<"default" | "compact" | "comfortable" | null>;
|
|
59
|
+
default: string;
|
|
60
|
+
validator: (v: any) => boolean;
|
|
61
|
+
};
|
|
62
|
+
id: StringConstructor;
|
|
63
|
+
appendIcon: PropType<IconValue>;
|
|
64
|
+
prependIcon: PropType<IconValue>;
|
|
65
|
+
hideDetails: PropType<boolean | "auto">;
|
|
66
|
+
messages: {
|
|
67
|
+
type: PropType<string | string[]>;
|
|
68
|
+
default: () => never[];
|
|
69
|
+
};
|
|
70
|
+
direction: {
|
|
71
|
+
type: PropType<"horizontal" | "vertical">;
|
|
72
|
+
default: string;
|
|
73
|
+
validator: (v: any) => boolean;
|
|
74
|
+
};
|
|
75
|
+
'onClick:prepend': PropType<EventProp<(...args: any[]) => any>>;
|
|
76
|
+
'onClick:append': PropType<EventProp<(...args: any[]) => any>>;
|
|
77
|
+
autoGrow: BooleanConstructor;
|
|
78
|
+
autofocus: BooleanConstructor;
|
|
79
|
+
counter: PropType<string | number | true>;
|
|
80
|
+
counterValue: PropType<(value: any) => number>;
|
|
81
|
+
hint: StringConstructor;
|
|
82
|
+
persistentHint: BooleanConstructor;
|
|
83
|
+
prefix: StringConstructor;
|
|
84
|
+
placeholder: StringConstructor;
|
|
85
|
+
persistentPlaceholder: BooleanConstructor;
|
|
86
|
+
persistentCounter: BooleanConstructor;
|
|
87
|
+
noResize: BooleanConstructor;
|
|
88
|
+
rows: {
|
|
89
|
+
type: (StringConstructor | NumberConstructor)[];
|
|
90
|
+
default: number;
|
|
91
|
+
validator: (v: any) => boolean;
|
|
92
|
+
};
|
|
93
|
+
maxRows: {
|
|
94
|
+
type: (StringConstructor | NumberConstructor)[];
|
|
95
|
+
validator: (v: any) => boolean;
|
|
96
|
+
};
|
|
97
|
+
suffix: StringConstructor;
|
|
98
|
+
}, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
|
|
99
|
+
'click:control': (e: MouseEvent) => true;
|
|
100
|
+
'update:modelValue': (val: string) => true;
|
|
101
|
+
}, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, Readonly<vue.ExtractPropTypes<{
|
|
102
|
+
loading: BooleanConstructor;
|
|
103
|
+
theme: StringConstructor;
|
|
104
|
+
appendInnerIcon: PropType<IconValue>;
|
|
105
|
+
bgColor: StringConstructor;
|
|
106
|
+
clearable: BooleanConstructor;
|
|
107
|
+
clearIcon: {
|
|
108
|
+
type: PropType<IconValue>;
|
|
109
|
+
default: string;
|
|
110
|
+
};
|
|
111
|
+
active: BooleanConstructor;
|
|
112
|
+
color: StringConstructor;
|
|
113
|
+
dirty: BooleanConstructor;
|
|
114
|
+
disabled: BooleanConstructor;
|
|
115
|
+
error: BooleanConstructor;
|
|
116
|
+
label: StringConstructor;
|
|
117
|
+
persistentClear: BooleanConstructor;
|
|
118
|
+
prependInnerIcon: PropType<IconValue>;
|
|
119
|
+
reverse: BooleanConstructor;
|
|
120
|
+
singleLine: BooleanConstructor;
|
|
121
|
+
variant: {
|
|
122
|
+
type: PropType<"filled" | "outlined" | "plain" | "underlined" | "solo">;
|
|
123
|
+
default: string;
|
|
124
|
+
validator: (v: any) => boolean;
|
|
125
|
+
};
|
|
126
|
+
'onClick:clear': PropType<EventProp<(...args: any[]) => any>>;
|
|
127
|
+
'onClick:appendInner': PropType<EventProp<(...args: any[]) => any>>;
|
|
128
|
+
'onClick:prependInner': PropType<EventProp<(...args: any[]) => any>>;
|
|
129
|
+
errorMessages: {
|
|
130
|
+
type: PropType<string | string[]>;
|
|
131
|
+
default: () => never[];
|
|
132
|
+
};
|
|
133
|
+
maxErrors: {
|
|
134
|
+
type: (StringConstructor | NumberConstructor)[];
|
|
135
|
+
default: number;
|
|
136
|
+
};
|
|
137
|
+
name: StringConstructor;
|
|
138
|
+
readonly: BooleanConstructor;
|
|
139
|
+
rules: {
|
|
140
|
+
type: PropType<ValidationRule[]>;
|
|
141
|
+
default: () => never[];
|
|
142
|
+
};
|
|
143
|
+
modelValue: null;
|
|
144
|
+
validationValue: null;
|
|
145
|
+
density: {
|
|
146
|
+
type: PropType<"default" | "compact" | "comfortable" | null>;
|
|
147
|
+
default: string;
|
|
148
|
+
validator: (v: any) => boolean;
|
|
149
|
+
};
|
|
150
|
+
id: StringConstructor;
|
|
151
|
+
appendIcon: PropType<IconValue>;
|
|
152
|
+
prependIcon: PropType<IconValue>;
|
|
153
|
+
hideDetails: PropType<boolean | "auto">;
|
|
154
|
+
messages: {
|
|
155
|
+
type: PropType<string | string[]>;
|
|
156
|
+
default: () => never[];
|
|
157
|
+
};
|
|
158
|
+
direction: {
|
|
159
|
+
type: PropType<"horizontal" | "vertical">;
|
|
160
|
+
default: string;
|
|
161
|
+
validator: (v: any) => boolean;
|
|
162
|
+
};
|
|
163
|
+
'onClick:prepend': PropType<EventProp<(...args: any[]) => any>>;
|
|
164
|
+
'onClick:append': PropType<EventProp<(...args: any[]) => any>>;
|
|
165
|
+
autoGrow: BooleanConstructor;
|
|
166
|
+
autofocus: BooleanConstructor;
|
|
167
|
+
counter: PropType<string | number | true>;
|
|
168
|
+
counterValue: PropType<(value: any) => number>;
|
|
169
|
+
hint: StringConstructor;
|
|
170
|
+
persistentHint: BooleanConstructor;
|
|
171
|
+
prefix: StringConstructor;
|
|
172
|
+
placeholder: StringConstructor;
|
|
173
|
+
persistentPlaceholder: BooleanConstructor;
|
|
174
|
+
persistentCounter: BooleanConstructor;
|
|
175
|
+
noResize: BooleanConstructor;
|
|
176
|
+
rows: {
|
|
177
|
+
type: (StringConstructor | NumberConstructor)[];
|
|
178
|
+
default: number;
|
|
179
|
+
validator: (v: any) => boolean;
|
|
180
|
+
};
|
|
181
|
+
maxRows: {
|
|
182
|
+
type: (StringConstructor | NumberConstructor)[];
|
|
183
|
+
validator: (v: any) => boolean;
|
|
184
|
+
};
|
|
185
|
+
suffix: StringConstructor;
|
|
186
|
+
}>> & {
|
|
187
|
+
"onUpdate:modelValue"?: ((val: string) => any) | undefined;
|
|
188
|
+
"onClick:control"?: ((e: MouseEvent) => any) | undefined;
|
|
189
|
+
}, {
|
|
190
|
+
reverse: boolean;
|
|
191
|
+
error: boolean;
|
|
192
|
+
active: boolean;
|
|
193
|
+
direction: "horizontal" | "vertical";
|
|
194
|
+
loading: boolean;
|
|
195
|
+
autofocus: boolean;
|
|
196
|
+
disabled: boolean;
|
|
197
|
+
readonly: boolean;
|
|
198
|
+
messages: string | string[];
|
|
199
|
+
density: "default" | "compact" | "comfortable" | null;
|
|
200
|
+
variant: "filled" | "outlined" | "plain" | "underlined" | "solo";
|
|
201
|
+
errorMessages: string | string[];
|
|
202
|
+
maxErrors: string | number;
|
|
203
|
+
rules: ValidationRule[];
|
|
204
|
+
clearIcon: IconValue;
|
|
205
|
+
clearable: boolean;
|
|
206
|
+
dirty: boolean;
|
|
207
|
+
persistentClear: boolean;
|
|
208
|
+
singleLine: boolean;
|
|
209
|
+
persistentHint: boolean;
|
|
210
|
+
persistentPlaceholder: boolean;
|
|
211
|
+
persistentCounter: boolean;
|
|
212
|
+
autoGrow: boolean;
|
|
213
|
+
noResize: boolean;
|
|
214
|
+
rows: string | number;
|
|
215
|
+
}>;
|
|
216
|
+
declare type VTextarea = InstanceType<typeof VTextarea>;
|
|
217
|
+
|
|
218
|
+
export { VTextarea };
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import * as vue from 'vue';
|
|
2
|
+
|
|
3
|
+
declare const VThemeProvider: vue.DefineComponent<{
|
|
4
|
+
tag: {
|
|
5
|
+
type: StringConstructor;
|
|
6
|
+
default: string;
|
|
7
|
+
};
|
|
8
|
+
theme: StringConstructor;
|
|
9
|
+
withBackground: BooleanConstructor;
|
|
10
|
+
}, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
11
|
+
[key: string]: any;
|
|
12
|
+
}>[] | JSX.Element | undefined, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, Readonly<vue.ExtractPropTypes<{
|
|
13
|
+
tag: {
|
|
14
|
+
type: StringConstructor;
|
|
15
|
+
default: string;
|
|
16
|
+
};
|
|
17
|
+
theme: StringConstructor;
|
|
18
|
+
withBackground: BooleanConstructor;
|
|
19
|
+
}>>, {
|
|
20
|
+
tag: string;
|
|
21
|
+
withBackground: boolean;
|
|
22
|
+
}>;
|
|
23
|
+
|
|
24
|
+
export { VThemeProvider };
|
|
@@ -11,7 +11,6 @@
|
|
|
11
11
|
position: relative;
|
|
12
12
|
}
|
|
13
13
|
.v-timeline--horizontal.v-timeline {
|
|
14
|
-
grid-template-rows: auto min-content auto;
|
|
15
14
|
grid-column-gap: 24px;
|
|
16
15
|
width: 100%;
|
|
17
16
|
}
|
|
@@ -33,6 +32,7 @@
|
|
|
33
32
|
.v-timeline--horizontal.v-timeline .v-timeline-item:nth-child(2n+1) .v-timeline-item__body {
|
|
34
33
|
grid-row: 1;
|
|
35
34
|
padding-block-end: 24px;
|
|
35
|
+
align-self: flex-end;
|
|
36
36
|
}
|
|
37
37
|
.v-timeline--horizontal.v-timeline .v-timeline-item:nth-child(2n+1) .v-timeline-item__opposite {
|
|
38
38
|
grid-row: 3;
|
|
@@ -40,7 +40,6 @@
|
|
|
40
40
|
}
|
|
41
41
|
|
|
42
42
|
.v-timeline--vertical.v-timeline {
|
|
43
|
-
grid-template-columns: auto min-content auto;
|
|
44
43
|
grid-row-gap: 24px;
|
|
45
44
|
height: 100%;
|
|
46
45
|
}
|
|
@@ -252,6 +251,22 @@
|
|
|
252
251
|
}
|
|
253
252
|
|
|
254
253
|
/** Modifiers **/
|
|
254
|
+
.v-timeline--horizontal.v-timeline--justify-center {
|
|
255
|
+
grid-template-rows: minmax(auto, 50%) min-content minmax(auto, 50%);
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
.v-timeline--vertical.v-timeline--justify-center {
|
|
259
|
+
grid-template-columns: minmax(auto, 50%) min-content minmax(auto, 50%);
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
.v-timeline--horizontal.v-timeline--justify-auto {
|
|
263
|
+
grid-template-rows: auto min-content auto;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
.v-timeline--vertical.v-timeline--justify-auto {
|
|
267
|
+
grid-template-columns: auto min-content auto;
|
|
268
|
+
}
|
|
269
|
+
|
|
255
270
|
.v-timeline--horizontal.v-timeline--density-comfortable {
|
|
256
271
|
height: 100%;
|
|
257
272
|
}
|
|
@@ -273,20 +288,20 @@
|
|
|
273
288
|
}
|
|
274
289
|
|
|
275
290
|
.v-timeline--horizontal.v-timeline--density-compact.v-timeline--side-end {
|
|
276
|
-
grid-template-rows: min-content auto;
|
|
291
|
+
grid-template-rows: 0 min-content auto;
|
|
277
292
|
}
|
|
278
293
|
.v-timeline--horizontal.v-timeline--density-compact.v-timeline--side-start {
|
|
279
|
-
grid-template-rows: auto min-content;
|
|
294
|
+
grid-template-rows: auto min-content 0;
|
|
280
295
|
}
|
|
281
296
|
.v-timeline--horizontal.v-timeline--density-compact .v-timeline-item__body {
|
|
282
297
|
grid-row: 1;
|
|
283
298
|
}
|
|
284
299
|
|
|
285
300
|
.v-timeline--vertical.v-timeline--density-compact.v-timeline--side-end {
|
|
286
|
-
grid-template-columns: min-content auto;
|
|
301
|
+
grid-template-columns: 0 min-content auto;
|
|
287
302
|
}
|
|
288
303
|
.v-timeline--vertical.v-timeline--density-compact.v-timeline--side-start {
|
|
289
|
-
grid-template-columns: auto min-content;
|
|
304
|
+
grid-template-columns: auto min-content 0;
|
|
290
305
|
}
|
|
291
306
|
.v-timeline--vertical.v-timeline--density-compact .v-timeline-item__body {
|
|
292
307
|
grid-column: 3;
|
|
@@ -23,6 +23,11 @@ export const VTimeline = defineComponent({
|
|
|
23
23
|
default: 'vertical',
|
|
24
24
|
validator: v => ['vertical', 'horizontal'].includes(v)
|
|
25
25
|
},
|
|
26
|
+
justify: {
|
|
27
|
+
type: String,
|
|
28
|
+
default: 'auto',
|
|
29
|
+
validator: v => ['auto', 'center'].includes(v)
|
|
30
|
+
},
|
|
26
31
|
side: {
|
|
27
32
|
type: String,
|
|
28
33
|
validator: v => v == null || ['start', 'end'].includes(v)
|
|
@@ -86,7 +91,7 @@ export const VTimeline = defineComponent({
|
|
|
86
91
|
}
|
|
87
92
|
});
|
|
88
93
|
useRender(() => _createVNode(props.tag, {
|
|
89
|
-
"class": ['v-timeline', `v-timeline--${props.direction}`, `v-timeline--align-${props.align}`, truncateClasses.value, {
|
|
94
|
+
"class": ['v-timeline', `v-timeline--${props.direction}`, `v-timeline--align-${props.align}`, `v-timeline--justify-${props.justify}`, truncateClasses.value, {
|
|
90
95
|
'v-timeline--inset-line': !!props.lineInset
|
|
91
96
|
}, themeClasses.value, densityClasses.value, sideClasses.value],
|
|
92
97
|
"style": {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VTimeline.mjs","names":["makeDensityProps","useDensity","makeTagProps","makeThemeProps","provideTheme","provideDefaults","computed","toRef","convertToUnit","defineComponent","useRender","VTimeline","name","props","align","type","String","default","validator","v","includes","direction","side","lineInset","Number","lineThickness","lineColor","truncateLine","setup","slots","themeClasses","densityClasses","VTimelineDivider","VTimelineItem","density","sideClasses","truncateClasses","classes","value"],"sources":["../../../src/components/VTimeline/VTimeline.tsx"],"sourcesContent":["// Styles\nimport './VTimeline.sass'\n\n// Composables\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { convertToUnit, defineComponent, useRender } from '@/util'\n\n// Types\nimport type { Prop } from 'vue'\n\nexport type TimelineDirection = 'vertical' | 'horizontal'\nexport type TimelineSide = 'start' | 'end' | undefined\nexport type TimelineAlign = 'center' | 'start'\nexport type TimelineTruncateLine = 'start' | 'end' | 'both' | undefined\n\nexport const VTimeline = defineComponent({\n name: 'VTimeline',\n\n props: {\n align: {\n type: String,\n default: 'center',\n validator: (v: any) => ['center', 'start'].includes(v),\n } as Prop<TimelineAlign>,\n direction: {\n type: String,\n default: 'vertical',\n validator: (v: any) => ['vertical', 'horizontal'].includes(v),\n } as Prop<TimelineDirection>,\n side: {\n type: String,\n validator: (v: any) => v == null || ['start', 'end'].includes(v),\n } as Prop<TimelineSide>,\n lineInset: {\n type: [String, Number],\n default: 0,\n },\n lineThickness: {\n type: [String, Number],\n default: 2,\n },\n lineColor: String,\n truncateLine: {\n type: String,\n validator: (v: any) => ['start', 'end', 'both'].includes(v),\n } as Prop<TimelineTruncateLine>,\n\n ...makeDensityProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n },\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { densityClasses } = useDensity(props)\n\n provideDefaults({\n VTimelineDivider: {\n lineColor: toRef(props, 'lineColor'),\n },\n VTimelineItem: {\n density: toRef(props, 'density'),\n lineInset: toRef(props, 'lineInset'),\n },\n })\n\n const sideClasses = computed(() => {\n const side = props.side ? props.side : props.density !== 'default' ? 'end' : null\n\n return side && `v-timeline--side-${side}`\n })\n\n const truncateClasses = computed(() => {\n const classes = [\n 'v-timeline--truncate-line-start',\n 'v-timeline--truncate-line-end',\n ]\n\n switch (props.truncateLine) {\n case 'both': return classes\n case 'start': return classes[0]\n case 'end': return classes[1]\n default: return null\n }\n })\n\n useRender(() => (\n <props.tag\n class={[\n 'v-timeline',\n `v-timeline--${props.direction}`,\n `v-timeline--align-${props.align}`,\n truncateClasses.value,\n {\n 'v-timeline--inset-line': !!props.lineInset,\n },\n themeClasses.value,\n densityClasses.value,\n sideClasses.value,\n ]}\n style={{\n '--v-timeline-line-thickness': convertToUnit(props.lineThickness),\n }}\n v-slots={ slots }\n />\n ))\n\n return {}\n },\n})\n"],"mappings":";AAAA;AACA,yB,CAEA;;SACSA,gB,EAAkBC,U;SAClBC,Y;SACAC,c,EAAgBC,Y;SAChBC,e,0CAET;;AACA,SAASC,QAAT,EAAmBC,KAAnB,QAAgC,KAAhC;SACSC,a,EAAeC,e,EAAiBC,S,gCAEzC;;AAQA,OAAO,MAAMC,SAAS,GAAGF,eAAe,CAAC;EACvCG,IAAI,EAAE,WADiC;EAGvCC,KAAK,EAAE;IACLC,KAAK,EAAE;MACLC,IAAI,EAAEC,MADD;MAELC,OAAO,EAAE,QAFJ;MAGLC,SAAS,EAAGC,CAAD,IAAY,CAAC,QAAD,EAAW,OAAX,EAAoBC,QAApB,CAA6BD,CAA7B;IAHlB,CADF;IAMLE,SAAS,EAAE;MACTN,IAAI,EAAEC,MADG;MAETC,OAAO,EAAE,UAFA;MAGTC,SAAS,EAAGC,CAAD,IAAY,CAAC,UAAD,EAAa,YAAb,EAA2BC,QAA3B,CAAoCD,CAApC;IAHd,CANN;IAWLG,IAAI,EAAE;
|
|
1
|
+
{"version":3,"file":"VTimeline.mjs","names":["makeDensityProps","useDensity","makeTagProps","makeThemeProps","provideTheme","provideDefaults","computed","toRef","convertToUnit","defineComponent","useRender","VTimeline","name","props","align","type","String","default","validator","v","includes","direction","justify","side","lineInset","Number","lineThickness","lineColor","truncateLine","setup","slots","themeClasses","densityClasses","VTimelineDivider","VTimelineItem","density","sideClasses","truncateClasses","classes","value"],"sources":["../../../src/components/VTimeline/VTimeline.tsx"],"sourcesContent":["// Styles\nimport './VTimeline.sass'\n\n// Composables\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { convertToUnit, defineComponent, useRender } from '@/util'\n\n// Types\nimport type { Prop } from 'vue'\n\nexport type TimelineDirection = 'vertical' | 'horizontal'\nexport type TimelineSide = 'start' | 'end' | undefined\nexport type TimelineAlign = 'center' | 'start'\nexport type TimelineTruncateLine = 'start' | 'end' | 'both' | undefined\n\nexport const VTimeline = defineComponent({\n name: 'VTimeline',\n\n props: {\n align: {\n type: String,\n default: 'center',\n validator: (v: any) => ['center', 'start'].includes(v),\n } as Prop<TimelineAlign>,\n direction: {\n type: String,\n default: 'vertical',\n validator: (v: any) => ['vertical', 'horizontal'].includes(v),\n } as Prop<TimelineDirection>,\n justify: {\n type: String,\n default: 'auto',\n validator: (v: any) => ['auto', 'center'].includes(v),\n },\n side: {\n type: String,\n validator: (v: any) => v == null || ['start', 'end'].includes(v),\n } as Prop<TimelineSide>,\n lineInset: {\n type: [String, Number],\n default: 0,\n },\n lineThickness: {\n type: [String, Number],\n default: 2,\n },\n lineColor: String,\n truncateLine: {\n type: String,\n validator: (v: any) => ['start', 'end', 'both'].includes(v),\n } as Prop<TimelineTruncateLine>,\n\n ...makeDensityProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n },\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { densityClasses } = useDensity(props)\n\n provideDefaults({\n VTimelineDivider: {\n lineColor: toRef(props, 'lineColor'),\n },\n VTimelineItem: {\n density: toRef(props, 'density'),\n lineInset: toRef(props, 'lineInset'),\n },\n })\n\n const sideClasses = computed(() => {\n const side = props.side ? props.side : props.density !== 'default' ? 'end' : null\n\n return side && `v-timeline--side-${side}`\n })\n\n const truncateClasses = computed(() => {\n const classes = [\n 'v-timeline--truncate-line-start',\n 'v-timeline--truncate-line-end',\n ]\n\n switch (props.truncateLine) {\n case 'both': return classes\n case 'start': return classes[0]\n case 'end': return classes[1]\n default: return null\n }\n })\n\n useRender(() => (\n <props.tag\n class={[\n 'v-timeline',\n `v-timeline--${props.direction}`,\n `v-timeline--align-${props.align}`,\n `v-timeline--justify-${props.justify}`,\n truncateClasses.value,\n {\n 'v-timeline--inset-line': !!props.lineInset,\n },\n themeClasses.value,\n densityClasses.value,\n sideClasses.value,\n ]}\n style={{\n '--v-timeline-line-thickness': convertToUnit(props.lineThickness),\n }}\n v-slots={ slots }\n />\n ))\n\n return {}\n },\n})\n"],"mappings":"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"}
|
|
@@ -19,7 +19,6 @@
|
|
|
19
19
|
position: relative
|
|
20
20
|
|
|
21
21
|
@include horizontal(true)
|
|
22
|
-
grid-template-rows: $timeline-item-grid-template
|
|
23
22
|
grid-column-gap: $timeline-item-padding
|
|
24
23
|
width: 100%
|
|
25
24
|
|
|
@@ -43,13 +42,13 @@
|
|
|
43
42
|
.v-timeline-item__body
|
|
44
43
|
grid-row: 1
|
|
45
44
|
padding-block-end: $timeline-item-padding
|
|
45
|
+
align-self: flex-end
|
|
46
46
|
|
|
47
47
|
.v-timeline-item__opposite
|
|
48
48
|
grid-row: 3
|
|
49
49
|
padding-block-start: $timeline-item-padding
|
|
50
50
|
|
|
51
51
|
@include vertical(true)
|
|
52
|
-
grid-template-columns: $timeline-item-grid-template
|
|
53
52
|
grid-row-gap: $timeline-item-padding
|
|
54
53
|
height: 100%
|
|
55
54
|
|
|
@@ -230,6 +229,21 @@ $timeline-line-size-first-last: calc(var(--v-timeline-line-size-base) - var(--v-
|
|
|
230
229
|
|
|
231
230
|
/** Modifiers **/
|
|
232
231
|
|
|
232
|
+
// Justify
|
|
233
|
+
.v-timeline--justify-center
|
|
234
|
+
@include horizontal(true)
|
|
235
|
+
grid-template-rows: $timeline-item-grid-template-center
|
|
236
|
+
|
|
237
|
+
@include vertical(true)
|
|
238
|
+
grid-template-columns: $timeline-item-grid-template-center
|
|
239
|
+
|
|
240
|
+
.v-timeline--justify-auto
|
|
241
|
+
@include horizontal(true)
|
|
242
|
+
grid-template-rows: $timeline-item-grid-template-auto
|
|
243
|
+
|
|
244
|
+
@include vertical(true)
|
|
245
|
+
grid-template-columns: $timeline-item-grid-template-auto
|
|
246
|
+
|
|
233
247
|
// Density
|
|
234
248
|
.v-timeline--density-comfortable
|
|
235
249
|
@include horizontal(true)
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
// VTimeline
|
|
4
4
|
$timeline-density-comfortable-grid-template-end: min-content min-content auto !default;
|
|
5
5
|
$timeline-density-comfortable-grid-template-start: auto min-content min-content !default;
|
|
6
|
-
$timeline-density-compact-grid-template-end: min-content auto !default;
|
|
7
|
-
$timeline-density-compact-grid-template-start: auto min-content !default;
|
|
6
|
+
$timeline-density-compact-grid-template-end: 0 min-content auto !default;
|
|
7
|
+
$timeline-density-compact-grid-template-start: auto min-content 0 !default;
|
|
8
8
|
$timeline-dot-border-radius: 50% !default;
|
|
9
9
|
$timeline-dot-divider-background: rgb(var(--v-theme-on-surface-variant)) !default;
|
|
10
10
|
$timeline-dot-size: 38px !default;
|
|
@@ -19,7 +19,8 @@ $timeline-divider-line-horizontal-width: var(--v-timeline-line-inset, 0px) !defa
|
|
|
19
19
|
$timeline-divider-line-thickness: var(--v-timeline-line-thickness) !default;
|
|
20
20
|
|
|
21
21
|
// VTimelineItem
|
|
22
|
-
$timeline-item-grid-template: auto min-content auto !default;
|
|
22
|
+
$timeline-item-grid-template-center: minmax(auto, 50%) min-content minmax(auto, 50%) !default;
|
|
23
|
+
$timeline-item-grid-template-auto: auto min-content auto !default;
|
|
23
24
|
$timeline-item-padding: 24px !default;
|
|
24
25
|
|
|
25
26
|
// Lists
|