@vuetify/nightly 3.4.0-dev.2023-11-09 → 3.4.0-dev.2023-12-01

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/vuetify.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.4.0-dev.2023-11-09
2
+ * Vuetify v3.4.0-dev.2023-12-01
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -2993,6 +2993,101 @@
2993
2993
 
2994
2994
  // Types
2995
2995
 
2996
+ // Composables
2997
+ function useColor(colors) {
2998
+ return destructComputed(() => {
2999
+ const classes = [];
3000
+ const styles = {};
3001
+ if (colors.value.background) {
3002
+ if (isCssColor(colors.value.background)) {
3003
+ styles.backgroundColor = colors.value.background;
3004
+ if (!colors.value.text && isParsableColor(colors.value.background)) {
3005
+ const backgroundColor = parseColor(colors.value.background);
3006
+ if (backgroundColor.a == null || backgroundColor.a === 1) {
3007
+ const textColor = getForeground(backgroundColor);
3008
+ styles.color = textColor;
3009
+ styles.caretColor = textColor;
3010
+ }
3011
+ }
3012
+ } else {
3013
+ classes.push(`bg-${colors.value.background}`);
3014
+ }
3015
+ }
3016
+ if (colors.value.text) {
3017
+ if (isCssColor(colors.value.text)) {
3018
+ styles.color = colors.value.text;
3019
+ styles.caretColor = colors.value.text;
3020
+ } else {
3021
+ classes.push(`text-${colors.value.text}`);
3022
+ }
3023
+ }
3024
+ return {
3025
+ colorClasses: classes,
3026
+ colorStyles: styles
3027
+ };
3028
+ });
3029
+ }
3030
+ function useTextColor(props, name) {
3031
+ const colors = vue.computed(() => ({
3032
+ text: vue.isRef(props) ? props.value : name ? props[name] : null
3033
+ }));
3034
+ const {
3035
+ colorClasses: textColorClasses,
3036
+ colorStyles: textColorStyles
3037
+ } = useColor(colors);
3038
+ return {
3039
+ textColorClasses,
3040
+ textColorStyles
3041
+ };
3042
+ }
3043
+ function useBackgroundColor(props, name) {
3044
+ const colors = vue.computed(() => ({
3045
+ background: vue.isRef(props) ? props.value : name ? props[name] : null
3046
+ }));
3047
+ const {
3048
+ colorClasses: backgroundColorClasses,
3049
+ colorStyles: backgroundColorStyles
3050
+ } = useColor(colors);
3051
+ return {
3052
+ backgroundColorClasses,
3053
+ backgroundColorStyles
3054
+ };
3055
+ }
3056
+
3057
+ // Utilities
3058
+
3059
+ // Types
3060
+
3061
+ // Composables
3062
+ const makeRoundedProps = propsFactory({
3063
+ rounded: {
3064
+ type: [Boolean, Number, String],
3065
+ default: undefined
3066
+ }
3067
+ }, 'rounded');
3068
+ function useRounded(props) {
3069
+ let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();
3070
+ const roundedClasses = vue.computed(() => {
3071
+ const rounded = vue.isRef(props) ? props.value : props.rounded;
3072
+ const classes = [];
3073
+ if (rounded === true || rounded === '') {
3074
+ classes.push(`${name}--rounded`);
3075
+ } else if (typeof rounded === 'string' || rounded === 0) {
3076
+ for (const value of String(rounded).split(' ')) {
3077
+ classes.push(`rounded-${value}`);
3078
+ }
3079
+ }
3080
+ return classes;
3081
+ });
3082
+ return {
3083
+ roundedClasses
3084
+ };
3085
+ }
3086
+
3087
+ // Utilities
3088
+
3089
+ // Types
3090
+
2996
3091
  const makeTransitionProps = propsFactory({
2997
3092
  transition: {
2998
3093
  type: [Boolean, String, Object],
@@ -3073,6 +3168,7 @@
3073
3168
  const makeVImgProps = propsFactory({
3074
3169
  alt: String,
3075
3170
  cover: Boolean,
3171
+ color: String,
3076
3172
  draggable: {
3077
3173
  type: [Boolean, String],
3078
3174
  default: undefined
@@ -3101,6 +3197,7 @@
3101
3197
  position: String,
3102
3198
  ...makeVResponsiveProps(),
3103
3199
  ...makeComponentProps(),
3200
+ ...makeRoundedProps(),
3104
3201
  ...makeTransitionProps()
3105
3202
  }, 'VImg');
3106
3203
  const VImg = genericComponent()({
@@ -3119,6 +3216,13 @@
3119
3216
  emit,
3120
3217
  slots
3121
3218
  } = _ref;
3219
+ const {
3220
+ backgroundColorClasses,
3221
+ backgroundColorStyles
3222
+ } = useBackgroundColor(vue.toRef(props, 'color'));
3223
+ const {
3224
+ roundedClasses
3225
+ } = useRounded(props);
3122
3226
  const currentSrc = vue.shallowRef(''); // Set from srcset
3123
3227
  const image = vue.ref();
3124
3228
  const state = vue.shallowRef(props.eager ? 'loading' : 'idle');
@@ -3311,10 +3415,10 @@
3311
3415
  return vue.withDirectives(vue.createVNode(VResponsive, vue.mergeProps({
3312
3416
  "class": ['v-img', {
3313
3417
  'v-img--booting': !isBooted.value
3314
- }, props.class],
3418
+ }, backgroundColorClasses.value, roundedClasses.value, props.class],
3315
3419
  "style": [{
3316
3420
  width: convertToUnit(props.width === 'auto' ? naturalWidth.value : props.width)
3317
- }, props.style]
3421
+ }, backgroundColorStyles.value, props.style]
3318
3422
  }, responsiveProps, {
3319
3423
  "aspectRatio": aspectRatio.value,
3320
3424
  "aria-label": props.alt,
@@ -3370,71 +3474,6 @@
3370
3474
 
3371
3475
  // Types
3372
3476
 
3373
- // Composables
3374
- function useColor(colors) {
3375
- return destructComputed(() => {
3376
- const classes = [];
3377
- const styles = {};
3378
- if (colors.value.background) {
3379
- if (isCssColor(colors.value.background)) {
3380
- styles.backgroundColor = colors.value.background;
3381
- if (!colors.value.text && isParsableColor(colors.value.background)) {
3382
- const backgroundColor = parseColor(colors.value.background);
3383
- if (backgroundColor.a == null || backgroundColor.a === 1) {
3384
- const textColor = getForeground(backgroundColor);
3385
- styles.color = textColor;
3386
- styles.caretColor = textColor;
3387
- }
3388
- }
3389
- } else {
3390
- classes.push(`bg-${colors.value.background}`);
3391
- }
3392
- }
3393
- if (colors.value.text) {
3394
- if (isCssColor(colors.value.text)) {
3395
- styles.color = colors.value.text;
3396
- styles.caretColor = colors.value.text;
3397
- } else {
3398
- classes.push(`text-${colors.value.text}`);
3399
- }
3400
- }
3401
- return {
3402
- colorClasses: classes,
3403
- colorStyles: styles
3404
- };
3405
- });
3406
- }
3407
- function useTextColor(props, name) {
3408
- const colors = vue.computed(() => ({
3409
- text: vue.isRef(props) ? props.value : name ? props[name] : null
3410
- }));
3411
- const {
3412
- colorClasses: textColorClasses,
3413
- colorStyles: textColorStyles
3414
- } = useColor(colors);
3415
- return {
3416
- textColorClasses,
3417
- textColorStyles
3418
- };
3419
- }
3420
- function useBackgroundColor(props, name) {
3421
- const colors = vue.computed(() => ({
3422
- background: vue.isRef(props) ? props.value : name ? props[name] : null
3423
- }));
3424
- const {
3425
- colorClasses: backgroundColorClasses,
3426
- colorStyles: backgroundColorStyles
3427
- } = useColor(colors);
3428
- return {
3429
- backgroundColorClasses,
3430
- backgroundColorStyles
3431
- };
3432
- }
3433
-
3434
- // Utilities
3435
-
3436
- // Types
3437
-
3438
3477
  // Composables
3439
3478
  const makeElevationProps = propsFactory({
3440
3479
  elevation: {
@@ -3461,36 +3500,6 @@
3461
3500
  };
3462
3501
  }
3463
3502
 
3464
- // Utilities
3465
-
3466
- // Types
3467
-
3468
- // Composables
3469
- const makeRoundedProps = propsFactory({
3470
- rounded: {
3471
- type: [Boolean, Number, String],
3472
- default: undefined
3473
- }
3474
- }, 'rounded');
3475
- function useRounded(props) {
3476
- let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();
3477
- const roundedClasses = vue.computed(() => {
3478
- const rounded = vue.isRef(props) ? props.value : props.rounded;
3479
- const classes = [];
3480
- if (rounded === true || rounded === '') {
3481
- classes.push(`${name}--rounded`);
3482
- } else if (typeof rounded === 'string' || rounded === 0) {
3483
- for (const value of String(rounded).split(' ')) {
3484
- classes.push(`rounded-${value}`);
3485
- }
3486
- }
3487
- return classes;
3488
- });
3489
- return {
3490
- roundedClasses
3491
- };
3492
- }
3493
-
3494
3503
  // Types
3495
3504
 
3496
3505
  const allowedDensities$1 = [null, 'prominent', 'default', 'comfortable', 'compact'];
@@ -25107,7 +25116,7 @@
25107
25116
  date
25108
25117
  };
25109
25118
  }
25110
- const version$1 = "3.4.0-dev.2023-11-09";
25119
+ const version$1 = "3.4.0-dev.2023-12-01";
25111
25120
  createVuetify$1.version = version$1;
25112
25121
 
25113
25122
  // Vue's inject() can only be used in setup
@@ -25132,7 +25141,7 @@
25132
25141
  ...options
25133
25142
  });
25134
25143
  };
25135
- const version = "3.4.0-dev.2023-11-09";
25144
+ const version = "3.4.0-dev.2023-12-01";
25136
25145
  createVuetify.version = version;
25137
25146
 
25138
25147
  exports.components = components;