@astral/ui 4.105.0 → 4.106.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 (247) hide show
  1. package/components/ActionCellBase/ActionCellBase.js +10 -1
  2. package/components/ActionCellBase/MainAction/MainAction.js +6 -0
  3. package/components/ActionCellBase/MainAction/MainIconButton/MainIconButton.js +7 -4
  4. package/components/ActionCellBase/MainAction/MainIconButton/constants.d.ts +3 -0
  5. package/components/ActionCellBase/MainAction/MainIconButton/constants.js +4 -0
  6. package/components/ActionCellBase/MainAction/MainIconButton/styles.d.ts +11 -0
  7. package/components/ActionCellBase/MainAction/MainIconButton/styles.js +9 -0
  8. package/components/ActionCellBase/MainAction/MobileMainButton/MobileMainButton.d.ts +14 -0
  9. package/components/ActionCellBase/MainAction/MobileMainButton/MobileMainButton.js +17 -0
  10. package/components/ActionCellBase/MainAction/MobileMainButton/index.d.ts +1 -0
  11. package/components/ActionCellBase/MainAction/MobileMainButton/index.js +1 -0
  12. package/components/ActionCellBase/MainAction/MobileMainButton/styles.d.ts +11 -0
  13. package/components/ActionCellBase/MainAction/MobileMainButton/styles.js +7 -0
  14. package/components/ActionCellBase/SecondaryAction/SecondaryAction.js +2 -2
  15. package/components/ActionCellBase/SecondaryAction/styles.d.ts +4 -0
  16. package/components/ActionCellBase/SecondaryAction/styles.js +9 -0
  17. package/components/ActionCellBase/constants.d.ts +4 -0
  18. package/components/ActionCellBase/constants.js +5 -0
  19. package/components/ActionCellBase/styles.js +11 -0
  20. package/components/ActionCellBase/types.d.ts +25 -0
  21. package/components/InfiniteTreeList/InfiniteTreeList.js +16 -2
  22. package/components/InfiniteTreeList/InfiniteTreeListContext/InfiniteTreeListContext.d.ts +4 -0
  23. package/components/InfiniteTreeList/InfiniteTreeListContext/InfiniteTreeListContext.js +1 -0
  24. package/components/InfiniteTreeList/InfiniteTreeListContext/InfiniteTreeListContextProvider/InfiniteTreeListContextProvider.d.ts +2 -2
  25. package/components/InfiniteTreeList/InfiniteTreeListContext/InfiniteTreeListContextProvider/InfiniteTreeListContextProvider.js +3 -1
  26. package/components/InfiniteTreeList/InfiniteTreeListItem/ErrorPlaceholder/styles.js +8 -0
  27. package/components/InfiniteTreeList/InfiniteTreeListItem/InfiniteTreeListItem.js +7 -4
  28. package/components/InfiniteTreeList/InfiniteTreeListItem/constants.d.ts +2 -0
  29. package/components/InfiniteTreeList/InfiniteTreeListItem/constants.js +2 -0
  30. package/components/InfiniteTreeList/InfiniteTreeListItem/index.d.ts +1 -0
  31. package/components/InfiniteTreeList/InfiniteTreeListItem/index.js +1 -0
  32. package/components/InfiniteTreeList/InfiniteTreeListItem/styles.d.ts +14 -0
  33. package/components/InfiniteTreeList/InfiniteTreeListItem/styles.js +66 -2
  34. package/components/InfiniteTreeList/LevelHeader/LevelHeader.d.ts +5 -0
  35. package/components/InfiniteTreeList/LevelHeader/LevelHeader.js +17 -0
  36. package/components/InfiniteTreeList/LevelHeader/constants.d.ts +3 -0
  37. package/components/InfiniteTreeList/LevelHeader/constants.js +3 -0
  38. package/components/InfiniteTreeList/LevelHeader/index.d.ts +2 -0
  39. package/components/InfiniteTreeList/LevelHeader/index.js +2 -0
  40. package/components/InfiniteTreeList/LevelHeader/styles.d.ts +365 -0
  41. package/components/InfiniteTreeList/LevelHeader/styles.js +51 -0
  42. package/components/InfiniteTreeList/LevelHeader/types.d.ts +14 -0
  43. package/components/InfiniteTreeList/LevelHeader/types.js +1 -0
  44. package/components/InfiniteTreeList/ListFooter/styles.js +8 -0
  45. package/components/InfiniteTreeList/OnTopButton/styles.js +7 -0
  46. package/components/InfiniteTreeList/ParentItems/Item/Item.js +10 -2
  47. package/components/InfiniteTreeList/ParentItems/Item/useLogic/useLogic.d.ts +1 -0
  48. package/components/InfiniteTreeList/ParentItems/Item/useLogic/useLogic.js +10 -2
  49. package/components/InfiniteTreeList/TreeItem/ChildrenPlaceholder/NoDataRow/NoDataRow.js +2 -2
  50. package/components/InfiniteTreeList/TreeItem/ChildrenPlaceholder/NoDataRow/styles.d.ts +3 -0
  51. package/components/InfiniteTreeList/TreeItem/ChildrenPlaceholder/NoDataRow/styles.js +11 -0
  52. package/components/InfiniteTreeList/TreeItem/TreeItem.js +6 -3
  53. package/components/InfiniteTreeList/TreeItem/styles.js +19 -0
  54. package/components/InfiniteTreeList/TreeItem/useLogic/useLogic.d.ts +2 -1
  55. package/components/InfiniteTreeList/TreeItem/useLogic/useLogic.js +5 -4
  56. package/components/InfiniteTreeList/constants.d.ts +21 -0
  57. package/components/InfiniteTreeList/constants.js +21 -0
  58. package/components/InfiniteTreeList/hooks/index.d.ts +2 -0
  59. package/components/InfiniteTreeList/hooks/index.js +2 -0
  60. package/components/InfiniteTreeList/hooks/useLevelNavigation/index.d.ts +2 -0
  61. package/components/InfiniteTreeList/hooks/useLevelNavigation/index.js +2 -0
  62. package/components/InfiniteTreeList/hooks/useLevelNavigation/types.d.ts +15 -0
  63. package/components/InfiniteTreeList/hooks/useLevelNavigation/types.js +1 -0
  64. package/components/InfiniteTreeList/hooks/useLevelNavigation/useLevelNavigation.d.ts +15 -0
  65. package/components/InfiniteTreeList/hooks/useLevelNavigation/useLevelNavigation.js +48 -0
  66. package/components/InfiniteTreeList/hooks/useListScroll/hooks/index.d.ts +3 -0
  67. package/components/InfiniteTreeList/hooks/useListScroll/hooks/index.js +3 -0
  68. package/components/InfiniteTreeList/hooks/useListScroll/hooks/useLevelSnapshots/index.d.ts +2 -0
  69. package/components/InfiniteTreeList/hooks/useListScroll/hooks/useLevelSnapshots/index.js +2 -0
  70. package/components/InfiniteTreeList/hooks/useListScroll/hooks/useLevelSnapshots/types.d.ts +16 -0
  71. package/components/InfiniteTreeList/hooks/useListScroll/hooks/useLevelSnapshots/types.js +1 -0
  72. package/components/InfiniteTreeList/hooks/useListScroll/hooks/useLevelSnapshots/useLevelSnapshots.d.ts +12 -0
  73. package/components/InfiniteTreeList/hooks/useListScroll/hooks/useLevelSnapshots/useLevelSnapshots.js +42 -0
  74. package/components/InfiniteTreeList/hooks/useListScroll/hooks/useScrollToTopButton/index.d.ts +2 -0
  75. package/components/InfiniteTreeList/hooks/useListScroll/hooks/useScrollToTopButton/index.js +2 -0
  76. package/components/InfiniteTreeList/hooks/useListScroll/hooks/useScrollToTopButton/types.d.ts +12 -0
  77. package/components/InfiniteTreeList/hooks/useListScroll/hooks/useScrollToTopButton/types.js +1 -0
  78. package/components/InfiniteTreeList/hooks/useListScroll/hooks/useScrollToTopButton/useScrollToTopButton.d.ts +15 -0
  79. package/components/InfiniteTreeList/hooks/useListScroll/hooks/useScrollToTopButton/useScrollToTopButton.js +27 -0
  80. package/components/InfiniteTreeList/hooks/useListScroll/hooks/useTailWatcher/index.d.ts +2 -0
  81. package/components/InfiniteTreeList/hooks/useListScroll/hooks/useTailWatcher/index.js +2 -0
  82. package/components/InfiniteTreeList/hooks/useListScroll/hooks/useTailWatcher/types.d.ts +11 -0
  83. package/components/InfiniteTreeList/hooks/useListScroll/hooks/useTailWatcher/types.js +1 -0
  84. package/components/InfiniteTreeList/hooks/useListScroll/hooks/useTailWatcher/useTailWatcher.d.ts +12 -0
  85. package/components/InfiniteTreeList/hooks/useListScroll/hooks/useTailWatcher/useTailWatcher.js +39 -0
  86. package/components/InfiniteTreeList/hooks/useListScroll/types.d.ts +14 -2
  87. package/components/InfiniteTreeList/hooks/useListScroll/useListScroll.d.ts +9 -6
  88. package/components/InfiniteTreeList/hooks/useListScroll/useListScroll.js +192 -28
  89. package/components/InfiniteTreeList/hooks/useListScroll/utils/getOffsetTop/getOffsetTop.d.ts +4 -0
  90. package/components/InfiniteTreeList/hooks/useListScroll/utils/getOffsetTop/getOffsetTop.js +6 -0
  91. package/components/InfiniteTreeList/hooks/useListScroll/utils/getOffsetTop/index.d.ts +1 -0
  92. package/components/InfiniteTreeList/hooks/useListScroll/utils/getOffsetTop/index.js +1 -0
  93. package/components/InfiniteTreeList/hooks/useListScroll/utils/index.d.ts +1 -0
  94. package/components/InfiniteTreeList/hooks/useListScroll/utils/index.js +1 -0
  95. package/components/InfiniteTreeList/hooks/useNodeTitleValidation/index.d.ts +2 -0
  96. package/components/InfiniteTreeList/hooks/useNodeTitleValidation/index.js +2 -0
  97. package/components/InfiniteTreeList/hooks/useNodeTitleValidation/types.d.ts +14 -0
  98. package/components/InfiniteTreeList/hooks/useNodeTitleValidation/types.js +1 -0
  99. package/components/InfiniteTreeList/hooks/useNodeTitleValidation/useNodeTitleValidation.d.ts +5 -0
  100. package/components/InfiniteTreeList/hooks/useNodeTitleValidation/useNodeTitleValidation.js +18 -0
  101. package/components/InfiniteTreeList/styles.d.ts +5 -0
  102. package/components/InfiniteTreeList/styles.js +41 -0
  103. package/components/InfiniteTreeList/types.d.ts +4 -0
  104. package/components/InfiniteTreeList/useLogic/useLogic.d.ts +13 -5
  105. package/components/InfiniteTreeList/useLogic/useLogic.js +165 -27
  106. package/components/InfiniteTreeList/utils/checkHasFooterContent/checkHasFooterContent.d.ts +5 -0
  107. package/components/InfiniteTreeList/utils/checkHasFooterContent/checkHasFooterContent.js +4 -0
  108. package/components/InfiniteTreeList/utils/checkHasFooterContent/index.d.ts +1 -0
  109. package/components/InfiniteTreeList/utils/checkHasFooterContent/index.js +1 -0
  110. package/components/InfiniteTreeList/utils/checkHasNested/checkHasNested.d.ts +6 -0
  111. package/components/InfiniteTreeList/utils/checkHasNested/checkHasNested.js +5 -0
  112. package/components/InfiniteTreeList/utils/checkHasNested/index.d.ts +1 -0
  113. package/components/InfiniteTreeList/utils/checkHasNested/index.js +1 -0
  114. package/components/InfiniteTreeList/utils/createTailRegistry/createTailRegistry.d.ts +8 -3
  115. package/components/InfiniteTreeList/utils/createTailRegistry/createTailRegistry.js +30 -12
  116. package/components/InfiniteTreeList/utils/flattenTree/flattenTree.js +2 -1
  117. package/components/InfiniteTreeList/utils/getLevelKey/getLevelKey.d.ts +4 -0
  118. package/components/InfiniteTreeList/utils/getLevelKey/getLevelKey.js +5 -0
  119. package/components/InfiniteTreeList/utils/getLevelKey/index.d.ts +1 -0
  120. package/components/InfiniteTreeList/utils/getLevelKey/index.js +1 -0
  121. package/components/InfiniteTreeList/utils/index.d.ts +3 -0
  122. package/components/InfiniteTreeList/utils/index.js +3 -0
  123. package/components/useScrollManagement/useScrollManagement.js +7 -6
  124. package/node/components/ActionCellBase/ActionCellBase.js +10 -1
  125. package/node/components/ActionCellBase/MainAction/MainAction.js +6 -0
  126. package/node/components/ActionCellBase/MainAction/MainIconButton/MainIconButton.js +7 -4
  127. package/node/components/ActionCellBase/MainAction/MainIconButton/constants.d.ts +3 -0
  128. package/node/components/ActionCellBase/MainAction/MainIconButton/constants.js +7 -0
  129. package/node/components/ActionCellBase/MainAction/MainIconButton/styles.d.ts +11 -0
  130. package/node/components/ActionCellBase/MainAction/MainIconButton/styles.js +12 -0
  131. package/node/components/ActionCellBase/MainAction/MobileMainButton/MobileMainButton.d.ts +14 -0
  132. package/node/components/ActionCellBase/MainAction/MobileMainButton/MobileMainButton.js +21 -0
  133. package/node/components/ActionCellBase/MainAction/MobileMainButton/index.d.ts +1 -0
  134. package/node/components/ActionCellBase/MainAction/MobileMainButton/index.js +17 -0
  135. package/node/components/ActionCellBase/MainAction/MobileMainButton/styles.d.ts +11 -0
  136. package/node/components/ActionCellBase/MainAction/MobileMainButton/styles.js +10 -0
  137. package/node/components/ActionCellBase/SecondaryAction/SecondaryAction.js +2 -2
  138. package/node/components/ActionCellBase/SecondaryAction/styles.d.ts +4 -0
  139. package/node/components/ActionCellBase/SecondaryAction/styles.js +12 -0
  140. package/node/components/ActionCellBase/constants.d.ts +4 -0
  141. package/node/components/ActionCellBase/constants.js +8 -0
  142. package/node/components/ActionCellBase/styles.js +11 -0
  143. package/node/components/ActionCellBase/types.d.ts +25 -0
  144. package/node/components/InfiniteTreeList/InfiniteTreeList.js +16 -2
  145. package/node/components/InfiniteTreeList/InfiniteTreeListContext/InfiniteTreeListContext.d.ts +4 -0
  146. package/node/components/InfiniteTreeList/InfiniteTreeListContext/InfiniteTreeListContext.js +1 -0
  147. package/node/components/InfiniteTreeList/InfiniteTreeListContext/InfiniteTreeListContextProvider/InfiniteTreeListContextProvider.d.ts +2 -2
  148. package/node/components/InfiniteTreeList/InfiniteTreeListContext/InfiniteTreeListContextProvider/InfiniteTreeListContextProvider.js +3 -1
  149. package/node/components/InfiniteTreeList/InfiniteTreeListItem/ErrorPlaceholder/styles.js +8 -0
  150. package/node/components/InfiniteTreeList/InfiniteTreeListItem/InfiniteTreeListItem.js +6 -3
  151. package/node/components/InfiniteTreeList/InfiniteTreeListItem/constants.d.ts +2 -0
  152. package/node/components/InfiniteTreeList/InfiniteTreeListItem/constants.js +2 -0
  153. package/node/components/InfiniteTreeList/InfiniteTreeListItem/index.d.ts +1 -0
  154. package/node/components/InfiniteTreeList/InfiniteTreeListItem/index.js +3 -0
  155. package/node/components/InfiniteTreeList/InfiniteTreeListItem/styles.d.ts +14 -0
  156. package/node/components/InfiniteTreeList/InfiniteTreeListItem/styles.js +67 -3
  157. package/node/components/InfiniteTreeList/LevelHeader/LevelHeader.d.ts +5 -0
  158. package/node/components/InfiniteTreeList/LevelHeader/LevelHeader.js +21 -0
  159. package/node/components/InfiniteTreeList/LevelHeader/constants.d.ts +3 -0
  160. package/node/components/InfiniteTreeList/LevelHeader/constants.js +6 -0
  161. package/node/components/InfiniteTreeList/LevelHeader/index.d.ts +2 -0
  162. package/node/components/InfiniteTreeList/LevelHeader/index.js +18 -0
  163. package/node/components/InfiniteTreeList/LevelHeader/styles.d.ts +365 -0
  164. package/node/components/InfiniteTreeList/LevelHeader/styles.js +54 -0
  165. package/node/components/InfiniteTreeList/LevelHeader/types.d.ts +14 -0
  166. package/node/components/InfiniteTreeList/LevelHeader/types.js +2 -0
  167. package/node/components/InfiniteTreeList/ListFooter/styles.js +8 -0
  168. package/node/components/InfiniteTreeList/OnTopButton/styles.js +7 -0
  169. package/node/components/InfiniteTreeList/ParentItems/Item/Item.js +10 -2
  170. package/node/components/InfiniteTreeList/ParentItems/Item/useLogic/useLogic.d.ts +1 -0
  171. package/node/components/InfiniteTreeList/ParentItems/Item/useLogic/useLogic.js +10 -2
  172. package/node/components/InfiniteTreeList/TreeItem/ChildrenPlaceholder/NoDataRow/NoDataRow.js +2 -2
  173. package/node/components/InfiniteTreeList/TreeItem/ChildrenPlaceholder/NoDataRow/styles.d.ts +3 -0
  174. package/node/components/InfiniteTreeList/TreeItem/ChildrenPlaceholder/NoDataRow/styles.js +14 -0
  175. package/node/components/InfiniteTreeList/TreeItem/TreeItem.js +6 -3
  176. package/node/components/InfiniteTreeList/TreeItem/styles.js +19 -0
  177. package/node/components/InfiniteTreeList/TreeItem/useLogic/useLogic.d.ts +2 -1
  178. package/node/components/InfiniteTreeList/TreeItem/useLogic/useLogic.js +4 -3
  179. package/node/components/InfiniteTreeList/constants.d.ts +21 -0
  180. package/node/components/InfiniteTreeList/constants.js +22 -1
  181. package/node/components/InfiniteTreeList/hooks/index.d.ts +2 -0
  182. package/node/components/InfiniteTreeList/hooks/index.js +2 -0
  183. package/node/components/InfiniteTreeList/hooks/useLevelNavigation/index.d.ts +2 -0
  184. package/node/components/InfiniteTreeList/hooks/useLevelNavigation/index.js +18 -0
  185. package/node/components/InfiniteTreeList/hooks/useLevelNavigation/types.d.ts +15 -0
  186. package/node/components/InfiniteTreeList/hooks/useLevelNavigation/types.js +2 -0
  187. package/node/components/InfiniteTreeList/hooks/useLevelNavigation/useLevelNavigation.d.ts +15 -0
  188. package/node/components/InfiniteTreeList/hooks/useLevelNavigation/useLevelNavigation.js +52 -0
  189. package/node/components/InfiniteTreeList/hooks/useListScroll/hooks/index.d.ts +3 -0
  190. package/node/components/InfiniteTreeList/hooks/useListScroll/hooks/index.js +19 -0
  191. package/node/components/InfiniteTreeList/hooks/useListScroll/hooks/useLevelSnapshots/index.d.ts +2 -0
  192. package/node/components/InfiniteTreeList/hooks/useListScroll/hooks/useLevelSnapshots/index.js +18 -0
  193. package/node/components/InfiniteTreeList/hooks/useListScroll/hooks/useLevelSnapshots/types.d.ts +16 -0
  194. package/node/components/InfiniteTreeList/hooks/useListScroll/hooks/useLevelSnapshots/types.js +2 -0
  195. package/node/components/InfiniteTreeList/hooks/useListScroll/hooks/useLevelSnapshots/useLevelSnapshots.d.ts +12 -0
  196. package/node/components/InfiniteTreeList/hooks/useListScroll/hooks/useLevelSnapshots/useLevelSnapshots.js +46 -0
  197. package/node/components/InfiniteTreeList/hooks/useListScroll/hooks/useScrollToTopButton/index.d.ts +2 -0
  198. package/node/components/InfiniteTreeList/hooks/useListScroll/hooks/useScrollToTopButton/index.js +18 -0
  199. package/node/components/InfiniteTreeList/hooks/useListScroll/hooks/useScrollToTopButton/types.d.ts +12 -0
  200. package/node/components/InfiniteTreeList/hooks/useListScroll/hooks/useScrollToTopButton/types.js +2 -0
  201. package/node/components/InfiniteTreeList/hooks/useListScroll/hooks/useScrollToTopButton/useScrollToTopButton.d.ts +15 -0
  202. package/node/components/InfiniteTreeList/hooks/useListScroll/hooks/useScrollToTopButton/useScrollToTopButton.js +31 -0
  203. package/node/components/InfiniteTreeList/hooks/useListScroll/hooks/useTailWatcher/index.d.ts +2 -0
  204. package/node/components/InfiniteTreeList/hooks/useListScroll/hooks/useTailWatcher/index.js +18 -0
  205. package/node/components/InfiniteTreeList/hooks/useListScroll/hooks/useTailWatcher/types.d.ts +11 -0
  206. package/node/components/InfiniteTreeList/hooks/useListScroll/hooks/useTailWatcher/types.js +2 -0
  207. package/node/components/InfiniteTreeList/hooks/useListScroll/hooks/useTailWatcher/useTailWatcher.d.ts +12 -0
  208. package/node/components/InfiniteTreeList/hooks/useListScroll/hooks/useTailWatcher/useTailWatcher.js +43 -0
  209. package/node/components/InfiniteTreeList/hooks/useListScroll/types.d.ts +14 -2
  210. package/node/components/InfiniteTreeList/hooks/useListScroll/useListScroll.d.ts +9 -6
  211. package/node/components/InfiniteTreeList/hooks/useListScroll/useListScroll.js +190 -26
  212. package/node/components/InfiniteTreeList/hooks/useListScroll/utils/getOffsetTop/getOffsetTop.d.ts +4 -0
  213. package/node/components/InfiniteTreeList/hooks/useListScroll/utils/getOffsetTop/getOffsetTop.js +10 -0
  214. package/node/components/InfiniteTreeList/hooks/useListScroll/utils/getOffsetTop/index.d.ts +1 -0
  215. package/node/components/InfiniteTreeList/hooks/useListScroll/utils/getOffsetTop/index.js +17 -0
  216. package/node/components/InfiniteTreeList/hooks/useListScroll/utils/index.d.ts +1 -0
  217. package/node/components/InfiniteTreeList/hooks/useListScroll/utils/index.js +17 -0
  218. package/node/components/InfiniteTreeList/hooks/useNodeTitleValidation/index.d.ts +2 -0
  219. package/node/components/InfiniteTreeList/hooks/useNodeTitleValidation/index.js +18 -0
  220. package/node/components/InfiniteTreeList/hooks/useNodeTitleValidation/types.d.ts +14 -0
  221. package/node/components/InfiniteTreeList/hooks/useNodeTitleValidation/types.js +2 -0
  222. package/node/components/InfiniteTreeList/hooks/useNodeTitleValidation/useNodeTitleValidation.d.ts +5 -0
  223. package/node/components/InfiniteTreeList/hooks/useNodeTitleValidation/useNodeTitleValidation.js +22 -0
  224. package/node/components/InfiniteTreeList/styles.d.ts +5 -0
  225. package/node/components/InfiniteTreeList/styles.js +44 -0
  226. package/node/components/InfiniteTreeList/types.d.ts +4 -0
  227. package/node/components/InfiniteTreeList/useLogic/useLogic.d.ts +13 -5
  228. package/node/components/InfiniteTreeList/useLogic/useLogic.js +162 -24
  229. package/node/components/InfiniteTreeList/utils/checkHasFooterContent/checkHasFooterContent.d.ts +5 -0
  230. package/node/components/InfiniteTreeList/utils/checkHasFooterContent/checkHasFooterContent.js +8 -0
  231. package/node/components/InfiniteTreeList/utils/checkHasFooterContent/index.d.ts +1 -0
  232. package/node/components/InfiniteTreeList/utils/checkHasFooterContent/index.js +17 -0
  233. package/node/components/InfiniteTreeList/utils/checkHasNested/checkHasNested.d.ts +6 -0
  234. package/node/components/InfiniteTreeList/utils/checkHasNested/checkHasNested.js +9 -0
  235. package/node/components/InfiniteTreeList/utils/checkHasNested/index.d.ts +1 -0
  236. package/node/components/InfiniteTreeList/utils/checkHasNested/index.js +17 -0
  237. package/node/components/InfiniteTreeList/utils/createTailRegistry/createTailRegistry.d.ts +8 -3
  238. package/node/components/InfiniteTreeList/utils/createTailRegistry/createTailRegistry.js +30 -12
  239. package/node/components/InfiniteTreeList/utils/flattenTree/flattenTree.js +2 -1
  240. package/node/components/InfiniteTreeList/utils/getLevelKey/getLevelKey.d.ts +4 -0
  241. package/node/components/InfiniteTreeList/utils/getLevelKey/getLevelKey.js +9 -0
  242. package/node/components/InfiniteTreeList/utils/getLevelKey/index.d.ts +1 -0
  243. package/node/components/InfiniteTreeList/utils/getLevelKey/index.js +17 -0
  244. package/node/components/InfiniteTreeList/utils/index.d.ts +3 -0
  245. package/node/components/InfiniteTreeList/utils/index.js +3 -0
  246. package/node/components/useScrollManagement/useScrollManagement.js +6 -5
  247. package/package.json +1 -1
@@ -4,24 +4,38 @@ exports.useListScroll = void 0;
4
4
  const react_1 = require("react");
5
5
  const useScrollManagement_1 = require("../../../useScrollManagement");
6
6
  const constants_1 = require("../../constants");
7
- const utils_1 = require("../../utils");
7
+ const hooks_1 = require("./hooks");
8
+ const utils_1 = require("./utils");
8
9
  /**
9
- * Скролл-обвязка списка: props для `Virtuoso`, кнопка «наверх» и реестр хвостов
10
- * вложенных веток. Хвосты регистрируют сами строки, хук создаёт реестр и на
11
- * смене видимого диапазона проверяет, попал ли хвост в кадр
10
+ * Скролл-обвязка списка: props для `Virtuoso`, переход между уровнями
11
+ * и сборка кнопки «наверх», реестра хвостов и памяти уровней
12
12
  */
13
- const useListScroll = ({ scrollRef, isEndReached, onLoadMore, flatListRef, enterAnimation, }) => {
13
+ const useListScroll = ({ scrollRef, isEndReached, onLoadMore, displayedList, enterAnimation, isRootLevel, levelKey, activeLevelKeys, }) => {
14
14
  const virtuosoRef = (0, react_1.useRef)(null);
15
- const scrollToTopButtonRef = (0, react_1.useRef)(null);
16
- const tailRegistryRef = (0, react_1.useRef)(null);
17
- if (!tailRegistryRef.current) {
18
- tailRegistryRef.current = (0, utils_1.createTailRegistry)();
19
- }
20
- const tailRegistry = tailRegistryRef.current;
15
+ const listRef = (0, react_1.useRef)(null);
16
+ const pendingLevelRef = (0, react_1.useRef)(null);
17
+ const pinnedHeightRef = (0, react_1.useRef)(null);
18
+ const heldHeightRef = (0, react_1.useRef)(null);
19
+ const { tailRegistry, trackRange } = (0, hooks_1.useTailWatcher)({
20
+ displayedList,
21
+ levelKey,
22
+ });
23
+ const { updateVisibility: updateTopButtonVisibility, onTopButtonProps } = (0, hooks_1.useScrollToTopButton)({ scrollRef, virtuosoRef });
24
+ const { rememberLevel, forgetLevel, getLevelPosition, levelState } = (0, hooks_1.useLevelSnapshots)({ levelKey, activeLevelKeys, virtuosoRef });
25
+ const isRootLevelRef = (0, react_1.useRef)(isRootLevel);
26
+ (0, react_1.useEffect)(() => {
27
+ isRootLevelRef.current = isRootLevel;
28
+ }, [isRootLevel]);
29
+ const handleListLoadMore = (0, react_1.useCallback)(() => {
30
+ if (!isRootLevelRef.current) {
31
+ return;
32
+ }
33
+ onLoadMore?.();
34
+ }, [onLoadMore]);
21
35
  const { scrollParent, recalculateVerticalScroll, handleEndReach, isEndReachedWithScroll, } = (0, useScrollManagement_1.useScrollManagement)({
22
36
  scrollRef,
23
37
  isEndReached,
24
- onLoadMore,
38
+ onLoadMore: handleListLoadMore,
25
39
  virtuosoId: constants_1.VIRTUOSO_CONTAINER_ID,
26
40
  });
27
41
  // Скролл виртуализации монтирует строки, которые появлением не считаются
@@ -31,33 +45,183 @@ const useListScroll = ({ scrollRef, isEndReached, onLoadMore, flatListRef, enter
31
45
  }
32
46
  }, [enterAnimation]);
33
47
  const handleRangeChanged = (0, react_1.useCallback)((range) => {
34
- scrollToTopButtonRef.current?.classList.toggle(constants_1.infiniteTreeListClassnames.visibleScrollToTopButton, range.startIndex > 2);
35
- tailRegistry.checkRange(range.endIndex, (itemId) => flatListRef.current.findIndex((item) => item.id === itemId));
36
- }, [flatListRef, tailRegistry]);
37
- const handleScrollToTop = (0, react_1.useCallback)(() => {
38
- if (scrollRef.current) {
39
- scrollRef.current.style.scrollBehavior = 'auto';
40
- }
41
- virtuosoRef.current?.scrollToIndex(0);
42
- }, [scrollRef]);
48
+ updateTopButtonVisibility(range);
49
+ trackRange(range);
50
+ }, [updateTopButtonVisibility, trackRange]);
51
+ const getListTop = (0, react_1.useCallback)(() => {
52
+ const listElement = listRef.current;
53
+ if (!scrollParent || !listElement) {
54
+ return null;
55
+ }
56
+ return Math.max((0, utils_1.getOffsetTop)(listElement, scrollParent), 0);
57
+ }, [scrollParent]);
58
+ const saveLevelSnapshot = (0, react_1.useCallback)(() => {
59
+ const listTop = getListTop();
60
+ if (!scrollParent || listTop === null) {
61
+ return;
62
+ }
63
+ rememberLevel(scrollParent.scrollTop - listTop);
64
+ // Высота уходящего уровня держит список, пока новый не доехал
65
+ heldHeightRef.current = listRef.current?.offsetHeight ?? null;
66
+ }, [scrollParent, getListTop, rememberLevel]);
67
+ // Заданная высота снимается, когда строки уровня доехали и держат позицию сами
68
+ const releaseListHeight = (0, react_1.useCallback)(() => {
69
+ const listElement = listRef.current;
70
+ const pinnedHeight = pinnedHeightRef.current;
71
+ if (!scrollParent || !listElement || pinnedHeight === null) {
72
+ return;
73
+ }
74
+ const keptScrollTop = scrollParent.scrollTop;
75
+ pinnedHeightRef.current = null;
76
+ listElement.style.removeProperty('min-height');
77
+ if (scrollParent.scrollTop < keptScrollTop) {
78
+ pinnedHeightRef.current = pinnedHeight;
79
+ listElement.style.minHeight = `${pinnedHeight}px`;
80
+ scrollParent.scrollTop = keptScrollTop;
81
+ }
82
+ }, [scrollParent]);
83
+ const applyLevelPosition = (0, react_1.useCallback)(() => {
84
+ const pendingLevel = pendingLevelRef.current;
85
+ const listElement = listRef.current;
86
+ const listTop = getListTop();
87
+ if (!pendingLevel || !scrollParent || !listElement || listTop === null) {
88
+ return;
89
+ }
90
+ const offset = getLevelPosition(pendingLevel);
91
+ if (offset === undefined) {
92
+ pendingLevelRef.current = null;
93
+ scrollParent.scrollTop = Math.min(scrollParent.scrollTop, listTop);
94
+ return;
95
+ }
96
+ const target = Math.max(listTop + offset, 0);
97
+ // Строки уровня попадают в список на кадр позже, чем меняется сам уровень.
98
+ // Пока их нет, страница короткая, и до сохранённой позиции скролл просто
99
+ // не достаёт
100
+ if (target > scrollParent.scrollHeight - scrollParent.clientHeight) {
101
+ const pinnedHeight = Math.max(offset + scrollParent.clientHeight, pinnedHeightRef.current ?? 0);
102
+ pinnedHeightRef.current = pinnedHeight;
103
+ listElement.style.minHeight = `${pinnedHeight}px`;
104
+ }
105
+ scrollParent.scrollTop = target;
106
+ if (scrollParent.scrollTop < target) {
107
+ return;
108
+ }
109
+ pendingLevelRef.current = null;
110
+ }, [scrollParent, getListTop, getLevelPosition]);
111
+ const heightObserverRef = (0, react_1.useRef)(null);
112
+ const transitionTimerRef = (0, react_1.useRef)(null);
113
+ const stopWatchingLevelContent = (0, react_1.useCallback)(() => {
114
+ heightObserverRef.current?.disconnect();
115
+ heightObserverRef.current = null;
116
+ }, []);
117
+ // Переход открывает список и возвращает контейнеру `scroll-behavior: smooth`
118
+ const finishLevelTransition = (0, react_1.useCallback)(() => {
119
+ if (transitionTimerRef.current !== null) {
120
+ clearTimeout(transitionTimerRef.current);
121
+ transitionTimerRef.current = null;
122
+ }
123
+ listRef.current?.classList.remove(constants_1.infiniteTreeListClassnames.levelTransition);
124
+ scrollParent?.style.removeProperty('scroll-behavior');
125
+ }, [scrollParent]);
126
+ const settleLevelTransition = (0, react_1.useCallback)(() => {
127
+ applyLevelPosition();
128
+ releaseListHeight();
129
+ if (pendingLevelRef.current || pinnedHeightRef.current !== null) {
130
+ return;
131
+ }
132
+ stopWatchingLevelContent();
133
+ finishLevelTransition();
134
+ }, [
135
+ applyLevelPosition,
136
+ releaseListHeight,
137
+ stopWatchingLevelContent,
138
+ finishLevelTransition,
139
+ ]);
140
+ const forceLevelTransitionEnd = (0, react_1.useCallback)(() => {
141
+ applyLevelPosition();
142
+ releaseListHeight();
143
+ stopWatchingLevelContent();
144
+ finishLevelTransition();
145
+ }, [
146
+ applyLevelPosition,
147
+ releaseListHeight,
148
+ stopWatchingLevelContent,
149
+ finishLevelTransition,
150
+ ]);
151
+ const startLevelTransition = (0, react_1.useCallback)(() => {
152
+ const listElement = listRef.current;
153
+ finishLevelTransition();
154
+ listElement?.classList.add(constants_1.infiniteTreeListClassnames.levelTransition);
155
+ scrollParent?.style.setProperty('scroll-behavior', 'auto');
156
+ const heldHeight = heldHeightRef.current;
157
+ if (listElement && heldHeight !== null) {
158
+ pinnedHeightRef.current = heldHeight;
159
+ listElement.style.minHeight = `${heldHeight}px`;
160
+ }
161
+ transitionTimerRef.current = setTimeout(forceLevelTransitionEnd, constants_1.LEVEL_TRANSITION_TIMEOUT_MS);
162
+ }, [finishLevelTransition, forceLevelTransitionEnd, scrollParent]);
163
+ const watchLevelContent = (0, react_1.useCallback)(() => {
164
+ if (heightObserverRef.current) {
165
+ return;
166
+ }
167
+ const contentElement = listRef.current?.querySelector(`#${constants_1.VIRTUOSO_CONTAINER_ID}`);
168
+ if (!contentElement) {
169
+ settleLevelTransition();
170
+ return;
171
+ }
172
+ const observer = new ResizeObserver(([entry]) => {
173
+ // Первый замер приходит сразу за `observe`, когда список ещё пуст:
174
+ // снятый по нему переход показал бы обёртку без строк
175
+ if (!entry || entry.contentRect.height === 0) {
176
+ return;
177
+ }
178
+ settleLevelTransition();
179
+ });
180
+ observer.observe(contentElement);
181
+ heightObserverRef.current = observer;
182
+ }, [settleLevelTransition]);
183
+ (0, react_1.useEffect)(() => () => {
184
+ stopWatchingLevelContent();
185
+ finishLevelTransition();
186
+ }, [stopWatchingLevelContent, finishLevelTransition]);
187
+ const shownLevelRef = (0, react_1.useRef)(levelKey);
188
+ // Позиция выставляется до отрисовки кадра: из обычного эффекта уровень успел
189
+ // бы показаться с чужой позиции, и переход читался бы как прокрутка
190
+ (0, react_1.useLayoutEffect)(() => {
191
+ if (shownLevelRef.current === levelKey) {
192
+ return;
193
+ }
194
+ shownLevelRef.current = levelKey;
195
+ pendingLevelRef.current = levelKey;
196
+ // Высота, заданная прошлому переходу, к новому уровню не относится
197
+ pinnedHeightRef.current = null;
198
+ listRef.current?.style.removeProperty('min-height');
199
+ startLevelTransition();
200
+ applyLevelPosition();
201
+ watchLevelContent();
202
+ }, [levelKey, applyLevelPosition, watchLevelContent, startLevelTransition]);
43
203
  return {
44
204
  scrollParent,
205
+ listRef,
45
206
  tailRegistry,
46
207
  isEndReachedWithScroll,
208
+ saveLevelSnapshot,
209
+ dropLevelSnapshot: forgetLevel,
47
210
  virtuosoProps: {
48
211
  id: constants_1.VIRTUOSO_CONTAINER_ID,
49
212
  ref: virtuosoRef,
50
213
  overscan: constants_1.OVERSCAN,
214
+ restoreStateFrom: levelState,
215
+ // Из снимка нужны только высоты строк: позицию уровня список выставляет
216
+ // сам. Иначе `Virtuoso` уводит скролл в начало и возвращается к
217
+ // сохранённому месту собственной прокруткой
218
+ initialTopMostItemIndex: 0,
51
219
  rangeChanged: handleRangeChanged,
52
220
  endReached: handleEndReach,
53
221
  totalListHeightChanged: recalculateVerticalScroll,
54
222
  isScrolling: handleScrollingChange,
55
223
  },
56
- onTopButtonProps: {
57
- buttonRef: scrollToTopButtonRef,
58
- handleScrollToTop,
59
- scrollRef,
60
- },
224
+ onTopButtonProps,
61
225
  };
62
226
  };
63
227
  exports.useListScroll = useListScroll;
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Смещение элемента внутри скролл-контейнера
3
+ */
4
+ export declare const getOffsetTop: (element: HTMLElement, scroller: HTMLElement) => number;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getOffsetTop = void 0;
4
+ /**
5
+ * Смещение элемента внутри скролл-контейнера
6
+ */
7
+ const getOffsetTop = (element, scroller) => element.getBoundingClientRect().top -
8
+ scroller.getBoundingClientRect().top +
9
+ scroller.scrollTop;
10
+ exports.getOffsetTop = getOffsetTop;
@@ -0,0 +1 @@
1
+ export * from './getOffsetTop';
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./getOffsetTop"), exports);
@@ -0,0 +1 @@
1
+ export * from './getOffsetTop';
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./getOffsetTop"), exports);
@@ -0,0 +1,2 @@
1
+ export * from './types';
2
+ export * from './useNodeTitleValidation';
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./types"), exports);
18
+ __exportStar(require("./useNodeTitleValidation"), exports);
@@ -0,0 +1,14 @@
1
+ export type UseNodeTitleValidationParams = {
2
+ /**
3
+ * Флаг мобильного отображения
4
+ */
5
+ isMobile: boolean;
6
+ /**
7
+ * Id узла, чей уровень отображается
8
+ */
9
+ currentNodeId?: string;
10
+ /**
11
+ * Заголовок отображаемого узла из его данных
12
+ */
13
+ title?: string;
14
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,5 @@
1
+ import type { UseNodeTitleValidationParams } from './types';
2
+ /**
3
+ * Проверяет, что у узла, содержимое которого отображается, задан `title`
4
+ */
5
+ export declare const useNodeTitleValidation: ({ isMobile, currentNodeId, title, }: UseNodeTitleValidationParams) => void;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useNodeTitleValidation = void 0;
4
+ const react_1 = require("react");
5
+ /**
6
+ * Проверяет, что у узла, содержимое которого отображается, задан `title`
7
+ */
8
+ const useNodeTitleValidation = ({ isMobile, currentNodeId, title, }) => {
9
+ const warnedNodeIdsRef = (0, react_1.useRef)(new Set());
10
+ (0, react_1.useEffect)(() => {
11
+ if (!isMobile || !currentNodeId) {
12
+ return;
13
+ }
14
+ if (title || warnedNodeIdsRef.current.has(currentNodeId)) {
15
+ return;
16
+ }
17
+ warnedNodeIdsRef.current.add(currentNodeId);
18
+ // biome-ignore lint/suspicious/noConsole: Предупреждение для интеграторов
19
+ console.warn(`InfiniteTreeList: у узла "${currentNodeId}" не задан параметр title`);
20
+ }, [isMobile, currentNodeId, title]);
21
+ };
22
+ exports.useNodeTitleValidation = useNodeTitleValidation;
@@ -0,0 +1,5 @@
1
+ /// <reference types="react" />
2
+ export declare const InfiniteTreeListWrapper: import("@emotion/styled/dist/declarations/src/types").StyledComponent<{
3
+ theme?: import("@emotion/react").Theme | undefined;
4
+ as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
5
+ }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InfiniteTreeListWrapper = void 0;
4
+ const styled_1 = require("../styled");
5
+ const constants_1 = require("./constants");
6
+ exports.InfiniteTreeListWrapper = styled_1.styled.div `
7
+ /* Убираем якорь на android устройствах */
8
+ /* stylelint-disable-next-line plugin/no-unsupported-browser-features */
9
+ overflow-anchor: none;
10
+
11
+ ${({ theme }) => theme.breakpoints.up('mobile')} {
12
+ &.${constants_1.infiniteTreeListClassnames.loading},
13
+ &.${constants_1.infiniteTreeListClassnames.error},
14
+ &.${constants_1.infiniteTreeListClassnames.noData} {
15
+ height: 100%;
16
+ }
17
+ }
18
+
19
+ ${({ theme }) => theme.breakpoints.down('mobile')} {
20
+ overflow: hidden;
21
+
22
+ height: auto;
23
+ margin: ${({ theme }) => theme.spacing(0, 4, 4)};
24
+
25
+ background-color: ${({ theme }) => theme.palette.background.default};
26
+ border: 1px solid ${({ theme }) => theme.palette.components.border.default};
27
+ border-radius: ${({ theme }) => theme.shape.medium};
28
+
29
+ &.${constants_1.infiniteTreeListClassnames.loading},
30
+ &.${constants_1.infiniteTreeListClassnames.error},
31
+ &.${constants_1.infiniteTreeListClassnames.noData} {
32
+ height: ${({ theme }) => `calc(100% - ${theme.spacing(4)})`};
33
+ }
34
+
35
+ /* Смена уровня пересоздаёт список: строки нового уровня встают на место
36
+ не в том же кадре, поэтому до их появления виден фон обёртки.
37
+ Высоту на это время держит min-height от самого списка */
38
+ &.${constants_1.infiniteTreeListClassnames.levelTransition} {
39
+ #${constants_1.VIRTUOSO_CONTAINER_ID} {
40
+ visibility: hidden;
41
+ }
42
+ }
43
+ }
44
+ `;
@@ -11,6 +11,10 @@ export type InfiniteTreeListDataBase = {
11
11
  * Статическое дерево описывается полем `children` и флага не требует
12
12
  */
13
13
  hasChildren?: boolean;
14
+ /**
15
+ * Заголовок узла в шапке уровня на мобильной ширине.
16
+ */
17
+ title?: string;
14
18
  /**
15
19
  * Дополнительные поля
16
20
  */
@@ -1,26 +1,35 @@
1
1
  /// <reference types="react" />
2
2
  import { type ContentStateProps } from '../../ContentState';
3
+ import type { LevelHeaderProps } from '../LevelHeader';
3
4
  import type { ListFooterContext } from '../ListFooter';
4
- import type { InfiniteTreeListData, InfiniteTreeListProps } from '../types';
5
+ import type { FlattenTree, InfiniteTreeListData, InfiniteTreeListProps } from '../types';
5
6
  type UseLogicParams<TData extends InfiniteTreeListData<TData>> = InfiniteTreeListProps<TData>;
6
7
  /**
7
8
  * Логика списка: сводит плоский список, данные дочерних элементов, скролл
8
9
  * и анимацию появления строк в props для `Virtuoso` и дочерних компонентов
9
10
  */
10
11
  export declare const useLogic: <TData extends InfiniteTreeListData<TData>>({ initialExpandedLevel, items, onRetry, errorMsg, isError, isLoading, scrollRef, isEndReached, onLoadMore, renderItem, renderParent, itemSkeleton, endOfScrollMsg, noDataImgSrc, errorImgSrc, }: UseLogicParams<TData>) => {
11
- flatList: import("../types").FlattenTree<TData>[];
12
- onToggle: ({ id: itemId }: InfiniteTreeListData) => void;
12
+ displayedList: FlattenTree<TData>[];
13
+ levelKey: string;
14
+ lastRowId: string | undefined;
15
+ levelHeaderProps: LevelHeaderProps | undefined;
16
+ onToggle: (item: InfiniteTreeListData) => void;
13
17
  nodePaginationMap: Record<string, import("../InfiniteTreeListContext").NodePagination>;
14
18
  registerChildren: (itemId: string, childrenState: import("../types").InfiniteTreeChildrenPagination) => void;
15
19
  notifyExpand: (itemId: string, onOpen?: (() => void) | undefined) => void;
16
- parentItems: import("../types").FlattenTree<TData>[];
20
+ parentItems: FlattenTree<TData>[];
17
21
  acquireParentSlot: (itemId: string) => HTMLDivElement | null;
18
22
  contentStateProps: Omit<ContentStateProps, "children">;
23
+ isNoData: boolean;
24
+ state: "error" | "loading" | "noData" | undefined;
19
25
  scrollParent: HTMLElement | null;
26
+ listRef: import("react").RefObject<HTMLDivElement | null>;
20
27
  virtuosoProps: {
21
28
  id: string;
22
29
  ref: import("react").RefObject<import("react-virtuoso").VirtuosoHandle | null>;
23
30
  overscan: number;
31
+ restoreStateFrom: import("react-virtuoso").StateSnapshot | undefined;
32
+ initialTopMostItemIndex: number;
24
33
  rangeChanged: (range: import("react-virtuoso").ListRange) => void;
25
34
  endReached: () => void;
26
35
  totalListHeightChanged: () => void;
@@ -39,7 +48,6 @@ export declare const useLogic: <TData extends InfiniteTreeListData<TData>>({ ini
39
48
  renderParent: (item: TData & {
40
49
  meta: import("../types").InfiniteTreeItemMeta;
41
50
  }) => import("react").ReactNode;
42
- items: TData[];
43
51
  onRetry: () => void;
44
52
  noDataImgSrc: string | undefined;
45
53
  enterAnimation: import("../hooks").EnterAnimationResult;