vuetify 3.0.2 → 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 (88) hide show
  1. package/dist/json/attributes.json +902 -902
  2. package/dist/json/importMap.json +66 -66
  3. package/dist/json/web-types.json +1178 -1136
  4. package/dist/vuetify.css +124 -126
  5. package/dist/vuetify.d.ts +389 -196
  6. package/dist/vuetify.esm.js +175 -144
  7. package/dist/vuetify.esm.js.map +1 -1
  8. package/dist/vuetify.js +175 -144
  9. package/dist/vuetify.js.map +1 -1
  10. package/dist/vuetify.min.css +2 -2
  11. package/dist/vuetify.min.js +696 -692
  12. package/dist/vuetify.min.js.map +1 -1
  13. package/lib/components/VAlert/index.d.ts +1 -1
  14. package/lib/components/VAppBar/VAppBar.mjs +2 -2
  15. package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
  16. package/lib/components/VAppBar/index.d.ts +275 -62
  17. package/lib/components/VAutocomplete/index.d.ts +22 -22
  18. package/lib/components/VCheckbox/VCheckbox.css +1 -1
  19. package/lib/components/VCheckbox/VCheckbox.sass +1 -1
  20. package/lib/components/VChip/VChip.mjs +14 -6
  21. package/lib/components/VChip/VChip.mjs.map +1 -1
  22. package/lib/components/VChip/index.d.ts +3 -1
  23. package/lib/components/VChipGroup/index.d.ts +1 -1
  24. package/lib/components/VColorPicker/VColorPicker.mjs +2 -2
  25. package/lib/components/VColorPicker/VColorPicker.mjs.map +1 -1
  26. package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
  27. package/lib/components/VColorPicker/VColorPickerEdit.mjs.map +1 -1
  28. package/lib/components/VColorPicker/VColorPickerPreview.mjs +2 -2
  29. package/lib/components/VColorPicker/VColorPickerPreview.mjs.map +1 -1
  30. package/lib/components/VColorPicker/VColorPickerSwatches.mjs.map +1 -1
  31. package/lib/components/VColorPicker/util/index.mjs +24 -14
  32. package/lib/components/VColorPicker/util/index.mjs.map +1 -1
  33. package/lib/components/VCombobox/index.d.ts +22 -22
  34. package/lib/components/VExpansionPanel/index.d.ts +1 -1
  35. package/lib/components/VField/index.d.ts +6 -6
  36. package/lib/components/VFileInput/index.d.ts +2 -2
  37. package/lib/components/VFooter/VFooter.mjs +1 -1
  38. package/lib/components/VFooter/VFooter.mjs.map +1 -1
  39. package/lib/components/VGrid/VGrid.css +2 -2
  40. package/lib/components/VGrid/VGrid.sass +1 -1
  41. package/lib/components/VLazy/VLazy.mjs +2 -1
  42. package/lib/components/VLazy/VLazy.mjs.map +1 -1
  43. package/lib/components/VList/VListItem.mjs +2 -1
  44. package/lib/components/VList/VListItem.mjs.map +1 -1
  45. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +2 -2
  46. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
  47. package/lib/components/VOverlay/locationStrategies.mjs +3 -1
  48. package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
  49. package/lib/components/VPagination/index.d.ts +1 -1
  50. package/lib/components/VProgressLinear/VProgressLinear.sass +1 -1
  51. package/lib/components/VProgressLinear/_variables.scss +1 -1
  52. package/lib/components/VRadioGroup/VRadioGroup.mjs +1 -2
  53. package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
  54. package/lib/components/VSelect/index.d.ts +22 -22
  55. package/lib/components/VSelectionControl/VSelectionControl.css +4 -0
  56. package/lib/components/VSelectionControl/VSelectionControl.sass +4 -0
  57. package/lib/components/VSelectionControl/index.d.ts +6 -6
  58. package/lib/components/VSnackbar/index.d.ts +4 -4
  59. package/lib/components/VSwitch/VSwitch.css +1 -1
  60. package/lib/components/VSwitch/VSwitch.sass +1 -1
  61. package/lib/components/VSystemBar/VSystemBar.css +1 -1
  62. package/lib/components/VSystemBar/_variables.scss +1 -1
  63. package/lib/components/VTabs/VTab.css +1 -3
  64. package/lib/components/VTabs/VTab.sass +1 -4
  65. package/lib/components/VTabs/VTabs.css +0 -4
  66. package/lib/components/VTabs/VTabs.sass +0 -5
  67. package/lib/components/VTextField/index.d.ts +18 -18
  68. package/lib/components/VTextarea/index.d.ts +1 -1
  69. package/lib/components/VToolbar/VToolbar.mjs +32 -22
  70. package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
  71. package/lib/components/VToolbar/index.d.ts +9 -8
  72. package/lib/components/index.d.ts +370 -177
  73. package/lib/components/transitions/dialog-transition.mjs +2 -2
  74. package/lib/components/transitions/dialog-transition.mjs.map +1 -1
  75. package/lib/composables/theme.mjs +7 -7
  76. package/lib/composables/theme.mjs.map +1 -1
  77. package/lib/composables/validation.mjs +1 -1
  78. package/lib/composables/validation.mjs.map +1 -1
  79. package/lib/entry-bundler.mjs +1 -1
  80. package/lib/framework.mjs +1 -1
  81. package/lib/index.d.ts +19 -19
  82. package/lib/util/color/APCA.mjs +6 -6
  83. package/lib/util/color/APCA.mjs.map +1 -1
  84. package/lib/util/color/transformSRGB.mjs +15 -7
  85. package/lib/util/color/transformSRGB.mjs.map +1 -1
  86. package/lib/util/colorUtils.mjs +64 -81
  87. package/lib/util/colorUtils.mjs.map +1 -1
  88. package/package.json +2 -2
@@ -6,30 +6,35 @@ import * as CIELAB from "./color/transformCIELAB.mjs"; // Types
6
6
  export function isCssColor(color) {
7
7
  return !!color && /^(#|var\(--|(rgb|hsl)a?\()/.test(color);
8
8
  }
9
- export function colorToInt(color) {
10
- let rgb;
9
+ export function parseColor(color) {
11
10
  if (typeof color === 'number') {
12
- rgb = color;
11
+ if (isNaN(color) || color < 0 || color > 0xFFFFFF) {
12
+ // int can't have opacity
13
+ consoleWarn(`'${color}' is not a valid hex color`);
14
+ }
15
+ return {
16
+ r: (color & 0xFF0000) >> 16,
17
+ g: (color & 0xFF00) >> 8,
18
+ b: color & 0xFF
19
+ };
13
20
  } else if (typeof color === 'string') {
14
- let c = color.startsWith('#') ? color.substring(1) : color;
15
- if (c.length === 3) {
16
- c = c.split('').map(char => char + char).join('');
21
+ let hex = color.startsWith('#') ? color.slice(1) : color;
22
+ if ([3, 4].includes(hex.length)) {
23
+ hex = hex.split('').map(char => char + char).join('');
24
+ } else if (![6, 8].includes(hex.length)) {
25
+ consoleWarn(`'${color}' is not a valid hex(a) color`);
17
26
  }
18
- if (c.length !== 6 && c.length !== 8) {
19
- consoleWarn(`'${color}' is not a valid rgb color`);
27
+ const int = parseInt(hex, 16);
28
+ if (isNaN(int) || int < 0 || int > 0xFFFFFFFF) {
29
+ consoleWarn(`'${color}' is not a valid hex(a) color`);
20
30
  }
21
- rgb = parseInt(c, 16);
31
+ return HexToRGB(hex);
22
32
  } else {
23
33
  throw new TypeError(`Colors can only be numbers or strings, recieved ${color == null ? color : color.constructor.name} instead`);
24
34
  }
25
- if (rgb < 0) {
26
- consoleWarn(`Colors cannot be negative: '${color}'`);
27
- rgb = 0;
28
- } else if (rgb > 0xffffffff || isNaN(rgb)) {
29
- consoleWarn(`'${color}' is not a valid rgb color`);
30
- rgb = 0xffffff;
31
- }
32
- return rgb;
35
+ }
36
+ export function RGBToInt(color) {
37
+ return (color.r << 16) + (color.g << 8) + color.b;
33
38
  }
34
39
  export function classToHex(color, colors, currentTheme) {
35
40
  const [colorName, colorModifier] = color.toString().trim().replace('-', '').split(' ', 2);
@@ -45,21 +50,9 @@ export function classToHex(color, colors, currentTheme) {
45
50
  }
46
51
  return hexColor;
47
52
  }
48
- export function intToHex(color) {
49
- let hexColor = color.toString(16);
50
- if (hexColor.length < 6) hexColor = '0'.repeat(6 - hexColor.length) + hexColor;
51
- return '#' + hexColor;
52
- }
53
- export function colorToHex(color) {
54
- return intToHex(colorToInt(color));
55
- }
56
53
 
57
- /**
58
- * Converts HSVA to RGBA. Based on formula from https://en.wikipedia.org/wiki/HSL_and_HSV
59
- *
60
- * @param color HSVA color as an array [0-360, 0-1, 0-1, 0-1]
61
- */
62
- export function HSVAtoRGBA(hsva) {
54
+ /** Converts HSVA to RGBA. Based on formula from https://en.wikipedia.org/wiki/HSL_and_HSV */
55
+ export function HSVtoRGB(hsva) {
63
56
  const {
64
57
  h,
65
58
  s,
@@ -79,12 +72,8 @@ export function HSVAtoRGBA(hsva) {
79
72
  };
80
73
  }
81
74
 
82
- /**
83
- * Converts RGBA to HSVA. Based on formula from https://en.wikipedia.org/wiki/HSL_and_HSV
84
- *
85
- * @param color RGBA color as an array [0-255, 0-255, 0-255, 0-1]
86
- */
87
- export function RGBAtoHSVA(rgba) {
75
+ /** Converts RGBA to HSVA. Based on formula from https://en.wikipedia.org/wiki/HSL_and_HSV */
76
+ export function RGBtoHSV(rgba) {
88
77
  if (!rgba) return {
89
78
  h: 0,
90
79
  s: 1,
@@ -116,7 +105,7 @@ export function RGBAtoHSVA(rgba) {
116
105
  a: rgba.a
117
106
  };
118
107
  }
119
- export function HSVAtoHSLA(hsva) {
108
+ export function HSVtoHSL(hsva) {
120
109
  const {
121
110
  h,
122
111
  s,
@@ -132,7 +121,7 @@ export function HSVAtoHSLA(hsva) {
132
121
  a
133
122
  };
134
123
  }
135
- export function HSLAtoHSVA(hsl) {
124
+ export function HSLtoHSV(hsl) {
136
125
  const {
137
126
  h,
138
127
  s,
@@ -148,40 +137,47 @@ export function HSLAtoHSVA(hsl) {
148
137
  a
149
138
  };
150
139
  }
151
- export function RGBAtoCSS(rgba) {
152
- return `rgba(${rgba.r}, ${rgba.g}, ${rgba.b}, ${rgba.a})`;
140
+ export function RGBtoCSS(_ref) {
141
+ let {
142
+ r,
143
+ g,
144
+ b,
145
+ a
146
+ } = _ref;
147
+ return a === undefined ? `rgb(${r}, ${g}, ${b})` : `rgba(${r}, ${g}, ${b}, ${a})`;
153
148
  }
154
- export function HSVAtoCSS(hsva) {
155
- return RGBAtoCSS(HSVAtoRGBA(hsva));
149
+ export function HSVtoCSS(hsva) {
150
+ return RGBtoCSS(HSVtoRGB(hsva));
156
151
  }
157
- export function RGBtoCSS(rgba) {
158
- return RGBAtoCSS({
159
- ...rgba,
160
- a: 1
161
- });
152
+ function toHex(v) {
153
+ const h = Math.round(v).toString(16);
154
+ return ('00'.substr(0, 2 - h.length) + h).toUpperCase();
162
155
  }
163
- export function RGBAtoHex(rgba) {
164
- const toHex = v => {
165
- const h = Math.round(v).toString(16);
166
- return ('00'.substr(0, 2 - h.length) + h).toUpperCase();
167
- };
168
- return `#${[toHex(rgba.r), toHex(rgba.g), toHex(rgba.b), toHex(Math.round(rgba.a * 255))].join('')}`;
156
+ export function RGBtoHex(_ref2) {
157
+ let {
158
+ r,
159
+ g,
160
+ b,
161
+ a
162
+ } = _ref2;
163
+ return `#${[toHex(r), toHex(g), toHex(b), a !== undefined ? toHex(Math.round(a * 255)) : 'FF'].join('')}`;
169
164
  }
170
- export function HexToRGBA(hex) {
171
- const rgba = chunk(hex.slice(1), 2).map(c => parseInt(c, 16));
165
+ export function HexToRGB(hex) {
166
+ let [r, g, b, a] = chunk(hex, 2).map(c => parseInt(c, 16));
167
+ a = a === undefined ? a : Math.round(a / 255 * 100) / 100;
172
168
  return {
173
- r: rgba[0],
174
- g: rgba[1],
175
- b: rgba[2],
176
- a: Math.round(rgba[3] / 255 * 100) / 100
169
+ r,
170
+ g,
171
+ b,
172
+ a
177
173
  };
178
174
  }
179
- export function HexToHSVA(hex) {
180
- const rgb = HexToRGBA(hex);
181
- return RGBAtoHSVA(rgb);
175
+ export function HexToHSV(hex) {
176
+ const rgb = HexToRGB(hex);
177
+ return RGBtoHSV(rgb);
182
178
  }
183
- export function HSVAtoHex(hsva) {
184
- return RGBAtoHex(HSVAtoRGBA(hsva));
179
+ export function HSVtoHex(hsva) {
180
+ return RGBtoHex(HSVtoRGB(hsva));
185
181
  }
186
182
  export function parseHex(hex) {
187
183
  if (hex.startsWith('#')) {
@@ -196,30 +192,17 @@ export function parseHex(hex) {
196
192
  } else {
197
193
  hex = padEnd(padEnd(hex, 6), 8, 'F');
198
194
  }
199
- return `#${hex}`.toUpperCase().substr(0, 9);
195
+ return hex;
200
196
  }
201
197
  export function parseGradient(gradient, colors, currentTheme) {
202
198
  return gradient.replace(/([a-z]+(\s[a-z]+-[1-5])?)(?=$|,)/gi, x => {
203
199
  return classToHex(x, colors, currentTheme) || x;
204
200
  }).replace(/(rgba\()#[0-9a-f]+(?=,)/gi, x => {
205
- return 'rgba(' + Object.values(HexToRGBA(parseHex(x.replace(/rgba\(/, '')))).slice(0, 3).join(',');
201
+ return 'rgba(' + Object.values(HexToRGB(parseHex(x.replace(/rgba\(/, '')))).slice(0, 3).join(',');
206
202
  });
207
203
  }
208
- export function RGBtoInt(rgba) {
209
- return (rgba.r << 16) + (rgba.g << 8) + rgba.b;
210
- }
211
- export function colorToRGB(color) {
212
- const int = colorToInt(color);
213
- return {
214
- r: (int & 0xFF0000) >> 16,
215
- g: (int & 0xFF00) >> 8,
216
- b: int & 0xFF
217
- };
218
- }
219
204
  export function lighten(value, amount) {
220
205
  const lab = CIELAB.fromXYZ(sRGB.toXYZ(value));
221
- // TODO: why this false positive?
222
- // eslint-disable-next-line @typescript-eslint/restrict-plus-operands
223
206
  lab[0] = lab[0] + amount * 10;
224
207
  return sRGB.fromXYZ(CIELAB.toXYZ(lab));
225
208
  }
@@ -234,7 +217,7 @@ export function darken(value, amount) {
234
217
  * @see https://www.w3.org/TR/WCAG20/#relativeluminancedef
235
218
  */
236
219
  export function getLuma(color) {
237
- const rgb = colorToInt(color);
220
+ const rgb = parseColor(color);
238
221
  return sRGB.toXYZ(rgb)[1];
239
222
  }
240
223
 
@@ -1 +1 @@
1
- {"version":3,"file":"colorUtils.mjs","names":["consoleWarn","chunk","padEnd","sRGB","CIELAB","isCssColor","color","test","colorToInt","rgb","c","startsWith","substring","length","split","map","char","join","parseInt","TypeError","constructor","name","isNaN","classToHex","colors","currentTheme","colorName","colorModifier","toString","trim","replace","hexColor","base","intToHex","repeat","colorToHex","HSVAtoRGBA","hsva","h","s","v","a","f","n","k","Math","max","min","round","r","g","b","RGBAtoHSVA","rgba","hsv","HSVAtoHSLA","l","sprime","HSLAtoHSVA","hsl","RGBAtoCSS","HSVAtoCSS","RGBtoCSS","RGBAtoHex","toHex","substr","toUpperCase","HexToRGBA","hex","slice","HexToHSVA","HSVAtoHex","parseHex","x","parseGradient","gradient","Object","values","RGBtoInt","colorToRGB","int","lighten","value","amount","lab","fromXYZ","toXYZ","darken","getLuma","getContrast","first","second","l1","l2","light","dark"],"sources":["../../src/util/colorUtils.ts"],"sourcesContent":["// Utilities\nimport { consoleWarn } from './console'\nimport { chunk, padEnd } from './helpers'\nimport * as sRGB from '@/util/color/transformSRGB'\nimport * as CIELAB from '@/util/color/transformCIELAB'\n\n// Types\nimport type { Colors } from '@/composables/theme'\n\nexport type ColorInt = number\nexport type XYZ = [number, number, number]\nexport type LAB = [number, number, number]\nexport type HSV = { h: number, s: number, v: number }\nexport type HSVA = HSV & { a: number }\nexport type RGB = { r: number, g: number, b: number }\nexport type RGBA = RGB & { a: number }\nexport type HSL = { h: number, s: number, l: number }\nexport type HSLA = HSL & { a: number }\nexport type Hex = string\nexport type Hexa = string\nexport type Color = string | number | {}\n\nexport function isCssColor (color?: string | null | false): boolean {\n return !!color && /^(#|var\\(--|(rgb|hsl)a?\\()/.test(color)\n}\n\nexport function colorToInt (color: Color): ColorInt {\n let rgb\n\n if (typeof color === 'number') {\n rgb = color\n } else if (typeof color === 'string') {\n let c = color.startsWith('#') ? color.substring(1) : color\n if (c.length === 3) {\n c = c.split('').map(char => char + char).join('')\n }\n if (c.length !== 6 && c.length !== 8) {\n consoleWarn(`'${color}' is not a valid rgb color`)\n }\n rgb = parseInt(c, 16)\n } else {\n throw new TypeError(`Colors can only be numbers or strings, recieved ${color == null ? color : color.constructor.name} instead`)\n }\n\n if (rgb < 0) {\n consoleWarn(`Colors cannot be negative: '${color}'`)\n rgb = 0\n } else if (rgb > 0xffffffff || isNaN(rgb)) {\n consoleWarn(`'${color}' is not a valid rgb color`)\n rgb = 0xffffff\n }\n\n return rgb\n}\n\nexport function classToHex (\n color: string,\n colors: Record<string, Record<string, string>>,\n currentTheme: Partial<Colors>,\n): string {\n const [colorName, colorModifier] = color\n .toString().trim().replace('-', '').split(' ', 2) as (string | undefined)[]\n\n let hexColor = ''\n if (colorName && colorName in colors) {\n if (colorModifier && colorModifier in colors[colorName]) {\n hexColor = colors[colorName][colorModifier]\n } else if ('base' in colors[colorName]) {\n hexColor = colors[colorName].base\n }\n } else if (colorName && colorName in currentTheme) {\n hexColor = currentTheme[colorName] as string\n }\n\n return hexColor\n}\n\nexport function intToHex (color: ColorInt): string {\n let hexColor: string = color.toString(16)\n\n if (hexColor.length < 6) hexColor = '0'.repeat(6 - hexColor.length) + hexColor\n\n return '#' + hexColor\n}\n\nexport function colorToHex (color: Color): string {\n return intToHex(colorToInt(color))\n}\n\n/**\n * Converts HSVA to RGBA. Based on formula from https://en.wikipedia.org/wiki/HSL_and_HSV\n *\n * @param color HSVA color as an array [0-360, 0-1, 0-1, 0-1]\n */\nexport function HSVAtoRGBA (hsva: HSVA): RGBA {\n const { h, s, v, a } = hsva\n const f = (n: number) => {\n const k = (n + (h / 60)) % 6\n return v - v * s * Math.max(Math.min(k, 4 - k, 1), 0)\n }\n\n const rgb = [f(5), f(3), f(1)].map(v => Math.round(v * 255))\n\n return { r: rgb[0], g: rgb[1], b: rgb[2], a }\n}\n\n/**\n * Converts RGBA to HSVA. Based on formula from https://en.wikipedia.org/wiki/HSL_and_HSV\n *\n * @param color RGBA color as an array [0-255, 0-255, 0-255, 0-1]\n */\nexport function RGBAtoHSVA (rgba: RGBA): HSVA {\n if (!rgba) return { h: 0, s: 1, v: 1, a: 1 }\n\n const r = rgba.r / 255\n const g = rgba.g / 255\n const b = rgba.b / 255\n const max = Math.max(r, g, b)\n const min = Math.min(r, g, b)\n\n let h = 0\n\n if (max !== min) {\n if (max === r) {\n h = 60 * (0 + ((g - b) / (max - min)))\n } else if (max === g) {\n h = 60 * (2 + ((b - r) / (max - min)))\n } else if (max === b) {\n h = 60 * (4 + ((r - g) / (max - min)))\n }\n }\n\n if (h < 0) h = h + 360\n\n const s = max === 0 ? 0 : (max - min) / max\n const hsv = [h, s, max]\n\n return { h: hsv[0], s: hsv[1], v: hsv[2], a: rgba.a }\n}\n\nexport function HSVAtoHSLA (hsva: HSVA): HSLA {\n const { h, s, v, a } = hsva\n\n const l = v - (v * s / 2)\n\n const sprime = l === 1 || l === 0 ? 0 : (v - l) / Math.min(l, 1 - l)\n\n return { h, s: sprime, l, a }\n}\n\nexport function HSLAtoHSVA (hsl: HSLA): HSVA {\n const { h, s, l, a } = hsl\n\n const v = l + s * Math.min(l, 1 - l)\n\n const sprime = v === 0 ? 0 : 2 - (2 * l / v)\n\n return { h, s: sprime, v, a }\n}\n\nexport function RGBAtoCSS (rgba: RGBA): string {\n return `rgba(${rgba.r}, ${rgba.g}, ${rgba.b}, ${rgba.a})`\n}\n\nexport function HSVAtoCSS (hsva: HSVA): string {\n return RGBAtoCSS(HSVAtoRGBA(hsva))\n}\n\nexport function RGBtoCSS (rgba: RGBA): string {\n return RGBAtoCSS({ ...rgba, a: 1 })\n}\n\nexport function RGBAtoHex (rgba: RGBA): Hex {\n const toHex = (v: number) => {\n const h = Math.round(v).toString(16)\n return ('00'.substr(0, 2 - h.length) + h).toUpperCase()\n }\n\n return `#${[\n toHex(rgba.r),\n toHex(rgba.g),\n toHex(rgba.b),\n toHex(Math.round(rgba.a * 255)),\n ].join('')}`\n}\n\nexport function HexToRGBA (hex: Hex): RGBA {\n const rgba = chunk(hex.slice(1), 2).map((c: string) => parseInt(c, 16))\n\n return {\n r: rgba[0],\n g: rgba[1],\n b: rgba[2],\n a: Math.round((rgba[3] / 255) * 100) / 100,\n }\n}\n\nexport function HexToHSVA (hex: Hex): HSVA {\n const rgb = HexToRGBA(hex)\n return RGBAtoHSVA(rgb)\n}\n\nexport function HSVAtoHex (hsva: HSVA): Hex {\n return RGBAtoHex(HSVAtoRGBA(hsva))\n}\n\nexport function parseHex (hex: string): Hex {\n if (hex.startsWith('#')) {\n hex = hex.slice(1)\n }\n\n hex = hex.replace(/([^0-9a-f])/gi, 'F')\n\n if (hex.length === 3 || hex.length === 4) {\n hex = hex.split('').map(x => x + x).join('')\n }\n\n if (hex.length === 6) {\n hex = padEnd(hex, 8, 'F')\n } else {\n hex = padEnd(padEnd(hex, 6), 8, 'F')\n }\n\n return `#${hex}`.toUpperCase().substr(0, 9)\n}\n\nexport function parseGradient (\n gradient: string,\n colors: Record<string, Record<string, string>>,\n currentTheme: Partial<Colors>,\n) {\n return gradient.replace(/([a-z]+(\\s[a-z]+-[1-5])?)(?=$|,)/gi, x => {\n return classToHex(x, colors, currentTheme) || x\n }).replace(/(rgba\\()#[0-9a-f]+(?=,)/gi, x => {\n return 'rgba(' + Object.values(HexToRGBA(parseHex(x.replace(/rgba\\(/, '')))).slice(0, 3).join(',')\n })\n}\n\nexport function RGBtoInt (rgba: RGBA): ColorInt {\n return (rgba.r << 16) + (rgba.g << 8) + rgba.b\n}\n\nexport function colorToRGB (color: string) {\n const int = colorToInt(color)\n\n return {\n r: (int & 0xFF0000) >> 16,\n g: (int & 0xFF00) >> 8,\n b: (int & 0xFF),\n }\n}\n\nexport function lighten (value: ColorInt, amount: number): ColorInt {\n const lab = CIELAB.fromXYZ(sRGB.toXYZ(value))\n // TODO: why this false positive?\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n lab[0] = lab[0] + amount * 10\n\n return sRGB.fromXYZ(CIELAB.toXYZ(lab))\n}\n\nexport function darken (value: ColorInt, amount: number): ColorInt {\n const lab = CIELAB.fromXYZ(sRGB.toXYZ(value))\n lab[0] = lab[0] - amount * 10\n\n return sRGB.fromXYZ(CIELAB.toXYZ(lab))\n}\n\n/**\n * Calculate the relative luminance of a given color\n * @see https://www.w3.org/TR/WCAG20/#relativeluminancedef\n */\nexport function getLuma (color: Color) {\n const rgb = colorToInt(color)\n\n return sRGB.toXYZ(rgb)[1]\n}\n\n/**\n * Returns the contrast ratio (1-21) between two colors.\n * @see https://www.w3.org/TR/WCAG20/#contrast-ratiodef\n */\nexport function getContrast (first: Color, second: Color) {\n const l1 = getLuma(first)\n const l2 = getLuma(second)\n\n const light = Math.max(l1, l2)\n const dark = Math.min(l1, l2)\n\n return (light + 0.05) / (dark + 0.05)\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"colorUtils.mjs","names":["consoleWarn","chunk","padEnd","sRGB","CIELAB","isCssColor","color","test","parseColor","isNaN","r","g","b","hex","startsWith","slice","includes","length","split","map","char","join","int","parseInt","HexToRGB","TypeError","constructor","name","RGBToInt","classToHex","colors","currentTheme","colorName","colorModifier","toString","trim","replace","hexColor","base","HSVtoRGB","hsva","h","s","v","a","f","n","k","Math","max","min","rgb","round","RGBtoHSV","rgba","hsv","HSVtoHSL","l","sprime","HSLtoHSV","hsl","RGBtoCSS","undefined","HSVtoCSS","toHex","substr","toUpperCase","RGBtoHex","c","HexToHSV","HSVtoHex","parseHex","x","parseGradient","gradient","Object","values","lighten","value","amount","lab","fromXYZ","toXYZ","darken","getLuma","getContrast","first","second","l1","l2","light","dark"],"sources":["../../src/util/colorUtils.ts"],"sourcesContent":["// Utilities\nimport { consoleWarn } from './console'\nimport { chunk, padEnd } from './helpers'\nimport * as sRGB from '@/util/color/transformSRGB'\nimport * as CIELAB from '@/util/color/transformCIELAB'\n\n// Types\nimport type { Colors } from '@/composables/theme'\n\nexport type XYZ = [number, number, number]\nexport type LAB = [number, number, number]\nexport type HSV = { h: number, s: number, v: number, a?: number }\nexport type RGB = { r: number, g: number, b: number, a?: number }\nexport type HSL = { h: number, s: number, l: number, a?: number }\nexport type Hex = string & { __hexBrand: never }\nexport type Color = string | number | {}\n\nexport function isCssColor (color?: string | null | false): boolean {\n return !!color && /^(#|var\\(--|(rgb|hsl)a?\\()/.test(color)\n}\n\nexport function parseColor (color: Color): RGB {\n if (typeof color === 'number') {\n if (isNaN(color) || color < 0 || color > 0xFFFFFF) { // int can't have opacity\n consoleWarn(`'${color}' is not a valid hex color`)\n }\n\n return {\n r: (color & 0xFF0000) >> 16,\n g: (color & 0xFF00) >> 8,\n b: (color & 0xFF),\n }\n } else if (typeof color === 'string') {\n let hex = color.startsWith('#') ? color.slice(1) : color\n\n if ([3, 4].includes(hex.length)) {\n hex = hex.split('').map(char => char + char).join('')\n } else if (![6, 8].includes(hex.length)) {\n consoleWarn(`'${color}' is not a valid hex(a) color`)\n }\n\n const int = parseInt(hex, 16)\n if (isNaN(int) || int < 0 || int > 0xFFFFFFFF) {\n consoleWarn(`'${color}' is not a valid hex(a) color`)\n }\n\n return HexToRGB(hex as Hex)\n } else {\n throw new TypeError(`Colors can only be numbers or strings, recieved ${color == null ? color : color.constructor.name} instead`)\n }\n}\n\nexport function RGBToInt (color: RGB) {\n return (color.r << 16) + (color.g << 8) + color.b\n}\n\nexport function classToHex (\n color: string,\n colors: Record<string, Record<string, string>>,\n currentTheme: Partial<Colors>,\n): string {\n const [colorName, colorModifier] = color\n .toString().trim().replace('-', '').split(' ', 2) as (string | undefined)[]\n\n let hexColor = ''\n if (colorName && colorName in colors) {\n if (colorModifier && colorModifier in colors[colorName]) {\n hexColor = colors[colorName][colorModifier]\n } else if ('base' in colors[colorName]) {\n hexColor = colors[colorName].base\n }\n } else if (colorName && colorName in currentTheme) {\n hexColor = currentTheme[colorName] as string\n }\n\n return hexColor\n}\n\n/** Converts HSVA to RGBA. Based on formula from https://en.wikipedia.org/wiki/HSL_and_HSV */\nexport function HSVtoRGB (hsva: HSV): RGB {\n const { h, s, v, a } = hsva\n const f = (n: number) => {\n const k = (n + (h / 60)) % 6\n return v - v * s * Math.max(Math.min(k, 4 - k, 1), 0)\n }\n\n const rgb = [f(5), f(3), f(1)].map(v => Math.round(v * 255))\n\n return { r: rgb[0], g: rgb[1], b: rgb[2], a }\n}\n\n/** Converts RGBA to HSVA. Based on formula from https://en.wikipedia.org/wiki/HSL_and_HSV */\nexport function RGBtoHSV (rgba: RGB): HSV {\n if (!rgba) return { h: 0, s: 1, v: 1, a: 1 }\n\n const r = rgba.r / 255\n const g = rgba.g / 255\n const b = rgba.b / 255\n const max = Math.max(r, g, b)\n const min = Math.min(r, g, b)\n\n let h = 0\n\n if (max !== min) {\n if (max === r) {\n h = 60 * (0 + ((g - b) / (max - min)))\n } else if (max === g) {\n h = 60 * (2 + ((b - r) / (max - min)))\n } else if (max === b) {\n h = 60 * (4 + ((r - g) / (max - min)))\n }\n }\n\n if (h < 0) h = h + 360\n\n const s = max === 0 ? 0 : (max - min) / max\n const hsv = [h, s, max]\n\n return { h: hsv[0], s: hsv[1], v: hsv[2], a: rgba.a }\n}\n\nexport function HSVtoHSL (hsva: HSV): HSL {\n const { h, s, v, a } = hsva\n\n const l = v - (v * s / 2)\n\n const sprime = l === 1 || l === 0 ? 0 : (v - l) / Math.min(l, 1 - l)\n\n return { h, s: sprime, l, a }\n}\n\nexport function HSLtoHSV (hsl: HSL): HSV {\n const { h, s, l, a } = hsl\n\n const v = l + s * Math.min(l, 1 - l)\n\n const sprime = v === 0 ? 0 : 2 - (2 * l / v)\n\n return { h, s: sprime, v, a }\n}\n\nexport function RGBtoCSS ({ r, g, b, a }: RGB): string {\n return a === undefined ? `rgb(${r}, ${g}, ${b})` : `rgba(${r}, ${g}, ${b}, ${a})`\n}\n\nexport function HSVtoCSS (hsva: HSV): string {\n return RGBtoCSS(HSVtoRGB(hsva))\n}\n\nfunction toHex (v: number) {\n const h = Math.round(v).toString(16)\n return ('00'.substr(0, 2 - h.length) + h).toUpperCase()\n}\n\nexport function RGBtoHex ({ r, g, b, a }: RGB): Hex {\n return `#${[\n toHex(r),\n toHex(g),\n toHex(b),\n a !== undefined ? toHex(Math.round(a * 255)) : 'FF',\n ].join('')}` as Hex\n}\n\nexport function HexToRGB (hex: Hex): RGB {\n let [r, g, b, a] = chunk(hex, 2).map((c: string) => parseInt(c, 16))\n a = a === undefined ? a : Math.round((a / 255) * 100) / 100\n\n return { r, g, b, a }\n}\n\nexport function HexToHSV (hex: Hex): HSV {\n const rgb = HexToRGB(hex)\n return RGBtoHSV(rgb)\n}\n\nexport function HSVtoHex (hsva: HSV): Hex {\n return RGBtoHex(HSVtoRGB(hsva))\n}\n\nexport function parseHex (hex: string): Hex {\n if (hex.startsWith('#')) {\n hex = hex.slice(1)\n }\n\n hex = hex.replace(/([^0-9a-f])/gi, 'F')\n\n if (hex.length === 3 || hex.length === 4) {\n hex = hex.split('').map(x => x + x).join('')\n }\n\n if (hex.length === 6) {\n hex = padEnd(hex, 8, 'F')\n } else {\n hex = padEnd(padEnd(hex, 6), 8, 'F')\n }\n\n return hex as Hex\n}\n\nexport function parseGradient (\n gradient: string,\n colors: Record<string, Record<string, string>>,\n currentTheme: Partial<Colors>,\n) {\n return gradient.replace(/([a-z]+(\\s[a-z]+-[1-5])?)(?=$|,)/gi, x => {\n return classToHex(x, colors, currentTheme) || x\n }).replace(/(rgba\\()#[0-9a-f]+(?=,)/gi, x => {\n return 'rgba(' + Object.values(HexToRGB(parseHex(x.replace(/rgba\\(/, '')))).slice(0, 3).join(',')\n })\n}\n\nexport function lighten (value: RGB, amount: number): RGB {\n const lab = CIELAB.fromXYZ(sRGB.toXYZ(value))\n lab[0] = lab[0] + amount * 10\n\n return sRGB.fromXYZ(CIELAB.toXYZ(lab))\n}\n\nexport function darken (value: RGB, amount: number): RGB {\n const lab = CIELAB.fromXYZ(sRGB.toXYZ(value))\n lab[0] = lab[0] - amount * 10\n\n return sRGB.fromXYZ(CIELAB.toXYZ(lab))\n}\n\n/**\n * Calculate the relative luminance of a given color\n * @see https://www.w3.org/TR/WCAG20/#relativeluminancedef\n */\nexport function getLuma (color: Color) {\n const rgb = parseColor(color)\n\n return sRGB.toXYZ(rgb)[1]\n}\n\n/**\n * Returns the contrast ratio (1-21) between two colors.\n * @see https://www.w3.org/TR/WCAG20/#contrast-ratiodef\n */\nexport function getContrast (first: Color, second: Color) {\n const l1 = getLuma(first)\n const l2 = getLuma(second)\n\n const light = Math.max(l1, l2)\n const dark = Math.min(l1, l2)\n\n return (light + 0.05) / (dark + 0.05)\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "vuetify",
3
3
  "description": "Vue Material Component Framework",
4
- "version": "3.0.2",
4
+ "version": "3.0.4",
5
5
  "author": {
6
6
  "name": "John Leider",
7
7
  "email": "john@vuetifyjs.com"
@@ -180,5 +180,5 @@
180
180
  "attributes": "dist/json/attributes.json"
181
181
  },
182
182
  "web-types": "dist/json/web-types.json",
183
- "gitHead": "d72381d79ba87e51f720a3635c0dcb679fae5f05"
183
+ "gitHead": "8b01ebdbaf4eddb851770c495bc1516986390cbf"
184
184
  }