diff --git a/.eslintrc.js b/.eslintrc.js index dfcc8c78377..aa3d61f2594 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -23,6 +23,7 @@ module.exports = { '@typescript-eslint', 'sonarjs', 'react', + 'eslint-plugin-local-rules', ], rules: { 'no-var': 'error', @@ -200,6 +201,16 @@ module.exports = { // https://github.com/yannickcr/eslint-plugin-react/issues/2415 // 'react/jsx-curly-spacing': ['error', { when: 'always', spacing: { objectLiterals: 'never' } }], + 'local-rules/jsx-condition-key': 'error', + 'local-rules/jsx-curly-spacing': ['error', { + when: 'always', + spacing: { + objectLiterals: 'never', + arrayLiterals: 'never', + multilineClose: 'never', + }, + children: true, + }], 'react/jsx-equals-spacing': 'error', 'react/jsx-first-prop-new-line': 'error', diff --git a/eslint-local-rules.js b/eslint-local-rules.js index 9d080fe5056..6707a95c8e7 100644 --- a/eslint-local-rules.js +++ b/eslint-local-rules.js @@ -2,9 +2,7 @@ const path = require('path') module.exports = { - 'no-render-string-reference': { - create: require('./scripts/no-render-string-reference'), - }, + 'no-render-string-reference': require('./scripts/rules/no-render-string-reference'), 'jsx-condition-key': { create (context) { return { @@ -58,6 +56,7 @@ module.exports = { } }, }, + 'jsx-curly-spacing': require('./scripts/rules/jsx-curly-spacing'), 'jest-global-imports': { meta: { fixable: 'code', diff --git a/packages/vuetify/.eslintrc.js b/packages/vuetify/.eslintrc.js index db3a0908b8c..fcac47ebb62 100644 --- a/packages/vuetify/.eslintrc.js +++ b/packages/vuetify/.eslintrc.js @@ -6,9 +6,6 @@ module.exports = { __VUETIFY_VERSION__: true, __REQUIRED_VUE__: true, }, - plugins: [ - 'eslint-plugin-local-rules', - ], extends: [ // 'plugin:import/typescript', // slow, only enable if needed ], @@ -19,7 +16,6 @@ module.exports = { // 'vue/html-self-closing': 'off', // 'vue/html-closing-bracket-spacing': 'off', // 'local-rules/no-render-string-reference': 'error', - 'local-rules/jsx-condition-key': 'error', 'no-restricted-imports': ['error', { paths: [{ diff --git a/packages/vuetify/src/components/VAlert/VAlert.tsx b/packages/vuetify/src/components/VAlert/VAlert.tsx index 5090e9dca73..5ea655db552 100644 --- a/packages/vuetify/src/components/VAlert/VAlert.tsx +++ b/packages/vuetify/src/components/VAlert/VAlert.tsx @@ -173,7 +173,7 @@ export const VAlert = genericComponent()({ ]} style={ textColorStyles.value } /> - ) } + )} { hasPrepend && ( ()({ } - ) } + )}
{ hasTitle && ( { slots.title ? slots.title() : props.title } - ) } + )} { hasText && ( slots.text ? slots.text() : props.text - ) } + )} { slots.default?.() }
@@ -213,7 +213,7 @@ export const VAlert = genericComponent()({
{ slots.append() }
- ) } + )} { hasClose && ( ()({ { slots.close?.({ props: closeProps.value }) ?? } - ) } + )} ) } diff --git a/packages/vuetify/src/components/VAlert/__tests__/VAlert.spec.cy.tsx b/packages/vuetify/src/components/VAlert/__tests__/VAlert.spec.cy.tsx index 051ea217204..758af02295d 100644 --- a/packages/vuetify/src/components/VAlert/__tests__/VAlert.spec.cy.tsx +++ b/packages/vuetify/src/components/VAlert/__tests__/VAlert.spec.cy.tsx @@ -22,11 +22,11 @@ describe('VAlert', () => { it('supports default color props', () => { cy.mount(() => ( <> - {defaultColors.map((color, idx) => ( + { defaultColors.map((color, idx) => ( { color } alert - )) } + ))} )) .get('.v-alert') diff --git a/packages/vuetify/src/components/VAutocomplete/VAutocomplete.tsx b/packages/vuetify/src/components/VAutocomplete/VAutocomplete.tsx index ed21deada0a..0f443dcef52 100644 --- a/packages/vuetify/src/components/VAutocomplete/VAutocomplete.tsx +++ b/packages/vuetify/src/components/VAutocomplete/VAutocomplete.tsx @@ -315,7 +315,7 @@ export const VAutocomplete = genericComponent { !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? ( - )) } + ))} { slots['prepend-item']?.() } @@ -340,11 +340,11 @@ export const VAutocomplete = genericComponent - )) } + ))} { slots['append-item']?.() } - ) } + )} { selections.value.map((item, index) => { @@ -386,13 +386,13 @@ export const VAutocomplete = genericComponent, - ) } + )} ) )} ) - }) } + })} ), }} diff --git a/packages/vuetify/src/components/VAutocomplete/__tests__/VAutocomplete.spec.cy.tsx b/packages/vuetify/src/components/VAutocomplete/__tests__/VAutocomplete.spec.cy.tsx index 2780d885800..79068912e11 100644 --- a/packages/vuetify/src/components/VAutocomplete/__tests__/VAutocomplete.spec.cy.tsx +++ b/packages/vuetify/src/components/VAutocomplete/__tests__/VAutocomplete.spec.cy.tsx @@ -12,8 +12,8 @@ describe('VAutocomplete', () => { cy.mount(() => ( { cy.mount(() => ( { cy.mount(() => ( { cy.mount(() => ( )) @@ -132,8 +132,8 @@ describe('VAutocomplete', () => { cy.mount(() => ( @@ -160,8 +160,8 @@ describe('VAutocomplete', () => { cy.mount(() => ( diff --git a/packages/vuetify/src/components/VBadge/__tests__/VBadge.spec.cy.tsx b/packages/vuetify/src/components/VBadge/__tests__/VBadge.spec.cy.tsx index bece81899cf..c257895715e 100644 --- a/packages/vuetify/src/components/VBadge/__tests__/VBadge.spec.cy.tsx +++ b/packages/vuetify/src/components/VBadge/__tests__/VBadge.spec.cy.tsx @@ -26,7 +26,7 @@ const stories = { 'Default badge': , 'Icon badge': , 'Offset badge': gridOn(['offsetX', 'offsetY'], offset, (xy, offset) => ( - + { xy } @@ -47,11 +47,11 @@ describe('VBadge', () => { it('supports default color props', () => { cy.mount(() => ( <> - {defaultColors.map((color, idx) => ( + { defaultColors.map((color, idx) => ( { color } badge - )) } + ))} )) .get('.v-badge') @@ -94,11 +94,11 @@ describe('VBadge', () => { it('supports default text color props', () => { cy.mount(() => ( <> - {defaultColors.map((color, idx) => ( + { defaultColors.map((color, idx) => ( { color } text badge - )) } + ))} )) .get('.v-badge') diff --git a/packages/vuetify/src/components/VBanner/VBanner.tsx b/packages/vuetify/src/components/VBanner/VBanner.tsx index d9a70e4f367..e5126f5d722 100644 --- a/packages/vuetify/src/components/VBanner/VBanner.tsx +++ b/packages/vuetify/src/components/VBanner/VBanner.tsx @@ -121,14 +121,14 @@ export const VBanner = genericComponent()({ } - ) } + )}
{ hasText && ( { slots.text ? slots.text() : props.text } - ) } + )} { slots.default?.() }
@@ -137,7 +137,7 @@ export const VBanner = genericComponent()({ { slots.actions() } - ) } + )} ) }) diff --git a/packages/vuetify/src/components/VBottomNavigation/VBottomNavigation.tsx b/packages/vuetify/src/components/VBottomNavigation/VBottomNavigation.tsx index 168f73b5420..108a9a9e675 100644 --- a/packages/vuetify/src/components/VBottomNavigation/VBottomNavigation.tsx +++ b/packages/vuetify/src/components/VBottomNavigation/VBottomNavigation.tsx @@ -124,7 +124,7 @@ export const VBottomNavigation = genericComponent()({
{ slots.default() }
- ) } + )} ) }) diff --git a/packages/vuetify/src/components/VBreadcrumbs/VBreadcrumbs.tsx b/packages/vuetify/src/components/VBreadcrumbs/VBreadcrumbs.tsx index 0bb1de3ed70..58ff22719ff 100644 --- a/packages/vuetify/src/components/VBreadcrumbs/VBreadcrumbs.tsx +++ b/packages/vuetify/src/components/VBreadcrumbs/VBreadcrumbs.tsx @@ -109,7 +109,7 @@ export const VBreadcrumbs = genericComponent() => { } - ) } + )} { props.items.map((item, index, array) => ( <> @@ -128,9 +128,9 @@ export const VBreadcrumbs = genericComponent() => { default: slots.divider ? () => slots.divider?.({ item, index }) : undefined, }} /> - ) } + )} - )) } + ))} { slots.default?.() } diff --git a/packages/vuetify/src/components/VBreadcrumbs/__tests__/VBreadcrumbs.spec.cy.tsx b/packages/vuetify/src/components/VBreadcrumbs/__tests__/VBreadcrumbs.spec.cy.tsx index d561f7873b8..081217cf5c8 100644 --- a/packages/vuetify/src/components/VBreadcrumbs/__tests__/VBreadcrumbs.spec.cy.tsx +++ b/packages/vuetify/src/components/VBreadcrumbs/__tests__/VBreadcrumbs.spec.cy.tsx @@ -10,7 +10,7 @@ describe('VBreadcrumbs', () => { it('should use item slot', () => { cy.mount(() => ( - + {{ title: ({ item }: any) => `${item}!`, }} @@ -24,7 +24,7 @@ describe('VBreadcrumbs', () => { it('should use divider slot', () => { cy.mount(() => ( - + {{ divider: () => '-', }} @@ -38,7 +38,7 @@ describe('VBreadcrumbs', () => { it('should render icon', () => { cy.mount(() => ( - + )) @@ -48,7 +48,7 @@ describe('VBreadcrumbs', () => { it('should use bg-color', () => { cy.mount(() => ( - + )) @@ -58,7 +58,7 @@ describe('VBreadcrumbs', () => { it('should use color', () => { cy.mount(() => ( - + )) @@ -68,7 +68,7 @@ describe('VBreadcrumbs', () => { it('should render link if href is set', () => { cy.mount(() => ( - + )) @@ -92,7 +92,7 @@ describe('VBreadcrumbs', () => { cy.mount(() => ( - + ), { global: { @@ -148,7 +148,7 @@ describe('VBreadcrumbs', () => { it('should disabled last item by default if using items prop', () => { cy.mount(() => ( - + )) @@ -158,7 +158,7 @@ describe('VBreadcrumbs', () => { it('should be possible to override last item disabled by default', () => { cy.mount(() => ( - + )) diff --git a/packages/vuetify/src/components/VBtn/VBtn.tsx b/packages/vuetify/src/components/VBtn/VBtn.tsx index e2c89f95fdb..24b4d8b57da 100644 --- a/packages/vuetify/src/components/VBtn/VBtn.tsx +++ b/packages/vuetify/src/components/VBtn/VBtn.tsx @@ -184,7 +184,7 @@ export const VBtn = genericComponent()({ link.navigate?.(e) group?.toggle() - } } + }} value={ valueAttr.value } > { genOverlays(true, 'v-btn') } @@ -202,7 +202,7 @@ export const VBtn = genericComponent()({ { slots.prepend?.() ?? () } - ) } + )} ()({ hasIcon && ( ) - ) } + )} @@ -234,7 +234,7 @@ export const VBtn = genericComponent()({ { slots.append?.() ?? () } - ) } + )} { !!props.loading && ( @@ -245,9 +245,9 @@ export const VBtn = genericComponent()({ size="23" width="2" /> - ) } + )} - ) } + )} ) }) diff --git a/packages/vuetify/src/components/VBtn/__tests__/VBtn.spec.cy.tsx b/packages/vuetify/src/components/VBtn/__tests__/VBtn.spec.cy.tsx index f8329f937c4..22c310f2a2c 100644 --- a/packages/vuetify/src/components/VBtn/__tests__/VBtn.spec.cy.tsx +++ b/packages/vuetify/src/components/VBtn/__tests__/VBtn.spec.cy.tsx @@ -54,11 +54,11 @@ describe('VBtn', () => { it('supports default color props', () => { cy.mount(() => ( <> - {colors.map(color => ( + { colors.map(color => ( { color } button - )) } + ))} )) .get('button') @@ -223,28 +223,28 @@ describe('VBtn', () => { it('should pass string values', () => { const stringValue = 'Foobar' - cy.mount() + cy.mount() .get('button') .should('have.value', stringValue) }) it('should stringify object', () => { const objectValue = { value: {} } - cy.mount() + cy.mount() .get('button') .should('have.value', JSON.stringify(objectValue, null, 0)) }) it('should stringify number', () => { const numberValue = 15 - cy.mount() + cy.mount() .get('button') .should('have.value', JSON.stringify(numberValue, null, 0)) }) it('should stringify array', () => { const arrayValue = ['foo', 'bar'] - cy.mount() + cy.mount() .get('button') .should('have.value', JSON.stringify(arrayValue, null, 0)) }) diff --git a/packages/vuetify/src/components/VBtnGroup/__tests__/VBtnGroup.spec.cy.tsx b/packages/vuetify/src/components/VBtnGroup/__tests__/VBtnGroup.spec.cy.tsx index 59288c9c38f..ba1c71efdab 100644 --- a/packages/vuetify/src/components/VBtnGroup/__tests__/VBtnGroup.spec.cy.tsx +++ b/packages/vuetify/src/components/VBtnGroup/__tests__/VBtnGroup.spec.cy.tsx @@ -20,7 +20,7 @@ describe('VBtnGroup', () => { Button 2 Button 3 - )) } + ))} )) .get('.v-btn-group') @@ -38,7 +38,7 @@ describe('VBtnGroup', () => { Button 2 Button 3 - )) } + ))} )) .get('.v-btn-group') @@ -56,7 +56,7 @@ describe('VBtnGroup', () => { Button 2 Button 3 - )) } + ))} )) .get('.v-btn-group') diff --git a/packages/vuetify/src/components/VBtnToggle/VBtnToggle.tsx b/packages/vuetify/src/components/VBtnToggle/VBtnToggle.tsx index f5d7b93b089..6cdac61d20f 100644 --- a/packages/vuetify/src/components/VBtnToggle/VBtnToggle.tsx +++ b/packages/vuetify/src/components/VBtnToggle/VBtnToggle.tsx @@ -52,7 +52,7 @@ export const VBtnToggle = genericComponent()({ prev, select, selected, - } as DefaultBtnToggleSlot) } + } as DefaultBtnToggleSlot)} ) }) diff --git a/packages/vuetify/src/components/VCard/VCard.tsx b/packages/vuetify/src/components/VCard/VCard.tsx index 3ca0ec3efcd..a6a81a47404 100644 --- a/packages/vuetify/src/components/VCard/VCard.tsx +++ b/packages/vuetify/src/components/VCard/VCard.tsx @@ -162,7 +162,7 @@ export const VCard = genericComponent()({ { slots.image?.() ?? } - ) } + )} ()({ append: slots.append, }} - ) } + )} { hasText && ( { slots.text?.() ?? props.text } - ) } + )} { slots.default?.() } { slots.actions && ( - ) } + )} { genOverlays(isClickable.value, 'v-card') } diff --git a/packages/vuetify/src/components/VCard/VCardItem.tsx b/packages/vuetify/src/components/VCard/VCardItem.tsx index 728588927db..127f205e97c 100644 --- a/packages/vuetify/src/components/VCard/VCardItem.tsx +++ b/packages/vuetify/src/components/VCard/VCardItem.tsx @@ -64,20 +64,20 @@ export const VCardItem = genericComponent()({ { slots.prepend?.() ?? () } - ) } + )}
{ hasTitle && ( - { slots.title?.() ?? props.title} + { slots.title?.() ?? props.title } - ) } + )} { hasSubtitle && ( { slots.subtitle?.() ?? props.subtitle } - ) } + )} { slots.default?.() }
@@ -101,7 +101,7 @@ export const VCardItem = genericComponent()({ { slots.append?.() ?? () } - ) } + )} ) }) diff --git a/packages/vuetify/src/components/VCarousel/VCarousel.tsx b/packages/vuetify/src/components/VCarousel/VCarousel.tsx index 369d6a4e904..f732f1781b1 100644 --- a/packages/vuetify/src/components/VCarousel/VCarousel.tsx +++ b/packages/vuetify/src/components/VCarousel/VCarousel.tsx @@ -132,9 +132,9 @@ export const VCarousel = genericComponent()({ return slots.item ? slots.item({ props, item }) : () - }) } + })} - ) } + )} )} diff --git a/packages/vuetify/src/components/VChip/VChip.tsx b/packages/vuetify/src/components/VChip/VChip.tsx index f051ff541c7..8c6416aa085 100644 --- a/packages/vuetify/src/components/VChip/VChip.tsx +++ b/packages/vuetify/src/components/VChip/VChip.tsx @@ -185,7 +185,7 @@ export const VChip = genericComponent()({ tabindex={ isClickable.value ? 0 : undefined } onClick={ onClick } onKeydown={ isClickable.value && !isLink.value && onKeyDown } - v-ripple={ [isClickable.value && props.ripple, null] } + v-ripple={[isClickable.value && props.ripple, null]} > { genOverlays(isClickable.value, 'v-chip') } @@ -205,7 +205,7 @@ export const VChip = genericComponent()({ - ) } + )} { hasPrepend && ( ()({ : undefined } - ) } + )} { slots.default?.({ isSelected: group?.isSelected.value, @@ -264,7 +264,7 @@ export const VChip = genericComponent()({ : undefined } - ) } + )} { hasClose && ( ()({ { slots.close ? slots.close() : () } - ) } + )} ) } diff --git a/packages/vuetify/src/components/VChipGroup/VChipGroup.tsx b/packages/vuetify/src/components/VChipGroup/VChipGroup.tsx index f5306974d0a..a72c6ba77ee 100644 --- a/packages/vuetify/src/components/VChipGroup/VChipGroup.tsx +++ b/packages/vuetify/src/components/VChipGroup/VChipGroup.tsx @@ -67,7 +67,7 @@ export const VChipGroup = genericComponent()({ next, prev, selected: selected.value, - }) } + })} )) diff --git a/packages/vuetify/src/components/VColorPicker/VColorPicker.tsx b/packages/vuetify/src/components/VColorPicker/VColorPicker.tsx index 3d69f7e0985..5c36c4af085 100644 --- a/packages/vuetify/src/components/VColorPicker/VColorPicker.tsx +++ b/packages/vuetify/src/components/VColorPicker/VColorPicker.tsx @@ -140,7 +140,7 @@ export const VColorPicker = defineComponent({ width={ props.width } height={ props.canvasHeight } /> - ) } + )} { (!props.hideSliders || !props.hideInputs) && (
@@ -152,7 +152,7 @@ export const VColorPicker = defineComponent({ hideAlpha={ !mode.value.endsWith('a') } disabled={ props.disabled } /> - ) } + )} { !props.hideInputs && ( - ) } + )}
- ) } + )} { props.showSwatches && ( - ) } + )} )) diff --git a/packages/vuetify/src/components/VColorPicker/VColorPickerEdit.tsx b/packages/vuetify/src/components/VColorPicker/VColorPickerEdit.tsx index a849d07444d..3a6f130775c 100644 --- a/packages/vuetify/src/components/VColorPicker/VColorPickerEdit.tsx +++ b/packages/vuetify/src/components/VColorPicker/VColorPickerEdit.tsx @@ -18,7 +18,7 @@ const VColorPickerInput = ({ label, ...rest }: any) => {
- + { label }
) @@ -81,8 +81,8 @@ export const VColorPickerEdit = defineComponent({ class="v-color-picker-edit" > { inputs.value?.map(props => ( - - )) } + + ))} { enabledModes.value.length > 1 && ( m.name === props.mode) emit('update:mode', enabledModes.value[(mi + 1) % enabledModes.value.length].name) - } } + }} /> - ) } + )} )) diff --git a/packages/vuetify/src/components/VColorPicker/VColorPickerPreview.tsx b/packages/vuetify/src/components/VColorPicker/VColorPickerPreview.tsx index 7fc68d7068b..315079e1591 100644 --- a/packages/vuetify/src/components/VColorPicker/VColorPickerPreview.tsx +++ b/packages/vuetify/src/components/VColorPicker/VColorPickerPreview.tsx @@ -70,7 +70,7 @@ export const VColorPickerPreview = defineComponent({ trackFillColor="white" hideDetails /> - ) } + )} )) diff --git a/packages/vuetify/src/components/VColorPicker/VColorPickerSwatches.tsx b/packages/vuetify/src/components/VColorPicker/VColorPickerSwatches.tsx index 144c1fe0965..9926177d4a4 100644 --- a/packages/vuetify/src/components/VColorPicker/VColorPickerSwatches.tsx +++ b/packages/vuetify/src/components/VColorPicker/VColorPickerSwatches.tsx @@ -69,17 +69,17 @@ export const VColorPickerSwatches = defineComponent({ return (
hsva && emit('update:color', hsva)} + onClick={ () => hsva && emit('update:color', hsva) } >
{ props.color && deepEqual(props.color, hsva) - ? 2 ? 'white' : 'black' } /> + ? 2 ? 'white' : 'black' } /> : undefined }
) - }) } + })} ))} diff --git a/packages/vuetify/src/components/VCombobox/VCombobox.tsx b/packages/vuetify/src/components/VCombobox/VCombobox.tsx index 0ff313db918..2952b357ddd 100644 --- a/packages/vuetify/src/components/VCombobox/VCombobox.tsx +++ b/packages/vuetify/src/components/VCombobox/VCombobox.tsx @@ -395,7 +395,7 @@ export const VCombobox = genericComponent { !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? ( - )) } + ))} { slots['prepend-item']?.() } @@ -420,11 +420,11 @@ export const VCombobox = genericComponent - )) } + ))} { slots['append-item']?.() } - ) } + )} { selections.value.map((item, index) => { @@ -476,13 +476,13 @@ export const VCombobox = genericComponent, - ) } + )} ) - ) } + )} ) - }) } + })} ), }} diff --git a/packages/vuetify/src/components/VCombobox/__tests__/VCombobox.spec.cy.tsx b/packages/vuetify/src/components/VCombobox/__tests__/VCombobox.spec.cy.tsx index b4cdbf7f669..33db0e57105 100644 --- a/packages/vuetify/src/components/VCombobox/__tests__/VCombobox.spec.cy.tsx +++ b/packages/vuetify/src/components/VCombobox/__tests__/VCombobox.spec.cy.tsx @@ -21,7 +21,7 @@ describe('VCombobox', () => { ] cy.mount(() => ( - + )) .get('.v-chip__close') .eq(0) @@ -168,7 +168,7 @@ describe('VCombobox', () => { ] cy.mount(() => ( - + )) .get('input') .type('Item') @@ -194,7 +194,7 @@ describe('VCombobox', () => { ] cy.mount(() => ( - + )) .get('input') .type('Item') @@ -225,7 +225,7 @@ describe('VCombobox', () => { cy.mount(() => ( @@ -253,7 +253,7 @@ describe('VCombobox', () => { const selectedItems = ref(['California', 'Colorado']) cy.mount(() => ( - + )) cy.get('.v-combobox input').click() @@ -301,8 +301,8 @@ describe('VCombobox', () => { cy.mount(() => ( { cy.mount(() => ( )) @@ -363,8 +363,8 @@ describe('VCombobox', () => { cy.mount(() => ( @@ -399,7 +399,7 @@ describe('VCombobox', () => { ] cy.mount(() => ( - + )) cy.get('.v-combobox input').click() diff --git a/packages/vuetify/src/components/VDivider/VDivider.tsx b/packages/vuetify/src/components/VDivider/VDivider.tsx index e16104ee724..34196383a08 100644 --- a/packages/vuetify/src/components/VDivider/VDivider.tsx +++ b/packages/vuetify/src/components/VDivider/VDivider.tsx @@ -62,7 +62,7 @@ export const VDivider = genericComponent()({ ? props.vertical ? 'vertical' : 'horizontal' : undefined } - role={`${attrs.role || 'separator'}`} + role={ `${attrs.role || 'separator'}` } /> )) diff --git a/packages/vuetify/src/components/VExpansionPanel/VExpansionPanel.tsx b/packages/vuetify/src/components/VExpansionPanel/VExpansionPanel.tsx index dde6dbc47bb..d14575befc7 100644 --- a/packages/vuetify/src/components/VExpansionPanel/VExpansionPanel.tsx +++ b/packages/vuetify/src/components/VExpansionPanel/VExpansionPanel.tsx @@ -105,13 +105,13 @@ export const VExpansionPanel = genericComponent()({ > { slots.title ? slots.title() : props.title } - ) } + )} { hasText && ( { slots.text ? slots.text() : props.text } - ) } + )} { slots.default?.() } diff --git a/packages/vuetify/src/components/VExpansionPanel/VExpansionPanelText.tsx b/packages/vuetify/src/components/VExpansionPanel/VExpansionPanelText.tsx index e301a3b03b1..165ecbe5405 100644 --- a/packages/vuetify/src/components/VExpansionPanel/VExpansionPanelText.tsx +++ b/packages/vuetify/src/components/VExpansionPanel/VExpansionPanelText.tsx @@ -33,7 +33,7 @@ export const VExpansionPanelText = genericComponent()({
{ slots.default?.() }
- ) } + )} )) diff --git a/packages/vuetify/src/components/VExpansionPanel/VExpansionPanelTitle.tsx b/packages/vuetify/src/components/VExpansionPanel/VExpansionPanelTitle.tsx index 4b18a0e2615..11f9804e839 100644 --- a/packages/vuetify/src/components/VExpansionPanel/VExpansionPanelTitle.tsx +++ b/packages/vuetify/src/components/VExpansionPanel/VExpansionPanelTitle.tsx @@ -96,7 +96,7 @@ export const VExpansionPanelTitle = genericComponent( : } - ) } + )} )) diff --git a/packages/vuetify/src/components/VExpansionPanel/__tests__/VExpansionPanels.spec.cy.tsx b/packages/vuetify/src/components/VExpansionPanel/__tests__/VExpansionPanels.spec.cy.tsx index 79578a87865..a44e04c27cb 100644 --- a/packages/vuetify/src/components/VExpansionPanel/__tests__/VExpansionPanels.spec.cy.tsx +++ b/packages/vuetify/src/components/VExpansionPanel/__tests__/VExpansionPanels.spec.cy.tsx @@ -12,8 +12,8 @@ describe('VExpansionPanels', () => { { titles.map(title => ( - - )) } + + ))} )) @@ -36,7 +36,7 @@ describe('VExpansionPanels', () => { text: () => 'Content', }} - )) } + ))} )) @@ -57,7 +57,7 @@ describe('VExpansionPanels', () => { { title } Content - )) } + ))} )) @@ -136,11 +136,11 @@ describe('VExpansionPanels', () => { const foo = ref() cy.mount(() => ( - foo.value = v}> + foo.value = v }> -
{foo.value}
+
{ foo.value }
)) .get('.v-expansion-panel-title') diff --git a/packages/vuetify/src/components/VField/VField.tsx b/packages/vuetify/src/components/VField/VField.tsx index 11e1ae7dbe5..0634a3cd248 100644 --- a/packages/vuetify/src/components/VField/VField.tsx +++ b/packages/vuetify/src/components/VField/VField.tsx @@ -251,14 +251,14 @@ export const VField = genericComponent() => {
{ props.prependInnerIcon && ( - ) } + )} { slots['prepend-inner']?.(slotProps.value) }
- ) } + )}
- { ['solo', 'filled'].includes(props.variant) && hasLabel.value && ( + {['solo', 'filled'].includes(props.variant) && hasLabel.value && ( () => { > { label } - ) } + )} { label } @@ -283,7 +283,7 @@ export const VField = genericComponent() => { }, focus, blur, - } as VFieldSlot) } + } as VFieldSlot)}
{ hasClear && ( @@ -298,7 +298,7 @@ export const VField = genericComponent() => { } - ) } + )} { hasAppend && (
@@ -306,9 +306,9 @@ export const VField = genericComponent() => { { props.appendInnerIcon && ( - ) } + )}
- ) } + )}
() => { { label }
- ) } + )}
- ) } + )} - { ['plain', 'underlined'].includes(props.variant) && hasLabel.value && ( + {['plain', 'underlined'].includes(props.variant) && hasLabel.value && ( { label } - ) } + )}
) diff --git a/packages/vuetify/src/components/VFileInput/VFileInput.tsx b/packages/vuetify/src/components/VFileInput/VFileInput.tsx index 5acd52fc9a6..c4a91126307 100644 --- a/packages/vuetify/src/components/VFileInput/VFileInput.tsx +++ b/packages/vuetify/src/components/VFileInput/VFileInput.tsx @@ -215,13 +215,13 @@ export const VFileInput = genericComponent()({ e.stopPropagation() onFocus() - } } + }} onChange={ e => { if (!e.target) return const target = e.target as HTMLInputElement model.value = [...target.files ?? []] - } } + }} onFocus={ onFocus } onBlur={ () => (isFocused.value = false) } { ...slotProps } @@ -264,7 +264,7 @@ export const VFileInput = genericComponent()({ v-slots:default={ slots.counter } /> - ) } + )} ) : undefined, }} diff --git a/packages/vuetify/src/components/VFileInput/__tests__/VFileInput.spec.cy.tsx b/packages/vuetify/src/components/VFileInput/__tests__/VFileInput.spec.cy.tsx index eb392fea307..ba68b4dc157 100644 --- a/packages/vuetify/src/components/VFileInput/__tests__/VFileInput.spec.cy.tsx +++ b/packages/vuetify/src/components/VFileInput/__tests__/VFileInput.spec.cy.tsx @@ -54,7 +54,7 @@ describe('VFileInput', () => { const model = ref([oneMBFile, twoMBFile]) cy.mount(() => ( - + )) .get('.v-field__clearable > .v-icon') @@ -66,7 +66,7 @@ describe('VFileInput', () => { it('should support removing clearable icon', () => { cy.mount(() => ( - + )) .get('.v-field__append-inner > .v-btn') diff --git a/packages/vuetify/src/components/VForm/__tests__/VForm.spec.cy.tsx b/packages/vuetify/src/components/VForm/__tests__/VForm.spec.cy.tsx index 4ea16d84c23..47cfb71ae33 100644 --- a/packages/vuetify/src/components/VForm/__tests__/VForm.spec.cy.tsx +++ b/packages/vuetify/src/components/VForm/__tests__/VForm.spec.cy.tsx @@ -13,7 +13,7 @@ describe('VForm', () => { cy.mount(() => ( - v.length > 10 || 'Name should be longer than 10 characters'] }> + v.length > 10 || 'Name should be longer than 10 characters']}> )) @@ -44,8 +44,8 @@ describe('VForm', () => { cy.mount(() => ( - v.length < 10 || 'Name should be longer than 10 characters'] }> - v.length < 10 || 'E-mail should be longer than 10 characters'] }> + v.length < 10 || 'Name should be longer than 10 characters']}> + v.length < 10 || 'E-mail should be longer than 10 characters']}> )) @@ -74,7 +74,7 @@ describe('VForm', () => { cy.mount(() => ( - !!v || 'Name required'] }> + !!v || 'Name required']}> )) @@ -92,7 +92,7 @@ describe('VForm', () => { cy.mount(() => ( - v.length > 10 || 'Name should be longer than 10 characters'] }> + v.length > 10 || 'Name should be longer than 10 characters']}> )) @@ -123,7 +123,7 @@ describe('VForm', () => { cy.mount(() => ( - v.length > 10 || 'Name should be longer than 10 characters'] }> + v.length > 10 || 'Name should be longer than 10 characters']}> )) @@ -152,7 +152,7 @@ describe('VForm', () => { it('should not submit form if validation fails', () => { cy.mount(() => ( - !!v || 'Field required'] } /> + !!v || 'Field required']} /> Submit )) @@ -165,7 +165,7 @@ describe('VForm', () => { cy.mount(() => ( - !!v || 'Field required'] } /> + !!v || 'Field required']} /> Submit @@ -189,7 +189,7 @@ describe('VForm', () => { cy.mount(() => ( - v.length < 4 || 'Error'] } /> + v.length < 4 || 'Error']} /> )) @@ -212,7 +212,7 @@ describe('VForm', () => { it.only('should submit form if validation passes', () => { cy.mount(() => ( - !!v || 'Field required'] } /> + !!v || 'Field required']} /> Submit )) diff --git a/packages/vuetify/src/components/VHover/__tests__/VHover.spec.cy.tsx b/packages/vuetify/src/components/VHover/__tests__/VHover.spec.cy.tsx index 88038bbd7c3..08db114acd9 100644 --- a/packages/vuetify/src/components/VHover/__tests__/VHover.spec.cy.tsx +++ b/packages/vuetify/src/components/VHover/__tests__/VHover.spec.cy.tsx @@ -9,7 +9,7 @@ describe('VHover', () => { {{ - default: ({ isHovering, props }: any) =>
foobar
, + default: ({ isHovering, props }: any) =>
foobar
, }}
@@ -26,7 +26,7 @@ describe('VHover', () => { {{ - default: ({ isHovering, props }: any) =>
foobar
, + default: ({ isHovering, props }: any) =>
foobar
, }}
@@ -42,9 +42,9 @@ describe('VHover', () => { // eslint-disable-next-line cypress/no-unnecessary-waiting cy.mount(() => ( - + {{ - default: ({ isHovering, props }: any) =>
foobar
, + default: ({ isHovering, props }: any) =>
foobar
, }}
diff --git a/packages/vuetify/src/components/VIcon/__tests__/VIcon.spec.cy.tsx b/packages/vuetify/src/components/VIcon/__tests__/VIcon.spec.cy.tsx index bcab4aeb91d..345d2b3302b 100644 --- a/packages/vuetify/src/components/VIcon/__tests__/VIcon.spec.cy.tsx +++ b/packages/vuetify/src/components/VIcon/__tests__/VIcon.spec.cy.tsx @@ -32,7 +32,7 @@ describe('VIcon', () => { defaultSet: 'mdi', sets: { foo: { - component: props => , + component: props => , }, }, }, @@ -71,7 +71,7 @@ describe('VIcon', () => { defaultSet: 'mdi', sets: { foo: { - component: props => , + component: props => , }, }, }, diff --git a/packages/vuetify/src/components/VInput/VInput.tsx b/packages/vuetify/src/components/VInput/VInput.tsx index 00309734b23..9167ed25ea9 100644 --- a/packages/vuetify/src/components/VInput/VInput.tsx +++ b/packages/vuetify/src/components/VInput/VInput.tsx @@ -137,15 +137,15 @@ export const VInput = genericComponent()({ key="prepend-icon" name="prepend" /> - ) } + )} - ) } + )} { slots.default && (
{ slots.default?.(slotProps.value) }
- ) } + )} { hasAppend && (
@@ -154,11 +154,11 @@ export const VInput = genericComponent()({ key="append-icon" name="append" /> - ) } + )} { slots.append?.(slotProps.value) }
- ) } + )} { hasDetails && (
@@ -174,7 +174,7 @@ export const VInput = genericComponent()({ { slots.details?.(slotProps.value) }
- ) } + )} ) }) diff --git a/packages/vuetify/src/components/VInput/__tests__/VInput.spec.cy.tsx b/packages/vuetify/src/components/VInput/__tests__/VInput.spec.cy.tsx index 2148a670487..8c816ba08fa 100644 --- a/packages/vuetify/src/components/VInput/__tests__/VInput.spec.cy.tsx +++ b/packages/vuetify/src/components/VInput/__tests__/VInput.spec.cy.tsx @@ -20,7 +20,7 @@ const stories = Object.fromEntries(Object.entries({ { cloneVNode(v, { density }) } { cloneVNode(v, { density, modelValue: 'Value' }) } - )) } + ))} )])) diff --git a/packages/vuetify/src/components/VItemGroup/VItemGroup.tsx b/packages/vuetify/src/components/VItemGroup/VItemGroup.tsx index e15d5b9101f..783d96405bf 100644 --- a/packages/vuetify/src/components/VItemGroup/VItemGroup.tsx +++ b/packages/vuetify/src/components/VItemGroup/VItemGroup.tsx @@ -43,7 +43,7 @@ export const VItemGroup = genericComponent()({ next, prev, selected: selected.value, - }) } + })} ) }, diff --git a/packages/vuetify/src/components/VItemGroup/__tests__/VItemGroup.spec.cy.tsx b/packages/vuetify/src/components/VItemGroup/__tests__/VItemGroup.spec.cy.tsx index 4aaffe8c8a7..fd835ae5a06 100644 --- a/packages/vuetify/src/components/VItemGroup/__tests__/VItemGroup.spec.cy.tsx +++ b/packages/vuetify/src/components/VItemGroup/__tests__/VItemGroup.spec.cy.tsx @@ -10,12 +10,12 @@ describe('VItemGroup', () => { {{ - default: props => Foo, + default: props => Foo, }} {{ - default: props => Bar, + default: props => Bar, }} diff --git a/packages/vuetify/src/components/VLayout/__tests__/VLayout.spec.cy.tsx b/packages/vuetify/src/components/VLayout/__tests__/VLayout.spec.cy.tsx index c80598ffb07..14129a443ee 100644 --- a/packages/vuetify/src/components/VLayout/__tests__/VLayout.spec.cy.tsx +++ b/packages/vuetify/src/components/VLayout/__tests__/VLayout.spec.cy.tsx @@ -29,9 +29,9 @@ describe('VLayout', () => {
- {createRange(10).map(_ =>
hello
)} + { createRange(10).map(_ =>
hello
) } - {createRange(100).map(_ =>
hello
)} + { createRange(100).map(_ =>
hello
) }
@@ -48,9 +48,9 @@ describe('VLayout', () => {
- {createRange(10).map(_ =>
hello
)} + { createRange(10).map(_ =>
hello
) } - {createRange(100).map(_ =>
hello
)} + { createRange(100).map(_ =>
hello
) }
diff --git a/packages/vuetify/src/components/VList/VListGroup.tsx b/packages/vuetify/src/components/VList/VListGroup.tsx index 58e3d202e74..69fe6a44eec 100644 --- a/packages/vuetify/src/components/VList/VListGroup.tsx +++ b/packages/vuetify/src/components/VList/VListGroup.tsx @@ -106,7 +106,7 @@ export const VListGroup = genericComponent()({ { slots.activator({ props: activatorProps.value, isOpen: isOpen.value }) } - ) } + )}
diff --git a/packages/vuetify/src/components/VList/VListItem.tsx b/packages/vuetify/src/components/VList/VListItem.tsx index f02ca8ca558..d76b2670e96 100644 --- a/packages/vuetify/src/components/VList/VListItem.tsx +++ b/packages/vuetify/src/components/VList/VListItem.tsx @@ -215,11 +215,11 @@ export const VListItem = genericComponent()({
{ props.prependAvatar && ( - ) } + )} { props.prependIcon && ( - ) } + )} { slots.prepend && ( ()({ > { slots.prepend(slotProps.value) } - ) } + )}
- ) } + )}
{ hasTitle && ( - { slots.title?.({ title: props.title }) ?? props.title} + { slots.title?.({ title: props.title }) ?? props.title } - ) } + )} { hasSubtitle && ( { slots.subtitle?.({ subtitle: props.subtitle }) ?? props.subtitle } - ) } + )} { slots.default?.(slotProps.value) }
diff --git a/packages/vuetify/src/components/VList/VListSubheader.tsx b/packages/vuetify/src/components/VList/VListSubheader.tsx index 962610d71ef..ba59a7b47c8 100644 --- a/packages/vuetify/src/components/VList/VListSubheader.tsx +++ b/packages/vuetify/src/components/VList/VListSubheader.tsx @@ -40,7 +40,7 @@ export const VListSubheader = genericComponent()({
{ slots.default?.() ?? props.title }
- ) } + )} ) }) diff --git a/packages/vuetify/src/components/VList/__tests__/VList.spec.cy.tsx b/packages/vuetify/src/components/VList/__tests__/VList.spec.cy.tsx index 0fcfabe5a16..26f646b42de 100644 --- a/packages/vuetify/src/components/VList/__tests__/VList.spec.cy.tsx +++ b/packages/vuetify/src/components/VList/__tests__/VList.spec.cy.tsx @@ -76,7 +76,7 @@ describe('VList', () => { const wrapper = mountFunction(( - + )) @@ -107,7 +107,7 @@ describe('VList', () => { {{ - item: item => , + item: item => , }} diff --git a/packages/vuetify/src/components/VList/__tests__/VListGroup.spec.cy.tsx b/packages/vuetify/src/components/VList/__tests__/VListGroup.spec.cy.tsx index 3128ee95e36..89535931f7a 100644 --- a/packages/vuetify/src/components/VList/__tests__/VListGroup.spec.cy.tsx +++ b/packages/vuetify/src/components/VList/__tests__/VListGroup.spec.cy.tsx @@ -17,7 +17,7 @@ describe('VListGroup', () => { - {{ activator: props => }} + {{ activator: props => }} @@ -34,7 +34,7 @@ describe('VListGroup', () => { {{ - activator: props => , + activator: props => , default: () => ( <> diff --git a/packages/vuetify/src/components/VList/__tests__/VListItem.spec.cy.tsx b/packages/vuetify/src/components/VList/__tests__/VListItem.spec.cy.tsx index ecb61ffb8a6..e58eec018cc 100644 --- a/packages/vuetify/src/components/VList/__tests__/VListItem.spec.cy.tsx +++ b/packages/vuetify/src/components/VList/__tests__/VListItem.spec.cy.tsx @@ -31,8 +31,8 @@ describe('VListItem', () => { return () => ( - - + + ) }, diff --git a/packages/vuetify/src/components/VMessages/VMessages.tsx b/packages/vuetify/src/components/VMessages/VMessages.tsx index 8c3238ae84b..e52c778fb26 100644 --- a/packages/vuetify/src/components/VMessages/VMessages.tsx +++ b/packages/vuetify/src/components/VMessages/VMessages.tsx @@ -68,7 +68,7 @@ export const VMessages = genericComponent()({ { slots.message ? slots.message({ message }) : message }
)) - ) } + )} )) diff --git a/packages/vuetify/src/components/VOverlay/VOverlay.tsx b/packages/vuetify/src/components/VOverlay/VOverlay.tsx index b2905cae9d8..bc64c9a2209 100644 --- a/packages/vuetify/src/components/VOverlay/VOverlay.tsx +++ b/packages/vuetify/src/components/VOverlay/VOverlay.tsx @@ -241,7 +241,7 @@ export const VOverlay = genericComponent()({ props: mergeProps({ ref: activatorRef, }, toHandlers(activatorEvents.value), props.activatorProps), - }) } + })} { isMounted.value && ( ()({ persisted transition={ props.transition } target={ activatorEl.value } - onAfterLeave={() => { onAfterLeave(); emit('afterLeave') }} + onAfterLeave={ () => { onAfterLeave(); emit('afterLeave') } } >
()({ { props.showFirstLastPage && (
  • { slots.first ? slots.first(controls.value.first) : ( - - ) } + + )}
  • - ) } + )}
  • { slots.prev ? slots.prev(controls.value.prev) : ( - - ) } + + )}
  • { items.value.map((item, index) => ( @@ -343,10 +343,10 @@ export const VPagination = genericComponent()({ data-test="v-pagination-item" > { slots.item ? slots.item(item) : ( - { item.page } - ) } + { item.page } + )} - )) } + ))}
  • ()({ data-test="v-pagination-next" > { slots.next ? slots.next(controls.value.next) : ( - - ) } + + )}
  • { props.showFirstLastPage && ( @@ -365,10 +365,10 @@ export const VPagination = genericComponent()({ data-test="v-pagination-last" > { slots.last ? slots.last(controls.value.last) : ( - - ) } + + )} - ) } + )} )) diff --git a/packages/vuetify/src/components/VPagination/__tests__/VPagination.spec.cy.tsx b/packages/vuetify/src/components/VPagination/__tests__/VPagination.spec.cy.tsx index 47e92865e6d..211fc13b790 100644 --- a/packages/vuetify/src/components/VPagination/__tests__/VPagination.spec.cy.tsx +++ b/packages/vuetify/src/components/VPagination/__tests__/VPagination.spec.cy.tsx @@ -11,7 +11,7 @@ import { defineComponent, ref } from 'vue' describe('VPagination', () => { it('should render set length', () => { cy.mount(() => ( - + )) cy.get('.v-pagination__item').should('have.length', 3) @@ -19,7 +19,7 @@ describe('VPagination', () => { it('should react to mouse navigation', () => { cy.mount(() => ( - + )) cy.get('.v-pagination__item').eq(1).find('.v-btn').trigger('click') @@ -39,7 +39,7 @@ describe('VPagination', () => { it('should react to keyboard navigation', () => { cy.mount(defineComponent(() => { const model = ref(2) - return () => + return () => })) cy.get('.v-pagination__item').first().find('.v-btn').focus() diff --git a/packages/vuetify/src/components/VProgressCircular/VProgressCircular.tsx b/packages/vuetify/src/components/VProgressCircular/VProgressCircular.tsx index fcc30196726..4f1dbca1f98 100644 --- a/packages/vuetify/src/components/VProgressCircular/VProgressCircular.tsx +++ b/packages/vuetify/src/components/VProgressCircular/VProgressCircular.tsx @@ -134,7 +134,7 @@ export const VProgressCircular = genericComponent()({
    { slots.default({ value: normalizedValue.value }) }
    - ) } + )} )) diff --git a/packages/vuetify/src/components/VProgressLinear/VProgressLinear.tsx b/packages/vuetify/src/components/VProgressLinear/VProgressLinear.tsx index 42e579dee94..aba8883efa4 100644 --- a/packages/vuetify/src/components/VProgressLinear/VProgressLinear.tsx +++ b/packages/vuetify/src/components/VProgressLinear/VProgressLinear.tsx @@ -143,7 +143,7 @@ export const VProgressLinear = genericComponent()({ '--v-progress-linear-stream-to': convertToUnit(height.value * (isReversed.value ? 1 : -1)), }} /> - ) } + )}
    ()({ /> ) : (
    - { ['long', 'short'].map(bar => ( + {['long', 'short'].map(bar => (
    ()({ ]} style={ barColorStyles.value } /> - )) } + ))}
    - ) } + )} { slots.default && (
    { slots.default({ value: normalizedValue.value, buffer: normalizedBuffer.value }) }
    - ) } + )} )) diff --git a/packages/vuetify/src/components/VProgressLinear/__tests__/VProgressLinear.spec.cy.tsx b/packages/vuetify/src/components/VProgressLinear/__tests__/VProgressLinear.spec.cy.tsx index dabb37620a2..484e8940819 100644 --- a/packages/vuetify/src/components/VProgressLinear/__tests__/VProgressLinear.spec.cy.tsx +++ b/packages/vuetify/src/components/VProgressLinear/__tests__/VProgressLinear.spec.cy.tsx @@ -9,7 +9,7 @@ describe('VProgressLinear', () => { it('supports modelValue prop', () => { cy.mount(() => ( - + )) .get('.v-progress-linear__determinate') @@ -21,7 +21,7 @@ describe('VProgressLinear', () => { cy.mount(() => ( - + )) @@ -33,7 +33,7 @@ describe('VProgressLinear', () => { it('supports reverse prop', () => { cy.mount(() => ( - + )) .get('.v-progress-linear__determinate') @@ -45,7 +45,7 @@ describe('VProgressLinear', () => { cy.mount(() => ( - + )) @@ -57,7 +57,7 @@ describe('VProgressLinear', () => { it('supports color props', () => { cy.mount(() => ( - + )) .get('.v-progress-linear__determinate') @@ -69,7 +69,7 @@ describe('VProgressLinear', () => { it('supports indeterminate prop', () => { cy.mount(() => ( - + )) .get('.v-progress-linear__indeterminate') @@ -79,7 +79,7 @@ describe('VProgressLinear', () => { it('supports bufferValue prop', () => { cy.mount(() => ( - + )) .get('.v-progress-linear__background') @@ -89,7 +89,7 @@ describe('VProgressLinear', () => { it('supports height prop', () => { cy.mount(() => ( - + )) .get('.v-progress-linear') @@ -99,7 +99,7 @@ describe('VProgressLinear', () => { it('supports active prop', () => { cy.mount(() => ( - + )) .get('.v-progress-linear') @@ -124,7 +124,7 @@ describe('VProgressLinear', () => { it('supports default slot', () => { cy.mount(() => ( - + {{ default: (props: any) =>
    { props.value }%
    , }} diff --git a/packages/vuetify/src/components/VRadioGroup/VRadioGroup.tsx b/packages/vuetify/src/components/VRadioGroup/VRadioGroup.tsx index 298a33f6123..eb071bc0f3d 100644 --- a/packages/vuetify/src/components/VRadioGroup/VRadioGroup.tsx +++ b/packages/vuetify/src/components/VRadioGroup/VRadioGroup.tsx @@ -93,7 +93,7 @@ export const VRadioGroup = genericComponent()({ { label } - ) } + )} ()({ startThumbRef.value?.$el.blur() stopThumbRef.value?.$el.focus() } - } } + }} onBlur={ () => { blur() activeThumbRef.value = undefined - } } + }} min={ min.value } max={ model.value[1] } position={ trackStart.value } @@ -232,11 +232,11 @@ export const VRangeSlider = genericComponent()({ stopThumbRef.value?.$el.blur() startThumbRef.value?.$el.focus() } - } } + }} onBlur={ () => { blur() activeThumbRef.value = undefined - } } + }} min={ model.value[0] } max={ max.value } position={ trackStop.value } diff --git a/packages/vuetify/src/components/VRating/VRating.tsx b/packages/vuetify/src/components/VRating/VRating.tsx index 0ea577eab24..2d53d97ebdf 100644 --- a/packages/vuetify/src/components/VRating/VRating.tsx +++ b/packages/vuetify/src/components/VRating/VRating.tsx @@ -268,7 +268,7 @@ export const VRating = genericComponent()({ ) : ( - ) } + )}
    { hasLabels && props.itemLabelPosition === 'bottom' @@ -276,7 +276,7 @@ export const VRating = genericComponent()({ : undefined }
    - )) } + ))} ) }) diff --git a/packages/vuetify/src/components/VSelect/VSelect.tsx b/packages/vuetify/src/components/VSelect/VSelect.tsx index 4834bd03817..5515b404125 100644 --- a/packages/vuetify/src/components/VSelect/VSelect.tsx +++ b/packages/vuetify/src/components/VSelect/VSelect.tsx @@ -268,7 +268,7 @@ export const VSelect = genericComponent { !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? ( - )) } + ))} { slots['prepend-item']?.() } @@ -298,7 +298,7 @@ export const VSelect = genericComponent - ) } + )} { selections.value.map((item, index) => { @@ -340,13 +340,13 @@ export const VSelect = genericComponent, - ) } + )} ) )}
    ) - }) } + })} ), }} diff --git a/packages/vuetify/src/components/VSelect/__tests__/VSelect.spec.cy.tsx b/packages/vuetify/src/components/VSelect/__tests__/VSelect.spec.cy.tsx index d09d8e78842..7a3217e76a2 100644 --- a/packages/vuetify/src/components/VSelect/__tests__/VSelect.spec.cy.tsx +++ b/packages/vuetify/src/components/VSelect/__tests__/VSelect.spec.cy.tsx @@ -65,8 +65,8 @@ describe('VSelect', () => { cy.mount(() => ( { const selectedItems = ref(['California', 'Colorado']) cy.mount(() => ( - + )) cy.get('.v-select').click() @@ -137,8 +137,8 @@ describe('VSelect', () => { cy.mount(() => ( { cy.mount(() => ( )) @@ -219,8 +219,8 @@ describe('VSelect', () => { cy.mount(() => ( @@ -253,7 +253,7 @@ describe('VSelect', () => { ]) cy.mount(() => ( - + )) cy.get('.v-select').click() diff --git a/packages/vuetify/src/components/VSelectionControl/VSelectionControl.tsx b/packages/vuetify/src/components/VSelectionControl/VSelectionControl.tsx index bfd504e5e90..6f1dc1c7ca1 100644 --- a/packages/vuetify/src/components/VSelectionControl/VSelectionControl.tsx +++ b/packages/vuetify/src/components/VSelectionControl/VSelectionControl.tsx @@ -257,7 +257,7 @@ export const VSelectionControl = genericComponent() => { onBlur, id: id.value, }, - } as SelectionControlSlot) } + } as SelectionControlSlot)} @@ -265,7 +265,7 @@ export const VSelectionControl = genericComponent() => { { label } - ) } + )} ) }) diff --git a/packages/vuetify/src/components/VSelectionControl/__tests__/VSelectionControl.spec.cy.tsx b/packages/vuetify/src/components/VSelectionControl/__tests__/VSelectionControl.spec.cy.tsx index 4347abb3442..953e9015133 100644 --- a/packages/vuetify/src/components/VSelectionControl/__tests__/VSelectionControl.spec.cy.tsx +++ b/packages/vuetify/src/components/VSelectionControl/__tests__/VSelectionControl.spec.cy.tsx @@ -15,7 +15,7 @@ describe('VSelectionControl', () => { color={ color } label={ `${color} Selection Control` } /> - )) } + ))} )) .get('div.v-selection-control') diff --git a/packages/vuetify/src/components/VSlideGroup/VSlideGroup.tsx b/packages/vuetify/src/components/VSlideGroup/VSlideGroup.tsx index ab6279d6b73..cee38d199e5 100644 --- a/packages/vuetify/src/components/VSlideGroup/VSlideGroup.tsx +++ b/packages/vuetify/src/components/VSlideGroup/VSlideGroup.tsx @@ -364,9 +364,9 @@ export const VSlideGroup = genericComponent()({ - ) } + )} - ) } + )}
    ()({ - ) } + )}
    - ) } + )} )) diff --git a/packages/vuetify/src/components/VSlideGroup/__tests__/VSlideGroup.spec.cy.tsx b/packages/vuetify/src/components/VSlideGroup/__tests__/VSlideGroup.spec.cy.tsx index 87fb088bc4b..302aa246420 100644 --- a/packages/vuetify/src/components/VSlideGroup/__tests__/VSlideGroup.spec.cy.tsx +++ b/packages/vuetify/src/components/VSlideGroup/__tests__/VSlideGroup.spec.cy.tsx @@ -16,7 +16,7 @@ describe('VSlideGroup', () => { { props => ( { {{ - prev: props =>
    prev
    , - next: props =>
    next
    , + prev: props =>
    prev
    , + next: props =>
    next
    , default: () => createRange(6).map(i => ( { i } @@ -190,7 +190,7 @@ describe('VSlideGroup', () => { { createRange(10).map(i => ( - { props => { i } } + { props => { i } } ))} @@ -208,7 +208,7 @@ describe('VSlideGroup', () => { { createRange(8).map(i => ( - { props => { i } } + { props => { i } } ))} @@ -229,7 +229,7 @@ describe('VSlideGroup', () => { { createRange(8).map(i => ( - { props => { i } } + { props => { i } } ))} diff --git a/packages/vuetify/src/components/VSlider/VSliderTrack.tsx b/packages/vuetify/src/components/VSlider/VSliderTrack.tsx index 89326223097..faff4199571 100644 --- a/packages/vuetify/src/components/VSlider/VSliderTrack.tsx +++ b/packages/vuetify/src/components/VSlider/VSliderTrack.tsx @@ -163,7 +163,7 @@ export const VSliderTrack = genericComponent()({ > { computedTicks.value } - ) } + )} ) }) diff --git a/packages/vuetify/src/components/VSlider/__tests__/VSlider.spec.cy.tsx b/packages/vuetify/src/components/VSlider/__tests__/VSlider.spec.cy.tsx index 15cacc0e234..2ba67c8e1c2 100644 --- a/packages/vuetify/src/components/VSlider/__tests__/VSlider.spec.cy.tsx +++ b/packages/vuetify/src/components/VSlider/__tests__/VSlider.spec.cy.tsx @@ -48,7 +48,7 @@ describe('VSlider', () => { cy.mount(() => ( - + )) @@ -118,7 +118,7 @@ describe('VSlider', () => { cy.mount(() => ( - + )) @@ -139,9 +139,9 @@ describe('VSlider', () => { cy.mount(() => ( - + - + )) diff --git a/packages/vuetify/src/components/VSnackbar/VSnackbar.tsx b/packages/vuetify/src/components/VSnackbar/VSnackbar.tsx index dc0dc271aab..e6276ce1c3c 100644 --- a/packages/vuetify/src/components/VSnackbar/VSnackbar.tsx +++ b/packages/vuetify/src/components/VSnackbar/VSnackbar.tsx @@ -116,7 +116,7 @@ export const VSnackbar = genericComponent()({ ], onPointerenter, onPointerleave: startTimeout, - }, overlayProps.contentProps) } + }, overlayProps.contentProps)} persistent noClickAnimation scrim={ false } @@ -134,7 +134,7 @@ export const VSnackbar = genericComponent()({ > { slots.default() } - ) } + )} { slots.actions && ( ()({ ) )}
    - ) } + )} ), }} diff --git a/packages/vuetify/src/components/VTable/VTable.tsx b/packages/vuetify/src/components/VTable/VTable.tsx index efa8dc283b4..524005f5bfe 100644 --- a/packages/vuetify/src/components/VTable/VTable.tsx +++ b/packages/vuetify/src/components/VTable/VTable.tsx @@ -61,7 +61,7 @@ export const VTable = genericComponent()({ { slots.default() } - ) : slots.wrapper?.() } + ) : slots.wrapper?.()} { slots.bottom?.() } diff --git a/packages/vuetify/src/components/VTabs/VTab.tsx b/packages/vuetify/src/components/VTabs/VTab.tsx index 24257e47640..07e69425eed 100644 --- a/packages/vuetify/src/components/VTabs/VTab.tsx +++ b/packages/vuetify/src/components/VTabs/VTab.tsx @@ -156,7 +156,7 @@ export const VTab = genericComponent()({ ]} style={ sliderColorStyles.value } /> - ) } + )} ) }) diff --git a/packages/vuetify/src/components/VTabs/VTabs.tsx b/packages/vuetify/src/components/VTabs/VTabs.tsx index 88f464c4aa0..e6a474a68af 100644 --- a/packages/vuetify/src/components/VTabs/VTabs.tsx +++ b/packages/vuetify/src/components/VTabs/VTabs.tsx @@ -116,7 +116,7 @@ export const VTabs = genericComponent()({ > { slots.default ? slots.default() : parsedItems.value.map(item => ( - )) } + ))} )) diff --git a/packages/vuetify/src/components/VTabs/__tests__/VTabs.spec.cy.tsx b/packages/vuetify/src/components/VTabs/__tests__/VTabs.spec.cy.tsx index 334eee4900a..ed32de0375c 100644 --- a/packages/vuetify/src/components/VTabs/__tests__/VTabs.spec.cy.tsx +++ b/packages/vuetify/src/components/VTabs/__tests__/VTabs.spec.cy.tsx @@ -132,7 +132,7 @@ describe('VTabs', () => { const model = ref('B') cy.mount(({ show = true }: { show?: boolean }) => (
    - model.value = v as string}> + model.value = v as string }> A B C diff --git a/packages/vuetify/src/components/VTextField/VTextField.tsx b/packages/vuetify/src/components/VTextField/VTextField.tsx index 2e0937474ab..ebbf3f65da9 100644 --- a/packages/vuetify/src/components/VTextField/VTextField.tsx +++ b/packages/vuetify/src/components/VTextField/VTextField.tsx @@ -228,7 +228,7 @@ export const VTextField = genericComponent { props.prefix } - ) } + )} { slots.default ? (
    - ) : cloneVNode(inputNode, { class: fieldClass }) } + ) : cloneVNode(inputNode, { class: fieldClass })} { props.suffix && ( { props.suffix } - ) } + )} ) }, @@ -266,7 +266,7 @@ export const VTextField = genericComponent - ) } + )} ) : undefined, }} diff --git a/packages/vuetify/src/components/VTextField/__tests__/VTextField.spec.cy.tsx b/packages/vuetify/src/components/VTextField/__tests__/VTextField.spec.cy.tsx index 3ea45515576..944212185f4 100644 --- a/packages/vuetify/src/components/VTextField/__tests__/VTextField.spec.cy.tsx +++ b/packages/vuetify/src/components/VTextField/__tests__/VTextField.spec.cy.tsx @@ -20,7 +20,7 @@ const stories = Object.fromEntries(Object.entries({ { cloneVNode(v, { variant }) } { cloneVNode(v, { variant, modelValue: 'Value' }) }
    - )) } + ))}
    )])) diff --git a/packages/vuetify/src/components/VTextarea/VTextarea.tsx b/packages/vuetify/src/components/VTextarea/VTextarea.tsx index 3dd07e497ec..eda1ed729f4 100644 --- a/packages/vuetify/src/components/VTextarea/VTextarea.tsx +++ b/packages/vuetify/src/components/VTextarea/VTextarea.tsx @@ -251,7 +251,7 @@ export const VTextarea = genericComponent { props.prefix } - ) } + )}