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.
- package/dist/json/attributes.json +902 -902
- package/dist/json/importMap.json +66 -66
- package/dist/json/web-types.json +1178 -1136
- package/dist/vuetify.css +124 -126
- package/dist/vuetify.d.ts +389 -196
- package/dist/vuetify.esm.js +175 -144
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +175 -144
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +696 -692
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAlert/index.d.ts +1 -1
- package/lib/components/VAppBar/VAppBar.mjs +2 -2
- package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
- package/lib/components/VAppBar/index.d.ts +275 -62
- package/lib/components/VAutocomplete/index.d.ts +22 -22
- package/lib/components/VCheckbox/VCheckbox.css +1 -1
- package/lib/components/VCheckbox/VCheckbox.sass +1 -1
- package/lib/components/VChip/VChip.mjs +14 -6
- package/lib/components/VChip/VChip.mjs.map +1 -1
- package/lib/components/VChip/index.d.ts +3 -1
- package/lib/components/VChipGroup/index.d.ts +1 -1
- package/lib/components/VColorPicker/VColorPicker.mjs +2 -2
- package/lib/components/VColorPicker/VColorPicker.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerEdit.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerPreview.mjs +2 -2
- package/lib/components/VColorPicker/VColorPickerPreview.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerSwatches.mjs.map +1 -1
- package/lib/components/VColorPicker/util/index.mjs +24 -14
- package/lib/components/VColorPicker/util/index.mjs.map +1 -1
- package/lib/components/VCombobox/index.d.ts +22 -22
- package/lib/components/VExpansionPanel/index.d.ts +1 -1
- package/lib/components/VField/index.d.ts +6 -6
- package/lib/components/VFileInput/index.d.ts +2 -2
- package/lib/components/VFooter/VFooter.mjs +1 -1
- package/lib/components/VFooter/VFooter.mjs.map +1 -1
- package/lib/components/VGrid/VGrid.css +2 -2
- package/lib/components/VGrid/VGrid.sass +1 -1
- package/lib/components/VLazy/VLazy.mjs +2 -1
- package/lib/components/VLazy/VLazy.mjs.map +1 -1
- package/lib/components/VList/VListItem.mjs +2 -1
- package/lib/components/VList/VListItem.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +2 -2
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
- package/lib/components/VOverlay/locationStrategies.mjs +3 -1
- package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
- package/lib/components/VPagination/index.d.ts +1 -1
- package/lib/components/VProgressLinear/VProgressLinear.sass +1 -1
- package/lib/components/VProgressLinear/_variables.scss +1 -1
- package/lib/components/VRadioGroup/VRadioGroup.mjs +1 -2
- package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
- package/lib/components/VSelect/index.d.ts +22 -22
- package/lib/components/VSelectionControl/VSelectionControl.css +4 -0
- package/lib/components/VSelectionControl/VSelectionControl.sass +4 -0
- package/lib/components/VSelectionControl/index.d.ts +6 -6
- package/lib/components/VSnackbar/index.d.ts +4 -4
- package/lib/components/VSwitch/VSwitch.css +1 -1
- package/lib/components/VSwitch/VSwitch.sass +1 -1
- package/lib/components/VSystemBar/VSystemBar.css +1 -1
- package/lib/components/VSystemBar/_variables.scss +1 -1
- package/lib/components/VTabs/VTab.css +1 -3
- package/lib/components/VTabs/VTab.sass +1 -4
- package/lib/components/VTabs/VTabs.css +0 -4
- package/lib/components/VTabs/VTabs.sass +0 -5
- package/lib/components/VTextField/index.d.ts +18 -18
- package/lib/components/VTextarea/index.d.ts +1 -1
- package/lib/components/VToolbar/VToolbar.mjs +32 -22
- package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
- package/lib/components/VToolbar/index.d.ts +9 -8
- package/lib/components/index.d.ts +370 -177
- package/lib/components/transitions/dialog-transition.mjs +2 -2
- package/lib/components/transitions/dialog-transition.mjs.map +1 -1
- package/lib/composables/theme.mjs +7 -7
- package/lib/composables/theme.mjs.map +1 -1
- package/lib/composables/validation.mjs +1 -1
- package/lib/composables/validation.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/index.d.ts +19 -19
- package/lib/util/color/APCA.mjs +6 -6
- package/lib/util/color/APCA.mjs.map +1 -1
- package/lib/util/color/transformSRGB.mjs +15 -7
- package/lib/util/color/transformSRGB.mjs.map +1 -1
- package/lib/util/colorUtils.mjs +64 -81
- package/lib/util/colorUtils.mjs.map +1 -1
- package/package.json +2 -2
package/dist/vuetify.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Vuetify v3.0.
|
|
2
|
+
* Vuetify v3.0.4
|
|
3
3
|
* Forged by John Leider
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
@@ -599,21 +599,29 @@
|
|
|
599
599
|
|
|
600
600
|
// Matrix transform, then gamma adjustment
|
|
601
601
|
for (let i = 0; i < 3; ++i) {
|
|
602
|
+
// Rescale back to [0, 255]
|
|
602
603
|
rgb[i] = Math.round(clamp(transform(matrix[i][0] * xyz[0] + matrix[i][1] * xyz[1] + matrix[i][2] * xyz[2])) * 255);
|
|
603
604
|
}
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
605
|
+
return {
|
|
606
|
+
r: rgb[0],
|
|
607
|
+
g: rgb[1],
|
|
608
|
+
b: rgb[2]
|
|
609
|
+
};
|
|
607
610
|
}
|
|
608
|
-
function toXYZ$1(
|
|
611
|
+
function toXYZ$1(_ref) {
|
|
612
|
+
let {
|
|
613
|
+
r,
|
|
614
|
+
g,
|
|
615
|
+
b
|
|
616
|
+
} = _ref;
|
|
609
617
|
const xyz = [0, 0, 0];
|
|
610
618
|
const transform = srgbReverseTransform;
|
|
611
619
|
const matrix = srgbReverseMatrix;
|
|
612
620
|
|
|
613
621
|
// Rescale from [0, 255] to [0, 1] then adjust sRGB gamma to linear RGB
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
622
|
+
r = transform(r / 255);
|
|
623
|
+
g = transform(g / 255);
|
|
624
|
+
b = transform(b / 255);
|
|
617
625
|
|
|
618
626
|
// Matrix color space transform
|
|
619
627
|
for (let i = 0; i < 3; ++i) {
|
|
@@ -644,43 +652,36 @@
|
|
|
644
652
|
function isCssColor(color) {
|
|
645
653
|
return !!color && /^(#|var\(--|(rgb|hsl)a?\()/.test(color);
|
|
646
654
|
}
|
|
647
|
-
function
|
|
648
|
-
let rgb;
|
|
655
|
+
function parseColor$1(color) {
|
|
649
656
|
if (typeof color === 'number') {
|
|
650
|
-
|
|
657
|
+
if (isNaN(color) || color < 0 || color > 0xFFFFFF) {
|
|
658
|
+
// int can't have opacity
|
|
659
|
+
consoleWarn(`'${color}' is not a valid hex color`);
|
|
660
|
+
}
|
|
661
|
+
return {
|
|
662
|
+
r: (color & 0xFF0000) >> 16,
|
|
663
|
+
g: (color & 0xFF00) >> 8,
|
|
664
|
+
b: color & 0xFF
|
|
665
|
+
};
|
|
651
666
|
} else if (typeof color === 'string') {
|
|
652
|
-
let
|
|
653
|
-
if (
|
|
654
|
-
|
|
667
|
+
let hex = color.startsWith('#') ? color.slice(1) : color;
|
|
668
|
+
if ([3, 4].includes(hex.length)) {
|
|
669
|
+
hex = hex.split('').map(char => char + char).join('');
|
|
670
|
+
} else if (![6, 8].includes(hex.length)) {
|
|
671
|
+
consoleWarn(`'${color}' is not a valid hex(a) color`);
|
|
655
672
|
}
|
|
656
|
-
|
|
657
|
-
|
|
673
|
+
const int = parseInt(hex, 16);
|
|
674
|
+
if (isNaN(int) || int < 0 || int > 0xFFFFFFFF) {
|
|
675
|
+
consoleWarn(`'${color}' is not a valid hex(a) color`);
|
|
658
676
|
}
|
|
659
|
-
|
|
677
|
+
return HexToRGB(hex);
|
|
660
678
|
} else {
|
|
661
679
|
throw new TypeError(`Colors can only be numbers or strings, recieved ${color == null ? color : color.constructor.name} instead`);
|
|
662
680
|
}
|
|
663
|
-
if (rgb < 0) {
|
|
664
|
-
consoleWarn(`Colors cannot be negative: '${color}'`);
|
|
665
|
-
rgb = 0;
|
|
666
|
-
} else if (rgb > 0xffffffff || isNaN(rgb)) {
|
|
667
|
-
consoleWarn(`'${color}' is not a valid rgb color`);
|
|
668
|
-
rgb = 0xffffff;
|
|
669
|
-
}
|
|
670
|
-
return rgb;
|
|
671
|
-
}
|
|
672
|
-
function intToHex(color) {
|
|
673
|
-
let hexColor = color.toString(16);
|
|
674
|
-
if (hexColor.length < 6) hexColor = '0'.repeat(6 - hexColor.length) + hexColor;
|
|
675
|
-
return '#' + hexColor;
|
|
676
681
|
}
|
|
677
682
|
|
|
678
|
-
/**
|
|
679
|
-
|
|
680
|
-
*
|
|
681
|
-
* @param color HSVA color as an array [0-360, 0-1, 0-1, 0-1]
|
|
682
|
-
*/
|
|
683
|
-
function HSVAtoRGBA(hsva) {
|
|
683
|
+
/** Converts HSVA to RGBA. Based on formula from https://en.wikipedia.org/wiki/HSL_and_HSV */
|
|
684
|
+
function HSVtoRGB(hsva) {
|
|
684
685
|
const {
|
|
685
686
|
h,
|
|
686
687
|
s,
|
|
@@ -700,12 +701,8 @@
|
|
|
700
701
|
};
|
|
701
702
|
}
|
|
702
703
|
|
|
703
|
-
/**
|
|
704
|
-
|
|
705
|
-
*
|
|
706
|
-
* @param color RGBA color as an array [0-255, 0-255, 0-255, 0-1]
|
|
707
|
-
*/
|
|
708
|
-
function RGBAtoHSVA(rgba) {
|
|
704
|
+
/** Converts RGBA to HSVA. Based on formula from https://en.wikipedia.org/wiki/HSL_and_HSV */
|
|
705
|
+
function RGBtoHSV(rgba) {
|
|
709
706
|
if (!rgba) return {
|
|
710
707
|
h: 0,
|
|
711
708
|
s: 1,
|
|
@@ -737,7 +734,7 @@
|
|
|
737
734
|
a: rgba.a
|
|
738
735
|
};
|
|
739
736
|
}
|
|
740
|
-
function
|
|
737
|
+
function HSVtoHSL(hsva) {
|
|
741
738
|
const {
|
|
742
739
|
h,
|
|
743
740
|
s,
|
|
@@ -753,7 +750,7 @@
|
|
|
753
750
|
a
|
|
754
751
|
};
|
|
755
752
|
}
|
|
756
|
-
function
|
|
753
|
+
function HSLtoHSV(hsl) {
|
|
757
754
|
const {
|
|
758
755
|
h,
|
|
759
756
|
s,
|
|
@@ -769,34 +766,47 @@
|
|
|
769
766
|
a
|
|
770
767
|
};
|
|
771
768
|
}
|
|
772
|
-
function
|
|
773
|
-
|
|
769
|
+
function RGBtoCSS(_ref) {
|
|
770
|
+
let {
|
|
771
|
+
r,
|
|
772
|
+
g,
|
|
773
|
+
b,
|
|
774
|
+
a
|
|
775
|
+
} = _ref;
|
|
776
|
+
return a === undefined ? `rgb(${r}, ${g}, ${b})` : `rgba(${r}, ${g}, ${b}, ${a})`;
|
|
774
777
|
}
|
|
775
|
-
function
|
|
776
|
-
return
|
|
778
|
+
function HSVtoCSS(hsva) {
|
|
779
|
+
return RGBtoCSS(HSVtoRGB(hsva));
|
|
777
780
|
}
|
|
778
|
-
function
|
|
779
|
-
const
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
781
|
+
function toHex(v) {
|
|
782
|
+
const h = Math.round(v).toString(16);
|
|
783
|
+
return ('00'.substr(0, 2 - h.length) + h).toUpperCase();
|
|
784
|
+
}
|
|
785
|
+
function RGBtoHex(_ref2) {
|
|
786
|
+
let {
|
|
787
|
+
r,
|
|
788
|
+
g,
|
|
789
|
+
b,
|
|
790
|
+
a
|
|
791
|
+
} = _ref2;
|
|
792
|
+
return `#${[toHex(r), toHex(g), toHex(b), a !== undefined ? toHex(Math.round(a * 255)) : 'FF'].join('')}`;
|
|
784
793
|
}
|
|
785
|
-
function
|
|
786
|
-
|
|
794
|
+
function HexToRGB(hex) {
|
|
795
|
+
let [r, g, b, a] = chunk(hex, 2).map(c => parseInt(c, 16));
|
|
796
|
+
a = a === undefined ? a : Math.round(a / 255 * 100) / 100;
|
|
787
797
|
return {
|
|
788
|
-
r
|
|
789
|
-
g
|
|
790
|
-
b
|
|
791
|
-
a
|
|
798
|
+
r,
|
|
799
|
+
g,
|
|
800
|
+
b,
|
|
801
|
+
a
|
|
792
802
|
};
|
|
793
803
|
}
|
|
794
|
-
function
|
|
795
|
-
const rgb =
|
|
796
|
-
return
|
|
804
|
+
function HexToHSV(hex) {
|
|
805
|
+
const rgb = HexToRGB(hex);
|
|
806
|
+
return RGBtoHSV(rgb);
|
|
797
807
|
}
|
|
798
|
-
function
|
|
799
|
-
return
|
|
808
|
+
function HSVtoHex(hsva) {
|
|
809
|
+
return RGBtoHex(HSVtoRGB(hsva));
|
|
800
810
|
}
|
|
801
811
|
function parseHex(hex) {
|
|
802
812
|
if (hex.startsWith('#')) {
|
|
@@ -811,20 +821,10 @@
|
|
|
811
821
|
} else {
|
|
812
822
|
hex = padEnd(padEnd(hex, 6), 8, 'F');
|
|
813
823
|
}
|
|
814
|
-
return
|
|
815
|
-
}
|
|
816
|
-
function colorToRGB(color) {
|
|
817
|
-
const int = colorToInt(color);
|
|
818
|
-
return {
|
|
819
|
-
r: (int & 0xFF0000) >> 16,
|
|
820
|
-
g: (int & 0xFF00) >> 8,
|
|
821
|
-
b: int & 0xFF
|
|
822
|
-
};
|
|
824
|
+
return hex;
|
|
823
825
|
}
|
|
824
826
|
function lighten(value, amount) {
|
|
825
827
|
const lab = fromXYZ(toXYZ$1(value));
|
|
826
|
-
// TODO: why this false positive?
|
|
827
|
-
// eslint-disable-next-line @typescript-eslint/restrict-plus-operands
|
|
828
828
|
lab[0] = lab[0] + amount * 10;
|
|
829
829
|
return fromXYZ$1(toXYZ(lab));
|
|
830
830
|
}
|
|
@@ -839,7 +839,7 @@
|
|
|
839
839
|
* @see https://www.w3.org/TR/WCAG20/#relativeluminancedef
|
|
840
840
|
*/
|
|
841
841
|
function getLuma(color) {
|
|
842
|
-
const rgb =
|
|
842
|
+
const rgb = parseColor$1(color);
|
|
843
843
|
return toXYZ$1(rgb)[1];
|
|
844
844
|
}
|
|
845
845
|
|
|
@@ -1470,12 +1470,12 @@
|
|
|
1470
1470
|
|
|
1471
1471
|
function APCAcontrast(text, background) {
|
|
1472
1472
|
// Linearize sRGB
|
|
1473
|
-
const Rtxt = (
|
|
1474
|
-
const Gtxt = (
|
|
1475
|
-
const Btxt = (
|
|
1476
|
-
const Rbg = (
|
|
1477
|
-
const Gbg = (
|
|
1478
|
-
const Bbg = (
|
|
1473
|
+
const Rtxt = (text.r / 255) ** mainTRC;
|
|
1474
|
+
const Gtxt = (text.g / 255) ** mainTRC;
|
|
1475
|
+
const Btxt = (text.b / 255) ** mainTRC;
|
|
1476
|
+
const Rbg = (background.r / 255) ** mainTRC;
|
|
1477
|
+
const Gbg = (background.g / 255) ** mainTRC;
|
|
1478
|
+
const Bbg = (background.b / 255) ** mainTRC;
|
|
1479
1479
|
|
|
1480
1480
|
// Apply the standard coefficients and sum to Y
|
|
1481
1481
|
let Ytxt = Rtxt * Rco + Gtxt * Gco + Btxt * Bco;
|
|
@@ -1641,7 +1641,7 @@
|
|
|
1641
1641
|
for (const variation of ['lighten', 'darken']) {
|
|
1642
1642
|
const fn = variation === 'lighten' ? lighten : darken;
|
|
1643
1643
|
for (const amount of createRange(parsedOptions.variations[variation], 1)) {
|
|
1644
|
-
theme.colors[`${name}-${variation}-${amount}`] =
|
|
1644
|
+
theme.colors[`${name}-${variation}-${amount}`] = RGBtoHex(fn(parseColor$1(color), amount));
|
|
1645
1645
|
}
|
|
1646
1646
|
}
|
|
1647
1647
|
}
|
|
@@ -1649,9 +1649,9 @@
|
|
|
1649
1649
|
for (const color of Object.keys(theme.colors)) {
|
|
1650
1650
|
if (/^on-[a-z]/.test(color) || theme.colors[`on-${color}`]) continue;
|
|
1651
1651
|
const onColor = `on-${color}`;
|
|
1652
|
-
const colorVal =
|
|
1653
|
-
const blackContrast = Math.abs(APCAcontrast(0, colorVal));
|
|
1654
|
-
const whiteContrast = Math.abs(APCAcontrast(0xffffff, colorVal));
|
|
1652
|
+
const colorVal = parseColor$1(theme.colors[color]);
|
|
1653
|
+
const blackContrast = Math.abs(APCAcontrast(parseColor$1(0), colorVal));
|
|
1654
|
+
const whiteContrast = Math.abs(APCAcontrast(parseColor$1(0xffffff), colorVal));
|
|
1655
1655
|
|
|
1656
1656
|
// TODO: warn about poor color selections
|
|
1657
1657
|
// const contrastAsText = Math.abs(APCAcontrast(colorVal, colorToInt(theme.colors.background)))
|
|
@@ -1681,7 +1681,7 @@
|
|
|
1681
1681
|
} = theme;
|
|
1682
1682
|
createCssClass(lines, `.v-theme--${themeName}`, [`color-scheme: ${dark ? 'dark' : 'normal'}`, ...genCssVariables(theme), ...Object.keys(variables).map(key => {
|
|
1683
1683
|
const value = variables[key];
|
|
1684
|
-
const color = typeof value === 'string' && value.startsWith('#') ?
|
|
1684
|
+
const color = typeof value === 'string' && value.startsWith('#') ? parseColor$1(value) : undefined;
|
|
1685
1685
|
const rgb = color ? `${color.r}, ${color.g}, ${color.b}` : undefined;
|
|
1686
1686
|
return `--v-${key}: ${rgb ?? value}`;
|
|
1687
1687
|
})]);
|
|
@@ -1783,7 +1783,7 @@
|
|
|
1783
1783
|
const darkOverlay = theme.dark ? 1 : 2;
|
|
1784
1784
|
const variables = [];
|
|
1785
1785
|
for (const [key, value] of Object.entries(theme.colors)) {
|
|
1786
|
-
const rgb =
|
|
1786
|
+
const rgb = parseColor$1(value);
|
|
1787
1787
|
variables.push(`--v-theme-${key}: ${rgb.r},${rgb.g},${rgb.b}`);
|
|
1788
1788
|
if (!key.startsWith('on-')) {
|
|
1789
1789
|
variables.push(`--v-theme-${key}-overlay-multiplier: ${getLuma(value) > 0.18 ? lightOverlay : darkOverlay}`);
|
|
@@ -2480,8 +2480,8 @@
|
|
|
2480
2480
|
const tsx = targetBox.width / elBox.width;
|
|
2481
2481
|
const tsy = targetBox.height / elBox.height;
|
|
2482
2482
|
const maxs = Math.max(1, tsx, tsy);
|
|
2483
|
-
const sx = tsx / maxs;
|
|
2484
|
-
const sy = tsy / maxs;
|
|
2483
|
+
const sx = tsx / maxs || 0;
|
|
2484
|
+
const sy = tsy / maxs || 0;
|
|
2485
2485
|
|
|
2486
2486
|
// Animate elements larger than 12% of the screen area up to 1.5x slower
|
|
2487
2487
|
const asa = elBox.width * elBox.height / (window.innerWidth * window.innerHeight);
|
|
@@ -3147,11 +3147,6 @@
|
|
|
3147
3147
|
const isExtended = vue.ref(!!(props.extended || (_slots$extension = slots.extension) != null && _slots$extension.call(slots)));
|
|
3148
3148
|
const contentHeight = vue.computed(() => parseInt(Number(props.height) + (props.density === 'prominent' ? Number(props.height) : 0) - (props.density === 'comfortable' ? 8 : 0) - (props.density === 'compact' ? 16 : 0), 10));
|
|
3149
3149
|
const extensionHeight = vue.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);
|
|
3150
|
-
provideDefaults({
|
|
3151
|
-
VBtn: {
|
|
3152
|
-
variant: 'text'
|
|
3153
|
-
}
|
|
3154
|
-
});
|
|
3155
3150
|
useRender(() => {
|
|
3156
3151
|
var _slots$extension2, _slots$image, _slots$prepend, _slots$default, _slots$append;
|
|
3157
3152
|
const hasTitle = !!(props.title || slots.title);
|
|
@@ -3180,27 +3175,43 @@
|
|
|
3180
3175
|
}
|
|
3181
3176
|
}, {
|
|
3182
3177
|
default: () => [slots.image ? (_slots$image = slots.image) == null ? void 0 : _slots$image.call(slots) : vue.createVNode(VImg, null, null)]
|
|
3183
|
-
})]), vue.createVNode(
|
|
3184
|
-
"
|
|
3185
|
-
|
|
3186
|
-
|
|
3178
|
+
})]), vue.createVNode(VDefaultsProvider, {
|
|
3179
|
+
"defaults": {
|
|
3180
|
+
VTabs: {
|
|
3181
|
+
height: convertToUnit(contentHeight.value)
|
|
3182
|
+
}
|
|
3187
3183
|
}
|
|
3188
|
-
}, [slots.prepend && vue.createVNode("div", {
|
|
3189
|
-
"class": "v-toolbar__prepend"
|
|
3190
|
-
}, [(_slots$prepend = slots.prepend) == null ? void 0 : _slots$prepend.call(slots)]), hasTitle && vue.createVNode(VToolbarTitle, {
|
|
3191
|
-
"key": "title",
|
|
3192
|
-
"text": props.title
|
|
3193
3184
|
}, {
|
|
3194
|
-
|
|
3195
|
-
|
|
3196
|
-
"class": "v-toolbar__append"
|
|
3197
|
-
}, [(_slots$append = slots.append) == null ? void 0 : _slots$append.call(slots)])]), vue.createVNode(VExpandTransition, null, {
|
|
3198
|
-
default: () => [isExtended.value && vue.createVNode("div", {
|
|
3199
|
-
"class": "v-toolbar__extension",
|
|
3185
|
+
default: () => [vue.createVNode("div", {
|
|
3186
|
+
"class": "v-toolbar__content",
|
|
3200
3187
|
"style": {
|
|
3188
|
+
height: convertToUnit(contentHeight.value)
|
|
3189
|
+
}
|
|
3190
|
+
}, [slots.prepend && vue.createVNode("div", {
|
|
3191
|
+
"class": "v-toolbar__prepend"
|
|
3192
|
+
}, [(_slots$prepend = slots.prepend) == null ? void 0 : _slots$prepend.call(slots)]), hasTitle && vue.createVNode(VToolbarTitle, {
|
|
3193
|
+
"key": "title",
|
|
3194
|
+
"text": props.title
|
|
3195
|
+
}, {
|
|
3196
|
+
text: slots.title
|
|
3197
|
+
}), (_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots), slots.append && vue.createVNode("div", {
|
|
3198
|
+
"class": "v-toolbar__append"
|
|
3199
|
+
}, [(_slots$append = slots.append) == null ? void 0 : _slots$append.call(slots)])])]
|
|
3200
|
+
}), vue.createVNode(VDefaultsProvider, {
|
|
3201
|
+
"defaults": {
|
|
3202
|
+
VTabs: {
|
|
3201
3203
|
height: convertToUnit(extensionHeight.value)
|
|
3202
3204
|
}
|
|
3203
|
-
}
|
|
3205
|
+
}
|
|
3206
|
+
}, {
|
|
3207
|
+
default: () => [vue.createVNode(VExpandTransition, null, {
|
|
3208
|
+
default: () => [isExtended.value && vue.createVNode("div", {
|
|
3209
|
+
"class": "v-toolbar__extension",
|
|
3210
|
+
"style": {
|
|
3211
|
+
height: convertToUnit(extensionHeight.value)
|
|
3212
|
+
}
|
|
3213
|
+
}, [extension])]
|
|
3214
|
+
})]
|
|
3204
3215
|
})]
|
|
3205
3216
|
});
|
|
3206
3217
|
});
|
|
@@ -3216,7 +3227,7 @@
|
|
|
3216
3227
|
|
|
3217
3228
|
// Types
|
|
3218
3229
|
|
|
3219
|
-
const VAppBar =
|
|
3230
|
+
const VAppBar = genericComponent()({
|
|
3220
3231
|
name: 'VAppBar',
|
|
3221
3232
|
props: {
|
|
3222
3233
|
// TODO: Implement scrolling techniques
|
|
@@ -5691,7 +5702,7 @@
|
|
|
5691
5702
|
const isDisabled = vue.computed(() => !!(props.disabled || form != null && form.isDisabled.value));
|
|
5692
5703
|
const isReadonly = vue.computed(() => !!(props.readonly || form != null && form.isReadonly.value));
|
|
5693
5704
|
const errorMessages = vue.computed(() => {
|
|
5694
|
-
return props.errorMessages.length ? wrapInArray(props.errorMessages) : internalErrorMessages.value;
|
|
5705
|
+
return props.errorMessages.length ? wrapInArray(props.errorMessages.slice(0, Math.max(0, +props.maxErrors))) : internalErrorMessages.value;
|
|
5695
5706
|
});
|
|
5696
5707
|
const isValid = vue.computed(() => {
|
|
5697
5708
|
if (props.error || errorMessages.value.length) return false;
|
|
@@ -6729,7 +6740,8 @@
|
|
|
6729
6740
|
emits: {
|
|
6730
6741
|
'click:close': e => true,
|
|
6731
6742
|
'update:modelValue': value => true,
|
|
6732
|
-
'group:selected': val => true
|
|
6743
|
+
'group:selected': val => true,
|
|
6744
|
+
click: e => true
|
|
6733
6745
|
},
|
|
6734
6746
|
setup(props, _ref) {
|
|
6735
6747
|
let {
|
|
@@ -6763,10 +6775,18 @@
|
|
|
6763
6775
|
const isActive = useProxiedModel(props, 'modelValue');
|
|
6764
6776
|
const group = useGroupItem(props, VChipGroupSymbol, false);
|
|
6765
6777
|
const link = useLink(props, attrs);
|
|
6778
|
+
const isClickable = vue.computed(() => !props.disabled && (!!group || link.isClickable.value || props.link));
|
|
6766
6779
|
function onCloseClick(e) {
|
|
6767
6780
|
isActive.value = false;
|
|
6768
6781
|
emit('click:close', e);
|
|
6769
6782
|
}
|
|
6783
|
+
function onClick(e) {
|
|
6784
|
+
var _link$navigate;
|
|
6785
|
+
emit('click', e);
|
|
6786
|
+
if (!isClickable.value) return;
|
|
6787
|
+
(_link$navigate = link.navigate) == null ? void 0 : _link$navigate.call(link, e);
|
|
6788
|
+
group == null ? void 0 : group.toggle();
|
|
6789
|
+
}
|
|
6770
6790
|
return () => {
|
|
6771
6791
|
var _slots$default;
|
|
6772
6792
|
const Tag = link.isLink.value ? 'a' : props.tag;
|
|
@@ -6775,8 +6795,6 @@
|
|
|
6775
6795
|
const hasFilter = !!(slots.filter || props.filter) && group;
|
|
6776
6796
|
const hasPrepend = !!(slots.prepend || props.prependIcon || props.prependAvatar);
|
|
6777
6797
|
const hasColor = !group || group.isSelected.value;
|
|
6778
|
-
const isClickable = !props.disabled && (!!group || link.isClickable.value || props.link);
|
|
6779
|
-
const onClickFunc = props.link ? props.link : group == null ? void 0 : group.toggle;
|
|
6780
6798
|
return isActive.value && vue.withDirectives(vue.createVNode(Tag, {
|
|
6781
6799
|
"class": ['v-chip', {
|
|
6782
6800
|
'v-chip--disabled': props.disabled,
|
|
@@ -6789,9 +6807,9 @@
|
|
|
6789
6807
|
"disabled": props.disabled || undefined,
|
|
6790
6808
|
"draggable": props.draggable,
|
|
6791
6809
|
"href": link.href.value,
|
|
6792
|
-
"onClick":
|
|
6810
|
+
"onClick": onClick
|
|
6793
6811
|
}, {
|
|
6794
|
-
default: () => [genOverlays(isClickable, 'v-chip'), hasFilter && vue.createVNode(VDefaultsProvider, {
|
|
6812
|
+
default: () => [genOverlays(isClickable.value, 'v-chip'), hasFilter && vue.createVNode(VDefaultsProvider, {
|
|
6795
6813
|
"key": "filter",
|
|
6796
6814
|
"defaults": {
|
|
6797
6815
|
VIcon: {
|
|
@@ -6861,7 +6879,7 @@
|
|
|
6861
6879
|
"onClick": onCloseClick
|
|
6862
6880
|
}, [slots.close ? slots.close() : vue.createVNode(VIcon, null, null)])]
|
|
6863
6881
|
})]
|
|
6864
|
-
}), [[vue.resolveDirective("ripple"), isClickable && props.ripple, null]]);
|
|
6882
|
+
}), [[vue.resolveDirective("ripple"), isClickable.value && props.ripple, null]]);
|
|
6865
6883
|
};
|
|
6866
6884
|
}
|
|
6867
6885
|
});
|
|
@@ -7657,7 +7675,8 @@
|
|
|
7657
7675
|
"key": "prepend-icon"
|
|
7658
7676
|
}, null), (_slots$prepend = slots.prepend) == null ? void 0 : _slots$prepend.call(slots, slotProps.value)])]
|
|
7659
7677
|
}), vue.createVNode("div", {
|
|
7660
|
-
"class": "v-list-item__content"
|
|
7678
|
+
"class": "v-list-item__content",
|
|
7679
|
+
"data-no-activator": ""
|
|
7661
7680
|
}, [hasTitle && vue.createVNode(VListItemTitle, {
|
|
7662
7681
|
"key": "title"
|
|
7663
7682
|
}, {
|
|
@@ -8540,7 +8559,9 @@
|
|
|
8540
8559
|
updateLocation.value = undefined;
|
|
8541
8560
|
if (!(IN_BROWSER && data.isActive.value && props.locationStrategy)) return;
|
|
8542
8561
|
scope = vue.effectScope();
|
|
8543
|
-
|
|
8562
|
+
if (!(props.locationStrategy === 'connected')) {
|
|
8563
|
+
await vue.nextTick();
|
|
8564
|
+
}
|
|
8544
8565
|
scope.run(() => {
|
|
8545
8566
|
if (typeof props.locationStrategy === 'function') {
|
|
8546
8567
|
var _props$locationStrate;
|
|
@@ -11750,13 +11771,13 @@
|
|
|
11750
11771
|
let hsva = null;
|
|
11751
11772
|
if (typeof color === 'string') {
|
|
11752
11773
|
const hex = parseHex(color);
|
|
11753
|
-
hsva =
|
|
11774
|
+
hsva = HexToHSV(hex);
|
|
11754
11775
|
}
|
|
11755
11776
|
if (typeof color === 'object') {
|
|
11756
11777
|
if (has(color, ['r', 'g', 'b'])) {
|
|
11757
|
-
hsva =
|
|
11778
|
+
hsva = RGBtoHSV(color);
|
|
11758
11779
|
} else if (has(color, ['h', 's', 'l'])) {
|
|
11759
|
-
hsva =
|
|
11780
|
+
hsva = HSLtoHSV(color);
|
|
11760
11781
|
} else if (has(color, ['h', 's', 'v'])) {
|
|
11761
11782
|
hsva = color;
|
|
11762
11783
|
}
|
|
@@ -11778,12 +11799,12 @@
|
|
|
11778
11799
|
}
|
|
11779
11800
|
function extractColor(color, input) {
|
|
11780
11801
|
if (input == null || typeof input === 'string') {
|
|
11781
|
-
const hex =
|
|
11802
|
+
const hex = HSVtoHex(color);
|
|
11782
11803
|
if (color.a === 1) return hex.slice(0, 7);else return hex;
|
|
11783
11804
|
}
|
|
11784
11805
|
if (typeof input === 'object') {
|
|
11785
11806
|
let converted;
|
|
11786
|
-
if (has(input, ['r', 'g', 'b'])) converted =
|
|
11807
|
+
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;
|
|
11787
11808
|
return stripAlpha(converted, !has(input, ['a']));
|
|
11788
11809
|
}
|
|
11789
11810
|
return color;
|
|
@@ -11830,14 +11851,19 @@
|
|
|
11830
11851
|
label: 'A',
|
|
11831
11852
|
max: 1,
|
|
11832
11853
|
step: 0.01,
|
|
11833
|
-
getValue:
|
|
11854
|
+
getValue: _ref => {
|
|
11855
|
+
let {
|
|
11856
|
+
a
|
|
11857
|
+
} = _ref;
|
|
11858
|
+
return a ? Math.round(a * 100) / 100 : 1;
|
|
11859
|
+
},
|
|
11834
11860
|
getColor: (c, v) => ({
|
|
11835
11861
|
...c,
|
|
11836
11862
|
a: Number(v)
|
|
11837
11863
|
})
|
|
11838
11864
|
}],
|
|
11839
|
-
to:
|
|
11840
|
-
from:
|
|
11865
|
+
to: HSVtoRGB,
|
|
11866
|
+
from: RGBtoHSV
|
|
11841
11867
|
};
|
|
11842
11868
|
const rgb = {
|
|
11843
11869
|
...rgba,
|
|
@@ -11879,14 +11905,19 @@
|
|
|
11879
11905
|
label: 'A',
|
|
11880
11906
|
max: 1,
|
|
11881
11907
|
step: 0.01,
|
|
11882
|
-
getValue:
|
|
11908
|
+
getValue: _ref2 => {
|
|
11909
|
+
let {
|
|
11910
|
+
a
|
|
11911
|
+
} = _ref2;
|
|
11912
|
+
return a ? Math.round(a * 100) / 100 : 1;
|
|
11913
|
+
},
|
|
11883
11914
|
getColor: (c, v) => ({
|
|
11884
11915
|
...c,
|
|
11885
11916
|
a: Number(v)
|
|
11886
11917
|
})
|
|
11887
11918
|
}],
|
|
11888
|
-
to:
|
|
11889
|
-
from:
|
|
11919
|
+
to: HSVtoHSL,
|
|
11920
|
+
from: HSLtoHSV
|
|
11890
11921
|
};
|
|
11891
11922
|
const hsl = {
|
|
11892
11923
|
...hsla,
|
|
@@ -11901,8 +11932,8 @@
|
|
|
11901
11932
|
getValue: c => c,
|
|
11902
11933
|
getColor: (c, v) => v
|
|
11903
11934
|
}],
|
|
11904
|
-
to:
|
|
11905
|
-
from:
|
|
11935
|
+
to: HSVtoHex,
|
|
11936
|
+
from: HexToHSV
|
|
11906
11937
|
};
|
|
11907
11938
|
const hex = {
|
|
11908
11939
|
...hexa,
|
|
@@ -12668,7 +12699,7 @@
|
|
|
12668
12699
|
"class": "v-color-picker-preview__dot"
|
|
12669
12700
|
}, [vue.createVNode("div", {
|
|
12670
12701
|
"style": {
|
|
12671
|
-
background:
|
|
12702
|
+
background: HSVtoCSS(props.color ?? nullColor)
|
|
12672
12703
|
}
|
|
12673
12704
|
}, null)]), vue.createVNode("div", {
|
|
12674
12705
|
"class": "v-color-picker-preview__sliders"
|
|
@@ -13209,7 +13240,7 @@
|
|
|
13209
13240
|
"theme": props.theme,
|
|
13210
13241
|
"class": ['v-color-picker'],
|
|
13211
13242
|
"style": {
|
|
13212
|
-
'--v-color-picker-color-hsv':
|
|
13243
|
+
'--v-color-picker-color-hsv': HSVtoCSS({
|
|
13213
13244
|
...(currentColor.value ?? nullColor),
|
|
13214
13245
|
a: 1
|
|
13215
13246
|
})
|
|
@@ -14222,7 +14253,7 @@
|
|
|
14222
14253
|
useRender(() => vue.createVNode(props.tag, {
|
|
14223
14254
|
"ref": resizeRef,
|
|
14224
14255
|
"class": ['v-footer', themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value],
|
|
14225
|
-
"style": [backgroundColorStyles, props.app ? layoutItemStyles.value : undefined]
|
|
14256
|
+
"style": [backgroundColorStyles.value, props.app ? layoutItemStyles.value : undefined]
|
|
14226
14257
|
}, slots));
|
|
14227
14258
|
return {};
|
|
14228
14259
|
}
|
|
@@ -14784,7 +14815,8 @@
|
|
|
14784
14815
|
"style": dimensionStyles.value
|
|
14785
14816
|
}, {
|
|
14786
14817
|
default: () => [isActive.value && vue.createVNode(MaybeTransition, {
|
|
14787
|
-
"transition": props.transition
|
|
14818
|
+
"transition": props.transition,
|
|
14819
|
+
"appear": true
|
|
14788
14820
|
}, {
|
|
14789
14821
|
default: () => [(_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots)]
|
|
14790
14822
|
})]
|
|
@@ -15244,7 +15276,7 @@
|
|
|
15244
15276
|
const isTemporary = vue.computed(() => !props.permanent && (mobile.value || props.temporary));
|
|
15245
15277
|
const isSticky = vue.computed(() => props.sticky && !isTemporary.value && location.value !== 'bottom');
|
|
15246
15278
|
if (!props.disableResizeWatcher) {
|
|
15247
|
-
vue.watch(isTemporary, val => !props.permanent && (isActive.value = !val));
|
|
15279
|
+
vue.watch(isTemporary, val => !props.permanent && vue.nextTick(() => isActive.value = !val));
|
|
15248
15280
|
}
|
|
15249
15281
|
if (!props.disableRouteWatcher && router) {
|
|
15250
15282
|
vue.watch(router.currentRoute, () => isTemporary.value && (isActive.value = false));
|
|
@@ -15872,8 +15904,7 @@
|
|
|
15872
15904
|
isReadonly
|
|
15873
15905
|
} = _ref2;
|
|
15874
15906
|
return vue.createVNode(vue.Fragment, null, [label && vue.createVNode(VLabel, {
|
|
15875
|
-
"for": id.value
|
|
15876
|
-
"clickable": true
|
|
15907
|
+
"for": id.value
|
|
15877
15908
|
}, {
|
|
15878
15909
|
default: () => [label]
|
|
15879
15910
|
}), vue.createVNode(VSelectionControlGroup, vue.mergeProps(controlProps, {
|
|
@@ -18167,7 +18198,7 @@
|
|
|
18167
18198
|
locale
|
|
18168
18199
|
};
|
|
18169
18200
|
}
|
|
18170
|
-
const version$1 = "3.0.
|
|
18201
|
+
const version$1 = "3.0.4";
|
|
18171
18202
|
createVuetify$1.version = version$1;
|
|
18172
18203
|
|
|
18173
18204
|
// Vue's inject() can only be used in setup
|
|
@@ -18188,7 +18219,7 @@
|
|
|
18188
18219
|
...options
|
|
18189
18220
|
});
|
|
18190
18221
|
};
|
|
18191
|
-
const version = "3.0.
|
|
18222
|
+
const version = "3.0.4";
|
|
18192
18223
|
createVuetify.version = version;
|
|
18193
18224
|
|
|
18194
18225
|
exports.components = components;
|