vuetify 3.1.15 → 3.1.16

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 (46) hide show
  1. package/dist/json/attributes.json +44 -44
  2. package/dist/json/importMap.json +72 -72
  3. package/dist/json/web-types.json +77 -77
  4. package/dist/vuetify-labs.css +370 -371
  5. package/dist/vuetify-labs.d.ts +3 -3
  6. package/dist/vuetify-labs.esm.js +101 -68
  7. package/dist/vuetify-labs.esm.js.map +1 -1
  8. package/dist/vuetify-labs.js +101 -68
  9. package/dist/vuetify-labs.min.css +2 -2
  10. package/dist/vuetify.css +7 -8
  11. package/dist/vuetify.d.ts +24 -24
  12. package/dist/vuetify.esm.js +63 -41
  13. package/dist/vuetify.esm.js.map +1 -1
  14. package/dist/vuetify.js +63 -41
  15. package/dist/vuetify.js.map +1 -1
  16. package/dist/vuetify.min.css +2 -2
  17. package/dist/vuetify.min.js +717 -714
  18. package/dist/vuetify.min.js.map +1 -1
  19. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +31 -16
  20. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
  21. package/lib/components/VBreadcrumbs/index.d.ts +3 -3
  22. package/lib/components/VDialog/VDialog.mjs +2 -2
  23. package/lib/components/VDialog/VDialog.mjs.map +1 -1
  24. package/lib/components/VField/VField.css +0 -1
  25. package/lib/components/VField/VField.sass +0 -1
  26. package/lib/components/VList/VList.mjs +3 -22
  27. package/lib/components/VList/VList.mjs.map +1 -1
  28. package/lib/components/VSlideGroup/VSlideGroup.mjs +2 -2
  29. package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
  30. package/lib/components/index.d.ts +3 -3
  31. package/lib/entry-bundler.mjs +1 -1
  32. package/lib/framework.mjs +1 -1
  33. package/lib/index.d.ts +21 -21
  34. package/lib/labs/VDataTable/VDataTable.mjs +1 -1
  35. package/lib/labs/VDataTable/VDataTable.mjs.map +1 -1
  36. package/lib/labs/VDataTable/VDataTableHeaders.mjs +34 -20
  37. package/lib/labs/VDataTable/VDataTableHeaders.mjs.map +1 -1
  38. package/lib/labs/VDataTable/VDataTableRow.mjs +2 -4
  39. package/lib/labs/VDataTable/VDataTableRow.mjs.map +1 -1
  40. package/lib/labs/VDataTable/VDataTableRows.mjs +2 -2
  41. package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -1
  42. package/lib/labs/VDataTable/VDataTableServer.mjs +1 -1
  43. package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
  44. package/lib/util/helpers.mjs +26 -0
  45. package/lib/util/helpers.mjs.map +1 -1
  46. package/package.json +3 -3
package/dist/vuetify.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.1.15
2
+ * Vuetify v3.1.16
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -360,6 +360,32 @@
360
360
  handler(...args);
361
361
  }
362
362
  }
363
+ function focusableChildren(el) {
364
+ const targets = ['button', '[href]', 'input:not([type="hidden"])', 'select', 'textarea', '[tabindex]'].map(s => `${s}:not([tabindex="-1"]):not([disabled])`).join(', ');
365
+ return [...el.querySelectorAll(targets)];
366
+ }
367
+ function focusChild(el, location) {
368
+ const focusable = focusableChildren(el);
369
+ const idx = focusable.indexOf(document.activeElement);
370
+ if (!location) {
371
+ if (!el.contains(document.activeElement)) {
372
+ focusable[0]?.focus();
373
+ }
374
+ } else if (location === 'first') {
375
+ focusable[0]?.focus();
376
+ } else if (location === 'last') {
377
+ focusable.at(-1)?.focus();
378
+ } else {
379
+ let _el;
380
+ let idxx = idx;
381
+ const inc = location === 'next' ? 1 : -1;
382
+ do {
383
+ idxx += inc;
384
+ _el = focusable[idxx];
385
+ } while ((!_el || _el.offsetParent == null) && idxx < focusable.length && idxx >= 0);
386
+ if (_el) _el.focus();else focusChild(el, location === 'next' ? 'first' : 'last');
387
+ }
388
+ }
363
389
 
364
390
  const block = ['top', 'bottom'];
365
391
  const inline = ['start', 'end', 'left', 'right'];
@@ -8227,27 +8253,8 @@
8227
8253
  e.preventDefault();
8228
8254
  }
8229
8255
  function focus(location) {
8230
- if (!contentRef.value) return;
8231
- const targets = ['button', '[href]', 'input', 'select', 'textarea', '[tabindex]'].map(s => `${s}:not([tabindex="-1"])`).join(', ');
8232
- const focusable = [...contentRef.value.querySelectorAll(targets)].filter(el => !el.hasAttribute('disabled'));
8233
- const idx = focusable.indexOf(document.activeElement);
8234
- if (!location) {
8235
- if (!contentRef.value.contains(document.activeElement)) {
8236
- focusable[0]?.focus();
8237
- }
8238
- } else if (location === 'first') {
8239
- focusable[0]?.focus();
8240
- } else if (location === 'last') {
8241
- focusable.at(-1)?.focus();
8242
- } else {
8243
- let el;
8244
- let idxx = idx;
8245
- const inc = location === 'next' ? 1 : -1;
8246
- do {
8247
- idxx += inc;
8248
- el = focusable[idxx];
8249
- } while ((!el || el.offsetParent == null) && idxx < focusable.length && idxx >= 0);
8250
- if (el) el.focus();else focus(location === 'next' ? 'first' : 'last');
8256
+ if (contentRef.value) {
8257
+ return focusChild(contentRef.value, location);
8251
8258
  }
8252
8259
  }
8253
8260
  useRender(() => {
@@ -11058,6 +11065,17 @@
11058
11065
  disabled: vue.toRef(props, 'disabled')
11059
11066
  }
11060
11067
  });
11068
+ const items = vue.computed(() => props.items.map(item => {
11069
+ return typeof item === 'string' ? {
11070
+ item: {
11071
+ title: item
11072
+ },
11073
+ raw: item
11074
+ } : {
11075
+ item,
11076
+ raw: item
11077
+ };
11078
+ }));
11061
11079
  useRender(() => {
11062
11080
  const hasPrepend = !!(slots.prepend || props.icon);
11063
11081
  return vue.createVNode(props.tag, {
@@ -11080,22 +11098,26 @@
11080
11098
  start: true
11081
11099
  }
11082
11100
  }
11083
- }, slots.prepend)]), props.items.map((item, index, array) => vue.createVNode(vue.Fragment, null, [vue.createVNode(VBreadcrumbsItem, vue.mergeProps({
11084
- "key": index,
11085
- "disabled": index >= array.length - 1
11086
- }, typeof item === 'string' ? {
11087
- title: item
11088
- } : item), {
11089
- default: slots.title ? () => slots.title?.({
11090
- item,
11091
- index
11092
- }) : undefined
11093
- }), index < array.length - 1 && vue.createVNode(VBreadcrumbsDivider, null, {
11094
- default: slots.divider ? () => slots.divider?.({
11101
+ }, slots.prepend)]), items.value.map((_ref2, index, array) => {
11102
+ let {
11095
11103
  item,
11096
- index
11097
- }) : undefined
11098
- })])), slots.default?.()]
11104
+ raw
11105
+ } = _ref2;
11106
+ return vue.createVNode(vue.Fragment, null, [vue.createVNode(VBreadcrumbsItem, vue.mergeProps({
11107
+ "key": item.title,
11108
+ "disabled": index >= array.length - 1
11109
+ }, item), {
11110
+ default: slots.title ? () => slots.title?.({
11111
+ item: raw,
11112
+ index
11113
+ }) : undefined
11114
+ }), index < array.length - 1 && vue.createVNode(VBreadcrumbsDivider, null, {
11115
+ default: slots.divider ? () => slots.divider?.({
11116
+ item: raw,
11117
+ index
11118
+ }) : undefined
11119
+ })]);
11120
+ }), slots.default?.()]
11099
11121
  });
11100
11122
  });
11101
11123
  return {};
@@ -14017,7 +14039,7 @@
14017
14039
  ![document, overlay.value.contentEl].includes(after) &&
14018
14040
  // It isn't inside the dialog body
14019
14041
  !overlay.value.contentEl.contains(after)) {
14020
- const focusable = [...overlay.value.contentEl.querySelectorAll('button, [href], input:not([type="hidden"]), select, textarea, [tabindex]:not([tabindex="-1"])')].filter(el => !el.hasAttribute('disabled') && !el.matches('[tabindex="-1"]'));
14042
+ const focusable = focusableChildren(overlay.value.contentEl);
14021
14043
  if (!focusable.length) return;
14022
14044
  const firstElement = focusable[0];
14023
14045
  const lastElement = focusable[focusable.length - 1];
@@ -16862,7 +16884,7 @@
16862
16884
  function focus(location) {
16863
16885
  if (!contentRef.value) return;
16864
16886
  if (!location) {
16865
- const focusable = [...contentRef.value.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])')].filter(el => !el.hasAttribute('disabled'));
16887
+ const focusable = focusableChildren(contentRef.value);
16866
16888
  focusable[0]?.focus();
16867
16889
  } else if (location === 'next') {
16868
16890
  const el = contentRef.value.querySelector(':focus')?.nextElementSibling;
@@ -18457,7 +18479,7 @@
18457
18479
  locale
18458
18480
  };
18459
18481
  }
18460
- const version$1 = "3.1.15";
18482
+ const version$1 = "3.1.16";
18461
18483
  createVuetify$1.version = version$1;
18462
18484
 
18463
18485
  // Vue's inject() can only be used in setup
@@ -18477,7 +18499,7 @@
18477
18499
  ...options
18478
18500
  });
18479
18501
  };
18480
- const version = "3.1.15";
18502
+ const version = "3.1.16";
18481
18503
  createVuetify.version = version;
18482
18504
 
18483
18505
  exports.components = components;