@vuetify/nightly 4.0.0-dev-20230422.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 (124) 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 +64 -64
  6. package/dist/json/tags.json +18 -0
  7. package/dist/json/web-types.json +237 -10
  8. package/dist/vuetify-labs.css +1379 -1354
  9. package/dist/vuetify-labs.d.ts +343 -0
  10. package/dist/vuetify-labs.esm.js +216 -6
  11. package/dist/vuetify-labs.esm.js.map +1 -1
  12. package/dist/vuetify-labs.js +216 -6
  13. package/dist/vuetify-labs.min.css +2 -2
  14. package/dist/vuetify.css +9 -9
  15. package/dist/vuetify.d.ts +18 -18
  16. package/dist/vuetify.esm.js +10 -6
  17. package/dist/vuetify.esm.js.map +1 -1
  18. package/dist/vuetify.js +10 -6
  19. package/dist/vuetify.js.map +1 -1
  20. package/dist/vuetify.min.css +2 -2
  21. package/dist/vuetify.min.js +7 -7
  22. package/dist/vuetify.min.js.map +1 -1
  23. package/lib/composables/intersectionObserver.mjs +2 -2
  24. package/lib/composables/intersectionObserver.mjs.map +1 -1
  25. package/lib/entry-bundler.mjs +1 -1
  26. package/lib/framework.mjs +1 -1
  27. package/lib/index.d.ts +18 -18
  28. package/lib/labs/VInfiniteScroll/VInfiniteScroll.css +26 -0
  29. package/lib/labs/VInfiniteScroll/VInfiniteScroll.mjs +215 -0
  30. package/lib/labs/VInfiniteScroll/VInfiniteScroll.mjs.map +1 -0
  31. package/lib/labs/VInfiniteScroll/VInfiniteScroll.sass +25 -0
  32. package/lib/labs/VInfiniteScroll/_variables.scss +3 -0
  33. package/lib/labs/VInfiniteScroll/index.d.ts +349 -0
  34. package/lib/labs/VInfiniteScroll/index.mjs +2 -0
  35. package/lib/labs/VInfiniteScroll/index.mjs.map +1 -0
  36. package/lib/labs/components.d.ts +343 -2
  37. package/lib/labs/components.mjs +1 -0
  38. package/lib/labs/components.mjs.map +1 -1
  39. package/lib/locale/af.mjs +5 -1
  40. package/lib/locale/af.mjs.map +1 -1
  41. package/lib/locale/ar.mjs +5 -1
  42. package/lib/locale/ar.mjs.map +1 -1
  43. package/lib/locale/az.mjs +5 -1
  44. package/lib/locale/az.mjs.map +1 -1
  45. package/lib/locale/bg.mjs +5 -1
  46. package/lib/locale/bg.mjs.map +1 -1
  47. package/lib/locale/ca.mjs +5 -1
  48. package/lib/locale/ca.mjs.map +1 -1
  49. package/lib/locale/ckb.mjs +5 -1
  50. package/lib/locale/ckb.mjs.map +1 -1
  51. package/lib/locale/cs.mjs +5 -1
  52. package/lib/locale/cs.mjs.map +1 -1
  53. package/lib/locale/da.mjs +5 -1
  54. package/lib/locale/da.mjs.map +1 -1
  55. package/lib/locale/de.mjs +5 -1
  56. package/lib/locale/de.mjs.map +1 -1
  57. package/lib/locale/el.mjs +5 -1
  58. package/lib/locale/el.mjs.map +1 -1
  59. package/lib/locale/en.mjs +5 -1
  60. package/lib/locale/en.mjs.map +1 -1
  61. package/lib/locale/es.mjs +5 -1
  62. package/lib/locale/es.mjs.map +1 -1
  63. package/lib/locale/et.mjs +5 -1
  64. package/lib/locale/et.mjs.map +1 -1
  65. package/lib/locale/fa.mjs +5 -1
  66. package/lib/locale/fa.mjs.map +1 -1
  67. package/lib/locale/fi.mjs +5 -1
  68. package/lib/locale/fi.mjs.map +1 -1
  69. package/lib/locale/fr.mjs +5 -1
  70. package/lib/locale/fr.mjs.map +1 -1
  71. package/lib/locale/he.mjs +5 -1
  72. package/lib/locale/he.mjs.map +1 -1
  73. package/lib/locale/hr.mjs +5 -1
  74. package/lib/locale/hr.mjs.map +1 -1
  75. package/lib/locale/hu.mjs +5 -1
  76. package/lib/locale/hu.mjs.map +1 -1
  77. package/lib/locale/id.mjs +5 -1
  78. package/lib/locale/id.mjs.map +1 -1
  79. package/lib/locale/index.d.ts +168 -0
  80. package/lib/locale/it.mjs +5 -1
  81. package/lib/locale/it.mjs.map +1 -1
  82. package/lib/locale/ja.mjs +5 -1
  83. package/lib/locale/ja.mjs.map +1 -1
  84. package/lib/locale/ko.mjs +5 -1
  85. package/lib/locale/ko.mjs.map +1 -1
  86. package/lib/locale/lt.mjs +5 -1
  87. package/lib/locale/lt.mjs.map +1 -1
  88. package/lib/locale/lv.mjs +5 -1
  89. package/lib/locale/lv.mjs.map +1 -1
  90. package/lib/locale/nl.mjs +5 -1
  91. package/lib/locale/nl.mjs.map +1 -1
  92. package/lib/locale/no.mjs +5 -1
  93. package/lib/locale/no.mjs.map +1 -1
  94. package/lib/locale/pl.mjs +5 -1
  95. package/lib/locale/pl.mjs.map +1 -1
  96. package/lib/locale/pt.mjs +5 -1
  97. package/lib/locale/pt.mjs.map +1 -1
  98. package/lib/locale/ro.mjs +5 -1
  99. package/lib/locale/ro.mjs.map +1 -1
  100. package/lib/locale/ru.mjs +5 -1
  101. package/lib/locale/ru.mjs.map +1 -1
  102. package/lib/locale/sk.mjs +5 -1
  103. package/lib/locale/sk.mjs.map +1 -1
  104. package/lib/locale/sl.mjs +5 -1
  105. package/lib/locale/sl.mjs.map +1 -1
  106. package/lib/locale/sr-Cyrl.mjs +5 -1
  107. package/lib/locale/sr-Cyrl.mjs.map +1 -1
  108. package/lib/locale/sr-Latn.mjs +5 -1
  109. package/lib/locale/sr-Latn.mjs.map +1 -1
  110. package/lib/locale/sv.mjs +5 -1
  111. package/lib/locale/sv.mjs.map +1 -1
  112. package/lib/locale/th.mjs +5 -1
  113. package/lib/locale/th.mjs.map +1 -1
  114. package/lib/locale/tr.mjs +5 -1
  115. package/lib/locale/tr.mjs.map +1 -1
  116. package/lib/locale/uk.mjs +5 -1
  117. package/lib/locale/uk.mjs.map +1 -1
  118. package/lib/locale/vi.mjs +5 -1
  119. package/lib/locale/vi.mjs.map +1 -1
  120. package/lib/locale/zh-Hans.mjs +5 -1
  121. package/lib/locale/zh-Hans.mjs.map +1 -1
  122. package/lib/locale/zh-Hant.mjs +5 -1
  123. package/lib/locale/zh-Hant.mjs.map +1 -1
  124. 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-20230422.0
2
+ * Vuetify v4.0.0-dev-20230426.0
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -1935,7 +1935,11 @@ var en = {
1935
1935
  item: 'Rating {0} of {1}'
1936
1936
  }
1937
1937
  },
1938
- loading: 'Loading...'
1938
+ loading: 'Loading...',
1939
+ infiniteScroll: {
1940
+ loadMore: 'Load more',
1941
+ empty: 'No more'
1942
+ }
1939
1943
  };
1940
1944
 
1941
1945
  const LANG_PREFIX = '$vuetify.';
@@ -4135,14 +4139,14 @@ const VIcon = genericComponent()({
4135
4139
  });
4136
4140
 
4137
4141
  // Utilities
4138
- function useIntersectionObserver(callback) {
4142
+ function useIntersectionObserver(callback, options) {
4139
4143
  const intersectionRef = ref();
4140
4144
  const isIntersecting = ref(false);
4141
4145
  if (SUPPORTS_INTERSECTION) {
4142
4146
  const observer = new IntersectionObserver(entries => {
4143
4147
  callback?.(entries, observer);
4144
4148
  isIntersecting.value = !!entries.find(entry => entry.isIntersecting);
4145
- });
4149
+ }, options);
4146
4150
  onBeforeUnmount(() => {
4147
4151
  observer.disconnect();
4148
4152
  });
@@ -20637,6 +20641,211 @@ const VDataTableServer = genericComponent()({
20637
20641
 
20638
20642
  // Types
20639
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
+
20640
20849
  const rootTypes = {
20641
20850
  actions: 'button@2',
20642
20851
  article: 'heading, paragraph',
@@ -20836,6 +21045,7 @@ var components = /*#__PURE__*/Object.freeze({
20836
21045
  VHover: VHover,
20837
21046
  VIcon: VIcon,
20838
21047
  VImg: VImg,
21048
+ VInfiniteScroll: VInfiniteScroll,
20839
21049
  VInput: VInput,
20840
21050
  VItem: VItem,
20841
21051
  VItemGroup: VItemGroup,
@@ -21123,7 +21333,7 @@ function createVuetify$1() {
21123
21333
  date
21124
21334
  };
21125
21335
  }
21126
- const version$1 = "4.0.0-dev-20230422.0";
21336
+ const version$1 = "4.0.0-dev-20230426.0";
21127
21337
  createVuetify$1.version = version$1;
21128
21338
 
21129
21339
  // Vue's inject() can only be used in setup
@@ -21135,7 +21345,7 @@ function inject(key) {
21135
21345
  }
21136
21346
  }
21137
21347
 
21138
- const version = "4.0.0-dev-20230422.0";
21348
+ const version = "4.0.0-dev-20230426.0";
21139
21349
 
21140
21350
  const createVuetify = function () {
21141
21351
  let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};