@vuetify/nightly 4.0.0-dev-20230421.0 → 4.0.0-dev-20230426.0

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 (126) hide show
  1. package/CHANGELOG.md +3 -2
  2. package/dist/_component-variables-labs.sass +1 -0
  3. package/dist/json/attributes.json +56 -4
  4. package/dist/json/importMap-labs.json +4 -0
  5. package/dist/json/importMap.json +40 -40
  6. package/dist/json/tags.json +18 -0
  7. package/dist/json/web-types.json +237 -10
  8. package/dist/vuetify-labs.css +1500 -1475
  9. package/dist/vuetify-labs.d.ts +343 -0
  10. package/dist/vuetify-labs.esm.js +221 -10
  11. package/dist/vuetify-labs.esm.js.map +1 -1
  12. package/dist/vuetify-labs.js +221 -10
  13. package/dist/vuetify-labs.min.css +2 -2
  14. package/dist/vuetify.css +9 -9
  15. package/dist/vuetify.d.ts +10 -10
  16. package/dist/vuetify.esm.js +15 -10
  17. package/dist/vuetify.esm.js.map +1 -1
  18. package/dist/vuetify.js +15 -10
  19. package/dist/vuetify.js.map +1 -1
  20. package/dist/vuetify.min.css +2 -2
  21. package/dist/vuetify.min.js +719 -719
  22. package/dist/vuetify.min.js.map +1 -1
  23. package/lib/components/VSlider/slider.mjs +2 -5
  24. package/lib/components/VSlider/slider.mjs.map +1 -1
  25. package/lib/composables/intersectionObserver.mjs +2 -2
  26. package/lib/composables/intersectionObserver.mjs.map +1 -1
  27. package/lib/entry-bundler.mjs +1 -1
  28. package/lib/framework.mjs +1 -1
  29. package/lib/index.d.ts +10 -10
  30. package/lib/labs/VInfiniteScroll/VInfiniteScroll.css +26 -0
  31. package/lib/labs/VInfiniteScroll/VInfiniteScroll.mjs +215 -0
  32. package/lib/labs/VInfiniteScroll/VInfiniteScroll.mjs.map +1 -0
  33. package/lib/labs/VInfiniteScroll/VInfiniteScroll.sass +25 -0
  34. package/lib/labs/VInfiniteScroll/_variables.scss +3 -0
  35. package/lib/labs/VInfiniteScroll/index.d.ts +349 -0
  36. package/lib/labs/VInfiniteScroll/index.mjs +2 -0
  37. package/lib/labs/VInfiniteScroll/index.mjs.map +1 -0
  38. package/lib/labs/components.d.ts +343 -2
  39. package/lib/labs/components.mjs +1 -0
  40. package/lib/labs/components.mjs.map +1 -1
  41. package/lib/locale/af.mjs +5 -1
  42. package/lib/locale/af.mjs.map +1 -1
  43. package/lib/locale/ar.mjs +5 -1
  44. package/lib/locale/ar.mjs.map +1 -1
  45. package/lib/locale/az.mjs +5 -1
  46. package/lib/locale/az.mjs.map +1 -1
  47. package/lib/locale/bg.mjs +5 -1
  48. package/lib/locale/bg.mjs.map +1 -1
  49. package/lib/locale/ca.mjs +5 -1
  50. package/lib/locale/ca.mjs.map +1 -1
  51. package/lib/locale/ckb.mjs +5 -1
  52. package/lib/locale/ckb.mjs.map +1 -1
  53. package/lib/locale/cs.mjs +5 -1
  54. package/lib/locale/cs.mjs.map +1 -1
  55. package/lib/locale/da.mjs +5 -1
  56. package/lib/locale/da.mjs.map +1 -1
  57. package/lib/locale/de.mjs +5 -1
  58. package/lib/locale/de.mjs.map +1 -1
  59. package/lib/locale/el.mjs +5 -1
  60. package/lib/locale/el.mjs.map +1 -1
  61. package/lib/locale/en.mjs +5 -1
  62. package/lib/locale/en.mjs.map +1 -1
  63. package/lib/locale/es.mjs +5 -1
  64. package/lib/locale/es.mjs.map +1 -1
  65. package/lib/locale/et.mjs +5 -1
  66. package/lib/locale/et.mjs.map +1 -1
  67. package/lib/locale/fa.mjs +5 -1
  68. package/lib/locale/fa.mjs.map +1 -1
  69. package/lib/locale/fi.mjs +5 -1
  70. package/lib/locale/fi.mjs.map +1 -1
  71. package/lib/locale/fr.mjs +5 -1
  72. package/lib/locale/fr.mjs.map +1 -1
  73. package/lib/locale/he.mjs +5 -1
  74. package/lib/locale/he.mjs.map +1 -1
  75. package/lib/locale/hr.mjs +5 -1
  76. package/lib/locale/hr.mjs.map +1 -1
  77. package/lib/locale/hu.mjs +5 -1
  78. package/lib/locale/hu.mjs.map +1 -1
  79. package/lib/locale/id.mjs +5 -1
  80. package/lib/locale/id.mjs.map +1 -1
  81. package/lib/locale/index.d.ts +168 -0
  82. package/lib/locale/it.mjs +5 -1
  83. package/lib/locale/it.mjs.map +1 -1
  84. package/lib/locale/ja.mjs +5 -1
  85. package/lib/locale/ja.mjs.map +1 -1
  86. package/lib/locale/ko.mjs +5 -1
  87. package/lib/locale/ko.mjs.map +1 -1
  88. package/lib/locale/lt.mjs +5 -1
  89. package/lib/locale/lt.mjs.map +1 -1
  90. package/lib/locale/lv.mjs +5 -1
  91. package/lib/locale/lv.mjs.map +1 -1
  92. package/lib/locale/nl.mjs +5 -1
  93. package/lib/locale/nl.mjs.map +1 -1
  94. package/lib/locale/no.mjs +5 -1
  95. package/lib/locale/no.mjs.map +1 -1
  96. package/lib/locale/pl.mjs +5 -1
  97. package/lib/locale/pl.mjs.map +1 -1
  98. package/lib/locale/pt.mjs +5 -1
  99. package/lib/locale/pt.mjs.map +1 -1
  100. package/lib/locale/ro.mjs +5 -1
  101. package/lib/locale/ro.mjs.map +1 -1
  102. package/lib/locale/ru.mjs +5 -1
  103. package/lib/locale/ru.mjs.map +1 -1
  104. package/lib/locale/sk.mjs +5 -1
  105. package/lib/locale/sk.mjs.map +1 -1
  106. package/lib/locale/sl.mjs +5 -1
  107. package/lib/locale/sl.mjs.map +1 -1
  108. package/lib/locale/sr-Cyrl.mjs +5 -1
  109. package/lib/locale/sr-Cyrl.mjs.map +1 -1
  110. package/lib/locale/sr-Latn.mjs +5 -1
  111. package/lib/locale/sr-Latn.mjs.map +1 -1
  112. package/lib/locale/sv.mjs +5 -1
  113. package/lib/locale/sv.mjs.map +1 -1
  114. package/lib/locale/th.mjs +5 -1
  115. package/lib/locale/th.mjs.map +1 -1
  116. package/lib/locale/tr.mjs +5 -1
  117. package/lib/locale/tr.mjs.map +1 -1
  118. package/lib/locale/uk.mjs +5 -1
  119. package/lib/locale/uk.mjs.map +1 -1
  120. package/lib/locale/vi.mjs +5 -1
  121. package/lib/locale/vi.mjs.map +1 -1
  122. package/lib/locale/zh-Hans.mjs +5 -1
  123. package/lib/locale/zh-Hans.mjs.map +1 -1
  124. package/lib/locale/zh-Hant.mjs +5 -1
  125. package/lib/locale/zh-Hant.mjs.map +1 -1
  126. package/package.json +1 -1
@@ -66019,6 +66019,347 @@ declare const VDataTableFooter: {
66019
66019
  showCurrentPage: BooleanConstructor;
66020
66020
  }>>;
66021
66021
 
66022
+ type InfiniteScrollSide = 'start' | 'end' | 'both';
66023
+ type InfiniteScrollStatus = 'ok' | 'empty' | 'loading' | 'error';
66024
+ type InfiniteScrollSlot = {
66025
+ side: InfiniteScrollSide;
66026
+ props: {
66027
+ onClick: () => (side: InfiniteScrollSide) => void;
66028
+ color: string | undefined;
66029
+ };
66030
+ };
66031
+ declare const VInfiniteScroll: {
66032
+ new (...args: any[]): {
66033
+ $: vue.ComponentInternalInstance;
66034
+ $data: {};
66035
+ $props: Partial<{
66036
+ direction: "horizontal" | "vertical";
66037
+ mode: "manual" | "intersect";
66038
+ side: InfiniteScrollSide;
66039
+ loadMoreText: string;
66040
+ emptyText: string;
66041
+ }> & Omit<{
66042
+ direction: "horizontal" | "vertical";
66043
+ mode: "manual" | "intersect";
66044
+ side: InfiniteScrollSide;
66045
+ loadMoreText: string;
66046
+ emptyText: string;
66047
+ } & {
66048
+ height?: string | number | undefined;
66049
+ width?: string | number | undefined;
66050
+ color?: string | undefined;
66051
+ margin?: string | number | undefined;
66052
+ maxHeight?: string | number | undefined;
66053
+ maxWidth?: string | number | undefined;
66054
+ minHeight?: string | number | undefined;
66055
+ minWidth?: string | number | undefined;
66056
+ } & {
66057
+ $children?: {} | vue.VNodeChild | {
66058
+ default?: ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66059
+ loading?: ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66060
+ error?: ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66061
+ empty?: ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66062
+ 'load-more'?: ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66063
+ };
66064
+ $slots?: {
66065
+ default?: ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66066
+ loading?: ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66067
+ error?: ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66068
+ empty?: ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66069
+ 'load-more'?: ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66070
+ } | undefined;
66071
+ 'v-slots'?: {
66072
+ default?: false | ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66073
+ loading?: false | ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66074
+ error?: false | ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66075
+ empty?: false | ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66076
+ 'load-more'?: false | ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66077
+ } | undefined;
66078
+ } & {
66079
+ "v-slot:default"?: false | ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66080
+ "v-slot:loading"?: false | ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66081
+ "v-slot:error"?: false | ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66082
+ "v-slot:empty"?: false | ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66083
+ "v-slot:load-more"?: false | ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66084
+ } & {
66085
+ onLoad?: ((options: {
66086
+ side: InfiniteScrollSide;
66087
+ done: (status: InfiniteScrollStatus) => void;
66088
+ }) => any) | undefined;
66089
+ } & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, "direction" | "mode" | "side" | "loadMoreText" | "emptyText">;
66090
+ $attrs: {
66091
+ [x: string]: unknown;
66092
+ };
66093
+ $refs: {
66094
+ [x: string]: unknown;
66095
+ };
66096
+ $slots: Readonly<{
66097
+ [name: string]: vue.Slot | undefined;
66098
+ }>;
66099
+ $root: vue.ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, vue.ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string>, {}> | null;
66100
+ $parent: vue.ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, vue.ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string>, {}> | null;
66101
+ $emit: (event: "load", options: {
66102
+ side: InfiniteScrollSide;
66103
+ done: (status: InfiniteScrollStatus) => void;
66104
+ }) => void;
66105
+ $el: any;
66106
+ $options: vue.ComponentOptionsBase<{
66107
+ direction: "horizontal" | "vertical";
66108
+ mode: "manual" | "intersect";
66109
+ side: InfiniteScrollSide;
66110
+ loadMoreText: string;
66111
+ emptyText: string;
66112
+ } & {
66113
+ height?: string | number | undefined;
66114
+ width?: string | number | undefined;
66115
+ color?: string | undefined;
66116
+ margin?: string | number | undefined;
66117
+ maxHeight?: string | number | undefined;
66118
+ maxWidth?: string | number | undefined;
66119
+ minHeight?: string | number | undefined;
66120
+ minWidth?: string | number | undefined;
66121
+ } & {
66122
+ $children?: {} | vue.VNodeChild | {
66123
+ default?: ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66124
+ loading?: ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66125
+ error?: ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66126
+ empty?: ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66127
+ 'load-more'?: ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66128
+ };
66129
+ $slots?: {
66130
+ default?: ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66131
+ loading?: ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66132
+ error?: ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66133
+ empty?: ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66134
+ 'load-more'?: ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66135
+ } | undefined;
66136
+ 'v-slots'?: {
66137
+ default?: false | ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66138
+ loading?: false | ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66139
+ error?: false | ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66140
+ empty?: false | ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66141
+ 'load-more'?: false | ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66142
+ } | undefined;
66143
+ } & {
66144
+ "v-slot:default"?: false | ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66145
+ "v-slot:loading"?: false | ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66146
+ "v-slot:error"?: false | ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66147
+ "v-slot:empty"?: false | ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66148
+ "v-slot:load-more"?: false | ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66149
+ } & {
66150
+ onLoad?: ((options: {
66151
+ side: InfiniteScrollSide;
66152
+ done: (status: InfiniteScrollStatus) => void;
66153
+ }) => any) | undefined;
66154
+ }, void, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
66155
+ load: (options: {
66156
+ side: InfiniteScrollSide;
66157
+ done: (status: InfiniteScrollStatus) => void;
66158
+ }) => true;
66159
+ }, string, {
66160
+ direction: "horizontal" | "vertical";
66161
+ mode: "manual" | "intersect";
66162
+ side: InfiniteScrollSide;
66163
+ loadMoreText: string;
66164
+ emptyText: string;
66165
+ }, {}, string> & {
66166
+ beforeCreate?: ((() => void) | (() => void)[]) | undefined;
66167
+ created?: ((() => void) | (() => void)[]) | undefined;
66168
+ beforeMount?: ((() => void) | (() => void)[]) | undefined;
66169
+ mounted?: ((() => void) | (() => void)[]) | undefined;
66170
+ beforeUpdate?: ((() => void) | (() => void)[]) | undefined;
66171
+ updated?: ((() => void) | (() => void)[]) | undefined;
66172
+ activated?: ((() => void) | (() => void)[]) | undefined;
66173
+ deactivated?: ((() => void) | (() => void)[]) | undefined;
66174
+ beforeDestroy?: ((() => void) | (() => void)[]) | undefined;
66175
+ beforeUnmount?: ((() => void) | (() => void)[]) | undefined;
66176
+ destroyed?: ((() => void) | (() => void)[]) | undefined;
66177
+ unmounted?: ((() => void) | (() => void)[]) | undefined;
66178
+ renderTracked?: (((e: vue.DebuggerEvent) => void) | ((e: vue.DebuggerEvent) => void)[]) | undefined;
66179
+ renderTriggered?: (((e: vue.DebuggerEvent) => void) | ((e: vue.DebuggerEvent) => void)[]) | undefined;
66180
+ errorCaptured?: (((err: unknown, instance: vue.ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, vue.ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string>, {}> | null, info: string) => boolean | void) | ((err: unknown, instance: vue.ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, vue.ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string>, {}> | null, info: string) => boolean | void)[]) | undefined;
66181
+ };
66182
+ $forceUpdate: () => void;
66183
+ $nextTick: typeof nextTick;
66184
+ $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (args_0: R, args_1: R) => any : (...args: any) => any, options?: vue.WatchOptions<boolean> | undefined): vue.WatchStopHandle;
66185
+ } & {
66186
+ direction: "horizontal" | "vertical";
66187
+ mode: "manual" | "intersect";
66188
+ side: InfiniteScrollSide;
66189
+ loadMoreText: string;
66190
+ emptyText: string;
66191
+ } & {
66192
+ height?: string | number | undefined;
66193
+ width?: string | number | undefined;
66194
+ color?: string | undefined;
66195
+ margin?: string | number | undefined;
66196
+ maxHeight?: string | number | undefined;
66197
+ maxWidth?: string | number | undefined;
66198
+ minHeight?: string | number | undefined;
66199
+ minWidth?: string | number | undefined;
66200
+ } & {
66201
+ $children?: {} | vue.VNodeChild | {
66202
+ default?: ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66203
+ loading?: ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66204
+ error?: ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66205
+ empty?: ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66206
+ 'load-more'?: ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66207
+ };
66208
+ $slots?: {
66209
+ default?: ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66210
+ loading?: ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66211
+ error?: ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66212
+ empty?: ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66213
+ 'load-more'?: ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66214
+ } | undefined;
66215
+ 'v-slots'?: {
66216
+ default?: false | ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66217
+ loading?: false | ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66218
+ error?: false | ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66219
+ empty?: false | ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66220
+ 'load-more'?: false | ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66221
+ } | undefined;
66222
+ } & {
66223
+ "v-slot:default"?: false | ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66224
+ "v-slot:loading"?: false | ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66225
+ "v-slot:error"?: false | ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66226
+ "v-slot:empty"?: false | ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66227
+ "v-slot:load-more"?: false | ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66228
+ } & {
66229
+ onLoad?: ((options: {
66230
+ side: InfiniteScrollSide;
66231
+ done: (status: InfiniteScrollStatus) => void;
66232
+ }) => any) | undefined;
66233
+ } & vue.ShallowUnwrapRef<{}> & {} & vue.ComponentCustomProperties & {};
66234
+ __isFragment?: undefined;
66235
+ __isTeleport?: undefined;
66236
+ __isSuspense?: undefined;
66237
+ } & vue.ComponentOptionsBase<{
66238
+ direction: "horizontal" | "vertical";
66239
+ mode: "manual" | "intersect";
66240
+ side: InfiniteScrollSide;
66241
+ loadMoreText: string;
66242
+ emptyText: string;
66243
+ } & {
66244
+ height?: string | number | undefined;
66245
+ width?: string | number | undefined;
66246
+ color?: string | undefined;
66247
+ margin?: string | number | undefined;
66248
+ maxHeight?: string | number | undefined;
66249
+ maxWidth?: string | number | undefined;
66250
+ minHeight?: string | number | undefined;
66251
+ minWidth?: string | number | undefined;
66252
+ } & {
66253
+ $children?: {} | vue.VNodeChild | {
66254
+ default?: ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66255
+ loading?: ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66256
+ error?: ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66257
+ empty?: ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66258
+ 'load-more'?: ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66259
+ };
66260
+ $slots?: {
66261
+ default?: ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66262
+ loading?: ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66263
+ error?: ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66264
+ empty?: ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66265
+ 'load-more'?: ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66266
+ } | undefined;
66267
+ 'v-slots'?: {
66268
+ default?: false | ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66269
+ loading?: false | ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66270
+ error?: false | ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66271
+ empty?: false | ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66272
+ 'load-more'?: false | ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66273
+ } | undefined;
66274
+ } & {
66275
+ "v-slot:default"?: false | ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66276
+ "v-slot:loading"?: false | ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66277
+ "v-slot:error"?: false | ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66278
+ "v-slot:empty"?: false | ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66279
+ "v-slot:load-more"?: false | ((args_0: InfiniteScrollSlot) => vue.VNodeChild) | undefined;
66280
+ } & {
66281
+ onLoad?: ((options: {
66282
+ side: InfiniteScrollSide;
66283
+ done: (status: InfiniteScrollStatus) => void;
66284
+ }) => any) | undefined;
66285
+ }, void, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
66286
+ load: (options: {
66287
+ side: InfiniteScrollSide;
66288
+ done: (status: InfiniteScrollStatus) => void;
66289
+ }) => true;
66290
+ }, string, {
66291
+ direction: "horizontal" | "vertical";
66292
+ mode: "manual" | "intersect";
66293
+ side: InfiniteScrollSide;
66294
+ loadMoreText: string;
66295
+ emptyText: string;
66296
+ }, {}, string> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & FilterPropsOptions<{
66297
+ height: (StringConstructor | NumberConstructor)[];
66298
+ maxHeight: (StringConstructor | NumberConstructor)[];
66299
+ maxWidth: (StringConstructor | NumberConstructor)[];
66300
+ minHeight: (StringConstructor | NumberConstructor)[];
66301
+ minWidth: (StringConstructor | NumberConstructor)[];
66302
+ width: (StringConstructor | NumberConstructor)[];
66303
+ color: StringConstructor;
66304
+ direction: {
66305
+ type: PropType<"horizontal" | "vertical">;
66306
+ default: string;
66307
+ validator: (v: any) => boolean;
66308
+ };
66309
+ side: {
66310
+ type: PropType<InfiniteScrollSide>;
66311
+ default: string;
66312
+ validator: (v: any) => boolean;
66313
+ };
66314
+ mode: {
66315
+ type: PropType<"manual" | "intersect">;
66316
+ default: string;
66317
+ validator: (v: any) => boolean;
66318
+ };
66319
+ margin: (StringConstructor | NumberConstructor)[];
66320
+ loadMoreText: {
66321
+ type: StringConstructor;
66322
+ default: string;
66323
+ };
66324
+ emptyText: {
66325
+ type: StringConstructor;
66326
+ default: string;
66327
+ };
66328
+ }, vue.ExtractPropTypes<{
66329
+ height: (StringConstructor | NumberConstructor)[];
66330
+ maxHeight: (StringConstructor | NumberConstructor)[];
66331
+ maxWidth: (StringConstructor | NumberConstructor)[];
66332
+ minHeight: (StringConstructor | NumberConstructor)[];
66333
+ minWidth: (StringConstructor | NumberConstructor)[];
66334
+ width: (StringConstructor | NumberConstructor)[];
66335
+ color: StringConstructor;
66336
+ direction: {
66337
+ type: PropType<"horizontal" | "vertical">;
66338
+ default: string;
66339
+ validator: (v: any) => boolean;
66340
+ };
66341
+ side: {
66342
+ type: PropType<InfiniteScrollSide>;
66343
+ default: string;
66344
+ validator: (v: any) => boolean;
66345
+ };
66346
+ mode: {
66347
+ type: PropType<"manual" | "intersect">;
66348
+ default: string;
66349
+ validator: (v: any) => boolean;
66350
+ };
66351
+ margin: (StringConstructor | NumberConstructor)[];
66352
+ loadMoreText: {
66353
+ type: StringConstructor;
66354
+ default: string;
66355
+ };
66356
+ emptyText: {
66357
+ type: StringConstructor;
66358
+ default: string;
66359
+ };
66360
+ }>>;
66361
+ type VInfiniteScroll = InstanceType<typeof VInfiniteScroll>;
66362
+
66022
66363
  declare const VSkeletonLoader: {
66023
66364
  new (...args: any[]): {
66024
66365
  $: vue.ComponentInternalInstance;
@@ -66302,6 +66643,7 @@ declare const allComponents_d_VForm: typeof VForm;
66302
66643
  declare const allComponents_d_VHover: typeof VHover;
66303
66644
  declare const allComponents_d_VIcon: typeof VIcon;
66304
66645
  declare const allComponents_d_VImg: typeof VImg;
66646
+ declare const allComponents_d_VInfiniteScroll: typeof VInfiniteScroll;
66305
66647
  declare const allComponents_d_VInput: typeof VInput;
66306
66648
  declare const allComponents_d_VItem: typeof VItem;
66307
66649
  declare const allComponents_d_VItemGroup: typeof VItemGroup;
@@ -66444,6 +66786,7 @@ declare namespace allComponents_d {
66444
66786
  allComponents_d_VHover as VHover,
66445
66787
  allComponents_d_VIcon as VIcon,
66446
66788
  allComponents_d_VImg as VImg,
66789
+ allComponents_d_VInfiniteScroll as VInfiniteScroll,
66447
66790
  allComponents_d_VInput as VInput,
66448
66791
  allComponents_d_VItem as VItem,
66449
66792
  allComponents_d_VItemGroup as VItemGroup,
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v4.0.0-dev-20230421.0
2
+ * Vuetify v4.0.0-dev-20230426.0
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -203,6 +203,10 @@ function clamp(value) {
203
203
  let max = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
204
204
  return Math.max(min, Math.min(max, value));
205
205
  }
206
+ function getDecimals(value) {
207
+ const trimmedStr = value.toString().trim();
208
+ return trimmedStr.includes('.') ? trimmedStr.length - trimmedStr.indexOf('.') - 1 : 0;
209
+ }
206
210
  function padEnd(str, length) {
207
211
  let char = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '0';
208
212
  return str + char.repeat(Math.max(0, length - str.length));
@@ -1931,7 +1935,11 @@ var en = {
1931
1935
  item: 'Rating {0} of {1}'
1932
1936
  }
1933
1937
  },
1934
- loading: 'Loading...'
1938
+ loading: 'Loading...',
1939
+ infiniteScroll: {
1940
+ loadMore: 'Load more',
1941
+ empty: 'No more'
1942
+ }
1935
1943
  };
1936
1944
 
1937
1945
  const LANG_PREFIX = '$vuetify.';
@@ -4131,14 +4139,14 @@ const VIcon = genericComponent()({
4131
4139
  });
4132
4140
 
4133
4141
  // Utilities
4134
- function useIntersectionObserver(callback) {
4142
+ function useIntersectionObserver(callback, options) {
4135
4143
  const intersectionRef = ref();
4136
4144
  const isIntersecting = ref(false);
4137
4145
  if (SUPPORTS_INTERSECTION) {
4138
4146
  const observer = new IntersectionObserver(entries => {
4139
4147
  callback?.(entries, observer);
4140
4148
  isIntersecting.value = !!entries.find(entry => entry.isIntersecting);
4141
- });
4149
+ }, options);
4142
4150
  onBeforeUnmount(() => {
4143
4151
  observer.disconnect();
4144
4152
  });
@@ -12614,10 +12622,7 @@ const useSteps = props => {
12614
12622
  const min = computed(() => parseFloat(props.min));
12615
12623
  const max = computed(() => parseFloat(props.max));
12616
12624
  const step = computed(() => +props.step > 0 ? parseFloat(props.step) : 0);
12617
- const decimals = computed(() => {
12618
- const trimmedStep = step.value.toString().trim();
12619
- return trimmedStep.includes('.') ? trimmedStep.length - trimmedStep.indexOf('.') - 1 : 0;
12620
- });
12625
+ const decimals = computed(() => Math.max(getDecimals(step.value), getDecimals(min.value)));
12621
12626
  function roundValue(value) {
12622
12627
  if (step.value <= 0) return value;
12623
12628
  const clamped = clamp(value, min.value, max.value);
@@ -20636,6 +20641,211 @@ const VDataTableServer = genericComponent()({
20636
20641
 
20637
20642
  // Types
20638
20643
 
20644
+ const VInfiniteScrollIntersect = defineComponent({
20645
+ name: 'VInfiniteScrollIntersect',
20646
+ props: {
20647
+ side: {
20648
+ type: String,
20649
+ required: true
20650
+ },
20651
+ rootRef: null,
20652
+ rootMargin: String
20653
+ },
20654
+ emits: {
20655
+ intersect: side => true
20656
+ },
20657
+ setup(props, _ref) {
20658
+ let {
20659
+ emit
20660
+ } = _ref;
20661
+ const {
20662
+ intersectionRef,
20663
+ isIntersecting
20664
+ } = useIntersectionObserver(entries => {}, props.rootMargin ? {
20665
+ root: props.rootRef,
20666
+ rootMargin: props.rootMargin
20667
+ } : undefined);
20668
+ watch(isIntersecting, async val => {
20669
+ if (val) emit('intersect', props.side);
20670
+ });
20671
+ useRender(() => createVNode("div", {
20672
+ "class": "v-infinite-scroll-intersect",
20673
+ "ref": intersectionRef
20674
+ }, [createTextVNode("\xA0")]));
20675
+ return {};
20676
+ }
20677
+ });
20678
+ const VInfiniteScroll = genericComponent()({
20679
+ name: 'VInfiniteScroll',
20680
+ props: {
20681
+ color: String,
20682
+ direction: {
20683
+ type: String,
20684
+ default: 'vertical',
20685
+ validator: v => ['vertical', 'horizontal'].includes(v)
20686
+ },
20687
+ side: {
20688
+ type: String,
20689
+ default: 'end',
20690
+ validator: v => ['start', 'end', 'both'].includes(v)
20691
+ },
20692
+ mode: {
20693
+ type: String,
20694
+ default: 'intersect',
20695
+ validator: v => ['intersect', 'manual'].includes(v)
20696
+ },
20697
+ margin: [Number, String],
20698
+ loadMoreText: {
20699
+ type: String,
20700
+ default: '$vuetify.infiniteScroll.loadMore'
20701
+ },
20702
+ emptyText: {
20703
+ type: String,
20704
+ default: '$vuetify.infiniteScroll.empty'
20705
+ },
20706
+ ...makeDimensionProps()
20707
+ },
20708
+ emits: {
20709
+ load: options => true
20710
+ },
20711
+ setup(props, _ref2) {
20712
+ let {
20713
+ slots,
20714
+ emit
20715
+ } = _ref2;
20716
+ const rootEl = ref();
20717
+ const startStatus = ref('ok');
20718
+ const endStatus = ref('ok');
20719
+ const margin = computed(() => convertToUnit(props.margin));
20720
+ function setScrollAmount(amount) {
20721
+ if (!rootEl.value) return;
20722
+ const property = props.direction === 'vertical' ? 'scrollTop' : 'scrollLeft';
20723
+ rootEl.value[property] = amount;
20724
+ }
20725
+ function getScrollAmount() {
20726
+ if (!rootEl.value) return 0;
20727
+ const property = props.direction === 'vertical' ? 'scrollTop' : 'scrollLeft';
20728
+ return rootEl.value[property];
20729
+ }
20730
+ function getScrollSize() {
20731
+ if (!rootEl.value) return 0;
20732
+ const property = props.direction === 'vertical' ? 'scrollHeight' : 'scrollWidth';
20733
+ return rootEl.value[property];
20734
+ }
20735
+ function getContainerSize() {
20736
+ if (!rootEl.value) return 0;
20737
+ const property = props.direction === 'vertical' ? 'clientHeight' : 'clientWidth';
20738
+ return rootEl.value[property];
20739
+ }
20740
+ onMounted(() => {
20741
+ if (!rootEl.value) return;
20742
+ if (props.side === 'start') {
20743
+ setScrollAmount(getScrollSize());
20744
+ } else if (props.side === 'both') {
20745
+ setScrollAmount(getScrollSize() / 2 - getContainerSize() / 2);
20746
+ }
20747
+ });
20748
+ function setStatus(side, status) {
20749
+ if (side === 'start') {
20750
+ startStatus.value = status;
20751
+ } else if (side === 'end') {
20752
+ endStatus.value = status;
20753
+ }
20754
+ }
20755
+ function getStatus(side) {
20756
+ return side === 'start' ? startStatus.value : endStatus.value;
20757
+ }
20758
+ let previousScrollSize = 0;
20759
+ function handleIntersect(side) {
20760
+ const status = getStatus(side);
20761
+ if (!rootEl.value || status === 'loading') return;
20762
+ previousScrollSize = getScrollSize();
20763
+ setStatus(side, 'loading');
20764
+ function done(status) {
20765
+ setStatus(side, status);
20766
+ nextTick(() => {
20767
+ if (status === 'ok' && side === 'start') {
20768
+ setScrollAmount(getScrollSize() - previousScrollSize + getScrollAmount());
20769
+ }
20770
+ });
20771
+ }
20772
+ emit('load', {
20773
+ side,
20774
+ done
20775
+ });
20776
+ }
20777
+ const {
20778
+ t
20779
+ } = useLocale();
20780
+ function renderSide(side, status) {
20781
+ if (props.side !== side && props.side !== 'both') return;
20782
+ const onClick = () => handleIntersect(side);
20783
+ const slotProps = {
20784
+ side,
20785
+ props: {
20786
+ onClick,
20787
+ color: props.color
20788
+ }
20789
+ };
20790
+ if (status === 'error') return slots.error?.(slotProps);
20791
+ if (status === 'empty') return slots.empty?.(slotProps) ?? createVNode("div", null, [t(props.emptyText)]);
20792
+ if (props.mode === 'manual') {
20793
+ if (status === 'loading') {
20794
+ return slots.loading?.(slotProps) ?? createVNode(VProgressCircular, {
20795
+ "indeterminate": true,
20796
+ "color": props.color
20797
+ }, null);
20798
+ }
20799
+ return slots['load-more']?.(slotProps) ?? createVNode(VBtn, {
20800
+ "variant": "outlined",
20801
+ "color": props.color,
20802
+ "onClick": onClick
20803
+ }, {
20804
+ default: () => [t(props.loadMoreText)]
20805
+ });
20806
+ }
20807
+ return slots.loading?.(slotProps) ?? createVNode(VProgressCircular, {
20808
+ "indeterminate": true,
20809
+ "color": props.color
20810
+ }, null);
20811
+ }
20812
+ const {
20813
+ dimensionStyles
20814
+ } = useDimension(props);
20815
+ useRender(() => {
20816
+ const hasStartIntersect = props.side === 'start' || props.side === 'both';
20817
+ const hasEndIntersect = props.side === 'end' || props.side === 'both';
20818
+ const intersectMode = props.mode === 'intersect';
20819
+ return createVNode("div", {
20820
+ "ref": rootEl,
20821
+ "class": ['v-infinite-scroll', `v-infinite-scroll--${props.direction}`, {
20822
+ 'v-infinite-scroll--start': hasStartIntersect,
20823
+ 'v-infinite-scroll--end': hasEndIntersect
20824
+ }],
20825
+ "style": dimensionStyles.value
20826
+ }, [createVNode("div", {
20827
+ "class": "v-infinite-scroll__side"
20828
+ }, [renderSide('start', startStatus.value)]), rootEl.value && hasStartIntersect && intersectMode && createVNode(VInfiniteScrollIntersect, {
20829
+ "key": "start",
20830
+ "side": "start",
20831
+ "onIntersect": handleIntersect,
20832
+ "rootRef": rootEl.value,
20833
+ "rootMargin": margin.value
20834
+ }, null), slots.default?.(), rootEl.value && hasEndIntersect && intersectMode && createVNode(VInfiniteScrollIntersect, {
20835
+ "key": "end",
20836
+ "side": "end",
20837
+ "onIntersect": handleIntersect,
20838
+ "rootRef": rootEl.value,
20839
+ "rootMargin": margin.value
20840
+ }, null), createVNode("div", {
20841
+ "class": "v-infinite-scroll__side"
20842
+ }, [renderSide('end', endStatus.value)])]);
20843
+ });
20844
+ }
20845
+ });
20846
+
20847
+ // Types
20848
+
20639
20849
  const rootTypes = {
20640
20850
  actions: 'button@2',
20641
20851
  article: 'heading, paragraph',
@@ -20835,6 +21045,7 @@ var components = /*#__PURE__*/Object.freeze({
20835
21045
  VHover: VHover,
20836
21046
  VIcon: VIcon,
20837
21047
  VImg: VImg,
21048
+ VInfiniteScroll: VInfiniteScroll,
20838
21049
  VInput: VInput,
20839
21050
  VItem: VItem,
20840
21051
  VItemGroup: VItemGroup,
@@ -21122,7 +21333,7 @@ function createVuetify$1() {
21122
21333
  date
21123
21334
  };
21124
21335
  }
21125
- const version$1 = "4.0.0-dev-20230421.0";
21336
+ const version$1 = "4.0.0-dev-20230426.0";
21126
21337
  createVuetify$1.version = version$1;
21127
21338
 
21128
21339
  // Vue's inject() can only be used in setup
@@ -21134,7 +21345,7 @@ function inject(key) {
21134
21345
  }
21135
21346
  }
21136
21347
 
21137
- const version = "4.0.0-dev-20230421.0";
21348
+ const version = "4.0.0-dev-20230426.0";
21138
21349
 
21139
21350
  const createVuetify = function () {
21140
21351
  let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};