@vuetify/nightly 3.6.7-master.2024-05-28 → 3.6.8-master.2024-05-30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/CHANGELOG.md +2 -10
  2. package/dist/json/attributes.json +44 -12
  3. package/dist/json/importMap-labs.json +26 -26
  4. package/dist/json/importMap.json +118 -118
  5. package/dist/json/tags.json +8 -0
  6. package/dist/json/web-types.json +117 -45
  7. package/dist/vuetify-labs.css +1826 -1823
  8. package/dist/vuetify-labs.d.ts +528 -1392
  9. package/dist/vuetify-labs.esm.js +145 -43
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +145 -43
  12. package/dist/vuetify-labs.min.css +2 -2
  13. package/dist/vuetify.css +849 -846
  14. package/dist/vuetify.d.ts +423 -1127
  15. package/dist/vuetify.esm.js +41 -12
  16. package/dist/vuetify.esm.js.map +1 -1
  17. package/dist/vuetify.js +41 -12
  18. package/dist/vuetify.js.map +1 -1
  19. package/dist/vuetify.min.css +2 -2
  20. package/dist/vuetify.min.js +16 -16
  21. package/dist/vuetify.min.js.map +1 -1
  22. package/lib/components/VAutocomplete/index.d.mts +102 -336
  23. package/lib/components/VCombobox/index.d.mts +102 -336
  24. package/lib/components/VDatePicker/VDatePickerMonth.mjs +3 -0
  25. package/lib/components/VDatePicker/VDatePickerMonth.mjs.map +1 -1
  26. package/lib/components/VDivider/VDivider.mjs +1 -1
  27. package/lib/components/VDivider/VDivider.mjs.map +1 -1
  28. package/lib/components/VList/VList.mjs +3 -1
  29. package/lib/components/VList/VList.mjs.map +1 -1
  30. package/lib/components/VList/VListGroup.mjs +1 -0
  31. package/lib/components/VList/VListGroup.mjs.map +1 -1
  32. package/lib/components/VList/VListItem.css +2 -2
  33. package/lib/components/VList/VListItem.mjs +2 -0
  34. package/lib/components/VList/VListItem.mjs.map +1 -1
  35. package/lib/components/VList/VListItem.sass +1 -1
  36. package/lib/components/VList/index.d.mts +52 -66
  37. package/lib/components/VSelect/index.d.mts +102 -336
  38. package/lib/components/VSelectionControl/VSelectionControl.mjs +9 -1
  39. package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
  40. package/lib/components/VSnackbar/VSnackbar.css +1 -1
  41. package/lib/components/VSnackbar/VSnackbar.sass +1 -1
  42. package/lib/components/VStepper/VStepper.mjs +18 -4
  43. package/lib/components/VStepper/VStepper.mjs.map +1 -1
  44. package/lib/components/VStepper/VStepperItem.css +3 -0
  45. package/lib/components/VStepper/VStepperItem.sass +3 -0
  46. package/lib/components/VStepper/index.d.mts +43 -9
  47. package/lib/components/VTabs/VTabs.mjs +2 -2
  48. package/lib/components/VTabs/VTabs.mjs.map +1 -1
  49. package/lib/components/index.d.mts +379 -1083
  50. package/lib/composables/filter.mjs +1 -1
  51. package/lib/composables/filter.mjs.map +1 -1
  52. package/lib/entry-bundler.mjs +1 -1
  53. package/lib/framework.mjs +1 -1
  54. package/lib/index.d.mts +44 -44
  55. package/lib/labs/VStepperVertical/index.d.mts +43 -9
  56. package/lib/labs/VTreeview/VTreeview.mjs +1 -1
  57. package/lib/labs/VTreeview/VTreeview.mjs.map +1 -1
  58. package/lib/labs/VTreeview/VTreeviewChildren.mjs +30 -25
  59. package/lib/labs/VTreeview/VTreeviewChildren.mjs.map +1 -1
  60. package/lib/labs/VTreeview/VTreeviewItem.mjs +81 -10
  61. package/lib/labs/VTreeview/VTreeviewItem.mjs.map +1 -1
  62. package/lib/labs/VTreeview/index.d.mts +110 -300
  63. package/lib/labs/components.d.mts +3402 -3558
  64. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.6.7-master.2024-05-28
2
+ * Vuetify v3.6.8-master.2024-05-30
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -6253,7 +6253,15 @@
6253
6253
  e.stopPropagation();
6254
6254
  }
6255
6255
  function onInput(e) {
6256
- if (!isInteractive.value) return;
6256
+ if (!isInteractive.value) {
6257
+ if (input.value) {
6258
+ // model value is not updated when input is not interactive
6259
+ // but the internal checked state of the input is still updated,
6260
+ // so here it's value is restored
6261
+ input.value.checked = model.value;
6262
+ }
6263
+ return;
6264
+ }
6257
6265
  if (props.readonly && group) {
6258
6266
  vue.nextTick(() => group.forceUpdate());
6259
6267
  }
@@ -8706,6 +8714,7 @@
8706
8714
  isBooted
8707
8715
  } = useSsrBoot();
8708
8716
  function onClick(e) {
8717
+ e.stopPropagation();
8709
8718
  open(!isOpen.value, e);
8710
8719
  }
8711
8720
  const activatorProps = vue.computed(() => ({
@@ -9039,6 +9048,8 @@
9039
9048
  }), [[vue.resolveDirective("ripple"), isClickable.value && props.ripple]]);
9040
9049
  });
9041
9050
  return {
9051
+ activate,
9052
+ isActivated,
9042
9053
  isGroupActivator,
9043
9054
  isSelected,
9044
9055
  list,
@@ -9114,7 +9125,7 @@
9114
9125
  const dividerStyles = vue.computed(() => {
9115
9126
  const styles = {};
9116
9127
  if (props.length) {
9117
- styles[props.vertical ? 'maxHeight' : 'maxWidth'] = convertToUnit(props.length);
9128
+ styles[props.vertical ? 'height' : 'width'] = convertToUnit(props.length);
9118
9129
  }
9119
9130
  if (props.thickness) {
9120
9131
  styles[props.vertical ? 'borderRightWidth' : 'borderTopWidth'] = convertToUnit(props.thickness);
@@ -9375,6 +9386,8 @@
9375
9386
  },
9376
9387
  slim: Boolean,
9377
9388
  nav: Boolean,
9389
+ 'onClick:open': EventProp(),
9390
+ 'onClick:select': EventProp(),
9378
9391
  ...makeNestedProps({
9379
9392
  selectStrategy: 'single-leaf',
9380
9393
  openStrategy: 'list'
@@ -12686,7 +12699,7 @@
12686
12699
  const customMatches = {};
12687
12700
  const defaultMatches = {};
12688
12701
  let match = -1;
12689
- if (query && !options?.noFilter) {
12702
+ if ((query || customFiltersLength > 0) && !options?.noFilter) {
12690
12703
  if (typeof item === 'object') {
12691
12704
  const filterKeys = keys || Object.keys(transformed);
12692
12705
  for (const key of filterKeys) {
@@ -21527,6 +21540,9 @@
21527
21540
  });
21528
21541
  function onRangeClick(value) {
21529
21542
  const _value = adapter.startOfDay(value);
21543
+ if (model.value.length === 0) {
21544
+ rangeStart.value = undefined;
21545
+ }
21530
21546
  if (!rangeStart.value) {
21531
21547
  rangeStart.value = _value;
21532
21548
  model.value = [rangeStart.value];
@@ -26044,7 +26060,10 @@
26044
26060
  const makeStepperProps = propsFactory({
26045
26061
  altLabels: Boolean,
26046
26062
  bgColor: String,
26063
+ completeIcon: String,
26064
+ editIcon: String,
26047
26065
  editable: Boolean,
26066
+ errorIcon: String,
26048
26067
  hideActions: Boolean,
26049
26068
  items: {
26050
26069
  type: Array,
@@ -26058,9 +26077,9 @@
26058
26077
  type: String,
26059
26078
  default: 'value'
26060
26079
  },
26061
- mobile: Boolean,
26062
26080
  nonLinear: Boolean,
26063
- flat: Boolean
26081
+ flat: Boolean,
26082
+ ...makeDisplayProps()
26064
26083
  }, 'Stepper');
26065
26084
  const makeVStepperProps = propsFactory({
26066
26085
  ...makeStepperProps(),
@@ -26088,6 +26107,13 @@
26088
26107
  selected
26089
26108
  } = useGroup(props, VStepperSymbol);
26090
26109
  const {
26110
+ displayClasses,
26111
+ mobile
26112
+ } = useDisplay(props);
26113
+ const {
26114
+ completeIcon,
26115
+ editIcon,
26116
+ errorIcon,
26091
26117
  color,
26092
26118
  editable,
26093
26119
  prevText,
@@ -26114,6 +26140,9 @@
26114
26140
  provideDefaults({
26115
26141
  VStepperItem: {
26116
26142
  editable,
26143
+ errorIcon,
26144
+ completeIcon,
26145
+ editIcon,
26117
26146
  prevText,
26118
26147
  nextText
26119
26148
  },
@@ -26135,8 +26164,8 @@
26135
26164
  'v-stepper--alt-labels': props.altLabels,
26136
26165
  'v-stepper--flat': props.flat,
26137
26166
  'v-stepper--non-linear': props.nonLinear,
26138
- 'v-stepper--mobile': props.mobile
26139
- }, props.class],
26167
+ 'v-stepper--mobile': mobile.value
26168
+ }, displayClasses.value, props.class],
26140
26169
  "style": props.style
26141
26170
  }), {
26142
26171
  default: () => [hasHeader && vue.createVNode(VStepperHeader, {
@@ -26666,9 +26695,9 @@
26666
26695
  "key": item.text,
26667
26696
  "value": item.value
26668
26697
  }), {
26669
- default: () => slots[`tab.${item.value}`]?.({
26698
+ default: slots[`tab.${item.value}`] ? () => slots[`tab.${item.value}`]?.({
26670
26699
  item
26671
- })
26700
+ }) : undefined
26672
26701
  }))]
26673
26702
  }), hasWindow && vue.createVNode(VTabsWindow, vue.mergeProps({
26674
26703
  "modelValue": model.value,
@@ -29350,32 +29379,100 @@
29350
29379
  emit
29351
29380
  } = _ref;
29352
29381
  const link = useLink(props, attrs);
29353
- const id = vue.computed(() => props.value === undefined ? link.href.value : props.value);
29382
+ const rawId = vue.computed(() => props.value === undefined ? link.href.value : props.value);
29354
29383
  const vListItemRef = vue.ref();
29384
+ const {
29385
+ activate,
29386
+ isActivated,
29387
+ select,
29388
+ isSelected,
29389
+ isIndeterminate,
29390
+ isGroupActivator,
29391
+ root,
29392
+ id
29393
+ } = useNestedItem(rawId, false);
29394
+ const isActivatableGroupActivator = vue.computed(() => root.activatable.value && isGroupActivator);
29395
+ const {
29396
+ densityClasses
29397
+ } = useDensity(props, 'v-list-item');
29398
+ const slotProps = vue.computed(() => ({
29399
+ isActive: isActivated.value,
29400
+ select,
29401
+ isSelected: isSelected.value,
29402
+ isIndeterminate: isIndeterminate.value
29403
+ }));
29355
29404
  const isClickable = vue.computed(() => !props.disabled && props.link !== false && (props.link || link.isClickable.value || props.value != null && !!vListItemRef.value?.list));
29356
- function onClick(e) {
29357
- if (!vListItemRef.value?.isGroupActivator || !isClickable.value) return;
29358
- props.value != null && vListItemRef.value?.select(!vListItemRef.value?.isSelected, e);
29405
+ function activateItem(e) {
29406
+ if (!isClickable.value || !isActivatableGroupActivator.value && isGroupActivator) return;
29407
+ if (root.activatable.value) {
29408
+ if (isActivatableGroupActivator.value) {
29409
+ activate(!isActivated.value, e);
29410
+ } else {
29411
+ vListItemRef.value?.activate(!vListItemRef.value?.isActivated, e);
29412
+ }
29413
+ }
29359
29414
  }
29360
29415
  function onKeyDown(e) {
29361
29416
  if (e.key === 'Enter' || e.key === ' ') {
29362
29417
  e.preventDefault();
29363
- onClick(e);
29418
+ activateItem(e);
29364
29419
  }
29365
29420
  }
29366
29421
  const visibleIds = vue.inject(VTreeviewSymbol, {
29367
29422
  visibleIds: vue.ref()
29368
29423
  }).visibleIds;
29369
29424
  useRender(() => {
29425
+ const hasTitle = slots.title || props.title != null;
29426
+ const hasSubtitle = slots.subtitle || props.subtitle != null;
29370
29427
  const listItemProps = VListItem.filterProps(props);
29371
29428
  const hasPrepend = slots.prepend || props.toggleIcon;
29372
- return vue.createVNode(VListItem, vue.mergeProps({
29429
+ return isActivatableGroupActivator.value ? vue.withDirectives(vue.createVNode("div", {
29430
+ "class": ['v-list-item', 'v-list-item--one-line', 'v-treeview-item', 'v-treeview-item--activetable-group-activator', {
29431
+ 'v-list-item--active': isActivated.value || isSelected.value,
29432
+ 'v-treeview-item--filtered': visibleIds.value && !visibleIds.value.has(id.value)
29433
+ }, densityClasses.value, props.class],
29434
+ "onClick": activateItem
29435
+ }, [vue.createVNode(vue.Fragment, null, [genOverlays(isActivated.value || isSelected.value, 'v-list-item'), props.toggleIcon && vue.createVNode(VListItemAction, {
29436
+ "start": false
29437
+ }, {
29438
+ default: () => [vue.createVNode(VBtn, {
29439
+ "density": "compact",
29440
+ "icon": props.toggleIcon,
29441
+ "loading": props.loading,
29442
+ "variant": "text",
29443
+ "onClick": props.onClick
29444
+ }, {
29445
+ loader() {
29446
+ return vue.createVNode(VProgressCircular, {
29447
+ "indeterminate": "disable-shrink",
29448
+ "size": "20",
29449
+ "width": "2"
29450
+ }, null);
29451
+ }
29452
+ })]
29453
+ })]), vue.createVNode("div", {
29454
+ "class": "v-list-item__content",
29455
+ "data-no-activator": ""
29456
+ }, [hasTitle && vue.createVNode(VListItemTitle, {
29457
+ "key": "title"
29458
+ }, {
29459
+ default: () => [slots.title?.({
29460
+ title: props.title
29461
+ }) ?? props.title]
29462
+ }), hasSubtitle && vue.createVNode(VListItemSubtitle, {
29463
+ "key": "subtitle"
29464
+ }, {
29465
+ default: () => [slots.subtitle?.({
29466
+ subtitle: props.subtitle
29467
+ }) ?? props.subtitle]
29468
+ }), slots.default?.(slotProps.value)])]), [[vue.resolveDirective("ripple"), isClickable.value && props.ripple]]) : vue.createVNode(VListItem, vue.mergeProps({
29373
29469
  "ref": vListItemRef
29374
29470
  }, listItemProps, {
29375
29471
  "class": ['v-treeview-item', {
29376
29472
  'v-treeview-item--filtered': visibleIds.value && !visibleIds.value.has(id.value)
29377
29473
  }, props.class],
29378
- "onClick": onClick,
29474
+ "value": id.value,
29475
+ "onClick": activateItem,
29379
29476
  "onKeydown": isClickable.value && onKeyDown
29380
29477
  }), {
29381
29478
  ...slots,
@@ -29414,7 +29511,8 @@
29414
29511
  default: '$loading'
29415
29512
  },
29416
29513
  items: Array,
29417
- selectable: Boolean
29514
+ selectable: Boolean,
29515
+ selectStrategy: [String, Function, Object]
29418
29516
  }, 'VTreeviewChildren');
29419
29517
  const VTreeviewChildren = genericComponent()({
29420
29518
  name: 'VTreeviewChildren',
@@ -29438,9 +29536,10 @@
29438
29536
  isLoading.value = null;
29439
29537
  });
29440
29538
  }
29441
- function onClick(e, item) {
29442
- e.stopPropagation();
29443
- checkChildren(item);
29539
+ function selectItem(select, isSelected) {
29540
+ if (props.selectable) {
29541
+ select(!isSelected);
29542
+ }
29444
29543
  }
29445
29544
  return () => slots.default?.() ?? props.items?.map(_ref2 => {
29446
29545
  let {
@@ -29450,23 +29549,21 @@
29450
29549
  } = _ref2;
29451
29550
  const loading = isLoading.value === item.value;
29452
29551
  const slotsWithItem = {
29453
- prepend: slots.prepend ? slotProps => slots.prepend?.({
29552
+ prepend: slotProps => vue.createVNode(vue.Fragment, null, [props.selectable && (!children || children && !['leaf', 'single-leaf'].includes(props.selectStrategy)) && vue.createVNode("div", null, [vue.createVNode(VCheckboxBtn, {
29553
+ "key": item.value,
29554
+ "modelValue": slotProps.isSelected,
29555
+ "loading": loading,
29556
+ "indeterminate": slotProps.isIndeterminate,
29557
+ "onClick": vue.withModifiers(() => selectItem(slotProps.select, slotProps.isSelected), ['stop']),
29558
+ "onKeydown": e => {
29559
+ if (!['Enter', 'Space'].includes(e.key)) return;
29560
+ e.stopPropagation();
29561
+ selectItem(slotProps.select, slotProps.isSelected);
29562
+ }
29563
+ }, null)]), slots.prepend?.({
29454
29564
  ...slotProps,
29455
29565
  item
29456
- }) : props.selectable ? _ref3 => {
29457
- let {
29458
- isSelected,
29459
- isIndeterminate
29460
- } = _ref3;
29461
- return vue.createVNode(VCheckboxBtn, {
29462
- "key": item.value,
29463
- "tabindex": "-1",
29464
- "modelValue": isSelected,
29465
- "loading": loading,
29466
- "indeterminate": isIndeterminate,
29467
- "onClick": e => onClick(e, item)
29468
- }, null);
29469
- } : undefined,
29566
+ })]),
29470
29567
  append: slots.append ? slotProps => slots.append?.({
29471
29568
  ...slotProps,
29472
29569
  item
@@ -29481,13 +29578,18 @@
29481
29578
  return children ? vue.createVNode(VTreeviewGroup, vue.mergeProps({
29482
29579
  "value": itemProps?.value
29483
29580
  }, treeviewGroupProps), {
29484
- activator: _ref4 => {
29581
+ activator: _ref3 => {
29485
29582
  let {
29486
29583
  props: activatorProps
29487
- } = _ref4;
29488
- return vue.createVNode(VTreeviewItem, vue.mergeProps(itemProps, activatorProps, {
29584
+ } = _ref3;
29585
+ const listItemProps = {
29586
+ ...itemProps,
29587
+ ...activatorProps,
29588
+ value: itemProps?.value
29589
+ };
29590
+ return vue.createVNode(VTreeviewItem, vue.mergeProps(listItemProps, {
29489
29591
  "loading": loading,
29490
- "onClick": e => onClick(e, item)
29592
+ "onClick": () => checkChildren(item)
29491
29593
  }), slotsWithItem);
29492
29594
  },
29493
29595
  default: () => vue.createVNode(VTreeviewChildren, vue.mergeProps(treeviewChildrenProps, {
@@ -29518,7 +29620,7 @@
29518
29620
  ...omit(makeVListProps({
29519
29621
  collapseIcon: '$treeviewCollapse',
29520
29622
  expandIcon: '$treeviewExpand',
29521
- selectStrategy: 'independent',
29623
+ selectStrategy: 'classic',
29522
29624
  openStrategy: 'multiple',
29523
29625
  slim: true
29524
29626
  }), ['nav'])
@@ -30139,7 +30241,7 @@
30139
30241
  goTo
30140
30242
  };
30141
30243
  }
30142
- const version$1 = "3.6.7-master.2024-05-28";
30244
+ const version$1 = "3.6.8-master.2024-05-30";
30143
30245
  createVuetify$1.version = version$1;
30144
30246
 
30145
30247
  // Vue's inject() can only be used in setup
@@ -30392,7 +30494,7 @@
30392
30494
 
30393
30495
  /* eslint-disable local-rules/sort-imports */
30394
30496
 
30395
- const version = "3.6.7-master.2024-05-28";
30497
+ const version = "3.6.8-master.2024-05-30";
30396
30498
 
30397
30499
  /* eslint-disable local-rules/sort-imports */
30398
30500