vuetify 3.0.3 → 3.0.4

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 (68) hide show
  1. package/dist/json/attributes.json +882 -882
  2. package/dist/json/importMap.json +30 -30
  3. package/dist/json/web-types.json +1102 -1091
  4. package/dist/vuetify.css +11 -13
  5. package/dist/vuetify.d.ts +71 -69
  6. package/dist/vuetify.esm.js +165 -137
  7. package/dist/vuetify.esm.js.map +1 -1
  8. package/dist/vuetify.js +165 -137
  9. package/dist/vuetify.js.map +1 -1
  10. package/dist/vuetify.min.css +2 -2
  11. package/dist/vuetify.min.js +693 -689
  12. package/dist/vuetify.min.js.map +1 -1
  13. package/lib/components/VAlert/index.d.ts +1 -1
  14. package/lib/components/VAutocomplete/index.d.ts +16 -16
  15. package/lib/components/VCheckbox/VCheckbox.css +1 -1
  16. package/lib/components/VCheckbox/VCheckbox.sass +1 -1
  17. package/lib/components/VChip/VChip.mjs +14 -6
  18. package/lib/components/VChip/VChip.mjs.map +1 -1
  19. package/lib/components/VChip/index.d.ts +3 -1
  20. package/lib/components/VChipGroup/index.d.ts +1 -1
  21. package/lib/components/VColorPicker/VColorPicker.mjs +2 -2
  22. package/lib/components/VColorPicker/VColorPicker.mjs.map +1 -1
  23. package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
  24. package/lib/components/VColorPicker/VColorPickerEdit.mjs.map +1 -1
  25. package/lib/components/VColorPicker/VColorPickerPreview.mjs +2 -2
  26. package/lib/components/VColorPicker/VColorPickerPreview.mjs.map +1 -1
  27. package/lib/components/VColorPicker/VColorPickerSwatches.mjs.map +1 -1
  28. package/lib/components/VColorPicker/util/index.mjs +24 -14
  29. package/lib/components/VColorPicker/util/index.mjs.map +1 -1
  30. package/lib/components/VCombobox/index.d.ts +16 -16
  31. package/lib/components/VExpansionPanel/index.d.ts +1 -1
  32. package/lib/components/VFileInput/index.d.ts +1 -1
  33. package/lib/components/VGrid/VGrid.css +2 -2
  34. package/lib/components/VGrid/VGrid.sass +1 -1
  35. package/lib/components/VList/VListItem.mjs +2 -1
  36. package/lib/components/VList/VListItem.mjs.map +1 -1
  37. package/lib/components/VPagination/index.d.ts +1 -1
  38. package/lib/components/VRadioGroup/VRadioGroup.mjs +1 -2
  39. package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
  40. package/lib/components/VSelect/index.d.ts +16 -16
  41. package/lib/components/VSelectionControl/VSelectionControl.css +4 -0
  42. package/lib/components/VSelectionControl/VSelectionControl.sass +4 -0
  43. package/lib/components/VSnackbar/index.d.ts +4 -4
  44. package/lib/components/VSwitch/VSwitch.css +1 -1
  45. package/lib/components/VSwitch/VSwitch.sass +1 -1
  46. package/lib/components/VSystemBar/VSystemBar.css +1 -1
  47. package/lib/components/VSystemBar/_variables.scss +1 -1
  48. package/lib/components/VTabs/VTab.css +1 -3
  49. package/lib/components/VTabs/VTab.sass +1 -4
  50. package/lib/components/VTabs/VTabs.css +0 -4
  51. package/lib/components/VTabs/VTabs.sass +0 -5
  52. package/lib/components/VToolbar/VToolbar.mjs +32 -22
  53. package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
  54. package/lib/components/index.d.ts +60 -58
  55. package/lib/composables/theme.mjs +7 -7
  56. package/lib/composables/theme.mjs.map +1 -1
  57. package/lib/composables/validation.mjs +1 -1
  58. package/lib/composables/validation.mjs.map +1 -1
  59. package/lib/entry-bundler.mjs +1 -1
  60. package/lib/framework.mjs +1 -1
  61. package/lib/index.d.ts +11 -11
  62. package/lib/util/color/APCA.mjs +6 -6
  63. package/lib/util/color/APCA.mjs.map +1 -1
  64. package/lib/util/color/transformSRGB.mjs +15 -7
  65. package/lib/util/color/transformSRGB.mjs.map +1 -1
  66. package/lib/util/colorUtils.mjs +64 -81
  67. package/lib/util/colorUtils.mjs.map +1 -1
  68. package/package.json +2 -2
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.0.3
2
+ * Vuetify v3.0.4
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -595,21 +595,29 @@ function fromXYZ$1(xyz) {
595
595
 
596
596
  // Matrix transform, then gamma adjustment
597
597
  for (let i = 0; i < 3; ++i) {
598
+ // Rescale back to [0, 255]
598
599
  rgb[i] = Math.round(clamp(transform(matrix[i][0] * xyz[0] + matrix[i][1] * xyz[1] + matrix[i][2] * xyz[2])) * 255);
599
600
  }
600
-
601
- // Rescale back to [0, 255]
602
- return (rgb[0] << 16) + (rgb[1] << 8) + (rgb[2] << 0);
601
+ return {
602
+ r: rgb[0],
603
+ g: rgb[1],
604
+ b: rgb[2]
605
+ };
603
606
  }
604
- function toXYZ$1(rgb) {
607
+ function toXYZ$1(_ref) {
608
+ let {
609
+ r,
610
+ g,
611
+ b
612
+ } = _ref;
605
613
  const xyz = [0, 0, 0];
606
614
  const transform = srgbReverseTransform;
607
615
  const matrix = srgbReverseMatrix;
608
616
 
609
617
  // Rescale from [0, 255] to [0, 1] then adjust sRGB gamma to linear RGB
610
- const r = transform((rgb >> 16 & 0xff) / 255);
611
- const g = transform((rgb >> 8 & 0xff) / 255);
612
- const b = transform((rgb >> 0 & 0xff) / 255);
618
+ r = transform(r / 255);
619
+ g = transform(g / 255);
620
+ b = transform(b / 255);
613
621
 
614
622
  // Matrix color space transform
615
623
  for (let i = 0; i < 3; ++i) {
@@ -640,43 +648,36 @@ function toXYZ(lab) {
640
648
  function isCssColor(color) {
641
649
  return !!color && /^(#|var\(--|(rgb|hsl)a?\()/.test(color);
642
650
  }
643
- function colorToInt(color) {
644
- let rgb;
651
+ function parseColor$1(color) {
645
652
  if (typeof color === 'number') {
646
- rgb = color;
653
+ if (isNaN(color) || color < 0 || color > 0xFFFFFF) {
654
+ // int can't have opacity
655
+ consoleWarn(`'${color}' is not a valid hex color`);
656
+ }
657
+ return {
658
+ r: (color & 0xFF0000) >> 16,
659
+ g: (color & 0xFF00) >> 8,
660
+ b: color & 0xFF
661
+ };
647
662
  } else if (typeof color === 'string') {
648
- let c = color.startsWith('#') ? color.substring(1) : color;
649
- if (c.length === 3) {
650
- c = c.split('').map(char => char + char).join('');
663
+ let hex = color.startsWith('#') ? color.slice(1) : color;
664
+ if ([3, 4].includes(hex.length)) {
665
+ hex = hex.split('').map(char => char + char).join('');
666
+ } else if (![6, 8].includes(hex.length)) {
667
+ consoleWarn(`'${color}' is not a valid hex(a) color`);
651
668
  }
652
- if (c.length !== 6 && c.length !== 8) {
653
- consoleWarn(`'${color}' is not a valid rgb color`);
669
+ const int = parseInt(hex, 16);
670
+ if (isNaN(int) || int < 0 || int > 0xFFFFFFFF) {
671
+ consoleWarn(`'${color}' is not a valid hex(a) color`);
654
672
  }
655
- rgb = parseInt(c, 16);
673
+ return HexToRGB(hex);
656
674
  } else {
657
675
  throw new TypeError(`Colors can only be numbers or strings, recieved ${color == null ? color : color.constructor.name} instead`);
658
676
  }
659
- if (rgb < 0) {
660
- consoleWarn(`Colors cannot be negative: '${color}'`);
661
- rgb = 0;
662
- } else if (rgb > 0xffffffff || isNaN(rgb)) {
663
- consoleWarn(`'${color}' is not a valid rgb color`);
664
- rgb = 0xffffff;
665
- }
666
- return rgb;
667
- }
668
- function intToHex(color) {
669
- let hexColor = color.toString(16);
670
- if (hexColor.length < 6) hexColor = '0'.repeat(6 - hexColor.length) + hexColor;
671
- return '#' + hexColor;
672
677
  }
673
678
 
674
- /**
675
- * Converts HSVA to RGBA. Based on formula from https://en.wikipedia.org/wiki/HSL_and_HSV
676
- *
677
- * @param color HSVA color as an array [0-360, 0-1, 0-1, 0-1]
678
- */
679
- function HSVAtoRGBA(hsva) {
679
+ /** Converts HSVA to RGBA. Based on formula from https://en.wikipedia.org/wiki/HSL_and_HSV */
680
+ function HSVtoRGB(hsva) {
680
681
  const {
681
682
  h,
682
683
  s,
@@ -696,12 +697,8 @@ function HSVAtoRGBA(hsva) {
696
697
  };
697
698
  }
698
699
 
699
- /**
700
- * Converts RGBA to HSVA. Based on formula from https://en.wikipedia.org/wiki/HSL_and_HSV
701
- *
702
- * @param color RGBA color as an array [0-255, 0-255, 0-255, 0-1]
703
- */
704
- function RGBAtoHSVA(rgba) {
700
+ /** Converts RGBA to HSVA. Based on formula from https://en.wikipedia.org/wiki/HSL_and_HSV */
701
+ function RGBtoHSV(rgba) {
705
702
  if (!rgba) return {
706
703
  h: 0,
707
704
  s: 1,
@@ -733,7 +730,7 @@ function RGBAtoHSVA(rgba) {
733
730
  a: rgba.a
734
731
  };
735
732
  }
736
- function HSVAtoHSLA(hsva) {
733
+ function HSVtoHSL(hsva) {
737
734
  const {
738
735
  h,
739
736
  s,
@@ -749,7 +746,7 @@ function HSVAtoHSLA(hsva) {
749
746
  a
750
747
  };
751
748
  }
752
- function HSLAtoHSVA(hsl) {
749
+ function HSLtoHSV(hsl) {
753
750
  const {
754
751
  h,
755
752
  s,
@@ -765,34 +762,47 @@ function HSLAtoHSVA(hsl) {
765
762
  a
766
763
  };
767
764
  }
768
- function RGBAtoCSS(rgba) {
769
- return `rgba(${rgba.r}, ${rgba.g}, ${rgba.b}, ${rgba.a})`;
765
+ function RGBtoCSS(_ref) {
766
+ let {
767
+ r,
768
+ g,
769
+ b,
770
+ a
771
+ } = _ref;
772
+ return a === undefined ? `rgb(${r}, ${g}, ${b})` : `rgba(${r}, ${g}, ${b}, ${a})`;
773
+ }
774
+ function HSVtoCSS(hsva) {
775
+ return RGBtoCSS(HSVtoRGB(hsva));
770
776
  }
771
- function HSVAtoCSS(hsva) {
772
- return RGBAtoCSS(HSVAtoRGBA(hsva));
777
+ function toHex(v) {
778
+ const h = Math.round(v).toString(16);
779
+ return ('00'.substr(0, 2 - h.length) + h).toUpperCase();
773
780
  }
774
- function RGBAtoHex(rgba) {
775
- const toHex = v => {
776
- const h = Math.round(v).toString(16);
777
- return ('00'.substr(0, 2 - h.length) + h).toUpperCase();
778
- };
779
- return `#${[toHex(rgba.r), toHex(rgba.g), toHex(rgba.b), toHex(Math.round(rgba.a * 255))].join('')}`;
781
+ function RGBtoHex(_ref2) {
782
+ let {
783
+ r,
784
+ g,
785
+ b,
786
+ a
787
+ } = _ref2;
788
+ return `#${[toHex(r), toHex(g), toHex(b), a !== undefined ? toHex(Math.round(a * 255)) : 'FF'].join('')}`;
780
789
  }
781
- function HexToRGBA(hex) {
782
- const rgba = chunk(hex.slice(1), 2).map(c => parseInt(c, 16));
790
+ function HexToRGB(hex) {
791
+ let [r, g, b, a] = chunk(hex, 2).map(c => parseInt(c, 16));
792
+ a = a === undefined ? a : Math.round(a / 255 * 100) / 100;
783
793
  return {
784
- r: rgba[0],
785
- g: rgba[1],
786
- b: rgba[2],
787
- a: Math.round(rgba[3] / 255 * 100) / 100
794
+ r,
795
+ g,
796
+ b,
797
+ a
788
798
  };
789
799
  }
790
- function HexToHSVA(hex) {
791
- const rgb = HexToRGBA(hex);
792
- return RGBAtoHSVA(rgb);
800
+ function HexToHSV(hex) {
801
+ const rgb = HexToRGB(hex);
802
+ return RGBtoHSV(rgb);
793
803
  }
794
- function HSVAtoHex(hsva) {
795
- return RGBAtoHex(HSVAtoRGBA(hsva));
804
+ function HSVtoHex(hsva) {
805
+ return RGBtoHex(HSVtoRGB(hsva));
796
806
  }
797
807
  function parseHex(hex) {
798
808
  if (hex.startsWith('#')) {
@@ -807,20 +817,10 @@ function parseHex(hex) {
807
817
  } else {
808
818
  hex = padEnd(padEnd(hex, 6), 8, 'F');
809
819
  }
810
- return `#${hex}`.toUpperCase().substr(0, 9);
811
- }
812
- function colorToRGB(color) {
813
- const int = colorToInt(color);
814
- return {
815
- r: (int & 0xFF0000) >> 16,
816
- g: (int & 0xFF00) >> 8,
817
- b: int & 0xFF
818
- };
820
+ return hex;
819
821
  }
820
822
  function lighten(value, amount) {
821
823
  const lab = fromXYZ(toXYZ$1(value));
822
- // TODO: why this false positive?
823
- // eslint-disable-next-line @typescript-eslint/restrict-plus-operands
824
824
  lab[0] = lab[0] + amount * 10;
825
825
  return fromXYZ$1(toXYZ(lab));
826
826
  }
@@ -835,7 +835,7 @@ function darken(value, amount) {
835
835
  * @see https://www.w3.org/TR/WCAG20/#relativeluminancedef
836
836
  */
837
837
  function getLuma(color) {
838
- const rgb = colorToInt(color);
838
+ const rgb = parseColor$1(color);
839
839
  return toXYZ$1(rgb)[1];
840
840
  }
841
841
 
@@ -1466,12 +1466,12 @@ const loClip = 0.001; // Output clip (lint trap #2)
1466
1466
 
1467
1467
  function APCAcontrast(text, background) {
1468
1468
  // Linearize sRGB
1469
- const Rtxt = ((text >> 16 & 0xff) / 255) ** mainTRC;
1470
- const Gtxt = ((text >> 8 & 0xff) / 255) ** mainTRC;
1471
- const Btxt = ((text >> 0 & 0xff) / 255) ** mainTRC;
1472
- const Rbg = ((background >> 16 & 0xff) / 255) ** mainTRC;
1473
- const Gbg = ((background >> 8 & 0xff) / 255) ** mainTRC;
1474
- const Bbg = ((background >> 0 & 0xff) / 255) ** mainTRC;
1469
+ const Rtxt = (text.r / 255) ** mainTRC;
1470
+ const Gtxt = (text.g / 255) ** mainTRC;
1471
+ const Btxt = (text.b / 255) ** mainTRC;
1472
+ const Rbg = (background.r / 255) ** mainTRC;
1473
+ const Gbg = (background.g / 255) ** mainTRC;
1474
+ const Bbg = (background.b / 255) ** mainTRC;
1475
1475
 
1476
1476
  // Apply the standard coefficients and sum to Y
1477
1477
  let Ytxt = Rtxt * Rco + Gtxt * Gco + Btxt * Bco;
@@ -1637,7 +1637,7 @@ function createTheme(options) {
1637
1637
  for (const variation of ['lighten', 'darken']) {
1638
1638
  const fn = variation === 'lighten' ? lighten : darken;
1639
1639
  for (const amount of createRange(parsedOptions.variations[variation], 1)) {
1640
- theme.colors[`${name}-${variation}-${amount}`] = intToHex(fn(colorToInt(color), amount));
1640
+ theme.colors[`${name}-${variation}-${amount}`] = RGBtoHex(fn(parseColor$1(color), amount));
1641
1641
  }
1642
1642
  }
1643
1643
  }
@@ -1645,9 +1645,9 @@ function createTheme(options) {
1645
1645
  for (const color of Object.keys(theme.colors)) {
1646
1646
  if (/^on-[a-z]/.test(color) || theme.colors[`on-${color}`]) continue;
1647
1647
  const onColor = `on-${color}`;
1648
- const colorVal = colorToInt(theme.colors[color]);
1649
- const blackContrast = Math.abs(APCAcontrast(0, colorVal));
1650
- const whiteContrast = Math.abs(APCAcontrast(0xffffff, colorVal));
1648
+ const colorVal = parseColor$1(theme.colors[color]);
1649
+ const blackContrast = Math.abs(APCAcontrast(parseColor$1(0), colorVal));
1650
+ const whiteContrast = Math.abs(APCAcontrast(parseColor$1(0xffffff), colorVal));
1651
1651
 
1652
1652
  // TODO: warn about poor color selections
1653
1653
  // const contrastAsText = Math.abs(APCAcontrast(colorVal, colorToInt(theme.colors.background)))
@@ -1677,7 +1677,7 @@ function createTheme(options) {
1677
1677
  } = theme;
1678
1678
  createCssClass(lines, `.v-theme--${themeName}`, [`color-scheme: ${dark ? 'dark' : 'normal'}`, ...genCssVariables(theme), ...Object.keys(variables).map(key => {
1679
1679
  const value = variables[key];
1680
- const color = typeof value === 'string' && value.startsWith('#') ? colorToRGB(value) : undefined;
1680
+ const color = typeof value === 'string' && value.startsWith('#') ? parseColor$1(value) : undefined;
1681
1681
  const rgb = color ? `${color.r}, ${color.g}, ${color.b}` : undefined;
1682
1682
  return `--v-${key}: ${rgb ?? value}`;
1683
1683
  })]);
@@ -1779,7 +1779,7 @@ function genCssVariables(theme) {
1779
1779
  const darkOverlay = theme.dark ? 1 : 2;
1780
1780
  const variables = [];
1781
1781
  for (const [key, value] of Object.entries(theme.colors)) {
1782
- const rgb = colorToRGB(value);
1782
+ const rgb = parseColor$1(value);
1783
1783
  variables.push(`--v-theme-${key}: ${rgb.r},${rgb.g},${rgb.b}`);
1784
1784
  if (!key.startsWith('on-')) {
1785
1785
  variables.push(`--v-theme-${key}-overlay-multiplier: ${getLuma(value) > 0.18 ? lightOverlay : darkOverlay}`);
@@ -3143,11 +3143,6 @@ const VToolbar = genericComponent()({
3143
3143
  const isExtended = ref(!!(props.extended || (_slots$extension = slots.extension) != null && _slots$extension.call(slots)));
3144
3144
  const contentHeight = computed(() => parseInt(Number(props.height) + (props.density === 'prominent' ? Number(props.height) : 0) - (props.density === 'comfortable' ? 8 : 0) - (props.density === 'compact' ? 16 : 0), 10));
3145
3145
  const extensionHeight = computed(() => isExtended.value ? parseInt(Number(props.extensionHeight) + (props.density === 'prominent' ? Number(props.extensionHeight) : 0) - (props.density === 'comfortable' ? 4 : 0) - (props.density === 'compact' ? 8 : 0), 10) : 0);
3146
- provideDefaults({
3147
- VBtn: {
3148
- variant: 'text'
3149
- }
3150
- });
3151
3146
  useRender(() => {
3152
3147
  var _slots$extension2, _slots$image, _slots$prepend, _slots$default, _slots$append;
3153
3148
  const hasTitle = !!(props.title || slots.title);
@@ -3176,27 +3171,43 @@ const VToolbar = genericComponent()({
3176
3171
  }
3177
3172
  }, {
3178
3173
  default: () => [slots.image ? (_slots$image = slots.image) == null ? void 0 : _slots$image.call(slots) : createVNode(VImg, null, null)]
3179
- })]), createVNode("div", {
3180
- "class": "v-toolbar__content",
3181
- "style": {
3182
- height: convertToUnit(contentHeight.value)
3174
+ })]), createVNode(VDefaultsProvider, {
3175
+ "defaults": {
3176
+ VTabs: {
3177
+ height: convertToUnit(contentHeight.value)
3178
+ }
3183
3179
  }
3184
- }, [slots.prepend && createVNode("div", {
3185
- "class": "v-toolbar__prepend"
3186
- }, [(_slots$prepend = slots.prepend) == null ? void 0 : _slots$prepend.call(slots)]), hasTitle && createVNode(VToolbarTitle, {
3187
- "key": "title",
3188
- "text": props.title
3189
3180
  }, {
3190
- text: slots.title
3191
- }), (_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots), slots.append && createVNode("div", {
3192
- "class": "v-toolbar__append"
3193
- }, [(_slots$append = slots.append) == null ? void 0 : _slots$append.call(slots)])]), createVNode(VExpandTransition, null, {
3194
- default: () => [isExtended.value && createVNode("div", {
3195
- "class": "v-toolbar__extension",
3181
+ default: () => [createVNode("div", {
3182
+ "class": "v-toolbar__content",
3196
3183
  "style": {
3184
+ height: convertToUnit(contentHeight.value)
3185
+ }
3186
+ }, [slots.prepend && createVNode("div", {
3187
+ "class": "v-toolbar__prepend"
3188
+ }, [(_slots$prepend = slots.prepend) == null ? void 0 : _slots$prepend.call(slots)]), hasTitle && createVNode(VToolbarTitle, {
3189
+ "key": "title",
3190
+ "text": props.title
3191
+ }, {
3192
+ text: slots.title
3193
+ }), (_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots), slots.append && createVNode("div", {
3194
+ "class": "v-toolbar__append"
3195
+ }, [(_slots$append = slots.append) == null ? void 0 : _slots$append.call(slots)])])]
3196
+ }), createVNode(VDefaultsProvider, {
3197
+ "defaults": {
3198
+ VTabs: {
3197
3199
  height: convertToUnit(extensionHeight.value)
3198
3200
  }
3199
- }, [extension])]
3201
+ }
3202
+ }, {
3203
+ default: () => [createVNode(VExpandTransition, null, {
3204
+ default: () => [isExtended.value && createVNode("div", {
3205
+ "class": "v-toolbar__extension",
3206
+ "style": {
3207
+ height: convertToUnit(extensionHeight.value)
3208
+ }
3209
+ }, [extension])]
3210
+ })]
3200
3211
  })]
3201
3212
  });
3202
3213
  });
@@ -5687,7 +5698,7 @@ function useValidation(props) {
5687
5698
  const isDisabled = computed(() => !!(props.disabled || form != null && form.isDisabled.value));
5688
5699
  const isReadonly = computed(() => !!(props.readonly || form != null && form.isReadonly.value));
5689
5700
  const errorMessages = computed(() => {
5690
- return props.errorMessages.length ? wrapInArray(props.errorMessages) : internalErrorMessages.value;
5701
+ return props.errorMessages.length ? wrapInArray(props.errorMessages.slice(0, Math.max(0, +props.maxErrors))) : internalErrorMessages.value;
5691
5702
  });
5692
5703
  const isValid = computed(() => {
5693
5704
  if (props.error || errorMessages.value.length) return false;
@@ -6725,7 +6736,8 @@ const VChip = defineComponent({
6725
6736
  emits: {
6726
6737
  'click:close': e => true,
6727
6738
  'update:modelValue': value => true,
6728
- 'group:selected': val => true
6739
+ 'group:selected': val => true,
6740
+ click: e => true
6729
6741
  },
6730
6742
  setup(props, _ref) {
6731
6743
  let {
@@ -6759,10 +6771,18 @@ const VChip = defineComponent({
6759
6771
  const isActive = useProxiedModel(props, 'modelValue');
6760
6772
  const group = useGroupItem(props, VChipGroupSymbol, false);
6761
6773
  const link = useLink(props, attrs);
6774
+ const isClickable = computed(() => !props.disabled && (!!group || link.isClickable.value || props.link));
6762
6775
  function onCloseClick(e) {
6763
6776
  isActive.value = false;
6764
6777
  emit('click:close', e);
6765
6778
  }
6779
+ function onClick(e) {
6780
+ var _link$navigate;
6781
+ emit('click', e);
6782
+ if (!isClickable.value) return;
6783
+ (_link$navigate = link.navigate) == null ? void 0 : _link$navigate.call(link, e);
6784
+ group == null ? void 0 : group.toggle();
6785
+ }
6766
6786
  return () => {
6767
6787
  var _slots$default;
6768
6788
  const Tag = link.isLink.value ? 'a' : props.tag;
@@ -6771,8 +6791,6 @@ const VChip = defineComponent({
6771
6791
  const hasFilter = !!(slots.filter || props.filter) && group;
6772
6792
  const hasPrepend = !!(slots.prepend || props.prependIcon || props.prependAvatar);
6773
6793
  const hasColor = !group || group.isSelected.value;
6774
- const isClickable = !props.disabled && (!!group || link.isClickable.value || props.link);
6775
- const onClickFunc = props.link ? props.link : group == null ? void 0 : group.toggle;
6776
6794
  return isActive.value && withDirectives(createVNode(Tag, {
6777
6795
  "class": ['v-chip', {
6778
6796
  'v-chip--disabled': props.disabled,
@@ -6785,9 +6803,9 @@ const VChip = defineComponent({
6785
6803
  "disabled": props.disabled || undefined,
6786
6804
  "draggable": props.draggable,
6787
6805
  "href": link.href.value,
6788
- "onClick": isClickable && onClickFunc
6806
+ "onClick": onClick
6789
6807
  }, {
6790
- default: () => [genOverlays(isClickable, 'v-chip'), hasFilter && createVNode(VDefaultsProvider, {
6808
+ default: () => [genOverlays(isClickable.value, 'v-chip'), hasFilter && createVNode(VDefaultsProvider, {
6791
6809
  "key": "filter",
6792
6810
  "defaults": {
6793
6811
  VIcon: {
@@ -6857,7 +6875,7 @@ const VChip = defineComponent({
6857
6875
  "onClick": onCloseClick
6858
6876
  }, [slots.close ? slots.close() : createVNode(VIcon, null, null)])]
6859
6877
  })]
6860
- }), [[resolveDirective("ripple"), isClickable && props.ripple, null]]);
6878
+ }), [[resolveDirective("ripple"), isClickable.value && props.ripple, null]]);
6861
6879
  };
6862
6880
  }
6863
6881
  });
@@ -7653,7 +7671,8 @@ const VListItem = genericComponent()({
7653
7671
  "key": "prepend-icon"
7654
7672
  }, null), (_slots$prepend = slots.prepend) == null ? void 0 : _slots$prepend.call(slots, slotProps.value)])]
7655
7673
  }), createVNode("div", {
7656
- "class": "v-list-item__content"
7674
+ "class": "v-list-item__content",
7675
+ "data-no-activator": ""
7657
7676
  }, [hasTitle && createVNode(VListItemTitle, {
7658
7677
  "key": "title"
7659
7678
  }, {
@@ -11748,13 +11767,13 @@ function parseColor(color) {
11748
11767
  let hsva = null;
11749
11768
  if (typeof color === 'string') {
11750
11769
  const hex = parseHex(color);
11751
- hsva = HexToHSVA(hex);
11770
+ hsva = HexToHSV(hex);
11752
11771
  }
11753
11772
  if (typeof color === 'object') {
11754
11773
  if (has(color, ['r', 'g', 'b'])) {
11755
- hsva = RGBAtoHSVA(color);
11774
+ hsva = RGBtoHSV(color);
11756
11775
  } else if (has(color, ['h', 's', 'l'])) {
11757
- hsva = HSLAtoHSVA(color);
11776
+ hsva = HSLtoHSV(color);
11758
11777
  } else if (has(color, ['h', 's', 'v'])) {
11759
11778
  hsva = color;
11760
11779
  }
@@ -11776,12 +11795,12 @@ function stripAlpha(color, stripAlpha) {
11776
11795
  }
11777
11796
  function extractColor(color, input) {
11778
11797
  if (input == null || typeof input === 'string') {
11779
- const hex = HSVAtoHex(color);
11798
+ const hex = HSVtoHex(color);
11780
11799
  if (color.a === 1) return hex.slice(0, 7);else return hex;
11781
11800
  }
11782
11801
  if (typeof input === 'object') {
11783
11802
  let converted;
11784
- if (has(input, ['r', 'g', 'b'])) converted = HSVAtoRGBA(color);else if (has(input, ['h', 's', 'l'])) converted = HSVAtoHSLA(color);else if (has(input, ['h', 's', 'v'])) converted = color;
11803
+ if (has(input, ['r', 'g', 'b'])) converted = HSVtoRGB(color);else if (has(input, ['h', 's', 'l'])) converted = HSVtoHSL(color);else if (has(input, ['h', 's', 'v'])) converted = color;
11785
11804
  return stripAlpha(converted, !has(input, ['a']));
11786
11805
  }
11787
11806
  return color;
@@ -11828,14 +11847,19 @@ const rgba = {
11828
11847
  label: 'A',
11829
11848
  max: 1,
11830
11849
  step: 0.01,
11831
- getValue: c => Math.round(c.a * 100) / 100,
11850
+ getValue: _ref => {
11851
+ let {
11852
+ a
11853
+ } = _ref;
11854
+ return a ? Math.round(a * 100) / 100 : 1;
11855
+ },
11832
11856
  getColor: (c, v) => ({
11833
11857
  ...c,
11834
11858
  a: Number(v)
11835
11859
  })
11836
11860
  }],
11837
- to: HSVAtoRGBA,
11838
- from: RGBAtoHSVA
11861
+ to: HSVtoRGB,
11862
+ from: RGBtoHSV
11839
11863
  };
11840
11864
  const rgb = {
11841
11865
  ...rgba,
@@ -11877,14 +11901,19 @@ const hsla = {
11877
11901
  label: 'A',
11878
11902
  max: 1,
11879
11903
  step: 0.01,
11880
- getValue: c => Math.round(c.a * 100) / 100,
11904
+ getValue: _ref2 => {
11905
+ let {
11906
+ a
11907
+ } = _ref2;
11908
+ return a ? Math.round(a * 100) / 100 : 1;
11909
+ },
11881
11910
  getColor: (c, v) => ({
11882
11911
  ...c,
11883
11912
  a: Number(v)
11884
11913
  })
11885
11914
  }],
11886
- to: HSVAtoHSLA,
11887
- from: HSLAtoHSVA
11915
+ to: HSVtoHSL,
11916
+ from: HSLtoHSV
11888
11917
  };
11889
11918
  const hsl = {
11890
11919
  ...hsla,
@@ -11899,8 +11928,8 @@ const hexa = {
11899
11928
  getValue: c => c,
11900
11929
  getColor: (c, v) => v
11901
11930
  }],
11902
- to: HSVAtoHex,
11903
- from: HexToHSVA
11931
+ to: HSVtoHex,
11932
+ from: HexToHSV
11904
11933
  };
11905
11934
  const hex = {
11906
11935
  ...hexa,
@@ -12666,7 +12695,7 @@ const VColorPickerPreview = defineComponent({
12666
12695
  "class": "v-color-picker-preview__dot"
12667
12696
  }, [createVNode("div", {
12668
12697
  "style": {
12669
- background: HSVAtoCSS(props.color ?? nullColor)
12698
+ background: HSVtoCSS(props.color ?? nullColor)
12670
12699
  }
12671
12700
  }, null)]), createVNode("div", {
12672
12701
  "class": "v-color-picker-preview__sliders"
@@ -13207,7 +13236,7 @@ const VColorPicker = defineComponent({
13207
13236
  "theme": props.theme,
13208
13237
  "class": ['v-color-picker'],
13209
13238
  "style": {
13210
- '--v-color-picker-color-hsv': HSVAtoCSS({
13239
+ '--v-color-picker-color-hsv': HSVtoCSS({
13211
13240
  ...(currentColor.value ?? nullColor),
13212
13241
  a: 1
13213
13242
  })
@@ -15871,8 +15900,7 @@ const VRadioGroup = defineComponent({
15871
15900
  isReadonly
15872
15901
  } = _ref2;
15873
15902
  return createVNode(Fragment, null, [label && createVNode(VLabel, {
15874
- "for": id.value,
15875
- "clickable": true
15903
+ "for": id.value
15876
15904
  }, {
15877
15905
  default: () => [label]
15878
15906
  }), createVNode(VSelectionControlGroup, mergeProps(controlProps, {
@@ -18166,7 +18194,7 @@ function createVuetify$1() {
18166
18194
  locale
18167
18195
  };
18168
18196
  }
18169
- const version$1 = "3.0.3";
18197
+ const version$1 = "3.0.4";
18170
18198
  createVuetify$1.version = version$1;
18171
18199
 
18172
18200
  // Vue's inject() can only be used in setup
@@ -18187,7 +18215,7 @@ const createVuetify = function () {
18187
18215
  ...options
18188
18216
  });
18189
18217
  };
18190
- const version = "3.0.3";
18218
+ const version = "3.0.4";
18191
18219
  createVuetify.version = version;
18192
18220
 
18193
18221
  export { components, createVuetify, directives, useDisplay, useLayout, useLocale, useRtl, useTheme, version };