@floor/vlist 0.6.1 → 0.7.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 (146) hide show
  1. package/README.md +70 -75
  2. package/dist/builder/index.js +1 -1
  3. package/dist/index.js +1 -1
  4. package/package.json +8 -29
  5. package/dist/adapters/index.d.ts +0 -20
  6. package/dist/adapters/index.d.ts.map +0 -1
  7. package/dist/adapters/react.d.ts +0 -119
  8. package/dist/adapters/react.d.ts.map +0 -1
  9. package/dist/adapters/svelte.d.ts +0 -198
  10. package/dist/adapters/svelte.d.ts.map +0 -1
  11. package/dist/adapters/vue.d.ts +0 -151
  12. package/dist/adapters/vue.d.ts.map +0 -1
  13. package/dist/builder/context.d.ts.map +0 -1
  14. package/dist/builder/core.d.ts.map +0 -1
  15. package/dist/builder/data.d.ts.map +0 -1
  16. package/dist/builder/index.d.ts.map +0 -1
  17. package/dist/builder/types.d.ts.map +0 -1
  18. package/dist/compression/index.js +0 -1
  19. package/dist/constants.d.ts.map +0 -1
  20. package/dist/core/core.js +0 -1
  21. package/dist/core/full.d.ts.map +0 -1
  22. package/dist/core/index.js +0 -1
  23. package/dist/core/lite.d.ts +0 -129
  24. package/dist/core/lite.d.ts.map +0 -1
  25. package/dist/core/minimal.d.ts +0 -104
  26. package/dist/core/minimal.d.ts.map +0 -1
  27. package/dist/core-light.d.ts +0 -104
  28. package/dist/core-light.d.ts.map +0 -1
  29. package/dist/core-light.js +0 -1
  30. package/dist/core.d.ts +0 -129
  31. package/dist/core.d.ts.map +0 -1
  32. package/dist/data/index.js +0 -1
  33. package/dist/events/emitter.d.ts.map +0 -1
  34. package/dist/events/index.d.ts.map +0 -1
  35. package/dist/features/async/index.d.ts.map +0 -1
  36. package/dist/features/async/manager.d.ts.map +0 -1
  37. package/dist/features/async/placeholder.d.ts.map +0 -1
  38. package/dist/features/async/plugin.d.ts.map +0 -1
  39. package/dist/features/async/sparse.d.ts.map +0 -1
  40. package/dist/features/grid/index.d.ts.map +0 -1
  41. package/dist/features/grid/layout.d.ts.map +0 -1
  42. package/dist/features/grid/plugin.d.ts.map +0 -1
  43. package/dist/features/grid/renderer.d.ts.map +0 -1
  44. package/dist/features/grid/types.d.ts.map +0 -1
  45. package/dist/features/page/index.d.ts.map +0 -1
  46. package/dist/features/page/plugin.d.ts.map +0 -1
  47. package/dist/features/scale/index.d.ts.map +0 -1
  48. package/dist/features/scale/plugin.d.ts.map +0 -1
  49. package/dist/features/scrollbar/controller.d.ts.map +0 -1
  50. package/dist/features/scrollbar/index.d.ts.map +0 -1
  51. package/dist/features/scrollbar/plugin.d.ts.map +0 -1
  52. package/dist/features/scrollbar/scrollbar.d.ts.map +0 -1
  53. package/dist/features/sections/index.d.ts.map +0 -1
  54. package/dist/features/sections/layout.d.ts.map +0 -1
  55. package/dist/features/sections/plugin.d.ts.map +0 -1
  56. package/dist/features/sections/sticky.d.ts.map +0 -1
  57. package/dist/features/sections/types.d.ts.map +0 -1
  58. package/dist/features/selection/index.d.ts.map +0 -1
  59. package/dist/features/selection/plugin.d.ts.map +0 -1
  60. package/dist/features/selection/state.d.ts.map +0 -1
  61. package/dist/features/snapshots/index.d.ts.map +0 -1
  62. package/dist/features/snapshots/plugin.d.ts.map +0 -1
  63. package/dist/groups/index.js +0 -1
  64. package/dist/index.d.ts.map +0 -1
  65. package/dist/plugins/compression/index.d.ts +0 -10
  66. package/dist/plugins/compression/index.d.ts.map +0 -1
  67. package/dist/plugins/compression/plugin.d.ts +0 -42
  68. package/dist/plugins/compression/plugin.d.ts.map +0 -1
  69. package/dist/plugins/data/index.d.ts +0 -9
  70. package/dist/plugins/data/index.d.ts.map +0 -1
  71. package/dist/plugins/data/manager.d.ts +0 -103
  72. package/dist/plugins/data/manager.d.ts.map +0 -1
  73. package/dist/plugins/data/placeholder.d.ts +0 -62
  74. package/dist/plugins/data/placeholder.d.ts.map +0 -1
  75. package/dist/plugins/data/plugin.d.ts +0 -60
  76. package/dist/plugins/data/plugin.d.ts.map +0 -1
  77. package/dist/plugins/data/sparse.d.ts +0 -91
  78. package/dist/plugins/data/sparse.d.ts.map +0 -1
  79. package/dist/plugins/grid/index.d.ts +0 -9
  80. package/dist/plugins/grid/index.d.ts.map +0 -1
  81. package/dist/plugins/grid/layout.d.ts +0 -29
  82. package/dist/plugins/grid/layout.d.ts.map +0 -1
  83. package/dist/plugins/grid/plugin.d.ts +0 -48
  84. package/dist/plugins/grid/plugin.d.ts.map +0 -1
  85. package/dist/plugins/grid/renderer.d.ts +0 -55
  86. package/dist/plugins/grid/renderer.d.ts.map +0 -1
  87. package/dist/plugins/grid/types.d.ts +0 -71
  88. package/dist/plugins/grid/types.d.ts.map +0 -1
  89. package/dist/plugins/groups/index.d.ts +0 -10
  90. package/dist/plugins/groups/index.d.ts.map +0 -1
  91. package/dist/plugins/groups/layout.d.ts +0 -46
  92. package/dist/plugins/groups/layout.d.ts.map +0 -1
  93. package/dist/plugins/groups/plugin.d.ts +0 -64
  94. package/dist/plugins/groups/plugin.d.ts.map +0 -1
  95. package/dist/plugins/groups/sticky.d.ts +0 -33
  96. package/dist/plugins/groups/sticky.d.ts.map +0 -1
  97. package/dist/plugins/groups/types.d.ts +0 -86
  98. package/dist/plugins/groups/types.d.ts.map +0 -1
  99. package/dist/plugins/scroll/controller.d.ts +0 -121
  100. package/dist/plugins/scroll/controller.d.ts.map +0 -1
  101. package/dist/plugins/scroll/index.d.ts +0 -8
  102. package/dist/plugins/scroll/index.d.ts.map +0 -1
  103. package/dist/plugins/scroll/plugin.d.ts +0 -60
  104. package/dist/plugins/scroll/plugin.d.ts.map +0 -1
  105. package/dist/plugins/scroll/scrollbar.d.ts +0 -73
  106. package/dist/plugins/scroll/scrollbar.d.ts.map +0 -1
  107. package/dist/plugins/selection/index.d.ts +0 -7
  108. package/dist/plugins/selection/index.d.ts.map +0 -1
  109. package/dist/plugins/selection/plugin.d.ts +0 -44
  110. package/dist/plugins/selection/plugin.d.ts.map +0 -1
  111. package/dist/plugins/selection/state.d.ts +0 -102
  112. package/dist/plugins/selection/state.d.ts.map +0 -1
  113. package/dist/plugins/snapshots/index.d.ts +0 -8
  114. package/dist/plugins/snapshots/index.d.ts.map +0 -1
  115. package/dist/plugins/snapshots/plugin.d.ts +0 -44
  116. package/dist/plugins/snapshots/plugin.d.ts.map +0 -1
  117. package/dist/plugins/window/index.d.ts +0 -8
  118. package/dist/plugins/window/index.d.ts.map +0 -1
  119. package/dist/plugins/window/plugin.d.ts +0 -53
  120. package/dist/plugins/window/plugin.d.ts.map +0 -1
  121. package/dist/react/index.js +0 -1
  122. package/dist/react/react.js +0 -1
  123. package/dist/render/compression.d.ts +0 -116
  124. package/dist/render/compression.d.ts.map +0 -1
  125. package/dist/render/heights.d.ts +0 -63
  126. package/dist/render/heights.d.ts.map +0 -1
  127. package/dist/render/index.d.ts +0 -9
  128. package/dist/render/index.d.ts.map +0 -1
  129. package/dist/render/renderer.d.ts +0 -103
  130. package/dist/render/renderer.d.ts.map +0 -1
  131. package/dist/render/virtual.d.ts +0 -139
  132. package/dist/render/virtual.d.ts.map +0 -1
  133. package/dist/rendering/heights.d.ts.map +0 -1
  134. package/dist/rendering/index.d.ts.map +0 -1
  135. package/dist/rendering/renderer.d.ts.map +0 -1
  136. package/dist/rendering/scale.d.ts.map +0 -1
  137. package/dist/rendering/viewport.d.ts.map +0 -1
  138. package/dist/scroll/index.js +0 -1
  139. package/dist/svelte/index.js +0 -1
  140. package/dist/svelte/svelte.js +0 -1
  141. package/dist/types.d.ts.map +0 -1
  142. package/dist/vlist.d.ts +0 -22
  143. package/dist/vlist.d.ts.map +0 -1
  144. package/dist/vue/index.js +0 -1
  145. package/dist/vue/vue.js +0 -1
  146. package/dist/window/index.js +0 -1
@@ -1,198 +0,0 @@
1
- /**
2
- * vlist/svelte — Thin Svelte wrapper for vlist
3
- *
4
- * Provides a `vlist` action that manages the vlist lifecycle
5
- * within Svelte's component model. The action creates a vlist instance
6
- * when the element mounts, syncs items on update, and destroys on unmount.
7
- *
8
- * Works with both Svelte 4 and Svelte 5 (actions are framework-stable).
9
- * No Svelte imports needed — actions are plain functions.
10
- *
11
- * @packageDocumentation
12
- */
13
- import type { VListConfig, VListItem, VList, VListEvents, EventHandler, Unsubscribe } from "../types";
14
- /** Configuration for the vlist action (VListConfig without container) */
15
- export type VListActionConfig<T extends VListItem = VListItem> = Omit<VListConfig<T>, "container">;
16
- /**
17
- * Callback invoked once the vlist instance is ready.
18
- * Use this to subscribe to events, call methods, or store a reference.
19
- */
20
- export type OnInstanceCallback<T extends VListItem = VListItem> = (instance: VList<T>) => void;
21
- /** Full options passed to the vlist action */
22
- export interface VListActionOptions<T extends VListItem = VListItem> {
23
- /** VList configuration (without container) */
24
- config: VListActionConfig<T>;
25
- /**
26
- * Called once the instance is created (on mount).
27
- * Use this to get a reference to the vlist instance for calling methods.
28
- *
29
- * ```svelte
30
- * <script>
31
- * let vlistInstance;
32
- * const options = {
33
- * config: { ... },
34
- * onInstance: (inst) => { vlistInstance = inst; },
35
- * };
36
- * </script>
37
- * <div use:vlist={options} />
38
- * <button on:click={() => vlistInstance?.scrollToIndex(0)}>Top</button>
39
- * ```
40
- */
41
- onInstance?: OnInstanceCallback<T>;
42
- }
43
- /** Svelte action return type */
44
- export interface VListActionReturn<T extends VListItem = VListItem> {
45
- /** Called by Svelte when the action parameter changes */
46
- update?: (newOptions: VListActionOptions<T>) => void;
47
- /** Called by Svelte when the element is removed from the DOM */
48
- destroy?: () => void;
49
- }
50
- /**
51
- * Svelte action for vlist integration.
52
- *
53
- * Attaches a virtual list to the target element. The list is created
54
- * when the element mounts and destroyed when it unmounts. Passing
55
- * new options via Svelte's reactivity triggers an update.
56
- *
57
- * **Basic usage:**
58
- * ```svelte
59
- * <script>
60
- * import { vlist } from 'vlist/svelte';
61
- *
62
- * const users = [
63
- * { id: 1, name: 'Alice' },
64
- * { id: 2, name: 'Bob' },
65
- * ];
66
- *
67
- * const options = {
68
- * config: {
69
- * item: {
70
- * height: 48,
71
- * template: (user) => `<div class="user">${user.name}</div>`,
72
- * },
73
- * items: users,
74
- * },
75
- * };
76
- * </script>
77
- *
78
- * <div use:vlist={options} style="height: 400px" />
79
- * ```
80
- *
81
- * **With instance access (for methods):**
82
- * ```svelte
83
- * <script>
84
- * import { vlist } from 'vlist/svelte';
85
- *
86
- * let instance;
87
- *
88
- * const options = {
89
- * config: {
90
- * item: {
91
- * height: 48,
92
- * template: (item) => `<div>${item.name}</div>`,
93
- * },
94
- * items: users,
95
- * selection: { mode: 'single' },
96
- * },
97
- * onInstance: (inst) => { instance = inst; },
98
- * };
99
- *
100
- * function jumpToTop() {
101
- * instance?.scrollToIndex(0);
102
- * }
103
- * </script>
104
- *
105
- * <div use:vlist={options} style="height: 400px" />
106
- * <button on:click={jumpToTop}>Jump to top</button>
107
- * ```
108
- *
109
- * **Reactive items (Svelte 4):**
110
- * ```svelte
111
- * <script>
112
- * import { vlist } from 'vlist/svelte';
113
- *
114
- * let users = [...];
115
- *
116
- * // Svelte re-runs the action's update when this object changes
117
- * $: options = {
118
- * config: {
119
- * item: { height: 48, template: (u) => `<div>${u.name}</div>` },
120
- * items: users,
121
- * },
122
- * };
123
- * </script>
124
- *
125
- * <div use:vlist={options} style="height: 400px" />
126
- * ```
127
- *
128
- * **With adapter (async/infinite scroll):**
129
- * ```svelte
130
- * <script>
131
- * import { vlist } from 'vlist/svelte';
132
- *
133
- * const options = {
134
- * config: {
135
- * item: {
136
- * height: 64,
137
- * template: (item) => `<div>${item.title}</div>`,
138
- * },
139
- * adapter: {
140
- * read: async ({ offset, limit }) => {
141
- * const res = await fetch(`/api/items?offset=${offset}&limit=${limit}`);
142
- * const data = await res.json();
143
- * return { items: data.items, total: data.total };
144
- * },
145
- * },
146
- * },
147
- * };
148
- * </script>
149
- *
150
- * <div use:vlist={options} style="height: 400px" />
151
- * ```
152
- *
153
- * @param node - The DOM element Svelte binds the action to
154
- * @param options - Configuration and callbacks
155
- * @returns Action lifecycle object (update + destroy)
156
- */
157
- export declare function vlist<T extends VListItem = VListItem>(node: HTMLElement, options: VListActionOptions<T>): VListActionReturn<T>;
158
- /**
159
- * Helper to subscribe to vlist events with automatic cleanup.
160
- * Returns an unsubscribe function.
161
- *
162
- * ```svelte
163
- * <script>
164
- * import { vlist, onVListEvent } from 'vlist/svelte';
165
- * import { onDestroy } from 'svelte';
166
- *
167
- * let instance;
168
- * let unsubs = [];
169
- *
170
- * function handleInstance(inst) {
171
- * instance = inst;
172
- *
173
- * unsubs.push(
174
- * onVListEvent(inst, 'selection:change', ({ selected }) => {
175
- * console.log('Selected:', selected);
176
- * })
177
- * );
178
- *
179
- * unsubs.push(
180
- * onVListEvent(inst, 'scroll', ({ scrollTop, direction }) => {
181
- * console.log(`Scrolling ${direction} at ${scrollTop}px`);
182
- * })
183
- * );
184
- * }
185
- *
186
- * onDestroy(() => unsubs.forEach(fn => fn()));
187
- * </script>
188
- *
189
- * <div use:vlist={{ config, onInstance: handleInstance }} />
190
- * ```
191
- *
192
- * @param instance - The vlist instance
193
- * @param event - Event name
194
- * @param handler - Event handler
195
- * @returns Unsubscribe function
196
- */
197
- export declare function onVListEvent<T extends VListItem, K extends keyof VListEvents<T>>(instance: VList<T>, event: K, handler: EventHandler<VListEvents<T>[K]>): Unsubscribe;
198
- //# sourceMappingURL=svelte.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"svelte.d.ts","sourceRoot":"","sources":["../../src/adapters/svelte.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;GAWG;AAGH,OAAO,KAAK,EACV,WAAW,EACX,SAAS,EACT,KAAK,EACL,WAAW,EACX,YAAY,EACZ,WAAW,EACZ,MAAM,UAAU,CAAC;AAMlB,yEAAyE;AACzE,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,IAAI,IAAI,CACnE,WAAW,CAAC,CAAC,CAAC,EACd,WAAW,CACZ,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,IAAI,CAChE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,KACf,IAAI,CAAC;AAEV,8CAA8C;AAC9C,MAAM,WAAW,kBAAkB,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS;IACjE,8CAA8C;IAC9C,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAE7B;;;;;;;;;;;;;;;OAeG;IACH,UAAU,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC;CACpC;AAED,gCAAgC;AAChC,MAAM,WAAW,iBAAiB,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS;IAChE,yDAAyD;IACzD,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IAErD,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0GG;AACH,wBAAgB,KAAK,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EACnD,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC7B,iBAAiB,CAAC,CAAC,CAAC,CA4BtB;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,wBAAgB,YAAY,CAC1B,CAAC,SAAS,SAAS,EACnB,CAAC,SAAS,MAAM,WAAW,CAAC,CAAC,CAAC,EAE9B,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,EAClB,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GACvC,WAAW,CAEb"}
@@ -1,151 +0,0 @@
1
- /**
2
- * vlist/vue — Thin Vue 3 wrapper for vlist
3
- *
4
- * Provides a `useVList` composable that manages the vlist lifecycle
5
- * within Vue's composition API. The composable creates a vlist instance
6
- * on mount, syncs items reactively, and destroys on unmount.
7
- *
8
- * @packageDocumentation
9
- */
10
- import { type Ref, type ShallowRef } from "vue";
11
- import type { VListConfig, VListItem, VList, VListEvents, EventHandler } from "../types";
12
- /** Configuration for useVList (VListConfig without container) */
13
- export type UseVListConfig<T extends VListItem = VListItem> = Omit<VListConfig<T>, "container">;
14
- /** Accepted config input — plain object or reactive ref */
15
- export type UseVListConfigInput<T extends VListItem = VListItem> = UseVListConfig<T> | Ref<UseVListConfig<T>>;
16
- /** Return value from the useVList composable */
17
- export interface UseVListReturn<T extends VListItem = VListItem> {
18
- /**
19
- * Template ref to bind to your container element.
20
- *
21
- * ```vue
22
- * <template>
23
- * <div ref="containerRef" style="height: 400px" />
24
- * </template>
25
- *
26
- * <script setup>
27
- * const { containerRef } = useVList(config);
28
- * </script>
29
- * ```
30
- */
31
- containerRef: Ref<HTMLElement | null>;
32
- /**
33
- * Shallow ref holding the underlying vlist instance.
34
- * Populated after mount, `null` before.
35
- *
36
- * ```vue
37
- * <script setup>
38
- * const { instance } = useVList(config);
39
- *
40
- * function jumpToTop() {
41
- * instance.value?.scrollToIndex(0);
42
- * }
43
- * </script>
44
- * ```
45
- */
46
- instance: ShallowRef<VList<T> | null>;
47
- }
48
- /**
49
- * Vue 3 composable for vlist integration.
50
- *
51
- * Creates a virtual list instance bound to a template ref.
52
- * The instance is created on mount and destroyed on unmount.
53
- * When items change (detected via `watch`), they are synced automatically.
54
- *
55
- * **Basic usage:**
56
- * ```vue
57
- * <template>
58
- * <div ref="containerRef" style="height: 400px" />
59
- * </template>
60
- *
61
- * <script setup lang="ts">
62
- * import { useVList } from 'vlist/vue';
63
- * import { ref } from 'vue';
64
- *
65
- * const users = ref([
66
- * { id: 1, name: 'Alice' },
67
- * { id: 2, name: 'Bob' },
68
- * ]);
69
- *
70
- * const { containerRef, instance } = useVList({
71
- * item: {
72
- * height: 48,
73
- * template: (user) => `<div class="user">${user.name}</div>`,
74
- * },
75
- * items: users.value,
76
- * });
77
- * </script>
78
- * ```
79
- *
80
- * **With reactive config (auto-syncs items):**
81
- * ```vue
82
- * <script setup lang="ts">
83
- * import { useVList } from 'vlist/vue';
84
- * import { computed, ref } from 'vue';
85
- *
86
- * const filter = ref('');
87
- * const allUsers = ref([...]);
88
- *
89
- * const config = computed(() => ({
90
- * item: {
91
- * height: 48,
92
- * template: (user) => `<div>${user.name}</div>`,
93
- * },
94
- * items: allUsers.value.filter(u =>
95
- * u.name.includes(filter.value)
96
- * ),
97
- * }));
98
- *
99
- * const { containerRef, instance } = useVList(config);
100
- * </script>
101
- * ```
102
- *
103
- * **With adapter (async/infinite scroll):**
104
- * ```vue
105
- * <script setup lang="ts">
106
- * const { containerRef } = useVList({
107
- * item: {
108
- * height: 64,
109
- * template: (item) => `<div>${item.title}</div>`,
110
- * },
111
- * adapter: {
112
- * read: async ({ offset, limit }) => {
113
- * const res = await fetch(`/api/items?offset=${offset}&limit=${limit}`);
114
- * const data = await res.json();
115
- * return { items: data.items, total: data.total };
116
- * },
117
- * },
118
- * });
119
- * </script>
120
- * ```
121
- *
122
- * @param configInput - VList configuration (without `container`), plain or reactive
123
- * @returns containerRef and reactive instance ref
124
- */
125
- export declare function useVList<T extends VListItem = VListItem>(configInput: UseVListConfigInput<T>): UseVListReturn<T>;
126
- /**
127
- * Subscribe to a vlist event within Vue's lifecycle.
128
- * Automatically unsubscribes on unmount.
129
- *
130
- * ```vue
131
- * <script setup lang="ts">
132
- * import { useVList, useVListEvent } from 'vlist/vue';
133
- *
134
- * const { containerRef, instance } = useVList(config);
135
- *
136
- * useVListEvent(instance, 'selection:change', ({ selected }) => {
137
- * console.log('Selected items:', selected);
138
- * });
139
- *
140
- * useVListEvent(instance, 'scroll', ({ scrollTop, direction }) => {
141
- * console.log(`Scrolling ${direction} at ${scrollTop}px`);
142
- * });
143
- * </script>
144
- * ```
145
- *
146
- * @param instance - Shallow ref to the vlist instance (from useVList)
147
- * @param event - Event name
148
- * @param handler - Event handler
149
- */
150
- export declare function useVListEvent<T extends VListItem, K extends keyof VListEvents<T>>(instance: ShallowRef<VList<T> | null>, event: K, handler: EventHandler<VListEvents<T>[K]>): void;
151
- //# sourceMappingURL=vue.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vue.d.ts","sourceRoot":"","sources":["../../src/adapters/vue.ts"],"names":[],"mappings":"AACA;;;;;;;;GAQG;AAEH,OAAO,EAQL,KAAK,GAAG,EACR,KAAK,UAAU,EAChB,MAAM,KAAK,CAAC;AAEb,OAAO,KAAK,EACV,WAAW,EACX,SAAS,EACT,KAAK,EACL,WAAW,EACX,YAAY,EAEb,MAAM,UAAU,CAAC;AAMlB,iEAAiE;AACjE,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,IAAI,IAAI,CAChE,WAAW,CAAC,CAAC,CAAC,EACd,WAAW,CACZ,CAAC;AAEF,2DAA2D;AAC3D,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,IAC3D,cAAc,CAAC,CAAC,CAAC,GACjB,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;AAE3B,gDAAgD;AAChD,MAAM,WAAW,cAAc,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS;IAC7D;;;;;;;;;;;;OAYG;IACH,YAAY,EAAE,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAEtC;;;;;;;;;;;;;OAaG;IACH,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;CACvC;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4EG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EACtD,WAAW,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAClC,cAAc,CAAC,CAAC,CAAC,CAwCnB;AAMD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,aAAa,CAC3B,CAAC,SAAS,SAAS,EACnB,CAAC,SAAS,MAAM,WAAW,CAAC,CAAC,CAAC,EAE9B,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EACrC,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GACvC,IAAI,CA4BN"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/builder/context.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAuB,MAAM,UAAU,CAAC;AAG5E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EACV,QAAQ,EACR,YAAY,EAEb,MAAM,uBAAuB,CAAC;AAU/B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,YAAY,EACZ,qBAAqB,EACtB,MAAM,SAAS,CAAC;AAMjB,4CAA4C;AAC5C,MAAM,WAAW,2BAA2B,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS;IAC1E,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IAC5B,cAAc,EAAE,qBAAqB,CAAC;IACtC,GAAG,EAAE,YAAY,CAAC;IAClB,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAClC,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IACjC,YAAY,EAAE,YAAY,CAAC;IAC3B,mBAAmB,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;CAC3D;AAED;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,GAAI,CAAC,SAAS,SAAS,GAAG,SAAS,EAClE,SAAS,2BAA2B,CAAC,CAAC,CAAC,KACtC,cAAc,CAAC,CAAC,CAmUlB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/builder/core.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EACV,SAAS,EAOV,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,EACV,aAAa,EAKb,YAAY,EAEb,MAAM,SAAS,CAAC;AAGjB,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAqb9D,eAAO,MAAM,KAAK,GAAI,CAAC,SAAS,SAAS,GAAG,SAAS,EACnD,QAAQ,aAAa,CAAC,CAAC,CAAC,KACvB,YAAY,CAAC,CAAC,CAoEhB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../src/builder/data.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/builder/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAGH,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAG/B,YAAY,EAEV,YAAY,EACZ,UAAU,EACV,aAAa,EAGb,WAAW,EACX,cAAc,EAGd,qBAAqB,EACrB,YAAY,EACZ,iBAAiB,GAClB,MAAM,SAAS,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/builder/types.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- var F=16000000;var Ny=(j,K,J,y)=>{if(y===0)return 0;if(!j.isVariable())return Math.ceil(J/j.getHeight(0));let N=0,Q=0,q=K;while(q<y&&Q<J)Q+=j.getHeight(q),N++,q++;return Math.max(1,N)},n=(j,K,J)=>{if(J===0)return 0;if(!j.isVariable())return Math.floor(K/j.getHeight(0));let y=0,N=0;for(let Q=J-1;Q>=0;Q--){let q=j.getHeight(Q);if(N+q>K)break;N+=q,y++}return Math.max(y,1)},l=(j,K,J)=>{if(J===0)return 0;let y=Math.floor(K),N=K-y,Q=Math.max(0,Math.min(y,J-1));return j.getOffset(Q)+N*j.getHeight(Q)};var w=(j,K)=>{let J=K.getTotalHeight(),y=J>F,N=y?F:J,Q=J>0?N/J:1;return{isCompressed:y,actualHeight:J,virtualHeight:N,ratio:Q}},c=(j,K,J,y,N,Q)=>{if(y===0||K===0)return Q.start=0,Q.end=-1,Q;if(!N.isCompressed){let X=J.indexAtOffset(j),$=J.indexAtOffset(j+K);if($<y-1)$++;return Q.start=Math.max(0,X),Q.end=Math.min(y-1,Math.max(0,$)),Q}let{virtualHeight:q}=N,B=j/q*y,E=Math.floor(B),L=Ny(J,Math.max(0,E),K,y),Y=Math.ceil(B)+L,G=q-K-j;if(G<=K&&G>=-1){let X=n(J,K,y),$=Math.max(0,y-X),D=Math.max(0,Math.min(1,1-G/K));E=Math.floor(E+($-E)*D),Y=G<=1?y-1:Math.min(y-1,E+L)}return Q.start=Math.max(0,E),Q.end=Math.min(y-1,Math.max(0,Y)),Q},Gy=(j,K,J,y)=>{if(J===0)return y.start=0,y.end=-1,y;return y.start=Math.max(0,j.start-K),y.end=Math.min(J-1,j.end+K),y},r=(j,K,J,y,N,Q,q)=>{if(!Q.isCompressed||y===0)return J.getOffset(j);let{virtualHeight:V}=Q,B=V-N,E=B-K;if(E<=N&&E>=-1){if(K>=B-1){let b=J.getTotalHeight()-J.getOffset(j);return N-b}let W=n(J,N,y),G=Math.max(0,y-W),$=K/V*y,D=Math.max(0,Math.min(1,1-E/N)),z=J.getOffset(j)-J.getOffset(G),M=J.getOffset(j)-l(J,$,y);return M+(z-M)*D}let Y=K/V*y;return J.getOffset(j)-l(J,Y,y)},a=(j,K,J,y,N,Q="start")=>{if(y===0)return 0;let q;if(N.isCompressed){if(Q==="end"&&j===y-1)return Math.max(0,N.virtualHeight-J);q=j/y*N.virtualHeight}else q=K.getOffset(j);let V=K.getHeight(j);switch(Q){case"center":q-=(J-V)/2;break;case"end":q-=J-V;break}let B=N.virtualHeight-J;return Math.max(0,Math.min(q,B))},Uy=(j,K,J,y)=>{if(J===0)return 0;if(y.isCompressed){let N=j/y.virtualHeight;return Math.floor(N*J)}return K.indexAtOffset(j)},Dy=(j,K)=>{if(typeof K==="number")return j*K>F;return K.getTotalHeight()>F},_y=(j)=>{if(j<=0)return 0;return Math.floor(F/j)},Ey=(j,K)=>{let J=w(j,K);if(!J.isCompressed)return`No compression needed (${j} items, ${(J.actualHeight/1e6).toFixed(2)}M px)`;return`Compressed to ${(J.ratio*100).toFixed(1)}% (${j} items, ${(J.actualHeight/1e6).toFixed(1)}M px → ${(J.virtualHeight/1e6).toFixed(1)}M px virtual)`};var i=(j,K,J={},y="vlist",N=!1)=>{let{autoHide:Q=!0,autoHideDelay:q=1000,minThumbSize:V=30,showOnHover:B=!0,hoverZoneWidth:E=16,showOnViewportEnter:L=!0}=J,Y=0,W=0,G=0,X=0,$=!1,D=!1,z=0,M=0,b=0,f=null,T=!1,Z=null,P=null,Qy=N?"width":"height",o=N?"translateX":"translateY",u=N?(_)=>_.clientX:(_)=>_.clientY,Yy=N?"left":"top",U=document.createElement("div"),R=document.createElement("div"),O=B?document.createElement("div"):null,$y=()=>{if(U.className=`${y}-scrollbar`,R.className=`${y}-scrollbar-thumb`,N)U.classList.add(`${y}-scrollbar--horizontal`);if(U.appendChild(R),j.appendChild(U),O){if(O.className=`${y}-scrollbar-hover`,N)O.classList.add(`${y}-scrollbar-hover--horizontal`),O.style.height=`${E}px`;else O.style.width=`${E}px`;j.appendChild(O)}},S=()=>{if(f)clearTimeout(f),f=null},v=()=>{if(!Q)return;S(),f=setTimeout(d,q)},H=()=>{if(Y<=W)return;if(S(),!T)U.classList.add(`${y}-scrollbar--visible`),T=!0;if(Q&&!$&&!D)v()},d=()=>{if($||D)return;U.classList.remove(`${y}-scrollbar--visible`),T=!1},Wy=(_,A)=>{Y=_,W=A;let C=Y>W;if(U.style.display=C?"":"none",!C){d();return}let k=W/Y;G=Math.max(V,k*W),R.style[Qy]=`${G}px`,X=W-G,e(b)},e=(_)=>{if(b=_,Y<=W||X<=0)return;let A=Y-W,k=Math.min(1,Math.max(0,_/A))*X;R.style.transform=`${o}(${k}px)`},t=(_)=>{if(_.target===R)return;let A=U.getBoundingClientRect(),m=u(_)-A[Yy]-G/2,Ky=Math.max(0,Math.min(m,X))/X,h=Y-W,qy=Ky*h;K(qy),H()},yy=(_)=>{_.preventDefault(),_.stopPropagation(),$=!0,z=u(_),M=b,S(),U.classList.add(`${y}-scrollbar--dragging`),document.addEventListener("mousemove",x),document.addEventListener("mouseup",g)},x=(_)=>{if(!$)return;let A=u(_)-z,C=X>0?A/X:0,k=Y-W,m=C*k,s=Math.max(0,Math.min(M+m,k)),h=s/k*X;if(R.style.transform=`${o}(${h}px)`,P=s,Z===null)Z=requestAnimationFrame(()=>{if(P!==null)K(P);Z=null})},g=()=>{if($=!1,Z!==null)cancelAnimationFrame(Z),Z=null;if(P!==null)K(P),P=null;if(U.classList.remove(`${y}-scrollbar--dragging`),Q&&!D)v();document.removeEventListener("mousemove",x),document.removeEventListener("mouseup",g)},jy=()=>{if(L)H()},Jy=()=>{if(!$){if(D=!1,Q)v()}},p=()=>{D=!0,S(),H()},I=()=>{if(D=!1,!$&&Q)v()},Xy=()=>{if(S(),Z!==null)cancelAnimationFrame(Z),Z=null;if(U.removeEventListener("click",t),U.removeEventListener("mouseenter",p),U.removeEventListener("mouseleave",I),R.removeEventListener("mousedown",yy),j.removeEventListener("mouseenter",jy),j.removeEventListener("mouseleave",Jy),document.removeEventListener("mousemove",x),document.removeEventListener("mouseup",g),O){if(O.removeEventListener("mouseenter",p),O.removeEventListener("mouseleave",I),O.parentNode)O.parentNode.removeChild(O)}if(U.parentNode)U.parentNode.removeChild(U)};if($y(),U.addEventListener("click",t),U.addEventListener("mouseenter",p),U.addEventListener("mouseleave",I),R.addEventListener("mousedown",yy),j.addEventListener("mouseenter",jy),j.addEventListener("mouseleave",Jy),O)O.addEventListener("mouseenter",p),O.addEventListener("mouseleave",I);return{show:H,hide:d,updateBounds:Wy,updatePosition:e,isVisible:()=>T,destroy:Xy}};var Ly=()=>{let j=null,K=0,J=!1;return{name:"withCompression",priority:20,setup(y){let{dom:N,config:Q}=y,{classPrefix:q,horizontal:V}=Q,B=()=>{let L=y.getVirtualTotal(),Y=w(L,y.heightCache);if(Y.isCompressed&&!J){J=!0,y.scrollController.enableCompression(Y),y.updateContentSize(Y.virtualHeight),y.setScrollFns(()=>K,($)=>{K=$});let W=N.viewport,G=($)=>{$.preventDefault();let D=Y.virtualHeight-y.state.viewportState.containerHeight;K=Math.max(0,Math.min(K+$.deltaY,D)),y.scrollController.scrollTo(K)};if(W.addEventListener("wheel",G,{passive:!1}),y.destroyHandlers.push(()=>{W.removeEventListener("wheel",G)}),!N.viewport.querySelector(`.${q}-scrollbar-track`)){if(j=i(N.viewport,(D)=>y.scrollController.scrollTo(D),{},q,V),!N.viewport.classList.contains(`${q}-viewport--custom-scrollbar`))N.viewport.classList.add(`${q}-viewport--custom-scrollbar`);j.updateBounds(Y.virtualHeight,y.state.viewportState.containerHeight);let $=j;y.afterScroll.push((D,z)=>{if($)$.updatePosition(D),$.show()}),y.resizeHandlers.push((D,z)=>{if($){let M=y.getCachedCompression();$.updateBounds(M.virtualHeight,y.state.viewportState.containerHeight)}})}}else if(!Y.isCompressed&&J)J=!1,y.scrollController.disableCompression(),y.updateContentSize(Y.actualHeight);else if(Y.isCompressed)y.scrollController.updateConfig({compression:Y}),y.updateContentSize(Y.virtualHeight);if(j)j.updateBounds(Y.virtualHeight,y.state.viewportState.containerHeight);y.state.cachedCompression={state:Y,totalItems:L}};y.updateCompressionMode=B;let E=y.getCachedCompression.bind(y);y.getCachedCompression=()=>{if(y.state.cachedCompression)return y.state.cachedCompression.state;return E()},y.setVisibleRangeFn((L,Y,W,G,X)=>{let $=w(G,W);c(L,Y,W,G,$,X)}),y.setScrollToPosFn((L,Y,W,G,X)=>{let $=w(G,Y);return a(L,Y,W,G,$,X)}),y.setPositionElementFn((L,Y)=>{let W=y.getVirtualTotal(),G=w(W,y.heightCache);if(G.isCompressed){let X=Math.round(r(Y,y.scrollController.getScrollTop(),y.heightCache,W,y.state.viewportState.containerHeight,G)),$=y.config.horizontal;L.style.transform=$?`translateX(${X}px)`:`translateY(${X}px)`}else{let X=Math.round(y.heightCache.getOffset(Y)),$=y.config.horizontal;L.style.transform=$?`translateX(${X}px)`:`translateY(${X}px)`}}),B(),y.destroyHandlers.push(()=>{if(j)j.destroy(),j=null})},destroy(){if(j)j.destroy(),j=null}}};export{Ly as withCompression,Dy as needsCompression,_y as getMaxItemsWithoutCompression,w as getCompressionState,Ey as getCompressionInfo,Uy as calculateIndexFromScrollPosition,c as calculateCompressedVisibleRange,a as calculateCompressedScrollToIndex,Gy as calculateCompressedRenderRange,r as calculateCompressedItemPosition,F as MAX_VIRTUAL_HEIGHT};
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,+DAA+D;AAC/D,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAElC,+BAA+B;AAC/B,eAAO,MAAM,oBAAoB,UAAU,CAAC;AAM5C,kEAAkE;AAClE,eAAO,MAAM,mBAAmB,MAAM,CAAC;AAEvC,kDAAkD;AAClD,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAEpC,yCAAyC;AACzC,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAMpC;;;;;GAKG;AACH,eAAO,MAAM,8BAA8B,KAAK,CAAC;AAEjD;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAE5C;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAMtC;;;GAGG;AACH,eAAO,MAAM,kBAAkB,WAAa,CAAC;AAM7C,iCAAiC;AACjC,eAAO,MAAM,2BAA2B,OAAO,CAAC;AAEhD,8CAA8C;AAC9C,eAAO,MAAM,iCAAiC,OAAO,CAAC;AAEtD,2CAA2C;AAC3C,eAAO,MAAM,gCAAgC,KAAK,CAAC;AAMnD,8DAA8D;AAC9D,eAAO,MAAM,sBAAsB,WAAM,CAAC;AAE1C,iEAAiE;AACjE,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAE1C,kDAAkD;AAClD,eAAO,MAAM,gBAAgB,mBAAmB,CAAC;AAEjD,sCAAsC;AACtC,eAAO,MAAM,qBAAqB,mBAAmB,CAAC;AAMtD,4CAA4C;AAC5C,eAAO,MAAM,kBAAkB,MAAM,CAAC;AAEtC,mDAAmD;AACnD,eAAO,MAAM,wBAAwB,QAAS,CAAC;AAE/C,kEAAkE;AAClE,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAM3C,6CAA6C;AAC7C,eAAO,MAAM,mBAAmB,MAAM,CAAC;AAEvC,2CAA2C;AAC3C,eAAO,MAAM,yBAAyB,IAAI,CAAC"}
package/dist/core/core.js DELETED
@@ -1 +0,0 @@
1
- var ae="vlist";var ce=(n,l)=>{if(typeof n=="number"){let t=l;return{getOffset:o=>o*n,getHeight:()=>n,indexAtOffset:o=>t===0||n===0?0:Math.max(0,Math.min(Math.floor(o/n),t-1)),getTotalHeight:()=>t*n,getTotal:()=>t,rebuild:o=>{t=o}}}let a=l,s=new Float64Array(0),m=t=>{a=t,s=new Float64Array(t+1),s[0]=0;for(let o=0;o<t;o++)s[o+1]=s[o]+n(o)};return m(l),{getOffset:t=>t<=0?0:t>=a?s[a]:s[t],getHeight:t=>n(t),indexAtOffset:t=>{if(a===0||t<=0)return 0;if(t>=s[a])return a-1;let o=0,v=a-1;for(;o<v;){let p=o+v+1>>>1;s[p]<=t?o=p:v=p-1}return o},getTotalHeight:()=>s[a]??0,getTotal:()=>a,rebuild:t=>m(t)}},de=()=>{let n={},l=(t,o)=>(n[t]||(n[t]=new Set),n[t].add(o),()=>a(t,o)),a=(t,o)=>{n[t]?.delete(o)};return{on:l,off:a,emit:(t,o)=>{n[t]?.forEach(v=>{try{v(o)}catch(p){console.error(`[vlist] Error in "${t}" handler:`,p)}})},clear:()=>{for(let t in n)delete n[t]}}},me=n=>{if(typeof n=="string"){let l=document.querySelector(n);if(!l)throw new Error(`[vlist] Container not found: ${n}`);return l}return n},ue=(n,l,a)=>{let s=document.createElement("div");s.className=l,s.setAttribute("role","listbox"),s.setAttribute("tabindex","0"),a&&s.setAttribute("aria-label",a);let m=document.createElement("div");m.className=`${l}-viewport`,m.style.overflow="auto",m.style.height="100%",m.style.width="100%";let t=document.createElement("div");t.className=`${l}-content`,t.style.position="relative",t.style.width="100%";let o=document.createElement("div");return o.className=`${l}-items`,o.style.position="relative",o.style.width="100%",t.appendChild(o),m.appendChild(t),s.appendChild(m),n.appendChild(s),{root:s,viewport:m,content:t,items:o}},fe=(n=100)=>{let l=[];return{acquire:()=>{let t=l.pop();if(t)return t;let o=document.createElement("div");return o.setAttribute("role","option"),o},release:t=>{l.length<n&&(t.className="",t.textContent="",t.removeAttribute("style"),t.removeAttribute("data-index"),t.removeAttribute("data-id"),l.push(t))},clear:()=>{l.length=0}}},ge=(n,l,a,s,m)=>{if(s===0){m.start=0,m.end=0;return}let t=a.indexAtOffset(n),o=t,v=a.getOffset(t)-n;for(;o<s-1&&v<l;)v+=a.getHeight(o),o++;m.start=t,m.end=Math.min(o,s-1)},he=(n,l,a,s)=>{s.start=Math.max(0,n.start-l),s.end=Math.min(a-1,n.end+l)},ve=(n,l,a,s,m)=>{if(s===0)return 0;let t=Math.max(0,Math.min(n,s-1)),o=l.getOffset(t),v=l.getHeight(t),p=Math.max(0,l.getTotalHeight()-a),h;switch(m){case"center":h=o-(a-v)/2;break;case"end":h=o-a+v;break;default:h=o}return Math.max(0,Math.min(h,p))},pe=n=>n<.5?2*n*n:-1+(4-2*n)*n,be=0,Te=n=>{if(!n.container)throw new Error("[vlist] container is required");if(!n.item)throw new Error("[vlist] item configuration is required");if(n.item.height==null)throw new Error("[vlist] item.height is required");if(typeof n.item.height=="number"&&n.item.height<=0)throw new Error("[vlist] item.height must be positive");if(typeof n.item.height!="number"&&typeof n.item.height!="function")throw new Error("[vlist] item.height must be a number or (index) => number");if(!n.item.template)throw new Error("[vlist] item.template is required");let{item:l,items:a,overscan:s=3,classPrefix:m=ae,scrollElement:t,ariaLabel:o}=n,{height:v,template:p}=l,h=!!t,d=a?[...a]:[],S=!1,y=null,E=0,j=`${m}-${be++}`,Q=me(n.container),f=ue(Q,m,o),w=de(),b=ce(v,d.length),k=fe();h&&(f.root.style.overflow="visible",f.root.style.height="auto",f.viewport.style.overflow="visible",f.viewport.style.height="auto");let I=h?window.innerHeight:f.viewport.clientHeight,N={start:0,end:0},T={start:0,end:0},C={start:-1,end:-1},M=new Map,F={selected:!1,focused:!1},X=`${m}-item`,A="",_=(e,i)=>{typeof i=="string"?e.innerHTML=i:e.replaceChildren(i)},K=(e,i)=>{e.style.transform=`translateY(${Math.round(b.getOffset(i))}px)`},G=(e,i)=>{let r=k.acquire();return r.className=X,r.style.height=`${b.getHeight(e)}px`,r.dataset.index=String(e),r.dataset.id=String(i.id),r.ariaSelected="false",r.id=`${j}-item-${e}`,A=String(d.length),r.setAttribute("aria-setsize",A),r.setAttribute("aria-posinset",String(e+1)),_(r,p(i,e,F)),K(r,e),r},D=()=>{f.content.style.height=`${b.getTotalHeight()}px`},L=()=>{if(S||(ge(E,I,b,d.length,N),he(N,s,d.length,T),T.start===C.start&&T.end===C.end))return;let e=String(d.length),i=e!==A;A=e;for(let[c,g]of M)(c<T.start||c>T.end)&&(g.remove(),k.release(g),M.delete(c));let r=document.createDocumentFragment(),u=[];for(let c=T.start;c<=T.end;c++){let g=d[c];if(!g)continue;let x=M.get(c);if(x){let H=x.dataset.id,R=String(g.id);H!==R&&(_(x,p(g,c,F)),x.dataset.id=R,x.style.height=`${b.getHeight(c)}px`),K(x,c),i&&x.setAttribute("aria-setsize",A)}else{let H=G(c,g);r.appendChild(H),u.push({index:c,element:H})}}if(u.length>0){f.items.appendChild(r);for(let{index:c,element:g}of u)M.set(c,g)}C.start=T.start,C.end=T.end,w.emit("range:change",{range:{start:T.start,end:T.end}})},J=()=>{C.start=-1,C.end=-1,L()},O=null,q=()=>{if(S)return;let e=h?Math.max(0,t.scrollY-f.viewport.getBoundingClientRect().top-t.scrollY+window.scrollY):f.viewport.scrollTop,i=h?Math.max(0,t.scrollY+f.viewport.getBoundingClientRect().top*-1):e,r=i>=E?"down":"up";f.root.classList.contains(`${m}--scrolling`)||f.root.classList.add(`${m}--scrolling`),E=i,L(),w.emit("scroll",{scrollTop:i,direction:r}),O&&clearTimeout(O),O=setTimeout(()=>{f.root.classList.remove(`${m}--scrolling`)},150)},W=h?t:f.viewport;W.addEventListener("scroll",q,{passive:!0});let P=e=>{if(S)return;let r=e.target.closest("[data-index]");if(!r)return;let u=parseInt(r.dataset.index??"-1",10);if(u<0)return;let c=d[u];c&&w.emit("item:click",{item:c,index:u,event:e})},Z=e=>{if(S)return;let r=e.target.closest("[data-index]");if(!r)return;let u=parseInt(r.dataset.index??"-1",10);if(u<0)return;let c=d[u];c&&w.emit("item:dblclick",{item:c,index:u,event:e})};f.items.addEventListener("click",P),f.items.addEventListener("dblclick",Z);let Y=new ResizeObserver(e=>{if(!(S||h))for(let i of e){let r=i.contentRect.height;Math.abs(r-I)>1&&(I=r,D(),L(),w.emit("resize",{height:r,width:i.contentRect.width}))}});Y.observe(f.viewport);let V=null;h&&(V=()=>{if(S)return;let e=window.innerHeight;Math.abs(e-I)>1&&(I=e,D(),L(),w.emit("resize",{height:e,width:window.innerWidth}))},window.addEventListener("resize",V));let U=()=>{y!==null&&(cancelAnimationFrame(y),y=null)},ee=e=>typeof e=="string"?{align:e,behavior:"auto",duration:300}:e&&typeof e=="object"?{align:e.align??"start",behavior:e.behavior??"auto",duration:e.duration??300}:{align:"start",behavior:"auto",duration:300},z=e=>{if(h){let r=f.viewport.getBoundingClientRect().top+window.scrollY;t.scrollTo(0,r+e)}else f.viewport.scrollTop=e},te=(e,i,r)=>{if(U(),Math.abs(i-e)<1){z(i),E=i,L();return}let u=performance.now(),c=g=>{let x=g-u,H=Math.min(x/r,1),R=e+(i-e)*pe(H);z(R),E=R,L(),H<1?y=requestAnimationFrame(c):y=null};y=requestAnimationFrame(c)},B=(e,i)=>{let{align:r,behavior:u,duration:c}=ee(i),g=ve(e,b,I,d.length,r);u==="smooth"?te(E,g,c):(U(),z(g))},$=()=>{b.rebuild(d.length),D(),J()},ne=e=>{d=[...e],$()},re=e=>{d=[...d,...e],$()},oe=e=>{d=[...e,...d],$()},ie=(e,i)=>{let r=d.findIndex(c=>c.id===e);if(r<0)return;d[r]={...d[r],...i};let u=M.get(r);u&&(_(u,p(d[r],r,F)),u.dataset.id=String(d[r].id))},se=e=>{d=d.filter(i=>i.id!==e),$()},le=()=>{if(!S){S=!0,U(),W.removeEventListener("scroll",q),f.items.removeEventListener("click",P),Y.disconnect(),V&&window.removeEventListener("resize",V),O&&clearTimeout(O);for(let[,e]of M)e.remove(),k.release(e);M.clear(),k.clear(),w.clear(),f.root.remove()}};return D(),L(),{get element(){return f.root},get items(){return d},get total(){return d.length},setItems:ne,appendItems:re,prependItems:oe,updateItem:ie,removeItem:se,scrollToIndex:B,scrollToItem:(e,i)=>{let r=d.findIndex(u=>u.id===e);r>=0&&B(r,i)},cancelScroll:U,getScrollPosition:()=>E,getScrollSnapshot:()=>{if(d.length===0)return{index:0,offsetInItem:0};let e=b.indexAtOffset(E),i=Math.max(0,E-b.getOffset(e));return{index:e,offsetInItem:i}},restoreScroll:e=>{if(d.length===0)return;let i=Math.max(0,Math.min(e.index,d.length-1)),r=Math.max(0,b.getTotalHeight()-I),u=Math.max(0,Math.min(b.getOffset(i)+e.offsetInItem,r));if(h){let g=f.viewport.getBoundingClientRect().top+window.scrollY;window.scrollTo({top:g+u,behavior:"auto"})}else f.viewport.scrollTo({top:u,behavior:"auto"});E=u,L()},on:(e,i)=>w.on(e,i),off:(e,i)=>w.off(e,i),destroy:le}};export{Te as createVList};
@@ -1 +0,0 @@
1
- {"version":3,"file":"full.d.ts","sourceRoot":"","sources":["../../src/core/full.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAYH,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAE9D;;;;;;;;;GASG;AACH,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,SAAS,GAAG,SAAS,EACzD,QAAQ,WAAW,CAAC,CAAC,CAAC,KACrB,KAAK,CAAC,CAAC,CA6IT,CAAC"}
@@ -1 +0,0 @@
1
- var Yj=(B,X)=>{if(typeof B==="number"){let q=X;return{getOffset:(J)=>J*B,getHeight:()=>B,indexAtOffset:(J)=>{if(q===0||B===0)return 0;return Math.max(0,Math.min(Math.floor(J/B),q-1))},getTotalHeight:()=>q*B,getTotal:()=>q,rebuild:(J)=>{q=J}}}let Y=X,U=new Float64Array(0),$=(q)=>{Y=q,U=new Float64Array(q+1),U[0]=0;for(let J=0;J<q;J++)U[J+1]=U[J]+B(J)};return $(X),{getOffset:(q)=>{if(q<=0)return 0;if(q>=Y)return U[Y];return U[q]},getHeight:(q)=>B(q),indexAtOffset:(q)=>{if(Y===0)return 0;if(q<=0)return 0;if(q>=U[Y])return Y-1;let J=0,F=Y-1;while(J<F){let N=J+F+1>>>1;if(U[N]<=q)J=N;else F=N-1}return J},getTotalHeight:()=>U[Y]??0,getTotal:()=>Y,rebuild:(q)=>$(q)}},Zj=()=>{let B={},X=(q,J)=>{if(!B[q])B[q]=new Set;return B[q].add(J),()=>Y(q,J)},Y=(q,J)=>{B[q]?.delete(J)};return{on:X,off:Y,emit:(q,J)=>{B[q]?.forEach((F)=>{try{F(J)}catch(N){console.error(`[vlist] Error in "${q}" handler:`,N)}})},clear:()=>{for(let q in B)delete B[q]}}},_j=(B)=>{if(typeof B==="string"){let X=document.querySelector(B);if(!X)throw Error(`[vlist] Container not found: ${B}`);return X}return B},$j=(B,X,Y)=>{let U=document.createElement("div");if(U.className=X,U.setAttribute("role","listbox"),U.setAttribute("tabindex","0"),Y)U.setAttribute("aria-label",Y);let $=document.createElement("div");$.className=`${X}-viewport`,$.style.overflow="auto",$.style.height="100%",$.style.width="100%";let q=document.createElement("div");q.className=`${X}-content`,q.style.position="relative",q.style.width="100%";let J=document.createElement("div");return J.className=`${X}-items`,J.style.position="relative",J.style.width="100%",q.appendChild(J),$.appendChild(q),U.appendChild($),B.appendChild(U),{root:U,viewport:$,content:q,items:J}},Qj=(B=100)=>{let X=[];return{acquire:()=>{let q=X.pop();if(q)return q;let J=document.createElement("div");return J.setAttribute("role","option"),J},release:(q)=>{if(X.length<B)q.className="",q.textContent="",q.removeAttribute("style"),q.removeAttribute("data-index"),q.removeAttribute("data-id"),X.push(q)},clear:()=>{X.length=0}}},Vj=(B,X,Y,U,$)=>{if(U===0){$.start=0,$.end=0;return}let q=Y.indexAtOffset(B),J=q,F=Y.getOffset(q)-B;while(J<U-1&&F<X)F+=Y.getHeight(J),J++;$.start=q,$.end=Math.min(J,U-1)},Lj=(B,X,Y,U)=>{U.start=Math.max(0,B.start-X),U.end=Math.min(Y-1,B.end+X)},kj=(B,X,Y,U,$)=>{if(U===0)return 0;let q=Math.max(0,Math.min(B,U-1)),J=X.getOffset(q),F=X.getHeight(q),N=Math.max(0,X.getTotalHeight()-Y),k;switch($){case"center":k=J-(Y-F)/2;break;case"end":k=J-Y+F;break;default:k=J}return Math.max(0,Math.min(k,N))},Fj=(B)=>B<0.5?2*B*B:-1+(4-2*B)*B,Nj=0,Aj=(B)=>{if(!B.container)throw Error("[vlist] container is required");if(!B.item)throw Error("[vlist] item configuration is required");if(B.item.height==null)throw Error("[vlist] item.height is required");if(typeof B.item.height==="number"&&B.item.height<=0)throw Error("[vlist] item.height must be positive");if(typeof B.item.height!=="number"&&typeof B.item.height!=="function")throw Error("[vlist] item.height must be a number or (index) => number");if(!B.item.template)throw Error("[vlist] item.template is required");let{item:X,items:Y,overscan:U=3,classPrefix:$="vlist",scrollElement:q,ariaLabel:J}=B,{height:F,template:N}=X,k=!!q,_=Y?[...Y]:[],y=!1,R=null,D=0,l=`${$}-${Nj++}`,o=_j(B.container),V=$j(o,$,J),W=Zj(),A=Yj(F,_.length),I=Qj();if(k)V.root.style.overflow="visible",V.root.style.height="auto",V.viewport.style.overflow="visible",V.viewport.style.height="auto";let E=k?window.innerHeight:V.viewport.clientHeight,h={start:0,end:0},M={start:0,end:0},C={start:-1,end:-1},b=new Map,f={selected:!1,focused:!1},n=`${$}-item`,T="",p=(j,K)=>{if(typeof K==="string")j.innerHTML=K;else j.replaceChildren(K)},c=(j,K)=>{j.style.transform=`translateY(${Math.round(A.getOffset(K))}px)`},i=(j,K)=>{let G=I.acquire();return G.className=n,G.style.height=`${A.getHeight(j)}px`,G.dataset.index=String(j),G.dataset.id=String(K.id),G.ariaSelected="false",G.id=`${l}-item-${j}`,T=String(_.length),G.setAttribute("aria-setsize",T),G.setAttribute("aria-posinset",String(j+1)),p(G,N(K,j,f)),c(G,j),G},v=()=>{V.content.style.height=`${A.getTotalHeight()}px`},P=()=>{if(y)return;if(Vj(D,E,A,_.length,h),Lj(h,U,_.length,M),M.start===C.start&&M.end===C.end)return;let j=String(_.length),K=j!==T;T=j;for(let[Z,L]of b)if(Z<M.start||Z>M.end)L.remove(),I.release(L),b.delete(Z);let G=document.createDocumentFragment(),Q=[];for(let Z=M.start;Z<=M.end;Z++){let L=_[Z];if(!L)continue;let z=b.get(Z);if(z){let H=z.dataset.id,w=String(L.id);if(H!==w)p(z,N(L,Z,f)),z.dataset.id=w,z.style.height=`${A.getHeight(Z)}px`;if(c(z,Z),K)z.setAttribute("aria-setsize",T)}else{let H=i(Z,L);G.appendChild(H),Q.push({index:Z,element:H})}}if(Q.length>0){V.items.appendChild(G);for(let{index:Z,element:L}of Q)b.set(Z,L)}C.start=M.start,C.end=M.end,W.emit("range:change",{range:{start:M.start,end:M.end}})},t=()=>{C.start=-1,C.end=-1,P()},O=null,m=()=>{if(y)return;let j=k?Math.max(0,q.scrollY-V.viewport.getBoundingClientRect().top-q.scrollY+window.scrollY):V.viewport.scrollTop,K=k?Math.max(0,q.scrollY+V.viewport.getBoundingClientRect().top*-1):j,G=K>=D?"down":"up";if(!V.root.classList.contains(`${$}--scrolling`))V.root.classList.add(`${$}--scrolling`);if(D=K,P(),W.emit("scroll",{scrollTop:K,direction:G}),O)clearTimeout(O);O=setTimeout(()=>{V.root.classList.remove(`${$}--scrolling`)},150)},d=k?q:V.viewport;d.addEventListener("scroll",m,{passive:!0});let s=(j)=>{if(y)return;let G=j.target.closest("[data-index]");if(!G)return;let Q=parseInt(G.dataset.index??"-1",10);if(Q<0)return;let Z=_[Q];if(!Z)return;W.emit("item:click",{item:Z,index:Q,event:j})},e=(j)=>{if(y)return;let G=j.target.closest("[data-index]");if(!G)return;let Q=parseInt(G.dataset.index??"-1",10);if(Q<0)return;let Z=_[Q];if(!Z)return;W.emit("item:dblclick",{item:Z,index:Q,event:j})};V.items.addEventListener("click",s),V.items.addEventListener("dblclick",e);let a=new ResizeObserver((j)=>{if(y||k)return;for(let K of j){let G=K.contentRect.height;if(Math.abs(G-E)>1)E=G,v(),P(),W.emit("resize",{height:G,width:K.contentRect.width})}});a.observe(V.viewport);let u=null;if(k)u=()=>{if(y)return;let j=window.innerHeight;if(Math.abs(j-E)>1)E=j,v(),P(),W.emit("resize",{height:j,width:window.innerWidth})},window.addEventListener("resize",u);let S=()=>{if(R!==null)cancelAnimationFrame(R),R=null},jj=(j)=>{if(typeof j==="string")return{align:j,behavior:"auto",duration:300};if(j&&typeof j==="object")return{align:j.align??"start",behavior:j.behavior??"auto",duration:j.duration??300};return{align:"start",behavior:"auto",duration:300}},g=(j)=>{if(k){let G=V.viewport.getBoundingClientRect().top+window.scrollY;q.scrollTo(0,G+j)}else V.viewport.scrollTop=j},qj=(j,K,G)=>{if(S(),Math.abs(K-j)<1){g(K),D=K,P();return}let Q=performance.now(),Z=(L)=>{let z=L-Q,H=Math.min(z/G,1),w=j+(K-j)*Fj(H);if(g(w),D=w,P(),H<1)R=requestAnimationFrame(Z);else R=null};R=requestAnimationFrame(Z)},r=(j,K)=>{let{align:G,behavior:Q,duration:Z}=jj(K),L=kj(j,A,E,_.length,G);if(Q==="smooth")qj(D,L,Z);else S(),g(L)},x=()=>{A.rebuild(_.length),v(),t()},Bj=(j)=>{_=[...j],x()},Gj=(j)=>{_=[..._,...j],x()},Jj=(j)=>{_=[...j,..._],x()},Kj=(j,K)=>{let G=_.findIndex((Z)=>Z.id===j);if(G<0)return;_[G]={..._[G],...K};let Q=b.get(G);if(Q)p(Q,N(_[G],G,f)),Q.dataset.id=String(_[G].id)},Uj=(j)=>{_=_.filter((K)=>K.id!==j),x()},Xj=()=>{if(y)return;if(y=!0,S(),d.removeEventListener("scroll",m),V.items.removeEventListener("click",s),a.disconnect(),u)window.removeEventListener("resize",u);if(O)clearTimeout(O);for(let[,j]of b)j.remove(),I.release(j);b.clear(),I.clear(),W.clear(),V.root.remove()};return v(),P(),{get element(){return V.root},get items(){return _},get total(){return _.length},setItems:Bj,appendItems:Gj,prependItems:Jj,updateItem:Kj,removeItem:Uj,scrollToIndex:r,scrollToItem:(j,K)=>{let G=_.findIndex((Q)=>Q.id===j);if(G>=0)r(G,K)},cancelScroll:S,getScrollPosition:()=>D,getScrollSnapshot:()=>{if(_.length===0)return{index:0,offsetInItem:0};let j=A.indexAtOffset(D),K=Math.max(0,D-A.getOffset(j));return{index:j,offsetInItem:K}},restoreScroll:(j)=>{if(_.length===0)return;let K=Math.max(0,Math.min(j.index,_.length-1)),G=Math.max(0,A.getTotalHeight()-E),Q=Math.max(0,Math.min(A.getOffset(K)+j.offsetInItem,G));if(k){let L=V.viewport.getBoundingClientRect().top+window.scrollY;window.scrollTo({top:L+Q,behavior:"auto"})}else V.viewport.scrollTo({top:Q,behavior:"auto"});D=Q,P()},on:(j,K)=>W.on(j,K),off:(j,K)=>W.off(j,K),destroy:Xj}};export{Aj as createVList};
@@ -1,129 +0,0 @@
1
- /**
2
- * vlist/core - Lightweight Virtual List
3
- *
4
- * A self-contained, minimal virtual list factory for the common case:
5
- * static or streaming lists that don't need selection, groups,
6
- * compression, custom scrollbar, or async data adapters.
7
- *
8
- * ~10 KB minified vs ~42 KB for the full bundle.
9
- *
10
- * Supports:
11
- * - Fixed and variable item heights
12
- * - scrollToIndex with smooth animation
13
- * - setItems / appendItems / prependItems / updateItem / removeItem
14
- * - Events (scroll, item:click, range:change, resize)
15
- * - Window (document) scrolling
16
- * - ResizeObserver for container resize
17
- * - DOM element pooling & DocumentFragment batching
18
- *
19
- * Does NOT include (use full `vlist` if needed):
20
- * - Selection / keyboard navigation
21
- * - Groups / sticky headers
22
- * - Compression (lists > ~100K items)
23
- * - Custom scrollbar
24
- * - Async data adapter / placeholders
25
- * - Velocity tracking / load cancellation
26
- */
27
- /** Base item interface — must have an id */
28
- export interface VListItem {
29
- id: string | number;
30
- [key: string]: unknown;
31
- }
32
- /** State passed to template */
33
- export interface ItemState {
34
- selected: boolean;
35
- focused: boolean;
36
- }
37
- /** Item template function */
38
- export type ItemTemplate<T extends VListItem = VListItem> = (item: T, index: number, state: ItemState) => string | HTMLElement;
39
- /** Visible range */
40
- export interface Range {
41
- start: number;
42
- end: number;
43
- }
44
- /** Options for scrollToIndex */
45
- export interface ScrollToOptions {
46
- align?: "start" | "center" | "end";
47
- behavior?: "auto" | "smooth";
48
- duration?: number;
49
- }
50
- /** Scroll position snapshot for save/restore */
51
- export interface CoreScrollSnapshot {
52
- /** First visible item index */
53
- index: number;
54
- /** Pixel offset within the first visible item (how far it's scrolled off) */
55
- offsetInItem: number;
56
- }
57
- /** Event handler / unsubscribe */
58
- export type EventHandler<T> = (payload: T) => void;
59
- export type Unsubscribe = () => void;
60
- /** Core event map */
61
- export interface CoreEvents<T extends VListItem = VListItem> {
62
- "item:click": {
63
- item: T;
64
- index: number;
65
- event: MouseEvent;
66
- };
67
- "item:dblclick": {
68
- item: T;
69
- index: number;
70
- event: MouseEvent;
71
- };
72
- scroll: {
73
- scrollTop: number;
74
- direction: "up" | "down";
75
- };
76
- "range:change": {
77
- range: Range;
78
- };
79
- resize: {
80
- height: number;
81
- width: number;
82
- };
83
- }
84
- /** Item configuration */
85
- export interface CoreItemConfig<T extends VListItem = VListItem> {
86
- height: number | ((index: number) => number);
87
- template: ItemTemplate<T>;
88
- }
89
- /** Core configuration */
90
- export interface CoreConfig<T extends VListItem = VListItem> {
91
- container: HTMLElement | string;
92
- item: CoreItemConfig<T>;
93
- items?: T[];
94
- overscan?: number;
95
- classPrefix?: string;
96
- ariaLabel?: string;
97
- scrollElement?: Window;
98
- }
99
- /** Core VList instance */
100
- export interface VListCore<T extends VListItem = VListItem> {
101
- readonly element: HTMLElement;
102
- readonly items: readonly T[];
103
- readonly total: number;
104
- setItems(items: T[]): void;
105
- appendItems(items: T[]): void;
106
- prependItems(items: T[]): void;
107
- updateItem(id: string | number, updates: Partial<T>): void;
108
- removeItem(id: string | number): void;
109
- scrollToIndex(index: number, alignOrOptions?: "start" | "center" | "end" | ScrollToOptions): void;
110
- scrollToItem(id: string | number, alignOrOptions?: "start" | "center" | "end" | ScrollToOptions): void;
111
- cancelScroll(): void;
112
- getScrollPosition(): number;
113
- /** Get a snapshot of the current scroll position for save/restore */
114
- getScrollSnapshot(): CoreScrollSnapshot;
115
- /** Restore scroll position from a snapshot */
116
- restoreScroll(snapshot: CoreScrollSnapshot): void;
117
- on<K extends keyof CoreEvents<T>>(event: K, handler: EventHandler<CoreEvents<T>[K]>): Unsubscribe;
118
- off<K extends keyof CoreEvents<T>>(event: K, handler: EventHandler<CoreEvents<T>[K]>): void;
119
- destroy(): void;
120
- }
121
- /**
122
- * Create a lightweight virtual list (core).
123
- *
124
- * This is the minimal-footprint alternative to `createVList` from `vlist`.
125
- * Same essential behaviour, but without selection, groups, compression,
126
- * custom scrollbar, or async data adapter support.
127
- */
128
- export declare const createVList: <T extends VListItem = VListItem>(config: CoreConfig<T>) => VListCore<T>;
129
- //# sourceMappingURL=lite.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lite.d.ts","sourceRoot":"","sources":["../../src/core/lite.ts"],"names":[],"mappings":"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"}