@multiplatform.one/components 7.28.0 → 7.29.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 (340) hide show
  1. package/dist/cjs/Accordion/index.cjs +26 -17
  2. package/dist/cjs/Accordion/index.native.js +36 -27
  3. package/dist/cjs/Accordion/index.native.js.map +1 -1
  4. package/dist/cjs/Heading.cjs +74 -30
  5. package/dist/cjs/Heading.native.js +81 -30
  6. package/dist/cjs/Heading.native.js.map +1 -1
  7. package/dist/cjs/ProgressSteps/index.native.js.map +1 -1
  8. package/dist/cjs/ScrollView/index.native.js +4 -0
  9. package/dist/cjs/ScrollView/index.native.js.map +1 -1
  10. package/dist/cjs/SortableList/SortableHandle.cjs +1 -1
  11. package/dist/cjs/SortableList/SortableHandle.native.js +1 -1
  12. package/dist/cjs/Text.cjs +58 -21
  13. package/dist/cjs/Text.native.js +62 -21
  14. package/dist/cjs/Text.native.js.map +1 -1
  15. package/dist/cjs/Toast/index.native.js.map +1 -1
  16. package/dist/cjs/charts/ChartDataView.cjs +2 -1
  17. package/dist/cjs/charts/ChartDataView.native.js +2 -1
  18. package/dist/cjs/charts/ChartDataView.native.js.map +1 -1
  19. package/dist/cjs/code/CodeBlock/index.cjs +8 -8
  20. package/dist/cjs/code/CodeBlock/index.native.js +8 -8
  21. package/dist/cjs/code/CodeBlock/index.native.js.map +1 -1
  22. package/dist/cjs/index.cjs +1 -0
  23. package/dist/cjs/index.native.js +1 -0
  24. package/dist/cjs/index.native.js.map +1 -1
  25. package/dist/cjs/layouts/EmptyState.cjs +4 -3
  26. package/dist/cjs/layouts/EmptyState.native.js +14 -9
  27. package/dist/cjs/layouts/EmptyState.native.js.map +1 -1
  28. package/dist/cjs/layouts/page.cjs +2 -1
  29. package/dist/cjs/layouts/page.native.js +2 -1
  30. package/dist/cjs/layouts/page.native.js.map +1 -1
  31. package/dist/cjs/layouts/sidebar.cjs +2 -1
  32. package/dist/cjs/layouts/sidebar.native.js +2 -1
  33. package/dist/cjs/layouts/sidebar.native.js.map +1 -1
  34. package/dist/cjs/layouts/tags.cjs +2 -1
  35. package/dist/cjs/layouts/tags.native.js +2 -1
  36. package/dist/cjs/layouts/tags.native.js.map +1 -1
  37. package/dist/cjs/layouts/toolbar.cjs +2 -1
  38. package/dist/cjs/layouts/toolbar.native.js +2 -1
  39. package/dist/cjs/layouts/toolbar.native.js.map +1 -1
  40. package/dist/cjs/shared/useReturnFocusOnClose.cjs +1 -0
  41. package/dist/cjs/shared/useReturnFocusOnClose.native.js +1 -0
  42. package/dist/cjs/shared/useReturnFocusOnClose.native.js.map +1 -1
  43. package/dist/cjs/surfaces.cjs +61 -0
  44. package/dist/cjs/surfaces.native.js +73 -0
  45. package/dist/cjs/surfaces.native.js.map +1 -1
  46. package/dist/cjs/views/Calendar.cjs +13 -10
  47. package/dist/cjs/views/Calendar.native.js +13 -10
  48. package/dist/cjs/views/Calendar.native.js.map +1 -1
  49. package/dist/cjs/views/Dashboard.cjs +2 -1
  50. package/dist/cjs/views/Dashboard.native.js +2 -1
  51. package/dist/cjs/views/Dashboard.native.js.map +1 -1
  52. package/dist/cjs/views/Gantt.cjs +39 -27
  53. package/dist/cjs/views/Gantt.native.js +38 -23
  54. package/dist/cjs/views/Gantt.native.js.map +1 -1
  55. package/dist/cjs/views/ImageGrid.cjs +26 -22
  56. package/dist/cjs/views/ImageGrid.native.js +28 -22
  57. package/dist/cjs/views/ImageGrid.native.js.map +1 -1
  58. package/dist/cjs/views/Kanban.cjs +2 -1
  59. package/dist/cjs/views/Kanban.native.js +1 -0
  60. package/dist/cjs/views/Kanban.native.js.map +1 -1
  61. package/dist/cjs/views/List.cjs +1 -0
  62. package/dist/cjs/views/List.native.js +1 -0
  63. package/dist/cjs/views/List.native.js.map +1 -1
  64. package/dist/cjs/views/Matrix.cjs +5 -3
  65. package/dist/cjs/views/Matrix.native.js +5 -3
  66. package/dist/cjs/views/Matrix.native.js.map +1 -1
  67. package/dist/cjs/views/ReportBuilder.cjs +2 -1
  68. package/dist/cjs/views/ReportBuilder.native.js +2 -1
  69. package/dist/cjs/views/ReportBuilder.native.js.map +1 -1
  70. package/dist/cjs/views/TreeView.cjs +2 -1
  71. package/dist/cjs/views/TreeView.native.js +2 -1
  72. package/dist/cjs/views/TreeView.native.js.map +1 -1
  73. package/dist/esm/Accordion/index.mjs +26 -18
  74. package/dist/esm/Accordion/index.mjs.map +1 -1
  75. package/dist/esm/Accordion/index.native.js +36 -28
  76. package/dist/esm/Accordion/index.native.js.map +1 -1
  77. package/dist/esm/Heading.mjs +74 -30
  78. package/dist/esm/Heading.mjs.map +1 -1
  79. package/dist/esm/Heading.native.js +81 -30
  80. package/dist/esm/Heading.native.js.map +1 -1
  81. package/dist/esm/ProgressSteps/index.mjs.map +1 -1
  82. package/dist/esm/ScrollView/index.native.js +4 -0
  83. package/dist/esm/ScrollView/index.native.js.map +1 -1
  84. package/dist/esm/SortableList/SortableHandle.mjs +1 -1
  85. package/dist/esm/SortableList/SortableHandle.native.js +1 -1
  86. package/dist/esm/SortableList/SortableHandle.native.js.map +1 -1
  87. package/dist/esm/Text.mjs +58 -21
  88. package/dist/esm/Text.mjs.map +1 -1
  89. package/dist/esm/Text.native.js +62 -21
  90. package/dist/esm/Text.native.js.map +1 -1
  91. package/dist/esm/Toast/index.mjs.map +1 -1
  92. package/dist/esm/charts/ChartDataView.mjs +2 -1
  93. package/dist/esm/charts/ChartDataView.mjs.map +1 -1
  94. package/dist/esm/charts/ChartDataView.native.js +2 -1
  95. package/dist/esm/charts/ChartDataView.native.js.map +1 -1
  96. package/dist/esm/code/CodeBlock/index.mjs +1 -1
  97. package/dist/esm/code/CodeBlock/index.native.js +1 -1
  98. package/dist/esm/code/CodeBlock/index.native.js.map +1 -1
  99. package/dist/esm/index.mjs +2 -2
  100. package/dist/esm/index.mjs.map +1 -1
  101. package/dist/esm/index.native.js +2 -2
  102. package/dist/esm/index.native.js.map +1 -1
  103. package/dist/esm/layouts/EmptyState.mjs +4 -3
  104. package/dist/esm/layouts/EmptyState.mjs.map +1 -1
  105. package/dist/esm/layouts/EmptyState.native.js +14 -9
  106. package/dist/esm/layouts/EmptyState.native.js.map +1 -1
  107. package/dist/esm/layouts/page.mjs +2 -1
  108. package/dist/esm/layouts/page.mjs.map +1 -1
  109. package/dist/esm/layouts/page.native.js +2 -1
  110. package/dist/esm/layouts/page.native.js.map +1 -1
  111. package/dist/esm/layouts/sidebar.mjs +2 -1
  112. package/dist/esm/layouts/sidebar.mjs.map +1 -1
  113. package/dist/esm/layouts/sidebar.native.js +2 -1
  114. package/dist/esm/layouts/sidebar.native.js.map +1 -1
  115. package/dist/esm/layouts/tags.mjs +2 -1
  116. package/dist/esm/layouts/tags.mjs.map +1 -1
  117. package/dist/esm/layouts/tags.native.js +2 -1
  118. package/dist/esm/layouts/tags.native.js.map +1 -1
  119. package/dist/esm/layouts/toolbar.mjs +2 -1
  120. package/dist/esm/layouts/toolbar.mjs.map +1 -1
  121. package/dist/esm/layouts/toolbar.native.js +2 -1
  122. package/dist/esm/layouts/toolbar.native.js.map +1 -1
  123. package/dist/esm/shared/useReturnFocusOnClose.mjs +1 -0
  124. package/dist/esm/shared/useReturnFocusOnClose.mjs.map +1 -1
  125. package/dist/esm/shared/useReturnFocusOnClose.native.js +1 -0
  126. package/dist/esm/shared/useReturnFocusOnClose.native.js.map +1 -1
  127. package/dist/esm/surfaces.mjs +63 -3
  128. package/dist/esm/surfaces.mjs.map +1 -1
  129. package/dist/esm/surfaces.native.js +75 -3
  130. package/dist/esm/surfaces.native.js.map +1 -1
  131. package/dist/esm/views/Calendar.mjs +12 -9
  132. package/dist/esm/views/Calendar.mjs.map +1 -1
  133. package/dist/esm/views/Calendar.native.js +12 -9
  134. package/dist/esm/views/Calendar.native.js.map +1 -1
  135. package/dist/esm/views/Dashboard.mjs +2 -1
  136. package/dist/esm/views/Dashboard.mjs.map +1 -1
  137. package/dist/esm/views/Dashboard.native.js +2 -1
  138. package/dist/esm/views/Dashboard.native.js.map +1 -1
  139. package/dist/esm/views/Gantt.mjs +37 -25
  140. package/dist/esm/views/Gantt.mjs.map +1 -1
  141. package/dist/esm/views/Gantt.native.js +36 -21
  142. package/dist/esm/views/Gantt.native.js.map +1 -1
  143. package/dist/esm/views/ImageGrid.mjs +26 -22
  144. package/dist/esm/views/ImageGrid.mjs.map +1 -1
  145. package/dist/esm/views/ImageGrid.native.js +28 -22
  146. package/dist/esm/views/ImageGrid.native.js.map +1 -1
  147. package/dist/esm/views/Kanban.mjs +2 -1
  148. package/dist/esm/views/Kanban.mjs.map +1 -1
  149. package/dist/esm/views/Kanban.native.js +1 -0
  150. package/dist/esm/views/Kanban.native.js.map +1 -1
  151. package/dist/esm/views/List.mjs +1 -0
  152. package/dist/esm/views/List.mjs.map +1 -1
  153. package/dist/esm/views/List.native.js +1 -0
  154. package/dist/esm/views/List.native.js.map +1 -1
  155. package/dist/esm/views/Matrix.mjs +3 -1
  156. package/dist/esm/views/Matrix.mjs.map +1 -1
  157. package/dist/esm/views/Matrix.native.js +3 -1
  158. package/dist/esm/views/Matrix.native.js.map +1 -1
  159. package/dist/esm/views/ReportBuilder.mjs +2 -1
  160. package/dist/esm/views/ReportBuilder.mjs.map +1 -1
  161. package/dist/esm/views/ReportBuilder.native.js +2 -1
  162. package/dist/esm/views/ReportBuilder.native.js.map +1 -1
  163. package/dist/esm/views/TreeView.mjs +2 -1
  164. package/dist/esm/views/TreeView.mjs.map +1 -1
  165. package/dist/esm/views/TreeView.native.js +2 -1
  166. package/dist/esm/views/TreeView.native.js.map +1 -1
  167. package/dist/jsx/Accordion/index.mjs +26 -18
  168. package/dist/jsx/Accordion/index.mjs.map +1 -1
  169. package/dist/jsx/Accordion/index.native.js +36 -27
  170. package/dist/jsx/Accordion/index.native.js.map +1 -1
  171. package/dist/jsx/Heading.mjs +74 -30
  172. package/dist/jsx/Heading.mjs.map +1 -1
  173. package/dist/jsx/Heading.native.js +81 -30
  174. package/dist/jsx/Heading.native.js.map +1 -1
  175. package/dist/jsx/ProgressSteps/index.mjs.map +1 -1
  176. package/dist/jsx/ProgressSteps/index.native.js.map +1 -1
  177. package/dist/jsx/ScrollView/index.native.js +4 -0
  178. package/dist/jsx/ScrollView/index.native.js.map +1 -1
  179. package/dist/jsx/SortableList/SortableHandle.mjs +1 -1
  180. package/dist/jsx/SortableList/SortableHandle.native.js +1 -1
  181. package/dist/jsx/Text.mjs +58 -21
  182. package/dist/jsx/Text.mjs.map +1 -1
  183. package/dist/jsx/Text.native.js +62 -21
  184. package/dist/jsx/Text.native.js.map +1 -1
  185. package/dist/jsx/Toast/index.mjs.map +1 -1
  186. package/dist/jsx/Toast/index.native.js.map +1 -1
  187. package/dist/jsx/charts/ChartDataView.mjs +2 -1
  188. package/dist/jsx/charts/ChartDataView.mjs.map +1 -1
  189. package/dist/jsx/charts/ChartDataView.native.js +2 -1
  190. package/dist/jsx/charts/ChartDataView.native.js.map +1 -1
  191. package/dist/jsx/code/CodeBlock/index.mjs +1 -1
  192. package/dist/jsx/code/CodeBlock/index.native.js +8 -8
  193. package/dist/jsx/code/CodeBlock/index.native.js.map +1 -1
  194. package/dist/jsx/index.js +2 -2
  195. package/dist/jsx/index.js.map +1 -1
  196. package/dist/jsx/index.mjs +2 -2
  197. package/dist/jsx/index.mjs.map +1 -1
  198. package/dist/jsx/index.native.js +1 -0
  199. package/dist/jsx/index.native.js.map +1 -1
  200. package/dist/jsx/layouts/EmptyState.mjs +4 -3
  201. package/dist/jsx/layouts/EmptyState.mjs.map +1 -1
  202. package/dist/jsx/layouts/EmptyState.native.js +14 -9
  203. package/dist/jsx/layouts/EmptyState.native.js.map +1 -1
  204. package/dist/jsx/layouts/page.mjs +2 -1
  205. package/dist/jsx/layouts/page.mjs.map +1 -1
  206. package/dist/jsx/layouts/page.native.js +2 -1
  207. package/dist/jsx/layouts/page.native.js.map +1 -1
  208. package/dist/jsx/layouts/sidebar.mjs +2 -1
  209. package/dist/jsx/layouts/sidebar.mjs.map +1 -1
  210. package/dist/jsx/layouts/sidebar.native.js +2 -1
  211. package/dist/jsx/layouts/sidebar.native.js.map +1 -1
  212. package/dist/jsx/layouts/tags.mjs +2 -1
  213. package/dist/jsx/layouts/tags.mjs.map +1 -1
  214. package/dist/jsx/layouts/tags.native.js +2 -1
  215. package/dist/jsx/layouts/tags.native.js.map +1 -1
  216. package/dist/jsx/layouts/toolbar.mjs +2 -1
  217. package/dist/jsx/layouts/toolbar.mjs.map +1 -1
  218. package/dist/jsx/layouts/toolbar.native.js +2 -1
  219. package/dist/jsx/layouts/toolbar.native.js.map +1 -1
  220. package/dist/jsx/shared/useReturnFocusOnClose.mjs +1 -0
  221. package/dist/jsx/shared/useReturnFocusOnClose.mjs.map +1 -1
  222. package/dist/jsx/shared/useReturnFocusOnClose.native.js +1 -0
  223. package/dist/jsx/shared/useReturnFocusOnClose.native.js.map +1 -1
  224. package/dist/jsx/surfaces.mjs +63 -3
  225. package/dist/jsx/surfaces.mjs.map +1 -1
  226. package/dist/jsx/surfaces.native.js +73 -0
  227. package/dist/jsx/surfaces.native.js.map +1 -1
  228. package/dist/jsx/views/Calendar.mjs +12 -9
  229. package/dist/jsx/views/Calendar.mjs.map +1 -1
  230. package/dist/jsx/views/Calendar.native.js +13 -10
  231. package/dist/jsx/views/Calendar.native.js.map +1 -1
  232. package/dist/jsx/views/Dashboard.mjs +2 -1
  233. package/dist/jsx/views/Dashboard.mjs.map +1 -1
  234. package/dist/jsx/views/Dashboard.native.js +2 -1
  235. package/dist/jsx/views/Dashboard.native.js.map +1 -1
  236. package/dist/jsx/views/Gantt.mjs +37 -25
  237. package/dist/jsx/views/Gantt.mjs.map +1 -1
  238. package/dist/jsx/views/Gantt.native.js +38 -23
  239. package/dist/jsx/views/Gantt.native.js.map +1 -1
  240. package/dist/jsx/views/ImageGrid.mjs +26 -22
  241. package/dist/jsx/views/ImageGrid.mjs.map +1 -1
  242. package/dist/jsx/views/ImageGrid.native.js +28 -22
  243. package/dist/jsx/views/ImageGrid.native.js.map +1 -1
  244. package/dist/jsx/views/Kanban.mjs +2 -1
  245. package/dist/jsx/views/Kanban.mjs.map +1 -1
  246. package/dist/jsx/views/Kanban.native.js +1 -0
  247. package/dist/jsx/views/Kanban.native.js.map +1 -1
  248. package/dist/jsx/views/List.mjs +1 -0
  249. package/dist/jsx/views/List.mjs.map +1 -1
  250. package/dist/jsx/views/List.native.js +1 -0
  251. package/dist/jsx/views/List.native.js.map +1 -1
  252. package/dist/jsx/views/Matrix.mjs +3 -1
  253. package/dist/jsx/views/Matrix.mjs.map +1 -1
  254. package/dist/jsx/views/Matrix.native.js +5 -3
  255. package/dist/jsx/views/Matrix.native.js.map +1 -1
  256. package/dist/jsx/views/ReportBuilder.mjs +2 -1
  257. package/dist/jsx/views/ReportBuilder.mjs.map +1 -1
  258. package/dist/jsx/views/ReportBuilder.native.js +2 -1
  259. package/dist/jsx/views/ReportBuilder.native.js.map +1 -1
  260. package/dist/jsx/views/TreeView.mjs +2 -1
  261. package/dist/jsx/views/TreeView.mjs.map +1 -1
  262. package/dist/jsx/views/TreeView.native.js +2 -1
  263. package/dist/jsx/views/TreeView.native.js.map +1 -1
  264. package/package.json +9 -9
  265. package/src/Accordion/index.tsx +34 -15
  266. package/src/Heading.stories.tsx +13 -0
  267. package/src/Heading.tsx +62 -21
  268. package/src/ProgressSteps/ProgressSteps.spec.tsx +2 -3
  269. package/src/ProgressSteps/index.tsx +3 -4
  270. package/src/ScrollView/ScrollView.native.spec.tsx +97 -1
  271. package/src/ScrollView/index.native.tsx +4 -0
  272. package/src/SortableList/SortableHandle.tsx +2 -2
  273. package/src/Tabs/Tabs.lifecycle.spec.tsx +3 -1
  274. package/src/Text.tsx +32 -20
  275. package/src/Toast/index.tsx +4 -3
  276. package/src/charts/ChartDataView.tsx +2 -1
  277. package/src/code/CodeBlock/index.tsx +1 -1
  278. package/src/feedback/ConfirmDialog.spec.tsx +2 -2
  279. package/src/icons/phosphorTokenColor.spec.tsx +86 -0
  280. package/src/index.ts +1 -1
  281. package/src/layouts/EmptyState.spec.tsx +17 -0
  282. package/src/layouts/EmptyState.tsx +10 -3
  283. package/src/layouts/Screen.keyboardTaps.spec.tsx +57 -0
  284. package/src/layouts/Screen.stories.tsx +55 -2
  285. package/src/layouts/page.tsx +2 -14
  286. package/src/layouts/sidebar.tsx +2 -1
  287. package/src/layouts/tags.tsx +1 -1
  288. package/src/layouts/toolbar.tsx +2 -1
  289. package/src/shared/useReturnFocusOnClose.spec.tsx +39 -0
  290. package/src/shared/useReturnFocusOnClose.ts +4 -0
  291. package/src/surfaces.spec.tsx +272 -3
  292. package/src/surfaces.tsx +97 -4
  293. package/src/textWeight.houseFonts.spec.tsx +127 -0
  294. package/src/textWeight.native.spec.tsx +27 -0
  295. package/src/textWeight.spec.tsx +15 -0
  296. package/src/views/Calendar.tsx +37 -29
  297. package/src/views/Dashboard.tsx +2 -13
  298. package/src/views/Gantt.scroll.spec.tsx +4 -1
  299. package/src/views/Gantt.tsx +40 -25
  300. package/src/views/ImageGrid.tsx +24 -19
  301. package/src/views/Kanban.native.tsx +1 -0
  302. package/src/views/Kanban.tsx +2 -10
  303. package/src/views/List.tsx +1 -0
  304. package/src/views/Matrix.tsx +3 -1
  305. package/src/views/ReportBuilder.tsx +2 -1
  306. package/src/views/TreeView.tsx +2 -1
  307. package/src/views/views.spec.tsx +14 -2
  308. package/types/Accordion/index.d.ts +8 -0
  309. package/types/Accordion/index.d.ts.map +1 -1
  310. package/types/Chip/index.d.ts +1 -1
  311. package/types/Heading.d.ts +7 -7
  312. package/types/Heading.d.ts.map +1 -1
  313. package/types/ProgressSteps/index.d.ts.map +1 -1
  314. package/types/ScrollView/index.native.d.ts.map +1 -1
  315. package/types/SortableList/SortableHandle.d.ts +1 -1
  316. package/types/Tabs/index.d.ts +1 -1
  317. package/types/Text.d.ts +4 -4
  318. package/types/Text.d.ts.map +1 -1
  319. package/types/Toast/index.d.ts.map +1 -1
  320. package/types/charts/ChartDataView.d.ts.map +1 -1
  321. package/types/index.d.ts +1 -1
  322. package/types/index.d.ts.map +1 -1
  323. package/types/layouts/EmptyState.d.ts.map +1 -1
  324. package/types/layouts/page.d.ts.map +1 -1
  325. package/types/layouts/sidebar.d.ts.map +1 -1
  326. package/types/layouts/tags.d.ts.map +1 -1
  327. package/types/layouts/toolbar.d.ts.map +1 -1
  328. package/types/shared/useReturnFocusOnClose.d.ts.map +1 -1
  329. package/types/surfaces.d.ts +14 -0
  330. package/types/surfaces.d.ts.map +1 -1
  331. package/types/views/Calendar.d.ts +18 -1
  332. package/types/views/Calendar.d.ts.map +1 -1
  333. package/types/views/Dashboard.d.ts.map +1 -1
  334. package/types/views/Gantt.d.ts.map +1 -1
  335. package/types/views/ImageGrid.d.ts.map +1 -1
  336. package/types/views/Kanban.d.ts.map +1 -1
  337. package/types/views/List.d.ts.map +1 -1
  338. package/types/views/Matrix.d.ts.map +1 -1
  339. package/types/views/ReportBuilder.d.ts.map +1 -1
  340. package/types/views/TreeView.d.ts.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["jsx","_jsx","jsxs","_jsxs","componentColors","EmptyState","FlashList","MIN_PRESS_TARGET","ensureKeyboardModalityTracking","getGroupPosition","hairline","keyboardFocusRingProps","pressTargetHitSlop","stackRadiusProps","useReadableTextOn","useResolvedKnobs","wasKeyboardFocus","CaretLeftIcon","CaretRightIcon","DotsSixVerticalIcon","FileIcon","FolderIcon","FolderOpenIcon","useDirection","useHotkey","React","useCallback","useEffect","useId","useLayoutEffect","useMemo","useRef","useState","useTranslation","Text","View","XStack","YStack","isWeb","styled","autoScrollVelocity","applyTreeMove","describeTreeCancel","describeTreeDragState","flattenDndRows","indicatorForTarget","resolveTreeDrop","subtreeIds","treeDropTargetForY","treeKeyboardLift","treeKeyboardMove","diffVisibleRows","flattenVisibleIds","isEmptyDiff","treeRevealExpansion","treeRevealOffset","TREE_LIFT_SHADOW","treeDefaultHeight","treeEdgeRowPad","treeIndentStep","DragHandleTarget","name","ENTER_RISE_PX","DRAG_THRESHOLD_PX","TOUCH_LONG_PRESS_MS","AUTO_SCROLL_EDGE_PX","AUTO_SCROLL_MAX_SPEED","LIFT_SHADOW","collectBranchIds","items","into","arguments","length","Set","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","next","done","node","value","_ref","_node_children","children","add","id","err","return","findNodePath","trail","found","TYPEAHEAD_MS","defaultNodeIcon","hasChildren","isExpanded","iconSize","size","weight","TreeView","param","nodes","renderNode","onNodeToggle","onNodeSelect","onNodeMove","estimateSize","estimateSizeProp","overscan","height","heightProp","initialScrollOffset","onScrollOffsetChange","emptyMessage","emptyMessageProp","defaultExpandedIds","expandedIds","controlledExpandedIds","onExpandedIdsChange","revealRequest","onRevealComplete","expandByDefault","display","showExpansionArrows","selectedId","ariaLabel","hotkeys","hotkeyOverrides","stackProps","_ref1","_ref2","_ref3","_ref4","_ref5","_ref6","_ref7","_ref8","_ref9","_ref10","_ref11","_ref12","_overlayNode_icon","_overlayNode_children","_dragUi_indicator","_dragUi_ghost","_dragUi_ghost1","t","compressed","knobProps","control","compact","onAccentLabel","transition","nestedPx","nestedControl","px","rowGap","gap","controlIcon","width","expandIconSize","nodeIconSize","caretSize","isRTL","CollapsedCaretIcon","expandedCaretRotation","indentStep","rowPad","space","treeId","containerRef","flashListRef","initialScroll","offset","Number","isFinite","Math","max","cancelInitialScroll","current","hasNodes","listInstance","attached","loaded","indexScrollRequested","scrollActive","lastReportedOffset","offsetCallback","focusedIndex","setFocusedIndex","keyboardRing","setKeyboardRing","typeaheadRef","buffer","at","document","handleContainerFocus","kb","prev","handleContainerBlur","internalExpandedIds","setInternalExpandedIds","setExpandedIds","motion","setMotion","rowHeights","Map","getRowHeight","_rowHeights_current_get","get","toggleNode","has","delete","previousExpandedIds","previous","every","diff","phase","raf","requestAnimationFrame","m","cancelAnimationFrame","flatNodes","result","walk","walk1","depth","parentId","_ref13","push","index","revealIntent","scrollFrame","scrollStep","renderedRows","scrollBounds","list","_containerRef_current","rect","getBoundingClientRect","viewport","getWindowSize","contentHeight","getChildContainerDimensions","getFirstItemOffset","maxOffset","observeOffset","fromEvent","_initialScroll_current","attempted","bounds","bounded","min","initial","target","abs","scheduleScroll","complete","attachList","_revealIntent_current","_revealIntent_current1","requestId","step","step1","currentList","getAbsoluteLastScrollOffset","intent","scrollToOffset","animated","notified","notifiedExpansion","some","findIndex","item","layout","getLayout","top","y","nextOffset","visible","range","computeVisibleIndices","startIndex","endIndex","isHeightMeasured","scrollToIndex","_flashListRef_current","focusRow","collapsedSelectedAncestors","path","filter","canReorder","Boolean","dragUi","setDragUi","settle","setSettle","announcement","setAnnouncement","dragScrollY","setDragScrollY","dragUiRef","scrollOffsetRef","pointerPosRef","x","grabOffsetRef","suppressClickRef","sessionCleanupRef","autoScrollRafRef","pendingMoveFlipRef","_sessionCleanupRef_current","call","dndRows","topOfFlatIndex","flatIndex","i","announce","a","_a_parent","parent","text","type","hitTest","clientY","ui","_containerRef_current_getBoundingClientRect","localY","rows","getHeight","session","draggedSubtree","subtree","stopAutoScroll","startAutoScroll","tick","tick1","mode","vy","pos","start","end","bottom","edge","maxSpeed","hit","indicator","endDrag","commit","resolved","canCommit","dest","expectedIds","_dndRows_find","nextNodes","nodeId","to","destFlat","indexOf","parentRow","find","r","homeX","originFlat","f","hideId","prevIds","label","pending","currentIds","map","same","same2","b","v","_containerRef_current_querySelector","el","querySelector","last","stableFrames","check","check1","getComputedStyle","transform","beginPointerDrag","flat","rowEl","clientX","container","rowRect","containerRect","left","sourceDepth","ghost","handleDragHandlePointerDown","e","_e_pointerType","_e_stopPropagation","_handleEl_closest","window","button","stopPropagation","handleEl","currentTarget","closest","startX","startY","pointerType","lifted","longPressTimer","prevUserSelect","prevCursor","lift","lift2","body","style","userSelect","documentElement","cursor","teardown","teardown2","clearTimeout","removeEventListener","onMove","onUp","onCancel","onKey","onTouchMove","onContextMenu","setTimeout","onMove2","me","_ref14","_ref15","travelled","hypot","onUp2","wasLifted","onCancel2","onKey2","ke","key","onTouchMove2","te","preventDefault","onContextMenu2","ce","addEventListener","passive","p","liftFocusedNode","moveKeyboardDrag","direction","updated","kind","hotkeyOpts","expand","child","collapse","parentIndex","toggle","_dragUiRef_current","select","first","handleTreeKeyDown","_e_preventDefault","ctrlKey","metaKey","altKey","now","Date","state","query","toLowerCase","n","idx","startsWith","title","effectiveFocused","resolvedAriaLabel","overlayNode","overlayHasChildren","handleOutset","containerRadius","overflow","ref","role","tabIndex","outlineWidth","outlineStyle","onFocus","onBlur","onKeyDown","onLayout","onWheel","onPointerDown","position","data","drawDistance","keyExtractor","onLoad","onCommitLayoutEffect","onContentSizeChange","onScrollBeginDrag","extraData","focused","onScroll","_e_nativeEvent_contentOffset","_e_nativeEvent","nativeEvent","contentOffset","scrollEventThrottle","renderItem","param2","_ref22","_dragUi_indicator2","isFocused","isSelected","leadingIcon","iconWhenExpanded","icon","containsSelected","groupPosition","labelContent","color","numberOfLines","flexShrink","armed","entering","delta","deltas","rowY","inDraggedSubtree","isSettleHidden","isDropParent","rowOpacity","rowTransition","row","alignItems","minHeight","paddingVertical","paddingInlineEnd","paddingHorizontal","paddingInlineStart","opacity","borderRadius","_e_nativeEvent_layout","h","set","backgroundColor","interactive","background","hoverStyle","hoverKnobProps","pressStyle","pressKnobProps","onPress","alignSelf","pointerEvents","Array","from","_","guide","inset","vline","right","justifyContent","rotate","flex","minWidth","marginVertical","hitSlop","textAccentColor","zIndex","borderWidth","borderColor","enterStyle","scale"],"sources":["TreeView.native.js"],"sourcesContent":["import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { componentColors } from \"../componentColors\";\nimport { EmptyState } from \"../layouts/page\";\nimport { FlashList } from \"@shopify/flash-list\";\nimport { MIN_PRESS_TARGET, ensureKeyboardModalityTracking, getGroupPosition, hairline, keyboardFocusRingProps, pressTargetHitSlop, stackRadiusProps, useReadableTextOn, useResolvedKnobs, wasKeyboardFocus } from \"@multiplatform.one/theme\";\nimport { CaretLeftIcon, CaretRightIcon, DotsSixVerticalIcon, FileIcon, FolderIcon, FolderOpenIcon } from \"@phosphor-icons/react\";\nimport { useDirection } from \"../hooks/useDirection\";\nimport { useHotkey } from \"@tanstack/react-hotkeys\";\nimport React, { useCallback, useEffect, useId, useLayoutEffect, useMemo, useRef, useState } from \"react\";\nimport { useTranslation } from \"../shared/i18n\";\nimport { Text, View, XStack, YStack, isWeb, styled } from \"tamagui\";\nimport { autoScrollVelocity } from \"./kanbanDnd\";\nimport { applyTreeMove, describeTreeCancel, describeTreeDragState, flattenDndRows, indicatorForTarget, resolveTreeDrop, subtreeIds, treeDropTargetForY, treeKeyboardLift, treeKeyboardMove } from \"./treeViewDnd\";\nimport { diffVisibleRows, flattenVisibleIds, isEmptyDiff } from \"./treeViewMotion\";\nimport { treeRevealExpansion, treeRevealOffset } from \"./treeViewReveal\";\nimport { TREE_LIFT_SHADOW, treeDefaultHeight, treeEdgeRowPad, treeIndentStep } from \"./treeViewLayout\";\nvar DragHandleTarget = styled(View, {\n name: \"DragHandleTarget\"\n});\nvar ENTER_RISE_PX = -4;\nvar DRAG_THRESHOLD_PX = 4;\nvar TOUCH_LONG_PRESS_MS = 200;\nvar AUTO_SCROLL_EDGE_PX = 48;\nvar AUTO_SCROLL_MAX_SPEED = 16;\nvar LIFT_SHADOW = TREE_LIFT_SHADOW;\nfunction collectBranchIds(items) {\n var into = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : /* @__PURE__ */ new Set();\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = items[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var node = _step.value;\n var _ref;\n var _node_children;\n if (((_ref = (_node_children = node.children) === null || _node_children === void 0 ? void 0 : _node_children.length) !== null && _ref !== void 0 ? _ref : 0) > 0) {\n into.add(node.id);\n collectBranchIds(node.children, into);\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return into;\n}\nfunction findNodePath(items, id) {\n var trail = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : [];\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = items[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var node = _step.value;\n var _node_children;\n if (node.id === id) return trail;\n if ((_node_children = node.children) === null || _node_children === void 0 ? void 0 : _node_children.length) {\n var found = findNodePath(node.children, id, [\n ...trail,\n node.id\n ]);\n if (found) return found;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return null;\n}\nvar TYPEAHEAD_MS = 600;\nfunction defaultNodeIcon(hasChildren, isExpanded, iconSize) {\n if (hasChildren) {\n return isExpanded ? /* @__PURE__ */ _jsx(FolderOpenIcon, {\n size: iconSize,\n weight: \"duotone\"\n }) : /* @__PURE__ */ _jsx(FolderIcon, {\n size: iconSize,\n weight: \"duotone\"\n });\n }\n return /* @__PURE__ */ _jsx(FileIcon, {\n size: iconSize,\n weight: \"duotone\"\n });\n}\nfunction TreeView(param) {\n var { nodes, renderNode, onNodeToggle, onNodeSelect, onNodeMove, estimateSize: estimateSizeProp, overscan = 10, height: heightProp, initialScrollOffset, onScrollOffsetChange, emptyMessage: emptyMessageProp, defaultExpandedIds, expandedIds: controlledExpandedIds, onExpandedIdsChange, revealRequest, onRevealComplete, expandByDefault = false, display = \"default\", showExpansionArrows = true, selectedId, ariaLabel, hotkeys: hotkeyOverrides, ...stackProps } = param;\n var _ref, _ref1, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9, _ref10, _ref11, _ref12, _overlayNode_icon;\n var _overlayNode_children, _dragUi_indicator, _dragUi_ghost, _dragUi_ghost1;\n var { t } = useTranslation();\n var emptyMessage = emptyMessageProp !== null && emptyMessageProp !== void 0 ? emptyMessageProp : t(\"No items found\");\n var compressed = display === \"compressed\";\n var { knobProps, control } = useResolvedKnobs(compressed ? {\n compact: true\n } : void 0);\n var onAccentLabel = useReadableTextOn(\"$accentBackground\");\n var transition = knobProps.transition;\n var nestedPx = knobProps.nestedControl.px;\n var rowGap = knobProps.control.gap;\n var iconSize = knobProps.controlIcon.width;\n var estimateSize = estimateSizeProp !== null && estimateSizeProp !== void 0 ? estimateSizeProp : nestedPx;\n var height = heightProp !== null && heightProp !== void 0 ? heightProp : treeDefaultHeight(nestedPx);\n var expandIconSize = iconSize;\n var nodeIconSize = iconSize;\n var caretSize = iconSize;\n var isRTL = useDirection() === \"rtl\";\n var CollapsedCaretIcon = isRTL ? CaretLeftIcon : CaretRightIcon;\n var expandedCaretRotation = isRTL ? \"-90deg\" : \"90deg\";\n var indentStep = treeIndentStep(nestedPx);\n var rowPad = treeEdgeRowPad(knobProps.space);\n var treeId = useId();\n var containerRef = useRef(null);\n var flashListRef = useRef(null);\n var initialScroll = useRef(initialScrollOffset === void 0 ? void 0 : {\n offset: Number.isFinite(initialScrollOffset) ? Math.max(0, initialScrollOffset) : 0\n });\n var cancelInitialScroll = useCallback(function() {\n initialScroll.current = void 0;\n }, []);\n var hasNodes = nodes.length > 0;\n var listInstance = useMemo(function() {\n return {\n hasNodes,\n attached: false,\n loaded: false,\n indexScrollRequested: false,\n offset: 0\n };\n }, [\n hasNodes\n ]);\n var scrollActive = useRef(true);\n var lastReportedOffset = useRef(void 0);\n var offsetCallback = useRef(onScrollOffsetChange);\n useLayoutEffect(function() {\n offsetCallback.current = onScrollOffsetChange;\n }, [\n onScrollOffsetChange\n ]);\n var [focusedIndex, setFocusedIndex] = useState(-1);\n var [keyboardRing, setKeyboardRing] = useState(false);\n var typeaheadRef = useRef({\n buffer: \"\",\n at: 0\n });\n if (typeof document !== \"undefined\") ensureKeyboardModalityTracking();\n var handleContainerFocus = useCallback(function() {\n var kb = wasKeyboardFocus();\n setKeyboardRing(kb);\n if (kb) setFocusedIndex(function(prev) {\n return prev < 0 ? 0 : prev;\n });\n }, []);\n var handleContainerBlur = useCallback(function() {\n setKeyboardRing(false);\n }, []);\n var [internalExpandedIds, setInternalExpandedIds] = useState(function() {\n if (defaultExpandedIds) return new Set(defaultExpandedIds);\n if (expandByDefault) return collectBranchIds(nodes);\n return /* @__PURE__ */ new Set();\n });\n var expandedIds = useMemo(function() {\n return controlledExpandedIds === void 0 ? internalExpandedIds : new Set(controlledExpandedIds);\n }, [\n controlledExpandedIds,\n internalExpandedIds\n ]);\n var setExpandedIds = useCallback(function(next) {\n if (controlledExpandedIds === void 0) setInternalExpandedIds(new Set(next));\n onExpandedIdsChange === null || onExpandedIdsChange === void 0 ? void 0 : onExpandedIdsChange([\n ...next\n ]);\n }, [\n controlledExpandedIds,\n onExpandedIdsChange\n ]);\n var [motion, setMotion] = useState(null);\n var rowHeights = useRef(/* @__PURE__ */ new Map());\n var getRowHeight = useCallback(function(id) {\n var _rowHeights_current_get;\n return (_rowHeights_current_get = rowHeights.current.get(id)) !== null && _rowHeights_current_get !== void 0 ? _rowHeights_current_get : estimateSize;\n }, [\n estimateSize\n ]);\n var toggleNode = useCallback(function(node) {\n cancelInitialScroll();\n var next = new Set(expandedIds);\n if (next.has(node.id)) {\n next.delete(node.id);\n } else {\n next.add(node.id);\n }\n setExpandedIds(next);\n onNodeToggle === null || onNodeToggle === void 0 ? void 0 : onNodeToggle(node);\n }, [\n expandedIds,\n setExpandedIds,\n onNodeToggle,\n cancelInitialScroll\n ]);\n var previousExpandedIds = useRef(expandedIds);\n useLayoutEffect(function() {\n var previous = previousExpandedIds.current;\n previousExpandedIds.current = expandedIds;\n if (previous.size === expandedIds.size && [\n ...previous\n ].every(function(id) {\n return expandedIds.has(id);\n })) return;\n if (transition) {\n var diff = diffVisibleRows(flattenVisibleIds(nodes, previous), flattenVisibleIds(nodes, expandedIds), getRowHeight);\n setMotion(isEmptyDiff(diff) ? null : {\n phase: \"armed\",\n ...diff\n });\n } else {\n setMotion(null);\n }\n }, [\n expandedIds,\n nodes,\n transition,\n getRowHeight\n ]);\n useLayoutEffect(function() {\n if ((motion === null || motion === void 0 ? void 0 : motion.phase) !== \"armed\") return;\n var raf = requestAnimationFrame(function() {\n setMotion(function(m) {\n return m && m.phase === \"armed\" ? {\n ...m,\n phase: \"play\"\n } : m;\n });\n });\n return function() {\n return cancelAnimationFrame(raf);\n };\n }, [\n motion\n ]);\n var flatNodes = useMemo(function() {\n var result = [];\n var walk = function walk1(items, depth, parentId) {\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = items[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var node = _step.value;\n var _ref13;\n var _node_children;\n var hasChildren = ((_ref13 = (_node_children = node.children) === null || _node_children === void 0 ? void 0 : _node_children.length) !== null && _ref13 !== void 0 ? _ref13 : 0) > 0;\n var isExpanded = expandedIds.has(node.id);\n result.push({\n node,\n depth,\n hasChildren,\n isExpanded,\n index: result.length,\n parentId\n });\n if (isExpanded && node.children) {\n walk(node.children, depth + 1, node.id);\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n };\n walk(nodes, 0, null);\n return result;\n }, [\n nodes,\n expandedIds\n ]);\n var revealIntent = useRef(void 0);\n var scrollFrame = useRef(void 0);\n var scrollStep = useRef(function() {\n });\n var renderedRows = useRef(/* @__PURE__ */ new Set());\n var scrollBounds = useCallback(function() {\n var list = flashListRef.current;\n if (!scrollActive.current || !listInstance.attached || !listInstance.loaded || !list) return;\n if (isWeb) {\n var _containerRef_current;\n var rect = (_containerRef_current = containerRef.current) === null || _containerRef_current === void 0 ? void 0 : _containerRef_current.getBoundingClientRect();\n if (!rect || !(rect.width > 0) || !(rect.height > 0)) return;\n }\n var viewport = list.getWindowSize();\n var contentHeight = list.getChildContainerDimensions().height + list.getFirstItemOffset();\n if (!Number.isFinite(viewport.width) || viewport.width <= 0 || !Number.isFinite(viewport.height) || viewport.height <= 0 || !Number.isFinite(contentHeight) || contentHeight <= 0) return;\n return {\n list,\n width: viewport.width,\n height: viewport.height,\n contentHeight,\n maxOffset: Math.max(0, contentHeight - viewport.height)\n };\n }, [\n listInstance\n ]);\n var observeOffset = useCallback(function(offset) {\n var fromEvent = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false;\n var _initialScroll_current;\n if (!scrollActive.current || !listInstance.attached || !Number.isFinite(offset)) return;\n if (fromEvent && ((_initialScroll_current = initialScroll.current) === null || _initialScroll_current === void 0 ? void 0 : _initialScroll_current.attempted) === void 0 && offset !== listInstance.offset) {\n cancelInitialScroll();\n }\n listInstance.offset = offset;\n var bounds = scrollBounds();\n if (!bounds) return;\n var bounded = Math.max(0, Math.min(offset, bounds.maxOffset));\n var initial = initialScroll.current;\n if (initial) {\n var target = Math.min(initial.offset, bounds.maxOffset);\n if (initial.attempted ? Math.abs(bounded - target) >= 1 : bounded !== target) return;\n initialScroll.current = void 0;\n }\n if (offsetCallback.current && lastReportedOffset.current !== bounded) {\n lastReportedOffset.current = bounded;\n offsetCallback.current(bounded);\n }\n }, [\n cancelInitialScroll,\n scrollBounds,\n listInstance\n ]);\n var scheduleScroll = useCallback(function() {\n if (!scrollActive.current || !listInstance.attached || scrollFrame.current !== void 0) return;\n if (!initialScroll.current && (!revealIntent.current || revealIntent.current.complete) && !offsetCallback.current) return;\n scrollFrame.current = requestAnimationFrame(function() {\n scrollFrame.current = void 0;\n if (listInstance.attached) scrollStep.current();\n });\n }, [\n listInstance\n ]);\n var attachList = useCallback(function(list) {\n flashListRef.current = list;\n listInstance.attached = list !== null;\n if (!list) {\n listInstance.loaded = false;\n if (initialScroll.current) initialScroll.current.attempted = void 0;\n if (scrollFrame.current !== void 0) cancelAnimationFrame(scrollFrame.current);\n scrollFrame.current = void 0;\n }\n }, [\n listInstance\n ]);\n useLayoutEffect(function() {\n scrollActive.current = true;\n return function() {\n scrollActive.current = false;\n revealIntent.current = void 0;\n if (scrollFrame.current !== void 0) cancelAnimationFrame(scrollFrame.current);\n scrollFrame.current = void 0;\n };\n }, []);\n useLayoutEffect(function() {\n var _revealIntent_current, _revealIntent_current1;\n if (!revealRequest) {\n revealIntent.current = void 0;\n } else if (((_revealIntent_current = revealIntent.current) === null || _revealIntent_current === void 0 ? void 0 : _revealIntent_current.id) !== revealRequest.id || ((_revealIntent_current1 = revealIntent.current) === null || _revealIntent_current1 === void 0 ? void 0 : _revealIntent_current1.requestId) !== revealRequest.requestId) {\n cancelInitialScroll();\n revealIntent.current = {\n ...revealRequest,\n complete: false\n };\n }\n var step = function step1() {\n var currentList = flashListRef.current;\n if (currentList) {\n observeOffset(listInstance.indexScrollRequested ? listInstance.offset : currentList.getAbsoluteLastScrollOffset());\n }\n if (!scrollActive.current) return;\n if (scrollStep.current !== step) {\n scheduleScroll();\n return;\n }\n var intent = revealIntent.current;\n if (!intent || intent.complete) {\n var initial = initialScroll.current;\n var bounds = scrollBounds();\n if (!initial || !bounds || flatNodes.length === 0) return;\n var target = Math.min(initial.offset, bounds.maxOffset);\n var attempted = initial.attempted;\n if (!attempted || attempted.target !== target || attempted.width !== bounds.width || attempted.height !== bounds.height || attempted.contentHeight !== bounds.contentHeight) {\n initial.attempted = {\n target,\n width: bounds.width,\n height: bounds.height,\n contentHeight: bounds.contentHeight\n };\n bounds.list.scrollToOffset({\n offset: target,\n animated: false\n });\n }\n return;\n }\n var next = treeRevealExpansion(nodes, expandedIds, intent.id);\n if (!next) return;\n if (next !== expandedIds) {\n var notified = intent.notifiedExpansion;\n if (!notified || notified.size !== next.size || [\n ...next\n ].some(function(id) {\n return !notified.has(id);\n })) {\n intent.notifiedExpansion = next;\n setExpandedIds(next);\n }\n return;\n }\n if (motion) {\n setMotion(null);\n return;\n }\n var list = flashListRef.current;\n var index = flatNodes.findIndex(function(item) {\n return item.node.id === intent.id;\n });\n if (!list || index < 0) return;\n if (isWeb) {\n var _containerRef_current;\n var rect = (_containerRef_current = containerRef.current) === null || _containerRef_current === void 0 ? void 0 : _containerRef_current.getBoundingClientRect();\n if (!rect || rect.width <= 0 || rect.height <= 0) return;\n }\n var viewport = list.getWindowSize();\n if (viewport.width <= 0) return;\n var layout = list.getLayout(index);\n if (!layout) return;\n var offset = listInstance.indexScrollRequested ? listInstance.offset : list.getAbsoluteLastScrollOffset();\n var top = layout.y + list.getFirstItemOffset();\n var nextOffset = treeRevealOffset({\n y: top,\n height: layout.height\n }, offset, viewport.height);\n if (nextOffset === void 0) return;\n if (Math.abs(nextOffset - offset) < 1) {\n var visible = top < offset + viewport.height && top + layout.height > offset;\n if (!listInstance.indexScrollRequested) {\n var range = list.computeVisibleIndices();\n visible = visible && index >= range.startIndex && index <= range.endIndex;\n }\n if (revealIntent.current === intent && layout.isHeightMeasured && renderedRows.current.has(intent.id) && visible) {\n intent.complete = true;\n onRevealComplete === null || onRevealComplete === void 0 ? void 0 : onRevealComplete({\n id: intent.id,\n requestId: intent.requestId\n });\n }\n return;\n }\n list.scrollToOffset({\n offset: nextOffset,\n animated: false\n });\n };\n scrollStep.current = step;\n scheduleScroll();\n }, [\n nodes,\n expandedIds,\n setExpandedIds,\n flatNodes,\n revealRequest === null || revealRequest === void 0 ? void 0 : revealRequest.id,\n revealRequest === null || revealRequest === void 0 ? void 0 : revealRequest.requestId,\n onRevealComplete,\n height,\n motion,\n scheduleScroll,\n cancelInitialScroll,\n observeOffset,\n scrollBounds,\n listInstance\n ]);\n var scrollToIndex = useCallback(function(index) {\n if (index >= 0 && index < flatNodes.length) {\n var _flashListRef_current;\n cancelInitialScroll();\n listInstance.indexScrollRequested = true;\n (_flashListRef_current = flashListRef.current) === null || _flashListRef_current === void 0 ? void 0 : _flashListRef_current.scrollToIndex({\n index,\n animated: true\n });\n }\n }, [\n flatNodes.length,\n cancelInitialScroll,\n listInstance\n ]);\n var focusRow = useCallback(function(index) {\n setKeyboardRing(true);\n setFocusedIndex(index);\n scrollToIndex(index);\n }, [\n scrollToIndex\n ]);\n var collapsedSelectedAncestors = useMemo(function() {\n if (!selectedId) return /* @__PURE__ */ new Set();\n var path = findNodePath(nodes, selectedId);\n if (!path) return /* @__PURE__ */ new Set();\n return new Set(path.filter(function(id) {\n return !expandedIds.has(id);\n }));\n }, [\n nodes,\n selectedId,\n expandedIds\n ]);\n var canReorder = Boolean(onNodeMove);\n var [dragUi, setDragUi] = useState(null);\n var [settle, setSettle] = useState(null);\n var [announcement, setAnnouncement] = useState(\"\");\n var [dragScrollY, setDragScrollY] = useState(0);\n var dragUiRef = useRef(null);\n dragUiRef.current = dragUi;\n var scrollOffsetRef = useRef(0);\n var pointerPosRef = useRef({\n x: 0,\n y: 0\n });\n var grabOffsetRef = useRef({\n x: 0,\n y: 0\n });\n var suppressClickRef = useRef(false);\n var sessionCleanupRef = useRef(null);\n var autoScrollRafRef = useRef(null);\n var pendingMoveFlipRef = useRef(null);\n useEffect(function() {\n return function() {\n var _sessionCleanupRef_current;\n return (_sessionCleanupRef_current = sessionCleanupRef.current) === null || _sessionCleanupRef_current === void 0 ? void 0 : _sessionCleanupRef_current.call(sessionCleanupRef);\n };\n }, []);\n var dndRows = useMemo(function() {\n return flattenDndRows(nodes, expandedIds);\n }, [\n nodes,\n expandedIds\n ]);\n var topOfFlatIndex = useCallback(function(flatIndex) {\n var top = 0;\n for (var i = 0; i < flatIndex && i < flatNodes.length; i++) {\n top += getRowHeight(flatNodes[i].node.id);\n }\n return top;\n }, [\n flatNodes,\n getRowHeight\n ]);\n var announce = useCallback(function(a) {\n var _a_parent;\n var parent = (_a_parent = a.parent) !== null && _a_parent !== void 0 ? _a_parent : t(\"top level\");\n var text = a.type === \"lift\" ? t(\"Lifted {{node}} in {{parent}}, position {{position}} of {{count}}. Use arrow keys to move, space to drop, escape to cancel.\", {\n ...a,\n parent\n }) : a.type === \"move\" ? t(\"Moved {{node}} to {{parent}}, position {{position}} of {{count}}.\", {\n ...a,\n parent\n }) : a.type === \"drop\" ? t(\"Dropped {{node}} in {{parent}}, position {{position}} of {{count}}.\", {\n ...a,\n parent\n }) : t(\"Movement cancelled. {{node}} returned to {{parent}}.\", {\n ...a,\n parent\n });\n setAnnouncement(text);\n }, [\n t\n ]);\n var hitTest = useCallback(function(clientY, ui) {\n var _containerRef_current_getBoundingClientRect, _containerRef_current;\n var rect = (_containerRef_current = containerRef.current) === null || _containerRef_current === void 0 ? void 0 : (_containerRef_current_getBoundingClientRect = _containerRef_current.getBoundingClientRect) === null || _containerRef_current_getBoundingClientRect === void 0 ? void 0 : _containerRef_current_getBoundingClientRect.call(_containerRef_current);\n if (!rect) return null;\n return treeDropTargetForY({\n localY: clientY - rect.top + scrollOffsetRef.current,\n rows: dndRows,\n getHeight: getRowHeight,\n session: ui.session,\n draggedSubtree: ui.subtree\n });\n }, [\n dndRows,\n getRowHeight\n ]);\n var stopAutoScroll = useCallback(function() {\n if (autoScrollRafRef.current !== null) cancelAnimationFrame(autoScrollRafRef.current);\n autoScrollRafRef.current = null;\n }, []);\n var startAutoScroll = useCallback(function() {\n stopAutoScroll();\n var tick = function tick1() {\n var _containerRef_current_getBoundingClientRect, _containerRef_current;\n var ui = dragUiRef.current;\n if (!ui || ui.mode !== \"pointer\") {\n autoScrollRafRef.current = null;\n return;\n }\n var rect = (_containerRef_current = containerRef.current) === null || _containerRef_current === void 0 ? void 0 : (_containerRef_current_getBoundingClientRect = _containerRef_current.getBoundingClientRect) === null || _containerRef_current_getBoundingClientRect === void 0 ? void 0 : _containerRef_current_getBoundingClientRect.call(_containerRef_current);\n if (rect) {\n var vy = autoScrollVelocity({\n pos: pointerPosRef.current.y,\n start: rect.top,\n end: rect.bottom,\n edge: AUTO_SCROLL_EDGE_PX,\n maxSpeed: AUTO_SCROLL_MAX_SPEED\n });\n if (vy !== 0) {\n var max = Math.max(0, topOfFlatIndex(flatNodes.length) - rect.height);\n var next = Math.min(max, Math.max(0, scrollOffsetRef.current + vy));\n if (next !== scrollOffsetRef.current) {\n var _flashListRef_current;\n scrollOffsetRef.current = next;\n (_flashListRef_current = flashListRef.current) === null || _flashListRef_current === void 0 ? void 0 : _flashListRef_current.scrollToOffset({\n offset: next,\n animated: false\n });\n setDragScrollY(next);\n var hit = hitTest(pointerPosRef.current.y, ui);\n if (hit) {\n setDragUi(function(prev) {\n return prev ? {\n ...prev,\n session: {\n ...prev.session,\n target: hit.target\n },\n indicator: hit.indicator\n } : prev;\n });\n }\n }\n }\n }\n autoScrollRafRef.current = requestAnimationFrame(tick);\n };\n autoScrollRafRef.current = requestAnimationFrame(tick);\n }, [\n flatNodes.length,\n hitTest,\n stopAutoScroll,\n topOfFlatIndex\n ]);\n var endDrag = useCallback(function(commit) {\n var _sessionCleanupRef_current;\n var ui = dragUiRef.current;\n if (!ui) return;\n stopAutoScroll();\n (_sessionCleanupRef_current = sessionCleanupRef.current) === null || _sessionCleanupRef_current === void 0 ? void 0 : _sessionCleanupRef_current.call(sessionCleanupRef);\n sessionCleanupRef.current = null;\n var resolved = resolveTreeDrop(ui.session);\n var canCommit = commit && resolved.commit && Boolean(onNodeMove);\n var dest = null;\n var expectedIds = null;\n if (canCommit) {\n var _dndRows_find;\n var nextNodes = applyTreeMove(nodes, ui.session.nodeId, resolved.to);\n expectedIds = flattenVisibleIds(nextNodes, expandedIds);\n var destFlat = expectedIds.indexOf(ui.session.nodeId);\n var parentRow = resolved.to.parentId === null ? null : (_dndRows_find = dndRows.find(function(r) {\n return r.id === resolved.to.parentId;\n })) !== null && _dndRows_find !== void 0 ? _dndRows_find : null;\n var top = 0;\n if (destFlat >= 0) {\n for (var i = 0; i < destFlat; i++) top += getRowHeight(expectedIds[i]);\n } else if (parentRow) {\n top = topOfFlatIndex(dndRows.indexOf(parentRow));\n }\n dest = {\n x: ui.homeX,\n y: top - scrollOffsetRef.current\n };\n } else {\n var originFlat = flatNodes.findIndex(function(f) {\n return f.node.id === ui.session.nodeId;\n });\n dest = {\n x: ui.homeX,\n y: (originFlat >= 0 ? topOfFlatIndex(originFlat) : 0) - scrollOffsetRef.current\n };\n }\n setDragUi(null);\n dragUiRef.current = null;\n if (ui.mode === \"pointer\" && dest) {\n setSettle({\n node: ui.node,\n width: ui.width,\n height: ui.height,\n to: dest,\n hideId: canCommit ? ui.session.nodeId : void 0\n });\n }\n if (canCommit && expectedIds) {\n if (transition) {\n pendingMoveFlipRef.current = {\n prevIds: flattenVisibleIds(nodes, expandedIds),\n expectedIds\n };\n }\n announce(describeTreeDragState(\"drop\", ui.session, nodes, ui.node.label));\n onNodeMove === null || onNodeMove === void 0 ? void 0 : onNodeMove(ui.session.nodeId, resolved.to);\n } else {\n announce(describeTreeCancel(ui.session, nodes, ui.node.label));\n }\n }, [\n announce,\n dndRows,\n expandedIds,\n flatNodes,\n getRowHeight,\n nodes,\n onNodeMove,\n stopAutoScroll,\n topOfFlatIndex,\n transition\n ]);\n useLayoutEffect(function() {\n var pending = pendingMoveFlipRef.current;\n if (!pending) return;\n var currentIds = flatNodes.map(function(f) {\n return f.node.id;\n });\n var same = function same2(a, b) {\n return a.length === b.length && a.every(function(v, i) {\n return v === b[i];\n });\n };\n if (same(currentIds, pending.prevIds)) return;\n pendingMoveFlipRef.current = null;\n if (!same(currentIds, pending.expectedIds)) return;\n var diff = diffVisibleRows(pending.prevIds, pending.expectedIds, getRowHeight);\n if (!isEmptyDiff(diff)) setMotion({\n phase: \"armed\",\n ...diff\n });\n }, [\n flatNodes,\n getRowHeight\n ]);\n useEffect(function() {\n var _containerRef_current_querySelector, _containerRef_current;\n if (!settle) return;\n var el = (_containerRef_current = containerRef.current) === null || _containerRef_current === void 0 ? void 0 : (_containerRef_current_querySelector = _containerRef_current.querySelector) === null || _containerRef_current_querySelector === void 0 ? void 0 : _containerRef_current_querySelector.call(_containerRef_current, \"[data-treeview-overlay]\");\n if (!el || typeof requestAnimationFrame === \"undefined\") {\n setSettle(null);\n return;\n }\n var last = null;\n var stableFrames = 0;\n var raf = 0;\n var check = function check1() {\n var current = getComputedStyle(el).transform;\n if (current === last) stableFrames += 1;\n else {\n stableFrames = 0;\n last = current;\n }\n if (stableFrames >= 3) {\n setSettle(null);\n return;\n }\n raf = requestAnimationFrame(check);\n };\n raf = requestAnimationFrame(check);\n return function() {\n return cancelAnimationFrame(raf);\n };\n }, [\n settle\n ]);\n var beginPointerDrag = useCallback(function(flat, rowEl, clientX, clientY) {\n var container = containerRef.current;\n if (!(container === null || container === void 0 ? void 0 : container.getBoundingClientRect)) return false;\n var session = treeKeyboardLift(nodes, flat.node.id);\n if (!session) return false;\n cancelInitialScroll();\n var rowRect = rowEl.getBoundingClientRect();\n var containerRect = container.getBoundingClientRect();\n grabOffsetRef.current = {\n x: clientX - rowRect.left,\n y: clientY - rowRect.top\n };\n pointerPosRef.current = {\n x: clientX,\n y: clientY\n };\n var ui = {\n mode: \"pointer\",\n node: flat.node,\n session,\n subtree: subtreeIds(nodes, flat.node.id),\n sourceDepth: flat.depth,\n homeX: rowRect.left - containerRect.left,\n width: rowRect.width,\n height: rowRect.height,\n indicator: null,\n ghost: {\n x: rowRect.left - containerRect.left,\n y: rowRect.top - containerRect.top\n }\n };\n setSettle(null);\n setDragScrollY(scrollOffsetRef.current);\n setDragUi(ui);\n dragUiRef.current = ui;\n announce(describeTreeDragState(\"lift\", session, nodes, flat.node.label));\n startAutoScroll();\n return true;\n }, [\n announce,\n nodes,\n startAutoScroll,\n cancelInitialScroll\n ]);\n var handleDragHandlePointerDown = useCallback(function(flat, e) {\n var _ref13, _e_pointerType;\n var _sessionCleanupRef_current, _e_stopPropagation, _handleEl_closest;\n if (!canReorder || typeof window === \"undefined\") return;\n if (e.button !== void 0 && e.button !== 0) return;\n if (dragUiRef.current) return;\n (_sessionCleanupRef_current = sessionCleanupRef.current) === null || _sessionCleanupRef_current === void 0 ? void 0 : _sessionCleanupRef_current.call(sessionCleanupRef);\n (_e_stopPropagation = e.stopPropagation) === null || _e_stopPropagation === void 0 ? void 0 : _e_stopPropagation.call(e);\n var handleEl = e.currentTarget;\n var rowEl = (_ref13 = (_handleEl_closest = handleEl.closest) === null || _handleEl_closest === void 0 ? void 0 : _handleEl_closest.call(handleEl, \"[data-treeview-row]\")) !== null && _ref13 !== void 0 ? _ref13 : handleEl;\n var startX = e.clientX;\n var startY = e.clientY;\n var pointerType = (_e_pointerType = e.pointerType) !== null && _e_pointerType !== void 0 ? _e_pointerType : \"mouse\";\n var lifted = false;\n var longPressTimer = null;\n var prevUserSelect = \"\";\n var prevCursor = \"\";\n var lift = function lift2(x, y) {\n if (lifted) return;\n lifted = beginPointerDrag(flat, rowEl, x, y);\n if (!lifted) return;\n prevUserSelect = document.body.style.userSelect;\n document.body.style.userSelect = \"none\";\n prevCursor = document.documentElement.style.cursor;\n document.documentElement.style.cursor = \"grabbing\";\n };\n var teardown = function teardown2() {\n if (longPressTimer !== null) clearTimeout(longPressTimer);\n window.removeEventListener(\"pointermove\", onMove);\n window.removeEventListener(\"pointerup\", onUp);\n window.removeEventListener(\"pointercancel\", onCancel);\n window.removeEventListener(\"keydown\", onKey, true);\n window.removeEventListener(\"touchmove\", onTouchMove);\n window.removeEventListener(\"contextmenu\", onContextMenu, true);\n sessionCleanupRef.current = null;\n if (lifted) {\n document.body.style.userSelect = prevUserSelect;\n document.documentElement.style.cursor = prevCursor;\n suppressClickRef.current = true;\n setTimeout(function() {\n suppressClickRef.current = false;\n }, 0);\n }\n };\n var onMove = function onMove2(me) {\n var _ref14, _ref15;\n var _containerRef_current_getBoundingClientRect, _containerRef_current;\n pointerPosRef.current = {\n x: me.clientX,\n y: me.clientY\n };\n if (!lifted) {\n var travelled = Math.hypot(me.clientX - startX, me.clientY - startY);\n if (pointerType === \"mouse\") {\n if (travelled >= DRAG_THRESHOLD_PX) lift(me.clientX, me.clientY);\n } else if (travelled >= DRAG_THRESHOLD_PX) {\n teardown();\n }\n if (!lifted) return;\n }\n var containerRect = (_containerRef_current = containerRef.current) === null || _containerRef_current === void 0 ? void 0 : (_containerRef_current_getBoundingClientRect = _containerRef_current.getBoundingClientRect) === null || _containerRef_current_getBoundingClientRect === void 0 ? void 0 : _containerRef_current_getBoundingClientRect.call(_containerRef_current);\n var ghost = {\n x: me.clientX - ((_ref14 = containerRect === null || containerRect === void 0 ? void 0 : containerRect.left) !== null && _ref14 !== void 0 ? _ref14 : 0) - grabOffsetRef.current.x,\n y: me.clientY - ((_ref15 = containerRect === null || containerRect === void 0 ? void 0 : containerRect.top) !== null && _ref15 !== void 0 ? _ref15 : 0) - grabOffsetRef.current.y\n };\n var ui = dragUiRef.current;\n if (!ui) return;\n var hit = hitTest(me.clientY, ui);\n setDragUi(function(prev) {\n return prev ? {\n ...prev,\n ghost,\n ...hit && {\n session: {\n ...prev.session,\n target: hit.target\n },\n indicator: hit.indicator\n }\n } : prev;\n });\n };\n var onUp = function onUp2() {\n var wasLifted = lifted;\n teardown();\n if (wasLifted) endDrag(true);\n };\n var onCancel = function onCancel2() {\n var wasLifted = lifted;\n teardown();\n if (wasLifted) endDrag(false);\n };\n var onKey = function onKey2(ke) {\n if (ke.key !== \"Escape\") return;\n ke.stopPropagation();\n var wasLifted = lifted;\n teardown();\n if (wasLifted) endDrag(false);\n };\n var onTouchMove = function onTouchMove2(te) {\n if (lifted) te.preventDefault();\n };\n var onContextMenu = function onContextMenu2(ce) {\n if (lifted || longPressTimer !== null) ce.preventDefault();\n };\n window.addEventListener(\"pointermove\", onMove);\n window.addEventListener(\"pointerup\", onUp);\n window.addEventListener(\"pointercancel\", onCancel);\n window.addEventListener(\"keydown\", onKey, true);\n window.addEventListener(\"touchmove\", onTouchMove, {\n passive: false\n });\n window.addEventListener(\"contextmenu\", onContextMenu, true);\n sessionCleanupRef.current = function() {\n var wasLifted = lifted;\n teardown();\n if (wasLifted) endDrag(false);\n };\n if (pointerType !== \"mouse\") {\n longPressTimer = setTimeout(function() {\n longPressTimer = null;\n var p = pointerPosRef.current;\n lift(p.x || startX, p.y || startY);\n }, TOUCH_LONG_PRESS_MS);\n pointerPosRef.current = {\n x: startX,\n y: startY\n };\n }\n }, [\n beginPointerDrag,\n canReorder,\n endDrag,\n hitTest\n ]);\n var liftFocusedNode = useCallback(function() {\n if (!canReorder || dragUiRef.current) return false;\n var flat = flatNodes[focusedIndex];\n if (!flat) return false;\n var session = treeKeyboardLift(nodes, flat.node.id);\n if (!session) return false;\n cancelInitialScroll();\n var ui = {\n mode: \"keyboard\",\n node: flat.node,\n session,\n subtree: subtreeIds(nodes, flat.node.id),\n sourceDepth: flat.depth,\n homeX: 0,\n width: 0,\n height: getRowHeight(flat.node.id),\n indicator: indicatorForTarget(dndRows, session, session.target)\n };\n setSettle(null);\n setDragScrollY(scrollOffsetRef.current);\n setDragUi(ui);\n dragUiRef.current = ui;\n announce(describeTreeDragState(\"lift\", session, nodes, flat.node.label));\n return true;\n }, [\n announce,\n canReorder,\n dndRows,\n flatNodes,\n focusedIndex,\n getRowHeight,\n nodes,\n cancelInitialScroll\n ]);\n var moveKeyboardDrag = useCallback(function(direction) {\n var ui = dragUiRef.current;\n if (!ui || ui.mode !== \"keyboard\") return false;\n var next = treeKeyboardMove(ui.session, nodes, direction);\n if (next === ui.session) return true;\n var indicator = indicatorForTarget(dndRows, next, next.target);\n var updated = {\n ...ui,\n session: next,\n indicator\n };\n setDragUi(updated);\n dragUiRef.current = updated;\n if (indicator.kind === \"line\" && flatNodes.length > 0) {\n scrollToIndex(Math.min(indicator.flatIndex, flatNodes.length - 1));\n }\n announce(describeTreeDragState(\"move\", next, nodes, ui.node.label));\n return true;\n }, [\n announce,\n dndRows,\n flatNodes.length,\n nodes,\n scrollToIndex\n ]);\n var hotkeyOpts = {\n target: containerRef\n };\n useHotkey((_ref = hotkeyOverrides === null || hotkeyOverrides === void 0 ? void 0 : hotkeyOverrides.next) !== null && _ref !== void 0 ? _ref : \"ArrowDown\", function() {\n if (moveKeyboardDrag(\"down\")) return;\n setKeyboardRing(true);\n setFocusedIndex(function(prev) {\n var next = prev < 0 ? 0 : Math.min(prev + 1, Math.max(0, flatNodes.length - 1));\n scrollToIndex(next);\n return next;\n });\n }, hotkeyOpts);\n useHotkey((_ref1 = hotkeyOverrides === null || hotkeyOverrides === void 0 ? void 0 : hotkeyOverrides.prev) !== null && _ref1 !== void 0 ? _ref1 : \"ArrowUp\", function() {\n if (moveKeyboardDrag(\"up\")) return;\n setKeyboardRing(true);\n setFocusedIndex(function(prev) {\n var next = prev < 0 ? flatNodes.length - 1 : Math.max(prev - 1, 0);\n if (next >= 0) scrollToIndex(next);\n return next;\n });\n }, hotkeyOpts);\n useHotkey((_ref2 = hotkeyOverrides === null || hotkeyOverrides === void 0 ? void 0 : hotkeyOverrides.expand) !== null && _ref2 !== void 0 ? _ref2 : \"ArrowRight\", function() {\n if (moveKeyboardDrag(\"right\")) return;\n if (focusedIndex >= 0 && focusedIndex < flatNodes.length) {\n var flat = flatNodes[focusedIndex];\n if (flat.hasChildren && !flat.isExpanded) {\n setKeyboardRing(true);\n toggleNode(flat.node);\n } else if (flat.hasChildren && flat.isExpanded) {\n var child = focusedIndex + 1;\n if (child < flatNodes.length && flatNodes[child].parentId === flat.node.id) {\n focusRow(child);\n }\n }\n }\n }, hotkeyOpts);\n useHotkey((_ref3 = hotkeyOverrides === null || hotkeyOverrides === void 0 ? void 0 : hotkeyOverrides.collapse) !== null && _ref3 !== void 0 ? _ref3 : \"ArrowLeft\", function() {\n if (moveKeyboardDrag(\"left\")) return;\n if (focusedIndex >= 0 && focusedIndex < flatNodes.length) {\n var flat = flatNodes[focusedIndex];\n if (flat.hasChildren && flat.isExpanded) {\n setKeyboardRing(true);\n toggleNode(flat.node);\n } else if (flat.parentId) {\n var parentIndex = flatNodes.findIndex(function(f) {\n return f.node.id === flat.parentId;\n });\n if (parentIndex >= 0) focusRow(parentIndex);\n }\n }\n }, hotkeyOpts);\n useHotkey((_ref4 = hotkeyOverrides === null || hotkeyOverrides === void 0 ? void 0 : hotkeyOverrides.toggle) !== null && _ref4 !== void 0 ? _ref4 : \"Space\", function() {\n var _dragUiRef_current;\n if (((_dragUiRef_current = dragUiRef.current) === null || _dragUiRef_current === void 0 ? void 0 : _dragUiRef_current.mode) === \"keyboard\") {\n endDrag(true);\n return;\n }\n if (canReorder) {\n liftFocusedNode();\n return;\n }\n if (focusedIndex >= 0 && focusedIndex < flatNodes.length) {\n var { node, hasChildren } = flatNodes[focusedIndex];\n if (hasChildren) {\n toggleNode(node);\n }\n }\n }, hotkeyOpts);\n useHotkey((_ref5 = hotkeyOverrides === null || hotkeyOverrides === void 0 ? void 0 : hotkeyOverrides.select) !== null && _ref5 !== void 0 ? _ref5 : \"Enter\", function() {\n var _dragUiRef_current;\n if (((_dragUiRef_current = dragUiRef.current) === null || _dragUiRef_current === void 0 ? void 0 : _dragUiRef_current.mode) === \"keyboard\") {\n endDrag(true);\n return;\n }\n if (focusedIndex >= 0 && focusedIndex < flatNodes.length) {\n onNodeSelect === null || onNodeSelect === void 0 ? void 0 : onNodeSelect(flatNodes[focusedIndex].node);\n }\n }, hotkeyOpts);\n useHotkey(\"Escape\", function() {\n var _dragUiRef_current;\n if (((_dragUiRef_current = dragUiRef.current) === null || _dragUiRef_current === void 0 ? void 0 : _dragUiRef_current.mode) === \"keyboard\") endDrag(false);\n }, hotkeyOpts);\n useHotkey((_ref6 = hotkeyOverrides === null || hotkeyOverrides === void 0 ? void 0 : hotkeyOverrides.first) !== null && _ref6 !== void 0 ? _ref6 : \"Home\", function() {\n if (flatNodes.length > 0) focusRow(0);\n }, hotkeyOpts);\n useHotkey((_ref7 = hotkeyOverrides === null || hotkeyOverrides === void 0 ? void 0 : hotkeyOverrides.last) !== null && _ref7 !== void 0 ? _ref7 : \"End\", function() {\n if (flatNodes.length > 0) focusRow(flatNodes.length - 1);\n }, hotkeyOpts);\n var handleTreeKeyDown = useCallback(function(e) {\n var _e_preventDefault;\n var key = e === null || e === void 0 ? void 0 : e.key;\n if (!key || key.length !== 1) return;\n if (e.ctrlKey || e.metaKey || e.altKey) return;\n if (key === \" \") return;\n if (dragUiRef.current) return;\n if (flatNodes.length === 0) return;\n (_e_preventDefault = e.preventDefault) === null || _e_preventDefault === void 0 ? void 0 : _e_preventDefault.call(e);\n var now = Date.now();\n var state = typeaheadRef.current;\n state.buffer = now - state.at > TYPEAHEAD_MS ? key : state.buffer + key;\n state.at = now;\n var query = state.buffer.toLowerCase();\n var start = focusedIndex >= 0 ? focusedIndex : -1;\n var n = flatNodes.length;\n for (var i = 1; i <= n; i++) {\n var idx = (start + i) % n;\n if (flatNodes[idx].node.label.toLowerCase().startsWith(query)) {\n focusRow(idx);\n return;\n }\n }\n }, [\n flatNodes,\n focusedIndex,\n focusRow\n ]);\n if (nodes.length === 0) {\n return /* @__PURE__ */ _jsx(EmptyState, {\n compact: true,\n title: emptyMessage,\n ...stackProps\n });\n }\n var effectiveFocused = focusedIndex >= flatNodes.length ? -1 : focusedIndex;\n var resolvedAriaLabel = ariaLabel !== null && ariaLabel !== void 0 ? ariaLabel : typeof stackProps[\"aria-label\"] === \"string\" ? stackProps[\"aria-label\"] : void 0;\n var overlayNode = (dragUi === null || dragUi === void 0 ? void 0 : dragUi.mode) === \"pointer\" ? dragUi.node : settle === null || settle === void 0 ? void 0 : settle.node;\n var overlayHasChildren = ((_ref8 = overlayNode === null || overlayNode === void 0 ? void 0 : (_overlayNode_children = overlayNode.children) === null || _overlayNode_children === void 0 ? void 0 : _overlayNode_children.length) !== null && _ref8 !== void 0 ? _ref8 : 0) > 0;\n var handleOutset = Math.max(0, (MIN_PRESS_TARGET - estimateSize) / 2);\n return /* @__PURE__ */ _jsx(YStack, {\n ...knobProps.containerRadius,\n overflow: \"hidden\",\n ...stackProps,\n children: /* @__PURE__ */ _jsxs(View, {\n ref: containerRef,\n role: \"tree\",\n \"aria-label\": resolvedAriaLabel,\n \"data-nested-px\": nestedPx,\n \"data-indent-step\": indentStep,\n \"data-space\": knobProps.space,\n \"data-size\": knobProps.size,\n \"data-viewport-height\": height,\n // Spec Part 3 TreeView: E-FLAT + SF-TRANSPARENT on this chromeless frame.\n \"data-elevation-class\": \"flat\",\n \"data-fill\": \"transparent\",\n \"aria-activedescendant\": effectiveFocused >= 0 ? `${treeId}-node-${effectiveFocused}` : void 0,\n tabIndex: 0,\n outlineWidth: 0,\n outlineStyle: \"none\",\n onFocus: handleContainerFocus,\n onBlur: handleContainerBlur,\n onKeyDown: handleTreeKeyDown,\n onLayout: scheduleScroll,\n ...isWeb && {\n onWheel: cancelInitialScroll,\n onPointerDown: cancelInitialScroll\n },\n position: \"relative\",\n style: {\n height\n },\n children: [\n /* @__PURE__ */ _jsx(FlashList, {\n ref: attachList,\n data: flatNodes,\n drawDistance: overscan * estimateSize,\n keyExtractor: function keyExtractor(item) {\n return item.node.id;\n },\n onLoad: function onLoad() {\n if (!scrollActive.current || !listInstance.attached) return;\n listInstance.loaded = true;\n scheduleScroll();\n },\n onCommitLayoutEffect: scheduleScroll,\n onContentSizeChange: scheduleScroll,\n onScrollBeginDrag: function onScrollBeginDrag() {\n if (scrollActive.current && listInstance.attached) cancelInitialScroll();\n },\n extraData: {\n focused: effectiveFocused,\n selectedId,\n expandedIds,\n motion,\n dragUi,\n settle,\n keyboardRing,\n collapsedSelectedAncestors\n },\n onScroll: function onScroll(e) {\n var _e_nativeEvent_contentOffset, _e_nativeEvent;\n if (!scrollActive.current || !listInstance.attached) return;\n var y = e === null || e === void 0 ? void 0 : (_e_nativeEvent = e.nativeEvent) === null || _e_nativeEvent === void 0 ? void 0 : (_e_nativeEvent_contentOffset = _e_nativeEvent.contentOffset) === null || _e_nativeEvent_contentOffset === void 0 ? void 0 : _e_nativeEvent_contentOffset.y;\n if (typeof y === \"number\" && Number.isFinite(y)) {\n scrollOffsetRef.current = y;\n if (dragUiRef.current) setDragScrollY(y);\n observeOffset(y, true);\n }\n scheduleScroll();\n },\n scrollEventThrottle: 16,\n renderItem: function renderItem(param2) {\n var { item, index } = param2;\n var _ref13, _ref14, _ref22;\n var _dragUi_indicator2;\n var { node, depth, hasChildren, isExpanded } = item;\n var isFocused = effectiveFocused === index;\n var isSelected = selectedId !== void 0 && selectedId === node.id;\n var leadingIcon = hasChildren && isExpanded && node.iconWhenExpanded ? node.iconWhenExpanded : node.icon ? node.icon : defaultNodeIcon(hasChildren, isExpanded, nodeIconSize);\n var containsSelected = collapsedSelectedAncestors.has(node.id);\n var groupPosition = getGroupPosition(index, flatNodes.length);\n var labelContent = renderNode ? renderNode(node, depth) : /* @__PURE__ */ _jsx(Text, {\n ...knobProps.body,\n ...knobProps.label,\n color: isSelected && onAccentLabel ? onAccentLabel : \"$color\",\n numberOfLines: 1,\n flexShrink: 1,\n children: node.label\n });\n var armed = (motion === null || motion === void 0 ? void 0 : motion.phase) === \"armed\";\n var entering = (_ref13 = motion === null || motion === void 0 ? void 0 : motion.entering.has(node.id)) !== null && _ref13 !== void 0 ? _ref13 : false;\n var delta = (_ref14 = motion === null || motion === void 0 ? void 0 : motion.deltas.get(node.id)) !== null && _ref14 !== void 0 ? _ref14 : 0;\n var rowY = armed ? entering ? ENTER_RISE_PX : delta : 0;\n var inDraggedSubtree = (_ref22 = dragUi === null || dragUi === void 0 ? void 0 : dragUi.subtree.has(node.id)) !== null && _ref22 !== void 0 ? _ref22 : false;\n var isSettleHidden = (settle === null || settle === void 0 ? void 0 : settle.hideId) === node.id;\n var isDropParent = (dragUi === null || dragUi === void 0 ? void 0 : (_dragUi_indicator2 = dragUi.indicator) === null || _dragUi_indicator2 === void 0 ? void 0 : _dragUi_indicator2.kind) === \"into\" && dragUi.indicator.parentId === node.id;\n var rowOpacity = isSettleHidden ? 0 : armed && entering ? 0 : inDraggedSubtree ? 0.4 : 1;\n var rowTransition = armed && (entering || delta !== 0) ? \"none\" : transition;\n return /* @__PURE__ */ _jsxs(\n XStack,\n {\n ref: function ref(row) {\n if (row) renderedRows.current.add(node.id);\n else renderedRows.current.delete(node.id);\n scheduleScroll();\n },\n id: `${treeId}-node-${index}`,\n \"data-treeview-row\": node.id,\n ...isDropParent && {\n \"data-treeview-drop-parent\": \"true\"\n },\n ...isFocused && {\n \"data-focused\": true\n },\n \"data-group-position\": groupPosition,\n role: \"treeitem\",\n \"aria-expanded\": hasChildren ? isExpanded : void 0,\n \"aria-selected\": isSelected,\n \"aria-level\": depth + 1,\n \"aria-setsize\": flatNodes.length,\n \"aria-posinset\": index + 1,\n alignItems: \"center\",\n minHeight: estimateSize,\n paddingVertical: rowPad.paddingVertical,\n paddingInlineEnd: rowPad.paddingHorizontal,\n paddingInlineStart: rowPad.paddingHorizontal,\n gap: rowGap,\n cursor: \"pointer\",\n position: \"relative\",\n y: rowY,\n opacity: rowOpacity,\n transition: rowTransition,\n ...stackRadiusProps(groupPosition, knobProps.borderRadius.borderRadius),\n onLayout: function onLayout(e) {\n var _e_nativeEvent_layout, _e_nativeEvent;\n var h = e === null || e === void 0 ? void 0 : (_e_nativeEvent = e.nativeEvent) === null || _e_nativeEvent === void 0 ? void 0 : (_e_nativeEvent_layout = _e_nativeEvent.layout) === null || _e_nativeEvent_layout === void 0 ? void 0 : _e_nativeEvent_layout.height;\n if (typeof h === \"number\" && h > 0) rowHeights.current.set(node.id, h);\n scheduleScroll();\n },\n backgroundColor: (\n // Nest-into parent highlight wins while a drag is active\n // (LC-42 drop-target affordance).\n isDropParent ? componentColors.interactive.background : isSelected ? \"$accentBackground\" : containsSelected ? componentColors.interactive.background : \"transparent\"\n ),\n // Row hover/press come from the knob state recipes (A-STATE);\n // selection tint stays sticky underneath them. Focus is the\n // ring channel (LC-71) — never a second fill.\n hoverStyle: {\n ...control.hoverKnobProps,\n ...isSelected && {\n backgroundColor: \"$accentBackground\"\n }\n },\n pressStyle: {\n ...control.pressKnobProps,\n ...isSelected && {\n backgroundColor: \"$accentBackground\"\n }\n },\n // LC-71: keyboard ring on the focused row only (activedescendant).\n // Selected is fill above; selected + keyboard-focused = both.\n ...isFocused && keyboardRing ? keyboardFocusRingProps : {\n outlineWidth: 0\n },\n onPress: function onPress() {\n if (suppressClickRef.current) return;\n setKeyboardRing(false);\n setFocusedIndex(index);\n if (hasChildren) toggleNode(node);\n onNodeSelect === null || onNodeSelect === void 0 ? void 0 : onNodeSelect(node);\n },\n children: [\n depth > 0 ? /* @__PURE__ */ _jsx(View, {\n width: depth * indentStep,\n flexShrink: 0,\n alignSelf: \"stretch\",\n position: \"relative\",\n pointerEvents: \"none\",\n children: Array.from({\n length: depth\n }, function(_, guide) {\n var inset = guide * indentStep + expandIconSize / 2;\n return /* @__PURE__ */ _jsx(View, {\n position: \"absolute\",\n top: 0,\n bottom: 0,\n ...hairline.vline,\n pointerEvents: \"none\",\n backgroundColor: isSelected ? \"$color1\" : \"$borderColor\",\n opacity: isSelected ? 0.35 : 0.5,\n ...isRTL ? {\n right: inset\n } : {\n left: inset\n }\n }, `guide-${guide}`);\n })\n }) : null,\n showExpansionArrows ? hasChildren ? /* @__PURE__ */ _jsx(View, {\n ...knobProps.controlIcon,\n alignItems: \"center\",\n justifyContent: \"center\",\n pointerEvents: \"none\",\n // Indicator only — the row is the toggle target. One\n // caret that rotates (transform, knob tween) instead of\n // an icon swap, so the state change is continuous.\n rotate: isExpanded ? expandedCaretRotation : \"0deg\",\n transition,\n children: /* @__PURE__ */ _jsx(CollapsedCaretIcon, {\n size: caretSize,\n weight: \"bold\"\n })\n }) : /* @__PURE__ */ _jsx(View, {\n ...knobProps.controlIcon\n }) : null,\n /* @__PURE__ */ _jsx(View, {\n ...knobProps.controlIcon,\n alignItems: \"center\",\n justifyContent: \"center\",\n flexShrink: 0,\n children: leadingIcon\n }),\n /* @__PURE__ */ _jsx(View, {\n flex: 1,\n minWidth: 0,\n justifyContent: \"center\",\n children: labelContent\n }),\n canReorder ? /* @__PURE__ */ _jsx(DragHandleTarget, {\n \"data-treeview-handle\": node.id,\n role: \"button\",\n \"aria-label\": t(\"Drag {{label}} to reorder\", {\n label: node.label\n }),\n tabIndex: -1,\n alignItems: \"center\",\n justifyContent: \"center\",\n flexShrink: 0,\n minWidth: MIN_PRESS_TARGET,\n minHeight: MIN_PRESS_TARGET,\n marginVertical: -handleOutset,\n hitSlop: pressTargetHitSlop(caretSize),\n cursor: \"grab\",\n opacity: 0.45,\n transition,\n hoverStyle: {\n opacity: 1\n },\n onPress: function onPress(e) {\n var _e_stopPropagation;\n return e === null || e === void 0 ? void 0 : (_e_stopPropagation = e.stopPropagation) === null || _e_stopPropagation === void 0 ? void 0 : _e_stopPropagation.call(e);\n },\n onPointerDown: function onPointerDown(e) {\n return handleDragHandlePointerDown(item, e);\n },\n children: /* @__PURE__ */ _jsx(DotsSixVerticalIcon, {\n size: caretSize,\n weight: \"bold\",\n color: knobProps.textAccentColor\n })\n }) : null\n ]\n },\n // Remount when a recycled cell switches nodes so state fills\n // and the caret never tween across two different rows.\n node.id\n );\n }\n }),\n (dragUi === null || dragUi === void 0 ? void 0 : (_dragUi_indicator = dragUi.indicator) === null || _dragUi_indicator === void 0 ? void 0 : _dragUi_indicator.kind) === \"line\" && /* @__PURE__ */ _jsxs(XStack, {\n \"data-treeview-drop-indicator\": \"line\",\n position: \"absolute\",\n top: 0,\n left: 0,\n right: 0,\n y: topOfFlatIndex(dragUi.indicator.flatIndex) - dragScrollY - 1,\n height: 2,\n paddingInlineStart: rowPad.paddingHorizontal,\n paddingInlineEnd: rowPad.paddingHorizontal,\n pointerEvents: \"none\",\n zIndex: 999,\n transition: dragUi.mode === \"keyboard\" ? transition : \"none\",\n children: [\n /* @__PURE__ */ _jsx(View, {\n width: dragUi.indicator.depth * indentStep,\n flexShrink: 0\n }),\n /* @__PURE__ */ _jsx(View, {\n flex: 1,\n height: 2,\n borderRadius: 1,\n backgroundColor: \"$accentBackground\"\n })\n ]\n }),\n /* Ghost overlay: clone of the dragged row outside the virtualized\n list. Pointer mode tracks 1:1 with no tween; the drop/cancel\n settle leap tweens with the animation knob (LC-42). */\n overlayNode !== void 0 && /* @__PURE__ */ _jsx(View, {\n \"data-treeview-overlay\": \"true\",\n \"data-treeview-overlay-phase\": dragUi ? \"pointer\" : \"settling\",\n position: \"absolute\",\n top: 0,\n left: 0,\n x: (_ref9 = (dragUi === null || dragUi === void 0 ? void 0 : dragUi.mode) === \"pointer\" ? (_dragUi_ghost = dragUi.ghost) === null || _dragUi_ghost === void 0 ? void 0 : _dragUi_ghost.x : settle === null || settle === void 0 ? void 0 : settle.to.x) !== null && _ref9 !== void 0 ? _ref9 : 0,\n y: (_ref10 = (dragUi === null || dragUi === void 0 ? void 0 : dragUi.mode) === \"pointer\" ? (_dragUi_ghost1 = dragUi.ghost) === null || _dragUi_ghost1 === void 0 ? void 0 : _dragUi_ghost1.y : settle === null || settle === void 0 ? void 0 : settle.to.y) !== null && _ref10 !== void 0 ? _ref10 : 0,\n width: (_ref11 = dragUi === null || dragUi === void 0 ? void 0 : dragUi.width) !== null && _ref11 !== void 0 ? _ref11 : settle === null || settle === void 0 ? void 0 : settle.width,\n height: (_ref12 = dragUi === null || dragUi === void 0 ? void 0 : dragUi.height) !== null && _ref12 !== void 0 ? _ref12 : settle === null || settle === void 0 ? void 0 : settle.height,\n pointerEvents: \"none\",\n zIndex: 1e3,\n transition: dragUi ? \"none\" : transition,\n children: /* @__PURE__ */ _jsxs(XStack, {\n alignItems: \"center\",\n height: \"100%\",\n paddingHorizontal: rowPad.paddingHorizontal,\n gap: rowGap,\n ...knobProps.borderRadius,\n backgroundColor: \"$background\",\n borderWidth: 1,\n borderColor: \"$borderColor\",\n overflow: \"hidden\",\n transition,\n enterStyle: {\n scale: 1\n },\n scale: dragUi ? 1.03 : 1,\n ...dragUi ? LIFT_SHADOW : void 0,\n children: [\n /* @__PURE__ */ _jsx(View, {\n ...knobProps.controlIcon,\n alignItems: \"center\",\n justifyContent: \"center\",\n flexShrink: 0,\n children: (_overlayNode_icon = overlayNode.icon) !== null && _overlayNode_icon !== void 0 ? _overlayNode_icon : defaultNodeIcon(overlayHasChildren, false, nodeIconSize)\n }),\n /* @__PURE__ */ _jsx(Text, {\n ...knobProps.body,\n ...knobProps.label,\n color: \"$color\",\n numberOfLines: 1,\n flexShrink: 1,\n children: overlayNode.label\n })\n ]\n })\n }),\n /* Screen-reader drag announcements (WAI-ARIA drag pattern, LC-43). */\n canReorder && /* @__PURE__ */ _jsx(View, {\n \"aria-live\": \"assertive\",\n \"aria-atomic\": true,\n \"data-treeview-announcer\": \"true\",\n position: \"absolute\",\n width: 1,\n height: 1,\n overflow: \"hidden\",\n opacity: 0,\n pointerEvents: \"none\",\n children: /* @__PURE__ */ _jsx(Text, {\n children: announcement\n })\n })\n ]\n })\n });\n}\nexport {\n TreeView\n};\n//# sourceMappingURL=TreeView.js.map\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["jsx","_jsx","jsxs","_jsxs","componentColors","EmptyState","FlashList","MIN_PRESS_TARGET","ensureKeyboardModalityTracking","getGroupPosition","hairline","keyboardFocusRingProps","pressTargetHitSlop","stackRadiusProps","useReadableTextOn","useResolvedKnobs","wasKeyboardFocus","CaretLeftIcon","CaretRightIcon","DotsSixVerticalIcon","FileIcon","FolderIcon","FolderOpenIcon","useDirection","useHotkey","React","useCallback","useEffect","useId","useLayoutEffect","useMemo","useRef","useState","useTranslation","Text","View","XStack","YStack","isWeb","styled","autoScrollVelocity","applyTreeMove","describeTreeCancel","describeTreeDragState","flattenDndRows","indicatorForTarget","resolveTreeDrop","subtreeIds","treeDropTargetForY","treeKeyboardLift","treeKeyboardMove","diffVisibleRows","flattenVisibleIds","isEmptyDiff","treeRevealExpansion","treeRevealOffset","TREE_LIFT_SHADOW","treeDefaultHeight","treeEdgeRowPad","treeIndentStep","DragHandleTarget","name","ENTER_RISE_PX","DRAG_THRESHOLD_PX","TOUCH_LONG_PRESS_MS","AUTO_SCROLL_EDGE_PX","AUTO_SCROLL_MAX_SPEED","LIFT_SHADOW","collectBranchIds","items","into","arguments","length","Set","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","next","done","node","value","_ref","_node_children","children","add","id","err","return","findNodePath","trail","found","TYPEAHEAD_MS","defaultNodeIcon","hasChildren","isExpanded","iconSize","size","weight","TreeView","param","nodes","renderNode","onNodeToggle","onNodeSelect","onNodeMove","estimateSize","estimateSizeProp","overscan","height","heightProp","initialScrollOffset","onScrollOffsetChange","emptyMessage","emptyMessageProp","defaultExpandedIds","expandedIds","controlledExpandedIds","onExpandedIdsChange","revealRequest","onRevealComplete","expandByDefault","display","showExpansionArrows","selectedId","ariaLabel","hotkeys","hotkeyOverrides","stackProps","_ref1","_ref2","_ref3","_ref4","_ref5","_ref6","_ref7","_ref8","_ref9","_ref10","_ref11","_ref12","_overlayNode_icon","_overlayNode_children","_dragUi_indicator","_dragUi_ghost","_dragUi_ghost1","t","compressed","knobProps","control","compact","onAccentLabel","transition","nestedPx","nestedControl","px","rowGap","gap","controlIcon","width","expandIconSize","nodeIconSize","caretSize","isRTL","CollapsedCaretIcon","expandedCaretRotation","indentStep","rowPad","space","treeId","containerRef","flashListRef","initialScroll","offset","Number","isFinite","Math","max","cancelInitialScroll","current","hasNodes","listInstance","attached","loaded","indexScrollRequested","scrollActive","lastReportedOffset","offsetCallback","focusedIndex","setFocusedIndex","keyboardRing","setKeyboardRing","typeaheadRef","buffer","at","document","handleContainerFocus","kb","prev","handleContainerBlur","internalExpandedIds","setInternalExpandedIds","setExpandedIds","motion","setMotion","rowHeights","Map","getRowHeight","_rowHeights_current_get","get","toggleNode","has","delete","previousExpandedIds","previous","every","diff","phase","raf","requestAnimationFrame","m","cancelAnimationFrame","flatNodes","result","walk","walk1","depth","parentId","_ref13","push","index","revealIntent","scrollFrame","scrollStep","renderedRows","scrollBounds","list","_containerRef_current","rect","getBoundingClientRect","viewport","getWindowSize","contentHeight","getChildContainerDimensions","getFirstItemOffset","maxOffset","observeOffset","fromEvent","_initialScroll_current","attempted","bounds","bounded","min","initial","target","abs","scheduleScroll","complete","attachList","_revealIntent_current","_revealIntent_current1","requestId","step","step1","currentList","getAbsoluteLastScrollOffset","intent","scrollToOffset","animated","notified","notifiedExpansion","some","findIndex","item","layout","getLayout","top","y","nextOffset","visible","range","computeVisibleIndices","startIndex","endIndex","isHeightMeasured","scrollToIndex","_flashListRef_current","focusRow","collapsedSelectedAncestors","path","filter","canReorder","Boolean","dragUi","setDragUi","settle","setSettle","announcement","setAnnouncement","dragScrollY","setDragScrollY","dragUiRef","scrollOffsetRef","pointerPosRef","x","grabOffsetRef","suppressClickRef","sessionCleanupRef","autoScrollRafRef","pendingMoveFlipRef","_sessionCleanupRef_current","call","dndRows","topOfFlatIndex","flatIndex","i","announce","a","_a_parent","parent","text","type","hitTest","clientY","ui","_containerRef_current_getBoundingClientRect","localY","rows","getHeight","session","draggedSubtree","subtree","stopAutoScroll","startAutoScroll","tick","tick1","mode","vy","pos","start","end","bottom","edge","maxSpeed","hit","indicator","endDrag","commit","resolved","canCommit","dest","expectedIds","_dndRows_find","nextNodes","nodeId","to","destFlat","indexOf","parentRow","find","r","homeX","originFlat","f","hideId","prevIds","label","pending","currentIds","map","same","same2","b","v","_containerRef_current_querySelector","el","querySelector","last","stableFrames","check","check1","getComputedStyle","transform","beginPointerDrag","flat","rowEl","clientX","container","rowRect","containerRect","left","sourceDepth","ghost","handleDragHandlePointerDown","e","_e_pointerType","_e_stopPropagation","_handleEl_closest","window","button","stopPropagation","handleEl","currentTarget","closest","startX","startY","pointerType","lifted","longPressTimer","prevUserSelect","prevCursor","lift","lift2","body","style","userSelect","documentElement","cursor","teardown","teardown2","clearTimeout","removeEventListener","onMove","onUp","onCancel","onKey","onTouchMove","onContextMenu","setTimeout","onMove2","me","_ref14","_ref15","travelled","hypot","onUp2","wasLifted","onCancel2","onKey2","ke","key","onTouchMove2","te","preventDefault","onContextMenu2","ce","addEventListener","passive","p","liftFocusedNode","moveKeyboardDrag","direction","updated","kind","hotkeyOpts","expand","child","collapse","parentIndex","toggle","_dragUiRef_current","select","first","handleTreeKeyDown","_e_preventDefault","ctrlKey","metaKey","altKey","now","Date","state","query","toLowerCase","n","idx","startsWith","title","effectiveFocused","resolvedAriaLabel","overlayNode","overlayHasChildren","handleOutset","containerRadius","overflow","ref","role","tabIndex","outlineWidth","outlineStyle","onFocus","onBlur","onKeyDown","onLayout","onWheel","onPointerDown","position","keyboardShouldPersistTaps","data","drawDistance","keyExtractor","onLoad","onCommitLayoutEffect","onContentSizeChange","onScrollBeginDrag","extraData","focused","onScroll","_e_nativeEvent_contentOffset","_e_nativeEvent","nativeEvent","contentOffset","scrollEventThrottle","renderItem","param2","_ref22","_dragUi_indicator2","isFocused","isSelected","leadingIcon","iconWhenExpanded","icon","containsSelected","groupPosition","labelContent","color","numberOfLines","flexShrink","armed","entering","delta","deltas","rowY","inDraggedSubtree","isSettleHidden","isDropParent","rowOpacity","rowTransition","row","alignItems","minHeight","paddingVertical","paddingInlineEnd","paddingHorizontal","paddingInlineStart","opacity","borderRadius","_e_nativeEvent_layout","h","set","backgroundColor","interactive","background","hoverStyle","hoverKnobProps","pressStyle","pressKnobProps","onPress","alignSelf","pointerEvents","Array","from","_","guide","inset","vline","right","justifyContent","rotate","flex","minWidth","marginVertical","hitSlop","textAccentColor","zIndex","borderWidth","borderColor","enterStyle","scale"],"sources":["TreeView.native.js"],"sourcesContent":["import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { componentColors } from \"../componentColors\";\nimport { EmptyState } from \"../layouts/page\";\nimport { FlashList } from \"@shopify/flash-list\";\nimport { MIN_PRESS_TARGET, ensureKeyboardModalityTracking, getGroupPosition, hairline, keyboardFocusRingProps, pressTargetHitSlop, stackRadiusProps, useReadableTextOn, useResolvedKnobs, wasKeyboardFocus } from \"@multiplatform.one/theme\";\nimport { CaretLeftIcon, CaretRightIcon, DotsSixVerticalIcon, FileIcon, FolderIcon, FolderOpenIcon } from \"@phosphor-icons/react\";\nimport { useDirection } from \"../hooks/useDirection\";\nimport { useHotkey } from \"@tanstack/react-hotkeys\";\nimport React, { useCallback, useEffect, useId, useLayoutEffect, useMemo, useRef, useState } from \"react\";\nimport { useTranslation } from \"../shared/i18n\";\nimport { Text, View, XStack, YStack, isWeb, styled } from \"tamagui\";\nimport { autoScrollVelocity } from \"./kanbanDnd\";\nimport { applyTreeMove, describeTreeCancel, describeTreeDragState, flattenDndRows, indicatorForTarget, resolveTreeDrop, subtreeIds, treeDropTargetForY, treeKeyboardLift, treeKeyboardMove } from \"./treeViewDnd\";\nimport { diffVisibleRows, flattenVisibleIds, isEmptyDiff } from \"./treeViewMotion\";\nimport { treeRevealExpansion, treeRevealOffset } from \"./treeViewReveal\";\nimport { TREE_LIFT_SHADOW, treeDefaultHeight, treeEdgeRowPad, treeIndentStep } from \"./treeViewLayout\";\nvar DragHandleTarget = styled(View, {\n name: \"DragHandleTarget\"\n});\nvar ENTER_RISE_PX = -4;\nvar DRAG_THRESHOLD_PX = 4;\nvar TOUCH_LONG_PRESS_MS = 200;\nvar AUTO_SCROLL_EDGE_PX = 48;\nvar AUTO_SCROLL_MAX_SPEED = 16;\nvar LIFT_SHADOW = TREE_LIFT_SHADOW;\nfunction collectBranchIds(items) {\n var into = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : /* @__PURE__ */ new Set();\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = items[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var node = _step.value;\n var _ref;\n var _node_children;\n if (((_ref = (_node_children = node.children) === null || _node_children === void 0 ? void 0 : _node_children.length) !== null && _ref !== void 0 ? _ref : 0) > 0) {\n into.add(node.id);\n collectBranchIds(node.children, into);\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return into;\n}\nfunction findNodePath(items, id) {\n var trail = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : [];\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = items[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var node = _step.value;\n var _node_children;\n if (node.id === id) return trail;\n if ((_node_children = node.children) === null || _node_children === void 0 ? void 0 : _node_children.length) {\n var found = findNodePath(node.children, id, [\n ...trail,\n node.id\n ]);\n if (found) return found;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return null;\n}\nvar TYPEAHEAD_MS = 600;\nfunction defaultNodeIcon(hasChildren, isExpanded, iconSize) {\n if (hasChildren) {\n return isExpanded ? /* @__PURE__ */ _jsx(FolderOpenIcon, {\n size: iconSize,\n weight: \"duotone\"\n }) : /* @__PURE__ */ _jsx(FolderIcon, {\n size: iconSize,\n weight: \"duotone\"\n });\n }\n return /* @__PURE__ */ _jsx(FileIcon, {\n size: iconSize,\n weight: \"duotone\"\n });\n}\nfunction TreeView(param) {\n var { nodes, renderNode, onNodeToggle, onNodeSelect, onNodeMove, estimateSize: estimateSizeProp, overscan = 10, height: heightProp, initialScrollOffset, onScrollOffsetChange, emptyMessage: emptyMessageProp, defaultExpandedIds, expandedIds: controlledExpandedIds, onExpandedIdsChange, revealRequest, onRevealComplete, expandByDefault = false, display = \"default\", showExpansionArrows = true, selectedId, ariaLabel, hotkeys: hotkeyOverrides, ...stackProps } = param;\n var _ref, _ref1, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9, _ref10, _ref11, _ref12, _overlayNode_icon;\n var _overlayNode_children, _dragUi_indicator, _dragUi_ghost, _dragUi_ghost1;\n var { t } = useTranslation();\n var emptyMessage = emptyMessageProp !== null && emptyMessageProp !== void 0 ? emptyMessageProp : t(\"No items found\");\n var compressed = display === \"compressed\";\n var { knobProps, control } = useResolvedKnobs(compressed ? {\n compact: true\n } : void 0);\n var onAccentLabel = useReadableTextOn(\"$accentBackground\");\n var transition = knobProps.transition;\n var nestedPx = knobProps.nestedControl.px;\n var rowGap = knobProps.control.gap;\n var iconSize = knobProps.controlIcon.width;\n var estimateSize = estimateSizeProp !== null && estimateSizeProp !== void 0 ? estimateSizeProp : nestedPx;\n var height = heightProp !== null && heightProp !== void 0 ? heightProp : treeDefaultHeight(nestedPx);\n var expandIconSize = iconSize;\n var nodeIconSize = iconSize;\n var caretSize = iconSize;\n var isRTL = useDirection() === \"rtl\";\n var CollapsedCaretIcon = isRTL ? CaretLeftIcon : CaretRightIcon;\n var expandedCaretRotation = isRTL ? \"-90deg\" : \"90deg\";\n var indentStep = treeIndentStep(nestedPx);\n var rowPad = treeEdgeRowPad(knobProps.space);\n var treeId = useId();\n var containerRef = useRef(null);\n var flashListRef = useRef(null);\n var initialScroll = useRef(initialScrollOffset === void 0 ? void 0 : {\n offset: Number.isFinite(initialScrollOffset) ? Math.max(0, initialScrollOffset) : 0\n });\n var cancelInitialScroll = useCallback(function() {\n initialScroll.current = void 0;\n }, []);\n var hasNodes = nodes.length > 0;\n var listInstance = useMemo(function() {\n return {\n hasNodes,\n attached: false,\n loaded: false,\n indexScrollRequested: false,\n offset: 0\n };\n }, [\n hasNodes\n ]);\n var scrollActive = useRef(true);\n var lastReportedOffset = useRef(void 0);\n var offsetCallback = useRef(onScrollOffsetChange);\n useLayoutEffect(function() {\n offsetCallback.current = onScrollOffsetChange;\n }, [\n onScrollOffsetChange\n ]);\n var [focusedIndex, setFocusedIndex] = useState(-1);\n var [keyboardRing, setKeyboardRing] = useState(false);\n var typeaheadRef = useRef({\n buffer: \"\",\n at: 0\n });\n if (typeof document !== \"undefined\") ensureKeyboardModalityTracking();\n var handleContainerFocus = useCallback(function() {\n var kb = wasKeyboardFocus();\n setKeyboardRing(kb);\n if (kb) setFocusedIndex(function(prev) {\n return prev < 0 ? 0 : prev;\n });\n }, []);\n var handleContainerBlur = useCallback(function() {\n setKeyboardRing(false);\n }, []);\n var [internalExpandedIds, setInternalExpandedIds] = useState(function() {\n if (defaultExpandedIds) return new Set(defaultExpandedIds);\n if (expandByDefault) return collectBranchIds(nodes);\n return /* @__PURE__ */ new Set();\n });\n var expandedIds = useMemo(function() {\n return controlledExpandedIds === void 0 ? internalExpandedIds : new Set(controlledExpandedIds);\n }, [\n controlledExpandedIds,\n internalExpandedIds\n ]);\n var setExpandedIds = useCallback(function(next) {\n if (controlledExpandedIds === void 0) setInternalExpandedIds(new Set(next));\n onExpandedIdsChange === null || onExpandedIdsChange === void 0 ? void 0 : onExpandedIdsChange([\n ...next\n ]);\n }, [\n controlledExpandedIds,\n onExpandedIdsChange\n ]);\n var [motion, setMotion] = useState(null);\n var rowHeights = useRef(/* @__PURE__ */ new Map());\n var getRowHeight = useCallback(function(id) {\n var _rowHeights_current_get;\n return (_rowHeights_current_get = rowHeights.current.get(id)) !== null && _rowHeights_current_get !== void 0 ? _rowHeights_current_get : estimateSize;\n }, [\n estimateSize\n ]);\n var toggleNode = useCallback(function(node) {\n cancelInitialScroll();\n var next = new Set(expandedIds);\n if (next.has(node.id)) {\n next.delete(node.id);\n } else {\n next.add(node.id);\n }\n setExpandedIds(next);\n onNodeToggle === null || onNodeToggle === void 0 ? void 0 : onNodeToggle(node);\n }, [\n expandedIds,\n setExpandedIds,\n onNodeToggle,\n cancelInitialScroll\n ]);\n var previousExpandedIds = useRef(expandedIds);\n useLayoutEffect(function() {\n var previous = previousExpandedIds.current;\n previousExpandedIds.current = expandedIds;\n if (previous.size === expandedIds.size && [\n ...previous\n ].every(function(id) {\n return expandedIds.has(id);\n })) return;\n if (transition) {\n var diff = diffVisibleRows(flattenVisibleIds(nodes, previous), flattenVisibleIds(nodes, expandedIds), getRowHeight);\n setMotion(isEmptyDiff(diff) ? null : {\n phase: \"armed\",\n ...diff\n });\n } else {\n setMotion(null);\n }\n }, [\n expandedIds,\n nodes,\n transition,\n getRowHeight\n ]);\n useLayoutEffect(function() {\n if ((motion === null || motion === void 0 ? void 0 : motion.phase) !== \"armed\") return;\n var raf = requestAnimationFrame(function() {\n setMotion(function(m) {\n return m && m.phase === \"armed\" ? {\n ...m,\n phase: \"play\"\n } : m;\n });\n });\n return function() {\n return cancelAnimationFrame(raf);\n };\n }, [\n motion\n ]);\n var flatNodes = useMemo(function() {\n var result = [];\n var walk = function walk1(items, depth, parentId) {\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = items[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var node = _step.value;\n var _ref13;\n var _node_children;\n var hasChildren = ((_ref13 = (_node_children = node.children) === null || _node_children === void 0 ? void 0 : _node_children.length) !== null && _ref13 !== void 0 ? _ref13 : 0) > 0;\n var isExpanded = expandedIds.has(node.id);\n result.push({\n node,\n depth,\n hasChildren,\n isExpanded,\n index: result.length,\n parentId\n });\n if (isExpanded && node.children) {\n walk(node.children, depth + 1, node.id);\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n };\n walk(nodes, 0, null);\n return result;\n }, [\n nodes,\n expandedIds\n ]);\n var revealIntent = useRef(void 0);\n var scrollFrame = useRef(void 0);\n var scrollStep = useRef(function() {\n });\n var renderedRows = useRef(/* @__PURE__ */ new Set());\n var scrollBounds = useCallback(function() {\n var list = flashListRef.current;\n if (!scrollActive.current || !listInstance.attached || !listInstance.loaded || !list) return;\n if (isWeb) {\n var _containerRef_current;\n var rect = (_containerRef_current = containerRef.current) === null || _containerRef_current === void 0 ? void 0 : _containerRef_current.getBoundingClientRect();\n if (!rect || !(rect.width > 0) || !(rect.height > 0)) return;\n }\n var viewport = list.getWindowSize();\n var contentHeight = list.getChildContainerDimensions().height + list.getFirstItemOffset();\n if (!Number.isFinite(viewport.width) || viewport.width <= 0 || !Number.isFinite(viewport.height) || viewport.height <= 0 || !Number.isFinite(contentHeight) || contentHeight <= 0) return;\n return {\n list,\n width: viewport.width,\n height: viewport.height,\n contentHeight,\n maxOffset: Math.max(0, contentHeight - viewport.height)\n };\n }, [\n listInstance\n ]);\n var observeOffset = useCallback(function(offset) {\n var fromEvent = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false;\n var _initialScroll_current;\n if (!scrollActive.current || !listInstance.attached || !Number.isFinite(offset)) return;\n if (fromEvent && ((_initialScroll_current = initialScroll.current) === null || _initialScroll_current === void 0 ? void 0 : _initialScroll_current.attempted) === void 0 && offset !== listInstance.offset) {\n cancelInitialScroll();\n }\n listInstance.offset = offset;\n var bounds = scrollBounds();\n if (!bounds) return;\n var bounded = Math.max(0, Math.min(offset, bounds.maxOffset));\n var initial = initialScroll.current;\n if (initial) {\n var target = Math.min(initial.offset, bounds.maxOffset);\n if (initial.attempted ? Math.abs(bounded - target) >= 1 : bounded !== target) return;\n initialScroll.current = void 0;\n }\n if (offsetCallback.current && lastReportedOffset.current !== bounded) {\n lastReportedOffset.current = bounded;\n offsetCallback.current(bounded);\n }\n }, [\n cancelInitialScroll,\n scrollBounds,\n listInstance\n ]);\n var scheduleScroll = useCallback(function() {\n if (!scrollActive.current || !listInstance.attached || scrollFrame.current !== void 0) return;\n if (!initialScroll.current && (!revealIntent.current || revealIntent.current.complete) && !offsetCallback.current) return;\n scrollFrame.current = requestAnimationFrame(function() {\n scrollFrame.current = void 0;\n if (listInstance.attached) scrollStep.current();\n });\n }, [\n listInstance\n ]);\n var attachList = useCallback(function(list) {\n flashListRef.current = list;\n listInstance.attached = list !== null;\n if (!list) {\n listInstance.loaded = false;\n if (initialScroll.current) initialScroll.current.attempted = void 0;\n if (scrollFrame.current !== void 0) cancelAnimationFrame(scrollFrame.current);\n scrollFrame.current = void 0;\n }\n }, [\n listInstance\n ]);\n useLayoutEffect(function() {\n scrollActive.current = true;\n return function() {\n scrollActive.current = false;\n revealIntent.current = void 0;\n if (scrollFrame.current !== void 0) cancelAnimationFrame(scrollFrame.current);\n scrollFrame.current = void 0;\n };\n }, []);\n useLayoutEffect(function() {\n var _revealIntent_current, _revealIntent_current1;\n if (!revealRequest) {\n revealIntent.current = void 0;\n } else if (((_revealIntent_current = revealIntent.current) === null || _revealIntent_current === void 0 ? void 0 : _revealIntent_current.id) !== revealRequest.id || ((_revealIntent_current1 = revealIntent.current) === null || _revealIntent_current1 === void 0 ? void 0 : _revealIntent_current1.requestId) !== revealRequest.requestId) {\n cancelInitialScroll();\n revealIntent.current = {\n ...revealRequest,\n complete: false\n };\n }\n var step = function step1() {\n var currentList = flashListRef.current;\n if (currentList) {\n observeOffset(listInstance.indexScrollRequested ? listInstance.offset : currentList.getAbsoluteLastScrollOffset());\n }\n if (!scrollActive.current) return;\n if (scrollStep.current !== step) {\n scheduleScroll();\n return;\n }\n var intent = revealIntent.current;\n if (!intent || intent.complete) {\n var initial = initialScroll.current;\n var bounds = scrollBounds();\n if (!initial || !bounds || flatNodes.length === 0) return;\n var target = Math.min(initial.offset, bounds.maxOffset);\n var attempted = initial.attempted;\n if (!attempted || attempted.target !== target || attempted.width !== bounds.width || attempted.height !== bounds.height || attempted.contentHeight !== bounds.contentHeight) {\n initial.attempted = {\n target,\n width: bounds.width,\n height: bounds.height,\n contentHeight: bounds.contentHeight\n };\n bounds.list.scrollToOffset({\n offset: target,\n animated: false\n });\n }\n return;\n }\n var next = treeRevealExpansion(nodes, expandedIds, intent.id);\n if (!next) return;\n if (next !== expandedIds) {\n var notified = intent.notifiedExpansion;\n if (!notified || notified.size !== next.size || [\n ...next\n ].some(function(id) {\n return !notified.has(id);\n })) {\n intent.notifiedExpansion = next;\n setExpandedIds(next);\n }\n return;\n }\n if (motion) {\n setMotion(null);\n return;\n }\n var list = flashListRef.current;\n var index = flatNodes.findIndex(function(item) {\n return item.node.id === intent.id;\n });\n if (!list || index < 0) return;\n if (isWeb) {\n var _containerRef_current;\n var rect = (_containerRef_current = containerRef.current) === null || _containerRef_current === void 0 ? void 0 : _containerRef_current.getBoundingClientRect();\n if (!rect || rect.width <= 0 || rect.height <= 0) return;\n }\n var viewport = list.getWindowSize();\n if (viewport.width <= 0) return;\n var layout = list.getLayout(index);\n if (!layout) return;\n var offset = listInstance.indexScrollRequested ? listInstance.offset : list.getAbsoluteLastScrollOffset();\n var top = layout.y + list.getFirstItemOffset();\n var nextOffset = treeRevealOffset({\n y: top,\n height: layout.height\n }, offset, viewport.height);\n if (nextOffset === void 0) return;\n if (Math.abs(nextOffset - offset) < 1) {\n var visible = top < offset + viewport.height && top + layout.height > offset;\n if (!listInstance.indexScrollRequested) {\n var range = list.computeVisibleIndices();\n visible = visible && index >= range.startIndex && index <= range.endIndex;\n }\n if (revealIntent.current === intent && layout.isHeightMeasured && renderedRows.current.has(intent.id) && visible) {\n intent.complete = true;\n onRevealComplete === null || onRevealComplete === void 0 ? void 0 : onRevealComplete({\n id: intent.id,\n requestId: intent.requestId\n });\n }\n return;\n }\n list.scrollToOffset({\n offset: nextOffset,\n animated: false\n });\n };\n scrollStep.current = step;\n scheduleScroll();\n }, [\n nodes,\n expandedIds,\n setExpandedIds,\n flatNodes,\n revealRequest === null || revealRequest === void 0 ? void 0 : revealRequest.id,\n revealRequest === null || revealRequest === void 0 ? void 0 : revealRequest.requestId,\n onRevealComplete,\n height,\n motion,\n scheduleScroll,\n cancelInitialScroll,\n observeOffset,\n scrollBounds,\n listInstance\n ]);\n var scrollToIndex = useCallback(function(index) {\n if (index >= 0 && index < flatNodes.length) {\n var _flashListRef_current;\n cancelInitialScroll();\n listInstance.indexScrollRequested = true;\n (_flashListRef_current = flashListRef.current) === null || _flashListRef_current === void 0 ? void 0 : _flashListRef_current.scrollToIndex({\n index,\n animated: true\n });\n }\n }, [\n flatNodes.length,\n cancelInitialScroll,\n listInstance\n ]);\n var focusRow = useCallback(function(index) {\n setKeyboardRing(true);\n setFocusedIndex(index);\n scrollToIndex(index);\n }, [\n scrollToIndex\n ]);\n var collapsedSelectedAncestors = useMemo(function() {\n if (!selectedId) return /* @__PURE__ */ new Set();\n var path = findNodePath(nodes, selectedId);\n if (!path) return /* @__PURE__ */ new Set();\n return new Set(path.filter(function(id) {\n return !expandedIds.has(id);\n }));\n }, [\n nodes,\n selectedId,\n expandedIds\n ]);\n var canReorder = Boolean(onNodeMove);\n var [dragUi, setDragUi] = useState(null);\n var [settle, setSettle] = useState(null);\n var [announcement, setAnnouncement] = useState(\"\");\n var [dragScrollY, setDragScrollY] = useState(0);\n var dragUiRef = useRef(null);\n dragUiRef.current = dragUi;\n var scrollOffsetRef = useRef(0);\n var pointerPosRef = useRef({\n x: 0,\n y: 0\n });\n var grabOffsetRef = useRef({\n x: 0,\n y: 0\n });\n var suppressClickRef = useRef(false);\n var sessionCleanupRef = useRef(null);\n var autoScrollRafRef = useRef(null);\n var pendingMoveFlipRef = useRef(null);\n useEffect(function() {\n return function() {\n var _sessionCleanupRef_current;\n return (_sessionCleanupRef_current = sessionCleanupRef.current) === null || _sessionCleanupRef_current === void 0 ? void 0 : _sessionCleanupRef_current.call(sessionCleanupRef);\n };\n }, []);\n var dndRows = useMemo(function() {\n return flattenDndRows(nodes, expandedIds);\n }, [\n nodes,\n expandedIds\n ]);\n var topOfFlatIndex = useCallback(function(flatIndex) {\n var top = 0;\n for (var i = 0; i < flatIndex && i < flatNodes.length; i++) {\n top += getRowHeight(flatNodes[i].node.id);\n }\n return top;\n }, [\n flatNodes,\n getRowHeight\n ]);\n var announce = useCallback(function(a) {\n var _a_parent;\n var parent = (_a_parent = a.parent) !== null && _a_parent !== void 0 ? _a_parent : t(\"top level\");\n var text = a.type === \"lift\" ? t(\"Lifted {{node}} in {{parent}}, position {{position}} of {{count}}. Use arrow keys to move, space to drop, escape to cancel.\", {\n ...a,\n parent\n }) : a.type === \"move\" ? t(\"Moved {{node}} to {{parent}}, position {{position}} of {{count}}.\", {\n ...a,\n parent\n }) : a.type === \"drop\" ? t(\"Dropped {{node}} in {{parent}}, position {{position}} of {{count}}.\", {\n ...a,\n parent\n }) : t(\"Movement cancelled. {{node}} returned to {{parent}}.\", {\n ...a,\n parent\n });\n setAnnouncement(text);\n }, [\n t\n ]);\n var hitTest = useCallback(function(clientY, ui) {\n var _containerRef_current_getBoundingClientRect, _containerRef_current;\n var rect = (_containerRef_current = containerRef.current) === null || _containerRef_current === void 0 ? void 0 : (_containerRef_current_getBoundingClientRect = _containerRef_current.getBoundingClientRect) === null || _containerRef_current_getBoundingClientRect === void 0 ? void 0 : _containerRef_current_getBoundingClientRect.call(_containerRef_current);\n if (!rect) return null;\n return treeDropTargetForY({\n localY: clientY - rect.top + scrollOffsetRef.current,\n rows: dndRows,\n getHeight: getRowHeight,\n session: ui.session,\n draggedSubtree: ui.subtree\n });\n }, [\n dndRows,\n getRowHeight\n ]);\n var stopAutoScroll = useCallback(function() {\n if (autoScrollRafRef.current !== null) cancelAnimationFrame(autoScrollRafRef.current);\n autoScrollRafRef.current = null;\n }, []);\n var startAutoScroll = useCallback(function() {\n stopAutoScroll();\n var tick = function tick1() {\n var _containerRef_current_getBoundingClientRect, _containerRef_current;\n var ui = dragUiRef.current;\n if (!ui || ui.mode !== \"pointer\") {\n autoScrollRafRef.current = null;\n return;\n }\n var rect = (_containerRef_current = containerRef.current) === null || _containerRef_current === void 0 ? void 0 : (_containerRef_current_getBoundingClientRect = _containerRef_current.getBoundingClientRect) === null || _containerRef_current_getBoundingClientRect === void 0 ? void 0 : _containerRef_current_getBoundingClientRect.call(_containerRef_current);\n if (rect) {\n var vy = autoScrollVelocity({\n pos: pointerPosRef.current.y,\n start: rect.top,\n end: rect.bottom,\n edge: AUTO_SCROLL_EDGE_PX,\n maxSpeed: AUTO_SCROLL_MAX_SPEED\n });\n if (vy !== 0) {\n var max = Math.max(0, topOfFlatIndex(flatNodes.length) - rect.height);\n var next = Math.min(max, Math.max(0, scrollOffsetRef.current + vy));\n if (next !== scrollOffsetRef.current) {\n var _flashListRef_current;\n scrollOffsetRef.current = next;\n (_flashListRef_current = flashListRef.current) === null || _flashListRef_current === void 0 ? void 0 : _flashListRef_current.scrollToOffset({\n offset: next,\n animated: false\n });\n setDragScrollY(next);\n var hit = hitTest(pointerPosRef.current.y, ui);\n if (hit) {\n setDragUi(function(prev) {\n return prev ? {\n ...prev,\n session: {\n ...prev.session,\n target: hit.target\n },\n indicator: hit.indicator\n } : prev;\n });\n }\n }\n }\n }\n autoScrollRafRef.current = requestAnimationFrame(tick);\n };\n autoScrollRafRef.current = requestAnimationFrame(tick);\n }, [\n flatNodes.length,\n hitTest,\n stopAutoScroll,\n topOfFlatIndex\n ]);\n var endDrag = useCallback(function(commit) {\n var _sessionCleanupRef_current;\n var ui = dragUiRef.current;\n if (!ui) return;\n stopAutoScroll();\n (_sessionCleanupRef_current = sessionCleanupRef.current) === null || _sessionCleanupRef_current === void 0 ? void 0 : _sessionCleanupRef_current.call(sessionCleanupRef);\n sessionCleanupRef.current = null;\n var resolved = resolveTreeDrop(ui.session);\n var canCommit = commit && resolved.commit && Boolean(onNodeMove);\n var dest = null;\n var expectedIds = null;\n if (canCommit) {\n var _dndRows_find;\n var nextNodes = applyTreeMove(nodes, ui.session.nodeId, resolved.to);\n expectedIds = flattenVisibleIds(nextNodes, expandedIds);\n var destFlat = expectedIds.indexOf(ui.session.nodeId);\n var parentRow = resolved.to.parentId === null ? null : (_dndRows_find = dndRows.find(function(r) {\n return r.id === resolved.to.parentId;\n })) !== null && _dndRows_find !== void 0 ? _dndRows_find : null;\n var top = 0;\n if (destFlat >= 0) {\n for (var i = 0; i < destFlat; i++) top += getRowHeight(expectedIds[i]);\n } else if (parentRow) {\n top = topOfFlatIndex(dndRows.indexOf(parentRow));\n }\n dest = {\n x: ui.homeX,\n y: top - scrollOffsetRef.current\n };\n } else {\n var originFlat = flatNodes.findIndex(function(f) {\n return f.node.id === ui.session.nodeId;\n });\n dest = {\n x: ui.homeX,\n y: (originFlat >= 0 ? topOfFlatIndex(originFlat) : 0) - scrollOffsetRef.current\n };\n }\n setDragUi(null);\n dragUiRef.current = null;\n if (ui.mode === \"pointer\" && dest) {\n setSettle({\n node: ui.node,\n width: ui.width,\n height: ui.height,\n to: dest,\n hideId: canCommit ? ui.session.nodeId : void 0\n });\n }\n if (canCommit && expectedIds) {\n if (transition) {\n pendingMoveFlipRef.current = {\n prevIds: flattenVisibleIds(nodes, expandedIds),\n expectedIds\n };\n }\n announce(describeTreeDragState(\"drop\", ui.session, nodes, ui.node.label));\n onNodeMove === null || onNodeMove === void 0 ? void 0 : onNodeMove(ui.session.nodeId, resolved.to);\n } else {\n announce(describeTreeCancel(ui.session, nodes, ui.node.label));\n }\n }, [\n announce,\n dndRows,\n expandedIds,\n flatNodes,\n getRowHeight,\n nodes,\n onNodeMove,\n stopAutoScroll,\n topOfFlatIndex,\n transition\n ]);\n useLayoutEffect(function() {\n var pending = pendingMoveFlipRef.current;\n if (!pending) return;\n var currentIds = flatNodes.map(function(f) {\n return f.node.id;\n });\n var same = function same2(a, b) {\n return a.length === b.length && a.every(function(v, i) {\n return v === b[i];\n });\n };\n if (same(currentIds, pending.prevIds)) return;\n pendingMoveFlipRef.current = null;\n if (!same(currentIds, pending.expectedIds)) return;\n var diff = diffVisibleRows(pending.prevIds, pending.expectedIds, getRowHeight);\n if (!isEmptyDiff(diff)) setMotion({\n phase: \"armed\",\n ...diff\n });\n }, [\n flatNodes,\n getRowHeight\n ]);\n useEffect(function() {\n var _containerRef_current_querySelector, _containerRef_current;\n if (!settle) return;\n var el = (_containerRef_current = containerRef.current) === null || _containerRef_current === void 0 ? void 0 : (_containerRef_current_querySelector = _containerRef_current.querySelector) === null || _containerRef_current_querySelector === void 0 ? void 0 : _containerRef_current_querySelector.call(_containerRef_current, \"[data-treeview-overlay]\");\n if (!el || typeof requestAnimationFrame === \"undefined\") {\n setSettle(null);\n return;\n }\n var last = null;\n var stableFrames = 0;\n var raf = 0;\n var check = function check1() {\n var current = getComputedStyle(el).transform;\n if (current === last) stableFrames += 1;\n else {\n stableFrames = 0;\n last = current;\n }\n if (stableFrames >= 3) {\n setSettle(null);\n return;\n }\n raf = requestAnimationFrame(check);\n };\n raf = requestAnimationFrame(check);\n return function() {\n return cancelAnimationFrame(raf);\n };\n }, [\n settle\n ]);\n var beginPointerDrag = useCallback(function(flat, rowEl, clientX, clientY) {\n var container = containerRef.current;\n if (!(container === null || container === void 0 ? void 0 : container.getBoundingClientRect)) return false;\n var session = treeKeyboardLift(nodes, flat.node.id);\n if (!session) return false;\n cancelInitialScroll();\n var rowRect = rowEl.getBoundingClientRect();\n var containerRect = container.getBoundingClientRect();\n grabOffsetRef.current = {\n x: clientX - rowRect.left,\n y: clientY - rowRect.top\n };\n pointerPosRef.current = {\n x: clientX,\n y: clientY\n };\n var ui = {\n mode: \"pointer\",\n node: flat.node,\n session,\n subtree: subtreeIds(nodes, flat.node.id),\n sourceDepth: flat.depth,\n homeX: rowRect.left - containerRect.left,\n width: rowRect.width,\n height: rowRect.height,\n indicator: null,\n ghost: {\n x: rowRect.left - containerRect.left,\n y: rowRect.top - containerRect.top\n }\n };\n setSettle(null);\n setDragScrollY(scrollOffsetRef.current);\n setDragUi(ui);\n dragUiRef.current = ui;\n announce(describeTreeDragState(\"lift\", session, nodes, flat.node.label));\n startAutoScroll();\n return true;\n }, [\n announce,\n nodes,\n startAutoScroll,\n cancelInitialScroll\n ]);\n var handleDragHandlePointerDown = useCallback(function(flat, e) {\n var _ref13, _e_pointerType;\n var _sessionCleanupRef_current, _e_stopPropagation, _handleEl_closest;\n if (!canReorder || typeof window === \"undefined\") return;\n if (e.button !== void 0 && e.button !== 0) return;\n if (dragUiRef.current) return;\n (_sessionCleanupRef_current = sessionCleanupRef.current) === null || _sessionCleanupRef_current === void 0 ? void 0 : _sessionCleanupRef_current.call(sessionCleanupRef);\n (_e_stopPropagation = e.stopPropagation) === null || _e_stopPropagation === void 0 ? void 0 : _e_stopPropagation.call(e);\n var handleEl = e.currentTarget;\n var rowEl = (_ref13 = (_handleEl_closest = handleEl.closest) === null || _handleEl_closest === void 0 ? void 0 : _handleEl_closest.call(handleEl, \"[data-treeview-row]\")) !== null && _ref13 !== void 0 ? _ref13 : handleEl;\n var startX = e.clientX;\n var startY = e.clientY;\n var pointerType = (_e_pointerType = e.pointerType) !== null && _e_pointerType !== void 0 ? _e_pointerType : \"mouse\";\n var lifted = false;\n var longPressTimer = null;\n var prevUserSelect = \"\";\n var prevCursor = \"\";\n var lift = function lift2(x, y) {\n if (lifted) return;\n lifted = beginPointerDrag(flat, rowEl, x, y);\n if (!lifted) return;\n prevUserSelect = document.body.style.userSelect;\n document.body.style.userSelect = \"none\";\n prevCursor = document.documentElement.style.cursor;\n document.documentElement.style.cursor = \"grabbing\";\n };\n var teardown = function teardown2() {\n if (longPressTimer !== null) clearTimeout(longPressTimer);\n window.removeEventListener(\"pointermove\", onMove);\n window.removeEventListener(\"pointerup\", onUp);\n window.removeEventListener(\"pointercancel\", onCancel);\n window.removeEventListener(\"keydown\", onKey, true);\n window.removeEventListener(\"touchmove\", onTouchMove);\n window.removeEventListener(\"contextmenu\", onContextMenu, true);\n sessionCleanupRef.current = null;\n if (lifted) {\n document.body.style.userSelect = prevUserSelect;\n document.documentElement.style.cursor = prevCursor;\n suppressClickRef.current = true;\n setTimeout(function() {\n suppressClickRef.current = false;\n }, 0);\n }\n };\n var onMove = function onMove2(me) {\n var _ref14, _ref15;\n var _containerRef_current_getBoundingClientRect, _containerRef_current;\n pointerPosRef.current = {\n x: me.clientX,\n y: me.clientY\n };\n if (!lifted) {\n var travelled = Math.hypot(me.clientX - startX, me.clientY - startY);\n if (pointerType === \"mouse\") {\n if (travelled >= DRAG_THRESHOLD_PX) lift(me.clientX, me.clientY);\n } else if (travelled >= DRAG_THRESHOLD_PX) {\n teardown();\n }\n if (!lifted) return;\n }\n var containerRect = (_containerRef_current = containerRef.current) === null || _containerRef_current === void 0 ? void 0 : (_containerRef_current_getBoundingClientRect = _containerRef_current.getBoundingClientRect) === null || _containerRef_current_getBoundingClientRect === void 0 ? void 0 : _containerRef_current_getBoundingClientRect.call(_containerRef_current);\n var ghost = {\n x: me.clientX - ((_ref14 = containerRect === null || containerRect === void 0 ? void 0 : containerRect.left) !== null && _ref14 !== void 0 ? _ref14 : 0) - grabOffsetRef.current.x,\n y: me.clientY - ((_ref15 = containerRect === null || containerRect === void 0 ? void 0 : containerRect.top) !== null && _ref15 !== void 0 ? _ref15 : 0) - grabOffsetRef.current.y\n };\n var ui = dragUiRef.current;\n if (!ui) return;\n var hit = hitTest(me.clientY, ui);\n setDragUi(function(prev) {\n return prev ? {\n ...prev,\n ghost,\n ...hit && {\n session: {\n ...prev.session,\n target: hit.target\n },\n indicator: hit.indicator\n }\n } : prev;\n });\n };\n var onUp = function onUp2() {\n var wasLifted = lifted;\n teardown();\n if (wasLifted) endDrag(true);\n };\n var onCancel = function onCancel2() {\n var wasLifted = lifted;\n teardown();\n if (wasLifted) endDrag(false);\n };\n var onKey = function onKey2(ke) {\n if (ke.key !== \"Escape\") return;\n ke.stopPropagation();\n var wasLifted = lifted;\n teardown();\n if (wasLifted) endDrag(false);\n };\n var onTouchMove = function onTouchMove2(te) {\n if (lifted) te.preventDefault();\n };\n var onContextMenu = function onContextMenu2(ce) {\n if (lifted || longPressTimer !== null) ce.preventDefault();\n };\n window.addEventListener(\"pointermove\", onMove);\n window.addEventListener(\"pointerup\", onUp);\n window.addEventListener(\"pointercancel\", onCancel);\n window.addEventListener(\"keydown\", onKey, true);\n window.addEventListener(\"touchmove\", onTouchMove, {\n passive: false\n });\n window.addEventListener(\"contextmenu\", onContextMenu, true);\n sessionCleanupRef.current = function() {\n var wasLifted = lifted;\n teardown();\n if (wasLifted) endDrag(false);\n };\n if (pointerType !== \"mouse\") {\n longPressTimer = setTimeout(function() {\n longPressTimer = null;\n var p = pointerPosRef.current;\n lift(p.x || startX, p.y || startY);\n }, TOUCH_LONG_PRESS_MS);\n pointerPosRef.current = {\n x: startX,\n y: startY\n };\n }\n }, [\n beginPointerDrag,\n canReorder,\n endDrag,\n hitTest\n ]);\n var liftFocusedNode = useCallback(function() {\n if (!canReorder || dragUiRef.current) return false;\n var flat = flatNodes[focusedIndex];\n if (!flat) return false;\n var session = treeKeyboardLift(nodes, flat.node.id);\n if (!session) return false;\n cancelInitialScroll();\n var ui = {\n mode: \"keyboard\",\n node: flat.node,\n session,\n subtree: subtreeIds(nodes, flat.node.id),\n sourceDepth: flat.depth,\n homeX: 0,\n width: 0,\n height: getRowHeight(flat.node.id),\n indicator: indicatorForTarget(dndRows, session, session.target)\n };\n setSettle(null);\n setDragScrollY(scrollOffsetRef.current);\n setDragUi(ui);\n dragUiRef.current = ui;\n announce(describeTreeDragState(\"lift\", session, nodes, flat.node.label));\n return true;\n }, [\n announce,\n canReorder,\n dndRows,\n flatNodes,\n focusedIndex,\n getRowHeight,\n nodes,\n cancelInitialScroll\n ]);\n var moveKeyboardDrag = useCallback(function(direction) {\n var ui = dragUiRef.current;\n if (!ui || ui.mode !== \"keyboard\") return false;\n var next = treeKeyboardMove(ui.session, nodes, direction);\n if (next === ui.session) return true;\n var indicator = indicatorForTarget(dndRows, next, next.target);\n var updated = {\n ...ui,\n session: next,\n indicator\n };\n setDragUi(updated);\n dragUiRef.current = updated;\n if (indicator.kind === \"line\" && flatNodes.length > 0) {\n scrollToIndex(Math.min(indicator.flatIndex, flatNodes.length - 1));\n }\n announce(describeTreeDragState(\"move\", next, nodes, ui.node.label));\n return true;\n }, [\n announce,\n dndRows,\n flatNodes.length,\n nodes,\n scrollToIndex\n ]);\n var hotkeyOpts = {\n target: containerRef\n };\n useHotkey((_ref = hotkeyOverrides === null || hotkeyOverrides === void 0 ? void 0 : hotkeyOverrides.next) !== null && _ref !== void 0 ? _ref : \"ArrowDown\", function() {\n if (moveKeyboardDrag(\"down\")) return;\n setKeyboardRing(true);\n setFocusedIndex(function(prev) {\n var next = prev < 0 ? 0 : Math.min(prev + 1, Math.max(0, flatNodes.length - 1));\n scrollToIndex(next);\n return next;\n });\n }, hotkeyOpts);\n useHotkey((_ref1 = hotkeyOverrides === null || hotkeyOverrides === void 0 ? void 0 : hotkeyOverrides.prev) !== null && _ref1 !== void 0 ? _ref1 : \"ArrowUp\", function() {\n if (moveKeyboardDrag(\"up\")) return;\n setKeyboardRing(true);\n setFocusedIndex(function(prev) {\n var next = prev < 0 ? flatNodes.length - 1 : Math.max(prev - 1, 0);\n if (next >= 0) scrollToIndex(next);\n return next;\n });\n }, hotkeyOpts);\n useHotkey((_ref2 = hotkeyOverrides === null || hotkeyOverrides === void 0 ? void 0 : hotkeyOverrides.expand) !== null && _ref2 !== void 0 ? _ref2 : \"ArrowRight\", function() {\n if (moveKeyboardDrag(\"right\")) return;\n if (focusedIndex >= 0 && focusedIndex < flatNodes.length) {\n var flat = flatNodes[focusedIndex];\n if (flat.hasChildren && !flat.isExpanded) {\n setKeyboardRing(true);\n toggleNode(flat.node);\n } else if (flat.hasChildren && flat.isExpanded) {\n var child = focusedIndex + 1;\n if (child < flatNodes.length && flatNodes[child].parentId === flat.node.id) {\n focusRow(child);\n }\n }\n }\n }, hotkeyOpts);\n useHotkey((_ref3 = hotkeyOverrides === null || hotkeyOverrides === void 0 ? void 0 : hotkeyOverrides.collapse) !== null && _ref3 !== void 0 ? _ref3 : \"ArrowLeft\", function() {\n if (moveKeyboardDrag(\"left\")) return;\n if (focusedIndex >= 0 && focusedIndex < flatNodes.length) {\n var flat = flatNodes[focusedIndex];\n if (flat.hasChildren && flat.isExpanded) {\n setKeyboardRing(true);\n toggleNode(flat.node);\n } else if (flat.parentId) {\n var parentIndex = flatNodes.findIndex(function(f) {\n return f.node.id === flat.parentId;\n });\n if (parentIndex >= 0) focusRow(parentIndex);\n }\n }\n }, hotkeyOpts);\n useHotkey((_ref4 = hotkeyOverrides === null || hotkeyOverrides === void 0 ? void 0 : hotkeyOverrides.toggle) !== null && _ref4 !== void 0 ? _ref4 : \"Space\", function() {\n var _dragUiRef_current;\n if (((_dragUiRef_current = dragUiRef.current) === null || _dragUiRef_current === void 0 ? void 0 : _dragUiRef_current.mode) === \"keyboard\") {\n endDrag(true);\n return;\n }\n if (canReorder) {\n liftFocusedNode();\n return;\n }\n if (focusedIndex >= 0 && focusedIndex < flatNodes.length) {\n var { node, hasChildren } = flatNodes[focusedIndex];\n if (hasChildren) {\n toggleNode(node);\n }\n }\n }, hotkeyOpts);\n useHotkey((_ref5 = hotkeyOverrides === null || hotkeyOverrides === void 0 ? void 0 : hotkeyOverrides.select) !== null && _ref5 !== void 0 ? _ref5 : \"Enter\", function() {\n var _dragUiRef_current;\n if (((_dragUiRef_current = dragUiRef.current) === null || _dragUiRef_current === void 0 ? void 0 : _dragUiRef_current.mode) === \"keyboard\") {\n endDrag(true);\n return;\n }\n if (focusedIndex >= 0 && focusedIndex < flatNodes.length) {\n onNodeSelect === null || onNodeSelect === void 0 ? void 0 : onNodeSelect(flatNodes[focusedIndex].node);\n }\n }, hotkeyOpts);\n useHotkey(\"Escape\", function() {\n var _dragUiRef_current;\n if (((_dragUiRef_current = dragUiRef.current) === null || _dragUiRef_current === void 0 ? void 0 : _dragUiRef_current.mode) === \"keyboard\") endDrag(false);\n }, hotkeyOpts);\n useHotkey((_ref6 = hotkeyOverrides === null || hotkeyOverrides === void 0 ? void 0 : hotkeyOverrides.first) !== null && _ref6 !== void 0 ? _ref6 : \"Home\", function() {\n if (flatNodes.length > 0) focusRow(0);\n }, hotkeyOpts);\n useHotkey((_ref7 = hotkeyOverrides === null || hotkeyOverrides === void 0 ? void 0 : hotkeyOverrides.last) !== null && _ref7 !== void 0 ? _ref7 : \"End\", function() {\n if (flatNodes.length > 0) focusRow(flatNodes.length - 1);\n }, hotkeyOpts);\n var handleTreeKeyDown = useCallback(function(e) {\n var _e_preventDefault;\n var key = e === null || e === void 0 ? void 0 : e.key;\n if (!key || key.length !== 1) return;\n if (e.ctrlKey || e.metaKey || e.altKey) return;\n if (key === \" \") return;\n if (dragUiRef.current) return;\n if (flatNodes.length === 0) return;\n (_e_preventDefault = e.preventDefault) === null || _e_preventDefault === void 0 ? void 0 : _e_preventDefault.call(e);\n var now = Date.now();\n var state = typeaheadRef.current;\n state.buffer = now - state.at > TYPEAHEAD_MS ? key : state.buffer + key;\n state.at = now;\n var query = state.buffer.toLowerCase();\n var start = focusedIndex >= 0 ? focusedIndex : -1;\n var n = flatNodes.length;\n for (var i = 1; i <= n; i++) {\n var idx = (start + i) % n;\n if (flatNodes[idx].node.label.toLowerCase().startsWith(query)) {\n focusRow(idx);\n return;\n }\n }\n }, [\n flatNodes,\n focusedIndex,\n focusRow\n ]);\n if (nodes.length === 0) {\n return /* @__PURE__ */ _jsx(EmptyState, {\n compact: true,\n title: emptyMessage,\n ...stackProps\n });\n }\n var effectiveFocused = focusedIndex >= flatNodes.length ? -1 : focusedIndex;\n var resolvedAriaLabel = ariaLabel !== null && ariaLabel !== void 0 ? ariaLabel : typeof stackProps[\"aria-label\"] === \"string\" ? stackProps[\"aria-label\"] : void 0;\n var overlayNode = (dragUi === null || dragUi === void 0 ? void 0 : dragUi.mode) === \"pointer\" ? dragUi.node : settle === null || settle === void 0 ? void 0 : settle.node;\n var overlayHasChildren = ((_ref8 = overlayNode === null || overlayNode === void 0 ? void 0 : (_overlayNode_children = overlayNode.children) === null || _overlayNode_children === void 0 ? void 0 : _overlayNode_children.length) !== null && _ref8 !== void 0 ? _ref8 : 0) > 0;\n var handleOutset = Math.max(0, (MIN_PRESS_TARGET - estimateSize) / 2);\n return /* @__PURE__ */ _jsx(YStack, {\n ...knobProps.containerRadius,\n overflow: \"hidden\",\n ...stackProps,\n children: /* @__PURE__ */ _jsxs(View, {\n ref: containerRef,\n role: \"tree\",\n \"aria-label\": resolvedAriaLabel,\n \"data-nested-px\": nestedPx,\n \"data-indent-step\": indentStep,\n \"data-space\": knobProps.space,\n \"data-size\": knobProps.size,\n \"data-viewport-height\": height,\n // Spec Part 3 TreeView: E-FLAT + SF-TRANSPARENT on this chromeless frame.\n \"data-elevation-class\": \"flat\",\n \"data-fill\": \"transparent\",\n \"aria-activedescendant\": effectiveFocused >= 0 ? `${treeId}-node-${effectiveFocused}` : void 0,\n tabIndex: 0,\n outlineWidth: 0,\n outlineStyle: \"none\",\n onFocus: handleContainerFocus,\n onBlur: handleContainerBlur,\n onKeyDown: handleTreeKeyDown,\n onLayout: scheduleScroll,\n ...isWeb && {\n onWheel: cancelInitialScroll,\n onPointerDown: cancelInitialScroll\n },\n position: \"relative\",\n style: {\n height\n },\n children: [\n /* @__PURE__ */ _jsx(FlashList, {\n keyboardShouldPersistTaps: \"handled\",\n ref: attachList,\n data: flatNodes,\n drawDistance: overscan * estimateSize,\n keyExtractor: function keyExtractor(item) {\n return item.node.id;\n },\n onLoad: function onLoad() {\n if (!scrollActive.current || !listInstance.attached) return;\n listInstance.loaded = true;\n scheduleScroll();\n },\n onCommitLayoutEffect: scheduleScroll,\n onContentSizeChange: scheduleScroll,\n onScrollBeginDrag: function onScrollBeginDrag() {\n if (scrollActive.current && listInstance.attached) cancelInitialScroll();\n },\n extraData: {\n focused: effectiveFocused,\n selectedId,\n expandedIds,\n motion,\n dragUi,\n settle,\n keyboardRing,\n collapsedSelectedAncestors\n },\n onScroll: function onScroll(e) {\n var _e_nativeEvent_contentOffset, _e_nativeEvent;\n if (!scrollActive.current || !listInstance.attached) return;\n var y = e === null || e === void 0 ? void 0 : (_e_nativeEvent = e.nativeEvent) === null || _e_nativeEvent === void 0 ? void 0 : (_e_nativeEvent_contentOffset = _e_nativeEvent.contentOffset) === null || _e_nativeEvent_contentOffset === void 0 ? void 0 : _e_nativeEvent_contentOffset.y;\n if (typeof y === \"number\" && Number.isFinite(y)) {\n scrollOffsetRef.current = y;\n if (dragUiRef.current) setDragScrollY(y);\n observeOffset(y, true);\n }\n scheduleScroll();\n },\n scrollEventThrottle: 16,\n renderItem: function renderItem(param2) {\n var { item, index } = param2;\n var _ref13, _ref14, _ref22;\n var _dragUi_indicator2;\n var { node, depth, hasChildren, isExpanded } = item;\n var isFocused = effectiveFocused === index;\n var isSelected = selectedId !== void 0 && selectedId === node.id;\n var leadingIcon = hasChildren && isExpanded && node.iconWhenExpanded ? node.iconWhenExpanded : node.icon ? node.icon : defaultNodeIcon(hasChildren, isExpanded, nodeIconSize);\n var containsSelected = collapsedSelectedAncestors.has(node.id);\n var groupPosition = getGroupPosition(index, flatNodes.length);\n var labelContent = renderNode ? renderNode(node, depth) : /* @__PURE__ */ _jsx(Text, {\n ...knobProps.body,\n ...knobProps.label,\n color: isSelected && onAccentLabel ? onAccentLabel : \"$color\",\n numberOfLines: 1,\n flexShrink: 1,\n children: node.label\n });\n var armed = (motion === null || motion === void 0 ? void 0 : motion.phase) === \"armed\";\n var entering = (_ref13 = motion === null || motion === void 0 ? void 0 : motion.entering.has(node.id)) !== null && _ref13 !== void 0 ? _ref13 : false;\n var delta = (_ref14 = motion === null || motion === void 0 ? void 0 : motion.deltas.get(node.id)) !== null && _ref14 !== void 0 ? _ref14 : 0;\n var rowY = armed ? entering ? ENTER_RISE_PX : delta : 0;\n var inDraggedSubtree = (_ref22 = dragUi === null || dragUi === void 0 ? void 0 : dragUi.subtree.has(node.id)) !== null && _ref22 !== void 0 ? _ref22 : false;\n var isSettleHidden = (settle === null || settle === void 0 ? void 0 : settle.hideId) === node.id;\n var isDropParent = (dragUi === null || dragUi === void 0 ? void 0 : (_dragUi_indicator2 = dragUi.indicator) === null || _dragUi_indicator2 === void 0 ? void 0 : _dragUi_indicator2.kind) === \"into\" && dragUi.indicator.parentId === node.id;\n var rowOpacity = isSettleHidden ? 0 : armed && entering ? 0 : inDraggedSubtree ? 0.4 : 1;\n var rowTransition = armed && (entering || delta !== 0) ? \"none\" : transition;\n return /* @__PURE__ */ _jsxs(\n XStack,\n {\n ref: function ref(row) {\n if (row) renderedRows.current.add(node.id);\n else renderedRows.current.delete(node.id);\n scheduleScroll();\n },\n id: `${treeId}-node-${index}`,\n \"data-treeview-row\": node.id,\n ...isDropParent && {\n \"data-treeview-drop-parent\": \"true\"\n },\n ...isFocused && {\n \"data-focused\": true\n },\n \"data-group-position\": groupPosition,\n role: \"treeitem\",\n \"aria-expanded\": hasChildren ? isExpanded : void 0,\n \"aria-selected\": isSelected,\n \"aria-level\": depth + 1,\n \"aria-setsize\": flatNodes.length,\n \"aria-posinset\": index + 1,\n alignItems: \"center\",\n minHeight: estimateSize,\n paddingVertical: rowPad.paddingVertical,\n paddingInlineEnd: rowPad.paddingHorizontal,\n paddingInlineStart: rowPad.paddingHorizontal,\n gap: rowGap,\n cursor: \"pointer\",\n position: \"relative\",\n y: rowY,\n opacity: rowOpacity,\n transition: rowTransition,\n ...stackRadiusProps(groupPosition, knobProps.borderRadius.borderRadius),\n onLayout: function onLayout(e) {\n var _e_nativeEvent_layout, _e_nativeEvent;\n var h = e === null || e === void 0 ? void 0 : (_e_nativeEvent = e.nativeEvent) === null || _e_nativeEvent === void 0 ? void 0 : (_e_nativeEvent_layout = _e_nativeEvent.layout) === null || _e_nativeEvent_layout === void 0 ? void 0 : _e_nativeEvent_layout.height;\n if (typeof h === \"number\" && h > 0) rowHeights.current.set(node.id, h);\n scheduleScroll();\n },\n backgroundColor: (\n // Nest-into parent highlight wins while a drag is active\n // (LC-42 drop-target affordance).\n isDropParent ? componentColors.interactive.background : isSelected ? \"$accentBackground\" : containsSelected ? componentColors.interactive.background : \"transparent\"\n ),\n // Row hover/press come from the knob state recipes (A-STATE);\n // selection tint stays sticky underneath them. Focus is the\n // ring channel (LC-71) — never a second fill.\n hoverStyle: {\n ...control.hoverKnobProps,\n ...isSelected && {\n backgroundColor: \"$accentBackground\"\n }\n },\n pressStyle: {\n ...control.pressKnobProps,\n ...isSelected && {\n backgroundColor: \"$accentBackground\"\n }\n },\n // LC-71: keyboard ring on the focused row only (activedescendant).\n // Selected is fill above; selected + keyboard-focused = both.\n ...isFocused && keyboardRing ? keyboardFocusRingProps : {\n outlineWidth: 0\n },\n onPress: function onPress() {\n if (suppressClickRef.current) return;\n setKeyboardRing(false);\n setFocusedIndex(index);\n if (hasChildren) toggleNode(node);\n onNodeSelect === null || onNodeSelect === void 0 ? void 0 : onNodeSelect(node);\n },\n children: [\n depth > 0 ? /* @__PURE__ */ _jsx(View, {\n width: depth * indentStep,\n flexShrink: 0,\n alignSelf: \"stretch\",\n position: \"relative\",\n pointerEvents: \"none\",\n children: Array.from({\n length: depth\n }, function(_, guide) {\n var inset = guide * indentStep + expandIconSize / 2;\n return /* @__PURE__ */ _jsx(View, {\n position: \"absolute\",\n top: 0,\n bottom: 0,\n ...hairline.vline,\n pointerEvents: \"none\",\n backgroundColor: isSelected ? \"$color1\" : \"$borderColor\",\n opacity: isSelected ? 0.35 : 0.5,\n ...isRTL ? {\n right: inset\n } : {\n left: inset\n }\n }, `guide-${guide}`);\n })\n }) : null,\n showExpansionArrows ? hasChildren ? /* @__PURE__ */ _jsx(View, {\n ...knobProps.controlIcon,\n alignItems: \"center\",\n justifyContent: \"center\",\n pointerEvents: \"none\",\n // Indicator only — the row is the toggle target. One\n // caret that rotates (transform, knob tween) instead of\n // an icon swap, so the state change is continuous.\n rotate: isExpanded ? expandedCaretRotation : \"0deg\",\n transition,\n children: /* @__PURE__ */ _jsx(CollapsedCaretIcon, {\n size: caretSize,\n weight: \"bold\"\n })\n }) : /* @__PURE__ */ _jsx(View, {\n ...knobProps.controlIcon\n }) : null,\n /* @__PURE__ */ _jsx(View, {\n ...knobProps.controlIcon,\n alignItems: \"center\",\n justifyContent: \"center\",\n flexShrink: 0,\n children: leadingIcon\n }),\n /* @__PURE__ */ _jsx(View, {\n flex: 1,\n minWidth: 0,\n justifyContent: \"center\",\n children: labelContent\n }),\n canReorder ? /* @__PURE__ */ _jsx(DragHandleTarget, {\n \"data-treeview-handle\": node.id,\n role: \"button\",\n \"aria-label\": t(\"Drag {{label}} to reorder\", {\n label: node.label\n }),\n tabIndex: -1,\n alignItems: \"center\",\n justifyContent: \"center\",\n flexShrink: 0,\n minWidth: MIN_PRESS_TARGET,\n minHeight: MIN_PRESS_TARGET,\n marginVertical: -handleOutset,\n hitSlop: pressTargetHitSlop(caretSize),\n cursor: \"grab\",\n opacity: 0.6,\n transition,\n hoverStyle: {\n opacity: 1\n },\n onPress: function onPress(e) {\n var _e_stopPropagation;\n return e === null || e === void 0 ? void 0 : (_e_stopPropagation = e.stopPropagation) === null || _e_stopPropagation === void 0 ? void 0 : _e_stopPropagation.call(e);\n },\n onPointerDown: function onPointerDown(e) {\n return handleDragHandlePointerDown(item, e);\n },\n children: /* @__PURE__ */ _jsx(DotsSixVerticalIcon, {\n size: caretSize,\n weight: \"bold\",\n color: knobProps.textAccentColor\n })\n }) : null\n ]\n },\n // Remount when a recycled cell switches nodes so state fills\n // and the caret never tween across two different rows.\n node.id\n );\n }\n }),\n (dragUi === null || dragUi === void 0 ? void 0 : (_dragUi_indicator = dragUi.indicator) === null || _dragUi_indicator === void 0 ? void 0 : _dragUi_indicator.kind) === \"line\" && /* @__PURE__ */ _jsxs(XStack, {\n \"data-treeview-drop-indicator\": \"line\",\n position: \"absolute\",\n top: 0,\n left: 0,\n right: 0,\n y: topOfFlatIndex(dragUi.indicator.flatIndex) - dragScrollY - 1,\n height: 2,\n paddingInlineStart: rowPad.paddingHorizontal,\n paddingInlineEnd: rowPad.paddingHorizontal,\n pointerEvents: \"none\",\n zIndex: 999,\n transition: dragUi.mode === \"keyboard\" ? transition : \"none\",\n children: [\n /* @__PURE__ */ _jsx(View, {\n width: dragUi.indicator.depth * indentStep,\n flexShrink: 0\n }),\n /* @__PURE__ */ _jsx(View, {\n flex: 1,\n height: 2,\n borderRadius: 1,\n backgroundColor: \"$accentBackground\"\n })\n ]\n }),\n /* Ghost overlay: clone of the dragged row outside the virtualized\n list. Pointer mode tracks 1:1 with no tween; the drop/cancel\n settle leap tweens with the animation knob (LC-42). */\n overlayNode !== void 0 && /* @__PURE__ */ _jsx(View, {\n \"data-treeview-overlay\": \"true\",\n \"data-treeview-overlay-phase\": dragUi ? \"pointer\" : \"settling\",\n position: \"absolute\",\n top: 0,\n left: 0,\n x: (_ref9 = (dragUi === null || dragUi === void 0 ? void 0 : dragUi.mode) === \"pointer\" ? (_dragUi_ghost = dragUi.ghost) === null || _dragUi_ghost === void 0 ? void 0 : _dragUi_ghost.x : settle === null || settle === void 0 ? void 0 : settle.to.x) !== null && _ref9 !== void 0 ? _ref9 : 0,\n y: (_ref10 = (dragUi === null || dragUi === void 0 ? void 0 : dragUi.mode) === \"pointer\" ? (_dragUi_ghost1 = dragUi.ghost) === null || _dragUi_ghost1 === void 0 ? void 0 : _dragUi_ghost1.y : settle === null || settle === void 0 ? void 0 : settle.to.y) !== null && _ref10 !== void 0 ? _ref10 : 0,\n width: (_ref11 = dragUi === null || dragUi === void 0 ? void 0 : dragUi.width) !== null && _ref11 !== void 0 ? _ref11 : settle === null || settle === void 0 ? void 0 : settle.width,\n height: (_ref12 = dragUi === null || dragUi === void 0 ? void 0 : dragUi.height) !== null && _ref12 !== void 0 ? _ref12 : settle === null || settle === void 0 ? void 0 : settle.height,\n pointerEvents: \"none\",\n zIndex: 1e3,\n transition: dragUi ? \"none\" : transition,\n children: /* @__PURE__ */ _jsxs(XStack, {\n alignItems: \"center\",\n height: \"100%\",\n paddingHorizontal: rowPad.paddingHorizontal,\n gap: rowGap,\n ...knobProps.borderRadius,\n backgroundColor: \"$background\",\n borderWidth: 1,\n borderColor: \"$borderColor\",\n overflow: \"hidden\",\n transition,\n enterStyle: {\n scale: 1\n },\n scale: dragUi ? 1.03 : 1,\n ...dragUi ? LIFT_SHADOW : void 0,\n children: [\n /* @__PURE__ */ _jsx(View, {\n ...knobProps.controlIcon,\n alignItems: \"center\",\n justifyContent: \"center\",\n flexShrink: 0,\n children: (_overlayNode_icon = overlayNode.icon) !== null && _overlayNode_icon !== void 0 ? _overlayNode_icon : defaultNodeIcon(overlayHasChildren, false, nodeIconSize)\n }),\n /* @__PURE__ */ _jsx(Text, {\n ...knobProps.body,\n ...knobProps.label,\n color: \"$color\",\n numberOfLines: 1,\n flexShrink: 1,\n children: overlayNode.label\n })\n ]\n })\n }),\n /* Screen-reader drag announcements (WAI-ARIA drag pattern, LC-43). */\n canReorder && /* @__PURE__ */ _jsx(View, {\n \"aria-live\": \"assertive\",\n \"aria-atomic\": true,\n \"data-treeview-announcer\": \"true\",\n position: \"absolute\",\n width: 1,\n height: 1,\n overflow: \"hidden\",\n opacity: 0,\n pointerEvents: \"none\",\n children: /* @__PURE__ */ _jsx(Text, {\n children: announcement\n })\n })\n ]\n })\n });\n}\nexport {\n TreeView\n};\n//# sourceMappingURL=TreeView.js.map\n"],"mappings":"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","ignoreList":[]}