@vuetify/nightly 3.9.0-master.2025-07-11 → 3.9.0-master.2025-07-12

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 (54) hide show
  1. package/CHANGELOG.md +7 -3
  2. package/dist/json/attributes.json +1721 -1677
  3. package/dist/json/importMap-labs.json +20 -20
  4. package/dist/json/importMap.json +164 -164
  5. package/dist/json/tags.json +11 -0
  6. package/dist/json/web-types.json +3223 -2901
  7. package/dist/vuetify-labs.cjs +35 -22
  8. package/dist/vuetify-labs.css +5286 -5286
  9. package/dist/vuetify-labs.d.ts +834 -286
  10. package/dist/vuetify-labs.esm.js +35 -22
  11. package/dist/vuetify-labs.esm.js.map +1 -1
  12. package/dist/vuetify-labs.js +35 -22
  13. package/dist/vuetify-labs.min.css +2 -2
  14. package/dist/vuetify.cjs +28 -20
  15. package/dist/vuetify.cjs.map +1 -1
  16. package/dist/vuetify.css +4118 -4118
  17. package/dist/vuetify.d.ts +580 -209
  18. package/dist/vuetify.esm.js +28 -20
  19. package/dist/vuetify.esm.js.map +1 -1
  20. package/dist/vuetify.js +28 -20
  21. package/dist/vuetify.js.map +1 -1
  22. package/dist/vuetify.min.css +2 -2
  23. package/dist/vuetify.min.js +14 -14
  24. package/dist/vuetify.min.js.map +1 -1
  25. package/lib/components/VAutocomplete/VAutocomplete.d.ts +121 -36
  26. package/lib/components/VCombobox/VCombobox.d.ts +121 -36
  27. package/lib/components/VField/VField.d.ts +13 -0
  28. package/lib/components/VField/VField.js +2 -1
  29. package/lib/components/VField/VField.js.map +1 -1
  30. package/lib/components/VFileInput/VFileInput.d.ts +13 -0
  31. package/lib/components/VFileInput/VFileInput.js +3 -1
  32. package/lib/components/VFileInput/VFileInput.js.map +1 -1
  33. package/lib/components/VInput/VInput.d.ts +2 -1
  34. package/lib/components/VInput/VInput.js +15 -14
  35. package/lib/components/VInput/VInput.js.map +1 -1
  36. package/lib/components/VNumberInput/VNumberInput.d.ts +116 -36
  37. package/lib/components/VSelect/VSelect.d.ts +121 -36
  38. package/lib/components/VTextField/VTextField.d.ts +40 -9
  39. package/lib/components/VTextField/VTextField.js +2 -0
  40. package/lib/components/VTextField/VTextField.js.map +1 -1
  41. package/lib/components/VTextarea/VTextarea.d.ts +13 -0
  42. package/lib/components/VTextarea/VTextarea.js +3 -1
  43. package/lib/components/VTextarea/VTextarea.js.map +1 -1
  44. package/lib/entry-bundler.js +1 -1
  45. package/lib/framework.d.ts +55 -55
  46. package/lib/framework.js +1 -1
  47. package/lib/labs/VColorInput/VColorInput.d.ts +13 -0
  48. package/lib/labs/VDateInput/VDateInput.d.ts +145 -44
  49. package/lib/labs/VDateInput/VDateInput.js +4 -1
  50. package/lib/labs/VDateInput/VDateInput.js.map +1 -1
  51. package/lib/labs/VMaskInput/VMaskInput.d.ts +121 -36
  52. package/lib/labs/VMaskInput/VMaskInput.js +4 -2
  53. package/lib/labs/VMaskInput/VMaskInput.js.map +1 -1
  54. package/package.json +1 -1
@@ -18,6 +18,7 @@ export declare const makeVTextFieldProps: <Defaults extends {
18
18
  centerAffix?: unknown;
19
19
  color?: unknown;
20
20
  baseColor?: unknown;
21
+ details?: unknown;
21
22
  dirty?: unknown;
22
23
  disabled?: unknown;
23
24
  glow?: unknown;
@@ -150,6 +151,10 @@ export declare const makeVTextFieldProps: <Defaults extends {
150
151
  type: PropType<unknown extends Defaults["baseColor"] ? string : string | Defaults["baseColor"]>;
151
152
  default: unknown extends Defaults["baseColor"] ? string : string | Defaults["baseColor"];
152
153
  };
154
+ details: unknown extends Defaults["details"] ? BooleanConstructor : {
155
+ type: PropType<unknown extends Defaults["details"] ? boolean : boolean | Defaults["details"]>;
156
+ default: unknown extends Defaults["details"] ? boolean : boolean | Defaults["details"];
157
+ };
153
158
  dirty: unknown extends Defaults["dirty"] ? BooleanConstructor : {
154
159
  type: PropType<unknown extends Defaults["dirty"] ? boolean : boolean | Defaults["dirty"]>;
155
160
  default: unknown extends Defaults["dirty"] ? boolean : boolean | Defaults["dirty"];
@@ -434,6 +439,7 @@ export declare const VTextField: {
434
439
  error: boolean;
435
440
  active: boolean;
436
441
  direction: "horizontal" | "vertical";
442
+ details: boolean;
437
443
  style: import("vue").StyleValue;
438
444
  autofocus: boolean;
439
445
  disabled: boolean;
@@ -784,6 +790,7 @@ export declare const VTextField: {
784
790
  variant: "filled" | "outlined" | "plain" | "underlined" | "solo" | "solo-inverted" | "solo-filled";
785
791
  error: boolean;
786
792
  active: boolean;
793
+ details: boolean;
787
794
  style: import("vue").StyleValue;
788
795
  disabled: boolean;
789
796
  focused: boolean;
@@ -802,6 +809,7 @@ export declare const VTextField: {
802
809
  variant: "filled" | "outlined" | "plain" | "underlined" | "solo" | "solo-inverted" | "solo-filled";
803
810
  error: boolean;
804
811
  active: boolean;
812
+ details: boolean;
805
813
  style: import("vue").StyleValue;
806
814
  disabled: boolean;
807
815
  focused: boolean;
@@ -829,7 +837,7 @@ export declare const VTextField: {
829
837
  'onClick:appendInner'?: ((args_0: MouseEvent) => void) | undefined;
830
838
  'onClick:prependInner'?: ((args_0: MouseEvent) => void) | undefined;
831
839
  centerAffix?: boolean | undefined;
832
- } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, "flat" | "reverse" | "variant" | "error" | "active" | "style" | "disabled" | "focused" | "rounded" | "tile" | "clearIcon" | "centerAffix" | "glow" | "clearable" | "dirty" | "persistentClear" | "singleLine">;
840
+ } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, "flat" | "reverse" | "variant" | "error" | "active" | "details" | "style" | "disabled" | "focused" | "rounded" | "tile" | "clearIcon" | "centerAffix" | "glow" | "clearable" | "dirty" | "persistentClear" | "singleLine">;
833
841
  $attrs: {
834
842
  [x: string]: unknown;
835
843
  };
@@ -860,6 +868,7 @@ export declare const VTextField: {
860
868
  variant: "filled" | "outlined" | "plain" | "underlined" | "solo" | "solo-inverted" | "solo-filled";
861
869
  error: boolean;
862
870
  active: boolean;
871
+ details: boolean;
863
872
  style: import("vue").StyleValue;
864
873
  disabled: boolean;
865
874
  focused: boolean;
@@ -902,6 +911,7 @@ export declare const VTextField: {
902
911
  variant: "filled" | "outlined" | "plain" | "underlined" | "solo" | "solo-inverted" | "solo-filled";
903
912
  error: boolean;
904
913
  active: boolean;
914
+ details: boolean;
905
915
  style: import("vue").StyleValue;
906
916
  disabled: boolean;
907
917
  focused: boolean;
@@ -952,6 +962,7 @@ export declare const VTextField: {
952
962
  variant: "filled" | "outlined" | "plain" | "underlined" | "solo" | "solo-inverted" | "solo-filled";
953
963
  error: boolean;
954
964
  active: boolean;
965
+ details: boolean;
955
966
  style: import("vue").StyleValue;
956
967
  disabled: boolean;
957
968
  focused: boolean;
@@ -970,6 +981,7 @@ export declare const VTextField: {
970
981
  variant: "filled" | "outlined" | "plain" | "underlined" | "solo" | "solo-inverted" | "solo-filled";
971
982
  error: boolean;
972
983
  active: boolean;
984
+ details: boolean;
973
985
  style: import("vue").StyleValue;
974
986
  disabled: boolean;
975
987
  focused: boolean;
@@ -1000,13 +1012,13 @@ export declare const VTextField: {
1000
1012
  centerAffix?: boolean | undefined;
1001
1013
  } & {
1002
1014
  "onUpdate:focused"?: ((focused: boolean) => any) | undefined;
1003
- }, ("flat" | "reverse" | "variant" | "error" | "active" | "style" | "disabled" | "focused" | "rounded" | "tile" | "clearIcon" | "centerAffix" | "glow" | "clearable" | "dirty" | "persistentClear" | "singleLine") | "controlRef" | "fieldIconColor"> & import("vue").ShallowUnwrapRef<{
1015
+ }, ("flat" | "reverse" | "variant" | "error" | "active" | "details" | "style" | "disabled" | "focused" | "rounded" | "tile" | "clearIcon" | "centerAffix" | "glow" | "clearable" | "dirty" | "persistentClear" | "singleLine") | "controlRef" | "fieldIconColor"> & import("vue").ShallowUnwrapRef<{
1004
1016
  controlRef: import("vue").Ref<HTMLElement | undefined, HTMLElement | undefined>;
1005
1017
  fieldIconColor: import("vue").ComputedRef<string | undefined>;
1006
1018
  }> & {} & import("vue").ComponentCustomProperties & {} & import("../../util/index.js").GenericProps<{
1007
1019
  modelValue?: unknown;
1008
1020
  'onUpdate:modelValue'?: ((value: unknown) => void) | undefined;
1009
- }, VFieldSlots>, "id" | "color" | "loading" | "label" | "class" | "theme" | "$children" | "v-slots" | "v-slot:default" | keyof import("vue").VNodeProps | "onUpdate:focused" | "modelValue" | "onUpdate:modelValue" | "baseColor" | "bgColor" | "v-slot:loader" | "iconColor" | "v-slot:label" | "appendInnerIcon" | "prependInnerIcon" | "onClick:clear" | "onClick:appendInner" | "onClick:prependInner" | "v-slot:clear" | "v-slot:prepend-inner" | "v-slot:append-inner" | ("flat" | "reverse" | "variant" | "error" | "active" | "style" | "disabled" | "focused" | "rounded" | "tile" | "clearIcon" | "centerAffix" | "glow" | "clearable" | "dirty" | "persistentClear" | "singleLine")>, `$${any}`> & {
1021
+ }, VFieldSlots>, "id" | "color" | "loading" | "label" | "class" | "theme" | "$children" | "v-slots" | "v-slot:default" | keyof import("vue").VNodeProps | "onUpdate:focused" | "modelValue" | "onUpdate:modelValue" | "baseColor" | "bgColor" | "v-slot:loader" | "iconColor" | "v-slot:label" | "appendInnerIcon" | "prependInnerIcon" | "onClick:clear" | "onClick:appendInner" | "onClick:prependInner" | "v-slot:clear" | "v-slot:prepend-inner" | "v-slot:append-inner" | ("flat" | "reverse" | "variant" | "error" | "active" | "details" | "style" | "disabled" | "focused" | "rounded" | "tile" | "clearIcon" | "centerAffix" | "glow" | "clearable" | "dirty" | "persistentClear" | "singleLine")>, `$${any}`> & {
1010
1022
  _allExposed: {
1011
1023
  reset: () => Promise<void>;
1012
1024
  resetValidation: () => Promise<void>;
@@ -1030,6 +1042,7 @@ export declare const VTextField: {
1030
1042
  error: boolean;
1031
1043
  active: boolean;
1032
1044
  direction: "horizontal" | "vertical";
1045
+ details: boolean;
1033
1046
  style: import("vue").StyleValue;
1034
1047
  autofocus: boolean;
1035
1048
  disabled: boolean;
@@ -1085,6 +1098,7 @@ export declare const VTextField: {
1085
1098
  error: boolean;
1086
1099
  active: boolean;
1087
1100
  direction: "horizontal" | "vertical";
1101
+ details: boolean;
1088
1102
  style: import("vue").StyleValue;
1089
1103
  autofocus: boolean;
1090
1104
  disabled: boolean;
@@ -1435,6 +1449,7 @@ export declare const VTextField: {
1435
1449
  variant: "filled" | "outlined" | "plain" | "underlined" | "solo" | "solo-inverted" | "solo-filled";
1436
1450
  error: boolean;
1437
1451
  active: boolean;
1452
+ details: boolean;
1438
1453
  style: import("vue").StyleValue;
1439
1454
  disabled: boolean;
1440
1455
  focused: boolean;
@@ -1453,6 +1468,7 @@ export declare const VTextField: {
1453
1468
  variant: "filled" | "outlined" | "plain" | "underlined" | "solo" | "solo-inverted" | "solo-filled";
1454
1469
  error: boolean;
1455
1470
  active: boolean;
1471
+ details: boolean;
1456
1472
  style: import("vue").StyleValue;
1457
1473
  disabled: boolean;
1458
1474
  focused: boolean;
@@ -1480,7 +1496,7 @@ export declare const VTextField: {
1480
1496
  'onClick:appendInner'?: ((args_0: MouseEvent) => void) | undefined;
1481
1497
  'onClick:prependInner'?: ((args_0: MouseEvent) => void) | undefined;
1482
1498
  centerAffix?: boolean | undefined;
1483
- } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, "flat" | "reverse" | "variant" | "error" | "active" | "style" | "disabled" | "focused" | "rounded" | "tile" | "clearIcon" | "centerAffix" | "glow" | "clearable" | "dirty" | "persistentClear" | "singleLine">;
1499
+ } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, "flat" | "reverse" | "variant" | "error" | "active" | "details" | "style" | "disabled" | "focused" | "rounded" | "tile" | "clearIcon" | "centerAffix" | "glow" | "clearable" | "dirty" | "persistentClear" | "singleLine">;
1484
1500
  $attrs: {
1485
1501
  [x: string]: unknown;
1486
1502
  };
@@ -1511,6 +1527,7 @@ export declare const VTextField: {
1511
1527
  variant: "filled" | "outlined" | "plain" | "underlined" | "solo" | "solo-inverted" | "solo-filled";
1512
1528
  error: boolean;
1513
1529
  active: boolean;
1530
+ details: boolean;
1514
1531
  style: import("vue").StyleValue;
1515
1532
  disabled: boolean;
1516
1533
  focused: boolean;
@@ -1553,6 +1570,7 @@ export declare const VTextField: {
1553
1570
  variant: "filled" | "outlined" | "plain" | "underlined" | "solo" | "solo-inverted" | "solo-filled";
1554
1571
  error: boolean;
1555
1572
  active: boolean;
1573
+ details: boolean;
1556
1574
  style: import("vue").StyleValue;
1557
1575
  disabled: boolean;
1558
1576
  focused: boolean;
@@ -1603,6 +1621,7 @@ export declare const VTextField: {
1603
1621
  variant: "filled" | "outlined" | "plain" | "underlined" | "solo" | "solo-inverted" | "solo-filled";
1604
1622
  error: boolean;
1605
1623
  active: boolean;
1624
+ details: boolean;
1606
1625
  style: import("vue").StyleValue;
1607
1626
  disabled: boolean;
1608
1627
  focused: boolean;
@@ -1621,6 +1640,7 @@ export declare const VTextField: {
1621
1640
  variant: "filled" | "outlined" | "plain" | "underlined" | "solo" | "solo-inverted" | "solo-filled";
1622
1641
  error: boolean;
1623
1642
  active: boolean;
1643
+ details: boolean;
1624
1644
  style: import("vue").StyleValue;
1625
1645
  disabled: boolean;
1626
1646
  focused: boolean;
@@ -1651,13 +1671,13 @@ export declare const VTextField: {
1651
1671
  centerAffix?: boolean | undefined;
1652
1672
  } & {
1653
1673
  "onUpdate:focused"?: ((focused: boolean) => any) | undefined;
1654
- }, ("flat" | "reverse" | "variant" | "error" | "active" | "style" | "disabled" | "focused" | "rounded" | "tile" | "clearIcon" | "centerAffix" | "glow" | "clearable" | "dirty" | "persistentClear" | "singleLine") | "controlRef" | "fieldIconColor"> & import("vue").ShallowUnwrapRef<{
1674
+ }, ("flat" | "reverse" | "variant" | "error" | "active" | "details" | "style" | "disabled" | "focused" | "rounded" | "tile" | "clearIcon" | "centerAffix" | "glow" | "clearable" | "dirty" | "persistentClear" | "singleLine") | "controlRef" | "fieldIconColor"> & import("vue").ShallowUnwrapRef<{
1655
1675
  controlRef: import("vue").Ref<HTMLElement | undefined, HTMLElement | undefined>;
1656
1676
  fieldIconColor: import("vue").ComputedRef<string | undefined>;
1657
1677
  }> & {} & import("vue").ComponentCustomProperties & {} & import("../../util/index.js").GenericProps<{
1658
1678
  modelValue?: unknown;
1659
1679
  'onUpdate:modelValue'?: ((value: unknown) => void) | undefined;
1660
- }, VFieldSlots>, "id" | "color" | "loading" | "label" | "class" | "theme" | "$children" | "v-slots" | "v-slot:default" | keyof import("vue").VNodeProps | "onUpdate:focused" | "modelValue" | "onUpdate:modelValue" | "baseColor" | "bgColor" | "v-slot:loader" | "iconColor" | "v-slot:label" | "appendInnerIcon" | "prependInnerIcon" | "onClick:clear" | "onClick:appendInner" | "onClick:prependInner" | "v-slot:clear" | "v-slot:prepend-inner" | "v-slot:append-inner" | ("flat" | "reverse" | "variant" | "error" | "active" | "style" | "disabled" | "focused" | "rounded" | "tile" | "clearIcon" | "centerAffix" | "glow" | "clearable" | "dirty" | "persistentClear" | "singleLine")>, `$${any}`> & {
1680
+ }, VFieldSlots>, "id" | "color" | "loading" | "label" | "class" | "theme" | "$children" | "v-slots" | "v-slot:default" | keyof import("vue").VNodeProps | "onUpdate:focused" | "modelValue" | "onUpdate:modelValue" | "baseColor" | "bgColor" | "v-slot:loader" | "iconColor" | "v-slot:label" | "appendInnerIcon" | "prependInnerIcon" | "onClick:clear" | "onClick:appendInner" | "onClick:prependInner" | "v-slot:clear" | "v-slot:prepend-inner" | "v-slot:append-inner" | ("flat" | "reverse" | "variant" | "error" | "active" | "details" | "style" | "disabled" | "focused" | "rounded" | "tile" | "clearIcon" | "centerAffix" | "glow" | "clearable" | "dirty" | "persistentClear" | "singleLine")>, `$${any}`> & {
1661
1681
  _allExposed: {
1662
1682
  reset: () => Promise<void>;
1663
1683
  resetValidation: () => Promise<void>;
@@ -1676,6 +1696,7 @@ export declare const VTextField: {
1676
1696
  error: boolean;
1677
1697
  active: boolean;
1678
1698
  direction: "horizontal" | "vertical";
1699
+ details: boolean;
1679
1700
  style: import("vue").StyleValue;
1680
1701
  autofocus: boolean;
1681
1702
  disabled: boolean;
@@ -1711,6 +1732,7 @@ export declare const VTextField: {
1711
1732
  error: boolean;
1712
1733
  active: boolean;
1713
1734
  direction: "horizontal" | "vertical";
1735
+ details: boolean;
1714
1736
  style: import("vue").StyleValue;
1715
1737
  autofocus: boolean;
1716
1738
  disabled: boolean;
@@ -2061,6 +2083,7 @@ export declare const VTextField: {
2061
2083
  variant: "filled" | "outlined" | "plain" | "underlined" | "solo" | "solo-inverted" | "solo-filled";
2062
2084
  error: boolean;
2063
2085
  active: boolean;
2086
+ details: boolean;
2064
2087
  style: import("vue").StyleValue;
2065
2088
  disabled: boolean;
2066
2089
  focused: boolean;
@@ -2079,6 +2102,7 @@ export declare const VTextField: {
2079
2102
  variant: "filled" | "outlined" | "plain" | "underlined" | "solo" | "solo-inverted" | "solo-filled";
2080
2103
  error: boolean;
2081
2104
  active: boolean;
2105
+ details: boolean;
2082
2106
  style: import("vue").StyleValue;
2083
2107
  disabled: boolean;
2084
2108
  focused: boolean;
@@ -2106,7 +2130,7 @@ export declare const VTextField: {
2106
2130
  'onClick:appendInner'?: ((args_0: MouseEvent) => void) | undefined;
2107
2131
  'onClick:prependInner'?: ((args_0: MouseEvent) => void) | undefined;
2108
2132
  centerAffix?: boolean | undefined;
2109
- } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, "flat" | "reverse" | "variant" | "error" | "active" | "style" | "disabled" | "focused" | "rounded" | "tile" | "clearIcon" | "centerAffix" | "glow" | "clearable" | "dirty" | "persistentClear" | "singleLine">;
2133
+ } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, "flat" | "reverse" | "variant" | "error" | "active" | "details" | "style" | "disabled" | "focused" | "rounded" | "tile" | "clearIcon" | "centerAffix" | "glow" | "clearable" | "dirty" | "persistentClear" | "singleLine">;
2110
2134
  $attrs: {
2111
2135
  [x: string]: unknown;
2112
2136
  };
@@ -2137,6 +2161,7 @@ export declare const VTextField: {
2137
2161
  variant: "filled" | "outlined" | "plain" | "underlined" | "solo" | "solo-inverted" | "solo-filled";
2138
2162
  error: boolean;
2139
2163
  active: boolean;
2164
+ details: boolean;
2140
2165
  style: import("vue").StyleValue;
2141
2166
  disabled: boolean;
2142
2167
  focused: boolean;
@@ -2179,6 +2204,7 @@ export declare const VTextField: {
2179
2204
  variant: "filled" | "outlined" | "plain" | "underlined" | "solo" | "solo-inverted" | "solo-filled";
2180
2205
  error: boolean;
2181
2206
  active: boolean;
2207
+ details: boolean;
2182
2208
  style: import("vue").StyleValue;
2183
2209
  disabled: boolean;
2184
2210
  focused: boolean;
@@ -2229,6 +2255,7 @@ export declare const VTextField: {
2229
2255
  variant: "filled" | "outlined" | "plain" | "underlined" | "solo" | "solo-inverted" | "solo-filled";
2230
2256
  error: boolean;
2231
2257
  active: boolean;
2258
+ details: boolean;
2232
2259
  style: import("vue").StyleValue;
2233
2260
  disabled: boolean;
2234
2261
  focused: boolean;
@@ -2247,6 +2274,7 @@ export declare const VTextField: {
2247
2274
  variant: "filled" | "outlined" | "plain" | "underlined" | "solo" | "solo-inverted" | "solo-filled";
2248
2275
  error: boolean;
2249
2276
  active: boolean;
2277
+ details: boolean;
2250
2278
  style: import("vue").StyleValue;
2251
2279
  disabled: boolean;
2252
2280
  focused: boolean;
@@ -2277,13 +2305,13 @@ export declare const VTextField: {
2277
2305
  centerAffix?: boolean | undefined;
2278
2306
  } & {
2279
2307
  "onUpdate:focused"?: ((focused: boolean) => any) | undefined;
2280
- }, ("flat" | "reverse" | "variant" | "error" | "active" | "style" | "disabled" | "focused" | "rounded" | "tile" | "clearIcon" | "centerAffix" | "glow" | "clearable" | "dirty" | "persistentClear" | "singleLine") | "controlRef" | "fieldIconColor"> & import("vue").ShallowUnwrapRef<{
2308
+ }, ("flat" | "reverse" | "variant" | "error" | "active" | "details" | "style" | "disabled" | "focused" | "rounded" | "tile" | "clearIcon" | "centerAffix" | "glow" | "clearable" | "dirty" | "persistentClear" | "singleLine") | "controlRef" | "fieldIconColor"> & import("vue").ShallowUnwrapRef<{
2281
2309
  controlRef: import("vue").Ref<HTMLElement | undefined, HTMLElement | undefined>;
2282
2310
  fieldIconColor: import("vue").ComputedRef<string | undefined>;
2283
2311
  }> & {} & import("vue").ComponentCustomProperties & {} & import("../../util/index.js").GenericProps<{
2284
2312
  modelValue?: unknown;
2285
2313
  'onUpdate:modelValue'?: ((value: unknown) => void) | undefined;
2286
- }, VFieldSlots>, "id" | "color" | "loading" | "label" | "class" | "theme" | "$children" | "v-slots" | "v-slot:default" | keyof import("vue").VNodeProps | "onUpdate:focused" | "modelValue" | "onUpdate:modelValue" | "baseColor" | "bgColor" | "v-slot:loader" | "iconColor" | "v-slot:label" | "appendInnerIcon" | "prependInnerIcon" | "onClick:clear" | "onClick:appendInner" | "onClick:prependInner" | "v-slot:clear" | "v-slot:prepend-inner" | "v-slot:append-inner" | ("flat" | "reverse" | "variant" | "error" | "active" | "style" | "disabled" | "focused" | "rounded" | "tile" | "clearIcon" | "centerAffix" | "glow" | "clearable" | "dirty" | "persistentClear" | "singleLine")>, `$${any}`> & {
2314
+ }, VFieldSlots>, "id" | "color" | "loading" | "label" | "class" | "theme" | "$children" | "v-slots" | "v-slot:default" | keyof import("vue").VNodeProps | "onUpdate:focused" | "modelValue" | "onUpdate:modelValue" | "baseColor" | "bgColor" | "v-slot:loader" | "iconColor" | "v-slot:label" | "appendInnerIcon" | "prependInnerIcon" | "onClick:clear" | "onClick:appendInner" | "onClick:prependInner" | "v-slot:clear" | "v-slot:prepend-inner" | "v-slot:append-inner" | ("flat" | "reverse" | "variant" | "error" | "active" | "details" | "style" | "disabled" | "focused" | "rounded" | "tile" | "clearIcon" | "centerAffix" | "glow" | "clearable" | "dirty" | "persistentClear" | "singleLine")>, `$${any}`> & {
2287
2315
  _allExposed: {
2288
2316
  reset: () => Promise<void>;
2289
2317
  resetValidation: () => Promise<void>;
@@ -2307,6 +2335,7 @@ export declare const VTextField: {
2307
2335
  error: boolean;
2308
2336
  active: boolean;
2309
2337
  direction: "horizontal" | "vertical";
2338
+ details: boolean;
2310
2339
  style: import("vue").StyleValue;
2311
2340
  autofocus: boolean;
2312
2341
  disabled: boolean;
@@ -2374,6 +2403,7 @@ export declare const VTextField: {
2374
2403
  };
2375
2404
  color: StringConstructor;
2376
2405
  baseColor: StringConstructor;
2406
+ details: BooleanConstructor;
2377
2407
  dirty: BooleanConstructor;
2378
2408
  disabled: {
2379
2409
  type: BooleanConstructor;
@@ -2485,6 +2515,7 @@ export declare const VTextField: {
2485
2515
  };
2486
2516
  color: StringConstructor;
2487
2517
  baseColor: StringConstructor;
2518
+ details: BooleanConstructor;
2488
2519
  dirty: BooleanConstructor;
2489
2520
  disabled: {
2490
2521
  type: BooleanConstructor;
@@ -141,6 +141,7 @@ export const VTextField = genericComponent()({
141
141
  isDirty,
142
142
  isReadonly,
143
143
  isValid,
144
+ hasDetails,
144
145
  reset
145
146
  } = _ref2;
146
147
  return _createVNode(VField, _mergeProps({
@@ -157,6 +158,7 @@ export const VTextField = genericComponent()({
157
158
  "dirty": isDirty.value || props.dirty,
158
159
  "disabled": isDisabled.value,
159
160
  "focused": isFocused.value,
161
+ "details": hasDetails.value,
160
162
  "error": isValid.value === false
161
163
  }), {
162
164
  ...slots,
@@ -1 +1 @@
1
- {"version":3,"file":"VTextField.js","names":["VCounter","makeVFieldProps","VField","makeVInputProps","VInput","useAutofocus","useFocus","forwardRefs","useProxiedModel","vIntersect","cloneVNode","computed","nextTick","ref","callEvent","filterInputAttrs","genericComponent","propsFactory","useRender","activeTypes","makeVTextFieldProps","autofocus","Boolean","counter","Number","String","counterValue","Function","prefix","placeholder","persistentPlaceholder","persistentCounter","suffix","role","type","default","modelModifiers","Object","VTextField","name","directives","inheritAttrs","props","emits","e","focused","val","setup","_ref","attrs","emit","slots","model","isFocused","focus","blur","onIntersect","value","toString","length","max","maxlength","undefined","isPlainOrUnderlined","includes","variant","vInputRef","vFieldRef","inputRef","isActive","active","onFocus","document","activeElement","onControlMousedown","target","preventDefault","onControlClick","onClear","reset","stopPropagation","onInput","el","trim","caretPosition","selectionStart","selectionEnd","hasCounter","hasDetails","details","rootAttrs","inputAttrs","modelValue","_","inputProps","filterProps","fieldProps","_createVNode","_mergeProps","$event","class","style","_ref2","id","isDisabled","isDirty","isReadonly","isValid","dirty","_ref3","fieldClass","slotProps","inputNode","_withDirectives","_createElementVNode","handler","once","_Fragment","_normalizeClass","disabled"],"sources":["../../../src/components/VTextField/VTextField.tsx"],"sourcesContent":["// Styles\nimport './VTextField.sass'\n\n// Components\nimport { VCounter } from '@/components/VCounter/VCounter'\nimport { makeVFieldProps, VField } from '@/components/VField/VField'\nimport { makeVInputProps, VInput } from '@/components/VInput/VInput'\n\n// Composables\nimport { useAutofocus } from '@/composables/autofocus'\nimport { useFocus } from '@/composables/focus'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Directives\nimport vIntersect from '@/directives/intersect'\n\n// Utilities\nimport { cloneVNode, computed, nextTick, ref } from 'vue'\nimport { callEvent, 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\nconst activeTypes = ['color', 'file', 'time', 'date', 'datetime-local', 'week', 'month']\n\nexport const makeVTextFieldProps = propsFactory({\n autofocus: Boolean,\n counter: [Boolean, Number, String],\n counterValue: [Number, Function] as PropType<number | ((value: any) => number)>,\n prefix: String,\n placeholder: String,\n persistentPlaceholder: Boolean,\n persistentCounter: Boolean,\n suffix: String,\n role: String,\n type: {\n type: String,\n default: 'text',\n },\n modelModifiers: Object as PropType<Record<string, boolean>>,\n\n ...makeVInputProps(),\n ...makeVFieldProps(),\n}, 'VTextField')\n\nexport type VTextFieldSlots = Omit<VInputSlots & VFieldSlots, 'default'> & {\n default: never\n counter: VCounterSlot\n}\n\nexport const VTextField = genericComponent<VTextFieldSlots>()({\n name: 'VTextField',\n\n directives: { vIntersect },\n\n inheritAttrs: false,\n\n props: makeVTextFieldProps(),\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 { onIntersect } = useAutofocus(props)\n const counterValue = computed(() => {\n return typeof props.counterValue === 'function' ? props.counterValue(model.value)\n : typeof props.counterValue === 'number' ? props.counterValue\n : (model.value ?? '').toString().length\n })\n const max = computed(() => {\n if (attrs.maxlength) return attrs.maxlength as unknown as undefined\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 const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant))\n\n const vInputRef = ref<VInput>()\n const vFieldRef = ref<VField>()\n const inputRef = ref<HTMLInputElement>()\n const isActive = computed(() => (\n activeTypes.includes(props.type) ||\n props.persistentPlaceholder ||\n isFocused.value ||\n props.active\n ))\n function onFocus () {\n if (!isFocused.value) focus()\n\n nextTick(() => {\n if (inputRef.value !== document.activeElement) {\n nextTick(() => inputRef.value?.focus())\n }\n })\n }\n function onControlMousedown (e: MouseEvent) {\n emit('mousedown:control', e)\n\n if (e.target === inputRef.value) return\n\n onFocus()\n e.preventDefault()\n }\n function onControlClick (e: MouseEvent) {\n emit('click:control', e)\n }\n function onClear (e: MouseEvent, reset: () => void) {\n e.stopPropagation()\n\n onFocus()\n\n nextTick(() => {\n model.value = null\n reset()\n\n callEvent(props['onClick:clear'], e)\n })\n }\n function onInput (e: Event) {\n const el = e.target as HTMLInputElement\n model.value = el.value\n if (\n props.modelModifiers?.trim &&\n ['text', 'search', 'password', 'tel', 'url'].includes(props.type)\n ) {\n const caretPosition = [el.selectionStart, el.selectionEnd]\n nextTick(() => {\n el.selectionStart = caretPosition[0]\n el.selectionEnd = caretPosition[1]\n })\n }\n }\n\n useRender(() => {\n const hasCounter = !!(slots.counter || (props.counter !== false && props.counter != null))\n const hasDetails = !!(hasCounter || slots.details)\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n const { modelValue: _, ...inputProps } = VInput.filterProps(props)\n const fieldProps = VField.filterProps(props)\n\n return (\n <VInput\n ref={ vInputRef }\n v-model={ model.value }\n class={[\n 'v-text-field',\n {\n 'v-text-field--prefixed': props.prefix,\n 'v-text-field--suffixed': props.suffix,\n 'v-input--plain-underlined': isPlainOrUnderlined.value,\n },\n props.class,\n ]}\n style={ props.style }\n { ...rootAttrs }\n { ...inputProps }\n centerAffix={ !isPlainOrUnderlined.value }\n focused={ isFocused.value }\n >\n {{\n ...slots,\n default: ({\n id,\n isDisabled,\n isDirty,\n isReadonly,\n isValid,\n reset,\n }) => (\n <VField\n ref={ vFieldRef }\n onMousedown={ onControlMousedown }\n onClick={ onControlClick }\n onClick:clear={ (e: MouseEvent) => onClear(e, reset) }\n onClick:prependInner={ props['onClick:prependInner'] }\n onClick:appendInner={ props['onClick:appendInner'] }\n role={ props.role }\n { ...fieldProps }\n id={ id.value }\n active={ isActive.value || isDirty.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 const inputNode = (\n <input\n ref={ inputRef }\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 name={ props.name }\n placeholder={ props.placeholder }\n size={ 1 }\n type={ props.type }\n onFocus={ onFocus }\n onBlur={ blur }\n { ...slotProps }\n { ...inputAttrs }\n />\n )\n\n return (\n <>\n { props.prefix && (\n <span class=\"v-text-field__prefix\">\n <span class=\"v-text-field__prefix__text\">\n { props.prefix }\n </span>\n </span>\n )}\n\n { slots.default ? (\n <div\n class={ fieldClass }\n data-no-activator=\"\"\n >\n { slots.default() }\n { inputNode }\n </div>\n ) : cloneVNode(inputNode, { class: fieldClass })}\n\n { props.suffix && (\n <span class=\"v-text-field__suffix\">\n <span class=\"v-text-field__suffix__text\">\n { props.suffix }\n </span>\n </span>\n )}\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, inputRef)\n },\n})\n\nexport type VTextField = InstanceType<typeof VTextField>\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VTextField.js","names":["VCounter","makeVFieldProps","VField","makeVInputProps","VInput","useAutofocus","useFocus","forwardRefs","useProxiedModel","vIntersect","cloneVNode","computed","nextTick","ref","callEvent","filterInputAttrs","genericComponent","propsFactory","useRender","activeTypes","makeVTextFieldProps","autofocus","Boolean","counter","Number","String","counterValue","Function","prefix","placeholder","persistentPlaceholder","persistentCounter","suffix","role","type","default","modelModifiers","Object","VTextField","name","directives","inheritAttrs","props","emits","e","focused","val","setup","_ref","attrs","emit","slots","model","isFocused","focus","blur","onIntersect","value","toString","length","max","maxlength","undefined","isPlainOrUnderlined","includes","variant","vInputRef","vFieldRef","inputRef","isActive","active","onFocus","document","activeElement","onControlMousedown","target","preventDefault","onControlClick","onClear","reset","stopPropagation","onInput","el","trim","caretPosition","selectionStart","selectionEnd","hasCounter","hasDetails","details","rootAttrs","inputAttrs","modelValue","_","inputProps","filterProps","fieldProps","_createVNode","_mergeProps","$event","class","style","_ref2","id","isDisabled","isDirty","isReadonly","isValid","dirty","_ref3","fieldClass","slotProps","inputNode","_withDirectives","_createElementVNode","handler","once","_Fragment","_normalizeClass","disabled"],"sources":["../../../src/components/VTextField/VTextField.tsx"],"sourcesContent":["// Styles\nimport './VTextField.sass'\n\n// Components\nimport { VCounter } from '@/components/VCounter/VCounter'\nimport { makeVFieldProps, VField } from '@/components/VField/VField'\nimport { makeVInputProps, VInput } from '@/components/VInput/VInput'\n\n// Composables\nimport { useAutofocus } from '@/composables/autofocus'\nimport { useFocus } from '@/composables/focus'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Directives\nimport vIntersect from '@/directives/intersect'\n\n// Utilities\nimport { cloneVNode, computed, nextTick, ref } from 'vue'\nimport { callEvent, 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\nconst activeTypes = ['color', 'file', 'time', 'date', 'datetime-local', 'week', 'month']\n\nexport const makeVTextFieldProps = propsFactory({\n autofocus: Boolean,\n counter: [Boolean, Number, String],\n counterValue: [Number, Function] as PropType<number | ((value: any) => number)>,\n prefix: String,\n placeholder: String,\n persistentPlaceholder: Boolean,\n persistentCounter: Boolean,\n suffix: String,\n role: String,\n type: {\n type: String,\n default: 'text',\n },\n modelModifiers: Object as PropType<Record<string, boolean>>,\n\n ...makeVInputProps(),\n ...makeVFieldProps(),\n}, 'VTextField')\n\nexport type VTextFieldSlots = Omit<VInputSlots & VFieldSlots, 'default'> & {\n default: never\n counter: VCounterSlot\n}\n\nexport const VTextField = genericComponent<VTextFieldSlots>()({\n name: 'VTextField',\n\n directives: { vIntersect },\n\n inheritAttrs: false,\n\n props: makeVTextFieldProps(),\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 { onIntersect } = useAutofocus(props)\n const counterValue = computed(() => {\n return typeof props.counterValue === 'function' ? props.counterValue(model.value)\n : typeof props.counterValue === 'number' ? props.counterValue\n : (model.value ?? '').toString().length\n })\n const max = computed(() => {\n if (attrs.maxlength) return attrs.maxlength as unknown as undefined\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 const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant))\n\n const vInputRef = ref<VInput>()\n const vFieldRef = ref<VField>()\n const inputRef = ref<HTMLInputElement>()\n const isActive = computed(() => (\n activeTypes.includes(props.type) ||\n props.persistentPlaceholder ||\n isFocused.value ||\n props.active\n ))\n function onFocus () {\n if (!isFocused.value) focus()\n\n nextTick(() => {\n if (inputRef.value !== document.activeElement) {\n nextTick(() => inputRef.value?.focus())\n }\n })\n }\n function onControlMousedown (e: MouseEvent) {\n emit('mousedown:control', e)\n\n if (e.target === inputRef.value) return\n\n onFocus()\n e.preventDefault()\n }\n function onControlClick (e: MouseEvent) {\n emit('click:control', e)\n }\n function onClear (e: MouseEvent, reset: () => void) {\n e.stopPropagation()\n\n onFocus()\n\n nextTick(() => {\n model.value = null\n reset()\n\n callEvent(props['onClick:clear'], e)\n })\n }\n function onInput (e: Event) {\n const el = e.target as HTMLInputElement\n model.value = el.value\n if (\n props.modelModifiers?.trim &&\n ['text', 'search', 'password', 'tel', 'url'].includes(props.type)\n ) {\n const caretPosition = [el.selectionStart, el.selectionEnd]\n nextTick(() => {\n el.selectionStart = caretPosition[0]\n el.selectionEnd = caretPosition[1]\n })\n }\n }\n\n useRender(() => {\n const hasCounter = !!(slots.counter || (props.counter !== false && props.counter != null))\n const hasDetails = !!(hasCounter || slots.details)\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n const { modelValue: _, ...inputProps } = VInput.filterProps(props)\n const fieldProps = VField.filterProps(props)\n\n return (\n <VInput\n ref={ vInputRef }\n v-model={ model.value }\n class={[\n 'v-text-field',\n {\n 'v-text-field--prefixed': props.prefix,\n 'v-text-field--suffixed': props.suffix,\n 'v-input--plain-underlined': isPlainOrUnderlined.value,\n },\n props.class,\n ]}\n style={ props.style }\n { ...rootAttrs }\n { ...inputProps }\n centerAffix={ !isPlainOrUnderlined.value }\n focused={ isFocused.value }\n >\n {{\n ...slots,\n default: ({\n id,\n isDisabled,\n isDirty,\n isReadonly,\n isValid,\n hasDetails,\n reset,\n }) => (\n <VField\n ref={ vFieldRef }\n onMousedown={ onControlMousedown }\n onClick={ onControlClick }\n onClick:clear={ (e: MouseEvent) => onClear(e, reset) }\n onClick:prependInner={ props['onClick:prependInner'] }\n onClick:appendInner={ props['onClick:appendInner'] }\n role={ props.role }\n { ...fieldProps }\n id={ id.value }\n active={ isActive.value || isDirty.value }\n dirty={ isDirty.value || props.dirty }\n disabled={ isDisabled.value }\n focused={ isFocused.value }\n details={ hasDetails.value }\n error={ isValid.value === false }\n >\n {{\n ...slots,\n default: ({\n props: { class: fieldClass, ...slotProps },\n }) => {\n const inputNode = (\n <input\n ref={ inputRef }\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 name={ props.name }\n placeholder={ props.placeholder }\n size={ 1 }\n type={ props.type }\n onFocus={ onFocus }\n onBlur={ blur }\n { ...slotProps }\n { ...inputAttrs }\n />\n )\n\n return (\n <>\n { props.prefix && (\n <span class=\"v-text-field__prefix\">\n <span class=\"v-text-field__prefix__text\">\n { props.prefix }\n </span>\n </span>\n )}\n\n { slots.default ? (\n <div\n class={ fieldClass }\n data-no-activator=\"\"\n >\n { slots.default() }\n { inputNode }\n </div>\n ) : cloneVNode(inputNode, { class: fieldClass })}\n\n { props.suffix && (\n <span class=\"v-text-field__suffix\">\n <span class=\"v-text-field__suffix__text\">\n { props.suffix }\n </span>\n </span>\n )}\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, inputRef)\n },\n})\n\nexport type VTextField = InstanceType<typeof VTextField>\n"],"mappings":"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","ignoreList":[]}
@@ -17,6 +17,7 @@ export declare const makeVTextareaProps: <Defaults extends {
17
17
  centerAffix?: unknown;
18
18
  color?: unknown;
19
19
  baseColor?: unknown;
20
+ details?: unknown;
20
21
  dirty?: unknown;
21
22
  disabled?: unknown;
22
23
  glow?: unknown;
@@ -151,6 +152,10 @@ export declare const makeVTextareaProps: <Defaults extends {
151
152
  type: PropType<unknown extends Defaults["baseColor"] ? string : string | Defaults["baseColor"]>;
152
153
  default: unknown extends Defaults["baseColor"] ? string : string | Defaults["baseColor"];
153
154
  };
155
+ details: unknown extends Defaults["details"] ? BooleanConstructor : {
156
+ type: PropType<unknown extends Defaults["details"] ? boolean : boolean | Defaults["details"]>;
157
+ default: unknown extends Defaults["details"] ? boolean : boolean | Defaults["details"];
158
+ };
154
159
  dirty: unknown extends Defaults["dirty"] ? BooleanConstructor : {
155
160
  type: PropType<unknown extends Defaults["dirty"] ? boolean : boolean | Defaults["dirty"]>;
156
161
  default: unknown extends Defaults["dirty"] ? boolean : boolean | Defaults["dirty"];
@@ -446,6 +451,7 @@ export declare const VTextarea: {
446
451
  error: boolean;
447
452
  active: boolean;
448
453
  direction: "horizontal" | "vertical";
454
+ details: boolean;
449
455
  style: import("vue").StyleValue;
450
456
  autofocus: boolean;
451
457
  disabled: boolean;
@@ -809,6 +815,7 @@ export declare const VTextarea: {
809
815
  error: boolean;
810
816
  active: boolean;
811
817
  direction: "horizontal" | "vertical";
818
+ details: boolean;
812
819
  style: import("vue").StyleValue;
813
820
  autofocus: boolean;
814
821
  disabled: boolean;
@@ -865,6 +872,7 @@ export declare const VTextarea: {
865
872
  error: boolean;
866
873
  active: boolean;
867
874
  direction: "horizontal" | "vertical";
875
+ details: boolean;
868
876
  style: import("vue").StyleValue;
869
877
  autofocus: boolean;
870
878
  disabled: boolean;
@@ -1222,6 +1230,7 @@ export declare const VTextarea: {
1222
1230
  error: boolean;
1223
1231
  active: boolean;
1224
1232
  direction: "horizontal" | "vertical";
1233
+ details: boolean;
1225
1234
  style: import("vue").StyleValue;
1226
1235
  autofocus: boolean;
1227
1236
  disabled: boolean;
@@ -1259,6 +1268,7 @@ export declare const VTextarea: {
1259
1268
  error: boolean;
1260
1269
  active: boolean;
1261
1270
  direction: "horizontal" | "vertical";
1271
+ details: boolean;
1262
1272
  style: import("vue").StyleValue;
1263
1273
  autofocus: boolean;
1264
1274
  disabled: boolean;
@@ -1622,6 +1632,7 @@ export declare const VTextarea: {
1622
1632
  error: boolean;
1623
1633
  active: boolean;
1624
1634
  direction: "horizontal" | "vertical";
1635
+ details: boolean;
1625
1636
  style: import("vue").StyleValue;
1626
1637
  autofocus: boolean;
1627
1638
  disabled: boolean;
@@ -1691,6 +1702,7 @@ export declare const VTextarea: {
1691
1702
  };
1692
1703
  color: StringConstructor;
1693
1704
  baseColor: StringConstructor;
1705
+ details: BooleanConstructor;
1694
1706
  dirty: BooleanConstructor;
1695
1707
  disabled: {
1696
1708
  type: BooleanConstructor;
@@ -1808,6 +1820,7 @@ export declare const VTextarea: {
1808
1820
  };
1809
1821
  color: StringConstructor;
1810
1822
  baseColor: StringConstructor;
1823
+ details: BooleanConstructor;
1811
1824
  dirty: BooleanConstructor;
1812
1825
  disabled: {
1813
1826
  type: BooleanConstructor;
@@ -189,7 +189,8 @@ export const VTextarea = genericComponent()({
189
189
  isDisabled,
190
190
  isDirty,
191
191
  isReadonly,
192
- isValid
192
+ isValid,
193
+ hasDetails
193
194
  } = _ref2;
194
195
  return _createVNode(VField, _mergeProps({
195
196
  "ref": vFieldRef,
@@ -208,6 +209,7 @@ export const VTextarea = genericComponent()({
208
209
  "dirty": isDirty.value || props.dirty,
209
210
  "disabled": isDisabled.value,
210
211
  "focused": isFocused.value,
212
+ "details": hasDetails.value,
211
213
  "error": isValid.value === false
212
214
  }), {
213
215
  ...slots,