@vuetify/nightly 3.6.11-master.2024-07-07 → 3.6.12-master.2024-07-10

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 (102) hide show
  1. package/CHANGELOG.md +2 -7
  2. package/dist/json/attributes.json +58 -70
  3. package/dist/json/importMap-labs.json +12 -12
  4. package/dist/json/importMap.json +114 -114
  5. package/dist/json/tags.json +4 -7
  6. package/dist/json/web-types.json +98 -117
  7. package/dist/vuetify-labs.css +3483 -3461
  8. package/dist/vuetify-labs.d.ts +640 -751
  9. package/dist/vuetify-labs.esm.js +80 -70
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +80 -70
  12. package/dist/vuetify-labs.min.css +2 -2
  13. package/dist/vuetify.css +1390 -1368
  14. package/dist/vuetify.d.ts +604 -697
  15. package/dist/vuetify.esm.js +63 -54
  16. package/dist/vuetify.esm.js.map +1 -1
  17. package/dist/vuetify.js +63 -54
  18. package/dist/vuetify.js.map +1 -1
  19. package/dist/vuetify.min.css +2 -2
  20. package/dist/vuetify.min.js +48 -46
  21. package/dist/vuetify.min.js.map +1 -1
  22. package/lib/blueprints/index.d.mts +3 -3
  23. package/lib/blueprints/md1.d.mts +3 -3
  24. package/lib/blueprints/md2.d.mts +3 -3
  25. package/lib/blueprints/md3.d.mts +3 -3
  26. package/lib/components/VAutocomplete/index.d.mts +25 -31
  27. package/lib/components/VBottomSheet/index.d.mts +10 -10
  28. package/lib/components/VCheckbox/index.d.mts +2 -8
  29. package/lib/components/VCombobox/index.d.mts +25 -31
  30. package/lib/components/VDataTable/VDataTableFooter.mjs +5 -4
  31. package/lib/components/VDataTable/VDataTableFooter.mjs.map +1 -1
  32. package/lib/components/VDataTable/index.d.mts +108 -108
  33. package/lib/components/VDatePicker/VDatePickerControls.mjs +5 -4
  34. package/lib/components/VDatePicker/VDatePickerControls.mjs.map +1 -1
  35. package/lib/components/VDatePicker/VDatePickerMonth.mjs +1 -1
  36. package/lib/components/VDatePicker/VDatePickerMonth.mjs.map +1 -1
  37. package/lib/components/VDatePicker/index.d.mts +70 -55
  38. package/lib/components/VDialog/index.d.mts +28 -28
  39. package/lib/components/VExpansionPanel/VExpansionPanels.mjs +6 -2
  40. package/lib/components/VExpansionPanel/VExpansionPanels.mjs.map +1 -1
  41. package/lib/components/VExpansionPanel/index.d.mts +48 -66
  42. package/lib/components/VField/VField.css +11 -6
  43. package/lib/components/VField/VField.mjs +5 -7
  44. package/lib/components/VField/VField.mjs.map +1 -1
  45. package/lib/components/VField/VField.sass +6 -2
  46. package/lib/components/VField/index.d.mts +6 -12
  47. package/lib/components/VFileInput/index.d.mts +6 -12
  48. package/lib/components/VInput/VInput.css +5 -5
  49. package/lib/components/VInput/VInput.mjs +1 -4
  50. package/lib/components/VInput/VInput.mjs.map +1 -1
  51. package/lib/components/VInput/VInput.sass +1 -1
  52. package/lib/components/VInput/index.d.mts +2 -8
  53. package/lib/components/VMenu/index.d.mts +32 -32
  54. package/lib/components/VOverlay/index.d.mts +10 -10
  55. package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
  56. package/lib/components/VProgressLinear/VProgressLinear.css +17 -0
  57. package/lib/components/VProgressLinear/VProgressLinear.mjs +6 -5
  58. package/lib/components/VProgressLinear/VProgressLinear.mjs.map +1 -1
  59. package/lib/components/VProgressLinear/VProgressLinear.sass +11 -0
  60. package/lib/components/VRadio/VRadio.mjs +8 -5
  61. package/lib/components/VRadio/VRadio.mjs.map +1 -1
  62. package/lib/components/VRadioGroup/index.d.mts +2 -8
  63. package/lib/components/VRangeSlider/index.d.mts +2 -8
  64. package/lib/components/VSelect/index.d.mts +25 -31
  65. package/lib/components/VSlider/index.d.mts +2 -8
  66. package/lib/components/VSnackbar/index.d.mts +28 -28
  67. package/lib/components/VSpeedDial/index.d.mts +14 -14
  68. package/lib/components/VSwitch/index.d.mts +2 -8
  69. package/lib/components/VTextField/VTextField.mjs +1 -1
  70. package/lib/components/VTextField/VTextField.mjs.map +1 -1
  71. package/lib/components/VTextField/index.d.mts +18 -24
  72. package/lib/components/VTextarea/VTextarea.mjs +5 -5
  73. package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
  74. package/lib/components/VTextarea/index.d.mts +72 -87
  75. package/lib/components/VTooltip/index.d.mts +32 -32
  76. package/lib/components/index.d.mts +646 -739
  77. package/lib/composables/calendar.mjs +10 -4
  78. package/lib/composables/calendar.mjs.map +1 -1
  79. package/lib/composables/date/DateAdapter.mjs.map +1 -1
  80. package/lib/composables/date/adapters/vuetify.mjs +15 -13
  81. package/lib/composables/date/adapters/vuetify.mjs.map +1 -1
  82. package/lib/entry-bundler.mjs +1 -1
  83. package/lib/framework.mjs +1 -1
  84. package/lib/index.d.mts +48 -48
  85. package/lib/labs/VCalendar/VCalendar.mjs +7 -6
  86. package/lib/labs/VCalendar/VCalendar.mjs.map +1 -1
  87. package/lib/labs/VCalendar/index.d.mts +6 -0
  88. package/lib/labs/VDateInput/index.d.mts +39 -39
  89. package/lib/labs/VNumberInput/VNumberInput.mjs +1 -1
  90. package/lib/labs/VNumberInput/VNumberInput.mjs.map +1 -1
  91. package/lib/labs/VNumberInput/index.d.mts +6 -12
  92. package/lib/labs/VSnackbarQueue/index.d.mts +37 -37
  93. package/lib/labs/VStepperVertical/index.d.mts +0 -18
  94. package/lib/labs/VTimePicker/VTimePicker.mjs +5 -5
  95. package/lib/labs/VTimePicker/VTimePicker.mjs.map +1 -1
  96. package/lib/labs/VTimePicker/VTimePickerClock.mjs +2 -2
  97. package/lib/labs/VTimePicker/VTimePickerClock.mjs.map +1 -1
  98. package/lib/labs/VTimePicker/VTimePickerControls.mjs +2 -2
  99. package/lib/labs/VTimePicker/VTimePickerControls.mjs.map +1 -1
  100. package/lib/labs/VTimePicker/index.d.mts +18 -18
  101. package/lib/labs/components.d.mts +106 -124
  102. package/package.json +1 -1
@@ -118,6 +118,7 @@ declare const VTextField: {
118
118
  density: Density;
119
119
  direction: "horizontal" | "vertical";
120
120
  clearIcon: IconValue;
121
+ centerAffix: boolean;
121
122
  hideSpinButtons: boolean;
122
123
  persistentHint: boolean;
123
124
  autofocus: boolean;
@@ -158,7 +159,6 @@ declare const VTextField: {
158
159
  'onClick:append'?: ((args_0: MouseEvent) => void) | undefined;
159
160
  'onClick:appendInner'?: ((args_0: MouseEvent) => void) | undefined;
160
161
  'onClick:prependInner'?: ((args_0: MouseEvent) => void) | undefined;
161
- centerAffix?: boolean | undefined;
162
162
  hint?: string | undefined;
163
163
  hideDetails?: boolean | "auto" | undefined;
164
164
  suffix?: string | undefined;
@@ -499,6 +499,7 @@ declare const VTextField: {
499
499
  variant: "underlined" | "filled" | "outlined" | "plain" | "solo" | "solo-inverted" | "solo-filled";
500
500
  tile: boolean;
501
501
  clearIcon: IconValue;
502
+ centerAffix: boolean;
502
503
  clearable: boolean;
503
504
  dirty: boolean;
504
505
  persistentClear: boolean;
@@ -518,7 +519,6 @@ declare const VTextField: {
518
519
  'onClick:clear'?: ((args_0: MouseEvent) => void) | undefined;
519
520
  'onClick:appendInner'?: ((args_0: MouseEvent) => void) | undefined;
520
521
  'onClick:prependInner'?: ((args_0: MouseEvent) => void) | undefined;
521
- centerAffix?: boolean | undefined;
522
522
  } & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & {
523
523
  reverse: boolean;
524
524
  flat: boolean;
@@ -530,6 +530,7 @@ declare const VTextField: {
530
530
  variant: "underlined" | "filled" | "outlined" | "plain" | "solo" | "solo-inverted" | "solo-filled";
531
531
  tile: boolean;
532
532
  clearIcon: IconValue;
533
+ centerAffix: boolean;
533
534
  clearable: boolean;
534
535
  dirty: boolean;
535
536
  persistentClear: boolean;
@@ -550,7 +551,6 @@ declare const VTextField: {
550
551
  'onClick:clear'?: ((args_0: MouseEvent) => void) | undefined;
551
552
  'onClick:appendInner'?: ((args_0: MouseEvent) => void) | undefined;
552
553
  'onClick:prependInner'?: ((args_0: MouseEvent) => void) | undefined;
553
- centerAffix?: boolean | undefined;
554
554
  } & {
555
555
  "onUpdate:focused"?: ((focused: boolean) => any) | undefined;
556
556
  }, "reverse" | "flat" | "style" | "active" | "error" | "disabled" | "focused" | "rounded" | "variant" | "tile" | "clearIcon" | "centerAffix" | "clearable" | "dirty" | "persistentClear" | "singleLine">;
@@ -600,6 +600,7 @@ declare const VTextField: {
600
600
  variant: "underlined" | "filled" | "outlined" | "plain" | "solo" | "solo-inverted" | "solo-filled";
601
601
  tile: boolean;
602
602
  clearIcon: IconValue;
603
+ centerAffix: boolean;
603
604
  clearable: boolean;
604
605
  dirty: boolean;
605
606
  persistentClear: boolean;
@@ -620,7 +621,6 @@ declare const VTextField: {
620
621
  'onClick:clear'?: ((args_0: MouseEvent) => void) | undefined;
621
622
  'onClick:appendInner'?: ((args_0: MouseEvent) => void) | undefined;
622
623
  'onClick:prependInner'?: ((args_0: MouseEvent) => void) | undefined;
623
- centerAffix?: boolean | undefined;
624
624
  } & {
625
625
  "onUpdate:focused"?: ((focused: boolean) => any) | undefined;
626
626
  }, {
@@ -700,6 +700,7 @@ declare const VTextField: {
700
700
  variant: "underlined" | "filled" | "outlined" | "plain" | "solo" | "solo-inverted" | "solo-filled";
701
701
  tile: boolean;
702
702
  clearIcon: IconValue;
703
+ centerAffix: boolean;
703
704
  clearable: boolean;
704
705
  dirty: boolean;
705
706
  persistentClear: boolean;
@@ -720,7 +721,6 @@ declare const VTextField: {
720
721
  'onClick:clear'?: ((args_0: MouseEvent) => void) | undefined;
721
722
  'onClick:appendInner'?: ((args_0: MouseEvent) => void) | undefined;
722
723
  'onClick:prependInner'?: ((args_0: MouseEvent) => void) | undefined;
723
- centerAffix?: boolean | undefined;
724
724
  } & {
725
725
  "onUpdate:focused"?: ((focused: boolean) => any) | undefined;
726
726
  }, "controlRef"> & vue.ShallowUnwrapRef<{
@@ -752,6 +752,7 @@ declare const VTextField: {
752
752
  density: Density;
753
753
  direction: "horizontal" | "vertical";
754
754
  clearIcon: IconValue;
755
+ centerAffix: boolean;
755
756
  hideSpinButtons: boolean;
756
757
  persistentHint: boolean;
757
758
  autofocus: boolean;
@@ -792,7 +793,6 @@ declare const VTextField: {
792
793
  'onClick:append'?: ((args_0: MouseEvent) => void) | undefined;
793
794
  'onClick:appendInner'?: ((args_0: MouseEvent) => void) | undefined;
794
795
  'onClick:prependInner'?: ((args_0: MouseEvent) => void) | undefined;
795
- centerAffix?: boolean | undefined;
796
796
  hint?: string | undefined;
797
797
  hideDetails?: boolean | "auto" | undefined;
798
798
  suffix?: string | undefined;
@@ -952,6 +952,7 @@ declare const VTextField: {
952
952
  density: Density;
953
953
  direction: "horizontal" | "vertical";
954
954
  clearIcon: IconValue;
955
+ centerAffix: boolean;
955
956
  hideSpinButtons: boolean;
956
957
  persistentHint: boolean;
957
958
  autofocus: boolean;
@@ -992,7 +993,6 @@ declare const VTextField: {
992
993
  'onClick:append'?: ((args_0: MouseEvent) => void) | undefined;
993
994
  'onClick:appendInner'?: ((args_0: MouseEvent) => void) | undefined;
994
995
  'onClick:prependInner'?: ((args_0: MouseEvent) => void) | undefined;
995
- centerAffix?: boolean | undefined;
996
996
  hint?: string | undefined;
997
997
  hideDetails?: boolean | "auto" | undefined;
998
998
  suffix?: string | undefined;
@@ -1333,6 +1333,7 @@ declare const VTextField: {
1333
1333
  variant: "underlined" | "filled" | "outlined" | "plain" | "solo" | "solo-inverted" | "solo-filled";
1334
1334
  tile: boolean;
1335
1335
  clearIcon: IconValue;
1336
+ centerAffix: boolean;
1336
1337
  clearable: boolean;
1337
1338
  dirty: boolean;
1338
1339
  persistentClear: boolean;
@@ -1352,7 +1353,6 @@ declare const VTextField: {
1352
1353
  'onClick:clear'?: ((args_0: MouseEvent) => void) | undefined;
1353
1354
  'onClick:appendInner'?: ((args_0: MouseEvent) => void) | undefined;
1354
1355
  'onClick:prependInner'?: ((args_0: MouseEvent) => void) | undefined;
1355
- centerAffix?: boolean | undefined;
1356
1356
  } & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & {
1357
1357
  reverse: boolean;
1358
1358
  flat: boolean;
@@ -1364,6 +1364,7 @@ declare const VTextField: {
1364
1364
  variant: "underlined" | "filled" | "outlined" | "plain" | "solo" | "solo-inverted" | "solo-filled";
1365
1365
  tile: boolean;
1366
1366
  clearIcon: IconValue;
1367
+ centerAffix: boolean;
1367
1368
  clearable: boolean;
1368
1369
  dirty: boolean;
1369
1370
  persistentClear: boolean;
@@ -1384,7 +1385,6 @@ declare const VTextField: {
1384
1385
  'onClick:clear'?: ((args_0: MouseEvent) => void) | undefined;
1385
1386
  'onClick:appendInner'?: ((args_0: MouseEvent) => void) | undefined;
1386
1387
  'onClick:prependInner'?: ((args_0: MouseEvent) => void) | undefined;
1387
- centerAffix?: boolean | undefined;
1388
1388
  } & {
1389
1389
  "onUpdate:focused"?: ((focused: boolean) => any) | undefined;
1390
1390
  }, "reverse" | "flat" | "style" | "active" | "error" | "disabled" | "focused" | "rounded" | "variant" | "tile" | "clearIcon" | "centerAffix" | "clearable" | "dirty" | "persistentClear" | "singleLine">;
@@ -1434,6 +1434,7 @@ declare const VTextField: {
1434
1434
  variant: "underlined" | "filled" | "outlined" | "plain" | "solo" | "solo-inverted" | "solo-filled";
1435
1435
  tile: boolean;
1436
1436
  clearIcon: IconValue;
1437
+ centerAffix: boolean;
1437
1438
  clearable: boolean;
1438
1439
  dirty: boolean;
1439
1440
  persistentClear: boolean;
@@ -1454,7 +1455,6 @@ declare const VTextField: {
1454
1455
  'onClick:clear'?: ((args_0: MouseEvent) => void) | undefined;
1455
1456
  'onClick:appendInner'?: ((args_0: MouseEvent) => void) | undefined;
1456
1457
  'onClick:prependInner'?: ((args_0: MouseEvent) => void) | undefined;
1457
- centerAffix?: boolean | undefined;
1458
1458
  } & {
1459
1459
  "onUpdate:focused"?: ((focused: boolean) => any) | undefined;
1460
1460
  }, {
@@ -1534,6 +1534,7 @@ declare const VTextField: {
1534
1534
  variant: "underlined" | "filled" | "outlined" | "plain" | "solo" | "solo-inverted" | "solo-filled";
1535
1535
  tile: boolean;
1536
1536
  clearIcon: IconValue;
1537
+ centerAffix: boolean;
1537
1538
  clearable: boolean;
1538
1539
  dirty: boolean;
1539
1540
  persistentClear: boolean;
@@ -1554,7 +1555,6 @@ declare const VTextField: {
1554
1555
  'onClick:clear'?: ((args_0: MouseEvent) => void) | undefined;
1555
1556
  'onClick:appendInner'?: ((args_0: MouseEvent) => void) | undefined;
1556
1557
  'onClick:prependInner'?: ((args_0: MouseEvent) => void) | undefined;
1557
- centerAffix?: boolean | undefined;
1558
1558
  } & {
1559
1559
  "onUpdate:focused"?: ((focused: boolean) => any) | undefined;
1560
1560
  }, "controlRef"> & vue.ShallowUnwrapRef<{
@@ -1615,6 +1615,7 @@ declare const VTextField: {
1615
1615
  density: Density;
1616
1616
  direction: "horizontal" | "vertical";
1617
1617
  clearIcon: IconValue;
1618
+ centerAffix: boolean;
1618
1619
  hideSpinButtons: boolean;
1619
1620
  persistentHint: boolean;
1620
1621
  autofocus: boolean;
@@ -1655,7 +1656,6 @@ declare const VTextField: {
1655
1656
  'onClick:append'?: ((args_0: MouseEvent) => void) | undefined;
1656
1657
  'onClick:appendInner'?: ((args_0: MouseEvent) => void) | undefined;
1657
1658
  'onClick:prependInner'?: ((args_0: MouseEvent) => void) | undefined;
1658
- centerAffix?: boolean | undefined;
1659
1659
  hint?: string | undefined;
1660
1660
  hideDetails?: boolean | "auto" | undefined;
1661
1661
  suffix?: string | undefined;
@@ -1996,6 +1996,7 @@ declare const VTextField: {
1996
1996
  variant: "underlined" | "filled" | "outlined" | "plain" | "solo" | "solo-inverted" | "solo-filled";
1997
1997
  tile: boolean;
1998
1998
  clearIcon: IconValue;
1999
+ centerAffix: boolean;
1999
2000
  clearable: boolean;
2000
2001
  dirty: boolean;
2001
2002
  persistentClear: boolean;
@@ -2015,7 +2016,6 @@ declare const VTextField: {
2015
2016
  'onClick:clear'?: ((args_0: MouseEvent) => void) | undefined;
2016
2017
  'onClick:appendInner'?: ((args_0: MouseEvent) => void) | undefined;
2017
2018
  'onClick:prependInner'?: ((args_0: MouseEvent) => void) | undefined;
2018
- centerAffix?: boolean | undefined;
2019
2019
  } & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & {
2020
2020
  reverse: boolean;
2021
2021
  flat: boolean;
@@ -2027,6 +2027,7 @@ declare const VTextField: {
2027
2027
  variant: "underlined" | "filled" | "outlined" | "plain" | "solo" | "solo-inverted" | "solo-filled";
2028
2028
  tile: boolean;
2029
2029
  clearIcon: IconValue;
2030
+ centerAffix: boolean;
2030
2031
  clearable: boolean;
2031
2032
  dirty: boolean;
2032
2033
  persistentClear: boolean;
@@ -2047,7 +2048,6 @@ declare const VTextField: {
2047
2048
  'onClick:clear'?: ((args_0: MouseEvent) => void) | undefined;
2048
2049
  'onClick:appendInner'?: ((args_0: MouseEvent) => void) | undefined;
2049
2050
  'onClick:prependInner'?: ((args_0: MouseEvent) => void) | undefined;
2050
- centerAffix?: boolean | undefined;
2051
2051
  } & {
2052
2052
  "onUpdate:focused"?: ((focused: boolean) => any) | undefined;
2053
2053
  }, "reverse" | "flat" | "style" | "active" | "error" | "disabled" | "focused" | "rounded" | "variant" | "tile" | "clearIcon" | "centerAffix" | "clearable" | "dirty" | "persistentClear" | "singleLine">;
@@ -2097,6 +2097,7 @@ declare const VTextField: {
2097
2097
  variant: "underlined" | "filled" | "outlined" | "plain" | "solo" | "solo-inverted" | "solo-filled";
2098
2098
  tile: boolean;
2099
2099
  clearIcon: IconValue;
2100
+ centerAffix: boolean;
2100
2101
  clearable: boolean;
2101
2102
  dirty: boolean;
2102
2103
  persistentClear: boolean;
@@ -2117,7 +2118,6 @@ declare const VTextField: {
2117
2118
  'onClick:clear'?: ((args_0: MouseEvent) => void) | undefined;
2118
2119
  'onClick:appendInner'?: ((args_0: MouseEvent) => void) | undefined;
2119
2120
  'onClick:prependInner'?: ((args_0: MouseEvent) => void) | undefined;
2120
- centerAffix?: boolean | undefined;
2121
2121
  } & {
2122
2122
  "onUpdate:focused"?: ((focused: boolean) => any) | undefined;
2123
2123
  }, {
@@ -2197,6 +2197,7 @@ declare const VTextField: {
2197
2197
  variant: "underlined" | "filled" | "outlined" | "plain" | "solo" | "solo-inverted" | "solo-filled";
2198
2198
  tile: boolean;
2199
2199
  clearIcon: IconValue;
2200
+ centerAffix: boolean;
2200
2201
  clearable: boolean;
2201
2202
  dirty: boolean;
2202
2203
  persistentClear: boolean;
@@ -2217,7 +2218,6 @@ declare const VTextField: {
2217
2218
  'onClick:clear'?: ((args_0: MouseEvent) => void) | undefined;
2218
2219
  'onClick:appendInner'?: ((args_0: MouseEvent) => void) | undefined;
2219
2220
  'onClick:prependInner'?: ((args_0: MouseEvent) => void) | undefined;
2220
- centerAffix?: boolean | undefined;
2221
2221
  } & {
2222
2222
  "onUpdate:focused"?: ((focused: boolean) => any) | undefined;
2223
2223
  }, "controlRef"> & vue.ShallowUnwrapRef<{
@@ -2320,10 +2320,7 @@ declare const VTextField: {
2320
2320
  default: string;
2321
2321
  };
2322
2322
  active: BooleanConstructor;
2323
- centerAffix: {
2324
- type: BooleanConstructor;
2325
- default: undefined;
2326
- };
2323
+ centerAffix: BooleanConstructor;
2327
2324
  color: StringConstructor;
2328
2325
  baseColor: StringConstructor;
2329
2326
  dirty: BooleanConstructor;
@@ -2429,10 +2426,7 @@ declare const VTextField: {
2429
2426
  default: string;
2430
2427
  };
2431
2428
  active: BooleanConstructor;
2432
- centerAffix: {
2433
- type: BooleanConstructor;
2434
- default: undefined;
2435
- };
2429
+ centerAffix: BooleanConstructor;
2436
2430
  color: StringConstructor;
2437
2431
  baseColor: StringConstructor;
2438
2432
  dirty: BooleanConstructor;
@@ -13,7 +13,7 @@ import { forwardRefs } from "../../composables/forwardRefs.mjs";
13
13
  import { useProxiedModel } from "../../composables/proxiedModel.mjs"; // Directives
14
14
  import Intersect from "../../directives/intersect/index.mjs"; // Utilities
15
15
  import { computed, nextTick, onBeforeUnmount, onMounted, ref, shallowRef, watch, watchEffect } from 'vue';
16
- import { callEvent, clamp, convertToUnit, filterInputAttrs, genericComponent, propsFactory, useRender } from "../../util/index.mjs"; // Types
16
+ import { callEvent, clamp, convertToUnit, filterInputAttrs, genericComponent, omit, propsFactory, useRender } from "../../util/index.mjs"; // Types
17
17
  export const makeVTextareaProps = propsFactory({
18
18
  autoGrow: Boolean,
19
19
  autofocus: Boolean,
@@ -35,8 +35,8 @@ export const makeVTextareaProps = propsFactory({
35
35
  },
36
36
  suffix: String,
37
37
  modelModifiers: Object,
38
- ...makeVInputProps(),
39
- ...makeVFieldProps()
38
+ ...omit(makeVInputProps(), ['centerAffix']),
39
+ ...omit(makeVFieldProps(), ['centerAffix'])
40
40
  }, 'VTextarea');
41
41
  export const VTextarea = genericComponent()({
42
42
  name: 'VTextarea',
@@ -175,7 +175,7 @@ export const VTextarea = genericComponent()({
175
175
  }, props.class],
176
176
  "style": props.style
177
177
  }, rootAttrs, inputProps, {
178
- "centerAffix": rows.value === 1 && !isPlainOrUnderlined.value,
178
+ "centerAffix": false,
179
179
  "focused": isFocused.value
180
180
  }), {
181
181
  ...slots,
@@ -200,7 +200,7 @@ export const VTextarea = genericComponent()({
200
200
  }, fieldProps, {
201
201
  "id": id.value,
202
202
  "active": isActive.value || isDirty.value,
203
- "centerAffix": rows.value === 1 && !isPlainOrUnderlined.value,
203
+ "centerAffix": false,
204
204
  "dirty": isDirty.value || props.dirty,
205
205
  "disabled": isDisabled.value,
206
206
  "focused": isFocused.value,
@@ -1 +1 @@
1
- {"version":3,"file":"VTextarea.mjs","names":["VCounter","VField","filterFieldProps","makeVFieldProps","makeVInputProps","VInput","useFocus","forwardRefs","useProxiedModel","Intersect","computed","nextTick","onBeforeUnmount","onMounted","ref","shallowRef","watch","watchEffect","callEvent","clamp","convertToUnit","filterInputAttrs","genericComponent","propsFactory","useRender","makeVTextareaProps","autoGrow","Boolean","autofocus","counter","Number","String","counterValue","Function","prefix","placeholder","persistentPlaceholder","persistentCounter","noResize","rows","type","default","validator","v","isNaN","parseFloat","maxRows","suffix","modelModifiers","Object","VTextarea","name","directives","inheritAttrs","props","emits","e","focused","val","setup","_ref","attrs","emit","slots","model","isFocused","focus","blur","value","toString","length","max","maxlength","undefined","onIntersect","isIntersecting","entries","target","vInputRef","vFieldRef","controlHeight","textareaRef","isActive","active","onFocus","document","activeElement","onControlClick","onControlMousedown","onClear","stopPropagation","onInput","el","trim","caretPosition","selectionStart","selectionEnd","sizerRef","isPlainOrUnderlined","includes","variant","calculateInputHeight","style","getComputedStyle","fieldStyle","$el","padding","getPropertyValue","height","scrollHeight","lineHeight","minHeight","Math","maxHeight","Infinity","newHeight","floor","density","observer","ResizeObserver","observe","disconnect","hasCounter","hasDetails","details","rootAttrs","inputAttrs","modelValue","_","inputProps","filterProps","fieldProps","_createVNode","_mergeProps","$event","class","_ref2","id","isDisabled","isDirty","isReadonly","isValid","dirty","_ref3","fieldClass","slotProps","_Fragment","_withDirectives","_resolveDirective","handler","once","_vModelText","disabled"],"sources":["../../../src/components/VTextarea/VTextarea.tsx"],"sourcesContent":["// Styles\nimport './VTextarea.sass'\nimport '../VTextField/VTextField.sass'\n\n// Components\nimport { VCounter } from '@/components/VCounter/VCounter'\nimport { VField } from '@/components/VField'\nimport { filterFieldProps, makeVFieldProps } from '@/components/VField/VField'\nimport { makeVInputProps, VInput } from '@/components/VInput/VInput'\n\n// Composables\nimport { useFocus } from '@/composables/focus'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Directives\nimport Intersect from '@/directives/intersect'\n\n// Utilities\nimport { computed, nextTick, onBeforeUnmount, onMounted, ref, shallowRef, watch, watchEffect } from 'vue'\nimport { callEvent, clamp, convertToUnit, filterInputAttrs, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VCounterSlot } from '@/components/VCounter/VCounter'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { VInputSlots } from '@/components/VInput/VInput'\n\nexport const makeVTextareaProps = propsFactory({\n autoGrow: Boolean,\n autofocus: Boolean,\n counter: [Boolean, Number, String] as PropType<true | number | string>,\n counterValue: Function as PropType<(value: any) => number>,\n prefix: String,\n placeholder: String,\n persistentPlaceholder: Boolean,\n persistentCounter: Boolean,\n noResize: Boolean,\n rows: {\n type: [Number, String],\n default: 5,\n validator: (v: any) => !isNaN(parseFloat(v)),\n },\n maxRows: {\n type: [Number, String],\n validator: (v: any) => !isNaN(parseFloat(v)),\n },\n suffix: String,\n modelModifiers: Object as PropType<Record<string, boolean>>,\n\n ...makeVInputProps(),\n ...makeVFieldProps(),\n}, 'VTextarea')\n\ntype VTextareaSlots = Omit<VInputSlots & VFieldSlots, 'default'> & {\n counter: VCounterSlot\n}\n\nexport const VTextarea = genericComponent<VTextareaSlots>()({\n name: 'VTextarea',\n\n directives: { Intersect },\n\n inheritAttrs: false,\n\n props: makeVTextareaProps(),\n\n emits: {\n 'click:control': (e: MouseEvent) => true,\n 'mousedown:control': (e: MouseEvent) => true,\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': (val: string) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const model = useProxiedModel(props, 'modelValue')\n const { isFocused, focus, blur } = useFocus(props)\n const counterValue = computed(() => {\n return typeof props.counterValue === 'function'\n ? props.counterValue(model.value)\n : (model.value || '').toString().length\n })\n const max = computed(() => {\n if (attrs.maxlength) return attrs.maxlength as string | number\n\n if (\n !props.counter ||\n (typeof props.counter !== 'number' &&\n typeof props.counter !== 'string')\n ) return undefined\n\n return props.counter\n })\n\n function onIntersect (\n isIntersecting: boolean,\n entries: IntersectionObserverEntry[]\n ) {\n if (!props.autofocus || !isIntersecting) return\n\n (entries[0].target as HTMLInputElement)?.focus?.()\n }\n\n const vInputRef = ref<VInput>()\n const vFieldRef = ref<VInput>()\n const controlHeight = shallowRef('')\n const textareaRef = ref<HTMLInputElement>()\n const isActive = computed(() => (\n props.persistentPlaceholder ||\n isFocused.value ||\n props.active\n ))\n\n function onFocus () {\n if (textareaRef.value !== document.activeElement) {\n textareaRef.value?.focus()\n }\n\n if (!isFocused.value) focus()\n }\n function onControlClick (e: MouseEvent) {\n onFocus()\n\n emit('click:control', e)\n }\n function onControlMousedown (e: MouseEvent) {\n emit('mousedown:control', e)\n }\n function onClear (e: MouseEvent) {\n e.stopPropagation()\n\n onFocus()\n\n nextTick(() => {\n model.value = ''\n\n callEvent(props['onClick:clear'], e)\n })\n }\n function onInput (e: Event) {\n const el = e.target as HTMLTextAreaElement\n model.value = el.value\n if (props.modelModifiers?.trim) {\n const caretPosition = [el.selectionStart, el.selectionEnd]\n nextTick(() => {\n el.selectionStart = caretPosition[0]\n el.selectionEnd = caretPosition[1]\n })\n }\n }\n\n const sizerRef = ref<HTMLTextAreaElement>()\n const rows = ref(+props.rows)\n const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant))\n watchEffect(() => {\n if (!props.autoGrow) rows.value = +props.rows\n })\n function calculateInputHeight () {\n if (!props.autoGrow) return\n\n nextTick(() => {\n if (!sizerRef.value || !vFieldRef.value) return\n\n const style = getComputedStyle(sizerRef.value)\n const fieldStyle = getComputedStyle(vFieldRef.value.$el)\n\n const padding = parseFloat(style.getPropertyValue('--v-field-padding-top')) +\n parseFloat(style.getPropertyValue('--v-input-padding-top')) +\n parseFloat(style.getPropertyValue('--v-field-padding-bottom'))\n\n const height = sizerRef.value.scrollHeight\n const lineHeight = parseFloat(style.lineHeight)\n const minHeight = Math.max(\n parseFloat(props.rows) * lineHeight + padding,\n parseFloat(fieldStyle.getPropertyValue('--v-input-control-height'))\n )\n const maxHeight = parseFloat(props.maxRows!) * lineHeight + padding || Infinity\n const newHeight = clamp(height ?? 0, minHeight, maxHeight)\n rows.value = Math.floor((newHeight - padding) / lineHeight)\n\n controlHeight.value = convertToUnit(newHeight)\n })\n }\n\n onMounted(calculateInputHeight)\n watch(model, calculateInputHeight)\n watch(() => props.rows, calculateInputHeight)\n watch(() => props.maxRows, calculateInputHeight)\n watch(() => props.density, calculateInputHeight)\n\n let observer: ResizeObserver | undefined\n watch(sizerRef, val => {\n if (val) {\n observer = new ResizeObserver(calculateInputHeight)\n observer.observe(sizerRef.value!)\n } else {\n observer?.disconnect()\n }\n })\n onBeforeUnmount(() => {\n observer?.disconnect()\n })\n\n useRender(() => {\n const hasCounter = !!(slots.counter || props.counter || props.counterValue)\n const hasDetails = !!(hasCounter || slots.details)\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n const { modelValue: _, ...inputProps } = VInput.filterProps(props)\n const fieldProps = filterFieldProps(props)\n\n return (\n <VInput\n ref={ vInputRef }\n v-model={ model.value }\n class={[\n 'v-textarea v-text-field',\n {\n 'v-textarea--prefixed': props.prefix,\n 'v-textarea--suffixed': props.suffix,\n 'v-text-field--prefixed': props.prefix,\n 'v-text-field--suffixed': props.suffix,\n 'v-textarea--auto-grow': props.autoGrow,\n 'v-textarea--no-resize': props.noResize || props.autoGrow,\n 'v-input--plain-underlined': isPlainOrUnderlined.value,\n },\n props.class,\n ]}\n style={ props.style }\n { ...rootAttrs }\n { ...inputProps }\n centerAffix={ rows.value === 1 && !isPlainOrUnderlined.value }\n focused={ isFocused.value }\n >\n {{\n ...slots,\n default: ({\n id,\n isDisabled,\n isDirty,\n isReadonly,\n isValid,\n }) => (\n <VField\n ref={ vFieldRef }\n style={{\n '--v-textarea-control-height': controlHeight.value,\n }}\n onClick={ onControlClick }\n onMousedown={ onControlMousedown }\n onClick:clear={ onClear }\n onClick:prependInner={ props['onClick:prependInner'] }\n onClick:appendInner={ props['onClick:appendInner'] }\n { ...fieldProps }\n id={ id.value }\n active={ isActive.value || isDirty.value }\n centerAffix={ rows.value === 1 && !isPlainOrUnderlined.value }\n dirty={ isDirty.value || props.dirty }\n disabled={ isDisabled.value }\n focused={ isFocused.value }\n error={ isValid.value === false }\n >\n {{\n ...slots,\n default: ({\n props: { class: fieldClass, ...slotProps },\n }) => (\n <>\n { props.prefix && (\n <span class=\"v-text-field__prefix\">\n { props.prefix }\n </span>\n )}\n\n <textarea\n ref={ textareaRef }\n class={ fieldClass }\n value={ model.value }\n onInput={ onInput }\n v-intersect={[{\n handler: onIntersect,\n }, null, ['once']]}\n autofocus={ props.autofocus }\n readonly={ isReadonly.value }\n disabled={ isDisabled.value }\n placeholder={ props.placeholder }\n rows={ props.rows }\n name={ props.name }\n onFocus={ onFocus }\n onBlur={ blur }\n { ...slotProps }\n { ...inputAttrs }\n />\n\n { props.autoGrow && (\n <textarea\n class={[\n fieldClass,\n 'v-textarea__sizer',\n ]}\n id={ `${slotProps.id}-sizer` }\n v-model={ model.value }\n ref={ sizerRef }\n readonly\n aria-hidden=\"true\"\n />\n )}\n\n { props.suffix && (\n <span class=\"v-text-field__suffix\">\n { props.suffix }\n </span>\n )}\n </>\n ),\n }}\n </VField>\n ),\n details: hasDetails ? slotProps => (\n <>\n { slots.details?.(slotProps) }\n\n { hasCounter && (\n <>\n <span />\n\n <VCounter\n active={ props.persistentCounter || isFocused.value }\n value={ counterValue.value }\n max={ max.value }\n disabled={ props.disabled }\n v-slots:default={ slots.counter }\n />\n </>\n )}\n </>\n ) : undefined,\n }}\n </VInput>\n )\n })\n\n return forwardRefs({}, vInputRef, vFieldRef, textareaRef)\n },\n})\n\nexport type VTextarea = InstanceType<typeof VTextarea>\n"],"mappings":";AAAA;AACA;AACA;;AAEA;AAAA,SACSA,QAAQ;AAAA,SACRC,MAAM;AAAA,SACNC,gBAAgB,EAAEC,eAAe;AAAA,SACjCC,eAAe,EAAEC,MAAM,gCAEhC;AAAA,SACSC,QAAQ;AAAA,SACRC,WAAW;AAAA,SACXC,eAAe,8CAExB;AAAA,OACOC,SAAS,8CAEhB;AACA,SAASC,QAAQ,EAAEC,QAAQ,EAAEC,eAAe,EAAEC,SAAS,EAAEC,GAAG,EAAEC,UAAU,EAAEC,KAAK,EAAEC,WAAW,QAAQ,KAAK;AAAA,SAChGC,SAAS,EAAEC,KAAK,EAAEC,aAAa,EAAEC,gBAAgB,EAAEC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS,gCAErG;AAMA,OAAO,MAAMC,kBAAkB,GAAGF,YAAY,CAAC;EAC7CG,QAAQ,EAAEC,OAAO;EACjBC,SAAS,EAAED,OAAO;EAClBE,OAAO,EAAE,CAACF,OAAO,EAAEG,MAAM,EAAEC,MAAM,CAAqC;EACtEC,YAAY,EAAEC,QAA4C;EAC1DC,MAAM,EAAEH,MAAM;EACdI,WAAW,EAAEJ,MAAM;EACnBK,qBAAqB,EAAET,OAAO;EAC9BU,iBAAiB,EAAEV,OAAO;EAC1BW,QAAQ,EAAEX,OAAO;EACjBY,IAAI,EAAE;IACJC,IAAI,EAAE,CAACV,MAAM,EAAEC,MAAM,CAAC;IACtBU,OAAO,EAAE,CAAC;IACVC,SAAS,EAAGC,CAAM,IAAK,CAACC,KAAK,CAACC,UAAU,CAACF,CAAC,CAAC;EAC7C,CAAC;EACDG,OAAO,EAAE;IACPN,IAAI,EAAE,CAACV,MAAM,EAAEC,MAAM,CAAC;IACtBW,SAAS,EAAGC,CAAM,IAAK,CAACC,KAAK,CAACC,UAAU,CAACF,CAAC,CAAC;EAC7C,CAAC;EACDI,MAAM,EAAEhB,MAAM;EACdiB,cAAc,EAAEC,MAA2C;EAE3D,GAAG7C,eAAe,CAAC,CAAC;EACpB,GAAGD,eAAe,CAAC;AACrB,CAAC,EAAE,WAAW,CAAC;AAMf,OAAO,MAAM+C,SAAS,GAAG5B,gBAAgB,CAAiB,CAAC,CAAC;EAC1D6B,IAAI,EAAE,WAAW;EAEjBC,UAAU,EAAE;IAAE3C;EAAU,CAAC;EAEzB4C,YAAY,EAAE,KAAK;EAEnBC,KAAK,EAAE7B,kBAAkB,CAAC,CAAC;EAE3B8B,KAAK,EAAE;IACL,eAAe,EAAGC,CAAa,IAAK,IAAI;IACxC,mBAAmB,EAAGA,CAAa,IAAK,IAAI;IAC5C,gBAAgB,EAAGC,OAAgB,IAAK,IAAI;IAC5C,mBAAmB,EAAGC,GAAW,IAAK;EACxC,CAAC;EAEDC,KAAKA,CAAEL,KAAK,EAAAM,IAAA,EAA0B;IAAA,IAAxB;MAAEC,KAAK;MAAEC,IAAI;MAAEC;IAAM,CAAC,GAAAH,IAAA;IAClC,MAAMI,KAAK,GAAGxD,eAAe,CAAC8C,KAAK,EAAE,YAAY,CAAC;IAClD,MAAM;MAAEW,SAAS;MAAEC,KAAK;MAAEC;IAAK,CAAC,GAAG7D,QAAQ,CAACgD,KAAK,CAAC;IAClD,MAAMtB,YAAY,GAAGtB,QAAQ,CAAC,MAAM;MAClC,OAAO,OAAO4C,KAAK,CAACtB,YAAY,KAAK,UAAU,GAC3CsB,KAAK,CAACtB,YAAY,CAACgC,KAAK,CAACI,KAAK,CAAC,GAC/B,CAACJ,KAAK,CAACI,KAAK,IAAI,EAAE,EAAEC,QAAQ,CAAC,CAAC,CAACC,MAAM;IAC3C,CAAC,CAAC;IACF,MAAMC,GAAG,GAAG7D,QAAQ,CAAC,MAAM;MACzB,IAAImD,KAAK,CAACW,SAAS,EAAE,OAAOX,KAAK,CAACW,SAAS;MAE3C,IACE,CAAClB,KAAK,CAACzB,OAAO,IACb,OAAOyB,KAAK,CAACzB,OAAO,KAAK,QAAQ,IAClC,OAAOyB,KAAK,CAACzB,OAAO,KAAK,QAAS,EAClC,OAAO4C,SAAS;MAElB,OAAOnB,KAAK,CAACzB,OAAO;IACtB,CAAC,CAAC;IAEF,SAAS6C,WAAWA,CAClBC,cAAuB,EACvBC,OAAoC,EACpC;MACA,IAAI,CAACtB,KAAK,CAAC1B,SAAS,IAAI,CAAC+C,cAAc,EAAE;MAExCC,OAAO,CAAC,CAAC,CAAC,CAACC,MAAM,EAAuBX,KAAK,GAAG,CAAC;IACpD;IAEA,MAAMY,SAAS,GAAGhE,GAAG,CAAS,CAAC;IAC/B,MAAMiE,SAAS,GAAGjE,GAAG,CAAS,CAAC;IAC/B,MAAMkE,aAAa,GAAGjE,UAAU,CAAC,EAAE,CAAC;IACpC,MAAMkE,WAAW,GAAGnE,GAAG,CAAmB,CAAC;IAC3C,MAAMoE,QAAQ,GAAGxE,QAAQ,CAAC,MACxB4C,KAAK,CAAClB,qBAAqB,IAC3B6B,SAAS,CAACG,KAAK,IACfd,KAAK,CAAC6B,MACP,CAAC;IAEF,SAASC,OAAOA,CAAA,EAAI;MAClB,IAAIH,WAAW,CAACb,KAAK,KAAKiB,QAAQ,CAACC,aAAa,EAAE;QAChDL,WAAW,CAACb,KAAK,EAAEF,KAAK,CAAC,CAAC;MAC5B;MAEA,IAAI,CAACD,SAAS,CAACG,KAAK,EAAEF,KAAK,CAAC,CAAC;IAC/B;IACA,SAASqB,cAAcA,CAAE/B,CAAa,EAAE;MACtC4B,OAAO,CAAC,CAAC;MAETtB,IAAI,CAAC,eAAe,EAAEN,CAAC,CAAC;IAC1B;IACA,SAASgC,kBAAkBA,CAAEhC,CAAa,EAAE;MAC1CM,IAAI,CAAC,mBAAmB,EAAEN,CAAC,CAAC;IAC9B;IACA,SAASiC,OAAOA,CAAEjC,CAAa,EAAE;MAC/BA,CAAC,CAACkC,eAAe,CAAC,CAAC;MAEnBN,OAAO,CAAC,CAAC;MAETzE,QAAQ,CAAC,MAAM;QACbqD,KAAK,CAACI,KAAK,GAAG,EAAE;QAEhBlD,SAAS,CAACoC,KAAK,CAAC,eAAe,CAAC,EAAEE,CAAC,CAAC;MACtC,CAAC,CAAC;IACJ;IACA,SAASmC,OAAOA,CAAEnC,CAAQ,EAAE;MAC1B,MAAMoC,EAAE,GAAGpC,CAAC,CAACqB,MAA6B;MAC1Cb,KAAK,CAACI,KAAK,GAAGwB,EAAE,CAACxB,KAAK;MACtB,IAAId,KAAK,CAACN,cAAc,EAAE6C,IAAI,EAAE;QAC9B,MAAMC,aAAa,GAAG,CAACF,EAAE,CAACG,cAAc,EAAEH,EAAE,CAACI,YAAY,CAAC;QAC1DrF,QAAQ,CAAC,MAAM;UACbiF,EAAE,CAACG,cAAc,GAAGD,aAAa,CAAC,CAAC,CAAC;UACpCF,EAAE,CAACI,YAAY,GAAGF,aAAa,CAAC,CAAC,CAAC;QACpC,CAAC,CAAC;MACJ;IACF;IAEA,MAAMG,QAAQ,GAAGnF,GAAG,CAAsB,CAAC;IAC3C,MAAMyB,IAAI,GAAGzB,GAAG,CAAC,CAACwC,KAAK,CAACf,IAAI,CAAC;IAC7B,MAAM2D,mBAAmB,GAAGxF,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,CAACyF,QAAQ,CAAC7C,KAAK,CAAC8C,OAAO,CAAC,CAAC;IAC3FnF,WAAW,CAAC,MAAM;MAChB,IAAI,CAACqC,KAAK,CAAC5B,QAAQ,EAAEa,IAAI,CAAC6B,KAAK,GAAG,CAACd,KAAK,CAACf,IAAI;IAC/C,CAAC,CAAC;IACF,SAAS8D,oBAAoBA,CAAA,EAAI;MAC/B,IAAI,CAAC/C,KAAK,CAAC5B,QAAQ,EAAE;MAErBf,QAAQ,CAAC,MAAM;QACb,IAAI,CAACsF,QAAQ,CAAC7B,KAAK,IAAI,CAACW,SAAS,CAACX,KAAK,EAAE;QAEzC,MAAMkC,KAAK,GAAGC,gBAAgB,CAACN,QAAQ,CAAC7B,KAAK,CAAC;QAC9C,MAAMoC,UAAU,GAAGD,gBAAgB,CAACxB,SAAS,CAACX,KAAK,CAACqC,GAAG,CAAC;QAExD,MAAMC,OAAO,GAAG7D,UAAU,CAACyD,KAAK,CAACK,gBAAgB,CAAC,uBAAuB,CAAC,CAAC,GACzE9D,UAAU,CAACyD,KAAK,CAACK,gBAAgB,CAAC,uBAAuB,CAAC,CAAC,GAC3D9D,UAAU,CAACyD,KAAK,CAACK,gBAAgB,CAAC,0BAA0B,CAAC,CAAC;QAEhE,MAAMC,MAAM,GAAGX,QAAQ,CAAC7B,KAAK,CAACyC,YAAY;QAC1C,MAAMC,UAAU,GAAGjE,UAAU,CAACyD,KAAK,CAACQ,UAAU,CAAC;QAC/C,MAAMC,SAAS,GAAGC,IAAI,CAACzC,GAAG,CACxB1B,UAAU,CAACS,KAAK,CAACf,IAAI,CAAC,GAAGuE,UAAU,GAAGJ,OAAO,EAC7C7D,UAAU,CAAC2D,UAAU,CAACG,gBAAgB,CAAC,0BAA0B,CAAC,CACpE,CAAC;QACD,MAAMM,SAAS,GAAGpE,UAAU,CAACS,KAAK,CAACR,OAAQ,CAAC,GAAGgE,UAAU,GAAGJ,OAAO,IAAIQ,QAAQ;QAC/E,MAAMC,SAAS,GAAGhG,KAAK,CAACyF,MAAM,IAAI,CAAC,EAAEG,SAAS,EAAEE,SAAS,CAAC;QAC1D1E,IAAI,CAAC6B,KAAK,GAAG4C,IAAI,CAACI,KAAK,CAAC,CAACD,SAAS,GAAGT,OAAO,IAAII,UAAU,CAAC;QAE3D9B,aAAa,CAACZ,KAAK,GAAGhD,aAAa,CAAC+F,SAAS,CAAC;MAChD,CAAC,CAAC;IACJ;IAEAtG,SAAS,CAACwF,oBAAoB,CAAC;IAC/BrF,KAAK,CAACgD,KAAK,EAAEqC,oBAAoB,CAAC;IAClCrF,KAAK,CAAC,MAAMsC,KAAK,CAACf,IAAI,EAAE8D,oBAAoB,CAAC;IAC7CrF,KAAK,CAAC,MAAMsC,KAAK,CAACR,OAAO,EAAEuD,oBAAoB,CAAC;IAChDrF,KAAK,CAAC,MAAMsC,KAAK,CAAC+D,OAAO,EAAEhB,oBAAoB,CAAC;IAEhD,IAAIiB,QAAoC;IACxCtG,KAAK,CAACiF,QAAQ,EAAEvC,GAAG,IAAI;MACrB,IAAIA,GAAG,EAAE;QACP4D,QAAQ,GAAG,IAAIC,cAAc,CAAClB,oBAAoB,CAAC;QACnDiB,QAAQ,CAACE,OAAO,CAACvB,QAAQ,CAAC7B,KAAM,CAAC;MACnC,CAAC,MAAM;QACLkD,QAAQ,EAAEG,UAAU,CAAC,CAAC;MACxB;IACF,CAAC,CAAC;IACF7G,eAAe,CAAC,MAAM;MACpB0G,QAAQ,EAAEG,UAAU,CAAC,CAAC;IACxB,CAAC,CAAC;IAEFjG,SAAS,CAAC,MAAM;MACd,MAAMkG,UAAU,GAAG,CAAC,EAAE3D,KAAK,CAAClC,OAAO,IAAIyB,KAAK,CAACzB,OAAO,IAAIyB,KAAK,CAACtB,YAAY,CAAC;MAC3E,MAAM2F,UAAU,GAAG,CAAC,EAAED,UAAU,IAAI3D,KAAK,CAAC6D,OAAO,CAAC;MAClD,MAAM,CAACC,SAAS,EAAEC,UAAU,CAAC,GAAGzG,gBAAgB,CAACwC,KAAK,CAAC;MACvD,MAAM;QAAEkE,UAAU,EAAEC,CAAC;QAAE,GAAGC;MAAW,CAAC,GAAG5H,MAAM,CAAC6H,WAAW,CAAC5E,KAAK,CAAC;MAClE,MAAM6E,UAAU,GAAGjI,gBAAgB,CAACoD,KAAK,CAAC;MAE1C,OAAA8E,YAAA,CAAA/H,MAAA,EAAAgI,WAAA;QAAA,OAEUvD,SAAS;QAAA,cACLd,KAAK,CAACI,KAAK;QAAA,uBAAAkE,MAAA,IAAXtE,KAAK,CAACI,KAAK,GAAAkE,MAAA;QAAA,SACd,CACL,yBAAyB,EACzB;UACE,sBAAsB,EAAEhF,KAAK,CAACpB,MAAM;UACpC,sBAAsB,EAAEoB,KAAK,CAACP,MAAM;UACpC,wBAAwB,EAAEO,KAAK,CAACpB,MAAM;UACtC,wBAAwB,EAAEoB,KAAK,CAACP,MAAM;UACtC,uBAAuB,EAAEO,KAAK,CAAC5B,QAAQ;UACvC,uBAAuB,EAAE4B,KAAK,CAAChB,QAAQ,IAAIgB,KAAK,CAAC5B,QAAQ;UACzD,2BAA2B,EAAEwE,mBAAmB,CAAC9B;QACnD,CAAC,EACDd,KAAK,CAACiF,KAAK,CACZ;QAAA,SACOjF,KAAK,CAACgD;MAAK,GACduB,SAAS,EACTI,UAAU;QAAA,eACD1F,IAAI,CAAC6B,KAAK,KAAK,CAAC,IAAI,CAAC8B,mBAAmB,CAAC9B,KAAK;QAAA,WAClDH,SAAS,CAACG;MAAK;QAGvB,GAAGL,KAAK;QACRtB,OAAO,EAAE+F,KAAA;UAAA,IAAC;YACRC,EAAE;YACFC,UAAU;YACVC,OAAO;YACPC,UAAU;YACVC;UACF,CAAC,GAAAL,KAAA;UAAA,OAAAJ,YAAA,CAAAnI,MAAA,EAAAoI,WAAA;YAAA,OAEStD,SAAS;YAAA,SACR;cACL,6BAA6B,EAAEC,aAAa,CAACZ;YAC/C,CAAC;YAAA,WACSmB,cAAc;YAAA,eACVC,kBAAkB;YAAA,iBAChBC,OAAO;YAAA,wBACAnC,KAAK,CAAC,sBAAsB,CAAC;YAAA,uBAC9BA,KAAK,CAAC,qBAAqB;UAAC,GAC7C6E,UAAU;YAAA,MACVM,EAAE,CAACrE,KAAK;YAAA,UACJc,QAAQ,CAACd,KAAK,IAAIuE,OAAO,CAACvE,KAAK;YAAA,eAC1B7B,IAAI,CAAC6B,KAAK,KAAK,CAAC,IAAI,CAAC8B,mBAAmB,CAAC9B,KAAK;YAAA,SACpDuE,OAAO,CAACvE,KAAK,IAAId,KAAK,CAACwF,KAAK;YAAA,YACzBJ,UAAU,CAACtE,KAAK;YAAA,WACjBH,SAAS,CAACG,KAAK;YAAA,SACjByE,OAAO,CAACzE,KAAK,KAAK;UAAK;YAG7B,GAAGL,KAAK;YACRtB,OAAO,EAAEsG,KAAA;cAAA,IAAC;gBACRzF,KAAK,EAAE;kBAAEiF,KAAK,EAAES,UAAU;kBAAE,GAAGC;gBAAU;cAC3C,CAAC,GAAAF,KAAA;cAAA,OAAAX,YAAA,CAAAc,SAAA,SAEK5F,KAAK,CAACpB,MAAM,IAAAkG,YAAA;gBAAA;cAAA,IAER9E,KAAK,CAACpB,MAAM,EAEjB,EAAAiH,eAAA,CAAAf,YAAA,aAAAC,WAAA;gBAAA,OAGOpD,WAAW;gBAAA,SACT+D,UAAU;gBAAA,SACVhF,KAAK,CAACI,KAAK;gBAAA,WACTuB,OAAO;gBAAA,aAILrC,KAAK,CAAC1B,SAAS;gBAAA,YAChBgH,UAAU,CAACxE,KAAK;gBAAA,YAChBsE,UAAU,CAACtE,KAAK;gBAAA,eACbd,KAAK,CAACnB,WAAW;gBAAA,QACxBmB,KAAK,CAACf,IAAI;gBAAA,QACVe,KAAK,CAACH,IAAI;gBAAA,WACPiC,OAAO;gBAAA,UACRjB;cAAI,GACR8E,SAAS,EACTnB,UAAU,YAAAsB,iBAAA,eAZD;gBACZC,OAAO,EAAE3E;cACX,CAAC,EAAE,IAAI;gBAAA4E,IAAA;cAAA,MAaPhG,KAAK,CAAC5B,QAAQ,IAAAyH,eAAA,CAAAf,YAAA;gBAAA,SAEL,CACLY,UAAU,EACV,mBAAmB,CACpB;gBAAA,MACK,GAAEC,SAAS,CAACR,EAAG,QAAO;gBAAA,uBAAAH,MAAA,IAClBtE,KAAK,CAACI,KAAK,GAAAkE,MAAA;gBAAA,OACfrC,QAAQ;gBAAA;gBAAA;cAAA,YAAAsD,WAAA,EADJvF,KAAK,CAACI,KAAK,GAKxB,EAECd,KAAK,CAACP,MAAM,IAAAqF,YAAA;gBAAA;cAAA,IAER9E,KAAK,CAACP,MAAM,EAEjB;YAAA;UAEJ;QAAA,CAGN;QACD6E,OAAO,EAAED,UAAU,GAAGsB,SAAS,IAAAb,YAAA,CAAAc,SAAA,SAEzBnF,KAAK,CAAC6D,OAAO,GAAGqB,SAAS,CAAC,EAE1BvB,UAAU,IAAAU,YAAA,CAAAc,SAAA,SAAAd,YAAA,sBAAAA,YAAA,CAAApI,QAAA;UAAA,UAKGsD,KAAK,CAACjB,iBAAiB,IAAI4B,SAAS,CAACG,KAAK;UAAA,SAC3CpC,YAAY,CAACoC,KAAK;UAAA,OACpBG,GAAG,CAACH,KAAK;UAAA,YACJd,KAAK,CAACkG;QAAQ,GACPzF,KAAK,CAAClC,OAAO,GAGpC,EAEJ,GAAG4C;MAAS;IAIrB,CAAC,CAAC;IAEF,OAAOlE,WAAW,CAAC,CAAC,CAAC,EAAEuE,SAAS,EAAEC,SAAS,EAAEE,WAAW,CAAC;EAC3D;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"VTextarea.mjs","names":["VCounter","VField","filterFieldProps","makeVFieldProps","makeVInputProps","VInput","useFocus","forwardRefs","useProxiedModel","Intersect","computed","nextTick","onBeforeUnmount","onMounted","ref","shallowRef","watch","watchEffect","callEvent","clamp","convertToUnit","filterInputAttrs","genericComponent","omit","propsFactory","useRender","makeVTextareaProps","autoGrow","Boolean","autofocus","counter","Number","String","counterValue","Function","prefix","placeholder","persistentPlaceholder","persistentCounter","noResize","rows","type","default","validator","v","isNaN","parseFloat","maxRows","suffix","modelModifiers","Object","VTextarea","name","directives","inheritAttrs","props","emits","e","focused","val","setup","_ref","attrs","emit","slots","model","isFocused","focus","blur","value","toString","length","max","maxlength","undefined","onIntersect","isIntersecting","entries","target","vInputRef","vFieldRef","controlHeight","textareaRef","isActive","active","onFocus","document","activeElement","onControlClick","onControlMousedown","onClear","stopPropagation","onInput","el","trim","caretPosition","selectionStart","selectionEnd","sizerRef","isPlainOrUnderlined","includes","variant","calculateInputHeight","style","getComputedStyle","fieldStyle","$el","padding","getPropertyValue","height","scrollHeight","lineHeight","minHeight","Math","maxHeight","Infinity","newHeight","floor","density","observer","ResizeObserver","observe","disconnect","hasCounter","hasDetails","details","rootAttrs","inputAttrs","modelValue","_","inputProps","filterProps","fieldProps","_createVNode","_mergeProps","$event","class","_ref2","id","isDisabled","isDirty","isReadonly","isValid","dirty","_ref3","fieldClass","slotProps","_Fragment","_withDirectives","_resolveDirective","handler","once","_vModelText","disabled"],"sources":["../../../src/components/VTextarea/VTextarea.tsx"],"sourcesContent":["// Styles\nimport './VTextarea.sass'\nimport '../VTextField/VTextField.sass'\n\n// Components\nimport { VCounter } from '@/components/VCounter/VCounter'\nimport { VField } from '@/components/VField'\nimport { filterFieldProps, makeVFieldProps } from '@/components/VField/VField'\nimport { makeVInputProps, VInput } from '@/components/VInput/VInput'\n\n// Composables\nimport { useFocus } from '@/composables/focus'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Directives\nimport Intersect from '@/directives/intersect'\n\n// Utilities\nimport { computed, nextTick, onBeforeUnmount, onMounted, ref, shallowRef, watch, watchEffect } from 'vue'\nimport { callEvent, clamp, convertToUnit, filterInputAttrs, genericComponent, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VCounterSlot } from '@/components/VCounter/VCounter'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { VInputSlots } from '@/components/VInput/VInput'\n\nexport const makeVTextareaProps = propsFactory({\n autoGrow: Boolean,\n autofocus: Boolean,\n counter: [Boolean, Number, String] as PropType<true | number | string>,\n counterValue: Function as PropType<(value: any) => number>,\n prefix: String,\n placeholder: String,\n persistentPlaceholder: Boolean,\n persistentCounter: Boolean,\n noResize: Boolean,\n rows: {\n type: [Number, String],\n default: 5,\n validator: (v: any) => !isNaN(parseFloat(v)),\n },\n maxRows: {\n type: [Number, String],\n validator: (v: any) => !isNaN(parseFloat(v)),\n },\n suffix: String,\n modelModifiers: Object as PropType<Record<string, boolean>>,\n\n ...omit(makeVInputProps(), ['centerAffix']),\n ...omit(makeVFieldProps(), ['centerAffix']),\n}, 'VTextarea')\n\ntype VTextareaSlots = Omit<VInputSlots & VFieldSlots, 'default'> & {\n counter: VCounterSlot\n}\n\nexport const VTextarea = genericComponent<VTextareaSlots>()({\n name: 'VTextarea',\n\n directives: { Intersect },\n\n inheritAttrs: false,\n\n props: makeVTextareaProps(),\n\n emits: {\n 'click:control': (e: MouseEvent) => true,\n 'mousedown:control': (e: MouseEvent) => true,\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': (val: string) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const model = useProxiedModel(props, 'modelValue')\n const { isFocused, focus, blur } = useFocus(props)\n const counterValue = computed(() => {\n return typeof props.counterValue === 'function'\n ? props.counterValue(model.value)\n : (model.value || '').toString().length\n })\n const max = computed(() => {\n if (attrs.maxlength) return attrs.maxlength as string | number\n\n if (\n !props.counter ||\n (typeof props.counter !== 'number' &&\n typeof props.counter !== 'string')\n ) return undefined\n\n return props.counter\n })\n\n function onIntersect (\n isIntersecting: boolean,\n entries: IntersectionObserverEntry[]\n ) {\n if (!props.autofocus || !isIntersecting) return\n\n (entries[0].target as HTMLInputElement)?.focus?.()\n }\n\n const vInputRef = ref<VInput>()\n const vFieldRef = ref<VInput>()\n const controlHeight = shallowRef('')\n const textareaRef = ref<HTMLInputElement>()\n const isActive = computed(() => (\n props.persistentPlaceholder ||\n isFocused.value ||\n props.active\n ))\n\n function onFocus () {\n if (textareaRef.value !== document.activeElement) {\n textareaRef.value?.focus()\n }\n\n if (!isFocused.value) focus()\n }\n function onControlClick (e: MouseEvent) {\n onFocus()\n\n emit('click:control', e)\n }\n function onControlMousedown (e: MouseEvent) {\n emit('mousedown:control', e)\n }\n function onClear (e: MouseEvent) {\n e.stopPropagation()\n\n onFocus()\n\n nextTick(() => {\n model.value = ''\n\n callEvent(props['onClick:clear'], e)\n })\n }\n function onInput (e: Event) {\n const el = e.target as HTMLTextAreaElement\n model.value = el.value\n if (props.modelModifiers?.trim) {\n const caretPosition = [el.selectionStart, el.selectionEnd]\n nextTick(() => {\n el.selectionStart = caretPosition[0]\n el.selectionEnd = caretPosition[1]\n })\n }\n }\n\n const sizerRef = ref<HTMLTextAreaElement>()\n const rows = ref(+props.rows)\n const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant))\n watchEffect(() => {\n if (!props.autoGrow) rows.value = +props.rows\n })\n function calculateInputHeight () {\n if (!props.autoGrow) return\n\n nextTick(() => {\n if (!sizerRef.value || !vFieldRef.value) return\n\n const style = getComputedStyle(sizerRef.value)\n const fieldStyle = getComputedStyle(vFieldRef.value.$el)\n\n const padding = parseFloat(style.getPropertyValue('--v-field-padding-top')) +\n parseFloat(style.getPropertyValue('--v-input-padding-top')) +\n parseFloat(style.getPropertyValue('--v-field-padding-bottom'))\n\n const height = sizerRef.value.scrollHeight\n const lineHeight = parseFloat(style.lineHeight)\n const minHeight = Math.max(\n parseFloat(props.rows) * lineHeight + padding,\n parseFloat(fieldStyle.getPropertyValue('--v-input-control-height'))\n )\n const maxHeight = parseFloat(props.maxRows!) * lineHeight + padding || Infinity\n const newHeight = clamp(height ?? 0, minHeight, maxHeight)\n rows.value = Math.floor((newHeight - padding) / lineHeight)\n\n controlHeight.value = convertToUnit(newHeight)\n })\n }\n\n onMounted(calculateInputHeight)\n watch(model, calculateInputHeight)\n watch(() => props.rows, calculateInputHeight)\n watch(() => props.maxRows, calculateInputHeight)\n watch(() => props.density, calculateInputHeight)\n\n let observer: ResizeObserver | undefined\n watch(sizerRef, val => {\n if (val) {\n observer = new ResizeObserver(calculateInputHeight)\n observer.observe(sizerRef.value!)\n } else {\n observer?.disconnect()\n }\n })\n onBeforeUnmount(() => {\n observer?.disconnect()\n })\n\n useRender(() => {\n const hasCounter = !!(slots.counter || props.counter || props.counterValue)\n const hasDetails = !!(hasCounter || slots.details)\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n const { modelValue: _, ...inputProps } = VInput.filterProps(props)\n const fieldProps = filterFieldProps(props)\n\n return (\n <VInput\n ref={ vInputRef }\n v-model={ model.value }\n class={[\n 'v-textarea v-text-field',\n {\n 'v-textarea--prefixed': props.prefix,\n 'v-textarea--suffixed': props.suffix,\n 'v-text-field--prefixed': props.prefix,\n 'v-text-field--suffixed': props.suffix,\n 'v-textarea--auto-grow': props.autoGrow,\n 'v-textarea--no-resize': props.noResize || props.autoGrow,\n 'v-input--plain-underlined': isPlainOrUnderlined.value,\n },\n props.class,\n ]}\n style={ props.style }\n { ...rootAttrs }\n { ...inputProps }\n centerAffix={ false }\n focused={ isFocused.value }\n >\n {{\n ...slots,\n default: ({\n id,\n isDisabled,\n isDirty,\n isReadonly,\n isValid,\n }) => (\n <VField\n ref={ vFieldRef }\n style={{\n '--v-textarea-control-height': controlHeight.value,\n }}\n onClick={ onControlClick }\n onMousedown={ onControlMousedown }\n onClick:clear={ onClear }\n onClick:prependInner={ props['onClick:prependInner'] }\n onClick:appendInner={ props['onClick:appendInner'] }\n { ...fieldProps }\n id={ id.value }\n active={ isActive.value || isDirty.value }\n centerAffix={ false }\n dirty={ isDirty.value || props.dirty }\n disabled={ isDisabled.value }\n focused={ isFocused.value }\n error={ isValid.value === false }\n >\n {{\n ...slots,\n default: ({\n props: { class: fieldClass, ...slotProps },\n }) => (\n <>\n { props.prefix && (\n <span class=\"v-text-field__prefix\">\n { props.prefix }\n </span>\n )}\n\n <textarea\n ref={ textareaRef }\n class={ fieldClass }\n value={ model.value }\n onInput={ onInput }\n v-intersect={[{\n handler: onIntersect,\n }, null, ['once']]}\n autofocus={ props.autofocus }\n readonly={ isReadonly.value }\n disabled={ isDisabled.value }\n placeholder={ props.placeholder }\n rows={ props.rows }\n name={ props.name }\n onFocus={ onFocus }\n onBlur={ blur }\n { ...slotProps }\n { ...inputAttrs }\n />\n\n { props.autoGrow && (\n <textarea\n class={[\n fieldClass,\n 'v-textarea__sizer',\n ]}\n id={ `${slotProps.id}-sizer` }\n v-model={ model.value }\n ref={ sizerRef }\n readonly\n aria-hidden=\"true\"\n />\n )}\n\n { props.suffix && (\n <span class=\"v-text-field__suffix\">\n { props.suffix }\n </span>\n )}\n </>\n ),\n }}\n </VField>\n ),\n details: hasDetails ? slotProps => (\n <>\n { slots.details?.(slotProps) }\n\n { hasCounter && (\n <>\n <span />\n\n <VCounter\n active={ props.persistentCounter || isFocused.value }\n value={ counterValue.value }\n max={ max.value }\n disabled={ props.disabled }\n v-slots:default={ slots.counter }\n />\n </>\n )}\n </>\n ) : undefined,\n }}\n </VInput>\n )\n })\n\n return forwardRefs({}, vInputRef, vFieldRef, textareaRef)\n },\n})\n\nexport type VTextarea = InstanceType<typeof VTextarea>\n"],"mappings":"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","ignoreList":[]}