@astral/ui 4.100.0 → 4.102.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 (552) hide show
  1. package/components/Alert/styles.js +12 -2
  2. package/components/Autocomplete/styles.js +5 -2
  3. package/components/Breadcrumbs/styles.js +18 -13
  4. package/components/CheckableTag/styles.js +6 -3
  5. package/components/Checkbox/styles.js +10 -7
  6. package/components/Chip/styles.js +11 -6
  7. package/components/CodeField/styles.js +5 -2
  8. package/components/CopyTypography/styles.js +19 -5
  9. package/components/DashboardLayout/Header/styles.js +5 -2
  10. package/components/DashboardSidebarPopover/SidebarPopoverItem/styles.js +5 -2
  11. package/components/DataGrid/Row/styles.js +14 -19
  12. package/components/DataGrid/RowBase/styles.js +10 -17
  13. package/components/DataGridCollapsibleRow/styles.js +5 -2
  14. package/components/Description/Value/styles.js +5 -2
  15. package/components/ExpansionPanel/Summary/styles.js +5 -2
  16. package/components/Fab/styles.js +12 -3
  17. package/components/InfiniteDataList/styles.js +5 -2
  18. package/components/InfiniteTreeList/InfiniteTreeList.d.ts +18 -0
  19. package/components/InfiniteTreeList/InfiniteTreeList.js +26 -19
  20. package/components/InfiniteTreeList/InfiniteTreeListActions/InfiniteTreeListActions.d.ts +9 -0
  21. package/components/InfiniteTreeList/InfiniteTreeListActions/InfiniteTreeListActions.js +9 -0
  22. package/components/InfiniteTreeList/InfiniteTreeListActions/types.d.ts +5 -0
  23. package/components/InfiniteTreeList/InfiniteTreeListActions/useLogic/useLogic.js +5 -6
  24. package/components/InfiniteTreeList/InfiniteTreeListContext/InfiniteTreeListContext.d.ts +81 -0
  25. package/components/InfiniteTreeList/InfiniteTreeListContext/InfiniteTreeListContext.js +21 -0
  26. package/components/InfiniteTreeList/InfiniteTreeListContext/InfiniteTreeListContextProvider/InfiniteTreeListContextProvider.d.ts +3 -2
  27. package/components/InfiniteTreeList/InfiniteTreeListContext/InfiniteTreeListContextProvider/InfiniteTreeListContextProvider.js +69 -13
  28. package/components/InfiniteTreeList/InfiniteTreeListItem/ErrorPlaceholder/ErrorPlaceholder.d.ts +6 -0
  29. package/components/InfiniteTreeList/InfiniteTreeListItem/ErrorPlaceholder/ErrorPlaceholder.js +8 -0
  30. package/components/InfiniteTreeList/InfiniteTreeListItem/ErrorPlaceholder/constants.d.ts +1 -0
  31. package/components/InfiniteTreeList/InfiniteTreeListItem/ErrorPlaceholder/constants.js +1 -0
  32. package/components/InfiniteTreeList/InfiniteTreeListItem/ErrorPlaceholder/index.d.ts +1 -0
  33. package/components/InfiniteTreeList/InfiniteTreeListItem/ErrorPlaceholder/index.js +1 -0
  34. package/components/InfiniteTreeList/{ErrorMessage → InfiniteTreeListItem/ErrorPlaceholder}/styles.d.ts +1 -1
  35. package/components/InfiniteTreeList/InfiniteTreeListItem/ErrorPlaceholder/styles.js +8 -0
  36. package/components/InfiniteTreeList/InfiniteTreeListItem/InfiniteTreeListItem.js +29 -7
  37. package/components/InfiniteTreeList/InfiniteTreeListItem/TreeListItemContext/TreeListItemContext.d.ts +19 -0
  38. package/components/InfiniteTreeList/InfiniteTreeListItem/TreeListItemContext/TreeListItemContext.js +4 -0
  39. package/components/InfiniteTreeList/InfiniteTreeListItem/TreeListItemContext/TreeListItemContextProvider/TreeListItemContextProvider.d.ts +4 -0
  40. package/components/InfiniteTreeList/InfiniteTreeListItem/TreeListItemContext/TreeListItemContextProvider/TreeListItemContextProvider.js +13 -8
  41. package/components/InfiniteTreeList/InfiniteTreeListItem/constants.d.ts +6 -0
  42. package/components/InfiniteTreeList/InfiniteTreeListItem/constants.js +7 -0
  43. package/components/InfiniteTreeList/InfiniteTreeListItem/styles.d.ts +4 -4
  44. package/components/InfiniteTreeList/InfiniteTreeListItem/styles.js +32 -6
  45. package/components/InfiniteTreeList/InfiniteTreeListItem/types.d.ts +20 -3
  46. package/components/InfiniteTreeList/InfiniteTreeListItem/useLogic/useLogic.d.ts +7 -1
  47. package/components/InfiniteTreeList/InfiniteTreeListItem/useLogic/useLogic.js +57 -5
  48. package/components/InfiniteTreeList/{EndData → ListFooter/EndData}/EndData.js +1 -1
  49. package/components/InfiniteTreeList/{ErrorMessage → ListFooter/ErrorMessage}/ErrorMessage.js +2 -2
  50. package/components/InfiniteTreeList/ListFooter/ErrorMessage/styles.d.ts +5 -0
  51. package/components/InfiniteTreeList/{ErrorMessage → ListFooter/ErrorMessage}/styles.js +1 -1
  52. package/components/InfiniteTreeList/ListFooter/ListFooter.d.ts +10 -0
  53. package/components/InfiniteTreeList/ListFooter/ListFooter.js +25 -0
  54. package/components/InfiniteTreeList/ListFooter/index.d.ts +2 -0
  55. package/components/InfiniteTreeList/ListFooter/index.js +1 -0
  56. package/components/InfiniteTreeList/{styles.d.ts → ListFooter/styles.d.ts} +2 -2
  57. package/components/InfiniteTreeList/{styles.js → ListFooter/styles.js} +1 -1
  58. package/components/InfiniteTreeList/ListFooter/types.d.ts +22 -0
  59. package/components/InfiniteTreeList/ListFooter/types.js +1 -0
  60. package/components/InfiniteTreeList/OnTopButton/OnTopButton.d.ts +8 -2
  61. package/components/InfiniteTreeList/OnTopButton/OnTopButton.js +6 -5
  62. package/components/InfiniteTreeList/OnTopButton/styles.d.ts +4 -0
  63. package/components/InfiniteTreeList/OnTopButton/styles.js +10 -0
  64. package/components/InfiniteTreeList/ParentItems/Item/CustomParentWrapper/CustomParentWrapper.d.ts +23 -0
  65. package/components/InfiniteTreeList/ParentItems/Item/CustomParentWrapper/CustomParentWrapper.js +12 -0
  66. package/components/InfiniteTreeList/ParentItems/Item/CustomParentWrapper/index.d.ts +1 -0
  67. package/components/InfiniteTreeList/ParentItems/Item/CustomParentWrapper/index.js +1 -0
  68. package/components/InfiniteTreeList/ParentItems/Item/Item.d.ts +10 -0
  69. package/components/InfiniteTreeList/ParentItems/Item/Item.js +22 -0
  70. package/components/InfiniteTreeList/ParentItems/Item/index.d.ts +2 -0
  71. package/components/InfiniteTreeList/ParentItems/Item/index.js +2 -0
  72. package/components/InfiniteTreeList/ParentItems/Item/types.d.ts +8 -0
  73. package/components/InfiniteTreeList/ParentItems/Item/types.js +1 -0
  74. package/components/InfiniteTreeList/ParentItems/Item/useLogic/index.d.ts +1 -0
  75. package/components/InfiniteTreeList/ParentItems/Item/useLogic/index.js +1 -0
  76. package/components/InfiniteTreeList/ParentItems/Item/useLogic/useLogic.d.ts +12 -0
  77. package/components/InfiniteTreeList/ParentItems/Item/useLogic/useLogic.js +12 -0
  78. package/components/InfiniteTreeList/ParentItems/ParentItems.d.ts +11 -0
  79. package/components/InfiniteTreeList/ParentItems/ParentItems.js +11 -0
  80. package/components/InfiniteTreeList/ParentItems/index.d.ts +3 -0
  81. package/components/InfiniteTreeList/ParentItems/index.js +3 -0
  82. package/components/InfiniteTreeList/ParentItems/types.d.ts +8 -0
  83. package/components/InfiniteTreeList/ParentItems/types.js +1 -0
  84. package/components/InfiniteTreeList/TreeItem/ChildrenPlaceholder/ChildrenPlaceholder.d.ts +9 -0
  85. package/components/InfiniteTreeList/TreeItem/ChildrenPlaceholder/ChildrenPlaceholder.js +22 -0
  86. package/components/InfiniteTreeList/TreeItem/ChildrenPlaceholder/NoDataRow/NoDataRow.d.ts +1 -0
  87. package/components/InfiniteTreeList/TreeItem/ChildrenPlaceholder/NoDataRow/NoDataRow.js +5 -0
  88. package/components/InfiniteTreeList/TreeItem/ChildrenPlaceholder/NoDataRow/index.d.ts +1 -0
  89. package/components/InfiniteTreeList/TreeItem/ChildrenPlaceholder/NoDataRow/index.js +1 -0
  90. package/components/InfiniteTreeList/TreeItem/ChildrenPlaceholder/index.d.ts +1 -0
  91. package/components/InfiniteTreeList/TreeItem/ChildrenPlaceholder/index.js +1 -0
  92. package/components/InfiniteTreeList/TreeItem/CustomItemWrapper/CustomItemWrapper.d.ts +20 -0
  93. package/components/InfiniteTreeList/TreeItem/CustomItemWrapper/CustomItemWrapper.js +10 -0
  94. package/components/InfiniteTreeList/TreeItem/CustomItemWrapper/index.d.ts +1 -0
  95. package/components/InfiniteTreeList/TreeItem/CustomItemWrapper/index.js +1 -0
  96. package/components/InfiniteTreeList/TreeItem/ParentSlot/ParentSlot.d.ts +5 -0
  97. package/components/InfiniteTreeList/TreeItem/ParentSlot/ParentSlot.js +38 -0
  98. package/components/InfiniteTreeList/TreeItem/ParentSlot/index.d.ts +2 -0
  99. package/components/InfiniteTreeList/TreeItem/ParentSlot/index.js +2 -0
  100. package/components/InfiniteTreeList/TreeItem/ParentSlot/styles.d.ts +9 -0
  101. package/components/InfiniteTreeList/TreeItem/ParentSlot/styles.js +8 -0
  102. package/components/InfiniteTreeList/TreeItem/ParentSlot/types.d.ts +6 -0
  103. package/components/InfiniteTreeList/TreeItem/ParentSlot/types.js +1 -0
  104. package/components/InfiniteTreeList/TreeItem/TreeItem.d.ts +5 -2
  105. package/components/InfiniteTreeList/TreeItem/TreeItem.js +31 -4
  106. package/components/InfiniteTreeList/TreeItem/constants.d.ts +3 -0
  107. package/components/InfiniteTreeList/TreeItem/constants.js +3 -1
  108. package/components/InfiniteTreeList/TreeItem/styles.d.ts +0 -3
  109. package/components/InfiniteTreeList/TreeItem/styles.js +23 -8
  110. package/components/InfiniteTreeList/TreeItem/types.d.ts +4 -9
  111. package/components/InfiniteTreeList/TreeItem/useLogic/useLogic.d.ts +29 -9
  112. package/components/InfiniteTreeList/TreeItem/useLogic/useLogic.js +61 -19
  113. package/components/InfiniteTreeList/constants.d.ts +14 -2
  114. package/components/InfiniteTreeList/constants.js +14 -2
  115. package/components/InfiniteTreeList/hooks/index.d.ts +5 -0
  116. package/components/InfiniteTreeList/hooks/index.js +5 -0
  117. package/components/InfiniteTreeList/hooks/useChildrenState/index.d.ts +2 -0
  118. package/components/InfiniteTreeList/hooks/useChildrenState/index.js +2 -0
  119. package/components/InfiniteTreeList/hooks/useChildrenState/types.d.ts +43 -0
  120. package/components/InfiniteTreeList/hooks/useChildrenState/types.js +1 -0
  121. package/components/InfiniteTreeList/hooks/useChildrenState/useChildrenState.d.ts +20 -0
  122. package/components/InfiniteTreeList/hooks/useChildrenState/useChildrenState.js +115 -0
  123. package/components/InfiniteTreeList/hooks/useEnterAnimation/index.d.ts +2 -0
  124. package/components/InfiniteTreeList/hooks/useEnterAnimation/index.js +2 -0
  125. package/components/InfiniteTreeList/hooks/useEnterAnimation/types.d.ts +29 -0
  126. package/components/InfiniteTreeList/hooks/useEnterAnimation/types.js +1 -0
  127. package/components/InfiniteTreeList/hooks/useEnterAnimation/useEnterAnimation.d.ts +6 -0
  128. package/components/InfiniteTreeList/hooks/useEnterAnimation/useEnterAnimation.js +35 -0
  129. package/components/InfiniteTreeList/hooks/useExpandNotifier/index.d.ts +1 -0
  130. package/components/InfiniteTreeList/hooks/useExpandNotifier/index.js +1 -0
  131. package/components/InfiniteTreeList/hooks/useExpandNotifier/useExpandNotifier.d.ts +8 -0
  132. package/components/InfiniteTreeList/hooks/useExpandNotifier/useExpandNotifier.js +19 -0
  133. package/components/InfiniteTreeList/hooks/useFlatTree/index.d.ts +2 -0
  134. package/components/InfiniteTreeList/hooks/useFlatTree/index.js +2 -0
  135. package/components/InfiniteTreeList/hooks/useFlatTree/types.d.ts +20 -0
  136. package/components/InfiniteTreeList/hooks/useFlatTree/types.js +1 -0
  137. package/components/InfiniteTreeList/hooks/useFlatTree/useFlatTree.d.ts +15 -0
  138. package/components/InfiniteTreeList/hooks/useFlatTree/useFlatTree.js +88 -0
  139. package/components/InfiniteTreeList/hooks/useListScroll/index.d.ts +2 -0
  140. package/components/InfiniteTreeList/hooks/useListScroll/index.js +2 -0
  141. package/components/InfiniteTreeList/hooks/useListScroll/types.d.ts +25 -0
  142. package/components/InfiniteTreeList/hooks/useListScroll/types.js +1 -0
  143. package/components/InfiniteTreeList/hooks/useListScroll/useListScroll.d.ts +29 -0
  144. package/components/InfiniteTreeList/hooks/useListScroll/useListScroll.js +59 -0
  145. package/components/InfiniteTreeList/index.d.ts +1 -1
  146. package/components/InfiniteTreeList/public.d.ts +1 -1
  147. package/components/InfiniteTreeList/types.d.ts +83 -17
  148. package/components/InfiniteTreeList/useLogic/useLogic.d.ts +22 -12
  149. package/components/InfiniteTreeList/useLogic/useLogic.js +66 -71
  150. package/components/InfiniteTreeList/utils/checkHasSkeletonPlaceholders/checkHasSkeletonPlaceholders.d.ts +5 -0
  151. package/components/InfiniteTreeList/utils/checkHasSkeletonPlaceholders/checkHasSkeletonPlaceholders.js +6 -0
  152. package/components/InfiniteTreeList/utils/checkHasSkeletonPlaceholders/index.d.ts +1 -0
  153. package/components/InfiniteTreeList/utils/checkHasSkeletonPlaceholders/index.js +1 -0
  154. package/components/InfiniteTreeList/utils/checkIsChildrenPlaceholder/checkIsChildrenPlaceholder.d.ts +5 -0
  155. package/components/InfiniteTreeList/utils/checkIsChildrenPlaceholder/checkIsChildrenPlaceholder.js +4 -0
  156. package/components/InfiniteTreeList/utils/checkIsChildrenPlaceholder/index.d.ts +1 -0
  157. package/components/InfiniteTreeList/utils/checkIsChildrenPlaceholder/index.js +1 -0
  158. package/components/InfiniteTreeList/utils/checkIsChildrenPlaceholderOf/checkIsChildrenPlaceholderOf.d.ts +5 -0
  159. package/components/InfiniteTreeList/utils/checkIsChildrenPlaceholderOf/checkIsChildrenPlaceholderOf.js +5 -0
  160. package/components/InfiniteTreeList/utils/checkIsChildrenPlaceholderOf/index.d.ts +1 -0
  161. package/components/InfiniteTreeList/utils/checkIsChildrenPlaceholderOf/index.js +1 -0
  162. package/components/InfiniteTreeList/utils/checkIsDirectChild/checkIsDirectChild.d.ts +6 -0
  163. package/components/InfiniteTreeList/utils/checkIsDirectChild/checkIsDirectChild.js +6 -0
  164. package/components/InfiniteTreeList/utils/checkIsDirectChild/index.d.ts +1 -0
  165. package/components/InfiniteTreeList/utils/checkIsDirectChild/index.js +1 -0
  166. package/components/InfiniteTreeList/utils/checkIsNoDataChildren/checkIsNoDataChildren.d.ts +12 -0
  167. package/components/InfiniteTreeList/utils/checkIsNoDataChildren/checkIsNoDataChildren.js +14 -0
  168. package/components/InfiniteTreeList/utils/checkIsNoDataChildren/index.d.ts +1 -0
  169. package/components/InfiniteTreeList/utils/checkIsNoDataChildren/index.js +1 -0
  170. package/components/InfiniteTreeList/utils/checkIsSameChildren/checkIsSameChildren.d.ts +5 -0
  171. package/components/InfiniteTreeList/utils/checkIsSameChildren/checkIsSameChildren.js +16 -0
  172. package/components/InfiniteTreeList/utils/checkIsSameChildren/index.d.ts +1 -0
  173. package/components/InfiniteTreeList/utils/checkIsSameChildren/index.js +1 -0
  174. package/components/InfiniteTreeList/utils/countDirectChildren/countDirectChildren.d.ts +5 -0
  175. package/components/InfiniteTreeList/utils/countDirectChildren/countDirectChildren.js +5 -0
  176. package/components/InfiniteTreeList/utils/countDirectChildren/index.d.ts +1 -0
  177. package/components/InfiniteTreeList/utils/countDirectChildren/index.js +1 -0
  178. package/components/InfiniteTreeList/utils/createParentSlots/createParentSlots.d.ts +24 -0
  179. package/components/InfiniteTreeList/utils/createParentSlots/createParentSlots.js +35 -0
  180. package/components/InfiniteTreeList/utils/createParentSlots/index.d.ts +1 -0
  181. package/components/InfiniteTreeList/utils/createParentSlots/index.js +1 -0
  182. package/components/InfiniteTreeList/utils/createTailRegistry/createTailRegistry.d.ts +21 -0
  183. package/components/InfiniteTreeList/utils/createTailRegistry/createTailRegistry.js +40 -0
  184. package/components/InfiniteTreeList/utils/createTailRegistry/index.d.ts +1 -0
  185. package/components/InfiniteTreeList/utils/createTailRegistry/index.js +1 -0
  186. package/components/InfiniteTreeList/utils/flattenChildren/flattenChildren.d.ts +5 -0
  187. package/components/InfiniteTreeList/utils/flattenChildren/flattenChildren.js +5 -0
  188. package/components/InfiniteTreeList/utils/flattenChildren/index.d.ts +1 -0
  189. package/components/InfiniteTreeList/utils/flattenChildren/index.js +1 -0
  190. package/components/InfiniteTreeList/utils/flattenTree/flattenTree.d.ts +6 -0
  191. package/components/InfiniteTreeList/{useLogic/utils → utils}/flattenTree/flattenTree.js +9 -4
  192. package/components/InfiniteTreeList/utils/getEnteringChildren/getEnteringChildren.d.ts +17 -0
  193. package/components/InfiniteTreeList/utils/getEnteringChildren/getEnteringChildren.js +14 -0
  194. package/components/InfiniteTreeList/utils/getEnteringChildren/index.d.ts +1 -0
  195. package/components/InfiniteTreeList/utils/getEnteringChildren/index.js +1 -0
  196. package/components/InfiniteTreeList/utils/getIdsToKeep/getIdsToKeep.d.ts +10 -0
  197. package/components/InfiniteTreeList/utils/getIdsToKeep/getIdsToKeep.js +27 -0
  198. package/components/InfiniteTreeList/utils/getIdsToKeep/index.d.ts +1 -0
  199. package/components/InfiniteTreeList/utils/getIdsToKeep/index.js +1 -0
  200. package/components/InfiniteTreeList/{useLogic/utils → utils}/getInitialExpandedIds/getInitialExpandedIds.d.ts +4 -2
  201. package/components/InfiniteTreeList/{useLogic/utils → utils}/getInitialExpandedIds/getInitialExpandedIds.js +5 -4
  202. package/components/InfiniteTreeList/utils/getNestedItems/getNestedItems.d.ts +6 -0
  203. package/components/InfiniteTreeList/utils/getNestedItems/getNestedItems.js +18 -0
  204. package/components/InfiniteTreeList/utils/getNestedItems/index.d.ts +1 -0
  205. package/components/InfiniteTreeList/utils/getNestedItems/index.js +1 -0
  206. package/components/InfiniteTreeList/utils/index.d.ts +20 -0
  207. package/components/InfiniteTreeList/utils/index.js +20 -0
  208. package/components/InfiniteTreeList/utils/insertChildren/index.d.ts +1 -0
  209. package/components/InfiniteTreeList/utils/insertChildren/index.js +1 -0
  210. package/components/InfiniteTreeList/utils/insertChildren/insertChildren.d.ts +5 -0
  211. package/components/InfiniteTreeList/utils/insertChildren/insertChildren.js +41 -0
  212. package/components/InfiniteTreeList/utils/removeChildren/index.d.ts +1 -0
  213. package/components/InfiniteTreeList/utils/removeChildren/index.js +1 -0
  214. package/components/InfiniteTreeList/utils/removeChildren/removeChildren.d.ts +5 -0
  215. package/components/InfiniteTreeList/utils/removeChildren/removeChildren.js +12 -0
  216. package/components/InfiniteTreeList/utils/sortCollapsed/sortCollapsed.d.ts +5 -0
  217. package/components/InfiniteTreeList/{useLogic/utils → utils}/sortCollapsed/sortCollapsed.js +1 -6
  218. package/components/InfiniteTreeList/utils/startRemoveAnimation/index.d.ts +1 -0
  219. package/components/InfiniteTreeList/utils/startRemoveAnimation/index.js +1 -0
  220. package/components/InfiniteTreeList/utils/startRemoveAnimation/startRemoveAnimation.d.ts +1 -0
  221. package/components/InfiniteTreeList/utils/startRemoveAnimation/startRemoveAnimation.js +5 -0
  222. package/components/InfiniteTreeList/utils/syncChildrenPlaceholders/index.d.ts +1 -0
  223. package/components/InfiniteTreeList/utils/syncChildrenPlaceholders/index.js +1 -0
  224. package/components/InfiniteTreeList/utils/syncChildrenPlaceholders/syncChildrenPlaceholders.d.ts +11 -0
  225. package/components/InfiniteTreeList/utils/syncChildrenPlaceholders/syncChildrenPlaceholders.js +99 -0
  226. package/components/InputGroup/styles.js +8 -5
  227. package/components/JsonViewer/JsonNode/styles.js +5 -2
  228. package/components/Link/styles.js +11 -6
  229. package/components/ListItem/styles.js +5 -2
  230. package/components/MenuOrganization/OrganizationButton/styles.js +5 -6
  231. package/components/NavMenu/Item/ItemButton/styles.js +14 -7
  232. package/components/NewStepper/Step/styles.js +18 -15
  233. package/components/Notification/NotificationStackContainer/styles.js +5 -2
  234. package/components/PageAsideNavigation/PageAsideNavigationItem/styles.js +5 -6
  235. package/components/PageHeader/MobilePageActions/styles.js +0 -4
  236. package/components/Radio/styles.js +7 -4
  237. package/components/RadioCard/styles.js +5 -2
  238. package/components/StaticCalendar/StaticCalendarGridButton/styles.js +8 -5
  239. package/components/Tabs/Tab/styles.js +5 -2
  240. package/components/ToggleButton/styles.js +25 -10
  241. package/components/Tree/TreeItem/MobileSlidePanel/MobileSlidePanelContent/styles.js +3 -3
  242. package/components/Tree/TreeItem/styles.js +23 -10
  243. package/components/constants/index.d.ts +1 -0
  244. package/components/constants/index.js +1 -0
  245. package/components/constants/media.d.ts +8 -0
  246. package/components/constants/media.js +8 -0
  247. package/components/theme/components/MuiButton.js +46 -23
  248. package/components/theme/components/MuiListItemButton.js +10 -2
  249. package/components/theme/components/MuiMenuItem.js +5 -2
  250. package/components/theme/components/MuiOutlinedInput.js +15 -12
  251. package/components/theme/components/MuiSwitch.js +14 -9
  252. package/components/theme/components/MuiTableRow.js +11 -3
  253. package/node/components/Alert/styles.js +24 -14
  254. package/node/components/Autocomplete/styles.js +8 -5
  255. package/node/components/Breadcrumbs/styles.js +18 -13
  256. package/node/components/CheckableTag/styles.js +6 -3
  257. package/node/components/Checkbox/styles.js +26 -23
  258. package/node/components/Chip/styles.js +36 -31
  259. package/node/components/CodeField/styles.js +5 -2
  260. package/node/components/CopyTypography/styles.js +22 -8
  261. package/node/components/DashboardLayout/Header/styles.js +35 -32
  262. package/node/components/DashboardSidebarPopover/SidebarPopoverItem/styles.js +7 -4
  263. package/node/components/DataGrid/Row/styles.js +41 -46
  264. package/node/components/DataGrid/RowBase/styles.js +16 -23
  265. package/node/components/DataGridCollapsibleRow/styles.js +11 -8
  266. package/node/components/Description/Value/styles.js +5 -2
  267. package/node/components/ExpansionPanel/Summary/styles.js +5 -2
  268. package/node/components/Fab/styles.js +12 -3
  269. package/node/components/InfiniteDataList/styles.js +7 -4
  270. package/node/components/InfiniteTreeList/InfiniteTreeList.d.ts +18 -0
  271. package/node/components/InfiniteTreeList/InfiniteTreeList.js +24 -17
  272. package/node/components/InfiniteTreeList/InfiniteTreeListActions/InfiniteTreeListActions.d.ts +9 -0
  273. package/node/components/InfiniteTreeList/InfiniteTreeListActions/InfiniteTreeListActions.js +9 -0
  274. package/node/components/InfiniteTreeList/InfiniteTreeListActions/types.d.ts +5 -0
  275. package/node/components/InfiniteTreeList/InfiniteTreeListActions/useLogic/useLogic.js +5 -6
  276. package/node/components/InfiniteTreeList/InfiniteTreeListContext/InfiniteTreeListContext.d.ts +81 -0
  277. package/node/components/InfiniteTreeList/InfiniteTreeListContext/InfiniteTreeListContext.js +21 -0
  278. package/node/components/InfiniteTreeList/InfiniteTreeListContext/InfiniteTreeListContextProvider/InfiniteTreeListContextProvider.d.ts +3 -2
  279. package/node/components/InfiniteTreeList/InfiniteTreeListContext/InfiniteTreeListContextProvider/InfiniteTreeListContextProvider.js +69 -13
  280. package/node/components/InfiniteTreeList/InfiniteTreeListItem/ErrorPlaceholder/ErrorPlaceholder.d.ts +6 -0
  281. package/node/components/InfiniteTreeList/InfiniteTreeListItem/ErrorPlaceholder/ErrorPlaceholder.js +12 -0
  282. package/node/components/InfiniteTreeList/InfiniteTreeListItem/ErrorPlaceholder/constants.d.ts +1 -0
  283. package/node/components/InfiniteTreeList/InfiniteTreeListItem/ErrorPlaceholder/constants.js +4 -0
  284. package/node/components/InfiniteTreeList/InfiniteTreeListItem/ErrorPlaceholder/index.d.ts +1 -0
  285. package/node/components/InfiniteTreeList/InfiniteTreeListItem/ErrorPlaceholder/index.js +5 -0
  286. package/node/components/InfiniteTreeList/InfiniteTreeListItem/ErrorPlaceholder/styles.js +11 -0
  287. package/node/components/InfiniteTreeList/InfiniteTreeListItem/InfiniteTreeListItem.js +28 -6
  288. package/node/components/InfiniteTreeList/InfiniteTreeListItem/TreeListItemContext/TreeListItemContext.d.ts +19 -0
  289. package/node/components/InfiniteTreeList/InfiniteTreeListItem/TreeListItemContext/TreeListItemContext.js +4 -0
  290. package/node/components/InfiniteTreeList/InfiniteTreeListItem/TreeListItemContext/TreeListItemContextProvider/TreeListItemContextProvider.d.ts +4 -0
  291. package/node/components/InfiniteTreeList/InfiniteTreeListItem/TreeListItemContext/TreeListItemContextProvider/TreeListItemContextProvider.js +13 -8
  292. package/node/components/InfiniteTreeList/InfiniteTreeListItem/constants.d.ts +6 -0
  293. package/node/components/InfiniteTreeList/InfiniteTreeListItem/constants.js +10 -0
  294. package/node/components/InfiniteTreeList/InfiniteTreeListItem/styles.d.ts +4 -4
  295. package/node/components/InfiniteTreeList/InfiniteTreeListItem/styles.js +33 -7
  296. package/node/components/InfiniteTreeList/InfiniteTreeListItem/types.d.ts +20 -3
  297. package/node/components/InfiniteTreeList/InfiniteTreeListItem/useLogic/useLogic.d.ts +7 -1
  298. package/node/components/InfiniteTreeList/InfiniteTreeListItem/useLogic/useLogic.js +56 -4
  299. package/node/components/InfiniteTreeList/{EndData → ListFooter/EndData}/EndData.js +1 -1
  300. package/node/components/InfiniteTreeList/{ErrorMessage → ListFooter/ErrorMessage}/ErrorMessage.js +2 -2
  301. package/node/components/InfiniteTreeList/ListFooter/ErrorMessage/styles.d.ts +5 -0
  302. package/node/components/InfiniteTreeList/{ErrorMessage → ListFooter/ErrorMessage}/styles.js +1 -1
  303. package/node/components/InfiniteTreeList/ListFooter/ListFooter.d.ts +10 -0
  304. package/node/components/InfiniteTreeList/ListFooter/ListFooter.js +29 -0
  305. package/node/components/InfiniteTreeList/ListFooter/index.d.ts +2 -0
  306. package/node/components/InfiniteTreeList/ListFooter/index.js +17 -0
  307. package/node/components/InfiniteTreeList/{styles.js → ListFooter/styles.js} +1 -1
  308. package/node/components/InfiniteTreeList/ListFooter/types.d.ts +22 -0
  309. package/node/components/InfiniteTreeList/ListFooter/types.js +2 -0
  310. package/node/components/InfiniteTreeList/OnTopButton/OnTopButton.d.ts +8 -2
  311. package/node/components/InfiniteTreeList/OnTopButton/OnTopButton.js +6 -5
  312. package/node/components/InfiniteTreeList/OnTopButton/styles.d.ts +4 -0
  313. package/node/components/InfiniteTreeList/OnTopButton/styles.js +13 -0
  314. package/node/components/InfiniteTreeList/ParentItems/Item/CustomParentWrapper/CustomParentWrapper.d.ts +23 -0
  315. package/node/components/InfiniteTreeList/ParentItems/Item/CustomParentWrapper/CustomParentWrapper.js +15 -0
  316. package/node/components/InfiniteTreeList/ParentItems/Item/CustomParentWrapper/index.d.ts +1 -0
  317. package/node/components/InfiniteTreeList/ParentItems/Item/CustomParentWrapper/index.js +17 -0
  318. package/node/components/InfiniteTreeList/ParentItems/Item/Item.d.ts +10 -0
  319. package/node/components/InfiniteTreeList/ParentItems/Item/Item.js +25 -0
  320. package/node/components/InfiniteTreeList/ParentItems/Item/index.d.ts +2 -0
  321. package/node/components/InfiniteTreeList/ParentItems/Item/index.js +18 -0
  322. package/node/components/InfiniteTreeList/ParentItems/Item/types.d.ts +8 -0
  323. package/node/components/InfiniteTreeList/ParentItems/Item/types.js +2 -0
  324. package/node/components/InfiniteTreeList/ParentItems/Item/useLogic/index.d.ts +1 -0
  325. package/node/components/InfiniteTreeList/ParentItems/Item/useLogic/index.js +17 -0
  326. package/node/components/InfiniteTreeList/ParentItems/Item/useLogic/useLogic.d.ts +12 -0
  327. package/node/components/InfiniteTreeList/ParentItems/Item/useLogic/useLogic.js +16 -0
  328. package/node/components/InfiniteTreeList/ParentItems/ParentItems.d.ts +11 -0
  329. package/node/components/InfiniteTreeList/ParentItems/ParentItems.js +15 -0
  330. package/node/components/InfiniteTreeList/ParentItems/index.d.ts +3 -0
  331. package/node/components/InfiniteTreeList/ParentItems/index.js +19 -0
  332. package/node/components/InfiniteTreeList/ParentItems/types.d.ts +8 -0
  333. package/node/components/InfiniteTreeList/ParentItems/types.js +2 -0
  334. package/node/components/InfiniteTreeList/TreeItem/ChildrenPlaceholder/ChildrenPlaceholder.d.ts +9 -0
  335. package/node/components/InfiniteTreeList/TreeItem/ChildrenPlaceholder/ChildrenPlaceholder.js +26 -0
  336. package/node/components/InfiniteTreeList/TreeItem/ChildrenPlaceholder/NoDataRow/NoDataRow.d.ts +1 -0
  337. package/node/components/InfiniteTreeList/TreeItem/ChildrenPlaceholder/NoDataRow/NoDataRow.js +9 -0
  338. package/node/components/InfiniteTreeList/TreeItem/ChildrenPlaceholder/NoDataRow/index.d.ts +1 -0
  339. package/node/components/InfiniteTreeList/TreeItem/ChildrenPlaceholder/NoDataRow/index.js +17 -0
  340. package/node/components/InfiniteTreeList/TreeItem/ChildrenPlaceholder/index.d.ts +1 -0
  341. package/node/components/InfiniteTreeList/TreeItem/ChildrenPlaceholder/index.js +17 -0
  342. package/node/components/InfiniteTreeList/TreeItem/CustomItemWrapper/CustomItemWrapper.d.ts +20 -0
  343. package/node/components/InfiniteTreeList/TreeItem/CustomItemWrapper/CustomItemWrapper.js +13 -0
  344. package/node/components/InfiniteTreeList/TreeItem/CustomItemWrapper/index.d.ts +1 -0
  345. package/node/components/InfiniteTreeList/TreeItem/CustomItemWrapper/index.js +17 -0
  346. package/node/components/InfiniteTreeList/TreeItem/ParentSlot/ParentSlot.d.ts +5 -0
  347. package/node/components/InfiniteTreeList/TreeItem/ParentSlot/ParentSlot.js +42 -0
  348. package/node/components/InfiniteTreeList/TreeItem/ParentSlot/index.d.ts +2 -0
  349. package/node/components/InfiniteTreeList/TreeItem/ParentSlot/index.js +18 -0
  350. package/node/components/InfiniteTreeList/TreeItem/ParentSlot/styles.d.ts +9 -0
  351. package/node/components/InfiniteTreeList/TreeItem/ParentSlot/styles.js +11 -0
  352. package/node/components/InfiniteTreeList/TreeItem/ParentSlot/types.d.ts +6 -0
  353. package/node/components/InfiniteTreeList/TreeItem/ParentSlot/types.js +2 -0
  354. package/node/components/InfiniteTreeList/TreeItem/TreeItem.d.ts +5 -2
  355. package/node/components/InfiniteTreeList/TreeItem/TreeItem.js +31 -4
  356. package/node/components/InfiniteTreeList/TreeItem/constants.d.ts +3 -0
  357. package/node/components/InfiniteTreeList/TreeItem/constants.js +3 -1
  358. package/node/components/InfiniteTreeList/TreeItem/styles.d.ts +0 -3
  359. package/node/components/InfiniteTreeList/TreeItem/styles.js +23 -8
  360. package/node/components/InfiniteTreeList/TreeItem/types.d.ts +4 -9
  361. package/node/components/InfiniteTreeList/TreeItem/useLogic/useLogic.d.ts +29 -9
  362. package/node/components/InfiniteTreeList/TreeItem/useLogic/useLogic.js +60 -18
  363. package/node/components/InfiniteTreeList/constants.d.ts +14 -2
  364. package/node/components/InfiniteTreeList/constants.js +15 -3
  365. package/node/components/InfiniteTreeList/hooks/index.d.ts +5 -0
  366. package/node/components/InfiniteTreeList/hooks/index.js +21 -0
  367. package/node/components/InfiniteTreeList/hooks/useChildrenState/index.d.ts +2 -0
  368. package/node/components/InfiniteTreeList/hooks/useChildrenState/index.js +18 -0
  369. package/node/components/InfiniteTreeList/hooks/useChildrenState/types.d.ts +43 -0
  370. package/node/components/InfiniteTreeList/hooks/useChildrenState/types.js +2 -0
  371. package/node/components/InfiniteTreeList/hooks/useChildrenState/useChildrenState.d.ts +20 -0
  372. package/node/components/InfiniteTreeList/hooks/useChildrenState/useChildrenState.js +119 -0
  373. package/node/components/InfiniteTreeList/hooks/useEnterAnimation/index.d.ts +2 -0
  374. package/node/components/InfiniteTreeList/hooks/useEnterAnimation/index.js +18 -0
  375. package/node/components/InfiniteTreeList/hooks/useEnterAnimation/types.d.ts +29 -0
  376. package/node/components/InfiniteTreeList/hooks/useEnterAnimation/types.js +2 -0
  377. package/node/components/InfiniteTreeList/hooks/useEnterAnimation/useEnterAnimation.d.ts +6 -0
  378. package/node/components/InfiniteTreeList/hooks/useEnterAnimation/useEnterAnimation.js +39 -0
  379. package/node/components/InfiniteTreeList/hooks/useExpandNotifier/index.d.ts +1 -0
  380. package/node/components/InfiniteTreeList/hooks/useExpandNotifier/index.js +17 -0
  381. package/node/components/InfiniteTreeList/hooks/useExpandNotifier/useExpandNotifier.d.ts +8 -0
  382. package/node/components/InfiniteTreeList/hooks/useExpandNotifier/useExpandNotifier.js +23 -0
  383. package/node/components/InfiniteTreeList/hooks/useFlatTree/index.d.ts +2 -0
  384. package/node/components/InfiniteTreeList/hooks/useFlatTree/index.js +18 -0
  385. package/node/components/InfiniteTreeList/hooks/useFlatTree/types.d.ts +20 -0
  386. package/node/components/InfiniteTreeList/hooks/useFlatTree/types.js +2 -0
  387. package/node/components/InfiniteTreeList/hooks/useFlatTree/useFlatTree.d.ts +15 -0
  388. package/node/components/InfiniteTreeList/hooks/useFlatTree/useFlatTree.js +92 -0
  389. package/node/components/InfiniteTreeList/hooks/useListScroll/index.d.ts +2 -0
  390. package/node/components/InfiniteTreeList/hooks/useListScroll/index.js +18 -0
  391. package/node/components/InfiniteTreeList/hooks/useListScroll/types.d.ts +25 -0
  392. package/node/components/InfiniteTreeList/hooks/useListScroll/types.js +2 -0
  393. package/node/components/InfiniteTreeList/hooks/useListScroll/useListScroll.d.ts +29 -0
  394. package/node/components/InfiniteTreeList/hooks/useListScroll/useListScroll.js +63 -0
  395. package/node/components/InfiniteTreeList/index.d.ts +1 -1
  396. package/node/components/InfiniteTreeList/public.d.ts +1 -1
  397. package/node/components/InfiniteTreeList/types.d.ts +83 -17
  398. package/node/components/InfiniteTreeList/useLogic/useLogic.d.ts +22 -12
  399. package/node/components/InfiniteTreeList/useLogic/useLogic.js +64 -69
  400. package/node/components/InfiniteTreeList/utils/checkHasSkeletonPlaceholders/checkHasSkeletonPlaceholders.d.ts +5 -0
  401. package/node/components/InfiniteTreeList/utils/checkHasSkeletonPlaceholders/checkHasSkeletonPlaceholders.js +10 -0
  402. package/node/components/InfiniteTreeList/utils/checkHasSkeletonPlaceholders/index.d.ts +1 -0
  403. package/node/components/InfiniteTreeList/utils/checkHasSkeletonPlaceholders/index.js +17 -0
  404. package/node/components/InfiniteTreeList/utils/checkIsChildrenPlaceholder/checkIsChildrenPlaceholder.d.ts +5 -0
  405. package/node/components/InfiniteTreeList/utils/checkIsChildrenPlaceholder/checkIsChildrenPlaceholder.js +8 -0
  406. package/node/components/InfiniteTreeList/utils/checkIsChildrenPlaceholder/index.d.ts +1 -0
  407. package/node/components/InfiniteTreeList/utils/checkIsChildrenPlaceholder/index.js +17 -0
  408. package/node/components/InfiniteTreeList/utils/checkIsChildrenPlaceholderOf/checkIsChildrenPlaceholderOf.d.ts +5 -0
  409. package/node/components/InfiniteTreeList/utils/checkIsChildrenPlaceholderOf/checkIsChildrenPlaceholderOf.js +9 -0
  410. package/node/components/InfiniteTreeList/utils/checkIsChildrenPlaceholderOf/index.d.ts +1 -0
  411. package/node/components/InfiniteTreeList/utils/checkIsChildrenPlaceholderOf/index.js +17 -0
  412. package/node/components/InfiniteTreeList/utils/checkIsDirectChild/checkIsDirectChild.d.ts +6 -0
  413. package/node/components/InfiniteTreeList/utils/checkIsDirectChild/checkIsDirectChild.js +10 -0
  414. package/node/components/InfiniteTreeList/utils/checkIsDirectChild/index.d.ts +1 -0
  415. package/node/components/InfiniteTreeList/utils/checkIsDirectChild/index.js +17 -0
  416. package/node/components/InfiniteTreeList/utils/checkIsNoDataChildren/checkIsNoDataChildren.d.ts +12 -0
  417. package/node/components/InfiniteTreeList/utils/checkIsNoDataChildren/checkIsNoDataChildren.js +18 -0
  418. package/node/components/InfiniteTreeList/utils/checkIsNoDataChildren/index.d.ts +1 -0
  419. package/node/components/InfiniteTreeList/utils/checkIsNoDataChildren/index.js +17 -0
  420. package/node/components/InfiniteTreeList/utils/checkIsSameChildren/checkIsSameChildren.d.ts +5 -0
  421. package/node/components/InfiniteTreeList/utils/checkIsSameChildren/checkIsSameChildren.js +20 -0
  422. package/node/components/InfiniteTreeList/utils/checkIsSameChildren/index.d.ts +1 -0
  423. package/node/components/InfiniteTreeList/utils/checkIsSameChildren/index.js +17 -0
  424. package/node/components/InfiniteTreeList/utils/countDirectChildren/countDirectChildren.d.ts +5 -0
  425. package/node/components/InfiniteTreeList/utils/countDirectChildren/countDirectChildren.js +9 -0
  426. package/node/components/InfiniteTreeList/utils/countDirectChildren/index.d.ts +1 -0
  427. package/node/components/InfiniteTreeList/utils/countDirectChildren/index.js +17 -0
  428. package/node/components/InfiniteTreeList/utils/createParentSlots/createParentSlots.d.ts +24 -0
  429. package/node/components/InfiniteTreeList/utils/createParentSlots/createParentSlots.js +39 -0
  430. package/node/components/InfiniteTreeList/utils/createParentSlots/index.d.ts +1 -0
  431. package/node/components/InfiniteTreeList/utils/createParentSlots/index.js +17 -0
  432. package/node/components/InfiniteTreeList/utils/createTailRegistry/createTailRegistry.d.ts +21 -0
  433. package/node/components/InfiniteTreeList/utils/createTailRegistry/createTailRegistry.js +44 -0
  434. package/node/components/InfiniteTreeList/utils/createTailRegistry/index.d.ts +1 -0
  435. package/node/components/InfiniteTreeList/utils/createTailRegistry/index.js +5 -0
  436. package/node/components/InfiniteTreeList/utils/flattenChildren/flattenChildren.d.ts +5 -0
  437. package/node/components/InfiniteTreeList/utils/flattenChildren/flattenChildren.js +9 -0
  438. package/node/components/InfiniteTreeList/utils/flattenChildren/index.d.ts +1 -0
  439. package/node/components/InfiniteTreeList/utils/flattenChildren/index.js +17 -0
  440. package/node/components/InfiniteTreeList/utils/flattenTree/flattenTree.d.ts +6 -0
  441. package/node/components/InfiniteTreeList/{useLogic/utils → utils}/flattenTree/flattenTree.js +9 -4
  442. package/node/components/InfiniteTreeList/utils/getEnteringChildren/getEnteringChildren.d.ts +17 -0
  443. package/node/components/InfiniteTreeList/utils/getEnteringChildren/getEnteringChildren.js +18 -0
  444. package/node/components/InfiniteTreeList/utils/getEnteringChildren/index.d.ts +1 -0
  445. package/node/components/InfiniteTreeList/utils/getEnteringChildren/index.js +17 -0
  446. package/node/components/InfiniteTreeList/utils/getIdsToKeep/getIdsToKeep.d.ts +10 -0
  447. package/node/components/InfiniteTreeList/utils/getIdsToKeep/getIdsToKeep.js +31 -0
  448. package/node/components/InfiniteTreeList/utils/getIdsToKeep/index.d.ts +1 -0
  449. package/node/components/InfiniteTreeList/utils/getIdsToKeep/index.js +17 -0
  450. package/node/components/InfiniteTreeList/{useLogic/utils → utils}/getInitialExpandedIds/getInitialExpandedIds.d.ts +4 -2
  451. package/node/components/InfiniteTreeList/{useLogic/utils → utils}/getInitialExpandedIds/getInitialExpandedIds.js +5 -4
  452. package/node/components/InfiniteTreeList/utils/getNestedItems/getNestedItems.d.ts +6 -0
  453. package/node/components/InfiniteTreeList/utils/getNestedItems/getNestedItems.js +22 -0
  454. package/node/components/InfiniteTreeList/utils/getNestedItems/index.d.ts +1 -0
  455. package/node/components/InfiniteTreeList/{useLogic/utils/getDescendants → utils/getNestedItems}/index.js +1 -1
  456. package/node/components/InfiniteTreeList/utils/index.d.ts +20 -0
  457. package/node/components/InfiniteTreeList/utils/index.js +36 -0
  458. package/node/components/InfiniteTreeList/utils/insertChildren/index.d.ts +1 -0
  459. package/node/components/InfiniteTreeList/utils/insertChildren/index.js +17 -0
  460. package/node/components/InfiniteTreeList/utils/insertChildren/insertChildren.d.ts +5 -0
  461. package/node/components/InfiniteTreeList/utils/insertChildren/insertChildren.js +45 -0
  462. package/node/components/InfiniteTreeList/utils/removeChildren/index.d.ts +1 -0
  463. package/node/components/InfiniteTreeList/utils/removeChildren/index.js +17 -0
  464. package/node/components/InfiniteTreeList/utils/removeChildren/removeChildren.d.ts +5 -0
  465. package/node/components/InfiniteTreeList/utils/removeChildren/removeChildren.js +16 -0
  466. package/node/components/InfiniteTreeList/utils/sortCollapsed/sortCollapsed.d.ts +5 -0
  467. package/node/components/InfiniteTreeList/{useLogic/utils → utils}/sortCollapsed/sortCollapsed.js +1 -6
  468. package/node/components/InfiniteTreeList/utils/startRemoveAnimation/index.d.ts +1 -0
  469. package/node/components/InfiniteTreeList/utils/startRemoveAnimation/index.js +17 -0
  470. package/node/components/InfiniteTreeList/utils/startRemoveAnimation/startRemoveAnimation.d.ts +1 -0
  471. package/node/components/InfiniteTreeList/utils/startRemoveAnimation/startRemoveAnimation.js +9 -0
  472. package/node/components/InfiniteTreeList/utils/syncChildrenPlaceholders/index.d.ts +1 -0
  473. package/node/components/InfiniteTreeList/utils/syncChildrenPlaceholders/index.js +17 -0
  474. package/node/components/InfiniteTreeList/utils/syncChildrenPlaceholders/syncChildrenPlaceholders.d.ts +11 -0
  475. package/node/components/InfiniteTreeList/utils/syncChildrenPlaceholders/syncChildrenPlaceholders.js +104 -0
  476. package/node/components/InputGroup/styles.js +8 -5
  477. package/node/components/JsonViewer/JsonNode/styles.js +5 -2
  478. package/node/components/Link/styles.js +13 -8
  479. package/node/components/ListItem/styles.js +10 -7
  480. package/node/components/MenuOrganization/OrganizationButton/styles.js +5 -6
  481. package/node/components/NavMenu/Item/ItemButton/styles.js +16 -9
  482. package/node/components/NewStepper/Step/styles.js +68 -65
  483. package/node/components/Notification/NotificationStackContainer/styles.js +57 -54
  484. package/node/components/PageAsideNavigation/PageAsideNavigationItem/styles.js +12 -13
  485. package/node/components/PageHeader/MobilePageActions/styles.js +0 -4
  486. package/node/components/Radio/styles.js +20 -17
  487. package/node/components/RadioCard/styles.js +7 -4
  488. package/node/components/StaticCalendar/StaticCalendarGridButton/styles.js +8 -5
  489. package/node/components/Tabs/Tab/styles.js +5 -2
  490. package/node/components/ToggleButton/styles.js +27 -12
  491. package/node/components/Tree/TreeItem/MobileSlidePanel/MobileSlidePanelContent/styles.js +3 -3
  492. package/node/components/Tree/TreeItem/styles.js +44 -31
  493. package/node/components/constants/index.d.ts +1 -0
  494. package/node/components/constants/index.js +1 -0
  495. package/node/components/constants/media.d.ts +8 -0
  496. package/node/components/constants/media.js +11 -0
  497. package/node/components/theme/components/MuiButton.js +46 -23
  498. package/node/components/theme/components/MuiListItemButton.js +10 -2
  499. package/node/components/theme/components/MuiMenuItem.js +5 -2
  500. package/node/components/theme/components/MuiOutlinedInput.js +15 -12
  501. package/node/components/theme/components/MuiSwitch.js +14 -9
  502. package/node/components/theme/components/MuiTableRow.js +11 -3
  503. package/package.json +1 -1
  504. package/components/InfiniteTreeList/useLogic/utils/flattenTree/flattenTree.d.ts +0 -5
  505. package/components/InfiniteTreeList/useLogic/utils/getDescendants/getDescendants.d.ts +0 -10
  506. package/components/InfiniteTreeList/useLogic/utils/getDescendants/getDescendants.js +0 -22
  507. package/components/InfiniteTreeList/useLogic/utils/getDescendants/index.d.ts +0 -1
  508. package/components/InfiniteTreeList/useLogic/utils/getDescendants/index.js +0 -1
  509. package/components/InfiniteTreeList/useLogic/utils/index.d.ts +0 -4
  510. package/components/InfiniteTreeList/useLogic/utils/index.js +0 -4
  511. package/components/InfiniteTreeList/useLogic/utils/sortCollapsed/sortCollapsed.d.ts +0 -10
  512. package/node/components/InfiniteTreeList/useLogic/utils/flattenTree/flattenTree.d.ts +0 -5
  513. package/node/components/InfiniteTreeList/useLogic/utils/getDescendants/getDescendants.d.ts +0 -10
  514. package/node/components/InfiniteTreeList/useLogic/utils/getDescendants/getDescendants.js +0 -26
  515. package/node/components/InfiniteTreeList/useLogic/utils/getDescendants/index.d.ts +0 -1
  516. package/node/components/InfiniteTreeList/useLogic/utils/index.d.ts +0 -4
  517. package/node/components/InfiniteTreeList/useLogic/utils/index.js +0 -20
  518. package/node/components/InfiniteTreeList/useLogic/utils/sortCollapsed/sortCollapsed.d.ts +0 -10
  519. /package/components/InfiniteTreeList/{EndData → ListFooter/EndData}/EndData.d.ts +0 -0
  520. /package/components/InfiniteTreeList/{EndData → ListFooter/EndData}/constants.d.ts +0 -0
  521. /package/components/InfiniteTreeList/{EndData → ListFooter/EndData}/constants.js +0 -0
  522. /package/components/InfiniteTreeList/{EndData → ListFooter/EndData}/index.d.ts +0 -0
  523. /package/components/InfiniteTreeList/{EndData → ListFooter/EndData}/index.js +0 -0
  524. /package/components/InfiniteTreeList/{ErrorMessage → ListFooter/ErrorMessage}/ErrorMessage.d.ts +0 -0
  525. /package/components/InfiniteTreeList/{ErrorMessage → ListFooter/ErrorMessage}/constants.d.ts +0 -0
  526. /package/components/InfiniteTreeList/{ErrorMessage → ListFooter/ErrorMessage}/constants.js +0 -0
  527. /package/components/InfiniteTreeList/{ErrorMessage → ListFooter/ErrorMessage}/index.d.ts +0 -0
  528. /package/components/InfiniteTreeList/{ErrorMessage → ListFooter/ErrorMessage}/index.js +0 -0
  529. /package/components/InfiniteTreeList/{useLogic/utils → utils}/flattenTree/index.d.ts +0 -0
  530. /package/components/InfiniteTreeList/{useLogic/utils → utils}/flattenTree/index.js +0 -0
  531. /package/components/InfiniteTreeList/{useLogic/utils → utils}/getInitialExpandedIds/index.d.ts +0 -0
  532. /package/components/InfiniteTreeList/{useLogic/utils → utils}/getInitialExpandedIds/index.js +0 -0
  533. /package/components/InfiniteTreeList/{useLogic/utils → utils}/sortCollapsed/index.d.ts +0 -0
  534. /package/components/InfiniteTreeList/{useLogic/utils → utils}/sortCollapsed/index.js +0 -0
  535. /package/node/components/InfiniteTreeList/{ErrorMessage → InfiniteTreeListItem/ErrorPlaceholder}/styles.d.ts +0 -0
  536. /package/node/components/InfiniteTreeList/{EndData → ListFooter/EndData}/EndData.d.ts +0 -0
  537. /package/node/components/InfiniteTreeList/{EndData → ListFooter/EndData}/constants.d.ts +0 -0
  538. /package/node/components/InfiniteTreeList/{EndData → ListFooter/EndData}/constants.js +0 -0
  539. /package/node/components/InfiniteTreeList/{EndData → ListFooter/EndData}/index.d.ts +0 -0
  540. /package/node/components/InfiniteTreeList/{EndData → ListFooter/EndData}/index.js +0 -0
  541. /package/node/components/InfiniteTreeList/{ErrorMessage → ListFooter/ErrorMessage}/ErrorMessage.d.ts +0 -0
  542. /package/node/components/InfiniteTreeList/{ErrorMessage → ListFooter/ErrorMessage}/constants.d.ts +0 -0
  543. /package/node/components/InfiniteTreeList/{ErrorMessage → ListFooter/ErrorMessage}/constants.js +0 -0
  544. /package/node/components/InfiniteTreeList/{ErrorMessage → ListFooter/ErrorMessage}/index.d.ts +0 -0
  545. /package/node/components/InfiniteTreeList/{ErrorMessage → ListFooter/ErrorMessage}/index.js +0 -0
  546. /package/node/components/InfiniteTreeList/{styles.d.ts → ListFooter/styles.d.ts} +0 -0
  547. /package/node/components/InfiniteTreeList/{useLogic/utils → utils}/flattenTree/index.d.ts +0 -0
  548. /package/node/components/InfiniteTreeList/{useLogic/utils → utils}/flattenTree/index.js +0 -0
  549. /package/node/components/InfiniteTreeList/{useLogic/utils → utils}/getInitialExpandedIds/index.d.ts +0 -0
  550. /package/node/components/InfiniteTreeList/{useLogic/utils → utils}/getInitialExpandedIds/index.js +0 -0
  551. /package/node/components/InfiniteTreeList/{useLogic/utils → utils}/sortCollapsed/index.d.ts +0 -0
  552. /package/node/components/InfiniteTreeList/{useLogic/utils → utils}/sortCollapsed/index.js +0 -0
@@ -0,0 +1,6 @@
1
+ export type ParentSlotProps = {
2
+ /**
3
+ * Id узла, чей контейнер занимает строка
4
+ */
5
+ itemId: string;
6
+ };
@@ -1,3 +1,6 @@
1
- import type { InfiniteTreeListData } from '../types';
2
1
  import { type TreeItemProps } from './types';
3
- export declare const TreeItem: <TData extends InfiniteTreeListData<TData>>(props: TreeItemProps<TData>) => import("react/jsx-runtime").JSX.Element;
2
+ /**
3
+ * Строка виртуализации: обёртка, которую `Virtuoso` рендерит вокруг элемента.
4
+ * Ставит контекст строки, css-переменные уровня и каскада, classname анимации
5
+ */
6
+ export declare const TreeItem: ({ children, ...props }: TreeItemProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,8 +1,35 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { cva } from '../../utils/cva';
3
+ import { infiniteTreeListClassnames } from '../constants';
4
+ import { TreeListItemContextProvider } from '../InfiniteTreeListItem';
5
+ import { ChildrenPlaceholder } from './ChildrenPlaceholder';
6
+ import { CustomItemWrapper } from './CustomItemWrapper';
7
+ import { ParentSlot } from './ParentSlot';
2
8
  import { Wrapper } from './styles';
3
9
  import { useLogic } from './useLogic';
4
- export const TreeItem = (props) => {
5
- const { item, renderItem, classname, onAnimationEnd } = useLogic(props);
6
- const { nodeId, level, siblingIndex } = item.meta;
7
- return (_jsx(Wrapper, { id: nodeId, className: classname, "$level": level, "$siblingIndex": siblingIndex, onAnimationEnd: onAnimationEnd, children: renderItem(item) }));
10
+ const treeItemCva = cva(infiniteTreeListClassnames.row, {
11
+ variants: {
12
+ isSpinner: {
13
+ true: infiniteTreeListClassnames.rowSpinner,
14
+ },
15
+ hasAddAnimation: {
16
+ true: infiniteTreeListClassnames.rowAddAnimation,
17
+ },
18
+ },
19
+ });
20
+ /**
21
+ * Строка виртуализации: обёртка, которую `Virtuoso` рендерит вокруг элемента.
22
+ * Ставит контекст строки, css-переменные уровня и каскада, classname анимации
23
+ */
24
+ export const TreeItem = ({ children, ...props }) => {
25
+ const { item, renderItem, onToggle, memoizedItemProps, cssVars, isSpinner, hasAddAnimation, } = useLogic(props);
26
+ const { nodeId, isChildrenAsync } = item.meta;
27
+ // Строку узла с подгружаемыми дочерними элементами рисует не список,
28
+ // а постоянный слой: сюда она приезжает готовым DOM-узлом. Иначе store,
29
+ // заведённый потребителем внутри renderParent, умирал бы на каждом уходе
30
+ // строки со скролла
31
+ if (isChildrenAsync && !item.placeholderKind) {
32
+ return (_jsx("div", { ...memoizedItemProps, children: _jsx(ParentSlot, { itemId: item.id }) }));
33
+ }
34
+ return (_jsx("div", { ...memoizedItemProps, children: _jsx(TreeListItemContextProvider, { item: item, onToggle: onToggle, children: _jsx(Wrapper, { id: nodeId, className: treeItemCva({ isSpinner, hasAddAnimation }), style: cssVars, children: item.placeholderKind ? (_jsx(ChildrenPlaceholder, { item: item })) : (_jsx(CustomItemWrapper, { item: item, renderItem: renderItem })) }) }) }));
8
35
  };
@@ -1 +1,4 @@
1
+ /**
2
+ * Задержка каскадной анимации между соседними строками, мс
3
+ */
1
4
  export declare const ANIMATION_DELAY = 30;
@@ -1,2 +1,4 @@
1
- // Задержка для каскадной анимации элементов в ms
1
+ /**
2
+ * Задержка каскадной анимации между соседними строками, мс
3
+ */
2
4
  export const ANIMATION_DELAY = 30;
@@ -2,7 +2,4 @@
2
2
  export declare const Wrapper: import("../../styled").StyledComponent<{
3
3
  theme?: import("@emotion/react").Theme | undefined;
4
4
  as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
5
- } & {
6
- $level: number;
7
- $siblingIndex?: number | undefined;
8
5
  }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
@@ -3,6 +3,9 @@ import { tooltipClassnames } from '../../Tooltip';
3
3
  import { infiniteTreeListClassnames } from '../constants';
4
4
  import { ANIMATION_DELAY } from './constants';
5
5
  export const Wrapper = styled.div `
6
+ --level: 0;
7
+ --sibling-index: 0;
8
+
6
9
  @keyframes slide-in-from-left {
7
10
  0% {
8
11
  transform: translateX(-16px);
@@ -39,21 +42,33 @@ export const Wrapper = styled.div `
39
42
 
40
43
  min-height: 60px;
41
44
  margin-top: ${({ theme }) => theme.spacing(1)};
42
- margin-left: ${({ $level }) => `calc(${$level} * 20px)`};
45
+ margin-left: calc(var(--level) * ${({ theme }) => theme.spacing(5)});
43
46
 
44
47
  border: 1px solid ${({ theme }) => theme.palette.components.border.default};
45
48
  border-radius: ${({ theme }) => theme.shape.medium};
46
-
47
- &.${infiniteTreeListClassnames.addAnimation} {
48
- animation: slide-in-from-left ${({ theme }) => theme.transitions.duration.short}ms ease-out;
49
+
50
+ &.${infiniteTreeListClassnames.rowAddAnimation} {
51
+ animation: slide-in-from-left
52
+ ${({ theme }) => theme.transitions.duration.short}ms ease-out;
49
53
  animation-fill-mode: both;
50
- animation-delay: ${({ $siblingIndex = 0 }) => $siblingIndex * ANIMATION_DELAY}ms;
54
+ animation-delay: calc(var(--sibling-index) * ${ANIMATION_DELAY}ms);
51
55
  }
52
56
 
53
- &.${infiniteTreeListClassnames.removeAnimation} {
54
- animation: slide-out-to-left ${({ theme }) => theme.transitions.duration.shorter}ms ease-in forwards;
57
+ &.${infiniteTreeListClassnames.rowRemoveAnimation} {
58
+ animation: slide-out-to-left
59
+ ${({ theme }) => theme.transitions.duration.shorter}ms ease-in forwards;
55
60
  animation-fill-mode: both;
56
- animation-delay: ${({ $siblingIndex = 0 }) => $siblingIndex * ANIMATION_DELAY}ms;
61
+ animation-delay: calc(var(--sibling-index) * ${ANIMATION_DELAY}ms);
62
+ }
63
+
64
+ &.${infiniteTreeListClassnames.rowSpinner} {
65
+ justify-content: center;
66
+
67
+ width: 100%;
68
+ min-height: 64px;
69
+
70
+ background: transparent;
71
+ border: none;
57
72
  }
58
73
 
59
74
  & > .${tooltipClassnames.contentWrapper} {
@@ -1,9 +1,4 @@
1
- import type { ReactNode, RefObject } from 'react';
2
- import { type FlattenTree, type InfiniteTreeItemMeta, type InfiniteTreeListData } from '../types';
3
- export type TreeItemProps<TData extends InfiniteTreeListData<TData>> = {
4
- item: FlattenTree<TData>;
5
- renderItem: (item: TData & {
6
- meta: InfiniteTreeItemMeta;
7
- }) => ReactNode;
8
- recentlyExpandedIds: RefObject<Set<string>>;
9
- };
1
+ import type { ContextProp, ItemProps as VirtuosoItemProps } from 'react-virtuoso';
2
+ import { type ListFooterContext } from '../ListFooter';
3
+ import type { FlattenTree, InfiniteTreeListData } from '../types';
4
+ export type TreeItemProps = VirtuosoItemProps<FlattenTree<InfiniteTreeListData>> & ContextProp<ListFooterContext>;
@@ -1,11 +1,31 @@
1
- /// <reference types="react" />
2
- import type { InfiniteTreeListData } from '../../types';
1
+ import { type CSSProperties } from 'react';
3
2
  import { type TreeItemProps } from '../types';
4
- export declare const useLogic: <TData extends InfiniteTreeListData<TData>>({ item, renderItem, recentlyExpandedIds, }: TreeItemProps<TData>) => {
5
- item: import("../../types").FlattenTree<TData>;
6
- renderItem: (item: TData & {
7
- meta: import("../../types").InfiniteTreeItemMeta;
8
- }) => import("react").ReactNode;
9
- classname: string;
10
- onAnimationEnd: () => void;
3
+ type UseLogicParams = Omit<TreeItemProps, 'children'>;
4
+ /**
5
+ * Логика строки виртуализации: регистрирует хвост ветки в реестре, один раз
6
+ * на mount читает метку enter-анимации и считает css-переменные строки.
7
+ *
8
+ * Про хвост: `Virtuoso` виртуализирует плоский список, и его `endReached` —
9
+ * это конец всего списка, то есть корневая пагинация. У вложенной пагинации
10
+ * свой признак конца: последний загруженный дочерний элемент раскрытой
11
+ * ветки. Такая строка пишет себя в `tailRegistry`, а `useListScroll` на смене
12
+ * видимого диапазона зовёт `checkRange` — попал хвост в кадр, ветка просит
13
+ * `onLoadMore(parentId)`. Отдельного элемента-sentinel в разметке для
14
+ * этого нет
15
+ */
16
+ export declare const useLogic: ({ item, context, ...itemProps }: UseLogicParams) => {
17
+ item: import("../../types").FlattenTree<import("../../types").InfiniteTreeListData>;
18
+ renderItem: (item: import("../../types").FlattenTree<import("../../types").InfiniteTreeListData>) => import("react").ReactNode;
19
+ onToggle: (item: import("../../types").InfiniteTreeListData) => void;
20
+ memoizedItemProps: {
21
+ style?: CSSProperties | undefined;
22
+ 'data-index': number;
23
+ 'data-item-group-index'?: number | undefined;
24
+ 'data-item-index': number;
25
+ 'data-known-size': number;
26
+ };
27
+ cssVars: CSSProperties;
28
+ isSpinner: boolean;
29
+ hasAddAnimation: boolean;
11
30
  };
31
+ export {};
@@ -1,24 +1,66 @@
1
- import { useEffect, useMemo } from 'react';
2
- import { infiniteTreeListClassnames } from '../../constants';
3
- export const useLogic = ({ item, renderItem, recentlyExpandedIds, }) => {
4
- const deleteRecentlyExpandedId = () => {
5
- item.meta.parentId &&
6
- recentlyExpandedIds.current?.delete(item.meta.parentId);
7
- };
1
+ // cspell:ignore виртуализирует
2
+ import { useContext, useEffect, useMemo, useRef, } from 'react';
3
+ import { InfiniteTreeListContext } from '../../InfiniteTreeListContext';
4
+ /**
5
+ * Логика строки виртуализации: регистрирует хвост ветки в реестре, один раз
6
+ * на mount читает метку enter-анимации и считает css-переменные строки.
7
+ *
8
+ * Про хвост: `Virtuoso` виртуализирует плоский список, и его `endReached` —
9
+ * это конец всего списка, то есть корневая пагинация. У вложенной пагинации
10
+ * свой признак конца: последний загруженный дочерний элемент раскрытой
11
+ * ветки. Такая строка пишет себя в `tailRegistry`, а `useListScroll` на смене
12
+ * видимого диапазона зовёт `checkRange` — попал хвост в кадр, ветка просит
13
+ * `onLoadMore(parentId)`. Отдельного элемента-sentinel в разметке для
14
+ * этого нет
15
+ */
16
+ export const useLogic = ({ item, context, ...itemProps }) => {
17
+ const { renderItem, onToggle, nodePaginationMap, onLoadMore, enterAnimation, tailRegistry, } = useContext(InfiniteTreeListContext);
18
+ const memoizedItemProps = useMemo(() => itemProps, [itemProps.style]);
19
+ const { parentId, siblingIndex, level } = item.meta;
20
+ const parentPagination = parentId ? nodePaginationMap[parentId] : undefined;
21
+ const isLastChild = parentPagination?.lastChildId === item.id;
22
+ const shouldRegister = Boolean(isLastChild &&
23
+ parentId &&
24
+ !parentPagination?.isEndReached &&
25
+ !parentPagination?.isChildrenLoading &&
26
+ !parentPagination?.isChildrenError);
27
+ // Решение об анимации принимается один раз, на mount строки. Чтение метки
28
+ // не меняет состояние, поэтому отброшенный рендер ничего не ломает
29
+ const enterState = useRef(null);
30
+ if (!enterState.current) {
31
+ enterState.current = enterAnimation.read(item.id);
32
+ }
33
+ const { shouldAnimate, delayIndex } = enterState.current;
34
+ // Метка забирается после коммита: повторный mount строки при скролле
35
+ // виртуализации анимации уже не получит
36
+ useEffect(() => {
37
+ enterAnimation.claim(item.id);
38
+ }, []);
8
39
  useEffect(() => {
40
+ if (!shouldRegister || !parentId) {
41
+ return;
42
+ }
43
+ const registeredParentId = parentId;
44
+ const registeredItemId = item.id;
45
+ tailRegistry.register(registeredParentId, registeredItemId, () => onLoadMore(registeredParentId));
9
46
  return () => {
10
- deleteRecentlyExpandedId();
47
+ tailRegistry.unregister(registeredParentId, registeredItemId);
11
48
  };
12
- }, []);
13
- const onAnimationEnd = () => {
14
- deleteRecentlyExpandedId();
49
+ }, [shouldRegister, parentId, item.id, tailRegistry, onLoadMore]);
50
+ const isSpinner = item.placeholderKind === 'spinner';
51
+ // Уровень вложенности и индекс каскада — динамические значения, поэтому
52
+ // передаются в стили через css vars, а не через styled props
53
+ const cssVars = {
54
+ '--level': level,
55
+ '--sibling-index': delayIndex ?? siblingIndex,
56
+ };
57
+ return {
58
+ item,
59
+ renderItem,
60
+ onToggle,
61
+ memoizedItemProps,
62
+ cssVars,
63
+ isSpinner,
64
+ hasAddAnimation: !isSpinner && shouldAnimate,
15
65
  };
16
- const classname = useMemo(() => {
17
- if (item?.meta.parentId &&
18
- recentlyExpandedIds.current?.has(item?.meta.parentId)) {
19
- return infiniteTreeListClassnames.addAnimation;
20
- }
21
- return '';
22
- }, [item.id]);
23
- return { item, renderItem, classname, onAnimationEnd };
24
66
  };
@@ -1,6 +1,18 @@
1
1
  export declare const VIRTUOSO_CONTAINER_ID = "virtuoso-container";
2
2
  export declare const OVERSCAN = 30;
3
+ /**
4
+ * Окно ожидания mount строки, помеченной для enter-анимации.
5
+ * Virtuoso монтирует видимые дочерние строки в следующем кадре после смены
6
+ * data, поэтому `useLayoutEffect` снимает метку слишком рано
7
+ */
8
+ export declare const ENTER_ANIMATION_MOUNT_WINDOW_MS = 100;
9
+ export declare const CHILDREN_SKELETON_COUNT = 3;
10
+ export declare const CHILDREN_NO_DATA_MSG = "\u041D\u0435\u0442 \u0434\u0430\u043D\u043D\u044B\u0445";
3
11
  export declare const infiniteTreeListClassnames: {
4
- addAnimation: string;
5
- removeAnimation: string;
12
+ row: string;
13
+ rowAddAnimation: string;
14
+ rowRemoveAnimation: string;
15
+ rowSpinner: string;
16
+ scrollToTopButton: string;
17
+ visibleScrollToTopButton: string;
6
18
  };
@@ -1,7 +1,19 @@
1
1
  import { createUIKitClassname } from '../utils/createUIKitClassname';
2
2
  export const VIRTUOSO_CONTAINER_ID = 'virtuoso-container';
3
3
  export const OVERSCAN = 30;
4
+ /**
5
+ * Окно ожидания mount строки, помеченной для enter-анимации.
6
+ * Virtuoso монтирует видимые дочерние строки в следующем кадре после смены
7
+ * data, поэтому `useLayoutEffect` снимает метку слишком рано
8
+ */
9
+ export const ENTER_ANIMATION_MOUNT_WINDOW_MS = 100;
10
+ export const CHILDREN_SKELETON_COUNT = 3;
11
+ export const CHILDREN_NO_DATA_MSG = 'Нет данных';
4
12
  export const infiniteTreeListClassnames = {
5
- addAnimation: createUIKitClassname('infinite-tree-list_add-animation'),
6
- removeAnimation: createUIKitClassname('infinite-tree-list_remove-animation'),
13
+ row: createUIKitClassname('infinite-tree-list__row'),
14
+ rowAddAnimation: createUIKitClassname('infinite-tree-list__row_add-animation'),
15
+ rowRemoveAnimation: createUIKitClassname('infinite-tree-list__row_remove-animation'),
16
+ rowSpinner: createUIKitClassname('infinite-tree-list__row_spinner'),
17
+ scrollToTopButton: createUIKitClassname('infinite-tree-list__scroll-to-top-button'),
18
+ visibleScrollToTopButton: createUIKitClassname('infinite-tree-list__scroll-to-top-button_visible'),
7
19
  };
@@ -0,0 +1,5 @@
1
+ export * from './useChildrenState';
2
+ export * from './useEnterAnimation';
3
+ export * from './useExpandNotifier';
4
+ export * from './useFlatTree';
5
+ export * from './useListScroll';
@@ -0,0 +1,5 @@
1
+ export * from './useChildrenState';
2
+ export * from './useEnterAnimation';
3
+ export * from './useExpandNotifier';
4
+ export * from './useFlatTree';
5
+ export * from './useListScroll';
@@ -0,0 +1,2 @@
1
+ export * from './types';
2
+ export * from './useChildrenState';
@@ -0,0 +1,2 @@
1
+ export * from './types';
2
+ export * from './useChildrenState';
@@ -0,0 +1,43 @@
1
+ import type { RefObject } from 'react';
2
+ import type { FlattenTree, InfiniteTreeListData } from '../../types';
3
+ import type { EnterAnimationResult } from '../useEnterAnimation';
4
+ export type UseChildrenStateParams<TData extends InfiniteTreeListData<TData>> = {
5
+ /**
6
+ * Данные списка
7
+ */
8
+ items: TData[];
9
+ /**
10
+ * Плоский список строк
11
+ */
12
+ flatList: FlattenTree<TData>[];
13
+ /**
14
+ * Список для синхронного чтения
15
+ */
16
+ flatListRef: RefObject<FlattenTree<TData>[]>;
17
+ /**
18
+ * Набор раскрытых узлов
19
+ */
20
+ expandedIds: Set<string>;
21
+ /**
22
+ * Набор раскрытых узлов для синхронного чтения
23
+ */
24
+ expandedIdsRef: RefObject<Set<string>>;
25
+ /**
26
+ * Контроллер enter-анимации: метит новые дочерние элементы
27
+ * и skeleton-узлы
28
+ */
29
+ enterAnimation: EnterAnimationResult;
30
+ /**
31
+ * Вставляет дочерние элементы узла в плоский список
32
+ */
33
+ insertChildren: (parentId: string, childrenData: TData[]) => void;
34
+ /**
35
+ * Функция управления placeholder ветки родителя
36
+ */
37
+ syncChildrenPlaceholders: (parentId: string, isChildrenLoading: boolean, skeletonCount: number, isChildrenError?: boolean, isChildrenNoData?: boolean) => void;
38
+ skeletonCount: number;
39
+ /**
40
+ * Выбрасывает контейнер строки узла, которого больше нет в данных
41
+ */
42
+ releaseParentSlot: (itemId: string) => void;
43
+ };
@@ -0,0 +1,20 @@
1
+ import type { NodePagination } from '../../InfiniteTreeListContext';
2
+ import type { FlattenTree, InfiniteTreeChildrenPagination, InfiniteTreeListData } from '../../types';
3
+ import type { UseChildrenStateParams } from './types';
4
+ /**
5
+ * Сводит данные дочерних элементов раскрытых узлов в плоский список:
6
+ * вставляет их, ставит заглушки ветки, собирает пагинацию узлов и метит новые
7
+ * строки для enter-анимации. Дочерние элементы отдаёт строка узла
8
+ * (`childItems`, `isLoading`, `isError`), не props списка.
9
+ *
10
+ * Дочерние элементы смонтированными хук не держит — их строки живут
11
+ * по правилам виртуализации. Строки узлов с подгружаемыми дочерними
12
+ * элементами, наоборот, монтируются один раз и живут, пока жив список:
13
+ * их состояние не должно умирать ни от ухода строки со скролла,
14
+ * ни от сворачивания ветки
15
+ */
16
+ export declare const useChildrenState: <TData extends InfiniteTreeListData<TData>>({ items, flatList, flatListRef, expandedIds, expandedIdsRef, enterAnimation, insertChildren, syncChildrenPlaceholders, skeletonCount, releaseParentSlot, }: UseChildrenStateParams<TData>) => {
17
+ registerChildren: (itemId: string, childrenState: InfiniteTreeChildrenPagination) => void;
18
+ nodePaginationMap: Record<string, NodePagination>;
19
+ parentItems: FlattenTree<TData>[];
20
+ };
@@ -0,0 +1,115 @@
1
+ import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
2
+ import { checkHasSkeletonPlaceholders, checkIsNoDataChildren, checkIsSameChildren, countDirectChildren, getChildrenPlaceholderIds, getEnteringChildren, getIdsToKeep, } from '../../utils';
3
+ /**
4
+ * Сводит данные дочерних элементов раскрытых узлов в плоский список:
5
+ * вставляет их, ставит заглушки ветки, собирает пагинацию узлов и метит новые
6
+ * строки для enter-анимации. Дочерние элементы отдаёт строка узла
7
+ * (`childItems`, `isLoading`, `isError`), не props списка.
8
+ *
9
+ * Дочерние элементы смонтированными хук не держит — их строки живут
10
+ * по правилам виртуализации. Строки узлов с подгружаемыми дочерними
11
+ * элементами, наоборот, монтируются один раз и живут, пока жив список:
12
+ * их состояние не должно умирать ни от ухода строки со скролла,
13
+ * ни от сворачивания ветки
14
+ */
15
+ export const useChildrenState = ({ items, flatList, flatListRef, expandedIds, expandedIdsRef, enterAnimation, insertChildren, syncChildrenPlaceholders, skeletonCount, releaseParentSlot, }) => {
16
+ const [childrenStateMap, setChildrenStateMap] = useState({});
17
+ const childrenStateMapRef = useRef(childrenStateMap);
18
+ // Синхронизация после коммита: запись в ref во время рендера — side effect,
19
+ // отброшенный рендер оставил бы в ref значение из дерева, которое
20
+ // не попало в коммит
21
+ useEffect(() => {
22
+ childrenStateMapRef.current = childrenStateMap;
23
+ });
24
+ const loadedOnceIdsRef = useRef(new Set());
25
+ const registerChildren = useCallback((itemId, childrenState) => {
26
+ const nextChildren = childrenState;
27
+ setChildrenStateMap((prev) => {
28
+ if (checkIsSameChildren(prev[itemId], nextChildren)) {
29
+ return prev;
30
+ }
31
+ return { ...prev, [itemId]: nextChildren };
32
+ });
33
+ }, []);
34
+ const resolveNoData = useCallback((parentId, childrenState) => {
35
+ const hasLoadedOnce = loadedOnceIdsRef.current.has(parentId);
36
+ if (childrenState.isLoading) {
37
+ loadedOnceIdsRef.current.add(parentId);
38
+ }
39
+ return checkIsNoDataChildren(childrenState, hasLoadedOnce);
40
+ }, []);
41
+ const syncChildren = useCallback((parentId, childrenState) => {
42
+ const existingDirectCount = countDirectChildren(flatListRef.current, parentId);
43
+ const hasSkeletons = checkHasSkeletonPlaceholders(flatListRef.current, parentId);
44
+ insertChildren(parentId, childrenState.data);
45
+ syncChildrenPlaceholders(parentId, Boolean(childrenState.isLoading), skeletonCount, childrenState.isError, resolveNoData(parentId, childrenState));
46
+ if (childrenState.isLoading) {
47
+ // Первая загрузка необходима для skeleton-элементов
48
+ const firstLoading = existingDirectCount === 0 && !hasSkeletons;
49
+ if (firstLoading) {
50
+ enterAnimation.schedule(getChildrenPlaceholderIds(parentId, skeletonCount));
51
+ }
52
+ return;
53
+ }
54
+ if (childrenState.isError ||
55
+ childrenState.data.length <= existingDirectCount) {
56
+ return;
57
+ }
58
+ const { itemIds, startDelayIndex } = getEnteringChildren(childrenState.data.map((item) => item.id), existingDirectCount, hasSkeletons ? skeletonCount : 0);
59
+ enterAnimation.schedule(itemIds, startDelayIndex);
60
+ }, [
61
+ enterAnimation,
62
+ flatListRef,
63
+ insertChildren,
64
+ resolveNoData,
65
+ skeletonCount,
66
+ syncChildrenPlaceholders,
67
+ ]);
68
+ useEffect(() => {
69
+ Object.entries(childrenStateMap).forEach(([parentId, childrenState]) => {
70
+ if (expandedIdsRef.current.has(parentId)) {
71
+ syncChildren(parentId, childrenState);
72
+ }
73
+ });
74
+ }, [childrenStateMap, expandedIds]);
75
+ const nodePaginationMap = useMemo(() => Object.entries(childrenStateMap).reduce((acc, [parentId, childrenState]) => {
76
+ acc[parentId] = {
77
+ lastChildId: childrenState.data[childrenState.data.length - 1]?.id,
78
+ isEndReached: childrenState.isEndReached,
79
+ isChildrenLoading: childrenState.isLoading,
80
+ isChildrenError: childrenState.isError,
81
+ };
82
+ return acc;
83
+ }, {}), [childrenStateMap]);
84
+ const parentItemsRef = useRef(new Map());
85
+ const parentItems = useMemo(() => {
86
+ flatList.forEach((item) => {
87
+ if (item.meta.isChildrenAsync) {
88
+ parentItemsRef.current.set(item.id, item);
89
+ }
90
+ });
91
+ return [...parentItemsRef.current.values()];
92
+ }, [flatList]);
93
+ useEffect(() => {
94
+ const idsToKeep = getIdsToKeep(items, childrenStateMapRef.current);
95
+ parentItemsRef.current.forEach((_, itemId) => {
96
+ if (!idsToKeep.has(itemId)) {
97
+ parentItemsRef.current.delete(itemId);
98
+ releaseParentSlot(itemId);
99
+ }
100
+ });
101
+ loadedOnceIdsRef.current.forEach((itemId) => {
102
+ if (!idsToKeep.has(itemId)) {
103
+ loadedOnceIdsRef.current.delete(itemId);
104
+ }
105
+ });
106
+ setChildrenStateMap((prev) => {
107
+ const entriesToKeep = Object.entries(prev).filter(([itemId]) => idsToKeep.has(itemId));
108
+ if (entriesToKeep.length === Object.keys(prev).length) {
109
+ return prev;
110
+ }
111
+ return Object.fromEntries(entriesToKeep);
112
+ });
113
+ }, [items, releaseParentSlot]);
114
+ return { registerChildren, nodePaginationMap, parentItems };
115
+ };
@@ -0,0 +1,2 @@
1
+ export * from './types';
2
+ export * from './useEnterAnimation';
@@ -0,0 +1,2 @@
1
+ export * from './types';
2
+ export * from './useEnterAnimation';
@@ -0,0 +1,29 @@
1
+ export type EnterAnimationState = {
2
+ /**
3
+ * Строка должна появиться с enter-анимацией
4
+ */
5
+ shouldAnimate: boolean;
6
+ /**
7
+ * Индекс каскадной задержки анимации
8
+ */
9
+ delayIndex?: number;
10
+ };
11
+ export type EnterAnimationResult = {
12
+ /**
13
+ * Планирует появление элементов с enter-анимацией.
14
+ * Порядок id задаёт каскад, `startDelayIndex` сдвигает его начало
15
+ */
16
+ schedule: (itemIds: string[], startDelayIndex?: number) => void;
17
+ /**
18
+ * Возвращает состояние анимации, не изменяя метку. Безопасно для рендера
19
+ */
20
+ read: (itemId: string) => EnterAnimationState;
21
+ /**
22
+ * Забирает метку элемента: повторный mount при скролле анимации не получит
23
+ */
24
+ claim: (itemId: string) => void;
25
+ /**
26
+ * Сбрасывает все метки
27
+ */
28
+ reset: () => void;
29
+ };
@@ -0,0 +1,6 @@
1
+ import type { EnterAnimationResult } from './types';
2
+ /**
3
+ * Управляет enter-анимацией строк дерева: метка живёт до первого mount строки
4
+ * и потребляется им
5
+ */
6
+ export declare const useEnterAnimation: () => EnterAnimationResult;
@@ -0,0 +1,35 @@
1
+ import { useCallback, useEffect, useMemo, useRef } from 'react';
2
+ import { ENTER_ANIMATION_MOUNT_WINDOW_MS } from '../../constants';
3
+ const NO_ANIMATION = { shouldAnimate: false };
4
+ /**
5
+ * Управляет enter-анимацией строк дерева: метка живёт до первого mount строки
6
+ * и потребляется им
7
+ */
8
+ export const useEnterAnimation = () => {
9
+ const delayIndexes = useRef(new Map());
10
+ const resetTimer = useRef(undefined);
11
+ const reset = useCallback(() => {
12
+ clearTimeout(resetTimer.current);
13
+ delayIndexes.current.clear();
14
+ }, []);
15
+ const schedule = useCallback((itemIds, startDelayIndex = 0) => {
16
+ if (!itemIds.length) {
17
+ return;
18
+ }
19
+ itemIds.forEach((itemId, index) => delayIndexes.current.set(itemId, startDelayIndex + index));
20
+ clearTimeout(resetTimer.current);
21
+ resetTimer.current = setTimeout(reset, ENTER_ANIMATION_MOUNT_WINDOW_MS);
22
+ }, [reset]);
23
+ const read = useCallback((itemId) => {
24
+ const delayIndex = delayIndexes.current.get(itemId);
25
+ if (delayIndex === undefined) {
26
+ return NO_ANIMATION;
27
+ }
28
+ return { shouldAnimate: true, delayIndex };
29
+ }, []);
30
+ const claim = useCallback((itemId) => {
31
+ delayIndexes.current.delete(itemId);
32
+ }, []);
33
+ useEffect(() => () => clearTimeout(resetTimer.current), []);
34
+ return useMemo(() => ({ schedule, read, claim, reset }), [schedule, read, claim, reset]);
35
+ };
@@ -0,0 +1 @@
1
+ export * from './useExpandNotifier';
@@ -0,0 +1 @@
1
+ export * from './useExpandNotifier';
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Блокирует повторные вызовы `onOpen`: узел сообщает о раскрытии один
3
+ * раз, пока ветка не свёрнута
4
+ */
5
+ export declare const useExpandNotifier: () => {
6
+ notifyExpand: (itemId: string, onOpen?: () => void) => void;
7
+ resetExpandNotification: (itemIds: string[]) => void;
8
+ };