@vuetify/nightly 3.6.7-master.2024-05-29 → 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 (53) hide show
  1. package/CHANGELOG.md +2 -15
  2. package/dist/json/attributes.json +5 -5
  3. package/dist/json/importMap-labs.json +22 -22
  4. package/dist/json/importMap.json +150 -150
  5. package/dist/json/web-types.json +36 -36
  6. package/dist/vuetify-labs.css +2393 -2393
  7. package/dist/vuetify-labs.d.ts +450 -1374
  8. package/dist/vuetify-labs.esm.js +127 -38
  9. package/dist/vuetify-labs.esm.js.map +1 -1
  10. package/dist/vuetify-labs.js +127 -38
  11. package/dist/vuetify-labs.min.css +2 -2
  12. package/dist/vuetify.css +837 -837
  13. package/dist/vuetify.d.ts +396 -1130
  14. package/dist/vuetify.esm.js +23 -7
  15. package/dist/vuetify.esm.js.map +1 -1
  16. package/dist/vuetify.js +23 -7
  17. package/dist/vuetify.js.map +1 -1
  18. package/dist/vuetify.min.css +2 -2
  19. package/dist/vuetify.min.js +10 -10
  20. package/dist/vuetify.min.js.map +1 -1
  21. package/lib/components/VAutocomplete/index.d.mts +102 -336
  22. package/lib/components/VCombobox/index.d.mts +102 -336
  23. package/lib/components/VDatePicker/VDatePickerMonth.mjs +3 -0
  24. package/lib/components/VDatePicker/VDatePickerMonth.mjs.map +1 -1
  25. package/lib/components/VList/VList.mjs +3 -1
  26. package/lib/components/VList/VList.mjs.map +1 -1
  27. package/lib/components/VList/VListGroup.mjs +1 -0
  28. package/lib/components/VList/VListGroup.mjs.map +1 -1
  29. package/lib/components/VList/VListItem.css +2 -2
  30. package/lib/components/VList/VListItem.mjs +2 -0
  31. package/lib/components/VList/VListItem.mjs.map +1 -1
  32. package/lib/components/VList/VListItem.sass +1 -1
  33. package/lib/components/VList/index.d.mts +52 -66
  34. package/lib/components/VSelect/index.d.mts +102 -336
  35. package/lib/components/VSelectionControl/VSelectionControl.mjs +9 -1
  36. package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
  37. package/lib/components/VTabs/VTabs.mjs +2 -2
  38. package/lib/components/VTabs/VTabs.mjs.map +1 -1
  39. package/lib/components/index.d.mts +340 -1074
  40. package/lib/composables/filter.mjs +1 -1
  41. package/lib/composables/filter.mjs.map +1 -1
  42. package/lib/entry-bundler.mjs +1 -1
  43. package/lib/framework.mjs +1 -1
  44. package/lib/index.d.mts +56 -56
  45. package/lib/labs/VTreeview/VTreeview.mjs +1 -1
  46. package/lib/labs/VTreeview/VTreeview.mjs.map +1 -1
  47. package/lib/labs/VTreeview/VTreeviewChildren.mjs +30 -25
  48. package/lib/labs/VTreeview/VTreeviewChildren.mjs.map +1 -1
  49. package/lib/labs/VTreeview/VTreeviewItem.mjs +81 -10
  50. package/lib/labs/VTreeview/VTreeviewItem.mjs.map +1 -1
  51. package/lib/labs/VTreeview/index.d.mts +110 -300
  52. package/lib/labs/components.d.mts +110 -300
  53. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.6.7-master.2024-05-29
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,
@@ -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];
@@ -26679,9 +26695,9 @@
26679
26695
  "key": item.text,
26680
26696
  "value": item.value
26681
26697
  }), {
26682
- default: () => slots[`tab.${item.value}`]?.({
26698
+ default: slots[`tab.${item.value}`] ? () => slots[`tab.${item.value}`]?.({
26683
26699
  item
26684
- })
26700
+ }) : undefined
26685
26701
  }))]
26686
26702
  }), hasWindow && vue.createVNode(VTabsWindow, vue.mergeProps({
26687
26703
  "modelValue": model.value,
@@ -29363,32 +29379,100 @@
29363
29379
  emit
29364
29380
  } = _ref;
29365
29381
  const link = useLink(props, attrs);
29366
- 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);
29367
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
+ }));
29368
29404
  const isClickable = vue.computed(() => !props.disabled && props.link !== false && (props.link || link.isClickable.value || props.value != null && !!vListItemRef.value?.list));
29369
- function onClick(e) {
29370
- if (!vListItemRef.value?.isGroupActivator || !isClickable.value) return;
29371
- 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
+ }
29372
29414
  }
29373
29415
  function onKeyDown(e) {
29374
29416
  if (e.key === 'Enter' || e.key === ' ') {
29375
29417
  e.preventDefault();
29376
- onClick(e);
29418
+ activateItem(e);
29377
29419
  }
29378
29420
  }
29379
29421
  const visibleIds = vue.inject(VTreeviewSymbol, {
29380
29422
  visibleIds: vue.ref()
29381
29423
  }).visibleIds;
29382
29424
  useRender(() => {
29425
+ const hasTitle = slots.title || props.title != null;
29426
+ const hasSubtitle = slots.subtitle || props.subtitle != null;
29383
29427
  const listItemProps = VListItem.filterProps(props);
29384
29428
  const hasPrepend = slots.prepend || props.toggleIcon;
29385
- 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({
29386
29469
  "ref": vListItemRef
29387
29470
  }, listItemProps, {
29388
29471
  "class": ['v-treeview-item', {
29389
29472
  'v-treeview-item--filtered': visibleIds.value && !visibleIds.value.has(id.value)
29390
29473
  }, props.class],
29391
- "onClick": onClick,
29474
+ "value": id.value,
29475
+ "onClick": activateItem,
29392
29476
  "onKeydown": isClickable.value && onKeyDown
29393
29477
  }), {
29394
29478
  ...slots,
@@ -29427,7 +29511,8 @@
29427
29511
  default: '$loading'
29428
29512
  },
29429
29513
  items: Array,
29430
- selectable: Boolean
29514
+ selectable: Boolean,
29515
+ selectStrategy: [String, Function, Object]
29431
29516
  }, 'VTreeviewChildren');
29432
29517
  const VTreeviewChildren = genericComponent()({
29433
29518
  name: 'VTreeviewChildren',
@@ -29451,9 +29536,10 @@
29451
29536
  isLoading.value = null;
29452
29537
  });
29453
29538
  }
29454
- function onClick(e, item) {
29455
- e.stopPropagation();
29456
- checkChildren(item);
29539
+ function selectItem(select, isSelected) {
29540
+ if (props.selectable) {
29541
+ select(!isSelected);
29542
+ }
29457
29543
  }
29458
29544
  return () => slots.default?.() ?? props.items?.map(_ref2 => {
29459
29545
  let {
@@ -29463,23 +29549,21 @@
29463
29549
  } = _ref2;
29464
29550
  const loading = isLoading.value === item.value;
29465
29551
  const slotsWithItem = {
29466
- 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?.({
29467
29564
  ...slotProps,
29468
29565
  item
29469
- }) : props.selectable ? _ref3 => {
29470
- let {
29471
- isSelected,
29472
- isIndeterminate
29473
- } = _ref3;
29474
- return vue.createVNode(VCheckboxBtn, {
29475
- "key": item.value,
29476
- "tabindex": "-1",
29477
- "modelValue": isSelected,
29478
- "loading": loading,
29479
- "indeterminate": isIndeterminate,
29480
- "onClick": e => onClick(e, item)
29481
- }, null);
29482
- } : undefined,
29566
+ })]),
29483
29567
  append: slots.append ? slotProps => slots.append?.({
29484
29568
  ...slotProps,
29485
29569
  item
@@ -29494,13 +29578,18 @@
29494
29578
  return children ? vue.createVNode(VTreeviewGroup, vue.mergeProps({
29495
29579
  "value": itemProps?.value
29496
29580
  }, treeviewGroupProps), {
29497
- activator: _ref4 => {
29581
+ activator: _ref3 => {
29498
29582
  let {
29499
29583
  props: activatorProps
29500
- } = _ref4;
29501
- 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, {
29502
29591
  "loading": loading,
29503
- "onClick": e => onClick(e, item)
29592
+ "onClick": () => checkChildren(item)
29504
29593
  }), slotsWithItem);
29505
29594
  },
29506
29595
  default: () => vue.createVNode(VTreeviewChildren, vue.mergeProps(treeviewChildrenProps, {
@@ -29531,7 +29620,7 @@
29531
29620
  ...omit(makeVListProps({
29532
29621
  collapseIcon: '$treeviewCollapse',
29533
29622
  expandIcon: '$treeviewExpand',
29534
- selectStrategy: 'independent',
29623
+ selectStrategy: 'classic',
29535
29624
  openStrategy: 'multiple',
29536
29625
  slim: true
29537
29626
  }), ['nav'])
@@ -30152,7 +30241,7 @@
30152
30241
  goTo
30153
30242
  };
30154
30243
  }
30155
- const version$1 = "3.6.7-master.2024-05-29";
30244
+ const version$1 = "3.6.8-master.2024-05-30";
30156
30245
  createVuetify$1.version = version$1;
30157
30246
 
30158
30247
  // Vue's inject() can only be used in setup
@@ -30405,7 +30494,7 @@
30405
30494
 
30406
30495
  /* eslint-disable local-rules/sort-imports */
30407
30496
 
30408
- const version = "3.6.7-master.2024-05-29";
30497
+ const version = "3.6.8-master.2024-05-30";
30409
30498
 
30410
30499
  /* eslint-disable local-rules/sort-imports */
30411
30500