@sectile/vue 0.6.0 → 0.8.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 (325) hide show
  1. package/README.md +4 -2
  2. package/dist/accordion.d.ts +0 -1
  3. package/dist/alert-dialog.d.ts +0 -2
  4. package/dist/alert-dialog.js.map +1 -1
  5. package/dist/calendar.d.ts +14 -268
  6. package/dist/calendar.js +15 -15
  7. package/dist/calendar.js.map +1 -1
  8. package/dist/carousel.d.ts +22 -1
  9. package/dist/carousel.js +7 -1
  10. package/dist/carousel.js.map +1 -1
  11. package/dist/cascade-list.d.ts +339 -0
  12. package/dist/cascade-list.js +240 -0
  13. package/dist/cascade-list.js.map +1 -0
  14. package/dist/cascade-select.d.ts +11 -42
  15. package/dist/cascade-select.js +19 -27
  16. package/dist/cascade-select.js.map +1 -1
  17. package/dist/checkbox-group.d.ts +9 -1
  18. package/dist/checkbox-group.js +57 -13
  19. package/dist/checkbox-group.js.map +1 -1
  20. package/dist/checkbox.d.ts +0 -1
  21. package/dist/checkbox.js +15 -8
  22. package/dist/checkbox.js.map +1 -1
  23. package/dist/color-picker.d.ts +0 -1
  24. package/dist/combobox.d.ts +0 -1
  25. package/dist/combobox.js +46 -6
  26. package/dist/combobox.js.map +1 -1
  27. package/dist/data-grid.d.ts +214 -0
  28. package/dist/data-grid.js +107 -0
  29. package/dist/data-grid.js.map +1 -0
  30. package/dist/data-table.d.ts +232 -0
  31. package/dist/data-table.js +116 -0
  32. package/dist/data-table.js.map +1 -0
  33. package/dist/data-tree-grid.d.ts +225 -0
  34. package/dist/data-tree-grid.js +98 -0
  35. package/dist/data-tree-grid.js.map +1 -0
  36. package/dist/date-field.d.ts +2 -3
  37. package/dist/date-field.js +1 -1
  38. package/dist/date-field.js.map +1 -1
  39. package/dist/date-picker.d.ts +35 -427
  40. package/dist/date-picker.js +15 -13
  41. package/dist/date-picker.js.map +1 -1
  42. package/dist/date-range-field.d.ts +2 -3
  43. package/dist/date-range-field.js +24 -6
  44. package/dist/date-range-field.js.map +1 -1
  45. package/dist/date-range-picker.d.ts +35 -427
  46. package/dist/date-range-picker.js +15 -13
  47. package/dist/date-range-picker.js.map +1 -1
  48. package/dist/date-time-field.d.ts +2 -3
  49. package/dist/date-time-field.js +1 -1
  50. package/dist/date-time-field.js.map +1 -1
  51. package/dist/date-time-picker.d.ts +36 -428
  52. package/dist/date-time-picker.js +15 -13
  53. package/dist/date-time-picker.js.map +1 -1
  54. package/dist/date-time-range-picker.d.ts +36 -428
  55. package/dist/date-time-range-picker.js +15 -13
  56. package/dist/date-time-range-picker.js.map +1 -1
  57. package/dist/dialog.d.ts +0 -2
  58. package/dist/dialog.js.map +1 -1
  59. package/dist/disclosure.d.ts +0 -1
  60. package/dist/drawer.d.ts +1 -2
  61. package/dist/editable.d.ts +0 -1
  62. package/dist/editable.js +25 -6
  63. package/dist/editable.js.map +1 -1
  64. package/dist/feed.d.ts +0 -1
  65. package/dist/form.d.ts +88 -115
  66. package/dist/form.js +461 -233
  67. package/dist/form.js.map +1 -1
  68. package/dist/grid.d.ts +0 -1
  69. package/dist/grid.js +51 -6
  70. package/dist/grid.js.map +1 -1
  71. package/dist/host-provider.d.ts +0 -13
  72. package/dist/host-provider.js +0 -16
  73. package/dist/host-provider.js.map +1 -1
  74. package/dist/index.d.ts +14 -39
  75. package/dist/index.js +6 -19
  76. package/dist/index.js.map +1 -1
  77. package/dist/internal/cascade-choice.d.ts +204 -0
  78. package/dist/internal/cascade-choice.js +161 -0
  79. package/dist/internal/cascade-choice.js.map +1 -0
  80. package/dist/internal/collection.d.ts +3 -8
  81. package/dist/internal/collection.js +14 -20
  82. package/dist/internal/collection.js.map +1 -1
  83. package/dist/internal/controlled-state.d.ts +0 -1
  84. package/dist/internal/date-picker.d.ts +91 -141
  85. package/dist/internal/date-picker.js +146 -52
  86. package/dist/internal/date-picker.js.map +1 -1
  87. package/dist/internal/decimal-input.d.ts +1 -0
  88. package/dist/internal/decimal-input.js +24 -0
  89. package/dist/internal/decimal-input.js.map +1 -0
  90. package/dist/internal/form-control-inventory.d.ts +4 -1
  91. package/dist/internal/form-control-inventory.js +1 -0
  92. package/dist/internal/form-control-inventory.js.map +1 -1
  93. package/dist/internal/form-control.d.ts +100 -2
  94. package/dist/internal/form-control.js +103 -1
  95. package/dist/internal/form-control.js.map +1 -1
  96. package/dist/internal/native-field.d.ts +7 -8
  97. package/dist/internal/native-field.js +11 -2
  98. package/dist/internal/native-field.js.map +1 -1
  99. package/dist/internal/native-input.d.ts +0 -1
  100. package/dist/internal/part-contract.d.ts +0 -1
  101. package/dist/internal/popup.d.ts +5 -27
  102. package/dist/internal/popup.js +14 -20
  103. package/dist/internal/popup.js.map +1 -1
  104. package/dist/internal/presence.d.ts +0 -1
  105. package/dist/internal/scheduled-task.d.ts +5 -0
  106. package/dist/internal/scheduled-task.js +28 -0
  107. package/dist/internal/scheduled-task.js.map +1 -0
  108. package/dist/internal/tabs-context.d.ts +2 -3
  109. package/dist/internal/tabular-components.d.ts +27 -0
  110. package/dist/internal/tabular-components.js +26 -0
  111. package/dist/internal/tabular-components.js.map +1 -0
  112. package/dist/internal/tabular-parts.d.ts +57 -0
  113. package/dist/internal/tabular-parts.js +239 -0
  114. package/dist/internal/tabular-parts.js.map +1 -0
  115. package/dist/internal/tabular-profile.d.ts +75 -0
  116. package/dist/internal/tabular-profile.js +209 -0
  117. package/dist/internal/tabular-profile.js.map +1 -0
  118. package/dist/internal/virtual-collection-model.d.ts +42 -0
  119. package/dist/internal/virtual-collection-model.js +241 -0
  120. package/dist/internal/virtual-collection-model.js.map +1 -0
  121. package/dist/internal/virtual-collection.d.ts +38 -0
  122. package/dist/internal/virtual-collection.js +87 -0
  123. package/dist/internal/virtual-collection.js.map +1 -0
  124. package/dist/{virtual.d.ts → internal/virtual-core.d.ts} +14 -9
  125. package/dist/{virtual.js → internal/virtual-core.js} +18 -13
  126. package/dist/internal/virtual-core.js.map +1 -0
  127. package/dist/internal/virtual-list.d.ts +214 -0
  128. package/dist/internal/virtual-list.js +401 -0
  129. package/dist/internal/virtual-list.js.map +1 -0
  130. package/dist/listbox.d.ts +0 -1
  131. package/dist/listbox.js +52 -6
  132. package/dist/listbox.js.map +1 -1
  133. package/dist/menu-button.d.ts +0 -1
  134. package/dist/menu.d.ts +262 -317
  135. package/dist/menu.js +29 -23
  136. package/dist/menu.js.map +1 -1
  137. package/dist/menubar.d.ts +0 -1
  138. package/dist/meter-group.d.ts +369 -0
  139. package/dist/meter-group.js +271 -0
  140. package/dist/meter-group.js.map +1 -0
  141. package/dist/meter.d.ts +191 -0
  142. package/dist/meter.js +133 -0
  143. package/dist/meter.js.map +1 -0
  144. package/dist/month-picker.d.ts +29 -259
  145. package/dist/month-picker.js +8 -6
  146. package/dist/month-picker.js.map +1 -1
  147. package/dist/month-range-picker.d.ts +29 -259
  148. package/dist/month-range-picker.js +8 -6
  149. package/dist/month-range-picker.js.map +1 -1
  150. package/dist/multi-thumb-slider.d.ts +0 -1
  151. package/dist/navigation-menu.d.ts +0 -1
  152. package/dist/number-field.d.ts +2 -2
  153. package/dist/number-field.js +1 -1
  154. package/dist/number-field.js.map +1 -1
  155. package/dist/pagination.d.ts +23 -2
  156. package/dist/pagination.js +6 -1
  157. package/dist/pagination.js.map +1 -1
  158. package/dist/pin-input.d.ts +0 -1
  159. package/dist/pin-input.js +1 -1
  160. package/dist/pin-input.js.map +1 -1
  161. package/dist/popover.d.ts +0 -2
  162. package/dist/popover.js.map +1 -1
  163. package/dist/primitive.d.ts +0 -1
  164. package/dist/primitive.js +8 -4
  165. package/dist/primitive.js.map +1 -1
  166. package/dist/progress.d.ts +148 -0
  167. package/dist/progress.js +110 -0
  168. package/dist/progress.js.map +1 -0
  169. package/dist/quantity-field.d.ts +0 -1
  170. package/dist/radio-group.d.ts +0 -1
  171. package/dist/radio-group.js +1 -1
  172. package/dist/radio-group.js.map +1 -1
  173. package/dist/range-calendar.d.ts +14 -298
  174. package/dist/range-calendar.js +7 -7
  175. package/dist/range-calendar.js.map +1 -1
  176. package/dist/rating.d.ts +0 -1
  177. package/dist/rating.js +10 -1
  178. package/dist/rating.js.map +1 -1
  179. package/dist/reorder.d.ts +1 -2
  180. package/dist/select.d.ts +24 -50
  181. package/dist/select.js +11 -13
  182. package/dist/select.js.map +1 -1
  183. package/dist/slider.d.ts +0 -1
  184. package/dist/spin-button.d.ts +9 -7
  185. package/dist/spin-button.js +17 -4
  186. package/dist/spin-button.js.map +1 -1
  187. package/dist/stepper.d.ts +0 -1
  188. package/dist/stepper.js +19 -2
  189. package/dist/stepper.js.map +1 -1
  190. package/dist/switch.d.ts +0 -1
  191. package/dist/tabs.d.ts +0 -1
  192. package/dist/tabs.js +4 -22
  193. package/dist/tabs.js.map +1 -1
  194. package/dist/tags-input.d.ts +0 -1
  195. package/dist/tags-input.js +18 -5
  196. package/dist/tags-input.js.map +1 -1
  197. package/dist/temporal-provider.d.ts +21 -0
  198. package/dist/temporal-provider.js +30 -0
  199. package/dist/temporal-provider.js.map +1 -0
  200. package/dist/text.d.ts +0 -1
  201. package/dist/text.js +18 -4
  202. package/dist/text.js.map +1 -1
  203. package/dist/time-field.d.ts +2 -3
  204. package/dist/time-field.js +1 -1
  205. package/dist/time-field.js.map +1 -1
  206. package/dist/time-range-field.d.ts +2 -2
  207. package/dist/time-range-field.js +6 -4
  208. package/dist/time-range-field.js.map +1 -1
  209. package/dist/timer.d.ts +0 -1
  210. package/dist/toast.d.ts +11 -2
  211. package/dist/toast.js +22 -9
  212. package/dist/toast.js.map +1 -1
  213. package/dist/toggle-button.d.ts +0 -1
  214. package/dist/toggle-group.d.ts +0 -1
  215. package/dist/toggle-group.js +1 -1
  216. package/dist/toggle-group.js.map +1 -1
  217. package/dist/toolbar.d.ts +0 -1
  218. package/dist/tooltip.d.ts +1 -3
  219. package/dist/tooltip.js.map +1 -1
  220. package/dist/tree-grid.d.ts +0 -1
  221. package/dist/tree-grid.js +62 -8
  222. package/dist/tree-grid.js.map +1 -1
  223. package/dist/tree-view.d.ts +0 -1
  224. package/dist/tree-view.js +51 -10
  225. package/dist/tree-view.js.map +1 -1
  226. package/dist/virtual-core.d.ts +1 -0
  227. package/dist/virtual-core.js +2 -0
  228. package/dist/virtual-core.js.map +1 -0
  229. package/dist/virtual-grid.d.ts +188 -0
  230. package/dist/virtual-grid.js +306 -0
  231. package/dist/virtual-grid.js.map +1 -0
  232. package/dist/virtual-list.d.ts +1 -0
  233. package/dist/virtual-list.js +2 -0
  234. package/dist/virtual-list.js.map +1 -0
  235. package/dist/virtual-masonry.d.ts +198 -0
  236. package/dist/virtual-masonry.js +221 -0
  237. package/dist/virtual-masonry.js.map +1 -0
  238. package/dist/virtual-spatial.d.ts +157 -0
  239. package/dist/virtual-spatial.js +159 -0
  240. package/dist/virtual-spatial.js.map +1 -0
  241. package/dist/window-splitter.d.ts +0 -1
  242. package/dist/year-picker.d.ts +29 -259
  243. package/dist/year-picker.js +8 -6
  244. package/dist/year-picker.js.map +1 -1
  245. package/dist/year-range-picker.d.ts +29 -259
  246. package/dist/year-range-picker.js +8 -6
  247. package/dist/year-range-picker.js.map +1 -1
  248. package/package.json +174 -87
  249. package/dist/accordion.d.ts.map +0 -1
  250. package/dist/alert-dialog.d.ts.map +0 -1
  251. package/dist/calendar.d.ts.map +0 -1
  252. package/dist/carousel.d.ts.map +0 -1
  253. package/dist/cascade-select.d.ts.map +0 -1
  254. package/dist/checkbox-group.d.ts.map +0 -1
  255. package/dist/checkbox.d.ts.map +0 -1
  256. package/dist/color-picker.d.ts.map +0 -1
  257. package/dist/combobox.d.ts.map +0 -1
  258. package/dist/date-field.d.ts.map +0 -1
  259. package/dist/date-picker.d.ts.map +0 -1
  260. package/dist/date-range-field.d.ts.map +0 -1
  261. package/dist/date-range-picker.d.ts.map +0 -1
  262. package/dist/date-time-field.d.ts.map +0 -1
  263. package/dist/date-time-picker.d.ts.map +0 -1
  264. package/dist/date-time-range-picker.d.ts.map +0 -1
  265. package/dist/dialog.d.ts.map +0 -1
  266. package/dist/disclosure.d.ts.map +0 -1
  267. package/dist/drawer.d.ts.map +0 -1
  268. package/dist/editable.d.ts.map +0 -1
  269. package/dist/feed.d.ts.map +0 -1
  270. package/dist/form.d.ts.map +0 -1
  271. package/dist/grid.d.ts.map +0 -1
  272. package/dist/host-provider.d.ts.map +0 -1
  273. package/dist/index.d.ts.map +0 -1
  274. package/dist/internal/collection.d.ts.map +0 -1
  275. package/dist/internal/controlled-state.d.ts.map +0 -1
  276. package/dist/internal/date-picker.d.ts.map +0 -1
  277. package/dist/internal/form-control-inventory.d.ts.map +0 -1
  278. package/dist/internal/form-control.d.ts.map +0 -1
  279. package/dist/internal/native-field.d.ts.map +0 -1
  280. package/dist/internal/native-input.d.ts.map +0 -1
  281. package/dist/internal/part-contract.d.ts.map +0 -1
  282. package/dist/internal/popup.d.ts.map +0 -1
  283. package/dist/internal/presence.d.ts.map +0 -1
  284. package/dist/internal/tabs-context.d.ts.map +0 -1
  285. package/dist/listbox.d.ts.map +0 -1
  286. package/dist/menu-button.d.ts.map +0 -1
  287. package/dist/menu.d.ts.map +0 -1
  288. package/dist/menubar.d.ts.map +0 -1
  289. package/dist/month-picker.d.ts.map +0 -1
  290. package/dist/month-range-picker.d.ts.map +0 -1
  291. package/dist/multi-thumb-slider.d.ts.map +0 -1
  292. package/dist/navigation-menu.d.ts.map +0 -1
  293. package/dist/number-field.d.ts.map +0 -1
  294. package/dist/pagination.d.ts.map +0 -1
  295. package/dist/pin-input.d.ts.map +0 -1
  296. package/dist/popover.d.ts.map +0 -1
  297. package/dist/primitive.d.ts.map +0 -1
  298. package/dist/quantity-field.d.ts.map +0 -1
  299. package/dist/radio-group.d.ts.map +0 -1
  300. package/dist/range-calendar.d.ts.map +0 -1
  301. package/dist/rating.d.ts.map +0 -1
  302. package/dist/reorder.d.ts.map +0 -1
  303. package/dist/select.d.ts.map +0 -1
  304. package/dist/slider.d.ts.map +0 -1
  305. package/dist/spin-button.d.ts.map +0 -1
  306. package/dist/stepper.d.ts.map +0 -1
  307. package/dist/switch.d.ts.map +0 -1
  308. package/dist/tabs.d.ts.map +0 -1
  309. package/dist/tags-input.d.ts.map +0 -1
  310. package/dist/text.d.ts.map +0 -1
  311. package/dist/time-field.d.ts.map +0 -1
  312. package/dist/time-range-field.d.ts.map +0 -1
  313. package/dist/timer.d.ts.map +0 -1
  314. package/dist/toast.d.ts.map +0 -1
  315. package/dist/toggle-button.d.ts.map +0 -1
  316. package/dist/toggle-group.d.ts.map +0 -1
  317. package/dist/toolbar.d.ts.map +0 -1
  318. package/dist/tooltip.d.ts.map +0 -1
  319. package/dist/tree-grid.d.ts.map +0 -1
  320. package/dist/tree-view.d.ts.map +0 -1
  321. package/dist/virtual.d.ts.map +0 -1
  322. package/dist/virtual.js.map +0 -1
  323. package/dist/window-splitter.d.ts.map +0 -1
  324. package/dist/year-picker.d.ts.map +0 -1
  325. package/dist/year-range-picker.d.ts.map +0 -1
@@ -0,0 +1,214 @@
1
+ import { type AllowedComponentProps, type ComponentCustomProps, type PropType, type ShallowRef, type SlotsType, type VNodeArrayChildren, type VNodeChild, type VNodeProps } from 'vue';
2
+ import { type Extent } from '@sectile/virtual/extent-index';
3
+ import { type LinearAxis, type LinearLayoutState, type LinearMeasurement, type LinearPatch } from '@sectile/virtual/linear-layout';
4
+ import { type VirtualInsets, type VirtualLayoutPlan, type VirtualMeasurementResolver, type VirtualPlacement, type VirtualRect, type VirtualScrollAlignment, type VirtualizerConnection, type VirtualizerErrorHandler } from '@sectile/dom/virtual';
5
+ import { type PreparedVirtualList, type VirtualListEstimate, type VirtualListItemAttributes, type VirtualListKeyResolver } from './virtual-collection-model.js';
6
+ export type { VirtualListEstimate, VirtualListItemAttributes, VirtualListKeyResolver, } from './virtual-collection-model.js';
7
+ export interface VirtualListProps<Value = unknown> {
8
+ readonly items: readonly Value[];
9
+ readonly getKey: VirtualListKeyResolver<Value>;
10
+ readonly itemSize?: number;
11
+ readonly estimateSize?: VirtualListEstimate<Value>;
12
+ readonly axis?: LinearAxis;
13
+ readonly gap?: number;
14
+ readonly overscan?: number | Partial<VirtualInsets>;
15
+ readonly maxItems?: number;
16
+ readonly initialViewport?: VirtualRect;
17
+ readonly as?: string;
18
+ readonly contentAs?: string;
19
+ readonly itemAs?: string;
20
+ readonly itemAttributes?: VirtualListItemAttributes<Value>;
21
+ }
22
+ export type VirtualListPublicProps<Value = unknown> = VirtualListProps<Value> & VNodeProps & AllowedComponentProps & ComponentCustomProps & {
23
+ readonly onStateChange?: (state: LinearLayoutState<string>) => unknown;
24
+ readonly onPlanChange?: (plan: VirtualLayoutPlan<string>) => unknown;
25
+ readonly onError?: VirtualizerErrorHandler;
26
+ };
27
+ export interface VirtualListSlotProps<Value = unknown> {
28
+ readonly value: Value;
29
+ readonly key: string;
30
+ readonly index: number;
31
+ readonly placement: VirtualPlacement<string>;
32
+ }
33
+ export interface VirtualListExpose {
34
+ readonly root: ShallowRef<HTMLElement | null | undefined>;
35
+ readonly state: LinearLayoutState<string>;
36
+ readonly plan: VirtualLayoutPlan<string> | null;
37
+ scrollTo(id: string, alignment?: VirtualScrollAlignment): ReturnType<VirtualizerConnection<LinearLayoutState<string>, string, {
38
+ readonly index: number;
39
+ readonly extent: Extent;
40
+ }, LinearPatch<string>>['scrollTo']>;
41
+ refresh(): void;
42
+ flush(): ReturnType<VirtualizerConnection<LinearLayoutState<string>, string, {
43
+ readonly index: number;
44
+ readonly extent: Extent;
45
+ }, LinearPatch<string>>['flush']>;
46
+ }
47
+ export interface VirtualListComponent {
48
+ new <Value = unknown>(props: VirtualListPublicProps<Value>): {
49
+ $props: VirtualListPublicProps<Value>;
50
+ $slots: {
51
+ default?: (props: VirtualListSlotProps<Value>) => VNodeChild;
52
+ empty?: () => VNodeChild;
53
+ };
54
+ };
55
+ }
56
+ export interface VirtualCollectionExpose<State> {
57
+ readonly root: ShallowRef<HTMLElement | null | undefined>;
58
+ readonly state: State;
59
+ readonly plan: VirtualLayoutPlan<string> | null;
60
+ scrollTo(id: string, alignment?: VirtualScrollAlignment): ReturnType<VirtualizerConnection<object, string, unknown, unknown>['scrollTo']> | undefined;
61
+ refresh(): void;
62
+ flush(): ReturnType<VirtualizerConnection<object, string, unknown, unknown>['flush']> | undefined;
63
+ }
64
+ declare const VirtualListRuntime: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
65
+ items: {
66
+ type: PropType<readonly unknown[]>;
67
+ required: true;
68
+ };
69
+ getKey: {
70
+ type: PropType<VirtualListKeyResolver<unknown>>;
71
+ required: true;
72
+ };
73
+ estimateSize: {
74
+ type: PropType<VirtualListEstimate<unknown>>;
75
+ default: undefined;
76
+ };
77
+ itemSize: {
78
+ type: NumberConstructor;
79
+ default: undefined;
80
+ };
81
+ axis: {
82
+ type: PropType<LinearAxis>;
83
+ default: string;
84
+ };
85
+ gap: {
86
+ type: NumberConstructor;
87
+ default: number;
88
+ };
89
+ overscan: {
90
+ type: PropType<number | Partial<VirtualInsets>>;
91
+ default: number;
92
+ };
93
+ maxItems: {
94
+ type: NumberConstructor;
95
+ default: number;
96
+ };
97
+ initialViewport: {
98
+ type: PropType<VirtualRect>;
99
+ default: undefined;
100
+ };
101
+ as: {
102
+ type: StringConstructor;
103
+ default: string;
104
+ };
105
+ contentAs: {
106
+ type: StringConstructor;
107
+ default: string;
108
+ };
109
+ itemAs: {
110
+ type: StringConstructor;
111
+ default: string;
112
+ };
113
+ itemAttributes: {
114
+ type: PropType<VirtualListItemAttributes<unknown>>;
115
+ default: undefined;
116
+ };
117
+ }>, () => VNodeChild, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
118
+ stateChange: (_state: LinearLayoutState<string>) => boolean;
119
+ planChange: (_plan: VirtualLayoutPlan<string>) => boolean;
120
+ error: (_error: Parameters<VirtualizerErrorHandler>[0]) => boolean;
121
+ }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
122
+ items: {
123
+ type: PropType<readonly unknown[]>;
124
+ required: true;
125
+ };
126
+ getKey: {
127
+ type: PropType<VirtualListKeyResolver<unknown>>;
128
+ required: true;
129
+ };
130
+ estimateSize: {
131
+ type: PropType<VirtualListEstimate<unknown>>;
132
+ default: undefined;
133
+ };
134
+ itemSize: {
135
+ type: NumberConstructor;
136
+ default: undefined;
137
+ };
138
+ axis: {
139
+ type: PropType<LinearAxis>;
140
+ default: string;
141
+ };
142
+ gap: {
143
+ type: NumberConstructor;
144
+ default: number;
145
+ };
146
+ overscan: {
147
+ type: PropType<number | Partial<VirtualInsets>>;
148
+ default: number;
149
+ };
150
+ maxItems: {
151
+ type: NumberConstructor;
152
+ default: number;
153
+ };
154
+ initialViewport: {
155
+ type: PropType<VirtualRect>;
156
+ default: undefined;
157
+ };
158
+ as: {
159
+ type: StringConstructor;
160
+ default: string;
161
+ };
162
+ contentAs: {
163
+ type: StringConstructor;
164
+ default: string;
165
+ };
166
+ itemAs: {
167
+ type: StringConstructor;
168
+ default: string;
169
+ };
170
+ itemAttributes: {
171
+ type: PropType<VirtualListItemAttributes<unknown>>;
172
+ default: undefined;
173
+ };
174
+ }>> & Readonly<{
175
+ onError?: (_error: import("@sectile/core/sequence").SectileError<import("@sectile/virtual").VirtualErrorCode>) => any;
176
+ onPlanChange?: (_plan: VirtualLayoutPlan<string>) => any;
177
+ onStateChange?: (_state: LinearLayoutState<string>) => any;
178
+ }>, {
179
+ estimateSize: VirtualListEstimate<unknown>;
180
+ itemSize: number;
181
+ axis: LinearAxis;
182
+ gap: number;
183
+ overscan: number | Partial<import("@sectile/core/geometry").Insets>;
184
+ maxItems: number;
185
+ initialViewport: import("@sectile/core/geometry").Rect;
186
+ as: string;
187
+ contentAs: string;
188
+ itemAs: string;
189
+ itemAttributes: VirtualListItemAttributes<unknown>;
190
+ }, SlotsType<{
191
+ default: (props: VirtualListSlotProps<unknown>) => VNodeChild;
192
+ empty: () => VNodeChild;
193
+ }>, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
194
+ export declare const VirtualList: typeof VirtualListRuntime & VirtualListComponent;
195
+ export declare function createVirtualListMeasurementResolver(axis: LinearAxis): VirtualMeasurementResolver<LinearLayoutState<string>, string, LinearMeasurement>;
196
+ export declare function createVirtualListState(prepared: PreparedVirtualList, items: readonly unknown[], props: Readonly<{
197
+ itemSize: number | undefined;
198
+ estimateSize: VirtualListEstimate<unknown> | undefined;
199
+ axis: LinearAxis;
200
+ gap: number;
201
+ maxItems: number;
202
+ }>, automaticEstimate?: number): LinearLayoutState<string>;
203
+ export declare function createEmptyVirtualListState(props: Readonly<{
204
+ axis: LinearAxis;
205
+ gap: number;
206
+ maxItems: number;
207
+ }>): LinearLayoutState<string>;
208
+ export declare function bootstrapTrailingOverscanExtent(overscan: number | Partial<VirtualInsets>, axis: LinearAxis): number;
209
+ export declare function renderVirtualListBootstrapItems(prepared: PreparedVirtualList, items: readonly unknown[], count: number, props: Readonly<{
210
+ axis: LinearAxis;
211
+ gap: number;
212
+ itemAs: string;
213
+ itemAttributes: VirtualListItemAttributes<unknown> | undefined;
214
+ }>, render: ((props: VirtualListSlotProps<unknown>) => VNodeChild) | undefined, itemRef: (index: number, value: unknown) => void): VNodeArrayChildren;
@@ -0,0 +1,401 @@
1
+ import { defineComponent, h, nextTick, onBeforeUnmount, onMounted, shallowRef, watch } from 'vue';
2
+ import { createSequence } from '@sectile/core/sequence';
3
+ import { createExtentIndex, createUniformExtentIndex } from '@sectile/virtual/extent-index';
4
+ import { linearLayoutStrategy, tryApplyLinearPatch, createLinearLayout } from '@sectile/virtual/linear-layout';
5
+ import { createAxisMeasurementResolver, virtualItemStyle } from '@sectile/dom/virtual';
6
+ import { Primitive } from '../primitive.js';
7
+ import { VirtualizerContent, VirtualizerRoot, useVirtualizer } from './virtual-core.js';
8
+ import { assertVirtualListSizeMode, createPreparedVirtualListSequence, estimatedExtent, exactExtent, prepareVirtualList, reconcileVirtualList, requireAutomaticEstimate, requiresDOMBootstrap, updatePreparedVirtualList, } from './virtual-collection-model.js';
9
+ const VirtualListRuntime = /* @__PURE__ */ defineComponent({
10
+ name: 'SectileVirtualList',
11
+ inheritAttrs: false,
12
+ props: {
13
+ items: {
14
+ type: Array,
15
+ required: true,
16
+ },
17
+ getKey: {
18
+ type: Function,
19
+ required: true,
20
+ },
21
+ estimateSize: {
22
+ type: [Number, Function],
23
+ default: undefined,
24
+ },
25
+ itemSize: { type: Number, default: undefined },
26
+ axis: {
27
+ type: String,
28
+ default: 'vertical',
29
+ },
30
+ gap: { type: Number, default: 0 },
31
+ overscan: {
32
+ type: [Number, Object],
33
+ default: 240,
34
+ },
35
+ maxItems: { type: Number, default: 1_000_000 },
36
+ initialViewport: {
37
+ type: Object,
38
+ default: undefined,
39
+ },
40
+ as: { type: String, default: 'div' },
41
+ contentAs: { type: String, default: 'div' },
42
+ itemAs: { type: String, default: 'div' },
43
+ itemAttributes: {
44
+ type: Function,
45
+ default: undefined,
46
+ },
47
+ },
48
+ emits: {
49
+ stateChange: (_state) => true,
50
+ planChange: (_plan) => true,
51
+ error: (_error) => true,
52
+ },
53
+ slots: Object,
54
+ setup(props, { attrs, emit, expose, slots }) {
55
+ assertVirtualListSizeMode(props.itemSize, props.estimateSize);
56
+ const prepared = shallowRef(prepareVirtualList(props.items, props.getKey));
57
+ const automaticEstimate = shallowRef();
58
+ const bootstrapCount = shallowRef(requiresDOMBootstrap(props.itemSize, props.estimateSize) && prepared.value.ids.length > 0 ? 1 : 0);
59
+ const bootstrapElements = new Map();
60
+ let bootstrapScheduled = false;
61
+ let disposed = false;
62
+ const state = shallowRef(requiresDOMBootstrap(props.itemSize, props.estimateSize)
63
+ ? createEmptyVirtualListState(props)
64
+ : createVirtualListState(prepared.value, props.items, props));
65
+ const measure = props.itemSize === undefined
66
+ ? createVirtualListMeasurementResolver(props.axis)
67
+ : undefined;
68
+ const virtualizer = useVirtualizer({
69
+ state,
70
+ strategy: linearLayoutStrategy,
71
+ overscan: () => props.overscan,
72
+ ...(props.initialViewport === undefined
73
+ ? {}
74
+ : { initialViewport: props.initialViewport }),
75
+ ...(measure === undefined ? {} : { measure }),
76
+ onStateChange: (value) => {
77
+ emit('stateChange', value);
78
+ },
79
+ onPlanChange: (value) => {
80
+ emit('planChange', value);
81
+ },
82
+ onError: (error) => {
83
+ emit('error', error);
84
+ },
85
+ });
86
+ const registrations = new Map();
87
+ const elements = new Map();
88
+ const itemRefs = new Map();
89
+ const setRootElement = (value) => {
90
+ virtualizer.root.value = value instanceof HTMLElement ? value : null;
91
+ };
92
+ const itemRef = (id) => {
93
+ const existing = itemRefs.get(id);
94
+ if (existing !== undefined)
95
+ return existing;
96
+ const callback = (value) => {
97
+ const element = value instanceof HTMLElement ? value : null;
98
+ if (element !== null && elements.get(id) === element)
99
+ return;
100
+ registrations.get(id)?.();
101
+ registrations.delete(id);
102
+ elements.delete(id);
103
+ if (element !== null) {
104
+ elements.set(id, element);
105
+ registrations.set(id, virtualizer.registerItem(element, id));
106
+ }
107
+ };
108
+ itemRefs.set(id, callback);
109
+ return callback;
110
+ };
111
+ const bootstrapItemRef = (index, value) => {
112
+ const element = value instanceof HTMLElement ? value : null;
113
+ if (element === null)
114
+ bootstrapElements.delete(index);
115
+ else {
116
+ bootstrapElements.set(index, element);
117
+ scheduleBootstrap();
118
+ }
119
+ };
120
+ const completeBootstrap = () => {
121
+ if (automaticEstimate.value !== undefined
122
+ || !requiresDOMBootstrap(props.itemSize, props.estimateSize)
123
+ || prepared.value.ids.length === 0)
124
+ return;
125
+ const count = Math.min(bootstrapCount.value, prepared.value.ids.length);
126
+ const extents = [];
127
+ for (let index = 0; index < count; index += 1) {
128
+ const element = bootstrapElements.get(index);
129
+ if (element === undefined)
130
+ return;
131
+ const bounds = element.getBoundingClientRect();
132
+ const extent = props.axis === 'vertical' ? bounds.height : bounds.width;
133
+ if (!Number.isFinite(extent) || extent <= 0)
134
+ return;
135
+ extents.push(extent);
136
+ }
137
+ const total = extents.reduce((sum, extent) => sum + extent, 0)
138
+ + props.gap * Math.max(0, extents.length - 1);
139
+ const root = virtualizer.root.value;
140
+ const measuredViewportExtent = props.axis === 'vertical'
141
+ ? root?.clientHeight ?? 0
142
+ : root?.clientWidth ?? 0;
143
+ const viewportExtent = measuredViewportExtent > 0
144
+ ? measuredViewportExtent
145
+ : props.axis === 'vertical'
146
+ ? props.initialViewport?.height ?? 0
147
+ : props.initialViewport?.width ?? 0;
148
+ const target = viewportExtent + bootstrapTrailingOverscanExtent(props.overscan, props.axis);
149
+ const average = extents.reduce((sum, extent) => sum + extent, 0) / extents.length;
150
+ if (target > total && count < prepared.value.ids.length) {
151
+ const nextCount = Math.min(prepared.value.ids.length, Math.max(count + 1, Math.ceil((target + props.gap) / (average + props.gap))));
152
+ bootstrapCount.value = nextCount;
153
+ return;
154
+ }
155
+ automaticEstimate.value = average;
156
+ bootstrapCount.value = 0;
157
+ bootstrapElements.clear();
158
+ state.value = createVirtualListState(prepared.value, props.items, props, automaticEstimate.value);
159
+ };
160
+ function scheduleBootstrap() {
161
+ if (disposed
162
+ || bootstrapScheduled
163
+ || automaticEstimate.value !== undefined
164
+ || bootstrapCount.value === 0)
165
+ return;
166
+ bootstrapScheduled = true;
167
+ void nextTick(() => {
168
+ bootstrapScheduled = false;
169
+ if (!disposed)
170
+ completeBootstrap();
171
+ });
172
+ }
173
+ onMounted(scheduleBootstrap);
174
+ watch(() => props.items, (items) => {
175
+ const next = updatePreparedVirtualList(prepared.value, items, props.getKey);
176
+ if (requiresDOMBootstrap(props.itemSize, props.estimateSize) && automaticEstimate.value === undefined) {
177
+ prepared.value = next;
178
+ bootstrapCount.value = next.ids.length > 0 ? 1 : 0;
179
+ scheduleBootstrap();
180
+ return;
181
+ }
182
+ const patch = reconcileVirtualList(state.value, next, items, props, automaticEstimate.value);
183
+ if (patch === null) {
184
+ prepared.value = next;
185
+ return;
186
+ }
187
+ const result = virtualizer.connection.value === undefined
188
+ ? tryApplyLinearPatch(state.value, patch)
189
+ : virtualizer.connection.value.mutate(patch);
190
+ if (!result.ok) {
191
+ if (virtualizer.connection.value === undefined)
192
+ emit('error', result.error);
193
+ return;
194
+ }
195
+ if (virtualizer.connection.value === undefined)
196
+ state.value = result.value.state;
197
+ for (const id of itemRefs.keys()) {
198
+ if (result.value.state.domain.indexOf(id) === null)
199
+ itemRefs.delete(id);
200
+ }
201
+ prepared.value = next;
202
+ }, { flush: 'sync' });
203
+ let constructionWarningShown = false;
204
+ watch(() => [
205
+ props.axis,
206
+ props.gap,
207
+ props.maxItems,
208
+ props.itemSize,
209
+ props.estimateSize,
210
+ props.initialViewport?.x,
211
+ props.initialViewport?.y,
212
+ props.initialViewport?.width,
213
+ props.initialViewport?.height,
214
+ ], (value, previous) => {
215
+ if (constructionWarningShown
216
+ || value.every((item, index) => Object.is(item, previous[index])))
217
+ return;
218
+ constructionWarningShown = true;
219
+ console.warn('[Sectile] VirtualList axis, gap, maxItems, itemSize, estimateSize, and initialViewport are construction-time options. Remount the list to change them.');
220
+ }, { flush: 'sync' });
221
+ onBeforeUnmount(() => {
222
+ disposed = true;
223
+ for (const unregister of registrations.values())
224
+ unregister();
225
+ registrations.clear();
226
+ elements.clear();
227
+ itemRefs.clear();
228
+ bootstrapElements.clear();
229
+ });
230
+ expose(Object.freeze({
231
+ root: virtualizer.root,
232
+ get state() {
233
+ return state.value;
234
+ },
235
+ get plan() {
236
+ return virtualizer.plan.value;
237
+ },
238
+ scrollTo: virtualizer.scrollTo,
239
+ refresh: virtualizer.refresh,
240
+ flush: virtualizer.flush,
241
+ }));
242
+ return () => {
243
+ const plan = virtualizer.plan.value;
244
+ const rootStyle = attrs['style'];
245
+ const rootAttributes = { ...attrs };
246
+ delete rootAttributes['style'];
247
+ const bootstrapping = automaticEstimate.value === undefined && bootstrapCount.value > 0;
248
+ const contentStyle = props.axis === 'vertical'
249
+ ? {
250
+ position: 'relative',
251
+ width: '100%',
252
+ ...(bootstrapping ? {} : { height: `${plan?.contentSize.height ?? 0}px` }),
253
+ }
254
+ : {
255
+ position: 'relative',
256
+ height: '100%',
257
+ ...(bootstrapping
258
+ ? { display: 'flex' }
259
+ : { width: `${plan?.contentSize.width ?? 0}px` }),
260
+ };
261
+ const children = (plan?.placements.map((placement) => {
262
+ const index = placement.index;
263
+ const value = props.items[index];
264
+ if (index >= props.items.length || prepared.value.ids[index] !== placement.id)
265
+ return null;
266
+ const itemAttributes = props.itemAttributes?.(value, index) ?? {};
267
+ const itemStyle = virtualItemStyle(placement, props.itemSize === undefined
268
+ ? undefined
269
+ : props.axis === 'vertical'
270
+ ? { height: true }
271
+ : { width: true });
272
+ const rendered = slots['default']?.({
273
+ value,
274
+ key: placement.id,
275
+ index,
276
+ placement,
277
+ });
278
+ const itemChildren = rendered === undefined || rendered === null
279
+ ? []
280
+ : Array.isArray(rendered)
281
+ ? rendered
282
+ : [rendered];
283
+ return h(props.itemAs, {
284
+ ...itemAttributes,
285
+ key: placement.id,
286
+ ...(props.itemSize === undefined ? { ref: itemRef(placement.id) } : {}),
287
+ style: [
288
+ itemAttributes['style'],
289
+ itemStyle,
290
+ props.axis === 'vertical'
291
+ ? { width: '100%' }
292
+ : { height: '100%' },
293
+ ],
294
+ 'data-scope': 'virtual-list',
295
+ 'data-part': 'item',
296
+ 'data-index': placement.index,
297
+ 'data-visible': placement.visible ? '' : undefined,
298
+ }, itemChildren);
299
+ }) ?? []);
300
+ if (automaticEstimate.value === undefined && bootstrapCount.value > 0) {
301
+ children.push(...renderVirtualListBootstrapItems(prepared.value, props.items, bootstrapCount.value, props, slots['default'], bootstrapItemRef));
302
+ }
303
+ if (prepared.value.ids.length === 0) {
304
+ const empty = slots['empty']?.();
305
+ if (empty !== undefined && empty !== null)
306
+ children.push(empty);
307
+ }
308
+ return h(props.as, {
309
+ ...rootAttributes,
310
+ ref: setRootElement,
311
+ style: [{ overflow: 'auto' }, rootStyle],
312
+ 'data-scope': 'virtual-list',
313
+ 'data-part': 'root',
314
+ }, [
315
+ h(props.contentAs, {
316
+ style: contentStyle,
317
+ 'data-scope': 'virtual-list',
318
+ 'data-part': 'content',
319
+ }, children),
320
+ ]);
321
+ };
322
+ },
323
+ });
324
+ export const VirtualList = VirtualListRuntime;
325
+ export function createVirtualListMeasurementResolver(axis) {
326
+ return ({ element, placement, state }) => {
327
+ const bounds = element.getBoundingClientRect();
328
+ const value = axis === 'vertical' ? bounds.height : bounds.width;
329
+ if (!Number.isFinite(value) || value <= 0)
330
+ return null;
331
+ const current = state.extents.extentAt(placement.index);
332
+ if (current?.kind === 'exact' && Math.abs(current.value - value) < 0.01)
333
+ return null;
334
+ return Object.freeze({
335
+ index: placement.index,
336
+ extent: Object.freeze({ kind: 'exact', value }),
337
+ });
338
+ };
339
+ }
340
+ export function createVirtualListState(prepared, items, props, automaticEstimate) {
341
+ const estimate = props.estimateSize ?? automaticEstimate;
342
+ const sharedExtent = props.itemSize !== undefined
343
+ ? exactExtent(props.itemSize)
344
+ : typeof estimate !== 'function'
345
+ ? estimatedExtent(requireAutomaticEstimate(estimate), undefined, 0)
346
+ : null;
347
+ return createLinearLayout(createPreparedVirtualListSequence(prepared, props.maxItems), sharedExtent === null
348
+ ? createExtentIndex(prepared.ids.map((_id, index) => estimatedExtent(estimate, items[index], index)), { maxItems: props.maxItems })
349
+ : createUniformExtentIndex(prepared.ids.length, sharedExtent, {
350
+ maxItems: props.maxItems,
351
+ }), { axis: props.axis, gap: props.gap, crossExtent: 1 });
352
+ }
353
+ export function createEmptyVirtualListState(props) {
354
+ return createLinearLayout(createSequence([], { maxItems: props.maxItems, maxIDCodeUnits: 1_024 }), createUniformExtentIndex(0, exactExtent(0), { maxItems: props.maxItems }), { axis: props.axis, gap: props.gap, crossExtent: 1 });
355
+ }
356
+ export function bootstrapTrailingOverscanExtent(overscan, axis) {
357
+ if (typeof overscan === 'number')
358
+ return overscan;
359
+ return axis === 'vertical'
360
+ ? overscan.bottom ?? 0
361
+ : overscan.right ?? 0;
362
+ }
363
+ export function renderVirtualListBootstrapItems(prepared, items, count, props, render, itemRef) {
364
+ return Array.from({ length: Math.min(count, prepared.ids.length) }, (_unused, index) => {
365
+ const value = items[index];
366
+ const id = prepared.ids[index];
367
+ const attributes = props.itemAttributes?.(value, index) ?? {};
368
+ const placement = Object.freeze({
369
+ id,
370
+ index,
371
+ rect: Object.freeze({ x: 0, y: 0, width: 0, height: 0 }),
372
+ visible: true,
373
+ });
374
+ const rendered = render?.({ value, key: id, index, placement });
375
+ const children = rendered === undefined || rendered === null
376
+ ? []
377
+ : Array.isArray(rendered)
378
+ ? rendered
379
+ : [rendered];
380
+ return h(props.itemAs, {
381
+ ...attributes,
382
+ key: id,
383
+ ref: (element) => itemRef(index, element),
384
+ style: [
385
+ attributes['style'],
386
+ props.axis === 'vertical' ? { width: '100%' } : { height: '100%' },
387
+ props.gap > 0 && index > 0
388
+ ? props.axis === 'vertical'
389
+ ? { marginTop: `${props.gap}px` }
390
+ : { marginLeft: `${props.gap}px` }
391
+ : undefined,
392
+ ],
393
+ 'data-scope': 'virtual-list',
394
+ 'data-part': 'item',
395
+ 'data-index': index,
396
+ 'data-visible': '',
397
+ 'data-bootstrap': '',
398
+ }, children);
399
+ });
400
+ }
401
+ //# sourceMappingURL=virtual-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"virtual-list.js","sourceRoot":"","sources":["../../src/internal/virtual-list.ts"],"names":[],"mappings":"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"}
package/dist/listbox.d.ts CHANGED
@@ -272,4 +272,3 @@ export declare const ListboxItemIndicator: import("vue").DefineComponent<import(
272
272
  }, SlotsType<{
273
273
  default: (props: ListboxItemSlotProps) => VNodeChild;
274
274
  }>, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
275
- //# sourceMappingURL=listbox.d.ts.map