@vuetify/nightly 3.3.9-master.2023-07-20 → 3.3.9-master.2023-07-22

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/CHANGELOG.md CHANGED
@@ -1,13 +1,16 @@
1
- # [](https://github.com/vuetifyjs/vuetify/compare/v3.3.9-master.2023-07-20...v) (2023-07-20)
1
+ # [](https://github.com/vuetifyjs/vuetify/compare/v3.3.9-master.2023-07-22...v) (2023-07-22)
2
2
 
3
3
 
4
4
 
5
- ## [3.3.9-master.2023-07-20](https://github.com/vuetifyjs/vuetify/compare/v3.3.9...v3.3.9-master.2023-07-20) (2023-07-20)
5
+ ## [3.3.9-master.2023-07-22](https://github.com/vuetifyjs/vuetify/compare/v3.3.9...v3.3.9-master.2023-07-22) (2023-07-22)
6
6
 
7
7
 
8
8
  ### Bug Fixes
9
9
 
10
+ * **useDefaults:** return generic argument ([0722960](https://github.com/vuetifyjs/vuetify/commit/0722960fa1a1c2a8ff2ecae0f1f5d64fd46a64af))
10
11
  * **VNavigationDrawer:** correctly remove scroll listener on unmount ([dfc257f](https://github.com/vuetifyjs/vuetify/commit/dfc257f3b48fb9bf1d2955c810781d823f54f0b0))
12
+ * **VSelect:** support browser autofill ([e99f6fd](https://github.com/vuetifyjs/vuetify/commit/e99f6fd25ccc19970f63805f8d0cdda96d036255)), closes [#5936](https://github.com/vuetifyjs/vuetify/issues/5936)
13
+ * **VTextarea:** don't hide auto-grow scrollbar ([0a03a43](https://github.com/vuetifyjs/vuetify/commit/0a03a4377b004ad797be536d43203dd3034bbc03))
11
14
 
12
15
 
13
16
 
@@ -2,7 +2,7 @@
2
2
  "$schema": "http://json.schemastore.org/web-types",
3
3
  "framework": "vue",
4
4
  "name": "vuetify",
5
- "version": "3.3.9-master.2023-07-20",
5
+ "version": "3.3.9-master.2023-07-22",
6
6
  "contributions": {
7
7
  "html": {
8
8
  "types-syntax": "typescript",
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.3.9-master.2023-07-20
2
+ * Vuetify v3.3.9-master.2023-07-22
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -17069,6 +17069,77 @@ html.overflow-y-hidden {
17069
17069
  .v-avatar .v-img {
17070
17070
  height: 100%;
17071
17071
  width: 100%;
17072
+ }.v-badge {
17073
+ display: inline-block;
17074
+ line-height: 1;
17075
+ }
17076
+
17077
+ .v-badge__badge {
17078
+ align-items: center;
17079
+ display: inline-flex;
17080
+ border-radius: 10px;
17081
+ font-size: 0.75rem;
17082
+ font-weight: 500;
17083
+ height: 1.25rem;
17084
+ justify-content: center;
17085
+ min-width: 20px;
17086
+ padding: 4px 6px;
17087
+ pointer-events: auto;
17088
+ position: absolute;
17089
+ text-align: center;
17090
+ text-indent: 0;
17091
+ transition: 0.225s cubic-bezier(0.4, 0, 0.2, 1);
17092
+ white-space: nowrap;
17093
+ background: rgb(var(--v-theme-surface-variant));
17094
+ color: rgba(var(--v-theme-on-surface-variant), var(--v-high-emphasis-opacity));
17095
+ }
17096
+ .v-badge--bordered .v-badge__badge::after {
17097
+ border-radius: inherit;
17098
+ border-style: solid;
17099
+ border-width: 2px;
17100
+ bottom: 0;
17101
+ color: rgb(var(--v-theme-background));
17102
+ content: "";
17103
+ left: 0;
17104
+ position: absolute;
17105
+ right: 0;
17106
+ top: 0;
17107
+ transform: scale(1.2);
17108
+ }
17109
+ .v-badge--dot .v-badge__badge {
17110
+ border-radius: 4.5px;
17111
+ height: 9px;
17112
+ min-width: 0;
17113
+ padding: 0;
17114
+ width: 9px;
17115
+ }
17116
+ .v-badge--dot .v-badge__badge::after {
17117
+ border-width: 1.5px;
17118
+ }
17119
+ .v-badge--inline .v-badge__badge {
17120
+ position: relative;
17121
+ vertical-align: middle;
17122
+ }
17123
+ .v-badge__badge .v-icon {
17124
+ color: inherit;
17125
+ font-size: 0.75rem;
17126
+ margin: 0 -2px;
17127
+ }
17128
+ .v-badge__badge img,
17129
+ .v-badge__badge .v-img {
17130
+ height: 100%;
17131
+ width: 100%;
17132
+ }
17133
+
17134
+ .v-badge__wrapper {
17135
+ display: flex;
17136
+ position: relative;
17137
+ }
17138
+ .v-badge--inline .v-badge__wrapper {
17139
+ align-items: center;
17140
+ display: inline-flex;
17141
+ justify-content: center;
17142
+ margin: 0 4px;
17072
17143
  }.v-banner {
17073
17144
  display: grid;
17074
17145
  flex: 1 1;
@@ -17225,77 +17296,6 @@ html.overflow-y-hidden {
17225
17296
  }
17226
17297
  .v-banner--two-line .v-banner-text, .v-banner--three-line .v-banner-text {
17227
17298
  align-self: flex-start;
17228
- }.v-badge {
17229
- display: inline-block;
17230
- line-height: 1;
17231
- }
17232
-
17233
- .v-badge__badge {
17234
- align-items: center;
17235
- display: inline-flex;
17236
- border-radius: 10px;
17237
- font-size: 0.75rem;
17238
- font-weight: 500;
17239
- height: 1.25rem;
17240
- justify-content: center;
17241
- min-width: 20px;
17242
- padding: 4px 6px;
17243
- pointer-events: auto;
17244
- position: absolute;
17245
- text-align: center;
17246
- text-indent: 0;
17247
- transition: 0.225s cubic-bezier(0.4, 0, 0.2, 1);
17248
- white-space: nowrap;
17249
- background: rgb(var(--v-theme-surface-variant));
17250
- color: rgba(var(--v-theme-on-surface-variant), var(--v-high-emphasis-opacity));
17251
- }
17252
- .v-badge--bordered .v-badge__badge::after {
17253
- border-radius: inherit;
17254
- border-style: solid;
17255
- border-width: 2px;
17256
- bottom: 0;
17257
- color: rgb(var(--v-theme-background));
17258
- content: "";
17259
- left: 0;
17260
- position: absolute;
17261
- right: 0;
17262
- top: 0;
17263
- transform: scale(1.2);
17264
- }
17265
- .v-badge--dot .v-badge__badge {
17266
- border-radius: 4.5px;
17267
- height: 9px;
17268
- min-width: 0;
17269
- padding: 0;
17270
- width: 9px;
17271
- }
17272
- .v-badge--dot .v-badge__badge::after {
17273
- border-width: 1.5px;
17274
- }
17275
- .v-badge--inline .v-badge__badge {
17276
- position: relative;
17277
- vertical-align: middle;
17278
- }
17279
- .v-badge__badge .v-icon {
17280
- color: inherit;
17281
- font-size: 0.75rem;
17282
- margin: 0 -2px;
17283
- }
17284
- .v-badge__badge img,
17285
- .v-badge__badge .v-img {
17286
- height: 100%;
17287
- width: 100%;
17288
- }
17289
-
17290
- .v-badge__wrapper {
17291
- display: flex;
17292
- position: relative;
17293
- }
17294
- .v-badge--inline .v-badge__wrapper {
17295
- align-items: center;
17296
- display: inline-flex;
17297
- justify-content: center;
17298
- margin: 0 4px;
17299
17299
  }.v-bottom-navigation {
17300
17300
  display: flex;
17301
17301
  max-width: 100%;
@@ -21978,6 +21978,7 @@ html.v-overlay-scroll-blocked {
21978
21978
  width: 100%;
21979
21979
  transition: none;
21980
21980
  pointer-events: none;
21981
+ caret-color: transparent;
21981
21982
  }
21982
21983
  .v-select .v-field--dirty .v-select__selection {
21983
21984
  margin-inline-end: 2px;
@@ -22385,44 +22386,6 @@ html.v-overlay-scroll-blocked {
22385
22386
  }
22386
22387
  .v-switch.v-switch--inset .v-selection-control__wrapper {
22387
22388
  width: auto;
22388
- }.v-system-bar {
22389
- align-items: center;
22390
- display: flex;
22391
- flex: 1 1 auto;
22392
- height: 24px;
22393
- justify-content: flex-end;
22394
- max-width: 100%;
22395
- padding-inline-start: 8px;
22396
- padding-inline-end: 8px;
22397
- position: relative;
22398
- text-align: end;
22399
- width: 100%;
22400
- box-shadow: 0px 0px 0px 0px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, 0.2)), 0px 0px 0px 0px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, 0.14)), 0px 0px 0px 0px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, 0.12));
22401
- background: rgba(var(--v-theme-on-surface-variant));
22402
- color: rgba(var(--v-theme-on-surface), var(--v-medium-emphasis-opacity));
22403
- font-size: 0.75rem;
22404
- font-weight: 400;
22405
- letter-spacing: 0.0333333333em;
22406
- line-height: 1.25rem;
22407
- text-transform: none;
22408
- }
22409
- .v-system-bar .v-icon {
22410
- opacity: var(--v-medium-emphasis-opacity);
22411
- }
22412
- .v-system-bar--absolute {
22413
- position: absolute;
22414
- }
22415
- .v-system-bar--fixed {
22416
- position: fixed;
22417
- }
22418
- .v-system-bar--rounded {
22419
- border-radius: 0;
22420
- }
22421
- .v-system-bar--window {
22422
- height: 32px;
22423
- }
22424
- .v-system-bar:not(.v-system-bar--absolute) {
22425
- padding-inline-end: calc(var(--v-scrollbar-offset) + 8px);
22426
22389
  }.v-tabs {
22427
22390
  display: flex;
22428
22391
  height: var(--v-tabs-height);
@@ -22489,6 +22452,44 @@ html.v-overlay-scroll-blocked {
22489
22452
  .v-tabs.v-slide-group--is-overflowing.v-slide-group--horizontal:not(.v-slide-group--has-affixes) .v-tab:last-child {
22490
22453
  margin-inline-end: 52px;
22491
22454
  }
22455
+ }.v-system-bar {
22456
+ align-items: center;
22457
+ display: flex;
22458
+ flex: 1 1 auto;
22459
+ height: 24px;
22460
+ justify-content: flex-end;
22461
+ max-width: 100%;
22462
+ padding-inline-start: 8px;
22463
+ padding-inline-end: 8px;
22464
+ position: relative;
22465
+ text-align: end;
22466
+ width: 100%;
22467
+ box-shadow: 0px 0px 0px 0px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, 0.2)), 0px 0px 0px 0px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, 0.14)), 0px 0px 0px 0px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, 0.12));
22468
+ background: rgba(var(--v-theme-on-surface-variant));
22469
+ color: rgba(var(--v-theme-on-surface), var(--v-medium-emphasis-opacity));
22470
+ font-size: 0.75rem;
22471
+ font-weight: 400;
22472
+ letter-spacing: 0.0333333333em;
22473
+ line-height: 1.25rem;
22474
+ text-transform: none;
22475
+ }
22476
+ .v-system-bar .v-icon {
22477
+ opacity: var(--v-medium-emphasis-opacity);
22478
+ }
22479
+ .v-system-bar--absolute {
22480
+ position: absolute;
22481
+ }
22482
+ .v-system-bar--fixed {
22483
+ position: fixed;
22484
+ }
22485
+ .v-system-bar--rounded {
22486
+ border-radius: 0;
22487
+ }
22488
+ .v-system-bar--window {
22489
+ height: 32px;
22490
+ }
22491
+ .v-system-bar:not(.v-system-bar--absolute) {
22492
+ padding-inline-end: calc(var(--v-scrollbar-offset) + 8px);
22492
22493
  }.v-tab.v-tab {
22493
22494
  --v-btn-height: var(--v-tabs-height);
22494
22495
  min-width: 90px;
@@ -22665,9 +22666,6 @@ html.v-overlay-scroll-blocked {
22665
22666
  min-height: 0 !important;
22666
22667
  pointer-events: none;
22667
22668
  }
22668
- .v-textarea--auto-grow .v-field__input {
22669
- overflow: hidden;
22670
- }
22671
22669
  .v-textarea--no-resize .v-field__input {
22672
22670
  resize: none;
22673
22671
  }
@@ -219,7 +219,8 @@ type DefaultsInstance = undefined | {
219
219
  global?: Record<string, unknown>;
220
220
  };
221
221
  type DefaultsOptions = Partial<DefaultsInstance>;
222
- declare function useDefaults(props?: Record<string, any>, name?: string): Record<string, any>;
222
+ declare function useDefaults<T extends Record<string, any>>(props: T, name?: string): T;
223
+ declare function useDefaults(props?: undefined, name?: string): Record<string, any>;
223
224
 
224
225
  type IconValue = string | (string | [path: string, opacity: number])[] | JSXComponent;
225
226
  declare const IconValue: PropType<IconValue>;
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.3.9-master.2023-07-20
2
+ * Vuetify v3.3.9-master.2023-07-22
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -9721,6 +9721,20 @@ function forwardRefs(target) {
9721
9721
  }
9722
9722
  return false;
9723
9723
  },
9724
+ set(target, key, value) {
9725
+ if (Reflect.has(target, key)) {
9726
+ return Reflect.set(target, key, value);
9727
+ }
9728
+
9729
+ // Skip internal properties
9730
+ if (typeof key === 'symbol' || key.startsWith('__')) return false;
9731
+ for (const ref of refs) {
9732
+ if (ref.value && Reflect.has(ref.value, key)) {
9733
+ return Reflect.set(ref.value, key, value);
9734
+ }
9735
+ }
9736
+ return false;
9737
+ },
9724
9738
  getOwnPropertyDescriptor(target, key) {
9725
9739
  const descriptor = Reflect.getOwnPropertyDescriptor(target, key);
9726
9740
  if (descriptor) return descriptor;
@@ -10811,7 +10825,7 @@ const VSelect = genericComponent()({
10811
10825
  menu.value = !menu.value;
10812
10826
  }
10813
10827
  function onKeydown(e) {
10814
- if (props.readonly || form?.isReadonly.value) return;
10828
+ if (!e.key || props.readonly || form?.isReadonly.value) return;
10815
10829
  if (['Enter', ' ', 'ArrowDown', 'ArrowUp', 'Home', 'End'].includes(e.key)) {
10816
10830
  e.preventDefault();
10817
10831
  }
@@ -10875,6 +10889,16 @@ const VSelect = genericComponent()({
10875
10889
  function onFocusin(e) {
10876
10890
  isFocused.value = true;
10877
10891
  }
10892
+ function onModelUpdate(v) {
10893
+ if (v == null) model.value = [];else if (vTextFieldRef.value?.matches(':autofill') || vTextFieldRef.value?.matches(':-webkit-autofill')) {
10894
+ const item = items.value.find(item => item.title === v);
10895
+ if (item) {
10896
+ select(item);
10897
+ }
10898
+ } else if (vTextFieldRef.value) {
10899
+ vTextFieldRef.value.value = '';
10900
+ }
10901
+ }
10878
10902
  useRender(() => {
10879
10903
  const hasChips = !!(props.chips || slots.chip);
10880
10904
  const hasList = !!(!props.hideNoData || displayItems.value.length || slots['prepend-item'] || slots['append-item'] || slots['no-data']);
@@ -10885,9 +10909,7 @@ const VSelect = genericComponent()({
10885
10909
  "ref": vTextFieldRef
10886
10910
  }, textFieldProps, {
10887
10911
  "modelValue": model.value.map(v => v.props.value).join(', '),
10888
- "onUpdate:modelValue": v => {
10889
- if (v == null) model.value = [];
10890
- },
10912
+ "onUpdate:modelValue": onModelUpdate,
10891
10913
  "focused": isFocused.value,
10892
10914
  "onUpdate:focused": $event => isFocused.value = $event,
10893
10915
  "validationValue": model.externalValue,
@@ -10900,7 +10922,7 @@ const VSelect = genericComponent()({
10900
10922
  'v-select--selection-slot': !!slots.selection
10901
10923
  }, props.class],
10902
10924
  "style": props.style,
10903
- "readonly": true,
10925
+ "inputmode": "none",
10904
10926
  "placeholder": placeholder,
10905
10927
  "onClick:clear": onClear,
10906
10928
  "onMousedown:control": onMousedownControl,
@@ -11322,6 +11344,14 @@ const VAutocomplete = genericComponent()({
11322
11344
  function onInput(e) {
11323
11345
  search.value = e.target.value;
11324
11346
  }
11347
+ function onChange(e) {
11348
+ if (vTextFieldRef.value?.matches(':autofill') || vTextFieldRef.value?.matches(':-webkit-autofill')) {
11349
+ const item = items.value.find(item => item.title === e.target.value);
11350
+ if (item) {
11351
+ select(item);
11352
+ }
11353
+ }
11354
+ }
11325
11355
  function onAfterLeave() {
11326
11356
  if (isFocused.value) {
11327
11357
  isPristine.value = true;
@@ -11401,6 +11431,7 @@ const VAutocomplete = genericComponent()({
11401
11431
  "validationValue": model.externalValue,
11402
11432
  "dirty": isDirty,
11403
11433
  "onInput": onInput,
11434
+ "onChange": onChange,
11404
11435
  "class": ['v-autocomplete', `v-autocomplete--${props.multiple ? 'multiple' : 'single'}`, {
11405
11436
  'v-autocomplete--active-menu': menu.value,
11406
11437
  'v-autocomplete--chips': !!props.chips,
@@ -23663,7 +23694,7 @@ function createVuetify$1() {
23663
23694
  date
23664
23695
  };
23665
23696
  }
23666
- const version$1 = "3.3.9-master.2023-07-20";
23697
+ const version$1 = "3.3.9-master.2023-07-22";
23667
23698
  createVuetify$1.version = version$1;
23668
23699
 
23669
23700
  // Vue's inject() can only be used in setup
@@ -23677,7 +23708,7 @@ function inject(key) {
23677
23708
 
23678
23709
  /* eslint-disable local-rules/sort-imports */
23679
23710
 
23680
- const version = "3.3.9-master.2023-07-20";
23711
+ const version = "3.3.9-master.2023-07-22";
23681
23712
 
23682
23713
  /* eslint-disable local-rules/sort-imports */
23683
23714