@solid2-aria/stately 0.0.0-stage → 0.0.1

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 (477) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +45 -2
  3. package/dist/LICENSES/Apache-2.0.txt +201 -0
  4. package/dist/LICENSES/react-spectrum-NOTICE.txt +242 -0
  5. package/dist/NOTICE.txt +636 -0
  6. package/dist/autocomplete/create-autocomplete-state.d.ts +46 -0
  7. package/dist/autocomplete/create-autocomplete-state.js +41 -0
  8. package/dist/autocomplete/create-autocomplete-state.js.map +1 -0
  9. package/dist/calendar/create-calendar-state.d.ts +62 -0
  10. package/dist/calendar/create-calendar-state.js +357 -0
  11. package/dist/calendar/create-calendar-state.js.map +1 -0
  12. package/dist/calendar/create-range-calendar-state.d.ts +63 -0
  13. package/dist/calendar/create-range-calendar-state.js +204 -0
  14. package/dist/calendar/create-range-calendar-state.js.map +1 -0
  15. package/dist/calendar/types.d.ts +222 -0
  16. package/dist/calendar/types.js +16 -0
  17. package/dist/calendar/utils.d.ts +27 -0
  18. package/dist/calendar/utils.js +81 -0
  19. package/dist/calendar/utils.js.map +1 -0
  20. package/dist/checkbox/create-checkbox-group-state.d.ts +60 -0
  21. package/dist/checkbox/create-checkbox-group-state.js +88 -0
  22. package/dist/checkbox/create-checkbox-group-state.js.map +1 -0
  23. package/dist/collections/collection-builder.d.ts +28 -0
  24. package/dist/collections/collection-builder.js +164 -0
  25. package/dist/collections/collection-builder.js.map +1 -0
  26. package/dist/collections/create-collection.d.ts +24 -0
  27. package/dist/collections/create-collection.js +35 -0
  28. package/dist/collections/create-collection.js.map +1 -0
  29. package/dist/collections/get-child-nodes.d.ts +25 -0
  30. package/dist/collections/get-child-nodes.js +67 -0
  31. package/dist/collections/get-child-nodes.js.map +1 -0
  32. package/dist/collections/get-item-count.d.ts +19 -0
  33. package/dist/collections/get-item-count.js +34 -0
  34. package/dist/collections/get-item-count.js.map +1 -0
  35. package/dist/collections/item.d.ts +29 -0
  36. package/dist/collections/item.js +68 -0
  37. package/dist/collections/item.js.map +1 -0
  38. package/dist/collections/section.d.ts +29 -0
  39. package/dist/collections/section.js +60 -0
  40. package/dist/collections/section.js.map +1 -0
  41. package/dist/collections/types.d.ts +46 -0
  42. package/dist/collections/types.js +29 -0
  43. package/dist/collections/types.js.map +1 -0
  44. package/dist/color/color/base-color.d.ts +40 -0
  45. package/dist/color/color/base-color.js +122 -0
  46. package/dist/color/color/base-color.js.map +1 -0
  47. package/dist/color/color/color-classes.d.ts +27 -0
  48. package/dist/color/color/color-classes.js +29 -0
  49. package/dist/color/color/color-classes.js.map +1 -0
  50. package/dist/color/color/color-constructors.d.ts +23 -0
  51. package/dist/color/color/color-constructors.js +16 -0
  52. package/dist/color/color/color.d.ts +3 -0
  53. package/dist/color/color/color.js +2 -0
  54. package/dist/color/color/hsb-color.d.ts +24 -0
  55. package/dist/color/color/hsb-color.js +183 -0
  56. package/dist/color/color/hsb-color.js.map +1 -0
  57. package/dist/color/color/hsl-color.d.ts +24 -0
  58. package/dist/color/color/hsl-color.js +184 -0
  59. package/dist/color/color/hsl-color.js.map +1 -0
  60. package/dist/color/color/normalize-hue.d.ts +18 -0
  61. package/dist/color/color/normalize-hue.js +24 -0
  62. package/dist/color/color/normalize-hue.js.map +1 -0
  63. package/dist/color/color/oklch.d.ts +19 -0
  64. package/dist/color/color/oklch.js +97 -0
  65. package/dist/color/color/oklch.js.map +1 -0
  66. package/dist/color/color/rgb-color.d.ts +24 -0
  67. package/dist/color/color/rgb-color.js +230 -0
  68. package/dist/color/color/rgb-color.js.map +1 -0
  69. package/dist/color/color.d.ts +25 -0
  70. package/dist/color/color.js +41 -0
  71. package/dist/color/color.js.map +1 -0
  72. package/dist/color/create-color-area-state.d.ts +105 -0
  73. package/dist/color/create-color-area-state.js +138 -0
  74. package/dist/color/create-color-area-state.js.map +1 -0
  75. package/dist/color/create-color-channel-field-state.d.ts +29 -0
  76. package/dist/color/create-color-channel-field-state.js +69 -0
  77. package/dist/color/create-color-channel-field-state.js.map +1 -0
  78. package/dist/color/create-color-field-state.d.ts +61 -0
  79. package/dist/color/create-color-field-state.js +113 -0
  80. package/dist/color/create-color-field-state.js.map +1 -0
  81. package/dist/color/create-color-picker-state.d.ts +16 -0
  82. package/dist/color/create-color-picker-state.js +26 -0
  83. package/dist/color/create-color-picker-state.js.map +1 -0
  84. package/dist/color/create-color-slider-state.d.ts +50 -0
  85. package/dist/color/create-color-slider-state.js +93 -0
  86. package/dist/color/create-color-slider-state.js.map +1 -0
  87. package/dist/color/create-color-wheel-state.d.ts +76 -0
  88. package/dist/color/create-color-wheel-state.js +130 -0
  89. package/dist/color/create-color-wheel-state.js.map +1 -0
  90. package/dist/color/create-color.d.ts +20 -0
  91. package/dist/color/create-color.js +33 -0
  92. package/dist/color/create-color.js.map +1 -0
  93. package/dist/color/types.d.ts +87 -0
  94. package/dist/color/types.js +5 -0
  95. package/dist/combobox/create-combo-box-state.d.ts +157 -0
  96. package/dist/combobox/create-combo-box-state.js +450 -0
  97. package/dist/combobox/create-combo-box-state.js.map +1 -0
  98. package/dist/data/create-async-list.d.ts +88 -0
  99. package/dist/data/create-async-list.js +276 -0
  100. package/dist/data/create-async-list.js.map +1 -0
  101. package/dist/data/create-list-data.d.ts +140 -0
  102. package/dist/data/create-list-data.js +250 -0
  103. package/dist/data/create-list-data.js.map +1 -0
  104. package/dist/data/create-tree-data.d.ts +134 -0
  105. package/dist/data/create-tree-data.js +364 -0
  106. package/dist/data/create-tree-data.js.map +1 -0
  107. package/dist/datepicker/create-date-field-state.d.ts +138 -0
  108. package/dist/datepicker/create-date-field-state.js +449 -0
  109. package/dist/datepicker/create-date-field-state.js.map +1 -0
  110. package/dist/datepicker/create-date-picker-state.d.ts +82 -0
  111. package/dist/datepicker/create-date-picker-state.js +191 -0
  112. package/dist/datepicker/create-date-picker-state.js.map +1 -0
  113. package/dist/datepicker/create-date-range-picker-state.d.ts +97 -0
  114. package/dist/datepicker/create-date-range-picker-state.js +305 -0
  115. package/dist/datepicker/create-date-range-picker-state.js.map +1 -0
  116. package/dist/datepicker/create-time-field-state.d.ts +34 -0
  117. package/dist/datepicker/create-time-field-state.js +128 -0
  118. package/dist/datepicker/create-time-field-state.js.map +1 -0
  119. package/dist/datepicker/incomplete-date.d.ts +71 -0
  120. package/dist/datepicker/incomplete-date.js +324 -0
  121. package/dist/datepicker/incomplete-date.js.map +1 -0
  122. package/dist/datepicker/placeholders.d.ts +18 -0
  123. package/dist/datepicker/placeholders.js +418 -0
  124. package/dist/datepicker/placeholders.js.map +1 -0
  125. package/dist/datepicker/types.d.ts +131 -0
  126. package/dist/datepicker/types.js +16 -0
  127. package/dist/datepicker/utils.d.ts +37 -0
  128. package/dist/datepicker/utils.js +168 -0
  129. package/dist/datepicker/utils.js.map +1 -0
  130. package/dist/disclosure/create-disclosure-group-state.d.ts +47 -0
  131. package/dist/disclosure/create-disclosure-group-state.js +62 -0
  132. package/dist/disclosure/create-disclosure-group-state.js.map +1 -0
  133. package/dist/disclosure/create-disclosure-state.d.ts +42 -0
  134. package/dist/disclosure/create-disclosure-state.js +49 -0
  135. package/dist/disclosure/create-disclosure-state.js.map +1 -0
  136. package/dist/dnd/create-draggable-collection-state.d.ts +63 -0
  137. package/dist/dnd/create-draggable-collection-state.js +136 -0
  138. package/dist/dnd/create-draggable-collection-state.js.map +1 -0
  139. package/dist/dnd/create-droppable-collection-state.d.ts +55 -0
  140. package/dist/dnd/create-droppable-collection-state.js +155 -0
  141. package/dist/dnd/create-droppable-collection-state.js.map +1 -0
  142. package/dist/flags/flags.d.ts +21 -0
  143. package/dist/flags/flags.js +34 -0
  144. package/dist/flags/flags.js.map +1 -0
  145. package/dist/form/create-form-validation-state.d.ts +37 -0
  146. package/dist/form/create-form-validation-state.js +152 -0
  147. package/dist/form/create-form-validation-state.js.map +1 -0
  148. package/dist/grid/create-grid-state.d.ts +38 -0
  149. package/dist/grid/create-grid-state.js +85 -0
  150. package/dist/grid/create-grid-state.js.map +1 -0
  151. package/dist/grid/grid-collection.d.ts +68 -0
  152. package/dist/grid/grid-collection.js +133 -0
  153. package/dist/grid/grid-collection.js.map +1 -0
  154. package/dist/index.d.ts +91 -0
  155. package/dist/index.js +86 -0
  156. package/dist/intl/color/ar-AE.js +44 -0
  157. package/dist/intl/color/ar-AE.js.map +1 -0
  158. package/dist/intl/color/bg-BG.js +44 -0
  159. package/dist/intl/color/bg-BG.js.map +1 -0
  160. package/dist/intl/color/cs-CZ.js +44 -0
  161. package/dist/intl/color/cs-CZ.js.map +1 -0
  162. package/dist/intl/color/da-DK.js +44 -0
  163. package/dist/intl/color/da-DK.js.map +1 -0
  164. package/dist/intl/color/de-DE.js +44 -0
  165. package/dist/intl/color/de-DE.js.map +1 -0
  166. package/dist/intl/color/el-GR.js +44 -0
  167. package/dist/intl/color/el-GR.js.map +1 -0
  168. package/dist/intl/color/en-US.js +44 -0
  169. package/dist/intl/color/en-US.js.map +1 -0
  170. package/dist/intl/color/es-ES.js +44 -0
  171. package/dist/intl/color/es-ES.js.map +1 -0
  172. package/dist/intl/color/et-EE.js +44 -0
  173. package/dist/intl/color/et-EE.js.map +1 -0
  174. package/dist/intl/color/fi-FI.js +44 -0
  175. package/dist/intl/color/fi-FI.js.map +1 -0
  176. package/dist/intl/color/fr-FR.js +44 -0
  177. package/dist/intl/color/fr-FR.js.map +1 -0
  178. package/dist/intl/color/he-IL.js +44 -0
  179. package/dist/intl/color/he-IL.js.map +1 -0
  180. package/dist/intl/color/hr-HR.js +44 -0
  181. package/dist/intl/color/hr-HR.js.map +1 -0
  182. package/dist/intl/color/hu-HU.js +44 -0
  183. package/dist/intl/color/hu-HU.js.map +1 -0
  184. package/dist/intl/color/index.js +75 -0
  185. package/dist/intl/color/index.js.map +1 -0
  186. package/dist/intl/color/it-IT.js +44 -0
  187. package/dist/intl/color/it-IT.js.map +1 -0
  188. package/dist/intl/color/ja-JP.js +44 -0
  189. package/dist/intl/color/ja-JP.js.map +1 -0
  190. package/dist/intl/color/ko-KR.js +44 -0
  191. package/dist/intl/color/ko-KR.js.map +1 -0
  192. package/dist/intl/color/lt-LT.js +44 -0
  193. package/dist/intl/color/lt-LT.js.map +1 -0
  194. package/dist/intl/color/lv-LV.js +44 -0
  195. package/dist/intl/color/lv-LV.js.map +1 -0
  196. package/dist/intl/color/nb-NO.js +44 -0
  197. package/dist/intl/color/nb-NO.js.map +1 -0
  198. package/dist/intl/color/nl-NL.js +44 -0
  199. package/dist/intl/color/nl-NL.js.map +1 -0
  200. package/dist/intl/color/pl-PL.js +44 -0
  201. package/dist/intl/color/pl-PL.js.map +1 -0
  202. package/dist/intl/color/pt-BR.js +44 -0
  203. package/dist/intl/color/pt-BR.js.map +1 -0
  204. package/dist/intl/color/pt-PT.js +44 -0
  205. package/dist/intl/color/pt-PT.js.map +1 -0
  206. package/dist/intl/color/ro-RO.js +44 -0
  207. package/dist/intl/color/ro-RO.js.map +1 -0
  208. package/dist/intl/color/ru-RU.js +44 -0
  209. package/dist/intl/color/ru-RU.js.map +1 -0
  210. package/dist/intl/color/sk-SK.js +44 -0
  211. package/dist/intl/color/sk-SK.js.map +1 -0
  212. package/dist/intl/color/sl-SI.js +44 -0
  213. package/dist/intl/color/sl-SI.js.map +1 -0
  214. package/dist/intl/color/sr-SP.js +44 -0
  215. package/dist/intl/color/sr-SP.js.map +1 -0
  216. package/dist/intl/color/sv-SE.js +44 -0
  217. package/dist/intl/color/sv-SE.js.map +1 -0
  218. package/dist/intl/color/tr-TR.js +44 -0
  219. package/dist/intl/color/tr-TR.js.map +1 -0
  220. package/dist/intl/color/uk-UA.js +44 -0
  221. package/dist/intl/color/uk-UA.js.map +1 -0
  222. package/dist/intl/color/zh-CN.js +44 -0
  223. package/dist/intl/color/zh-CN.js.map +1 -0
  224. package/dist/intl/color/zh-TW.js +44 -0
  225. package/dist/intl/color/zh-TW.js.map +1 -0
  226. package/dist/intl/datepicker/ar-AE.js +11 -0
  227. package/dist/intl/datepicker/ar-AE.js.map +1 -0
  228. package/dist/intl/datepicker/bg-BG.js +11 -0
  229. package/dist/intl/datepicker/bg-BG.js.map +1 -0
  230. package/dist/intl/datepicker/cs-CZ.js +11 -0
  231. package/dist/intl/datepicker/cs-CZ.js.map +1 -0
  232. package/dist/intl/datepicker/da-DK.js +11 -0
  233. package/dist/intl/datepicker/da-DK.js.map +1 -0
  234. package/dist/intl/datepicker/de-DE.js +11 -0
  235. package/dist/intl/datepicker/de-DE.js.map +1 -0
  236. package/dist/intl/datepicker/el-GR.js +11 -0
  237. package/dist/intl/datepicker/el-GR.js.map +1 -0
  238. package/dist/intl/datepicker/en-US.js +11 -0
  239. package/dist/intl/datepicker/en-US.js.map +1 -0
  240. package/dist/intl/datepicker/es-ES.js +11 -0
  241. package/dist/intl/datepicker/es-ES.js.map +1 -0
  242. package/dist/intl/datepicker/et-EE.js +11 -0
  243. package/dist/intl/datepicker/et-EE.js.map +1 -0
  244. package/dist/intl/datepicker/fi-FI.js +11 -0
  245. package/dist/intl/datepicker/fi-FI.js.map +1 -0
  246. package/dist/intl/datepicker/fr-FR.js +11 -0
  247. package/dist/intl/datepicker/fr-FR.js.map +1 -0
  248. package/dist/intl/datepicker/he-IL.js +11 -0
  249. package/dist/intl/datepicker/he-IL.js.map +1 -0
  250. package/dist/intl/datepicker/hr-HR.js +11 -0
  251. package/dist/intl/datepicker/hr-HR.js.map +1 -0
  252. package/dist/intl/datepicker/hu-HU.js +11 -0
  253. package/dist/intl/datepicker/hu-HU.js.map +1 -0
  254. package/dist/intl/datepicker/index.js +75 -0
  255. package/dist/intl/datepicker/index.js.map +1 -0
  256. package/dist/intl/datepicker/it-IT.js +11 -0
  257. package/dist/intl/datepicker/it-IT.js.map +1 -0
  258. package/dist/intl/datepicker/ja-JP.js +11 -0
  259. package/dist/intl/datepicker/ja-JP.js.map +1 -0
  260. package/dist/intl/datepicker/ko-KR.js +11 -0
  261. package/dist/intl/datepicker/ko-KR.js.map +1 -0
  262. package/dist/intl/datepicker/lt-LT.js +11 -0
  263. package/dist/intl/datepicker/lt-LT.js.map +1 -0
  264. package/dist/intl/datepicker/lv-LV.js +11 -0
  265. package/dist/intl/datepicker/lv-LV.js.map +1 -0
  266. package/dist/intl/datepicker/nb-NO.js +11 -0
  267. package/dist/intl/datepicker/nb-NO.js.map +1 -0
  268. package/dist/intl/datepicker/nl-NL.js +11 -0
  269. package/dist/intl/datepicker/nl-NL.js.map +1 -0
  270. package/dist/intl/datepicker/pl-PL.js +11 -0
  271. package/dist/intl/datepicker/pl-PL.js.map +1 -0
  272. package/dist/intl/datepicker/pt-BR.js +11 -0
  273. package/dist/intl/datepicker/pt-BR.js.map +1 -0
  274. package/dist/intl/datepicker/pt-PT.js +11 -0
  275. package/dist/intl/datepicker/pt-PT.js.map +1 -0
  276. package/dist/intl/datepicker/ro-RO.js +11 -0
  277. package/dist/intl/datepicker/ro-RO.js.map +1 -0
  278. package/dist/intl/datepicker/ru-RU.js +11 -0
  279. package/dist/intl/datepicker/ru-RU.js.map +1 -0
  280. package/dist/intl/datepicker/sk-SK.js +11 -0
  281. package/dist/intl/datepicker/sk-SK.js.map +1 -0
  282. package/dist/intl/datepicker/sl-SI.js +11 -0
  283. package/dist/intl/datepicker/sl-SI.js.map +1 -0
  284. package/dist/intl/datepicker/sr-SP.js +11 -0
  285. package/dist/intl/datepicker/sr-SP.js.map +1 -0
  286. package/dist/intl/datepicker/sv-SE.js +11 -0
  287. package/dist/intl/datepicker/sv-SE.js.map +1 -0
  288. package/dist/intl/datepicker/tr-TR.js +11 -0
  289. package/dist/intl/datepicker/tr-TR.js.map +1 -0
  290. package/dist/intl/datepicker/uk-UA.js +11 -0
  291. package/dist/intl/datepicker/uk-UA.js.map +1 -0
  292. package/dist/intl/datepicker/zh-CN.js +11 -0
  293. package/dist/intl/datepicker/zh-CN.js.map +1 -0
  294. package/dist/intl/datepicker/zh-TW.js +11 -0
  295. package/dist/intl/datepicker/zh-TW.js.map +1 -0
  296. package/dist/layout/grid-layout.d.ts +107 -0
  297. package/dist/layout/grid-layout.js +253 -0
  298. package/dist/layout/grid-layout.js.map +1 -0
  299. package/dist/layout/list-layout.d.ts +187 -0
  300. package/dist/layout/list-layout.js +488 -0
  301. package/dist/layout/list-layout.js.map +1 -0
  302. package/dist/layout/table-layout.d.ts +98 -0
  303. package/dist/layout/table-layout.js +476 -0
  304. package/dist/layout/table-layout.js.map +1 -0
  305. package/dist/layout/waterfall-layout.d.ts +85 -0
  306. package/dist/layout/waterfall-layout.js +225 -0
  307. package/dist/layout/waterfall-layout.js.map +1 -0
  308. package/dist/list/create-list-state.d.ts +48 -0
  309. package/dist/list/create-list-state.js +123 -0
  310. package/dist/list/create-list-state.js.map +1 -0
  311. package/dist/list/create-single-select-list-state.d.ts +38 -0
  312. package/dist/list/create-single-select-list-state.js +55 -0
  313. package/dist/list/create-single-select-list-state.js.map +1 -0
  314. package/dist/list/list-collection.d.ts +36 -0
  315. package/dist/list/list-collection.js +91 -0
  316. package/dist/list/list-collection.js.map +1 -0
  317. package/dist/menu/create-menu-trigger-state.d.ts +55 -0
  318. package/dist/menu/create-menu-trigger-state.js +58 -0
  319. package/dist/menu/create-menu-trigger-state.js.map +1 -0
  320. package/dist/menu/create-submenu-trigger-state.d.ts +47 -0
  321. package/dist/menu/create-submenu-trigger-state.js +59 -0
  322. package/dist/menu/create-submenu-trigger-state.js.map +1 -0
  323. package/dist/numberfield/create-number-field-state.d.ts +93 -0
  324. package/dist/numberfield/create-number-field-state.js +139 -0
  325. package/dist/numberfield/create-number-field-state.js.map +1 -0
  326. package/dist/overlays/create-overlay-trigger-state.d.ts +51 -0
  327. package/dist/overlays/create-overlay-trigger-state.js +56 -0
  328. package/dist/overlays/create-overlay-trigger-state.js.map +1 -0
  329. package/dist/radio/create-radio-group-state.d.ts +61 -0
  330. package/dist/radio/create-radio-group-state.js +71 -0
  331. package/dist/radio/create-radio-group-state.js.map +1 -0
  332. package/dist/searchfield/create-search-field-state.d.ts +35 -0
  333. package/dist/searchfield/create-search-field-state.js +34 -0
  334. package/dist/searchfield/create-search-field-state.js.map +1 -0
  335. package/dist/select/create-select-state.d.ts +116 -0
  336. package/dist/select/create-select-state.js +151 -0
  337. package/dist/select/create-select-state.js.map +1 -0
  338. package/dist/selection/create-multiple-selection-state.d.ts +39 -0
  339. package/dist/selection/create-multiple-selection-state.js +114 -0
  340. package/dist/selection/create-multiple-selection-state.js.map +1 -0
  341. package/dist/selection/selection-manager.d.ts +139 -0
  342. package/dist/selection/selection-manager.js +334 -0
  343. package/dist/selection/selection-manager.js.map +1 -0
  344. package/dist/selection/selection.d.ts +27 -0
  345. package/dist/selection/selection.js +38 -0
  346. package/dist/selection/selection.js.map +1 -0
  347. package/dist/selection/types.d.ts +116 -0
  348. package/dist/selection/types.js +16 -0
  349. package/dist/slider/create-slider-state.d.ts +182 -0
  350. package/dist/slider/create-slider-state.js +131 -0
  351. package/dist/slider/create-slider-state.js.map +1 -0
  352. package/dist/steplist/create-step-list-state.d.ts +40 -0
  353. package/dist/steplist/create-step-list-state.js +132 -0
  354. package/dist/steplist/create-step-list-state.js.map +1 -0
  355. package/dist/table/cell.d.ts +37 -0
  356. package/dist/table/cell.js +47 -0
  357. package/dist/table/cell.js.map +1 -0
  358. package/dist/table/collection-context.d.ts +4 -0
  359. package/dist/table/collection-context.js +8 -0
  360. package/dist/table/collection-context.js.map +1 -0
  361. package/dist/table/column.d.ts +66 -0
  362. package/dist/table/column.js +71 -0
  363. package/dist/table/column.js.map +1 -0
  364. package/dist/table/create-table-column-resize-state.d.ts +65 -0
  365. package/dist/table/create-table-column-resize-state.js +100 -0
  366. package/dist/table/create-table-column-resize-state.js.map +1 -0
  367. package/dist/table/create-table-state.d.ts +112 -0
  368. package/dist/table/create-table-state.js +122 -0
  369. package/dist/table/create-table-state.js.map +1 -0
  370. package/dist/table/create-tree-grid-state.d.ts +44 -0
  371. package/dist/table/create-tree-grid-state.js +145 -0
  372. package/dist/table/create-tree-grid-state.js.map +1 -0
  373. package/dist/table/row.d.ts +44 -0
  374. package/dist/table/row.js +91 -0
  375. package/dist/table/row.js.map +1 -0
  376. package/dist/table/table-body.d.ts +36 -0
  377. package/dist/table/table-body.js +57 -0
  378. package/dist/table/table-body.js.map +1 -0
  379. package/dist/table/table-collection.d.ts +62 -0
  380. package/dist/table/table-collection.js +274 -0
  381. package/dist/table/table-collection.js.map +1 -0
  382. package/dist/table/table-column-layout.d.ts +47 -0
  383. package/dist/table/table-column-layout.js +94 -0
  384. package/dist/table/table-column-layout.js.map +1 -0
  385. package/dist/table/table-header.d.ts +37 -0
  386. package/dist/table/table-header.js +52 -0
  387. package/dist/table/table-header.js.map +1 -0
  388. package/dist/table/table-utils.d.ts +60 -0
  389. package/dist/table/table-utils.js +203 -0
  390. package/dist/table/table-utils.js.map +1 -0
  391. package/dist/tabs/create-tab-list-state.d.ts +42 -0
  392. package/dist/tabs/create-tab-list-state.js +78 -0
  393. package/dist/tabs/create-tab-list-state.js.map +1 -0
  394. package/dist/toast/create-toast-state.d.ts +97 -0
  395. package/dist/toast/create-toast-state.js +166 -0
  396. package/dist/toast/create-toast-state.js.map +1 -0
  397. package/dist/toggle/create-toggle-group-state.d.ts +55 -0
  398. package/dist/toggle/create-toggle-group-state.js +62 -0
  399. package/dist/toggle/create-toggle-group-state.js.map +1 -0
  400. package/dist/toggle/create-toggle-state.d.ts +58 -0
  401. package/dist/toggle/create-toggle-state.js +43 -0
  402. package/dist/toggle/create-toggle-state.js.map +1 -0
  403. package/dist/tokenfield/create-token-field-state.d.ts +39 -0
  404. package/dist/tokenfield/create-token-field-state.js +44 -0
  405. package/dist/tokenfield/create-token-field-state.js.map +1 -0
  406. package/dist/tokenfield/token-field-value.d.ts +111 -0
  407. package/dist/tokenfield/token-field-value.js +327 -0
  408. package/dist/tokenfield/token-field-value.js.map +1 -0
  409. package/dist/tooltip/create-tooltip-trigger-state.d.ts +73 -0
  410. package/dist/tooltip/create-tooltip-trigger-state.js +136 -0
  411. package/dist/tooltip/create-tooltip-trigger-state.js.map +1 -0
  412. package/dist/tree/create-tree-state.d.ts +42 -0
  413. package/dist/tree/create-tree-state.js +75 -0
  414. package/dist/tree/create-tree-state.js.map +1 -0
  415. package/dist/tree/tree-collection.d.ts +36 -0
  416. package/dist/tree/tree-collection.js +84 -0
  417. package/dist/tree/tree-collection.js.map +1 -0
  418. package/dist/utils/create-controlled-signal.d.ts +23 -0
  419. package/dist/utils/create-controlled-signal.js +54 -0
  420. package/dist/utils/create-controlled-signal.js.map +1 -0
  421. package/dist/utils/get-item-key.d.ts +5 -0
  422. package/dist/utils/get-item-key.js +12 -0
  423. package/dist/utils/get-item-key.js.map +1 -0
  424. package/dist/utils/get-node-props.d.ts +23 -0
  425. package/dist/utils/get-node-props.js +38 -0
  426. package/dist/utils/get-node-props.js.map +1 -0
  427. package/dist/utils/has-content.d.ts +5 -0
  428. package/dist/utils/has-content.js +7 -0
  429. package/dist/utils/has-content.js.map +1 -0
  430. package/dist/utils/legacy-props.d.ts +10 -0
  431. package/dist/utils/legacy-props.js +17 -0
  432. package/dist/utils/legacy-props.js.map +1 -0
  433. package/dist/utils/number.d.ts +25 -0
  434. package/dist/utils/number.js +59 -0
  435. package/dist/utils/number.js.map +1 -0
  436. package/dist/utils/parse-calendar-identifier.d.ts +5 -0
  437. package/dist/utils/parse-calendar-identifier.js +31 -0
  438. package/dist/utils/parse-calendar-identifier.js.map +1 -0
  439. package/dist/utils/require-value.d.ts +4 -0
  440. package/dist/utils/require-value.js +10 -0
  441. package/dist/utils/require-value.js.map +1 -0
  442. package/dist/virtualizer/create-virtualizer-state.d.ts +44 -0
  443. package/dist/virtualizer/create-virtualizer-state.js +92 -0
  444. package/dist/virtualizer/create-virtualizer-state.js.map +1 -0
  445. package/dist/virtualizer/layout-info.d.ts +94 -0
  446. package/dist/virtualizer/layout-info.js +118 -0
  447. package/dist/virtualizer/layout-info.js.map +1 -0
  448. package/dist/virtualizer/layout.d.ts +91 -0
  449. package/dist/virtualizer/layout.js +71 -0
  450. package/dist/virtualizer/layout.js.map +1 -0
  451. package/dist/virtualizer/overscan-manager.d.ts +25 -0
  452. package/dist/virtualizer/overscan-manager.js +46 -0
  453. package/dist/virtualizer/overscan-manager.js.map +1 -0
  454. package/dist/virtualizer/point.d.ts +36 -0
  455. package/dist/virtualizer/point.js +48 -0
  456. package/dist/virtualizer/point.js.map +1 -0
  457. package/dist/virtualizer/rect.d.ts +103 -0
  458. package/dist/virtualizer/rect.js +156 -0
  459. package/dist/virtualizer/rect.js.map +1 -0
  460. package/dist/virtualizer/reusable-view.d.ts +51 -0
  461. package/dist/virtualizer/reusable-view.js +81 -0
  462. package/dist/virtualizer/reusable-view.js.map +1 -0
  463. package/dist/virtualizer/scroll-anchor.d.ts +98 -0
  464. package/dist/virtualizer/scroll-anchor.js +150 -0
  465. package/dist/virtualizer/scroll-anchor.js.map +1 -0
  466. package/dist/virtualizer/size.d.ts +34 -0
  467. package/dist/virtualizer/size.js +46 -0
  468. package/dist/virtualizer/size.js.map +1 -0
  469. package/dist/virtualizer/types.d.ts +47 -0
  470. package/dist/virtualizer/types.js +16 -0
  471. package/dist/virtualizer/utils.d.ts +19 -0
  472. package/dist/virtualizer/utils.js +27 -0
  473. package/dist/virtualizer/utils.js.map +1 -0
  474. package/dist/virtualizer/virtualizer.d.ts +99 -0
  475. package/dist/virtualizer/virtualizer.js +314 -0
  476. package/dist/virtualizer/virtualizer.js.map +1 -0
  477. package/package.json +174 -4
@@ -0,0 +1,36 @@
1
+ /*
2
+ * Copyright 2020 Adobe. All rights reserved.
3
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License. You may obtain a copy
5
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
6
+ *
7
+ * Unless required by applicable law or agreed to in writing, software distributed under
8
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
9
+ * OF ANY KIND, either express or implied. See the License for the specific language
10
+ * governing permissions and limitations under the License.
11
+ */
12
+ /*
13
+ * Derived from Adobe React Spectrum: packages/react-stately/src/virtualizer/Point.ts.
14
+ * Modified for Solid Aria: adapted imports, collection descriptors, and reactive state APIs for Solid 2.
15
+ * Licensed under Apache-2.0. See LICENSES/Apache-2.0.txt and NOTICE.txt at the repository root.
16
+ */
17
+ export declare class Point {
18
+ /** The x-coordinate of the point. */
19
+ x: number;
20
+ /** The y-coordinate of the point. */
21
+ y: number;
22
+ constructor(x?: number, y?: number);
23
+ /**
24
+ * Returns a copy of this point.
25
+ */
26
+ copy(): Point;
27
+ /**
28
+ * Checks if two points are equal.
29
+ */
30
+ equals(point: Point): boolean;
31
+ /**
32
+ * Returns true if this point is the origin.
33
+ */
34
+ isOrigin(): boolean;
35
+ }
36
+ //# sourceMappingURL=point.d.ts.map
@@ -0,0 +1,48 @@
1
+ /*
2
+ * Copyright 2020 Adobe. All rights reserved.
3
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License. You may obtain a copy
5
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
6
+ *
7
+ * Unless required by applicable law or agreed to in writing, software distributed under
8
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
9
+ * OF ANY KIND, either express or implied. See the License for the specific language
10
+ * governing permissions and limitations under the License.
11
+ */
12
+ /*
13
+ * Derived from Adobe React Spectrum: packages/react-stately/src/virtualizer/Point.ts.
14
+ * Modified for Solid Aria: adapted imports, collection descriptors, and reactive state APIs for Solid 2.
15
+ * Licensed under Apache-2.0. See LICENSES/Apache-2.0.txt and NOTICE.txt at the repository root.
16
+ */
17
+ // src/virtualizer/point.ts
18
+ var Point = class Point {
19
+ /** The x-coordinate of the point. */
20
+ x;
21
+ /** The y-coordinate of the point. */
22
+ y;
23
+ constructor(x = 0, y = 0) {
24
+ this.x = x;
25
+ this.y = y;
26
+ }
27
+ /**
28
+ * Returns a copy of this point.
29
+ */
30
+ copy() {
31
+ return new Point(this.x, this.y);
32
+ }
33
+ /**
34
+ * Checks if two points are equal.
35
+ */
36
+ equals(point) {
37
+ return this.x === point.x && this.y === point.y;
38
+ }
39
+ /**
40
+ * Returns true if this point is the origin.
41
+ */
42
+ isOrigin() {
43
+ return this.x === 0 && this.y === 0;
44
+ }
45
+ };
46
+ export { Point };
47
+
48
+ //# sourceMappingURL=point.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"point.js","names":[],"sources":["../../src/virtualizer/point.ts"],"sourcesContent":["/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n/*\n * Derived from Adobe React Spectrum: packages/react-stately/src/virtualizer/Point.ts.\n * Modified for Solid Aria: adapted imports, collection descriptors, and reactive state APIs for Solid 2.\n * Licensed under Apache-2.0. See LICENSES/Apache-2.0.txt and NOTICE.txt at the repository root.\n */\n\nexport class Point {\n /** The x-coordinate of the point. */\n x: number;\n\n /** The y-coordinate of the point. */\n y: number;\n\n constructor(x = 0, y = 0) {\n this.x = x;\n this.y = y;\n }\n\n /**\n * Returns a copy of this point.\n */\n copy(): Point {\n return new Point(this.x, this.y);\n }\n\n /**\n * Checks if two points are equal.\n */\n equals(point: Point): boolean {\n return this.x === point.x && this.y === point.y;\n }\n\n /**\n * Returns true if this point is the origin.\n */\n isOrigin(): boolean {\n return this.x === 0 && this.y === 0;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAiBA,IAAa,QAAb,MAAa,MAAM;;CAEjB;;CAGA;CAEA,YAAY,IAAI,GAAG,IAAI,GAAG;EACxB,KAAK,IAAI;EACT,KAAK,IAAI;CACX;;;;CAKA,OAAc;EACZ,OAAO,IAAI,MAAM,KAAK,GAAG,KAAK,CAAC;CACjC;;;;CAKA,OAAO,OAAuB;EAC5B,OAAO,KAAK,MAAM,MAAM,KAAK,KAAK,MAAM,MAAM;CAChD;;;;CAKA,WAAoB;EAClB,OAAO,KAAK,MAAM,KAAK,KAAK,MAAM;CACpC;AACF"}
@@ -0,0 +1,103 @@
1
+ /*
2
+ * Copyright 2020 Adobe. All rights reserved.
3
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License. You may obtain a copy
5
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
6
+ *
7
+ * Unless required by applicable law or agreed to in writing, software distributed under
8
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
9
+ * OF ANY KIND, either express or implied. See the License for the specific language
10
+ * governing permissions and limitations under the License.
11
+ */
12
+ /*
13
+ * Derived from Adobe React Spectrum: packages/react-stately/src/virtualizer/Rect.ts.
14
+ * Modified for Solid Aria: adapted imports, collection descriptors, and reactive state APIs for Solid 2.
15
+ * Licensed under Apache-2.0. See LICENSES/Apache-2.0.txt and NOTICE.txt at the repository root.
16
+ */
17
+ import { Point } from "./point.js";
18
+ import { Size } from "./size.js";
19
+ export type RectCorner = "topLeft" | "topRight" | "bottomLeft" | "bottomRight";
20
+ /**
21
+ * Represents a rectangle.
22
+ */
23
+ export declare class Rect {
24
+ /** The x-coordinate of the rectangle. */
25
+ x: number;
26
+ /** The y-coordinate of the rectangle. */
27
+ y: number;
28
+ /** The width of the rectangle. */
29
+ width: number;
30
+ /** The height of the rectangle. */
31
+ height: number;
32
+ constructor(x?: number, y?: number, width?: number, height?: number);
33
+ /**
34
+ * The maximum x-coordinate in the rectangle.
35
+ */
36
+ get maxX(): number;
37
+ /**
38
+ * The maximum y-coordinate in the rectangle.
39
+ */
40
+ get maxY(): number;
41
+ /**
42
+ * The area of the rectangle.
43
+ */
44
+ get area(): number;
45
+ /**
46
+ * The top left corner of the rectangle.
47
+ */
48
+ get topLeft(): Point;
49
+ /**
50
+ * The top right corner of the rectangle.
51
+ */
52
+ get topRight(): Point;
53
+ /**
54
+ * The bottom left corner of the rectangle.
55
+ */
56
+ get bottomLeft(): Point;
57
+ /**
58
+ * The bottom right corner of the rectangle.
59
+ */
60
+ get bottomRight(): Point;
61
+ /**
62
+ * Returns whether this rectangle intersects another rectangle.
63
+ *
64
+ * @param rect - The rectangle to check.
65
+ */
66
+ intersects(rect: Rect): boolean;
67
+ /**
68
+ * Returns whether this rectangle fully contains another rectangle.
69
+ *
70
+ * @param rect - The rectangle to check.
71
+ */
72
+ containsRect(rect: Rect): boolean;
73
+ /**
74
+ * Returns whether the rectangle contains the given point.
75
+ *
76
+ * @param point - The point to check.
77
+ */
78
+ containsPoint(point: Point): boolean;
79
+ /**
80
+ * Returns the first corner of this rectangle (from top to bottom, left to right)
81
+ * that is contained in the given rectangle, or null of the rectangles do not intersect.
82
+ *
83
+ * @param rect - The rectangle to check.
84
+ */
85
+ getCornerInRect(rect: Rect): RectCorner | null;
86
+ equals(rect: Rect): boolean;
87
+ pointEquals(point: Point | Rect): boolean;
88
+ sizeEquals(size: Size | Rect): boolean;
89
+ /**
90
+ * Returns the union of this Rect and another.
91
+ */
92
+ union(other: Rect): Rect;
93
+ /**
94
+ * Returns the intersection of this Rect with another.
95
+ * If the rectangles do not intersect, an all zero Rect is returned.
96
+ */
97
+ intersection(other: Rect): Rect;
98
+ /**
99
+ * Returns a copy of this rectangle.
100
+ */
101
+ copy(): Rect;
102
+ }
103
+ //# sourceMappingURL=rect.d.ts.map
@@ -0,0 +1,156 @@
1
+ /*
2
+ * Copyright 2020 Adobe. All rights reserved.
3
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License. You may obtain a copy
5
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
6
+ *
7
+ * Unless required by applicable law or agreed to in writing, software distributed under
8
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
9
+ * OF ANY KIND, either express or implied. See the License for the specific language
10
+ * governing permissions and limitations under the License.
11
+ */
12
+ /*
13
+ * Derived from Adobe React Spectrum: packages/react-stately/src/virtualizer/Rect.ts.
14
+ * Modified for Solid Aria: adapted imports, collection descriptors, and reactive state APIs for Solid 2.
15
+ * Licensed under Apache-2.0. See LICENSES/Apache-2.0.txt and NOTICE.txt at the repository root.
16
+ */
17
+ import { Point } from "./point.js";
18
+ // src/virtualizer/rect.ts
19
+ /**
20
+ * Represents a rectangle.
21
+ */
22
+ var Rect = class Rect {
23
+ /** The x-coordinate of the rectangle. */
24
+ x;
25
+ /** The y-coordinate of the rectangle. */
26
+ y;
27
+ /** The width of the rectangle. */
28
+ width;
29
+ /** The height of the rectangle. */
30
+ height;
31
+ constructor(x = 0, y = 0, width = 0, height = 0) {
32
+ this.x = x;
33
+ this.y = y;
34
+ this.width = width;
35
+ this.height = height;
36
+ }
37
+ /**
38
+ * The maximum x-coordinate in the rectangle.
39
+ */
40
+ get maxX() {
41
+ return this.x + this.width;
42
+ }
43
+ /**
44
+ * The maximum y-coordinate in the rectangle.
45
+ */
46
+ get maxY() {
47
+ return this.y + this.height;
48
+ }
49
+ /**
50
+ * The area of the rectangle.
51
+ */
52
+ get area() {
53
+ return this.width * this.height;
54
+ }
55
+ /**
56
+ * The top left corner of the rectangle.
57
+ */
58
+ get topLeft() {
59
+ return new Point(this.x, this.y);
60
+ }
61
+ /**
62
+ * The top right corner of the rectangle.
63
+ */
64
+ get topRight() {
65
+ return new Point(this.maxX, this.y);
66
+ }
67
+ /**
68
+ * The bottom left corner of the rectangle.
69
+ */
70
+ get bottomLeft() {
71
+ return new Point(this.x, this.maxY);
72
+ }
73
+ /**
74
+ * The bottom right corner of the rectangle.
75
+ */
76
+ get bottomRight() {
77
+ return new Point(this.maxX, this.maxY);
78
+ }
79
+ /**
80
+ * Returns whether this rectangle intersects another rectangle.
81
+ *
82
+ * @param rect - The rectangle to check.
83
+ */
84
+ intersects(rect) {
85
+ return (process.env.NODE_ENV === "test" && (process.env.VIRT_ON === void 0 || process.env.VIRT_ON === "") || this.area > 0 && rect.area > 0) && this.x <= rect.x + rect.width && rect.x <= this.x + this.width && this.y <= rect.y + rect.height && rect.y <= this.y + this.height;
86
+ }
87
+ /**
88
+ * Returns whether this rectangle fully contains another rectangle.
89
+ *
90
+ * @param rect - The rectangle to check.
91
+ */
92
+ containsRect(rect) {
93
+ return this.x <= rect.x && this.y <= rect.y && this.maxX >= rect.maxX && this.maxY >= rect.maxY;
94
+ }
95
+ /**
96
+ * Returns whether the rectangle contains the given point.
97
+ *
98
+ * @param point - The point to check.
99
+ */
100
+ containsPoint(point) {
101
+ return this.x <= point.x && this.y <= point.y && this.maxX >= point.x && this.maxY >= point.y;
102
+ }
103
+ /**
104
+ * Returns the first corner of this rectangle (from top to bottom, left to right)
105
+ * that is contained in the given rectangle, or null of the rectangles do not intersect.
106
+ *
107
+ * @param rect - The rectangle to check.
108
+ */
109
+ getCornerInRect(rect) {
110
+ for (const key of [
111
+ "topLeft",
112
+ "topRight",
113
+ "bottomLeft",
114
+ "bottomRight"
115
+ ]) if (rect.containsPoint(this[key])) return key;
116
+ return null;
117
+ }
118
+ equals(rect) {
119
+ return rect.x === this.x && rect.y === this.y && rect.width === this.width && rect.height === this.height;
120
+ }
121
+ pointEquals(point) {
122
+ return this.x === point.x && this.y === point.y;
123
+ }
124
+ sizeEquals(size) {
125
+ return this.width === size.width && this.height === size.height;
126
+ }
127
+ /**
128
+ * Returns the union of this Rect and another.
129
+ */
130
+ union(other) {
131
+ const x = Math.min(this.x, other.x);
132
+ const y = Math.min(this.y, other.y);
133
+ const width = Math.max(this.maxX, other.maxX) - x;
134
+ const height = Math.max(this.maxY, other.maxY) - y;
135
+ return new Rect(x, y, width, height);
136
+ }
137
+ /**
138
+ * Returns the intersection of this Rect with another.
139
+ * If the rectangles do not intersect, an all zero Rect is returned.
140
+ */
141
+ intersection(other) {
142
+ if (!this.intersects(other)) return new Rect(0, 0, 0, 0);
143
+ const x = Math.max(this.x, other.x);
144
+ const y = Math.max(this.y, other.y);
145
+ return new Rect(x, y, Math.min(this.maxX, other.maxX) - x, Math.min(this.maxY, other.maxY) - y);
146
+ }
147
+ /**
148
+ * Returns a copy of this rectangle.
149
+ */
150
+ copy() {
151
+ return new Rect(this.x, this.y, this.width, this.height);
152
+ }
153
+ };
154
+ export { Rect };
155
+
156
+ //# sourceMappingURL=rect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rect.js","names":[],"sources":["../../src/virtualizer/rect.ts"],"sourcesContent":["/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n/*\n * Derived from Adobe React Spectrum: packages/react-stately/src/virtualizer/Rect.ts.\n * Modified for Solid Aria: adapted imports, collection descriptors, and reactive state APIs for Solid 2.\n * Licensed under Apache-2.0. See LICENSES/Apache-2.0.txt and NOTICE.txt at the repository root.\n */\n\nimport { Point } from \"./point\";\nimport type { Size } from \"./size\";\n\nexport type RectCorner = \"topLeft\" | \"topRight\" | \"bottomLeft\" | \"bottomRight\";\n\n/**\n * Represents a rectangle.\n */\nexport class Rect {\n /** The x-coordinate of the rectangle. */\n x: number;\n /** The y-coordinate of the rectangle. */\n y: number;\n /** The width of the rectangle. */\n width: number;\n /** The height of the rectangle. */\n height: number;\n constructor(x = 0, y = 0, width = 0, height = 0) {\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n }\n /**\n * The maximum x-coordinate in the rectangle.\n */\n get maxX(): number {\n return this.x + this.width;\n }\n /**\n * The maximum y-coordinate in the rectangle.\n */\n get maxY(): number {\n return this.y + this.height;\n }\n /**\n * The area of the rectangle.\n */\n get area(): number {\n return this.width * this.height;\n }\n /**\n * The top left corner of the rectangle.\n */\n get topLeft(): Point {\n return new Point(this.x, this.y);\n }\n /**\n * The top right corner of the rectangle.\n */\n get topRight(): Point {\n return new Point(this.maxX, this.y);\n }\n /**\n * The bottom left corner of the rectangle.\n */\n get bottomLeft(): Point {\n return new Point(this.x, this.maxY);\n }\n /**\n * The bottom right corner of the rectangle.\n */\n get bottomRight(): Point {\n return new Point(this.maxX, this.maxY);\n }\n /**\n * Returns whether this rectangle intersects another rectangle.\n *\n * @param rect - The rectangle to check.\n */\n intersects(rect: Rect): boolean {\n const isTestEnv =\n process.env.NODE_ENV === \"test\" &&\n (process.env.VIRT_ON === undefined || process.env.VIRT_ON === \"\");\n\n return (\n (isTestEnv || (this.area > 0 && rect.area > 0)) &&\n this.x <= rect.x + rect.width &&\n rect.x <= this.x + this.width &&\n this.y <= rect.y + rect.height &&\n rect.y <= this.y + this.height\n );\n }\n /**\n * Returns whether this rectangle fully contains another rectangle.\n *\n * @param rect - The rectangle to check.\n */\n containsRect(rect: Rect): boolean {\n return (\n this.x <= rect.x &&\n this.y <= rect.y &&\n this.maxX >= rect.maxX &&\n this.maxY >= rect.maxY\n );\n }\n /**\n * Returns whether the rectangle contains the given point.\n *\n * @param point - The point to check.\n */\n containsPoint(point: Point): boolean {\n return (\n this.x <= point.x &&\n this.y <= point.y &&\n this.maxX >= point.x &&\n this.maxY >= point.y\n );\n }\n /**\n * Returns the first corner of this rectangle (from top to bottom, left to right)\n * that is contained in the given rectangle, or null of the rectangles do not intersect.\n *\n * @param rect - The rectangle to check.\n */\n getCornerInRect(rect: Rect): RectCorner | null {\n for (const key of [\n \"topLeft\",\n \"topRight\",\n \"bottomLeft\",\n \"bottomRight\",\n ] as const) {\n if (rect.containsPoint(this[key])) {\n return key;\n }\n }\n\n return null;\n }\n equals(rect: Rect): boolean {\n return (\n rect.x === this.x &&\n rect.y === this.y &&\n rect.width === this.width &&\n rect.height === this.height\n );\n }\n pointEquals(point: Point | Rect): boolean {\n return this.x === point.x && this.y === point.y;\n }\n sizeEquals(size: Size | Rect): boolean {\n return this.width === size.width && this.height === size.height;\n }\n /**\n * Returns the union of this Rect and another.\n */\n union(other: Rect): Rect {\n const x = Math.min(this.x, other.x);\n const y = Math.min(this.y, other.y);\n const width = Math.max(this.maxX, other.maxX) - x;\n const height = Math.max(this.maxY, other.maxY) - y;\n\n return new Rect(x, y, width, height);\n }\n /**\n * Returns the intersection of this Rect with another.\n * If the rectangles do not intersect, an all zero Rect is returned.\n */\n intersection(other: Rect): Rect {\n if (!this.intersects(other)) {\n return new Rect(0, 0, 0, 0);\n }\n\n const x = Math.max(this.x, other.x);\n const y = Math.max(this.y, other.y);\n\n return new Rect(\n x,\n y,\n Math.min(this.maxX, other.maxX) - x,\n Math.min(this.maxY, other.maxY) - y\n );\n }\n /**\n * Returns a copy of this rectangle.\n */\n copy(): Rect {\n return new Rect(this.x, this.y, this.width, this.height);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAyBA,IAAa,OAAb,MAAa,KAAK;;CAEhB;;CAEA;;CAEA;;CAEA;CACA,YAAY,IAAI,GAAG,IAAI,GAAG,QAAQ,GAAG,SAAS,GAAG;EAC/C,KAAK,IAAI;EACT,KAAK,IAAI;EACT,KAAK,QAAQ;EACb,KAAK,SAAS;CAChB;;;;CAIA,IAAI,OAAe;EACjB,OAAO,KAAK,IAAI,KAAK;CACvB;;;;CAIA,IAAI,OAAe;EACjB,OAAO,KAAK,IAAI,KAAK;CACvB;;;;CAIA,IAAI,OAAe;EACjB,OAAO,KAAK,QAAQ,KAAK;CAC3B;;;;CAIA,IAAI,UAAiB;EACnB,OAAO,IAAI,MAAM,KAAK,GAAG,KAAK,CAAC;CACjC;;;;CAIA,IAAI,WAAkB;EACpB,OAAO,IAAI,MAAM,KAAK,MAAM,KAAK,CAAC;CACpC;;;;CAIA,IAAI,aAAoB;EACtB,OAAO,IAAI,MAAM,KAAK,GAAG,KAAK,IAAI;CACpC;;;;CAIA,IAAI,cAAqB;EACvB,OAAO,IAAI,MAAM,KAAK,MAAM,KAAK,IAAI;CACvC;;;;;;CAMA,WAAW,MAAqB;EAK9B,QAHE,QAAQ,IAAI,aAAa,WACxB,QAAQ,IAAI,YAAY,KAAA,KAAa,QAAQ,IAAI,YAAY,OAG/C,KAAK,OAAO,KAAK,KAAK,OAAO,MAC5C,KAAK,KAAK,KAAK,IAAI,KAAK,SACxB,KAAK,KAAK,KAAK,IAAI,KAAK,SACxB,KAAK,KAAK,KAAK,IAAI,KAAK,UACxB,KAAK,KAAK,KAAK,IAAI,KAAK;CAE5B;;;;;;CAMA,aAAa,MAAqB;EAChC,OACE,KAAK,KAAK,KAAK,KACf,KAAK,KAAK,KAAK,KACf,KAAK,QAAQ,KAAK,QAClB,KAAK,QAAQ,KAAK;CAEtB;;;;;;CAMA,cAAc,OAAuB;EACnC,OACE,KAAK,KAAK,MAAM,KAChB,KAAK,KAAK,MAAM,KAChB,KAAK,QAAQ,MAAM,KACnB,KAAK,QAAQ,MAAM;CAEvB;;;;;;;CAOA,gBAAgB,MAA+B;EAC7C,KAAK,MAAM,OAAO;GAChB;GACA;GACA;GACA;EACF,GACE,IAAI,KAAK,cAAc,KAAK,IAAI,GAC9B,OAAO;EAIX,OAAO;CACT;CACA,OAAO,MAAqB;EAC1B,OACE,KAAK,MAAM,KAAK,KAChB,KAAK,MAAM,KAAK,KAChB,KAAK,UAAU,KAAK,SACpB,KAAK,WAAW,KAAK;CAEzB;CACA,YAAY,OAA8B;EACxC,OAAO,KAAK,MAAM,MAAM,KAAK,KAAK,MAAM,MAAM;CAChD;CACA,WAAW,MAA4B;EACrC,OAAO,KAAK,UAAU,KAAK,SAAS,KAAK,WAAW,KAAK;CAC3D;;;;CAIA,MAAM,OAAmB;EACvB,MAAM,IAAI,KAAK,IAAI,KAAK,GAAG,MAAM,CAAC;EAClC,MAAM,IAAI,KAAK,IAAI,KAAK,GAAG,MAAM,CAAC;EAClC,MAAM,QAAQ,KAAK,IAAI,KAAK,MAAM,MAAM,IAAI,IAAI;EAChD,MAAM,SAAS,KAAK,IAAI,KAAK,MAAM,MAAM,IAAI,IAAI;EAEjD,OAAO,IAAI,KAAK,GAAG,GAAG,OAAO,MAAM;CACrC;;;;;CAKA,aAAa,OAAmB;EAC9B,IAAI,CAAC,KAAK,WAAW,KAAK,GACxB,OAAO,IAAI,KAAK,GAAG,GAAG,GAAG,CAAC;EAG5B,MAAM,IAAI,KAAK,IAAI,KAAK,GAAG,MAAM,CAAC;EAClC,MAAM,IAAI,KAAK,IAAI,KAAK,GAAG,MAAM,CAAC;EAElC,OAAO,IAAI,KACT,GACA,GACA,KAAK,IAAI,KAAK,MAAM,MAAM,IAAI,IAAI,GAClC,KAAK,IAAI,KAAK,MAAM,MAAM,IAAI,IAAI,CACpC;CACF;;;;CAIA,OAAa;EACX,OAAO,IAAI,KAAK,KAAK,GAAG,KAAK,GAAG,KAAK,OAAO,KAAK,MAAM;CACzD;AACF"}
@@ -0,0 +1,51 @@
1
+ /*
2
+ * Copyright 2020 Adobe. All rights reserved.
3
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License. You may obtain a copy
5
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
6
+ *
7
+ * Unless required by applicable law or agreed to in writing, software distributed under
8
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
9
+ * OF ANY KIND, either express or implied. See the License for the specific language
10
+ * governing permissions and limitations under the License.
11
+ */
12
+ /*
13
+ * Derived from Adobe React Spectrum: packages/react-stately/src/virtualizer/ReusableView.ts.
14
+ * Modified for Solid Aria: adapted imports, collection descriptors, and reactive state APIs for Solid 2.
15
+ * Licensed under Apache-2.0. See LICENSES/Apache-2.0.txt and NOTICE.txt at the repository root.
16
+ */
17
+ import { LayoutInfo } from "./layout-info.js";
18
+ import { Virtualizer } from "./virtualizer.js";
19
+ import { Key } from "@solid2-aria/types-shared";
20
+ /**
21
+ * `Virtualizer` creates instances of the `ReusableView` class to
22
+ * represent views currently being displayed.
23
+ */
24
+ export declare class ReusableView<T extends object, V> {
25
+ /** The Virtualizer this view is a part of. */
26
+ virtualizer: Virtualizer<T, V>;
27
+ /** The LayoutInfo this view is currently representing. */
28
+ layoutInfo: LayoutInfo | null;
29
+ /** The content currently being displayed by this view, set by the virtualizer. */
30
+ content: T | null;
31
+ rendered: V | null;
32
+ viewType: string;
33
+ key: Key;
34
+ children: Set<ChildView<T, V>>;
35
+ reusableViews: Map<string, ChildView<T, V>[]>;
36
+ constructor(virtualizer: Virtualizer<T, V>, viewType: string);
37
+ /**
38
+ * Prepares the view for reuse. Called just before the view is removed from the DOM.
39
+ */
40
+ prepareForReuse(): void;
41
+ getReusableView(reuseType: string): ChildView<T, V>;
42
+ reuseChild(child: ChildView<T, V>): void;
43
+ }
44
+ export declare class RootView<T extends object, V> extends ReusableView<T, V> {
45
+ constructor(virtualizer: Virtualizer<T, V>);
46
+ }
47
+ export declare class ChildView<T extends object, V> extends ReusableView<T, V> {
48
+ parent: ReusableView<T, V>;
49
+ constructor(virtualizer: Virtualizer<T, V>, parent: ReusableView<T, V>, viewType: string);
50
+ }
51
+ //# sourceMappingURL=reusable-view.d.ts.map
@@ -0,0 +1,81 @@
1
+ /*
2
+ * Copyright 2020 Adobe. All rights reserved.
3
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License. You may obtain a copy
5
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
6
+ *
7
+ * Unless required by applicable law or agreed to in writing, software distributed under
8
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
9
+ * OF ANY KIND, either express or implied. See the License for the specific language
10
+ * governing permissions and limitations under the License.
11
+ */
12
+ /*
13
+ * Derived from Adobe React Spectrum: packages/react-stately/src/virtualizer/ReusableView.ts.
14
+ * Modified for Solid Aria: adapted imports, collection descriptors, and reactive state APIs for Solid 2.
15
+ * Licensed under Apache-2.0. See LICENSES/Apache-2.0.txt and NOTICE.txt at the repository root.
16
+ */
17
+ // src/virtualizer/reusable-view.ts
18
+ let KEY = 0;
19
+ /**
20
+ * `Virtualizer` creates instances of the `ReusableView` class to
21
+ * represent views currently being displayed.
22
+ */
23
+ var ReusableView = class {
24
+ /** The Virtualizer this view is a part of. */
25
+ virtualizer;
26
+ /** The LayoutInfo this view is currently representing. */
27
+ layoutInfo;
28
+ /** The content currently being displayed by this view, set by the virtualizer. */
29
+ content;
30
+ rendered;
31
+ viewType;
32
+ key;
33
+ children;
34
+ reusableViews;
35
+ constructor(virtualizer, viewType) {
36
+ this.virtualizer = virtualizer;
37
+ KEY += 1;
38
+ this.key = KEY;
39
+ this.viewType = viewType;
40
+ this.children = /* @__PURE__ */ new Set();
41
+ this.reusableViews = /* @__PURE__ */ new Map();
42
+ this.layoutInfo = null;
43
+ this.content = null;
44
+ this.rendered = null;
45
+ }
46
+ /**
47
+ * Prepares the view for reuse. Called just before the view is removed from the DOM.
48
+ */
49
+ prepareForReuse() {
50
+ this.content = null;
51
+ this.rendered = null;
52
+ this.layoutInfo = null;
53
+ }
54
+ getReusableView(reuseType) {
55
+ return this.reusableViews.get(reuseType)?.shift() ?? new ChildView(this.virtualizer, this, reuseType);
56
+ }
57
+ reuseChild(child) {
58
+ child.prepareForReuse();
59
+ let reusable = this.reusableViews.get(child.viewType);
60
+ if (!reusable) {
61
+ reusable = [];
62
+ this.reusableViews.set(child.viewType, reusable);
63
+ }
64
+ reusable.push(child);
65
+ }
66
+ };
67
+ var RootView = class extends ReusableView {
68
+ constructor(virtualizer) {
69
+ super(virtualizer, "root");
70
+ }
71
+ };
72
+ var ChildView = class extends ReusableView {
73
+ parent;
74
+ constructor(virtualizer, parent, viewType) {
75
+ super(virtualizer, viewType);
76
+ this.parent = parent;
77
+ }
78
+ };
79
+ export { ChildView, ReusableView, RootView };
80
+
81
+ //# sourceMappingURL=reusable-view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reusable-view.js","names":[],"sources":["../../src/virtualizer/reusable-view.ts"],"sourcesContent":["/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n/*\n * Derived from Adobe React Spectrum: packages/react-stately/src/virtualizer/ReusableView.ts.\n * Modified for Solid Aria: adapted imports, collection descriptors, and reactive state APIs for Solid 2.\n * Licensed under Apache-2.0. See LICENSES/Apache-2.0.txt and NOTICE.txt at the repository root.\n */\n\nimport type { Key } from \"@solid2-aria/types-shared\";\n\nimport type { LayoutInfo } from \"./layout-info\";\nimport type { Virtualizer } from \"./virtualizer\";\n\nlet KEY = 0;\n\n/**\n * `Virtualizer` creates instances of the `ReusableView` class to\n * represent views currently being displayed.\n */\nexport class ReusableView<T extends object, V> {\n /** The Virtualizer this view is a part of. */\n virtualizer: Virtualizer<T, V>;\n /** The LayoutInfo this view is currently representing. */\n layoutInfo: LayoutInfo | null;\n /** The content currently being displayed by this view, set by the virtualizer. */\n content: T | null;\n rendered: V | null;\n viewType: string;\n key: Key;\n children: Set<ChildView<T, V>>;\n reusableViews: Map<string, ChildView<T, V>[]>;\n constructor(virtualizer: Virtualizer<T, V>, viewType: string) {\n this.virtualizer = virtualizer;\n KEY += 1;\n this.key = KEY;\n this.viewType = viewType;\n this.children = new Set();\n this.reusableViews = new Map();\n this.layoutInfo = null;\n this.content = null;\n this.rendered = null;\n }\n /**\n * Prepares the view for reuse. Called just before the view is removed from the DOM.\n */\n prepareForReuse(): void {\n this.content = null;\n this.rendered = null;\n this.layoutInfo = null;\n }\n getReusableView(reuseType: string): ChildView<T, V> {\n // Reusable view queue should be FIFO so that DOM order remains consistent during scrolling.\n // For example, cells within a row should remain in the same order even if the row changes contents.\n // The cells within a row are removed from their parent in order. If the row is reused, the cells\n // should be reused in the new row in the same order they were before.\n const reusable = this.reusableViews.get(reuseType);\n\n const view =\n reusable?.shift() ??\n new ChildView<T, V>(this.virtualizer, this, reuseType);\n\n return view;\n }\n reuseChild(child: ChildView<T, V>): void {\n child.prepareForReuse();\n let reusable = this.reusableViews.get(child.viewType);\n\n if (!reusable) {\n reusable = [];\n this.reusableViews.set(child.viewType, reusable);\n }\n\n reusable.push(child);\n }\n}\n\nexport class RootView<T extends object, V> extends ReusableView<T, V> {\n constructor(virtualizer: Virtualizer<T, V>) {\n super(virtualizer, \"root\");\n }\n}\n\nexport class ChildView<T extends object, V> extends ReusableView<T, V> {\n parent: ReusableView<T, V>;\n constructor(\n virtualizer: Virtualizer<T, V>,\n parent: ReusableView<T, V>,\n viewType: string\n ) {\n super(virtualizer, viewType);\n this.parent = parent;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAsBA,IAAI,MAAM;;;;;AAMV,IAAa,eAAb,MAA+C;;CAE7C;;CAEA;;CAEA;CACA;CACA;CACA;CACA;CACA;CACA,YAAY,aAAgC,UAAkB;EAC5D,KAAK,cAAc;EACnB,OAAO;EACP,KAAK,MAAM;EACX,KAAK,WAAW;EAChB,KAAK,2BAAW,IAAI,IAAI;EACxB,KAAK,gCAAgB,IAAI,IAAI;EAC7B,KAAK,aAAa;EAClB,KAAK,UAAU;EACf,KAAK,WAAW;CAClB;;;;CAIA,kBAAwB;EACtB,KAAK,UAAU;EACf,KAAK,WAAW;EAChB,KAAK,aAAa;CACpB;CACA,gBAAgB,WAAoC;EAWlD,OANiB,KAAK,cAAc,IAAI,SAG/B,CAAC,EAAE,MAAM,KAChB,IAAI,UAAgB,KAAK,aAAa,MAAM,SAAS;CAGzD;CACA,WAAW,OAA8B;EACvC,MAAM,gBAAgB;EACtB,IAAI,WAAW,KAAK,cAAc,IAAI,MAAM,QAAQ;EAEpD,IAAI,CAAC,UAAU;GACb,WAAW,CAAC;GACZ,KAAK,cAAc,IAAI,MAAM,UAAU,QAAQ;EACjD;EAEA,SAAS,KAAK,KAAK;CACrB;AACF;AAEA,IAAa,WAAb,cAAmD,aAAmB;CACpE,YAAY,aAAgC;EAC1C,MAAM,aAAa,MAAM;CAC3B;AACF;AAEA,IAAa,YAAb,cAAoD,aAAmB;CACrE;CACA,YACE,aACA,QACA,UACA;EACA,MAAM,aAAa,QAAQ;EAC3B,KAAK,SAAS;CAChB;AACF"}
@@ -0,0 +1,98 @@
1
+ /*
2
+ * Copyright 2026 Adobe. All rights reserved.
3
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License. You may obtain a copy
5
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
6
+ *
7
+ * Unless required by applicable law or agreed to in writing, software distributed under
8
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
9
+ * OF ANY KIND, either express or implied. See the License for the specific language
10
+ * governing permissions and limitations under the License.
11
+ */
12
+ /*
13
+ * Derived from Adobe React Spectrum: packages/react-stately/src/virtualizer/ScrollAnchor.ts.
14
+ * Modified for Solid Aria: adapted imports, collection descriptors, and reactive state APIs for Solid 2.
15
+ * Licensed under Apache-2.0. See LICENSES/Apache-2.0.txt and NOTICE.txt at the repository root.
16
+ */
17
+ import { Size } from "./size.js";
18
+ import { Rect, RectCorner } from "./rect.js";
19
+ import { LayoutInfo } from "./layout-info.js";
20
+ import { Key } from "@solid2-aria/types-shared";
21
+ export type ScrollAnchorAxis = "x" | "y";
22
+ export type ScrollAnchorEdge = "start" | "end";
23
+ export interface ScrollAnchor {
24
+ key: Key;
25
+ corner: RectCorner;
26
+ offset: number;
27
+ }
28
+ export interface ScrollAnchorInfo {
29
+ /** Which edge of the content the viewport should stay anchored to. */
30
+ edge: "start" | "end";
31
+ /** Which axis `edge` refers to — 'y' for vertical lists, 'x' for horizontal. */
32
+ axis: "x" | "y";
33
+ /** Distance (px) from `edge` within which the viewport is considered "following" it. */
34
+ threshold: number;
35
+ /**
36
+ * Optional classifier excluding structural/ephemeral layout infos (e.g. loaders) from being
37
+ * selected as the anchor. Defaults to allowing any layoutInfo.
38
+ */
39
+ isAnchorable?: (layoutInfo: LayoutInfo) => boolean;
40
+ }
41
+ /**
42
+ * Given a previously-captured anchor, computes the new viewport coordinate (along `axis`) needed
43
+ * to keep it at the same offset from the viewport's start.
44
+ */
45
+ export declare function computeScrollAnchorTarget(anchor: ScrollAnchor, axis: ScrollAnchorAxis, getLayoutInfo: (key: Key) => LayoutInfo | null, visibleRect: Rect, contentSize: Size): number | null;
46
+ /**
47
+ * Picks the item to anchor scroll to: the one nearest the top of the viewport when
48
+ * anchoring to 'end', or nearest the bottom when anchoring to 'start'. Callers can
49
+ * exclude certain items (like loaders) with `isAnchorable`.
50
+ */
51
+ export declare function captureScrollAnchor(edge: ScrollAnchorEdge, axis: ScrollAnchorAxis, visibleRect: Rect, visibleLayoutInfos: Iterable<[Key, LayoutInfo]>, isAnchorable?: (layoutInfo: LayoutInfo) => boolean): ScrollAnchor | null;
52
+ /** Returns the viewport coordinate (along `axis`) that pins the viewport to `edge` of the content. */
53
+ export declare function getEdgeSnapTarget(edge: ScrollAnchorEdge, axis: ScrollAnchorAxis, contentSize: Size, previousVisibleRect: Rect): number;
54
+ /**
55
+ * Whether the viewport is currently within `threshold` px of the anchored edge — used by
56
+ * Virtualizer to compute wasNearAnchorEdge generically, without any layout-specific state.
57
+ */
58
+ export declare function isNearEdge(visibleRect: Rect, contentSize: Size, edge: ScrollAnchorEdge, axis: ScrollAnchorAxis, threshold: number): boolean;
59
+ /**
60
+ * Works out the new scroll position after content changes. Tries to keep the anchor
61
+ * item where it was. If that doesn't apply, sticks the view to the edge instead, but
62
+ * only if the user was already near the edge and didn't just scroll away on their own.
63
+ */
64
+ export declare function resolveScrollAdjustment(edge: ScrollAnchorEdge, axis: ScrollAnchorAxis, anchor: ScrollAnchor | null, wasNearAnchorEdge: boolean, isScrolling: boolean, itemSizeChanged: boolean, contentSizeDelta: number, getLayoutInfo: (key: Key) => LayoutInfo | null, previousVisibleRect: Rect, contentSize: Size): Rect | null;
65
+ export interface ResolveAfterLayoutOptions {
66
+ anchorInfo: ScrollAnchorInfo | null;
67
+ /** The anchor captured by `captureBeforeLayout` before this pass's `layout.update()` ran. */
68
+ anchor: ScrollAnchor | null;
69
+ /** The full post-layout visible layout infos, i.e. `virtualizer.getVisibleLayoutInfos()`. */
70
+ postLayoutInfos: Map<Key, LayoutInfo>;
71
+ previousVisibleRect: Rect;
72
+ previousContentSize: Size;
73
+ contentSize: Size;
74
+ itemSizeChanged: boolean;
75
+ isScrolling: boolean;
76
+ getLayoutInfo: (key: Key) => LayoutInfo | null;
77
+ }
78
+ /**
79
+ * Tracks the cross-pass state needed to keep the viewport anchored to a layout's edge across
80
+ * relayouts.
81
+ */
82
+ export declare class ScrollAnchorTracker {
83
+ private hasSnappedToEdge;
84
+ private hadEstimatedVisibleItems;
85
+ private wasNearAnchorEdge;
86
+ /** Resets all tracked state, e.g. when the virtualizer's layout instance changes. */
87
+ reset(): void;
88
+ /**
89
+ * Captures the anchor from pre-layout view positions.
90
+ */
91
+ captureBeforeLayout(anchorInfo: ScrollAnchorInfo | null, preLayoutInfos: Iterable<[Key, LayoutInfo]>, visibleRect: Rect): ScrollAnchor | null;
92
+ /**
93
+ * Runs the full post-layout decision: updates the tracked state for the next pass, and
94
+ * returns the resolved scroll target, or null if nothing should change.
95
+ */
96
+ resolveAfterLayout(options: ResolveAfterLayoutOptions): Rect | null;
97
+ }
98
+ //# sourceMappingURL=scroll-anchor.d.ts.map