From 7d42299c1f5f18ae720b6c3c7e10997acaffc9af Mon Sep 17 00:00:00 2001 From: John Leider Date: Sun, 20 Oct 2024 13:05:22 -0500 Subject: [PATCH 01/35] chore(VList): remove unused SASS variables --- packages/vuetify/src/components/VList/_variables.scss | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/packages/vuetify/src/components/VList/_variables.scss b/packages/vuetify/src/components/VList/_variables.scss index b173a4cb3bd..7f70ee8978b 100644 --- a/packages/vuetify/src/components/VList/_variables.scss +++ b/packages/vuetify/src/components/VList/_variables.scss @@ -23,15 +23,12 @@ $list-nav-subheader-font-size: .75rem !default; $list-subheader-color: rgba(var(--v-theme-on-surface), var(--v-medium-emphasis-opacity)) !default; $list-subheader-font-size: .875rem !default; $list-subheader-font-weight: 400 !default; -$list-subheader-inset-margin: 56px !default; $list-subheader-inset-padding-start: 56px !default; $list-subheader-line-height: 1.375rem !default; $list-subheader-min-height: 40px !default; $list-subheader-padding-end: 16px !default; -$list-subheader-padding-start: 16px !default; $list-subheader-padding-top: 0 !default; $list-subheader-min-height-multiplier: 1 !default; -$list-subheader-text-opacity: var(--v-medium-emphasis-opacity) !default; $list-subheader-transition: 0.2s min-height settings.$standard-easing !default; // VListItem @@ -50,7 +47,6 @@ $list-item-slim-prepend-size: 28px !default; $list-item-plain-opacity: .62 !default; $list-item-rounded-border-radius: map.get(settings.$rounded, null) !default; $list-item-one-line-min-height: 48px !default; -$list-item-one-line-padding: 8px 16px !default; $list-item-two-line-min-height: 64px !default; $list-item-two-line-padding: 12px 16px !default; $list-item-three-line-min-height: 88px !default; @@ -58,11 +54,8 @@ $list-item-three-line-padding: 16px 16px !default; $list-item-action-spacer-width: 16px !default; $list-item-slim-action-spacer-width: 4px !default; -$list-item-avatar-align-self: flex-start !default; $list-item-avatar-margin-end: 16px !default; $list-item-avatar-margin-start: 16px !default; -$list-item-avatar-size: 40px !default; -$list-item-avatar-margin-y: 4px !default; $list-item-slim-spacer-width: 20px !default; $list-item-slim-avatar-spacer-width: 4px !default; @@ -71,8 +64,6 @@ $list-item-action-margin-start: 8px !default; $list-item-icon-margin-end: 32px !default; $list-item-icon-margin-start: 32px !default; -$list-item-slim-icon-margin: 8px !default; -$list-item-icon-size: 16px !default; $list-item-media-margin-bottom: 0 !default; $list-item-media-margin-end: 16px !default; @@ -105,13 +96,11 @@ $list-item-subtitle-word-break: initial !default; $list-item-title-font-size: tools.map-deep-get(settings.$typography, 'body-1', 'size') !default; $list-item-title-font-weight: tools.map-deep-get(settings.$typography, 'body-1', 'weight') !default; -$list-item-title-header-padding: 0 !default; $list-item-title-hyphens: auto !default; $list-item-title-letter-spacing: tools.map-deep-get(settings.$typography, 'subtitle-1', 'letter-spacing') !default; $list-item-title-line-height: tools.map-deep-get(settings.$typography, 'body-1', 'line-height') !default; $list-item-title-overflow-wrap: normal !default; $list-item-title-padding: 0 !default; -$list-item-title-text-overflow: ellipsis !default; $list-item-title-text-transform: none !default; $list-item-title-word-break: normal !default; $list-item-title-word-wrap: break-word !default; From 3fde52a7634f32918049c8f44acd019f0a536a55 Mon Sep 17 00:00:00 2001 From: Shinji Sakai Date: Wed, 23 Oct 2024 21:10:10 +0900 Subject: [PATCH 02/35] docs(api): add missing descriptions (#20609) Co-authored-by: Kael --- .../src/locale/en/VCalendar.json | 4 ++-- .../src/locale/en/VConfirmEdit.json | 1 + .../src/locale/en/VDataIterator.json | 1 + .../src/locale/en/VDataTable.json | 8 +++++++ .../src/locale/en/VDataTableFooter.json | 3 +++ .../src/locale/en/VDataTableHeader.json | 13 ------------ .../src/locale/en/VDataTableRow.json | 10 +++++++++ .../src/locale/en/VDataTableServer.json | 8 ++++++- .../src/locale/en/VDataTableVirtual.json | 8 +++++++ .../src/locale/en/VDatePicker.json | 13 ++++++++++++ .../src/locale/en/VDatePickerControls.json | 15 +++++++++++++ .../src/locale/en/VDatePickerHeader.json | 6 ++++++ .../src/locale/en/VDatePickerMonth.json | 14 +++++++++++++ .../src/locale/en/VDatePickerMonths.json | 5 +++++ .../src/locale/en/VDatePickerYear.json | 21 +++++++++++++++++++ .../src/locale/en/VDatePickerYears.json | 7 +++++++ .../api-generator/src/locale/en/VDialog.json | 1 + .../src/locale/en/VDialogTransition.json | 6 +++++- .../src/locale/en/VExpansionPanel.json | 6 ++++-- .../src/locale/en/VExpansionPanelTitle.json | 7 ++++++- .../src/locale/en/VExpansionPanels.json | 5 +++-- .../api-generator/src/locale/en/VImg.json | 7 +++++++ .../api-generator/src/locale/en/VInput.json | 2 ++ .../src/locale/en/VLayoutItem.json | 6 +++++- .../api-generator/src/locale/en/VList.json | 21 ++++++++++++++++++- .../src/locale/en/VListGroup.json | 3 ++- .../src/locale/en/VListSubheader.json | 9 +++++++- .../src/locale/en/VLocaleProvider.json | 8 ++++++- .../api-generator/src/locale/en/VMain.json | 6 +++++- .../api-generator/src/locale/en/VMenu.json | 10 +++++++++ .../src/locale/en/VNavigationDrawer.json | 6 +++++- .../src/locale/en/VNumberInput.json | 14 +++++++++++++ .../api-generator/src/locale/en/VOverlay.json | 13 +++++++++++- .../src/locale/en/VParallax.json | 6 ++++++ .../api-generator/src/locale/en/VPicker.json | 3 +++ .../api-generator/src/locale/en/VRating.json | 3 ++- .../src/locale/en/VResponsive.json | 3 +++ .../src/locale/en/VSlideGroup.json | 6 ++++++ .../src/locale/en/VSnackbar.json | 9 ++++++++ .../src/locale/en/VSparkline.json | 6 +++++- .../src/locale/en/VTextarea.json | 3 ++- .../src/locale/en/VThemeProvider.json | 3 ++- .../src/locale/en/VTimePicker.json | 2 +- .../src/locale/en/VTimePickerClock.json | 18 ++++++++++++++++ .../api-generator/src/locale/en/VTooltip.json | 1 + .../src/locale/en/VTreeview.json | 3 ++- .../src/locale/en/VTreeviewGroup.json | 5 +++++ .../src/locale/en/VTreeviewItem.json | 9 ++++++++ .../api-generator/src/locale/en/useDate.json | 15 ++++++++++++- .../src/locale/en/useDisplay.json | 4 +++- .../api-generator/templates/component.d.ts | 8 ++++++- .../VDataTable/VDataTableFooter.tsx | 2 ++ 52 files changed, 337 insertions(+), 39 deletions(-) delete mode 100644 packages/api-generator/src/locale/en/VDataTableHeader.json create mode 100644 packages/api-generator/src/locale/en/VDatePickerControls.json create mode 100644 packages/api-generator/src/locale/en/VDatePickerHeader.json create mode 100644 packages/api-generator/src/locale/en/VDatePickerMonths.json create mode 100644 packages/api-generator/src/locale/en/VDatePickerYear.json create mode 100644 packages/api-generator/src/locale/en/VDatePickerYears.json create mode 100644 packages/api-generator/src/locale/en/VNumberInput.json create mode 100644 packages/api-generator/src/locale/en/VTimePickerClock.json create mode 100644 packages/api-generator/src/locale/en/VTreeviewGroup.json create mode 100644 packages/api-generator/src/locale/en/VTreeviewItem.json diff --git a/packages/api-generator/src/locale/en/VCalendar.json b/packages/api-generator/src/locale/en/VCalendar.json index f4fd72b61c6..298c322a760 100644 --- a/packages/api-generator/src/locale/en/VCalendar.json +++ b/packages/api-generator/src/locale/en/VCalendar.json @@ -1,7 +1,6 @@ { "props": { "allowedDates": "Determines which dates are selectable.", - "displayValue": "Value to display for the component, possibly a formatted date.", "hideHeader": "Determines whether the header is hidden in the calendar view.", "hideWeekNumber": "Toggles the display of week numbers in a calendar view.", "intervals": "Total number of intervals in a day view.", @@ -14,7 +13,8 @@ "year": "Specifies the year for the calendar view." }, "slots": { - "header": "Slot for custom header content." + "header": "Slot for custom header content.", + "event": "Slot for custom event content." }, "events": { "next": "Emitted when moving to the next time period.", diff --git a/packages/api-generator/src/locale/en/VConfirmEdit.json b/packages/api-generator/src/locale/en/VConfirmEdit.json index 61341dd2aea..8828e91097d 100644 --- a/packages/api-generator/src/locale/en/VConfirmEdit.json +++ b/packages/api-generator/src/locale/en/VConfirmEdit.json @@ -5,6 +5,7 @@ }, "events": { "ok": "The event emitted when the user clicks the OK button", + "save": "The event emitted when the user clicks the Save button", "cancel": "The event emitted when the user clicks the Cancel button" } } diff --git a/packages/api-generator/src/locale/en/VDataIterator.json b/packages/api-generator/src/locale/en/VDataIterator.json index 84967bc5c1d..b20df3e4fd8 100644 --- a/packages/api-generator/src/locale/en/VDataIterator.json +++ b/packages/api-generator/src/locale/en/VDataIterator.json @@ -43,6 +43,7 @@ "input": "Array of selected items.", "itemExpanded": "Event emitted when an item is expanded or closed.", "itemSelected": "Event emitted when an item is selected or deselected.", + "update:currentItems": "The `.sync` event for `currentItems` prop.", "update:expanded": "The `.sync` event for `expanded` prop.", "update:groupBy": "The `.sync` event for `groupBy` prop.", "update:itemsPerPage": "The `.sync` event for `itemsPerPage` prop.", diff --git a/packages/api-generator/src/locale/en/VDataTable.json b/packages/api-generator/src/locale/en/VDataTable.json index 2e5bdcdefb6..037caf10c0c 100644 --- a/packages/api-generator/src/locale/en/VDataTable.json +++ b/packages/api-generator/src/locale/en/VDataTable.json @@ -38,7 +38,10 @@ "virtualRows": "Virtualizes the rendering of rows. Be aware that you can not use the `body`, `body.prepend` or `body.append` slots with this prop." }, "slots": { + "[`header.${string}`]": "Slot for custom rendering of a header cell.", "[`item.${string}`]": "Slot for custom rendering of a row cell.", + "header.data-table-expand": "Slot to replace the default `v-icon` used when expanding header.", + "header": "Slot to replace the default table ``.", "body": "Slot to replace the default table ``.", "body.append": "Appends elements to the end of the default table ``.", "body.prepend": "Prepends elements to the start of the default table ``.", @@ -55,11 +58,15 @@ "heading": "Slot to add a custom header.", "header.": "Slot to customize a specific header column.", "header.data-table-select": "Slot to replace the default `v-checkbox-btn` in header.", + "headers": "An array of objects that each describe a header column. See the example below for a definition of all properties.", "item": "Slot to replace the default rendering of a row.", "item.data-table-select": "Slot to replace the default `v-checkbox-btn` used when selecting rows.", "item.data-table-expand": "Slot to replace the default `v-icon` used when expanding rows.", "item.": "Slot to customize a specific column.", "loading": "Defines content for when `loading` is true and no items are provided.", + "tbody": "Slot to replace the default table ``.", + "thead": "Slot to replace the default table ``.", + "tfoot": "Slot to replace the default table ``.", "no-data": "Defines content for when no items are provided.", "no-results": "Defines content for when `search` is provided but no results are found.", "progress": "Slot to replace the default `` component.", @@ -73,6 +80,7 @@ "pageCount": "Emits when the **pageCount** property of the **pagination** prop is updated.", "pagination": "Emits when something changed to the `pagination` which can be provided via the `pagination` prop.", "toggleSelectAll": "Emits when the `select-all` checkbox in table header is clicked. This checkbox is enabled by the **show-select** prop.", + "update:currentItems": "Emits with the items currently being displayed.", "update:expanded": "Emits when the **expanded** property of the **options** prop is updated.", "update:groupBy": "Emits when the **group-by** property of the **options** property is updated.", "update:groupDesc": "Emits when the **group-desc** property of the **options** prop is updated.", diff --git a/packages/api-generator/src/locale/en/VDataTableFooter.json b/packages/api-generator/src/locale/en/VDataTableFooter.json index a4a1cb8ac38..0ed0f4dbc14 100644 --- a/packages/api-generator/src/locale/en/VDataTableFooter.json +++ b/packages/api-generator/src/locale/en/VDataTableFooter.json @@ -12,5 +12,8 @@ "prevIcon": "Previous icon.", "prevPageLabel": "Label for previous page.", "showCurrentPage": "Show current page number between prev/next icons." + }, + "slots": { + "prepend": "Extra content placed before the default pagination." } } diff --git a/packages/api-generator/src/locale/en/VDataTableHeader.json b/packages/api-generator/src/locale/en/VDataTableHeader.json deleted file mode 100644 index 9ac97c72528..00000000000 --- a/packages/api-generator/src/locale/en/VDataTableHeader.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "props": { - "everyItem": "Indicates if all items in table are selected.", - "headers": "Array of header items to display.", - "mobile": "Renders mobile view of headers.", - "options": "Options object. Identical to the one on `v-data-table`.", - "showGroupBy": "Shows group by button.", - "singleSelect": "Toggles rendering of select-all checkbox.", - "someItems": "Indicates if one or more items in table are selected.", - "sortByText": "Sets the label text used by the default sort-by selector when `v-data-table` is rendering the mobile view.", - "sortIcon": "Icon used for sort button." - } -} diff --git a/packages/api-generator/src/locale/en/VDataTableRow.json b/packages/api-generator/src/locale/en/VDataTableRow.json index b2e97b4f05e..ee0e7bc5df6 100644 --- a/packages/api-generator/src/locale/en/VDataTableRow.json +++ b/packages/api-generator/src/locale/en/VDataTableRow.json @@ -1,6 +1,16 @@ { "props": { + "cellProps": "Props to be applied to the cell.", "index": "Row index.", "item": "Data (key, index and column values) of the displayed item." + }, + "events": { + "contextmenu": "The event emitted when the user clicks the context menu button.", + "dblclick": "The event emitted when the user double clicks the row.", + "[`item.${string}`]": "The event emitted when the user clicks the item." + }, + "slots": { + "item.data-table-expand": "Slot for the expand button in the row.", + "item.data-table-select": "Slot for the select checkbox in the row." } } diff --git a/packages/api-generator/src/locale/en/VDataTableServer.json b/packages/api-generator/src/locale/en/VDataTableServer.json index c4c85b60cf3..e361b53bd70 100644 --- a/packages/api-generator/src/locale/en/VDataTableServer.json +++ b/packages/api-generator/src/locale/en/VDataTableServer.json @@ -1,11 +1,17 @@ { "props": { - "itemsLength": "Number of all items." + "itemsLength": "Number of all items.", + "headerProps": "Pass props to the default header. See [`v-data-table-server` API](/api/v-data-table-server) for more information." }, "slots": { + "[`header.${string}`]": "Slot for a specific header. See [`v-data-table-server` API](/api/v-data-table-server) for more information.", "[`column.${string}`]": "Slot for custom rendering of a column.", "[`item.${string}`]": "Slot for custom rendering of a row cell.", "body": "Slot to replace the default rendering of the `` element.", + "body.append": "Adds content to the empty space in the body.", + "body.prepend": "Adds content to the empty space in the body.", + "header.data-table-expand": "Slot for the expand button in the header.", + "header.data-table-select": "Slot for the select-all checkbox in the header.", "bottom": "Slot to add content below the table.", "colgroup": "Slot to replace the default rendering of the `` element.", "column.data-table-expand": "Slot to replace the default `v-icon` used when expanding rows.", diff --git a/packages/api-generator/src/locale/en/VDataTableVirtual.json b/packages/api-generator/src/locale/en/VDataTableVirtual.json index e24b810ffb4..5d0638db286 100644 --- a/packages/api-generator/src/locale/en/VDataTableVirtual.json +++ b/packages/api-generator/src/locale/en/VDataTableVirtual.json @@ -1,8 +1,16 @@ { + "props": { + "headerProps": "Pass props to the default header." + }, "slots": { + "[`header.${string}`]": "Slot for a specific header. See [`v-data-table-virtual` API](/api/v-data-table-virtual) for more information.", "[`column.${string}`]": "Slot for custom rendering of a column.", "[`item.${string}`]": "Slot for custom rendering of a row cell.", + "header.data-table-expand": "Slot for the expand button in the header.", + "header.data-table-select": "Slot for the select-all checkbox in the header.", "body": "Slot to replace the default rendering of the `` element.", + "body.append": "Slot to add content below the table.", + "body.prepend": "Slot to add content above the table.", "bottom": "Slot to add content below the table.", "colgroup": "Slot to replace the default rendering of the `` element.", "column.data-table-expand": "Slot to replace the default `v-icon` used when expanding rows.", diff --git a/packages/api-generator/src/locale/en/VDatePicker.json b/packages/api-generator/src/locale/en/VDatePicker.json index 2234f5b312e..a0c4e318ffe 100644 --- a/packages/api-generator/src/locale/en/VDatePicker.json +++ b/packages/api-generator/src/locale/en/VDatePicker.json @@ -7,6 +7,12 @@ "eventColor": "Sets the color for event dot. It can be string (all events will have the same color) or `object` where attribute is the event date and value is boolean/color/array of colors for specified date or `function` taking date as a parameter and returning boolean/color/array of colors for that date.", "events": "Array of dates or object defining events or colors or function returning boolean/color/array of colors.", "expandIcon": "Icon used for **view-mode** toggle.", + "hideHeader": "Hides the header.", + "hideWeekdays": "Hides the weekdays.", + "landscape": "Changes the picker to landscape mode.", + "month": "Sets the month.", + "weekdays": "Array of weekdays.", + "year": "Sets the year.", "firstDayOfWeek": "Sets the first day of the week, starting with 0 for Sunday.", "flat": "Removes elevation.", "format": "Takes a date object and returns it in a specified format.", @@ -40,10 +46,17 @@ "yearIcon": "Sets the icon in the year selection button." }, "events": { + "update:month": "Emitted when the month changes.", + "update:year": "Emitted when the year changes.", + "update:viewMode": "Emitted when the view mode changes.", ":date": "Emitted when the specified DOM event occurs on the date button.", ":month": "Emitted when the specified DOM event occurs on the month button.", ":year": "Emitted when the specified DOM event occurs on the year button.", "change": "Reactive date picker emits `input` even when any part of the date (year/month/day) changes, but `change` event is emitted only when the day (for date pickers) or month (for month pickers) changes. If `range` prop is set, date picker emits `change` when both [from, to] are selected.", "update:pickerDate": "The `.sync` event for `picker-date` prop." + }, + "slots": { + "actions": "Slot for the actions.", + "header": "Slot for the header." } } diff --git a/packages/api-generator/src/locale/en/VDatePickerControls.json b/packages/api-generator/src/locale/en/VDatePickerControls.json new file mode 100644 index 00000000000..c8b7ee5c739 --- /dev/null +++ b/packages/api-generator/src/locale/en/VDatePickerControls.json @@ -0,0 +1,15 @@ +{ + "props": { + "modeIcon": "Icon used for the mode button.", + "nextIcon": "Icon used for the next button.", + "prevIcon": "Icon used for the previous button.", + "viewMode": "Sets the view mode of the date picker." + }, + "events": { + "click:month": "Event fired when clicking on the month.", + "click:next": "Event fired when clicking the next button.", + "click:prev": "Event fired when clicking the previous button.", + "click:year": "Event fired when clicking the date text.", + "click:text": "Event fired when clicking the year." + } +} diff --git a/packages/api-generator/src/locale/en/VDatePickerHeader.json b/packages/api-generator/src/locale/en/VDatePickerHeader.json new file mode 100644 index 00000000000..ed109816f66 --- /dev/null +++ b/packages/api-generator/src/locale/en/VDatePickerHeader.json @@ -0,0 +1,6 @@ +{ + "props": { + "header": "Sets the header content.", + "transition": "Sets the transition when the header changes." + } +} diff --git a/packages/api-generator/src/locale/en/VDatePickerMonth.json b/packages/api-generator/src/locale/en/VDatePickerMonth.json index e7697b78d2b..396bda1c277 100644 --- a/packages/api-generator/src/locale/en/VDatePickerMonth.json +++ b/packages/api-generator/src/locale/en/VDatePickerMonth.json @@ -1,7 +1,21 @@ { "props": { + "allowedDates": "Sets the allowed dates of the month.", "hideWeekdays": "Hide the days of the week letters.", + "max": "Sets the maximum date of the month.", + "min": "Sets the minimum date of the month.", + "month": "Sets the month.", + "weekdays": "Sets the weekdays of the month.", + "year": "Sets the year.", + "multiple": "Sets the multiple of the month.", + "showAdjacentMonths": "Show adjacent months.", + "showWeek": "Show the week number.", "transition": "The transition used when changing months into the future", "reverseTransition": "The transition used when changing months into the past" + }, + "events": { + "update:month": "Fired when the month changes.", + "update:year": "Fired when the year changes.", + "day": "Fired when a day is clicked." } } diff --git a/packages/api-generator/src/locale/en/VDatePickerMonths.json b/packages/api-generator/src/locale/en/VDatePickerMonths.json new file mode 100644 index 00000000000..fe4691b8cbc --- /dev/null +++ b/packages/api-generator/src/locale/en/VDatePickerMonths.json @@ -0,0 +1,5 @@ +{ + "slots": { + "month": "Slot for the month." + } +} diff --git a/packages/api-generator/src/locale/en/VDatePickerYear.json b/packages/api-generator/src/locale/en/VDatePickerYear.json new file mode 100644 index 00000000000..8b56845b0ef --- /dev/null +++ b/packages/api-generator/src/locale/en/VDatePickerYear.json @@ -0,0 +1,21 @@ +{ + "props": { + "allowedDates": "Sets the allowed dates of the month.", + "hideWeekdays": "Hide the days of the week letters.", + "max": "Sets the maximum date of the month.", + "min": "Sets the minimum date of the month.", + "month": "Sets the month.", + "weekdays": "Sets the weekdays of the month.", + "year": "Sets the year.", + "day": "The current day of the selected date.", + "multiple": "Sets the multiple of the month.", + "showAdjacentMonths": "Show adjacent months.", + "showWeek": "Show the week number.", + "transition": "The transition used when changing months into the future", + "reverseTransition": "The transition used when changing months into the past" + }, + "events": { + "update:month": "Event emitted when the month changes.", + "update:year": "Event emitted when the year changes." + } +} diff --git a/packages/api-generator/src/locale/en/VDatePickerYears.json b/packages/api-generator/src/locale/en/VDatePickerYears.json new file mode 100644 index 00000000000..85e72f00423 --- /dev/null +++ b/packages/api-generator/src/locale/en/VDatePickerYears.json @@ -0,0 +1,7 @@ +{ + "props": { + "max": "Sets the maximum date of the month.", + "min": "Sets the minimum date of the month.", + "year": "Sets the year." + } +} diff --git a/packages/api-generator/src/locale/en/VDialog.json b/packages/api-generator/src/locale/en/VDialog.json index c5cb77f7f8e..d9e1762c28c 100644 --- a/packages/api-generator/src/locale/en/VDialog.json +++ b/packages/api-generator/src/locale/en/VDialog.json @@ -20,6 +20,7 @@ "activatorEl": "Ref to the current activator element.", "animateClick": "Function invoked when user clicks outside the component and the **persistent** prop is used.", "contentEl": "Ref to the current content element.", + "scrimEl": "Ref to the current scrim element.", "globalTop": "Used by activator to determine a components position in the global stack order.", "localTop": "Used by activator to determine a components position in the local stack order.", "updateLocation": "Function used for locationStrategy positioning." diff --git a/packages/api-generator/src/locale/en/VDialogTransition.json b/packages/api-generator/src/locale/en/VDialogTransition.json index 0967ef424bc..f0afa14c071 100644 --- a/packages/api-generator/src/locale/en/VDialogTransition.json +++ b/packages/api-generator/src/locale/en/VDialogTransition.json @@ -1 +1,5 @@ -{} +{ + "props": { + "target": "Sets the target element for the transition." + } +} diff --git a/packages/api-generator/src/locale/en/VExpansionPanel.json b/packages/api-generator/src/locale/en/VExpansionPanel.json index 4dedda416cd..89adeecf64d 100644 --- a/packages/api-generator/src/locale/en/VExpansionPanel.json +++ b/packages/api-generator/src/locale/en/VExpansionPanel.json @@ -1,8 +1,10 @@ { "props": { "disabled": "Disables the expansion-panel content.", - "readonly": "Makes the expansion-panel content read only.", - "value": "Controls the opened/closed state of content." + "readonly": "Makes the expansion panel content read only.", + "focusable": "Makes the expansion panel content focusable.", + "value": "Controls the opened/closed state of content.", + "static": "Remove title size expansion when selected." }, "events": { "change": "Toggles the value of the selected panel.", diff --git a/packages/api-generator/src/locale/en/VExpansionPanelTitle.json b/packages/api-generator/src/locale/en/VExpansionPanelTitle.json index c3d385c2bf4..fd57c53bd5c 100644 --- a/packages/api-generator/src/locale/en/VExpansionPanelTitle.json +++ b/packages/api-generator/src/locale/en/VExpansionPanelTitle.json @@ -3,6 +3,11 @@ "collapseIcon": "Icon used when the expansion panel is in a collapsable state.", "expandIcon": "Icon used when the expansion panel is in a expandable state.", "hideActions": "Hide the expand icon in the content title.", - "static": "Remove title size expansion when selected." + "static": "Remove title size expansion when selected.", + "focusable": "Makes the expansion panel headers focusable.", + "readonly": "Makes the expansion panel content read only." + }, + "slots": { + "actions": "Slot for the actions." } } diff --git a/packages/api-generator/src/locale/en/VExpansionPanels.json b/packages/api-generator/src/locale/en/VExpansionPanels.json index 0fcd1a5b4b7..9c095ccb48f 100644 --- a/packages/api-generator/src/locale/en/VExpansionPanels.json +++ b/packages/api-generator/src/locale/en/VExpansionPanels.json @@ -5,9 +5,10 @@ "focusable": "Makes the expansion-panel headers focusable.", "flat": "Removes the expansion-panel's elevation and borders.", "hover": "Applies a background-color shift on hover to expansion panel headers.", - "inset": "Makes the expansion-panel open with a inset style.", + "inset": "Makes the expansion panel open with a inset style.", "popout": "Makes the expansion-panel open with an popout style.", - "readonly": "Makes the entire expansion-panel read only.", + "readonly": "Makes the entire expansion panel read only.", + "static": "Remove title size expansion when selected.", "tile": "Removes the border-radius.", "value": "Controls the opened/closed state of content in the expansion-panel. Corresponds to a zero-based index of the currently opened content. If the `multiple` prop (previously `expand` in 1.5.x) is used then it is an array of numbers where each entry corresponds to the index of the opened content. The index order is not relevant." } diff --git a/packages/api-generator/src/locale/en/VImg.json b/packages/api-generator/src/locale/en/VImg.json index 3519c534ae9..d39cb84be76 100644 --- a/packages/api-generator/src/locale/en/VImg.json +++ b/packages/api-generator/src/locale/en/VImg.json @@ -24,5 +24,12 @@ "error": "Emitted if the image fails to load.", "load": "Emitted when the image is loaded.", "loadstart": "Emitted when the image starts to load." + }, + "exposed": { + "currentSrc": "The current source of the image. This is the image that is currently being displayed. This is useful for determining if the image is loading or not.", + "image": "The image element.", + "naturalHeight": "The natural height of the image.", + "naturalWidth": "The natural width of the image.", + "state": "The current state of the image. This is useful for determining if the image is loading or not." } } diff --git a/packages/api-generator/src/locale/en/VInput.json b/packages/api-generator/src/locale/en/VInput.json index 47f3a7804c3..ca319eb0451 100644 --- a/packages/api-generator/src/locale/en/VInput.json +++ b/packages/api-generator/src/locale/en/VInput.json @@ -27,6 +27,8 @@ "mouseup": "Emitted when click is released." }, "exposed": { + "errorMessages": "An array of error messages that were set by the `setErrors` method.", + "isValid": "Boolean indicating if the input is valid.", "reset": "Resets the input value.", "resetValidation": "Resets validation of the input without modifying its value.", "validate": "Validates the input's value." diff --git a/packages/api-generator/src/locale/en/VLayoutItem.json b/packages/api-generator/src/locale/en/VLayoutItem.json index 0967ef424bc..c720fa99f74 100644 --- a/packages/api-generator/src/locale/en/VLayoutItem.json +++ b/packages/api-generator/src/locale/en/VLayoutItem.json @@ -1 +1,5 @@ -{} +{ + "props": { + "position": "The position of the item." + } +} diff --git a/packages/api-generator/src/locale/en/VList.json b/packages/api-generator/src/locale/en/VList.json index c45480c4d31..17843255058 100644 --- a/packages/api-generator/src/locale/en/VList.json +++ b/packages/api-generator/src/locale/en/VList.json @@ -1,6 +1,7 @@ { "props": { "itemType": "Designates the key on the supplied items that is used for determining the nodes type.", + "activatable": "Designates whether the list items are activatable.", "disabled": "Puts all children inputs into a disabled state.", "inactive": "If set, the list tile will not be rendered as a link even if it has to/href prop or @click handler.", "lines": "Designates a **minimum-height** for all children `v-list-item` components. This prop uses [line-clamp](https://developer.mozilla.org/en-US/docs/Web/CSS/-webkit-line-clamp) and is not supported in all browsers.", @@ -9,6 +10,24 @@ "subheader": "Removes the top padding from `v-list-subheader` components. When used as a **String**, renders a subheader for you.", "slim": "Reduces horizontal spacing for badges, icons, tooltips, and avatars within slim list items to create a more compact visual representation.", "collapseIcon": "Icon to display when the list item is expanded.", - "expandIcon": "Icon to display when the list item is collapsed." + "expandIcon": "Icon to display when the list item is collapsed.", + "selectable": "Designates whether the list items are selectable." + }, + "events": { + "click:activate": "Emitted when the list item is activated.", + "click:open": "Emitted when the list item is opened.", + "click:select": "Emitted when the list item is selected.", + "update:activated": "Emitted when the list item is activated.", + "update:opened": "Emitted when the list item is opened.", + "update:selected": "Emitted when the list item is selected." + }, + "slots": { + "divider": "Slot for the divider.", + "header": "Slot for the header.", + "subheader": "Removes the top padding from `v-list-subheader` components. When used as a **String**, renders a subheader for you.", + "children": "Slot for the children.", + "focus": "Slot for the focus.", + "open": "Slot for the open.", + "parents": "Slot for the parents." } } diff --git a/packages/api-generator/src/locale/en/VListGroup.json b/packages/api-generator/src/locale/en/VListGroup.json index 798eb02ee5a..4054c872d3f 100644 --- a/packages/api-generator/src/locale/en/VListGroup.json +++ b/packages/api-generator/src/locale/en/VListGroup.json @@ -7,7 +7,8 @@ "noAction": "Removes left padding assigned for action icons from group items.", "prependIcon": "Prepends an icon to the component, uses the same syntax as `v-icon`.", "subgroup": "Designate the component as nested list group.", - "value": "Expands / Collapse the list-group." + "value": "Expands / Collapse the list-group.", + "fluid": "Removes the left padding assigned for action icons from group items." }, "exposed": { "isOpen": "Returns the current state of the list-group." diff --git a/packages/api-generator/src/locale/en/VListSubheader.json b/packages/api-generator/src/locale/en/VListSubheader.json index 0967ef424bc..4aa6c753d0a 100644 --- a/packages/api-generator/src/locale/en/VListSubheader.json +++ b/packages/api-generator/src/locale/en/VListSubheader.json @@ -1 +1,8 @@ -{} +{ + "props": { + "tag": "Specify a custom tag used on the root element.", + "title": "Specify a title text for the component.", + "inset": "Insets the subheader without additional spacing, aligning it flush with the surrounding content.", + "sticky": "Sticks the header to the top of the table." + } +} diff --git a/packages/api-generator/src/locale/en/VLocaleProvider.json b/packages/api-generator/src/locale/en/VLocaleProvider.json index 0967ef424bc..a848828f572 100644 --- a/packages/api-generator/src/locale/en/VLocaleProvider.json +++ b/packages/api-generator/src/locale/en/VLocaleProvider.json @@ -1 +1,7 @@ -{} +{ + "props": { + "fallbackLocale": "Specify a fallback locale to use when a locale is not found.", + "locale": "Specify a locale to use.", + "rtl": "Specify a RTL mode." + } +} diff --git a/packages/api-generator/src/locale/en/VMain.json b/packages/api-generator/src/locale/en/VMain.json index 0967ef424bc..75b873474aa 100644 --- a/packages/api-generator/src/locale/en/VMain.json +++ b/packages/api-generator/src/locale/en/VMain.json @@ -1 +1,5 @@ -{} +{ + "props": { + "scrollable": "Specify a custom scrollable function." + } +} diff --git a/packages/api-generator/src/locale/en/VMenu.json b/packages/api-generator/src/locale/en/VMenu.json index 58081027c73..50b31910e48 100644 --- a/packages/api-generator/src/locale/en/VMenu.json +++ b/packages/api-generator/src/locale/en/VMenu.json @@ -15,5 +15,15 @@ "openOnHover": "Designates whether menu should open on activator hover.", "returnValue": "The value that is updated when the menu is closed - must be primitive. Dot notation is supported.", "submenu": "Opens with right arrow and closes on left instead of up/down. Implies `location=\"end\"`. Directions are reversed for RTL." + }, + "exposed": { + "activatorEl": "Ref to the current activator element.", + "animateClick": "Function invoked when user clicks outside.", + "contentEl": "Ref to the current content element.", + "globalTop": "Used by activator to determine a components position in the global stack order.", + "id": "The unique identifier of the component.", + "localTop": "Used by activator to determine a components position in the local stack order.", + "target": "Ref to the current target element.", + "updateLocation": "Function used for locationStrategy positioning." } } diff --git a/packages/api-generator/src/locale/en/VNavigationDrawer.json b/packages/api-generator/src/locale/en/VNavigationDrawer.json index 24ac310e122..73b3293bac5 100644 --- a/packages/api-generator/src/locale/en/VNavigationDrawer.json +++ b/packages/api-generator/src/locale/en/VNavigationDrawer.json @@ -19,7 +19,8 @@ "temporary": "A temporary drawer sits above its application and uses a scrim (overlay) to darken the background.", "touchless": "Disable mobile touch functionality.", "value": "Controls whether the component is visible or hidden.", - "location": "Controls the edge of the screen the drawer is attached to." + "location": "Controls the edge of the screen the drawer is attached to.", + "sticky": "When true, the drawer will remain visible when scrolling past the top of the page." }, "slots": { "append": "A slot at the bottom of the drawer.", @@ -29,5 +30,8 @@ "events": { "transitionend": "Emits event object when transition is complete.", "update:rail": "Event that is emitted when the rail model changes." + }, + "exposed": { + "isStuck": "Used to determine if the drawer is stuck to the top of the page." } } diff --git a/packages/api-generator/src/locale/en/VNumberInput.json b/packages/api-generator/src/locale/en/VNumberInput.json new file mode 100644 index 00000000000..b88211ffcf7 --- /dev/null +++ b/packages/api-generator/src/locale/en/VNumberInput.json @@ -0,0 +1,14 @@ +{ + "props": { + "controlVariant": "The color of the control. It defaults to the value of `variant` prop.", + "hideInput": "Hide the input field.", + "inset": "Applies an indentation to the dividers used in the stepper buttons.", + "max": "Specifies the maximum allowable value for the input.", + "min": "Specifies the minimum allowable value for the input.", + "step": "Defines the interval between allowed values when the user increments or decrements the input" + }, + "slots": { + "decrement": "Slot for customizing the decrement button or icon used to decrease the value of the input.", + "increment": "Slot for customizing the increment button or icon used to increase the value of the input." + } +} diff --git a/packages/api-generator/src/locale/en/VOverlay.json b/packages/api-generator/src/locale/en/VOverlay.json index 36cd8a8b3c8..cc66bde776d 100644 --- a/packages/api-generator/src/locale/en/VOverlay.json +++ b/packages/api-generator/src/locale/en/VOverlay.json @@ -12,6 +12,17 @@ }, "events": { "click:outside": "Event that fires when clicking outside an active overlay.", - "afterLeave": "Event that fires after the overlay has finished transitioning out." + "afterLeave": "Event that fires after the overlay has finished transitioning out.", + "afterEnter": "Event that fires after the overlay has finished transitioning in." + }, + "exposed": { + "activatorEl": "Ref to the current activator element.", + "animateClick": "Function invoked when user clicks outside.", + "contentEl": "Ref to the current content element.", + "globalTop": "Used by activator to determine a components position in the global stack order.", + "localTop": "Used by activator to determine a components position in the local stack order.", + "scrimEl": "Ref to the current scrim element.", + "target": "Ref to the current target element.", + "updateLocation": "Function used for locationStrategy positioning." } } diff --git a/packages/api-generator/src/locale/en/VParallax.json b/packages/api-generator/src/locale/en/VParallax.json index 832d1d0db39..9f68244bbc4 100644 --- a/packages/api-generator/src/locale/en/VParallax.json +++ b/packages/api-generator/src/locale/en/VParallax.json @@ -2,6 +2,12 @@ "props": { "alt": "Attaches an alt property to the parallax image.", "src": "The image to parallax.", + "scale": "The scale of the parallax image.", "srcset": "A set of alternate images to use based on device size. [Read more...](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#attr-srcset)." + }, + "slots": { + "error": "Puts the input in a manual error state.", + "placeholder": "Sets the input's placeholder text.", + "sources": "A list of `` elements." } } diff --git a/packages/api-generator/src/locale/en/VPicker.json b/packages/api-generator/src/locale/en/VPicker.json index 0e720d6074f..6b5ea7ca3d3 100644 --- a/packages/api-generator/src/locale/en/VPicker.json +++ b/packages/api-generator/src/locale/en/VPicker.json @@ -2,5 +2,8 @@ "props": { "landscape": "Puts the picker into landscape mode.", "hideHeader": "Hide the picker header." + }, + "slots": { + "actions": "Slot for customizing the content in the actions area" } } diff --git a/packages/api-generator/src/locale/en/VRating.json b/packages/api-generator/src/locale/en/VRating.json index 8909cf20ff9..8a1bd98dee5 100644 --- a/packages/api-generator/src/locale/en/VRating.json +++ b/packages/api-generator/src/locale/en/VRating.json @@ -10,7 +10,8 @@ "halfIncrements": "Allows the selection of half increments.", "hover": "Provides visual feedback when hovering over icons.", "length": "The amount of items to show.", - "readonly": "Removes all hover effects and pointer events." + "readonly": "Removes all hover effects and pointer events.", + "itemAriaLabel": "The **aria-label** used for each item." }, "slots": { "item": "The slot for each item.", diff --git a/packages/api-generator/src/locale/en/VResponsive.json b/packages/api-generator/src/locale/en/VResponsive.json index e899c62a56e..c850f25d70d 100644 --- a/packages/api-generator/src/locale/en/VResponsive.json +++ b/packages/api-generator/src/locale/en/VResponsive.json @@ -3,5 +3,8 @@ "aspectRatio": "Sets a base aspect ratio, calculated as width/height. This will only set a **minimum** height, the component can still grow if it has a lot of content.", "contentClass": "Apply a custom class to the internal content element.", "inline": "Display as an inline element instead of a block, also disables flex-grow." + }, + "slots": { + "additional": "The slot for additional content." } } diff --git a/packages/api-generator/src/locale/en/VSlideGroup.json b/packages/api-generator/src/locale/en/VSlideGroup.json index 4003ee86c94..edaf96457a5 100644 --- a/packages/api-generator/src/locale/en/VSlideGroup.json +++ b/packages/api-generator/src/locale/en/VSlideGroup.json @@ -15,5 +15,11 @@ "change": "Emitted when the component value is changed by user interaction.", "click:prev": "Emitted when the prev is clicked.", "click:next": "Emitted when the next is clicked." + }, + "exposed": { + "focus": "Focus the component.", + "scrollOffset": "Scroll the component to a given index.", + "scrollTo": "Scroll the component to a given index.", + "selected": "Get the selected component index." } } diff --git a/packages/api-generator/src/locale/en/VSnackbar.json b/packages/api-generator/src/locale/en/VSnackbar.json index 261ccb6982a..473db493c0c 100644 --- a/packages/api-generator/src/locale/en/VSnackbar.json +++ b/packages/api-generator/src/locale/en/VSnackbar.json @@ -9,5 +9,14 @@ }, "slots": { "actions": "Used to bind styles to [v-btn](/components/buttons) to match MD2 specification." + }, + "exposed": { + "activatorEl": "Ref to the current activator element.", + "animateClick": "Function invoked when user clicks outside.", + "contentEl": "Ref to the current content element.", + "globalTop": "Used by activator to determine a components position in the global stack order.", + "localTop": "Used by activator to determine a components position in the local stack order.", + "scrimEl": "Ref to the current scrim element.", + "updateLocation": "Function used for locationStrategy positioning." } } diff --git a/packages/api-generator/src/locale/en/VSparkline.json b/packages/api-generator/src/locale/en/VSparkline.json index fbb53433e7e..8b62dede9bd 100644 --- a/packages/api-generator/src/locale/en/VSparkline.json +++ b/packages/api-generator/src/locale/en/VSparkline.json @@ -17,6 +17,10 @@ "smooth": "Number of px to use as a corner radius. `true` defaults to 8, `false` is 0.", "type": "Choose between a trendline or bars.", "value": "An array of numbers.", - "width": "Width of the SVG trendline or bars." + "width": "Width of the SVG trendline or bars.", + "id": "The id of the component.", + "itemValue": "The value of the item.", + "max": "The maximum value of the sparkline.", + "min": "The minimum value of the sparkline." } } diff --git a/packages/api-generator/src/locale/en/VTextarea.json b/packages/api-generator/src/locale/en/VTextarea.json index aebdf3fe136..05348794645 100644 --- a/packages/api-generator/src/locale/en/VTextarea.json +++ b/packages/api-generator/src/locale/en/VTextarea.json @@ -7,7 +7,8 @@ "prefix": "Displays prefix text.", "rows": "Default row count.", "suffix": "Displays suffix text.", - "maxRows": "Specifies the maximum number of rows for **auto-grow**." + "maxRows": "Specifies the maximum number of rows for **auto-grow**.", + "autofocus": "The element should be focused as soon as the page loads." }, "events": { "keydown": "Emitted when **any** key is pressed, textarea must be focused.", diff --git a/packages/api-generator/src/locale/en/VThemeProvider.json b/packages/api-generator/src/locale/en/VThemeProvider.json index 2cd0275178d..462a133cd75 100644 --- a/packages/api-generator/src/locale/en/VThemeProvider.json +++ b/packages/api-generator/src/locale/en/VThemeProvider.json @@ -1,6 +1,7 @@ { "props": { - "root": "Use the current value of `$vuetify.theme.dark` as opposed to the provided one." + "root": "Use the current value of `$vuetify.theme.dark` as opposed to the provided one.", + "withBackground": "Use the current value of `$vuetify.theme.dark` as opposed to the provided one." }, "slots": { "default": "All child components will have their theme overridden. Must have exactly one root element." diff --git a/packages/api-generator/src/locale/en/VTimePicker.json b/packages/api-generator/src/locale/en/VTimePicker.json index ce361a10f2e..13b1603b1ca 100644 --- a/packages/api-generator/src/locale/en/VTimePicker.json +++ b/packages/api-generator/src/locale/en/VTimePicker.json @@ -16,7 +16,7 @@ "width": "Width of the picker." }, "slots": { - "default": "Displayed below the clock, can be used for example for adding action button (`OK` and `Cancel`)/" + "default": "Displayed below the clock, can be used for example for adding action button (`OK` and `Cancel`)" }, "events": { "change": "Emitted when the time selection is done (when user changes the minute for HH:MM picker and the second for HH:MM:SS picker.", diff --git a/packages/api-generator/src/locale/en/VTimePickerClock.json b/packages/api-generator/src/locale/en/VTimePickerClock.json new file mode 100644 index 00000000000..896bf476dbe --- /dev/null +++ b/packages/api-generator/src/locale/en/VTimePickerClock.json @@ -0,0 +1,18 @@ +{ + "props": { + "allowedValues": "Restricts which hours can be selected.", + "ampm": "Displays time in a 12-hour format.", + "displayValue": "Used to display a custom value on the clock.", + "double": "If set, this probably indicates a double rotation or a mode where more than one set of values (like hours and minutes) is displayed on the clock at the same time.", + "format": "Specifies the format of the displayed time, either 12-hour or 24-hour, depending on the component's setup.", + "max": "Defines the maximum time value that can be selected.", + "min": "Defines the minimum time value that can be selected.", + "readonly": "When true, the picker is in a read-only state, and users cannot modify the selected time.", + "rotate": "Controls rotation, specifying the degree of rotation for the clock hands.", + "scrollable": "Allows the time selection to be scrollable, enhancing user experience for devices with scroll inputs.", + "step": "Defines the increments between selectable times, such as a step of 1 for every minute or a larger step for every 5 or 15 minutes." + }, + "events": { + "change": "The event that is triggered when the selected time is changed." + } +} diff --git a/packages/api-generator/src/locale/en/VTooltip.json b/packages/api-generator/src/locale/en/VTooltip.json index 08406ae4a2f..b6b9d664ad6 100644 --- a/packages/api-generator/src/locale/en/VTooltip.json +++ b/packages/api-generator/src/locale/en/VTooltip.json @@ -14,6 +14,7 @@ "animateClick": "Function invoked when user clicks outside.", "contentEl": "Ref to the current content element.", "globalTop": "Used by activator to determine a components position in the global stack order.", + "scrimEl": "Ref to the current scrim element.", "localTop": "Used by activator to determine a components position in the local stack order.", "updateLocation": "Function used for locationStrategy positioning." } diff --git a/packages/api-generator/src/locale/en/VTreeview.json b/packages/api-generator/src/locale/en/VTreeview.json index f140b2ae8c7..0d6564ba408 100644 --- a/packages/api-generator/src/locale/en/VTreeview.json +++ b/packages/api-generator/src/locale/en/VTreeview.json @@ -31,7 +31,8 @@ "selectionType": "Controls how the treeview selects nodes. There are two modes available: 'leaf' and 'independent'.", "shaped": "Provides an alternative active style for `v-treeview` node. Only visible when `activatable` is `true` and should not be used in conjunction with the `rounded` prop.", "transition": "Applies a transition when nodes are opened and closed.", - "value": "Allows one to control which nodes are selected. The array consists of the `item-key` of each selected item. Is used with `@input` event to allow for `v-model` binding." + "value": "Allows one to control which nodes are selected. The array consists of the `item-key` of each selected item. Is used with `@input` event to allow for `v-model` binding.", + "collapseIcon": "Icon to display when the list item is expanded." }, "slots": { "append": "Appends content after label.", diff --git a/packages/api-generator/src/locale/en/VTreeviewGroup.json b/packages/api-generator/src/locale/en/VTreeviewGroup.json new file mode 100644 index 00000000000..b53db48095b --- /dev/null +++ b/packages/api-generator/src/locale/en/VTreeviewGroup.json @@ -0,0 +1,5 @@ +{ + "props": { + "fluid": "Removes viewport maximum-width size breakpoints." + } +} diff --git a/packages/api-generator/src/locale/en/VTreeviewItem.json b/packages/api-generator/src/locale/en/VTreeviewItem.json new file mode 100644 index 00000000000..bd95dfab3d9 --- /dev/null +++ b/packages/api-generator/src/locale/en/VTreeviewItem.json @@ -0,0 +1,9 @@ +{ + "props": { + "lines": "The line declaration specifies the minimum height of the item and can also be controlled from v-list with the same prop.", + "loading": "Places the v-treeview-item into a loading state.", + "nav": "Reduces the width of v-list-item takes and adds a border radius.", + "slim": "Reduces the vertical padding or height of the v-treeview-item, making it more compact.", + "toggleIcon": "Allows customization of the icon used to toggle the expansion and collapse of treeview branches." + } +} diff --git a/packages/api-generator/src/locale/en/useDate.json b/packages/api-generator/src/locale/en/useDate.json index 69aa2f4b833..3d9d5ef74c4 100644 --- a/packages/api-generator/src/locale/en/useDate.json +++ b/packages/api-generator/src/locale/en/useDate.json @@ -1,7 +1,10 @@ { "exposed": { + "addWeeks": "Adds the specified number of weeks to the date.", "addDays": "Adds the specified number of days to the date.", "addMonths": "Adds the specified number of months to the date.", + "addHours": "Adds the specified number of hours to the date.", + "addMinutes": "Adds the specified number of minutes to the date.", "date": "Takes any value and returns a date object.", "endOfDay": "Returns the last second of the day.", "endOfMonth": "Returns the last day of the month.", @@ -13,6 +16,11 @@ "getWeek": "Returns the week of the year of the date.", "getWeekArray": "Returns an array of the days of the week of the date.", "getWeekdays": "Returns an array of the names of the days of the week.", + "getDate": "Returns the day of the month of the date.", + "getHours": "Returns the hours of the day of the date.", + "getMinutes": "Returns the minutes of the hour of the date.", + "getNextMonth": "Returns the next month of the date.", + "parseISO": "Parses a date string in ISO format.", "isAfter": "Returns true if the first date is after the second date.", "isBefore": "Returns true if the first date is before the second date.", "isEqual": "Returns true if the two dates are equal.", @@ -23,10 +31,15 @@ "locale": "Returns the current locale being used.", "getYear": "Returns the year of the date.", "setYear": "Sets the year of the date.", + "setMonth": "Sets the month of the date.", + "setDate": "Sets the day of the date.", + "setHours": "Sets the hours of the date.", + "setMinutes": "Sets the minutes of the date.", "startOfDay": "Returns the first second of the day.", "startOfMonth": "Returns first day of the month.", "startOfWeek": "Returns the first day of the week.", "startOfYear": "Returns the first day of the year.", - "toJsDate": "Converts date value to a JS Date Object." + "toJsDate": "Converts date value to a JS Date Object.", + "toISO": "Converts date value to a ISO Date Object." } } diff --git a/packages/api-generator/src/locale/en/useDisplay.json b/packages/api-generator/src/locale/en/useDisplay.json index 47c5a9d3d81..41c23129dce 100644 --- a/packages/api-generator/src/locale/en/useDisplay.json +++ b/packages/api-generator/src/locale/en/useDisplay.json @@ -21,6 +21,8 @@ "xlAndDown": "Returns **true** if the current browser breakpoint is **xl** or lower.", "xlAndUp": "Returns **true** if the current browser breakpoint is **xl** or higher.", "xs": "Returns **true** if the current browser breakpoint is **xs**.", - "xxl": "Returns **true** if the current browser breakpoint is **xxl**." + "xxl": "Returns **true** if the current browser breakpoint is **xxl**.", + "ssr": "Returns **true** if the current page was server rendered.", + "displayClasses": "Returns an object containing the breakpoints and their corresponding classes." } } diff --git a/packages/api-generator/templates/component.d.ts b/packages/api-generator/templates/component.d.ts index a559dd7b0f9..664a9d798e4 100644 --- a/packages/api-generator/templates/component.d.ts +++ b/packages/api-generator/templates/component.d.ts @@ -2,7 +2,13 @@ import type { AllowedComponentProps, ComponentOptionsBase, VNodeChild, VNodeProp import type { UnionToIntersection } from '@/util' import type { __component__ } from '@/__name__' -type StripProps = keyof VNodeProps | keyof AllowedComponentProps | 'v-slots' | '$children' | `v-slot:${string}` +type StripProps = + | keyof VNodeProps + | keyof AllowedComponentProps + | 'v-slots' + | '$children' + | `v-slot:${string}` + | `on${Capitalize}Once` type Event = `on${string}` type Props = T extends { $props: infer P extends object } diff --git a/packages/vuetify/src/components/VDataTable/VDataTableFooter.tsx b/packages/vuetify/src/components/VDataTable/VDataTableFooter.tsx index 6c2737e8292..a0716af6a71 100644 --- a/packages/vuetify/src/components/VDataTable/VDataTableFooter.tsx +++ b/packages/vuetify/src/components/VDataTable/VDataTableFooter.tsx @@ -147,3 +147,5 @@ export const VDataTableFooter = genericComponent<{ prepend: never }>()({ return {} }, }) + +export type VDataTableFooter = InstanceType From d31a30020a5e5ad894e12c853bec3576df3dd246 Mon Sep 17 00:00:00 2001 From: Kael Date: Wed, 23 Oct 2024 23:08:49 +1100 Subject: [PATCH 03/35] chore: fix tsconfig --- packages/api-generator/tsconfig.json | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/api-generator/tsconfig.json b/packages/api-generator/tsconfig.json index 2d95541bb5b..3eaeb8309c3 100644 --- a/packages/api-generator/tsconfig.json +++ b/packages/api-generator/tsconfig.json @@ -15,5 +15,6 @@ }, "include": [ "./src/locale/**/*.json", + "./templates/tmp/*" ], } From 006b7fd530b9a0b8d0a3f8872e8cf158cbd9b3b5 Mon Sep 17 00:00:00 2001 From: Kael Date: Fri, 25 Oct 2024 18:25:47 +1100 Subject: [PATCH 04/35] chore(ci): remove vercel, simplify workflows --- .github/actions/download-artifact/action.yml | 31 --------- .github/actions/nightly-release/action.yml | 2 +- .github/actions/pnpm-install/action.yml | 15 ----- .github/actions/upload-artifact/action.yml | 46 ------------- .github/workflows/ci.yml | 71 +++++++------------- .github/workflows/nightly-schedule.yml | 2 +- .vercelignore | 6 -- scripts/deploy-and-alias.js | 28 -------- vercel.json | 53 --------------- 9 files changed, 25 insertions(+), 229 deletions(-) delete mode 100644 .github/actions/download-artifact/action.yml delete mode 100644 .github/actions/pnpm-install/action.yml delete mode 100644 .github/actions/upload-artifact/action.yml delete mode 100644 .vercelignore delete mode 100644 scripts/deploy-and-alias.js delete mode 100644 vercel.json diff --git a/.github/actions/download-artifact/action.yml b/.github/actions/download-artifact/action.yml deleted file mode 100644 index eec6a45835b..00000000000 --- a/.github/actions/download-artifact/action.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: Download artifact -description: Wrapper around GitHub's official action, with additional extraction before download -# https://github.com/actions/upload-artifact/issues/199#issuecomment-1516555821 - -inputs: - name: - description: Artifact name - required: true - path: - description: Destination path - required: false - default: . - -runs: - using: composite - steps: - - name: Download artifacts - uses: actions/download-artifact@v4 - with: - name: ${{ inputs.name }} - path: ${{ inputs.path }} - - - name: Extract artifacts - run: tar -xvf ${{ inputs.name }}.tar - shell: bash - working-directory: ${{ inputs.path }} - - - name: Remove archive - run: rm -f ${{ inputs.name }}.tar - shell: bash - working-directory: ${{ inputs.path }} diff --git a/.github/actions/nightly-release/action.yml b/.github/actions/nightly-release/action.yml index 42a0e37a855..d832f95f9bc 100644 --- a/.github/actions/nightly-release/action.yml +++ b/.github/actions/nightly-release/action.yml @@ -35,7 +35,7 @@ runs: repository: ${{ inputs.checkout-repo }} ref: ${{ inputs.checkout-ref }} fetch-depth: 0 - - uses: ./.github/actions/pnpm-install + - uses: vuetifyjs/setup-action@master - run: >- node -e " const json = require('./lerna.json'); diff --git a/.github/actions/pnpm-install/action.yml b/.github/actions/pnpm-install/action.yml deleted file mode 100644 index db110e7a22d..00000000000 --- a/.github/actions/pnpm-install/action.yml +++ /dev/null @@ -1,15 +0,0 @@ -name: pnpm install -description: Restore node_modules and cache, then run pnpm install - -runs: - using: composite - steps: - - uses: pnpm/action-setup@v4 - - uses: actions/setup-node@v4 - with: - cache: 'pnpm' - node-version-file: '.nvmrc' - - run: pnpm --version - shell: bash - - run: pnpm i --frozen-lockfile - shell: bash diff --git a/.github/actions/upload-artifact/action.yml b/.github/actions/upload-artifact/action.yml deleted file mode 100644 index 32e7bdee35a..00000000000 --- a/.github/actions/upload-artifact/action.yml +++ /dev/null @@ -1,46 +0,0 @@ -name: Upload artifact -description: Wrapper around GitHub's official action, with additional archiving before upload -# https://github.com/actions/upload-artifact/issues/199#issuecomment-1516555821 - -inputs: - name: - description: Artifact name - required: true - path: - description: A file, directory or wildcard pattern that describes what to upload - required: true - if-no-files-found: - description: > - The desired behavior if no files are found using the provided path. - Available Options: - warn: Output a warning but do not fail the action - error: Fail the action with an error message - ignore: Do not output any warnings or errors, the action does not fail - required: false - default: warn - retention-days: - description: > - Duration after which artifact will expire in days. 0 means using default retention. - Minimum 1 day. - Maximum 90 days unless changed from the repository settings page. - required: false - default: '0' - -runs: - using: composite - steps: - - name: Archive artifacts - run: tar -cvf ${{ inputs.name }}.tar ${{ inputs.path }} - shell: bash - - - name: Upload artifacts - uses: actions/upload-artifact@v4 - with: - if-no-files-found: ${{ inputs.if-no-files-found }} - name: ${{ inputs.name }} - path: ${{ inputs.name }}.tar - retention-days: ${{ inputs.retention-days }} - - - name: Remove archive - run: rm -f ${{ inputs.name }}.tar - shell: bash diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7f910f9508f..2189442b9af 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -31,12 +31,12 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: ./.github/actions/pnpm-install + - uses: vuetifyjs/setup-action@master - run: pnpm build vuetify - - uses: ./.github/actions/upload-artifact + - uses: actions/upload-artifact@v4 with: name: vuetify-dist - path: > + path: | packages/vuetify/dist packages/vuetify/lib @@ -51,10 +51,11 @@ jobs: scopes: ['--scope vuetify --scope @vuetify/api-generator', '--scope vuetifyjs.com'] steps: - uses: actions/checkout@v4 - - uses: ./.github/actions/download-artifact + - uses: actions/download-artifact@v4 with: name: vuetify-dist - - uses: ./.github/actions/pnpm-install + path: packages/vuetify + - uses: vuetifyjs/setup-action@master - run: pnpm lerna run lint $SCOPES env: SCOPES: ${{ matrix.scopes }} @@ -66,7 +67,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: ./.github/actions/pnpm-install + - uses: vuetifyjs/setup-action@master - run: pnpm run test --project unit working-directory: ./packages/vuetify @@ -77,7 +78,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: ./.github/actions/pnpm-install + - uses: vuetifyjs/setup-action@master - run: pnpm run test --project browser working-directory: ./packages/vuetify @@ -89,10 +90,11 @@ jobs: - uses: actions/checkout@v4 with: fetch-depth: 0 - - uses: ./.github/actions/download-artifact + - uses: actions/download-artifact@v4 with: name: vuetify-dist - - uses: ./.github/actions/pnpm-install + path: packages/vuetify + - uses: vuetifyjs/setup-action@master - run: pnpm build api - run: echo "RELEASE_TAG=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV - name: NPM Release @@ -114,10 +116,11 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: ./.github/actions/download-artifact + - uses: actions/download-artifact@v4 with: name: vuetify-dist - - uses: ./.github/actions/pnpm-install + path: packages/vuetify + - uses: vuetifyjs/setup-action@master - uses: ./.github/actions/download-locales - run: pnpm build api - run: pnpm build docs @@ -134,53 +137,25 @@ jobs: VITE_EMAILJS_TEMPLATE_ID: ${{ secrets.EMAILJS_TEMPLATE_ID }} VITE_API_SERVER_URL: ${{ secrets.API_SERVER_URL }} VITE_GITHUB_SHA: ${{ github.sha }} - - uses: ./.github/actions/upload-artifact + - uses: actions/upload-artifact@v4 with: name: docs-dist path: packages/docs/dist - publish-docs-vercel: - needs: [lint, test-unit, build-docs] - runs-on: ubuntu-latest - if: github.event_name == 'push' && github.repository_owner == 'vuetifyjs' && (github.ref == 'refs/heads/master' || github.ref == 'refs/heads/dev' || github.ref == 'refs/heads/next') - steps: - - uses: actions/checkout@v4 - - uses: ./.github/actions/download-artifact - with: - name: docs-dist - - uses: ./.github/actions/pnpm-install - - run: pnpm add vercel --global - - run: node scripts/deploy-and-alias.js ${{ github.ref }} - env: - NOW_TOKEN: ${{ secrets.NOW_TOKEN }} - - publish-docs-coolify: + publish-docs: needs: [lint, test-unit, build-docs] runs-on: ubuntu-latest environment: Production if: github.event_name == 'push' && github.repository_owner == 'vuetifyjs' && github.ref == 'refs/heads/master' steps: - uses: actions/checkout@v4 - - uses: ./.github/actions/download-artifact + - uses: actions/download-artifact@v4 with: name: docs-dist - - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - id: meta - uses: docker/metadata-action@v5 - with: - images: ghcr.io/vuetifyjs/docs - - uses: docker/build-push-action@v6 + path: packages/docs/dist + - uses: vuetifyjs/coolify-action@master with: - context: . - file: Dockerfile - platforms: linux/amd64 - push: true - tags: ${{ steps.meta.outputs.tags }} - labels: ${{ steps.meta.outputs.labels }} - - name: Deploy to Coolify - run: | - curl --request GET '${{ secrets.COOLIFY_WEBHOOK }}' --header 'Authorization: Bearer ${{ secrets.COOLIFY_TOKEN }}' + token: ${{ secrets.GITHUB_TOKEN }} + imageName: docs + coolifyWebhook: ${{ secrets.COOLIFY_WEBHOOK }} + coolifySecret: ${{ secrets.COOLIFY_TOKEN }} diff --git a/.github/workflows/nightly-schedule.yml b/.github/workflows/nightly-schedule.yml index 6dea032fa96..4bebb563b90 100644 --- a/.github/workflows/nightly-schedule.yml +++ b/.github/workflows/nightly-schedule.yml @@ -64,7 +64,7 @@ jobs: echo "Last commit was more than 24 hours ago, skipping tests" exit 1 fi - - uses: ./.github/actions/pnpm-install + - uses: vuetifyjs/setup-action@master - run: echo "COMMIT=$(git rev-parse HEAD)" >> $GITHUB_ENV - run: pnpm cy:run working-directory: ./packages/vuetify diff --git a/.vercelignore b/.vercelignore deleted file mode 100644 index be2cda03b58..00000000000 --- a/.vercelignore +++ /dev/null @@ -1,6 +0,0 @@ -node_modules -/scripts -/packages/vuetify -/packages/api-generator -/packages/docs/src -!/packages/docs/dist diff --git a/scripts/deploy-and-alias.js b/scripts/deploy-and-alias.js deleted file mode 100644 index 6e2fcebc8c0..00000000000 --- a/scripts/deploy-and-alias.js +++ /dev/null @@ -1,28 +0,0 @@ -const shell = require('shelljs') - -const alias = { - 'refs/heads/master': 'vuetifyjs.com', - 'refs/heads/dev': 'dev.vuetifyjs.com', - 'refs/heads/next': 'next.vuetifyjs.com', -}[process.argv[2]] - -if (!alias) { - console.error('Alias not defined') - process.exit(1) -} - -const options = { - env: { - ...process.env, - VERCEL_PROJECT_ID: 'prj_g3MO7ck0yciUrIbtahRVD9epWbYJ', - VERCEL_ORG_ID: 'team_MYQkaFitxJXQ2v3dioJaj2nx', - }, -} - -const child = shell.exec('vercel --scope=vuetifyjs --token=$NOW_TOKEN --confirm', options) -if (child.code !== 0) { - process.exit(child.code) -} -const instanceUrl = child.stdout - -shell.exec(`vercel alias set ${instanceUrl} ${alias} --scope=vuetifyjs --token=$NOW_TOKEN`, options) diff --git a/vercel.json b/vercel.json deleted file mode 100644 index b4e2d8de1e0..00000000000 --- a/vercel.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "version": 2, - "cleanUrls": false, - "trailingSlash": true, - "rewrites": [ - { - "source": "/(.*)", - "destination": "$1" - }, - { - "source": "/((?!assets/).*)", - "destination": "/_fallback.html" - } - ], - "headers": [ - { - "source": "/(.*)", - "headers" : [ - { - "key" : "Cache-Control", - "value" : "public, max-age=3600, s-maxage=60" - } - ] - }, - { - "source": "/assets/(.*)", - "headers": [ - { - "key" : "Cache-Control", - "value" : "public, immutable, max-age=31536000, stale-if-error=604800, s-maxage=300" - } - ] - }, - { - "source": "/service-worker.js", - "headers" : [ - { - "key" : "Cache-Control", - "value" : "public, max-age=0, s-maxage=60, must-revalidate" - }, - { - "key" : "CDN-Cache-Control", - "value" : "max-age=60" - } - ] - } - ], - "github": { - "enabled": false, - "autoAlias": false, - "silent": true - } -} From 810e0c3ef7468b428e1a07cad4de9a8fe96efbef Mon Sep 17 00:00:00 2001 From: Atharva Unde Date: Sun, 27 Oct 2024 00:16:15 +0530 Subject: [PATCH 05/35] docs: ensure clipboard copies the correct command from snippet (#20619) closes #20618 --- packages/docs/src/components/home/Entry.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/docs/src/components/home/Entry.vue b/packages/docs/src/components/home/Entry.vue index 536adaa20e9..861dd6be065 100644 --- a/packages/docs/src/components/home/Entry.vue +++ b/packages/docs/src/components/home/Entry.vue @@ -108,7 +108,7 @@ function copy () { isCopying.value = true - navigator.clipboard.writeText('pnpm create vuetify') + navigator.clipboard.writeText(`${randomPackage} create vuetify`) setTimeout(() => { isCopying.value = false From d7606ef74ff16a65dc4843187b9f182d771769b2 Mon Sep 17 00:00:00 2001 From: John Leider Date: Mon, 28 Oct 2024 10:06:36 -0500 Subject: [PATCH 06/35] docs(Toc): update sponsor display styling --- packages/docs/src/components/app/Toc.vue | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/docs/src/components/app/Toc.vue b/packages/docs/src/components/app/Toc.vue index b21e3eb43b0..b01a125312d 100644 --- a/packages/docs/src/components/app/Toc.vue +++ b/packages/docs/src/components/app/Toc.vue @@ -62,11 +62,12 @@ From b8692a7104fbb5e854f868e140f1789d6a77cc9b Mon Sep 17 00:00:00 2001 From: Shinji Sakai Date: Tue, 29 Oct 2024 02:40:06 +0900 Subject: [PATCH 07/35] docs(team.json): Added shinji's profile (#20628) --- packages/docs/src/data/team.json | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/packages/docs/src/data/team.json b/packages/docs/src/data/team.json index 68321201bc5..1a9f1de2839 100644 --- a/packages/docs/src/data/team.json +++ b/packages/docs/src/data/team.json @@ -251,5 +251,18 @@ "name": "Elvina Garcia", "team": "legends", "joined": "Feb 2023" + }, + "shinjisakai": { + "discord": "housexpot", + "focus": [ + "[vuetifyjs/*](https://github.com/vuetifyjs)" + ], + "languages": [ + "English" + ], + "location": "Nagoya, Japan", + "name": "Shinji Sakai", + "team": "core", + "joined": "Oct 2024" } } From cfaf74449e0ac6b3cb995477319bad4488d4a569 Mon Sep 17 00:00:00 2001 From: TeeBeeCoder <129800136+TeeBeeCoder@users.noreply.github.com> Date: Mon, 28 Oct 2024 18:41:29 +0100 Subject: [PATCH 08/35] docs(VForm): correct typo in validation message in example (#20627) --- packages/docs/src/examples/v-form/usage.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/docs/src/examples/v-form/usage.vue b/packages/docs/src/examples/v-form/usage.vue index 37e652dba2a..36e64f4f245 100644 --- a/packages/docs/src/examples/v-form/usage.vue +++ b/packages/docs/src/examples/v-form/usage.vue @@ -67,7 +67,7 @@ value => { if (value) return true - return 'E-mail is requred.' + return 'E-mail is required.' }, value => { if (/.+@.+\..+/.test(value)) return true From d037417c25d015e4b77a7c7b5f55f770c4cc31db Mon Sep 17 00:00:00 2001 From: tatsuhiro Date: Tue, 29 Oct 2024 02:52:42 +0900 Subject: [PATCH 09/35] docs(VInput): correct hint props description (#20526) --- packages/docs/src/pages/en/components/inputs.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/docs/src/pages/en/components/inputs.md b/packages/docs/src/pages/en/components/inputs.md index 06e57aaeb79..f2f08359bf9 100644 --- a/packages/docs/src/pages/en/components/inputs.md +++ b/packages/docs/src/pages/en/components/inputs.md @@ -68,7 +68,7 @@ When the **hide-details** prop is set to `auto` messages will be rendered only i #### Hint -`v-input` can have **hint** which can tell user how to use the input. **persistent-hint** prop makes the hint visible always if no messages are displayed. +`v-input` can have **hint** which can tell user how to use the input (when focused). **persistent-hint** prop makes the hint visible always if no `error-messages` are displayed. From af2434490dd468a4f744622c2d0a98594e6415ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joaqu=C3=ADn=20S=C3=A1nchez?= Date: Mon, 28 Oct 2024 18:59:36 +0100 Subject: [PATCH 10/35] docs: update nuxt 3 manual setup (#20340) --- packages/docs/src/pages/en/getting-started/installation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/docs/src/pages/en/getting-started/installation.md b/packages/docs/src/pages/en/getting-started/installation.md index abeee7239f2..0f85edb2f8e 100644 --- a/packages/docs/src/pages/en/getting-started/installation.md +++ b/packages/docs/src/pages/en/getting-started/installation.md @@ -90,7 +90,7 @@ pnpm dev ### Manual setup -Nuxt is powered by Vite, so the steps to get Vuetify working in Nuxt 3 are quite similar to [the manual steps described below](#existing-projects). +Nuxt is powered by Nitro and can be used with Vite or Webpack 5 bundlers, so the steps to get Vuetify working in Nuxt 3 are quite similar to [the manual steps described below](#existing-projects). Start off creating a nuxt app by executing the following commands: From f6091e96807e3208d0d11e4eb949bcfb7eb2c68f Mon Sep 17 00:00:00 2001 From: J-Sek Date: Mon, 28 Oct 2024 19:02:28 +0100 Subject: [PATCH 11/35] docs(VTreeView): fix divider in example (#20363) Co-authored-by: jsek --- packages/docs/src/examples/v-treeview/misc-selectable-icons.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/docs/src/examples/v-treeview/misc-selectable-icons.vue b/packages/docs/src/examples/v-treeview/misc-selectable-icons.vue index 4243d9052b8..62b1a4f9f51 100644 --- a/packages/docs/src/examples/v-treeview/misc-selectable-icons.vue +++ b/packages/docs/src/examples/v-treeview/misc-selectable-icons.vue @@ -30,7 +30,7 @@ - + Date: Tue, 29 Oct 2024 03:02:54 +0900 Subject: [PATCH 12/35] docs(team.json): Fixed github name (#20629) --- packages/docs/src/data/team.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/docs/src/data/team.json b/packages/docs/src/data/team.json index 1a9f1de2839..71613ddb6d8 100644 --- a/packages/docs/src/data/team.json +++ b/packages/docs/src/data/team.json @@ -252,7 +252,7 @@ "team": "legends", "joined": "Feb 2023" }, - "shinjisakai": { + "iNSaNiA0821": { "discord": "housexpot", "focus": [ "[vuetifyjs/*](https://github.com/vuetifyjs)" From a5e2c7c1586c970e45589198bfeb84ef19ad1b16 Mon Sep 17 00:00:00 2001 From: J-Sek Date: Mon, 28 Oct 2024 19:05:46 +0100 Subject: [PATCH 13/35] docs(VList): streamline examples with selectable actions (#20373) Co-authored-by: jsek --- .../v-list/misc-action-and-item-groups.vue | 85 ------------------- .../docs/src/examples/v-list/misc-actions.vue | 58 +++++++++++++ .../docs/src/pages/en/components/lists.md | 4 +- 3 files changed, 60 insertions(+), 87 deletions(-) delete mode 100644 packages/docs/src/examples/v-list/misc-action-and-item-groups.vue create mode 100644 packages/docs/src/examples/v-list/misc-actions.vue diff --git a/packages/docs/src/examples/v-list/misc-action-and-item-groups.vue b/packages/docs/src/examples/v-list/misc-action-and-item-groups.vue deleted file mode 100644 index b05c4320dad..00000000000 --- a/packages/docs/src/examples/v-list/misc-action-and-item-groups.vue +++ /dev/null @@ -1,85 +0,0 @@ - diff --git a/packages/docs/src/examples/v-list/misc-actions.vue b/packages/docs/src/examples/v-list/misc-actions.vue new file mode 100644 index 00000000000..56191703950 --- /dev/null +++ b/packages/docs/src/examples/v-list/misc-actions.vue @@ -0,0 +1,58 @@ + + + diff --git a/packages/docs/src/pages/en/components/lists.md b/packages/docs/src/pages/en/components/lists.md index acd19ee0681..cf36a0ac3fe 100644 --- a/packages/docs/src/pages/en/components/lists.md +++ b/packages/docs/src/pages/en/components/lists.md @@ -130,6 +130,6 @@ Lists can contain subheaders, dividers, and can contain 1 or more lines. The sub #### Action and item groups -A **three-line** list with actions. Utilizing **v-list-group**, easily connect actions to your tiles. +A **three-line** list with actions. Utilizing **selection-strategy**, easily connect actions to your tiles. - + From 64a52d4f0f51f8b65c4f2014cac2ac74d636e7b0 Mon Sep 17 00:00:00 2001 From: Kael Date: Tue, 29 Oct 2024 15:33:15 +1100 Subject: [PATCH 14/35] docs(upgrade-guide): add menu eager note closes #20630 --- .../src/pages/en/getting-started/upgrade-guide.md | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/packages/docs/src/pages/en/getting-started/upgrade-guide.md b/packages/docs/src/pages/en/getting-started/upgrade-guide.md index b6d47222e85..374206d73bf 100644 --- a/packages/docs/src/pages/en/getting-started/upgrade-guide.md +++ b/packages/docs/src/pages/en/getting-started/upgrade-guide.md @@ -201,6 +201,14 @@ app.use(vuetify) - `v-subheader` has been renamed to `v-list-subheader`. - `v-list-item`'s `active` scoped slot prop has been renamed to `isActive` +### v-menu/v-tooltip + +- `rounded` prop has been removed. Apply a rounded css class to the menu content element instead. e.g. `.rounded-te` +- `internal-activator` prop has been removed, use `activator` with a ref or unique selector instead. +- `absolute`, `offset-y` and `offset-x` props have been removed. Manual positioning is now done by passing a `[x, y]` array to the `target` prop. +- `nudge-*` props have been removed. There is no direct replacement but `offset` can be used to achieve similar results. +- Content is now destroyed after closing, use `eager` to keep it. + ### v-navigation-drawer - `stateless` prop has been removed, manually control state using `model-value` or `v-model` instead. @@ -270,13 +278,6 @@ app.use(vuetify) - `contain` has been removed and is now the default behaviour. Use `cover` to fill the entire container. -### v-menu - -- `rounded` prop has been removed. Apply a rounded css class to the menu content element instead. e.g. `.rounded-te` -- `internal-activator` prop has been removed, use a ref or unique selector instead. -- `absolute`, `offset-y` and `offset-x` props have been removed. Manual positioning is now done by passing a `[x, y]` array to the `target` prop. -- `nudge-*` props have been removed. There is no direct replacement but `offset` can be used to achieve similar results. - ### v-snackbar - `action` slot was renamed to `actions` From 868b0ab1b6abff2b7b4e7dad83f610e244e83ee3 Mon Sep 17 00:00:00 2001 From: J-Sek Date: Tue, 29 Oct 2024 05:37:29 +0100 Subject: [PATCH 15/35] docs(VList): fix opening last example in playground (#20631) --- .../docs/src/examples/v-list/misc-actions.vue | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/packages/docs/src/examples/v-list/misc-actions.vue b/packages/docs/src/examples/v-list/misc-actions.vue index 56191703950..95a67f7cbde 100644 --- a/packages/docs/src/examples/v-list/misc-actions.vue +++ b/packages/docs/src/examples/v-list/misc-actions.vue @@ -43,6 +43,8 @@ + + From 70db0c7ea6c63a0f6a6acc4979716894a952cc92 Mon Sep 17 00:00:00 2001 From: Kael Date: Tue, 29 Oct 2024 15:49:31 +1100 Subject: [PATCH 16/35] fix(VVirtualScroll): don't fully deep watch items fixes #19941 closes #20608 --- packages/vuetify/src/composables/virtual.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/vuetify/src/composables/virtual.ts b/packages/vuetify/src/composables/virtual.ts index d92b5a01678..8065f3baced 100644 --- a/packages/vuetify/src/composables/virtual.ts +++ b/packages/vuetify/src/composables/virtual.ts @@ -241,7 +241,7 @@ export function useVirtual (props: VirtualProps, items: Ref) { offsets = Array.from({ length: items.value.length }) updateOffsets.immediate() calculateVisibleItems() - }, { deep: true }) + }, { deep: 1 }) return { calculateVisibleItems, From dad5163c884d457175983f25e0d0210bab669c86 Mon Sep 17 00:00:00 2001 From: Lily Wong Date: Tue, 29 Oct 2024 18:36:20 -0400 Subject: [PATCH 17/35] docs(VDataTable): update slot-headers example to use header cells (#20455) --- packages/docs/src/examples/v-data-table/slot-headers.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/docs/src/examples/v-data-table/slot-headers.vue b/packages/docs/src/examples/v-data-table/slot-headers.vue index fbee93f876b..61ddf46764e 100644 --- a/packages/docs/src/examples/v-data-table/slot-headers.vue +++ b/packages/docs/src/examples/v-data-table/slot-headers.vue @@ -7,13 +7,13 @@ From 9809ad5c63acc3fc57826e262a59374b4d98bffe Mon Sep 17 00:00:00 2001 From: Shinji Sakai Date: Thu, 31 Oct 2024 00:43:05 +0900 Subject: [PATCH 18/35] docs(VDataTableHeaders.json): Added missing description of VDataTableHeaders (#20640) --- packages/api-generator/src/locale/en/VDataTableHeaders.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/api-generator/src/locale/en/VDataTableHeaders.json b/packages/api-generator/src/locale/en/VDataTableHeaders.json index d00ed1ab290..1ee8ca567be 100644 --- a/packages/api-generator/src/locale/en/VDataTableHeaders.json +++ b/packages/api-generator/src/locale/en/VDataTableHeaders.json @@ -6,6 +6,10 @@ "sticky": "Sticks the header to the top of the table." }, "slots": { - "[`column.${string}`]": "Slot for custom rendering of a column." + "[`column.${string}`]": "Slot for custom rendering of a column.", + "[`header.${string}`]": "Slot for custom rendering of a header cell.", + "header.data-table-expand": "Slot for the expand button in the header.", + "header.data-table-select": "Slot for the select-all checkbox in the header.", + "headers": "Slot to replace the default rendering of the `` element." } } From 18c0adcd4a3cdd8dffda9691e3aa8ea18aaceb92 Mon Sep 17 00:00:00 2001 From: Kael Date: Thu, 31 Oct 2024 23:32:30 +1100 Subject: [PATCH 19/35] fix(VCode,VKbd): set default tag --- packages/docs/src/components/app/Markdown.vue | 2 ++ packages/docs/src/utils/markdown-it-rules.ts | 4 ++-- packages/vuetify/src/components/VCode/index.ts | 2 +- packages/vuetify/src/components/VKbd/index.ts | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/docs/src/components/app/Markdown.vue b/packages/docs/src/components/app/Markdown.vue index 88b551085db..03f9fbe732c 100644 --- a/packages/docs/src/components/app/Markdown.vue +++ b/packages/docs/src/components/app/Markdown.vue @@ -10,6 +10,7 @@ import { compile } from '@vue/compiler-dom' import * as vue from 'vue' + import { VCode } from 'vuetify/components/VCode' import { VWindowItem } from 'vuetify/components/VWindow' import { VTab } from 'vuetify/components/VTabs' import AppMarkup from '@/components/app/Markup.vue' @@ -125,6 +126,7 @@ const template = computed(() => ({ // These components are all used in markdown-it-rules components: { + VCode, VWindowItem, VTab, AppMarkup, diff --git a/packages/docs/src/utils/markdown-it-rules.ts b/packages/docs/src/utils/markdown-it-rules.ts index 5d33b9cd4b3..9472cbfc979 100644 --- a/packages/docs/src/utils/markdown-it-rules.ts +++ b/packages/docs/src/utils/markdown-it-rules.ts @@ -19,10 +19,10 @@ function addCodeRules (md: MarkdownIt) { (token.attrs || []).reduce((acc, [key, value]) => { acc[key] = acc[key] ? acc[key] + ' ' + value : value return acc - }, { class: 'v-code' } as Record) + }, {} as Record) ).map(([key, value]) => `${key}="${value}"`).join(' ') - return `${md.utils.escapeHtml(token.content)}` + return `${md.utils.escapeHtml(token.content)}` } createContainer(md, 'error') diff --git a/packages/vuetify/src/components/VCode/index.ts b/packages/vuetify/src/components/VCode/index.ts index 3b58b9c8a55..0ae2c9f0b4e 100644 --- a/packages/vuetify/src/components/VCode/index.ts +++ b/packages/vuetify/src/components/VCode/index.ts @@ -4,6 +4,6 @@ import './VCode.sass' // Utilities import { createSimpleFunctional } from '@/util' -export const VCode = createSimpleFunctional('v-code') +export const VCode = createSimpleFunctional('v-code', 'code') export type VCode = InstanceType diff --git a/packages/vuetify/src/components/VKbd/index.ts b/packages/vuetify/src/components/VKbd/index.ts index 1f09551cb80..b18344ff48c 100644 --- a/packages/vuetify/src/components/VKbd/index.ts +++ b/packages/vuetify/src/components/VKbd/index.ts @@ -4,6 +4,6 @@ import './VKbd.sass' // Utilities import { createSimpleFunctional } from '@/util' -export const VKbd = createSimpleFunctional('v-kbd') +export const VKbd = createSimpleFunctional('v-kbd', 'kbd') export type VKbd = InstanceType From 36965689dbc82a8b808c79f9cfcfb75d110c437a Mon Sep 17 00:00:00 2001 From: Kael Date: Thu, 31 Oct 2024 23:32:56 +1100 Subject: [PATCH 20/35] chore(docs): remove wrapping div from AppFigure --- packages/docs/src/utils/markdown-it-rules.ts | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/packages/docs/src/utils/markdown-it-rules.ts b/packages/docs/src/utils/markdown-it-rules.ts index 9472cbfc979..37e1ab55c9d 100644 --- a/packages/docs/src/utils/markdown-it-rules.ts +++ b/packages/docs/src/utils/markdown-it-rules.ts @@ -44,14 +44,12 @@ function addImageRules (md: MarkdownIt) { const height = token.attrGet('height') ?? '' return ` -
- -
+ ` } } From abfc6ae38f34ac058da82664d239502f0a75d910 Mon Sep 17 00:00:00 2001 From: Shinji Sakai Date: Thu, 31 Oct 2024 22:05:19 +0900 Subject: [PATCH 21/35] docs(api): add missing table slot descriptions (#20648) Co-authored-by: Kael --- packages/api-generator/src/locale/en/VDataTableRow.json | 4 ++++ packages/api-generator/src/locale/en/VDataTableRows.json | 5 ++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/api-generator/src/locale/en/VDataTableRow.json b/packages/api-generator/src/locale/en/VDataTableRow.json index ee0e7bc5df6..83eedaed30b 100644 --- a/packages/api-generator/src/locale/en/VDataTableRow.json +++ b/packages/api-generator/src/locale/en/VDataTableRow.json @@ -10,6 +10,10 @@ "[`item.${string}`]": "The event emitted when the user clicks the item." }, "slots": { + "[`header.${string}`]": "Slot for custom rendering of a header cell.", + "[`item.${string}`]": "Slot for custom rendering of a row cell.", + "header.data-table-expand": "Slot to replace the default `v-icon` used when expanding header.", + "header.data-table-select": "Slot to replace the default `v-checkbox-btn` in header.", "item.data-table-expand": "Slot for the expand button in the row.", "item.data-table-select": "Slot for the select checkbox in the row." } diff --git a/packages/api-generator/src/locale/en/VDataTableRows.json b/packages/api-generator/src/locale/en/VDataTableRows.json index 65a41784031..0418f0f18e3 100644 --- a/packages/api-generator/src/locale/en/VDataTableRows.json +++ b/packages/api-generator/src/locale/en/VDataTableRows.json @@ -10,7 +10,10 @@ "click:row": "Emitted when a row is clicked. Native event is passed as the first argument, row data as the second." }, "slots": { - "[`item.${string}]`": "Slot for custom rendering of a column.", + "[`header.${string}`]": "Slot for custom rendering of a header cell.", + "header.data-table-expand": "Slot to replace the default `v-icon` used when expanding header.", + "header.data-table-select": "Slot to replace the default `v-checkbox-btn` in header.", + "[`item.${string}`]": "Slot for custom rendering of a column.", "data-table-group": "Slot for custom rendering of a group.", "data-table-select": "Slot for custom rendering of a header cell with the select checkbox.", "expanded-row": "Slot for custom rendering of an expanded row.", From 0e8b92b7f14f41d59ad646b4ce62ff3a256078ab Mon Sep 17 00:00:00 2001 From: Kael Date: Fri, 1 Nov 2024 17:17:27 +1100 Subject: [PATCH 22/35] chore(docs): add swetrix --- packages/docs/package.json | 1 + packages/docs/src/components/app/Toc.vue | 3 -- .../src/components/app/bar/EnterpriseLink.vue | 9 ++--- .../src/components/app/bar/SettingsToggle.vue | 2 -- .../src/components/app/bar/ThemeToggle.vue | 2 -- packages/docs/src/main.ts | 29 ++++++++++++++- packages/docs/src/utils/analytics.ts | 9 +++++ pnpm-lock.yaml | 35 ++++++++++++------- 8 files changed, 66 insertions(+), 24 deletions(-) diff --git a/packages/docs/package.json b/packages/docs/package.json index f75b1b713c0..d5ddafa8071 100644 --- a/packages/docs/package.json +++ b/packages/docs/package.json @@ -33,6 +33,7 @@ "prism-theme-vars": "^0.2.4", "prismjs": "^1.29.0", "roboto-fontface": "^0.10.0", + "swetrix": "^3.5.0", "vee-validate": "^4.12.6", "vue": "^3.4.27", "vue-gtag-next": "^1.14.0", diff --git a/packages/docs/src/components/app/Toc.vue b/packages/docs/src/components/app/Toc.vue index b01a125312d..5475251907b 100644 --- a/packages/docs/src/components/app/Toc.vue +++ b/packages/docs/src/components/app/Toc.vue @@ -107,10 +107,7 @@ cols="12" > diff --git a/packages/docs/src/components/app/bar/SettingsToggle.vue b/packages/docs/src/components/app/bar/SettingsToggle.vue index f5a4f486a78..2698143397d 100644 --- a/packages/docs/src/components/app/bar/SettingsToggle.vue +++ b/packages/docs/src/components/app/bar/SettingsToggle.vue @@ -20,8 +20,6 @@ :icon="app.settings ? 'mdi-cog' : 'mdi-cog-outline'" class="me-n2" color="medium-emphasis" - data-umami-event="app-bar" - data-umami-event-type="settings-toggle" @click="onClick" /> diff --git a/packages/docs/src/components/app/bar/ThemeToggle.vue b/packages/docs/src/components/app/bar/ThemeToggle.vue index 5aa1b3ca53b..1786d87c08e 100644 --- a/packages/docs/src/components/app/bar/ThemeToggle.vue +++ b/packages/docs/src/components/app/bar/ThemeToggle.vue @@ -3,8 +3,6 @@ v-if="!hasToggle" :icon="icon" color="medium-emphasis" - data-umami-event="app-bar" - data-umami-event-type="theme-toggle" path="theme" @click="onClick" /> diff --git a/packages/docs/src/main.ts b/packages/docs/src/main.ts index f328c802bfe..fae1579c859 100644 --- a/packages/docs/src/main.ts +++ b/packages/docs/src/main.ts @@ -1,7 +1,8 @@ // Styles import 'prism-theme-vars/base.css' -// Plugins +// Pluginse +import * as Swetrix from 'swetrix' import { createApp } from 'vue' import { createRouter, createWebHistory } from 'vue-router' import { createHead } from '@unhead/vue' @@ -50,6 +51,11 @@ if (IN_BROWSER) { userStore.$subscribe(() => { userStore.save() }) + Swetrix.init('ycvR7fW63FFz', { + apiURL: 'https://swetrix-api.vuetifyjs.com/log', + }) + Swetrix.trackViews() + Swetrix.trackErrors() } const app = createApp(App) @@ -115,6 +121,13 @@ app.use(router) app.config.errorHandler = (err, vm, info) => { console.error(err, vm, info) + Swetrix.trackError({ + name: (err as any).name, + message: (err as any).message, + lineno: null, + colno: null, + filename: null, + }) } app.config.warnHandler = (err, vm, info) => { console.warn(err, vm, info) @@ -139,9 +152,23 @@ router.onError((err, to) => { location.assign(to.fullPath) } else { console.error('Dynamic import error, reloading page did not fix it', err) + Swetrix.trackError({ + name: err.name, + message: err.message, + lineno: null, + colno: null, + filename: null, + }) } } else { console.error(err) + Swetrix.trackError({ + name: err?.name, + message: err?.message, + lineno: null, + colno: null, + filename: null, + }) } }) diff --git a/packages/docs/src/utils/analytics.ts b/packages/docs/src/utils/analytics.ts index 12f284906a7..92f9a091663 100644 --- a/packages/docs/src/utils/analytics.ts +++ b/packages/docs/src/utils/analytics.ts @@ -1,4 +1,5 @@ /* eslint-disable camelcase */ +import { track } from 'swetrix' export function gtagClick ( event_category: string, @@ -8,4 +9,12 @@ export function gtagClick ( const { event } = useGtag() event('click', { event_category, event_label, value }) + track({ + ev: 'click', + meta: { + category: event_category, + label: event_label, + value, + }, + }) } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3db693197da..b0feee60e70 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -118,7 +118,7 @@ importers: version: 9.24.1(eslint@8.57.0) eslint-plugin-vuetify: specifier: ^2.3.0 - version: 2.3.0(eslint@8.57.0)(vuetify@3.7.2(typescript@5.5.4)(vite-plugin-vuetify@2.0.4)(vue@3.4.27(typescript@5.5.4))) + version: 2.3.0(eslint@8.57.0)(vuetify@3.7.3(typescript@5.5.4)(vite-plugin-vuetify@2.0.4)(vue@3.4.27(typescript@5.5.4))) glob: specifier: ^11.0.0 version: 11.0.0 @@ -267,6 +267,9 @@ importers: roboto-fontface: specifier: ^0.10.0 version: 0.10.0 + swetrix: + specifier: ^3.5.0 + version: 3.5.0 vee-validate: specifier: ^4.12.6 version: 4.12.6(vue@3.4.27(typescript@5.5.4)) @@ -8216,6 +8219,9 @@ packages: engines: {node: '>=14.0.0'} hasBin: true + swetrix@3.5.0: + resolution: {integrity: sha512-oL0d259iP8Mz6qeEj2KU6LAU0uvJzdgTXDP3wUX6V+LpzLNDMytOCRp1Cf+/IlOvV3w/jOOe3w6ZpHzjDRz6QQ==} + symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} @@ -9010,8 +9016,8 @@ packages: typescript: optional: true - vuetify@3.7.2: - resolution: {integrity: sha512-q0WTcRG977+a9Dqhb8TOaPm+Xmvj0oVhnBJhAdHWFSov3HhHTTxlH2nXP/GBTXZuuMHDbBeIWFuUR2/1Fx0PPw==} + vuetify@3.7.3: + resolution: {integrity: sha512-bpuvBpZl1/+nLlXDgdVXekvMNR6W/ciaoa8CYlpeAzAARbY8zUFSoBq05JlLhkIHI58AnzKVy4c09d0OtfYAPg==} engines: {node: ^12.20 || >=14.13} peerDependencies: typescript: '>=4.7' @@ -12391,11 +12397,11 @@ snapshots: vue: 3.4.27(typescript@5.5.4) vue-demi: 0.13.11(vue@3.4.27(typescript@5.5.4)) - '@vuetify/loader-shared@2.0.3(vue@3.4.27(typescript@5.5.4))(vuetify@3.7.2(typescript@5.5.4)(vite-plugin-vuetify@2.0.4)(vue@3.4.27(typescript@5.5.4)))': + '@vuetify/loader-shared@2.0.3(vue@3.4.27(typescript@5.5.4))(vuetify@3.7.3(typescript@5.5.4)(vite-plugin-vuetify@2.0.4)(vue@3.4.27(typescript@5.5.4)))': dependencies: upath: 2.0.1 vue: 3.4.27(typescript@5.5.4) - vuetify: 3.7.2(typescript@5.5.4)(vite-plugin-vuetify@2.0.4)(vue@3.4.27(typescript@5.5.4)) + vuetify: 3.7.3(typescript@5.5.4)(vite-plugin-vuetify@2.0.4)(vue@3.4.27(typescript@5.5.4)) optional: true '@vuetify/loader-shared@2.0.3(vue@3.4.27(typescript@5.5.4))(vuetify@packages+vuetify)': @@ -14366,12 +14372,12 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-vuetify@2.3.0(eslint@8.57.0)(vuetify@3.7.2(typescript@5.5.4)(vite-plugin-vuetify@2.0.4)(vue@3.4.27(typescript@5.5.4))): + eslint-plugin-vuetify@2.3.0(eslint@8.57.0)(vuetify@3.7.3(typescript@5.5.4)(vite-plugin-vuetify@2.0.4)(vue@3.4.27(typescript@5.5.4))): dependencies: eslint: 8.57.0 eslint-plugin-vue: 9.24.1(eslint@8.57.0) requireindex: 1.2.0 - vuetify: 3.7.2(typescript@5.5.4)(vite-plugin-vuetify@2.0.4)(vue@3.4.27(typescript@5.5.4)) + vuetify: 3.7.3(typescript@5.5.4)(vite-plugin-vuetify@2.0.4)(vue@3.4.27(typescript@5.5.4)) transitivePeerDependencies: - supports-color @@ -18434,6 +18440,11 @@ snapshots: csso: 5.0.5 picocolors: 1.1.0 + swetrix@3.5.0: + dependencies: + '@types/node': 22.5.4 + tslib: 2.6.2 + symbol-tree@3.2.4: {} tar-fs@3.0.4: @@ -19042,14 +19053,14 @@ snapshots: transitivePeerDependencies: - supports-color - vite-plugin-vuetify@2.0.4(vite@5.4.3(@types/node@22.5.4)(sass-embedded@1.80.1)(sass@1.80.1)(terser@5.31.3))(vue@3.4.27(typescript@5.5.4))(vuetify@3.7.2): + vite-plugin-vuetify@2.0.4(vite@5.4.3(@types/node@22.5.4)(sass-embedded@1.80.1)(sass@1.80.1)(terser@5.31.3))(vue@3.4.27(typescript@5.5.4))(vuetify@3.7.3): dependencies: - '@vuetify/loader-shared': 2.0.3(vue@3.4.27(typescript@5.5.4))(vuetify@3.7.2(typescript@5.5.4)(vite-plugin-vuetify@2.0.4)(vue@3.4.27(typescript@5.5.4))) + '@vuetify/loader-shared': 2.0.3(vue@3.4.27(typescript@5.5.4))(vuetify@3.7.3(typescript@5.5.4)(vite-plugin-vuetify@2.0.4)(vue@3.4.27(typescript@5.5.4))) debug: 4.3.7 upath: 2.0.1 vite: 5.4.3(@types/node@22.5.4)(sass-embedded@1.80.1)(sass@1.80.1)(terser@5.31.3) vue: 3.4.27(typescript@5.5.4) - vuetify: 3.7.2(typescript@5.5.4)(vite-plugin-vuetify@2.0.4)(vue@3.4.27(typescript@5.5.4)) + vuetify: 3.7.3(typescript@5.5.4)(vite-plugin-vuetify@2.0.4)(vue@3.4.27(typescript@5.5.4)) transitivePeerDependencies: - supports-color optional: true @@ -19316,12 +19327,12 @@ snapshots: optionalDependencies: typescript: 5.5.4 - vuetify@3.7.2(typescript@5.5.4)(vite-plugin-vuetify@2.0.4)(vue@3.4.27(typescript@5.5.4)): + vuetify@3.7.3(typescript@5.5.4)(vite-plugin-vuetify@2.0.4)(vue@3.4.27(typescript@5.5.4)): dependencies: vue: 3.4.27(typescript@5.5.4) optionalDependencies: typescript: 5.5.4 - vite-plugin-vuetify: 2.0.4(vite@5.4.3(@types/node@22.5.4)(sass-embedded@1.80.1)(sass@1.80.1)(terser@5.31.3))(vue@3.4.27(typescript@5.5.4))(vuetify@3.7.2) + vite-plugin-vuetify: 2.0.4(vite@5.4.3(@types/node@22.5.4)(sass-embedded@1.80.1)(sass@1.80.1)(terser@5.31.3))(vue@3.4.27(typescript@5.5.4))(vuetify@3.7.3) w3c-xmlserializer@5.0.0: dependencies: From a72df884ba8415a272332f86bba8401eec7d6fc5 Mon Sep 17 00:00:00 2001 From: Kael Date: Sun, 3 Nov 2024 19:26:12 +1100 Subject: [PATCH 23/35] fix(VDialog,VMenu): remove focus listeners on unmount fixes #20422 --- .../vuetify/src/components/VDialog/VDialog.tsx | 6 +++++- packages/vuetify/src/components/VMenu/VMenu.tsx | 16 ++++++++++++---- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/packages/vuetify/src/components/VDialog/VDialog.tsx b/packages/vuetify/src/components/VDialog/VDialog.tsx index 10063444860..9123e28fe9e 100644 --- a/packages/vuetify/src/components/VDialog/VDialog.tsx +++ b/packages/vuetify/src/components/VDialog/VDialog.tsx @@ -13,7 +13,7 @@ import { useProxiedModel } from '@/composables/proxiedModel' import { useScopeId } from '@/composables/scopeId' // Utilities -import { mergeProps, nextTick, ref, watch } from 'vue' +import { mergeProps, nextTick, onBeforeUnmount, ref, watch } from 'vue' import { focusableChildren, genericComponent, IN_BROWSER, propsFactory, useRender } from '@/util' // Types @@ -81,6 +81,10 @@ export const VDialog = genericComponent()({ } } + onBeforeUnmount(() => { + document.removeEventListener('focusin', onFocusin) + }) + if (IN_BROWSER) { watch(() => isActive.value && props.retainFocus, val => { val diff --git a/packages/vuetify/src/components/VMenu/VMenu.tsx b/packages/vuetify/src/components/VMenu/VMenu.tsx index dca8145e8d7..6997992fc43 100644 --- a/packages/vuetify/src/components/VMenu/VMenu.tsx +++ b/packages/vuetify/src/components/VMenu/VMenu.tsx @@ -33,6 +33,7 @@ import { genericComponent, getNextElement, getUid, + IN_BROWSER, isClickInsideElement, omit, propsFactory, @@ -102,7 +103,10 @@ export const VMenu = genericComponent()({ }, }) - onBeforeUnmount(() => parent?.unregister()) + onBeforeUnmount(() => { + parent?.unregister() + document.removeEventListener('focusin', onFocusIn) + }) onDeactivated(() => isActive.value = false) async function onFocusIn (e: FocusEvent) { @@ -130,12 +134,16 @@ export const VMenu = genericComponent()({ watch(isActive, val => { if (val) { parent?.register() - document.addEventListener('focusin', onFocusIn, { once: true }) + if (IN_BROWSER) { + document.addEventListener('focusin', onFocusIn, { once: true }) + } } else { parent?.unregister() - document.removeEventListener('focusin', onFocusIn) + if (IN_BROWSER) { + document.removeEventListener('focusin', onFocusIn) + } } - }) + }, { immediate: true }) function onClickOutside (e: MouseEvent) { parent?.closeParents(e) From bfe631027588b73da8cf94655ae8316c763cafe8 Mon Sep 17 00:00:00 2001 From: SonTT19 <49301480+SonTT19@users.noreply.github.com> Date: Sun, 3 Nov 2024 15:30:04 +0700 Subject: [PATCH 24/35] fix(VBtnToggle): plain variant button opacity when selected (#20279) fixes #20142 --- packages/vuetify/src/components/VBtnToggle/VBtnToggle.sass | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/vuetify/src/components/VBtnToggle/VBtnToggle.sass b/packages/vuetify/src/components/VBtnToggle/VBtnToggle.sass index 953e86af93b..85f9d3cb1a3 100644 --- a/packages/vuetify/src/components/VBtnToggle/VBtnToggle.sass +++ b/packages/vuetify/src/components/VBtnToggle/VBtnToggle.sass @@ -5,3 +5,6 @@ .v-btn-toggle > .v-btn.v-btn--active:not(.v-btn--disabled) @include tools.active-states('> .v-btn__overlay', $btn-toggle-selected-opacity) + + &.v-btn--variant-plain + opacity: 1 From 24b12d914104c6a538f78bce4db96c9749c30a73 Mon Sep 17 00:00:00 2001 From: John Leider Date: Sun, 3 Nov 2024 13:47:22 -0600 Subject: [PATCH 25/35] docs(roadmap): update page content --- packages/docs/src/pages/en/introduction/roadmap.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/docs/src/pages/en/introduction/roadmap.md b/packages/docs/src/pages/en/introduction/roadmap.md index 5fa5614ef2a..b31aca97df4 100644 --- a/packages/docs/src/pages/en/introduction/roadmap.md +++ b/packages/docs/src/pages/en/introduction/roadmap.md @@ -24,13 +24,13 @@ The following is a list of all planned components for the year 2024. | Component | Entering Labs | Production Release | |-------------------------------------------------------------------------|----------------|-------------------------------------| -| [v3.8 (Andromeda)](https://github.com/vuetifyjs/vuetify/milestone/74) | | October 2024 { .bg-surface-light } | +| [v3.8 (Andromeda)](https://github.com/vuetifyjs/vuetify/milestone/74) | | Q4 2024 { .bg-surface-light } | | [v-number-input](/components/number-inputs/) | * | | | [v-snackbar-queue](/components/snackbar-queue/) | * | | | [v-time-picker](/components/time-pickers/) | * | | | [v-treeview](/components/treeview/) | * | | | [v-stepper-vertical](/components/vertical-steppers/) | * | | -| [v4.0 (Revisionist)](https://github.com/vuetifyjs/vuetify/milestone/62) | | December 2024 { .bg-surface-light } | +| [v4.0 (Revisionist)](https://github.com/vuetifyjs/vuetify/milestone/62) | | TBA { .bg-surface-light } | | [v-date-input](/components/date-inputs/) | * | | | [v-calendar](/components/calendars/) | * | | | [v-time-input](https://github.com/vuetifyjs/vuetify/pull/19709) | September 2024 | | From 3b1f0f5ca3d724247d45a7264416f03099918166 Mon Sep 17 00:00:00 2001 From: MajesticPotatoe Date: Mon, 4 Nov 2024 18:17:25 -0500 Subject: [PATCH 26/35] docs(VDataTable): update filtering section resolves #20052 --- .../{prop-filterable.vue => prop-filter-keys.vue} | 6 +++++- .../pages/en/components/data-tables/data-and-display.md | 8 ++++---- 2 files changed, 9 insertions(+), 5 deletions(-) rename packages/docs/src/examples/v-data-table/{prop-filterable.vue => prop-filter-keys.vue} (96%) diff --git a/packages/docs/src/examples/v-data-table/prop-filterable.vue b/packages/docs/src/examples/v-data-table/prop-filter-keys.vue similarity index 96% rename from packages/docs/src/examples/v-data-table/prop-filterable.vue rename to packages/docs/src/examples/v-data-table/prop-filter-keys.vue index 8024b1182f2..de1454523fc 100644 --- a/packages/docs/src/examples/v-data-table/prop-filterable.vue +++ b/packages/docs/src/examples/v-data-table/prop-filter-keys.vue @@ -19,7 +19,11 @@ - + diff --git a/packages/docs/src/pages/en/components/data-tables/data-and-display.md b/packages/docs/src/pages/en/components/data-tables/data-and-display.md index b0226fe94a4..968334fca1f 100644 --- a/packages/docs/src/pages/en/components/data-tables/data-and-display.md +++ b/packages/docs/src/pages/en/components/data-tables/data-and-display.md @@ -26,11 +26,11 @@ The data table exposes a **search** prop that allows you to filter your data. -### Filterable +### Filter Keys -You can easily disable specific columns from being included when searching through table rows by setting the property **filterable** to false on the header item(s). In the example below the dessert name column is no longer searchable. +You can easily select only the column you want to filter on by using the **filter-keys** prop. This prop accepts an array of keys from the table items that will be used for filtering. You may also choose to disable columns from filtering by setting the **filter** property to `false` on the header item(s). In the example below the we only filter on the `name` column. - + ### Custom filter @@ -40,7 +40,7 @@ You can override the default filtering used with the **search** prop by supplyin (value: string, query: string, item?: any) => boolean | number | [number, number] | [number, number][] ``` -In the example below, the custom filter will only match inputs that are in completely in upper case. +Additionally, you may apply customize the filtering on a per column basis by setting custom function to the **filter** property on the header item(s). In the example below, the custom filter will only match inputs that are in completely in upper case. From fd342fa4faea171b3c221df8860e5dbb642fc013 Mon Sep 17 00:00:00 2001 From: J-Sek Date: Tue, 5 Nov 2024 00:19:12 +0100 Subject: [PATCH 27/35] docs(VDataIterator): fix example content mismatch (#20668) --- .../slot-header-and-footer.vue | 52 +++++++++---------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/packages/docs/src/examples/v-data-iterator/slot-header-and-footer.vue b/packages/docs/src/examples/v-data-iterator/slot-header-and-footer.vue index bc843aef55c..bb692ff5ead 100644 --- a/packages/docs/src/examples/v-data-iterator/slot-header-and-footer.vue +++ b/packages/docs/src/examples/v-data-iterator/slot-header-and-footer.vue @@ -137,7 +137,7 @@ wireless: true, price: 149.99, description: 'Logitech G Pro X', - src: 'https://cdn.vuetifyjs.com/docs/images/graphics/mice/1.png', + src: 'https://cdn.vuetifyjs.com/docs/images/graphics/mice/3.png', }, { name: 'Razer DeathAdder V2', @@ -159,7 +159,7 @@ wireless: true, price: 89.99, description: 'Corsair Dark Core RGB', - src: 'https://cdn.vuetifyjs.com/docs/images/graphics/mice/3.png', + src: 'https://cdn.vuetifyjs.com/docs/images/graphics/mice/1.png', }, { name: 'SteelSeries Rival 3', @@ -181,7 +181,7 @@ wireless: false, price: 44.99, description: 'HyperX Pulsefire FPS Pro', - src: 'https://cdn.vuetifyjs.com/docs/images/graphics/mice/5.png', + src: 'https://cdn.vuetifyjs.com/docs/images/graphics/mice/6.png', }, { name: 'Zowie EC2', @@ -192,7 +192,7 @@ wireless: false, price: 69.99, description: 'Zowie EC2', - src: 'https://cdn.vuetifyjs.com/docs/images/graphics/mice/6.png', + src: 'https://cdn.vuetifyjs.com/docs/images/graphics/mice/7.png', }, { name: 'Roccat Kone AIMO', @@ -203,7 +203,7 @@ wireless: false, price: 79.99, description: 'Roccat Kone AIMO', - src: 'https://cdn.vuetifyjs.com/docs/images/graphics/mice/7.png', + src: 'https://cdn.vuetifyjs.com/docs/images/graphics/mice/8.png', }, { name: 'Logitech G903', @@ -214,7 +214,7 @@ wireless: true, price: 129.99, description: 'Logitech G903', - src: 'https://cdn.vuetifyjs.com/docs/images/graphics/mice/8.png', + src: 'https://cdn.vuetifyjs.com/docs/images/graphics/mice/9.png', }, { name: 'Cooler Master MM711', @@ -225,7 +225,7 @@ wireless: false, price: 49.99, description: 'Cooler Master MM711', - src: 'https://cdn.vuetifyjs.com/docs/images/graphics/mice/9.png', + src: 'https://cdn.vuetifyjs.com/docs/images/graphics/mice/5.png', }, { name: 'Glorious Model O', @@ -236,7 +236,7 @@ wireless: false, price: 49.99, description: 'Glorious Model O', - src: 'https://cdn.vuetifyjs.com/docs/images/graphics/mice/10.png', + src: 'https://cdn.vuetifyjs.com/docs/images/graphics/mice/15.png', }, { name: 'HP Omen Photon', @@ -247,7 +247,7 @@ wireless: true, price: 99.99, description: 'HP Omen Photon', - src: 'https://cdn.vuetifyjs.com/docs/images/graphics/mice/11.png', + src: 'https://cdn.vuetifyjs.com/docs/images/graphics/mice/10.png', }, { name: 'Asus ROG Chakram', @@ -258,7 +258,7 @@ wireless: true, price: 159.99, description: 'Asus ROG Chakram', - src: 'https://cdn.vuetifyjs.com/docs/images/graphics/mice/12.png', + src: 'https://cdn.vuetifyjs.com/docs/images/graphics/mice/11.png', }, { name: 'Razer Naga X', @@ -269,7 +269,7 @@ wireless: false, price: 79.99, description: 'Razer Naga X', - src: 'https://cdn.vuetifyjs.com/docs/images/graphics/mice/13.png', + src: 'https://cdn.vuetifyjs.com/docs/images/graphics/mice/12.png', }, { name: 'Mad Catz R.A.T. 8+', @@ -280,7 +280,7 @@ wireless: false, price: 99.99, description: 'Mad Catz R.A.T. 8+', - src: 'https://cdn.vuetifyjs.com/docs/images/graphics/mice/14.png', + src: 'https://cdn.vuetifyjs.com/docs/images/graphics/mice/13.png', }, { name: 'Alienware 610M', @@ -291,7 +291,7 @@ wireless: true, price: 99.99, description: 'Alienware 610M', - src: 'https://cdn.vuetifyjs.com/docs/images/graphics/mice/15.png', + src: 'https://cdn.vuetifyjs.com/docs/images/graphics/mice/14.png', }, ] @@ -315,7 +315,7 @@ wireless: true, price: 149.99, description: 'Logitech G Pro X', - src: 'https://cdn.vuetifyjs.com/docs/images/graphics/mice/1.png', + src: 'https://cdn.vuetifyjs.com/docs/images/graphics/mice/3.png', }, { name: 'Razer DeathAdder V2', @@ -337,7 +337,7 @@ wireless: true, price: 89.99, description: 'Corsair Dark Core RGB', - src: 'https://cdn.vuetifyjs.com/docs/images/graphics/mice/3.png', + src: 'https://cdn.vuetifyjs.com/docs/images/graphics/mice/1.png', }, { name: 'SteelSeries Rival 3', @@ -359,7 +359,7 @@ wireless: false, price: 44.99, description: 'HyperX Pulsefire FPS Pro', - src: 'https://cdn.vuetifyjs.com/docs/images/graphics/mice/5.png', + src: 'https://cdn.vuetifyjs.com/docs/images/graphics/mice/6.png', }, { name: 'Zowie EC2', @@ -370,7 +370,7 @@ wireless: false, price: 69.99, description: 'Zowie EC2', - src: 'https://cdn.vuetifyjs.com/docs/images/graphics/mice/6.png', + src: 'https://cdn.vuetifyjs.com/docs/images/graphics/mice/7.png', }, { name: 'Roccat Kone AIMO', @@ -381,7 +381,7 @@ wireless: false, price: 79.99, description: 'Roccat Kone AIMO', - src: 'https://cdn.vuetifyjs.com/docs/images/graphics/mice/7.png', + src: 'https://cdn.vuetifyjs.com/docs/images/graphics/mice/8.png', }, { name: 'Logitech G903', @@ -392,7 +392,7 @@ wireless: true, price: 129.99, description: 'Logitech G903', - src: 'https://cdn.vuetifyjs.com/docs/images/graphics/mice/8.png', + src: 'https://cdn.vuetifyjs.com/docs/images/graphics/mice/9.png', }, { name: 'Cooler Master MM711', @@ -403,7 +403,7 @@ wireless: false, price: 49.99, description: 'Cooler Master MM711', - src: 'https://cdn.vuetifyjs.com/docs/images/graphics/mice/9.png', + src: 'https://cdn.vuetifyjs.com/docs/images/graphics/mice/5.png', }, { name: 'Glorious Model O', @@ -414,7 +414,7 @@ wireless: false, price: 49.99, description: 'Glorious Model O', - src: 'https://cdn.vuetifyjs.com/docs/images/graphics/mice/10.png', + src: 'https://cdn.vuetifyjs.com/docs/images/graphics/mice/15.png', }, { name: 'HP Omen Photon', @@ -425,7 +425,7 @@ wireless: true, price: 99.99, description: 'HP Omen Photon', - src: 'https://cdn.vuetifyjs.com/docs/images/graphics/mice/11.png', + src: 'https://cdn.vuetifyjs.com/docs/images/graphics/mice/10.png', }, { name: 'Asus ROG Chakram', @@ -436,7 +436,7 @@ wireless: true, price: 159.99, description: 'Asus ROG Chakram', - src: 'https://cdn.vuetifyjs.com/docs/images/graphics/mice/12.png', + src: 'https://cdn.vuetifyjs.com/docs/images/graphics/mice/11.png', }, { name: 'Razer Naga X', @@ -447,7 +447,7 @@ wireless: false, price: 79.99, description: 'Razer Naga X', - src: 'https://cdn.vuetifyjs.com/docs/images/graphics/mice/13.png', + src: 'https://cdn.vuetifyjs.com/docs/images/graphics/mice/12.png', }, { name: 'Mad Catz R.A.T. 8+', @@ -458,7 +458,7 @@ wireless: false, price: 99.99, description: 'Mad Catz R.A.T. 8+', - src: 'https://cdn.vuetifyjs.com/docs/images/graphics/mice/14.png', + src: 'https://cdn.vuetifyjs.com/docs/images/graphics/mice/13.png', }, { name: 'Alienware 610M', @@ -469,7 +469,7 @@ wireless: true, price: 99.99, description: 'Alienware 610M', - src: 'https://cdn.vuetifyjs.com/docs/images/graphics/mice/15.png', + src: 'https://cdn.vuetifyjs.com/docs/images/graphics/mice/14.png', }, ], } From d7f1ccf81d9c9b57167a236f64eaf2867da0eef9 Mon Sep 17 00:00:00 2001 From: J-Sek Date: Tue, 5 Nov 2024 00:19:59 +0100 Subject: [PATCH 28/35] docs(team): add J-Sek (#20667) --- packages/docs/src/data/team.json | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/packages/docs/src/data/team.json b/packages/docs/src/data/team.json index 71613ddb6d8..dc76b77bfce 100644 --- a/packages/docs/src/data/team.json +++ b/packages/docs/src/data/team.json @@ -168,6 +168,20 @@ "team": "core", "joined": "May 2024" }, + "J-Sek": { + "discord": "jacek#1420", + "focus": [ + "[vuetifyjs/studio](https://github.com/vuetifyjs/studio)" + ], + "languages": [ + "Polish", + "English" + ], + "location": "GdaƄsk, Poland", + "name": "Jacek Czarniecki", + "team": "core", + "joined": "Nov 2024" + }, "jacekkarczmarczyk": { "discord": "jacek#3542", "languages": [ From 95d325a387c0149442bdb6253c235e1eabe584ee Mon Sep 17 00:00:00 2001 From: John Leider Date: Tue, 5 Nov 2024 11:11:10 -0600 Subject: [PATCH 29/35] docs(AppBarBlogLink): adjust margin axis --- packages/docs/src/components/app/bar/BlogLink.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/docs/src/components/app/bar/BlogLink.vue b/packages/docs/src/components/app/bar/BlogLink.vue index bd413110563..3264c9bc414 100644 --- a/packages/docs/src/components/app/bar/BlogLink.vue +++ b/packages/docs/src/components/app/bar/BlogLink.vue @@ -2,7 +2,7 @@ Date: Wed, 6 Nov 2024 07:02:13 +0100 Subject: [PATCH 30/35] docs: fix styles leaking from TeamMember (#20669) closes #20664 --- packages/docs/src/components/about/TeamMember.vue | 11 ++++++----- packages/docs/src/components/about/TeamMembers.vue | 10 ---------- 2 files changed, 6 insertions(+), 15 deletions(-) diff --git a/packages/docs/src/components/about/TeamMember.vue b/packages/docs/src/components/about/TeamMember.vue index 42654721237..cd48347ecd0 100644 --- a/packages/docs/src/components/about/TeamMember.vue +++ b/packages/docs/src/components/about/TeamMember.vue @@ -1,6 +1,6 @@