@50arms/ui 0.0.0-stage → 35.2.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 (1256) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +193 -2
  3. package/dist/components/Accordion.js +68 -0
  4. package/dist/components/Accordion.js.map +1 -0
  5. package/dist/components/AgentWorkingSpinner.js +46 -0
  6. package/dist/components/AgentWorkingSpinner.js.map +1 -0
  7. package/dist/components/AppShell.js +228 -0
  8. package/dist/components/AppShell.js.map +1 -0
  9. package/dist/components/Attention.js +130 -0
  10. package/dist/components/Attention.js.map +1 -0
  11. package/dist/components/Avatar.js +99 -0
  12. package/dist/components/Avatar.js.map +1 -0
  13. package/dist/components/Badge.js +143 -0
  14. package/dist/components/Badge.js.map +1 -0
  15. package/dist/components/Board.js +292 -0
  16. package/dist/components/Board.js.map +1 -0
  17. package/dist/components/Button.js +327 -0
  18. package/dist/components/Button.js.map +1 -0
  19. package/dist/components/Callout.js +106 -0
  20. package/dist/components/Callout.js.map +1 -0
  21. package/dist/components/Card.js +140 -0
  22. package/dist/components/Card.js.map +1 -0
  23. package/dist/components/Choice.js +361 -0
  24. package/dist/components/Choice.js.map +1 -0
  25. package/dist/components/CodeEditor.js +384 -0
  26. package/dist/components/CodeEditor.js.map +1 -0
  27. package/dist/components/ColorPicker.js +174 -0
  28. package/dist/components/ColorPicker.js.map +1 -0
  29. package/dist/components/Combobox.js +212 -0
  30. package/dist/components/Combobox.js.map +1 -0
  31. package/dist/components/CommandPalette.js +163 -0
  32. package/dist/components/CommandPalette.js.map +1 -0
  33. package/dist/components/ConcentricRing.js +60 -0
  34. package/dist/components/ConcentricRing.js.map +1 -0
  35. package/dist/components/ConnectionCard.js +98 -0
  36. package/dist/components/ConnectionCard.js.map +1 -0
  37. package/dist/components/ContextItemRow.js +49 -0
  38. package/dist/components/ContextItemRow.js.map +1 -0
  39. package/dist/components/CopyValue.js +57 -0
  40. package/dist/components/CopyValue.js.map +1 -0
  41. package/dist/components/CountBadge.js +26 -0
  42. package/dist/components/CountBadge.js.map +1 -0
  43. package/dist/components/DateCalendar.js +156 -0
  44. package/dist/components/DateCalendar.js.map +1 -0
  45. package/dist/components/DateField.js +166 -0
  46. package/dist/components/DateField.js.map +1 -0
  47. package/dist/components/DatePicker.js +56 -0
  48. package/dist/components/DatePicker.js.map +1 -0
  49. package/dist/components/DateTimeText.js +19 -0
  50. package/dist/components/DateTimeText.js.map +1 -0
  51. package/dist/components/DescriptionList.js +25 -0
  52. package/dist/components/DescriptionList.js.map +1 -0
  53. package/dist/components/Dialog.js +332 -0
  54. package/dist/components/Dialog.js.map +1 -0
  55. package/dist/components/DragDrop.js +395 -0
  56. package/dist/components/DragDrop.js.map +1 -0
  57. package/dist/components/Drawer.js +100 -0
  58. package/dist/components/Drawer.js.map +1 -0
  59. package/dist/components/EditGutter.js +110 -0
  60. package/dist/components/EditGutter.js.map +1 -0
  61. package/dist/components/EmojiPicker.js +174 -0
  62. package/dist/components/EmojiPicker.js.map +1 -0
  63. package/dist/components/ErrorBoundary.js +47 -0
  64. package/dist/components/ErrorBoundary.js.map +1 -0
  65. package/dist/components/Field.js +115 -0
  66. package/dist/components/Field.js.map +1 -0
  67. package/dist/components/FileUpload.js +128 -0
  68. package/dist/components/FileUpload.js.map +1 -0
  69. package/dist/components/FilterMenu.js +256 -0
  70. package/dist/components/FilterMenu.js.map +1 -0
  71. package/dist/components/GatesSection.js +79 -0
  72. package/dist/components/GatesSection.js.map +1 -0
  73. package/dist/components/Icon.js +50 -0
  74. package/dist/components/Icon.js.map +1 -0
  75. package/dist/components/IconButton.js +59 -0
  76. package/dist/components/IconButton.js.map +1 -0
  77. package/dist/components/IconStack.js +69 -0
  78. package/dist/components/IconStack.js.map +1 -0
  79. package/dist/components/ImageUploadField.js +146 -0
  80. package/dist/components/ImageUploadField.js.map +1 -0
  81. package/dist/components/InlineEdit.js +432 -0
  82. package/dist/components/InlineEdit.js.map +1 -0
  83. package/dist/components/InlineMarkdownEdit.js +184 -0
  84. package/dist/components/InlineMarkdownEdit.js.map +1 -0
  85. package/dist/components/Input.js +156 -0
  86. package/dist/components/Input.js.map +1 -0
  87. package/dist/components/LegalDocument.js +155 -0
  88. package/dist/components/LegalDocument.js.map +1 -0
  89. package/dist/components/LineDiff.js +95 -0
  90. package/dist/components/LineDiff.js.map +1 -0
  91. package/dist/components/ListHeader.js +72 -0
  92. package/dist/components/ListHeader.js.map +1 -0
  93. package/dist/components/Loading.js +111 -0
  94. package/dist/components/Loading.js.map +1 -0
  95. package/dist/components/Markdown.js +28 -0
  96. package/dist/components/Markdown.js.map +1 -0
  97. package/dist/components/MarkdownEditor.js +467 -0
  98. package/dist/components/MarkdownEditor.js.map +1 -0
  99. package/dist/components/Menu.js +185 -0
  100. package/dist/components/Menu.js.map +1 -0
  101. package/dist/components/Navigation.js +87 -0
  102. package/dist/components/Navigation.js.map +1 -0
  103. package/dist/components/NumberInput.js +119 -0
  104. package/dist/components/NumberInput.js.map +1 -0
  105. package/dist/components/OTPInput.js +71 -0
  106. package/dist/components/OTPInput.js.map +1 -0
  107. package/dist/components/OrderedEntityManager.js +170 -0
  108. package/dist/components/OrderedEntityManager.js.map +1 -0
  109. package/dist/components/PagedWindowList.js +74 -0
  110. package/dist/components/PagedWindowList.js.map +1 -0
  111. package/dist/components/PaginationBar.js +95 -0
  112. package/dist/components/PaginationBar.js.map +1 -0
  113. package/dist/components/Panel.js +396 -0
  114. package/dist/components/Panel.js.map +1 -0
  115. package/dist/components/PasswordInput.js +32 -0
  116. package/dist/components/PasswordInput.js.map +1 -0
  117. package/dist/components/PasswordRequirements.js +25 -0
  118. package/dist/components/PasswordRequirements.js.map +1 -0
  119. package/dist/components/PatchDiff.js +96 -0
  120. package/dist/components/PatchDiff.js.map +1 -0
  121. package/dist/components/PendingVeil.js +18 -0
  122. package/dist/components/PendingVeil.js.map +1 -0
  123. package/dist/components/Popover.js +214 -0
  124. package/dist/components/Popover.js.map +1 -0
  125. package/dist/components/Progress.js +419 -0
  126. package/dist/components/Progress.js.map +1 -0
  127. package/dist/components/RatingScale.js +89 -0
  128. package/dist/components/RatingScale.js.map +1 -0
  129. package/dist/components/ReadMore.js +232 -0
  130. package/dist/components/ReadMore.js.map +1 -0
  131. package/dist/components/RecordCard.js +202 -0
  132. package/dist/components/RecordCard.js.map +1 -0
  133. package/dist/components/RelativeTime.js +29 -0
  134. package/dist/components/RelativeTime.js.map +1 -0
  135. package/dist/components/SandboxedFrame.js +135 -0
  136. package/dist/components/SandboxedFrame.js.map +1 -0
  137. package/dist/components/SearchInput.js +38 -0
  138. package/dist/components/SearchInput.js.map +1 -0
  139. package/dist/components/SecretField.js +228 -0
  140. package/dist/components/SecretField.js.map +1 -0
  141. package/dist/components/SectionNav.js +42 -0
  142. package/dist/components/SectionNav.js.map +1 -0
  143. package/dist/components/Select.js +172 -0
  144. package/dist/components/Select.js.map +1 -0
  145. package/dist/components/SequenceDiagram.js +109 -0
  146. package/dist/components/SequenceDiagram.js.map +1 -0
  147. package/dist/components/SettingRow.js +124 -0
  148. package/dist/components/SettingRow.js.map +1 -0
  149. package/dist/components/SignOffRings.js +36 -0
  150. package/dist/components/SignOffRings.js.map +1 -0
  151. package/dist/components/Slider.js +353 -0
  152. package/dist/components/Slider.js.map +1 -0
  153. package/dist/components/SolutionChoice.js +89 -0
  154. package/dist/components/SolutionChoice.js.map +1 -0
  155. package/dist/components/SortMenu.js +75 -0
  156. package/dist/components/SortMenu.js.map +1 -0
  157. package/dist/components/Spinner.js +42 -0
  158. package/dist/components/Spinner.js.map +1 -0
  159. package/dist/components/Stat.js +148 -0
  160. package/dist/components/Stat.js.map +1 -0
  161. package/dist/components/StatusSelect.js +119 -0
  162. package/dist/components/StatusSelect.js.map +1 -0
  163. package/dist/components/Surface.js +210 -0
  164. package/dist/components/Surface.js.map +1 -0
  165. package/dist/components/Table.js +300 -0
  166. package/dist/components/Table.js.map +1 -0
  167. package/dist/components/Tabs.js +288 -0
  168. package/dist/components/Tabs.js.map +1 -0
  169. package/dist/components/ThemeMenu.js +198 -0
  170. package/dist/components/ThemeMenu.js.map +1 -0
  171. package/dist/components/Toast.js +217 -0
  172. package/dist/components/Toast.js.map +1 -0
  173. package/dist/components/Toggle.js +147 -0
  174. package/dist/components/Toggle.js.map +1 -0
  175. package/dist/components/ToggleMatrix.js +157 -0
  176. package/dist/components/ToggleMatrix.js.map +1 -0
  177. package/dist/components/Tree.js +125 -0
  178. package/dist/components/Tree.js.map +1 -0
  179. package/dist/components/TriStateSwitch.js +111 -0
  180. package/dist/components/TriStateSwitch.js.map +1 -0
  181. package/dist/components/VideoPlayer.js +64 -0
  182. package/dist/components/VideoPlayer.js.map +1 -0
  183. package/dist/components/auth/AcceptInvitationCard.js +110 -0
  184. package/dist/components/auth/AcceptInvitationCard.js.map +1 -0
  185. package/dist/components/auth/AuthLayout.js +18 -0
  186. package/dist/components/auth/AuthLayout.js.map +1 -0
  187. package/dist/components/auth/ForgotPasswordForm.js +44 -0
  188. package/dist/components/auth/ForgotPasswordForm.js.map +1 -0
  189. package/dist/components/auth/LoginForm.js +76 -0
  190. package/dist/components/auth/LoginForm.js.map +1 -0
  191. package/dist/components/auth/ResetPasswordForm.js +69 -0
  192. package/dist/components/auth/ResetPasswordForm.js.map +1 -0
  193. package/dist/components/auth/SignInProviders.js +45 -0
  194. package/dist/components/auth/SignInProviders.js.map +1 -0
  195. package/dist/components/auth/SignupCard.js +204 -0
  196. package/dist/components/auth/SignupCard.js.map +1 -0
  197. package/dist/components/auth/TermsAcceptance.js +43 -0
  198. package/dist/components/auth/TermsAcceptance.js.map +1 -0
  199. package/dist/components/board/context.js +32 -0
  200. package/dist/components/board/context.js.map +1 -0
  201. package/dist/components/board/recipe.js +94 -0
  202. package/dist/components/board/recipe.js.map +1 -0
  203. package/dist/components/calendar/CalendarMonth.js +299 -0
  204. package/dist/components/calendar/CalendarMonth.js.map +1 -0
  205. package/dist/components/calendar/CalendarTimeGrid.js +430 -0
  206. package/dist/components/calendar/CalendarTimeGrid.js.map +1 -0
  207. package/dist/components/calendar/EventActions.js +101 -0
  208. package/dist/components/calendar/EventActions.js.map +1 -0
  209. package/dist/components/calendar/format.js +73 -0
  210. package/dist/components/calendar/format.js.map +1 -0
  211. package/dist/components/calendar/palette.js +31 -0
  212. package/dist/components/calendar/palette.js.map +1 -0
  213. package/dist/components/calendar/use-calendar-drag.js +149 -0
  214. package/dist/components/calendar/use-calendar-drag.js.map +1 -0
  215. package/dist/components/calendar/use-event-keyboard.js +87 -0
  216. package/dist/components/calendar/use-event-keyboard.js.map +1 -0
  217. package/dist/components/calendar/use-grid-navigation.js +79 -0
  218. package/dist/components/calendar/use-grid-navigation.js.map +1 -0
  219. package/dist/components/calendar/use-now.js +27 -0
  220. package/dist/components/calendar/use-now.js.map +1 -0
  221. package/dist/components/card-face/AcRingGlyph.js +39 -0
  222. package/dist/components/card-face/AcRingGlyph.js.map +1 -0
  223. package/dist/components/card-face/BoardCardAgentSlot.js +17 -0
  224. package/dist/components/card-face/BoardCardAgentSlot.js.map +1 -0
  225. package/dist/components/card-face/CardFace.js +109 -0
  226. package/dist/components/card-face/CardFace.js.map +1 -0
  227. package/dist/components/card-face/CardTypeBadge.js +17 -0
  228. package/dist/components/card-face/CardTypeBadge.js.map +1 -0
  229. package/dist/components/card-face/EffortBadge.js +11 -0
  230. package/dist/components/card-face/EffortBadge.js.map +1 -0
  231. package/dist/components/card-face/GateRingGlyph.js +31 -0
  232. package/dist/components/card-face/GateRingGlyph.js.map +1 -0
  233. package/dist/components/card-face/OverflowRow.js +70 -0
  234. package/dist/components/card-face/OverflowRow.js.map +1 -0
  235. package/dist/components/card-face/TapTip.js +32 -0
  236. package/dist/components/card-face/TapTip.js.map +1 -0
  237. package/dist/components/card-face/hit-area.js +6 -0
  238. package/dist/components/card-face/hit-area.js.map +1 -0
  239. package/dist/components/card-face/vocabulary.js +102 -0
  240. package/dist/components/card-face/vocabulary.js.map +1 -0
  241. package/dist/components/chart/BarList.js +78 -0
  242. package/dist/components/chart/BarList.js.map +1 -0
  243. package/dist/components/chart/LineChart.js +310 -0
  244. package/dist/components/chart/LineChart.js.map +1 -0
  245. package/dist/components/chart/ShareBar.js +141 -0
  246. package/dist/components/chart/ShareBar.js.map +1 -0
  247. package/dist/components/chart/TimeSeriesChart.js +305 -0
  248. package/dist/components/chart/TimeSeriesChart.js.map +1 -0
  249. package/dist/components/chart/label-metrics.js +17 -0
  250. package/dist/components/chart/label-metrics.js.map +1 -0
  251. package/dist/components/chart/line-chart-axis.js +38 -0
  252. package/dist/components/chart/line-chart-axis.js.map +1 -0
  253. package/dist/components/chart/line-chart-scale.js +132 -0
  254. package/dist/components/chart/line-chart-scale.js.map +1 -0
  255. package/dist/components/chart/line-series-style.js +22 -0
  256. package/dist/components/chart/line-series-style.js.map +1 -0
  257. package/dist/components/chart/share-bar-labels.js +14 -0
  258. package/dist/components/chart/share-bar-labels.js.map +1 -0
  259. package/dist/components/chart/shared.js +157 -0
  260. package/dist/components/chart/shared.js.map +1 -0
  261. package/dist/components/chart/time-series-scale.js +51 -0
  262. package/dist/components/chart/time-series-scale.js.map +1 -0
  263. package/dist/components/chat/Attachment.js +316 -0
  264. package/dist/components/chat/Attachment.js.map +1 -0
  265. package/dist/components/chat/Chat.js +171 -0
  266. package/dist/components/chat/Chat.js.map +1 -0
  267. package/dist/components/chat/Composer.js +274 -0
  268. package/dist/components/chat/Composer.js.map +1 -0
  269. package/dist/components/chat/ContextMeter.js +202 -0
  270. package/dist/components/chat/ContextMeter.js.map +1 -0
  271. package/dist/components/chat/EffortControl.js +116 -0
  272. package/dist/components/chat/EffortControl.js.map +1 -0
  273. package/dist/components/chat/FileCover.js +78 -0
  274. package/dist/components/chat/FileCover.js.map +1 -0
  275. package/dist/components/chat/Message.js +356 -0
  276. package/dist/components/chat/Message.js.map +1 -0
  277. package/dist/components/chat/MessageScroller.js +104 -0
  278. package/dist/components/chat/MessageScroller.js.map +1 -0
  279. package/dist/components/chat/ModelSelector.js +156 -0
  280. package/dist/components/chat/ModelSelector.js.map +1 -0
  281. package/dist/components/chat/StreamingMarkdown.js +42 -0
  282. package/dist/components/chat/StreamingMarkdown.js.map +1 -0
  283. package/dist/components/chat/download-file.js +9 -0
  284. package/dist/components/chat/download-file.js.map +1 -0
  285. package/dist/components/chat/file-icon.js +39 -0
  286. package/dist/components/chat/file-icon.js.map +1 -0
  287. package/dist/components/checklist/StatusChecklist.js +103 -0
  288. package/dist/components/checklist/StatusChecklist.js.map +1 -0
  289. package/dist/components/checklist/tally.js +29 -0
  290. package/dist/components/checklist/tally.js.map +1 -0
  291. package/dist/components/code-editor/context.js +13 -0
  292. package/dist/components/code-editor/context.js.map +1 -0
  293. package/dist/components/code-editor/editing.js +93 -0
  294. package/dist/components/code-editor/editing.js.map +1 -0
  295. package/dist/components/code-editor/highlight.js +27 -0
  296. package/dist/components/code-editor/highlight.js.map +1 -0
  297. package/dist/components/code-editor/recipe.js +75 -0
  298. package/dist/components/code-editor/recipe.js.map +1 -0
  299. package/dist/components/date-timeline/DateTimeline.js +358 -0
  300. package/dist/components/date-timeline/DateTimeline.js.map +1 -0
  301. package/dist/components/date-timeline/TimelineRow.js +100 -0
  302. package/dist/components/date-timeline/TimelineRow.js.map +1 -0
  303. package/dist/components/date-timeline/useBarDrag.js +44 -0
  304. package/dist/components/date-timeline/useBarDrag.js.map +1 -0
  305. package/dist/components/date-timeline/useMarkerDrag.js +40 -0
  306. package/dist/components/date-timeline/useMarkerDrag.js.map +1 -0
  307. package/dist/components/date-timeline/useTimelineZoom.js +44 -0
  308. package/dist/components/date-timeline/useTimelineZoom.js.map +1 -0
  309. package/dist/components/drag-drop/context.js +37 -0
  310. package/dist/components/drag-drop/context.js.map +1 -0
  311. package/dist/components/drag-drop/recipe.js +270 -0
  312. package/dist/components/drag-drop/recipe.js.map +1 -0
  313. package/dist/components/drag-drop/shift.js +157 -0
  314. package/dist/components/drag-drop/shift.js.map +1 -0
  315. package/dist/components/edit/activation.js +10 -0
  316. package/dist/components/edit/activation.js.map +1 -0
  317. package/dist/components/edit/outcome.js +47 -0
  318. package/dist/components/edit/outcome.js.map +1 -0
  319. package/dist/components/edit/use-edit-session.js +146 -0
  320. package/dist/components/edit/use-edit-session.js.map +1 -0
  321. package/dist/components/file-viewer/FileViewer.js +97 -0
  322. package/dist/components/file-viewer/FileViewer.js.map +1 -0
  323. package/dist/components/file-viewer/PageNumberJumpField.js +47 -0
  324. package/dist/components/file-viewer/PageNumberJumpField.js.map +1 -0
  325. package/dist/components/file-viewer/ViewerControls.js +122 -0
  326. package/dist/components/file-viewer/ViewerControls.js.map +1 -0
  327. package/dist/components/file-viewer/ViewerRail.js +57 -0
  328. package/dist/components/file-viewer/ViewerRail.js.map +1 -0
  329. package/dist/components/file-viewer/ViewerStage.js +112 -0
  330. package/dist/components/file-viewer/ViewerStage.js.map +1 -0
  331. package/dist/components/file-viewer/frames.js +37 -0
  332. package/dist/components/file-viewer/frames.js.map +1 -0
  333. package/dist/components/file-viewer/use-frame-cursor.js +32 -0
  334. package/dist/components/file-viewer/use-frame-cursor.js.map +1 -0
  335. package/dist/components/file-viewer/use-viewer-keys.js +50 -0
  336. package/dist/components/file-viewer/use-viewer-keys.js.map +1 -0
  337. package/dist/components/file-viewer/use-viewer-zoom.js +68 -0
  338. package/dist/components/file-viewer/use-viewer-zoom.js.map +1 -0
  339. package/dist/components/focus-web/FocusWeb.js +322 -0
  340. package/dist/components/focus-web/FocusWeb.js.map +1 -0
  341. package/dist/components/focus-web/layout.js +34 -0
  342. package/dist/components/focus-web/layout.js.map +1 -0
  343. package/dist/components/graph-explorer/GraphExplorer.js +441 -0
  344. package/dist/components/graph-explorer/GraphExplorer.js.map +1 -0
  345. package/dist/components/graph-explorer/camera-math.js +102 -0
  346. package/dist/components/graph-explorer/camera-math.js.map +1 -0
  347. package/dist/components/graph-explorer/tree-layout.js +103 -0
  348. package/dist/components/graph-explorer/tree-layout.js.map +1 -0
  349. package/dist/components/graph-explorer/use-camera.js +82 -0
  350. package/dist/components/graph-explorer/use-camera.js.map +1 -0
  351. package/dist/components/graph-explorer/viewport-gesture.js +107 -0
  352. package/dist/components/graph-explorer/viewport-gesture.js.map +1 -0
  353. package/dist/components/kanban/KanbanBoard.js +219 -0
  354. package/dist/components/kanban/KanbanBoard.js.map +1 -0
  355. package/dist/components/kanban/recipe.js +144 -0
  356. package/dist/components/kanban/recipe.js.map +1 -0
  357. package/dist/components/markdown/Affordances.js +398 -0
  358. package/dist/components/markdown/Affordances.js.map +1 -0
  359. package/dist/components/markdown/AttachmentStrip.js +128 -0
  360. package/dist/components/markdown/AttachmentStrip.js.map +1 -0
  361. package/dist/components/markdown/ImageUpload.js +45 -0
  362. package/dist/components/markdown/ImageUpload.js.map +1 -0
  363. package/dist/components/media-error.js +7 -0
  364. package/dist/components/media-error.js.map +1 -0
  365. package/dist/components/nav-sections.js +61 -0
  366. package/dist/components/nav-sections.js.map +1 -0
  367. package/dist/components/node-canvas/NodeCanvas.js +384 -0
  368. package/dist/components/node-canvas/NodeCanvas.js.map +1 -0
  369. package/dist/components/node-canvas/layout.js +237 -0
  370. package/dist/components/node-canvas/layout.js.map +1 -0
  371. package/dist/components/node-canvas/use-canvas-gestures.js +143 -0
  372. package/dist/components/node-canvas/use-canvas-gestures.js.map +1 -0
  373. package/dist/components/openapi/OpenApiViewer.js +137 -0
  374. package/dist/components/openapi/OpenApiViewer.js.map +1 -0
  375. package/dist/components/openapi/OperationCard.js +145 -0
  376. package/dist/components/openapi/OperationCard.js.map +1 -0
  377. package/dist/components/openapi/SchemaView.js +68 -0
  378. package/dist/components/openapi/SchemaView.js.map +1 -0
  379. package/dist/components/openapi/resolve.js +102 -0
  380. package/dist/components/openapi/resolve.js.map +1 -0
  381. package/dist/components/openapi/types.js +5 -0
  382. package/dist/components/openapi/types.js.map +1 -0
  383. package/dist/components/overlay-shell.js +29 -0
  384. package/dist/components/overlay-shell.js.map +1 -0
  385. package/dist/components/overlay-stack.js +27 -0
  386. package/dist/components/overlay-stack.js.map +1 -0
  387. package/dist/components/paged-window/PageBlock.js +50 -0
  388. package/dist/components/paged-window/PageBlock.js.map +1 -0
  389. package/dist/components/provenance/ConfidenceBar.js +60 -0
  390. package/dist/components/provenance/ConfidenceBar.js.map +1 -0
  391. package/dist/components/provenance/ConfidenceMeter.js +36 -0
  392. package/dist/components/provenance/ConfidenceMeter.js.map +1 -0
  393. package/dist/components/provenance/ConfidenceReadout.js +31 -0
  394. package/dist/components/provenance/ConfidenceReadout.js.map +1 -0
  395. package/dist/components/provenance/ProvenanceBadge.js +44 -0
  396. package/dist/components/provenance/ProvenanceBadge.js.map +1 -0
  397. package/dist/components/provenance/ProvenanceDetail.js +114 -0
  398. package/dist/components/provenance/ProvenanceDetail.js.map +1 -0
  399. package/dist/components/provenance/ProvenanceDisclosure.js +111 -0
  400. package/dist/components/provenance/ProvenanceDisclosure.js.map +1 -0
  401. package/dist/components/provenance/absence.js +31 -0
  402. package/dist/components/provenance/absence.js.map +1 -0
  403. package/dist/components/provenance/types.js +30 -0
  404. package/dist/components/provenance/types.js.map +1 -0
  405. package/dist/components/rbac/AccessRequestPanel.js +153 -0
  406. package/dist/components/rbac/AccessRequestPanel.js.map +1 -0
  407. package/dist/components/rbac/AccountMenu.js +118 -0
  408. package/dist/components/rbac/AccountMenu.js.map +1 -0
  409. package/dist/components/rbac/AgentKeysList.js +20 -0
  410. package/dist/components/rbac/AgentKeysList.js.map +1 -0
  411. package/dist/components/rbac/ApiKeysPanel.js +172 -0
  412. package/dist/components/rbac/ApiKeysPanel.js.map +1 -0
  413. package/dist/components/rbac/ApiKeysTable.js +169 -0
  414. package/dist/components/rbac/ApiKeysTable.js.map +1 -0
  415. package/dist/components/rbac/Brand.js +13 -0
  416. package/dist/components/rbac/Brand.js.map +1 -0
  417. package/dist/components/rbac/Can.js +18 -0
  418. package/dist/components/rbac/Can.js.map +1 -0
  419. package/dist/components/rbac/ChangePasswordForm.js +73 -0
  420. package/dist/components/rbac/ChangePasswordForm.js.map +1 -0
  421. package/dist/components/rbac/DangerZone.js +27 -0
  422. package/dist/components/rbac/DangerZone.js.map +1 -0
  423. package/dist/components/rbac/DevToolsPopover.js +140 -0
  424. package/dist/components/rbac/DevToolsPopover.js.map +1 -0
  425. package/dist/components/rbac/EndedLine.js +24 -0
  426. package/dist/components/rbac/EndedLine.js.map +1 -0
  427. package/dist/components/rbac/InvitationsList.js +148 -0
  428. package/dist/components/rbac/InvitationsList.js.map +1 -0
  429. package/dist/components/rbac/InviteMembersDialog.js +97 -0
  430. package/dist/components/rbac/InviteMembersDialog.js.map +1 -0
  431. package/dist/components/rbac/MembersPanel.js +138 -0
  432. package/dist/components/rbac/MembersPanel.js.map +1 -0
  433. package/dist/components/rbac/PermissionRequestPanel.js +141 -0
  434. package/dist/components/rbac/PermissionRequestPanel.js.map +1 -0
  435. package/dist/components/rbac/ProfileForm.js +86 -0
  436. package/dist/components/rbac/ProfileForm.js.map +1 -0
  437. package/dist/components/rbac/ProfilePage.js +58 -0
  438. package/dist/components/rbac/ProfilePage.js.map +1 -0
  439. package/dist/components/rbac/RBACProvider.js +82 -0
  440. package/dist/components/rbac/RBACProvider.js.map +1 -0
  441. package/dist/components/rbac/RoleEditorDialog.js +90 -0
  442. package/dist/components/rbac/RoleEditorDialog.js.map +1 -0
  443. package/dist/components/rbac/RoleKeyPicker.js +77 -0
  444. package/dist/components/rbac/RoleKeyPicker.js.map +1 -0
  445. package/dist/components/rbac/RolePermissionMatrix.js +37 -0
  446. package/dist/components/rbac/RolePermissionMatrix.js.map +1 -0
  447. package/dist/components/rbac/RolesPermissionsPage.js +142 -0
  448. package/dist/components/rbac/RolesPermissionsPage.js.map +1 -0
  449. package/dist/components/rbac/SessionsList.js +146 -0
  450. package/dist/components/rbac/SessionsList.js.map +1 -0
  451. package/dist/components/rbac/TeamSettingsForm.js +69 -0
  452. package/dist/components/rbac/TeamSettingsForm.js.map +1 -0
  453. package/dist/components/rbac/TeamSwitcher.js +66 -0
  454. package/dist/components/rbac/TeamSwitcher.js.map +1 -0
  455. package/dist/components/rbac/approvalPanelParts.js +130 -0
  456. package/dist/components/rbac/approvalPanelParts.js.map +1 -0
  457. package/dist/components/rbac/permissionSections.js +8 -0
  458. package/dist/components/rbac/permissionSections.js.map +1 -0
  459. package/dist/components/rbac/stagedForm.js +42 -0
  460. package/dist/components/rbac/stagedForm.js.map +1 -0
  461. package/dist/components/rbac/useStagedImage.js +21 -0
  462. package/dist/components/rbac/useStagedImage.js.map +1 -0
  463. package/dist/components/roadmap/PhaseManager.js +48 -0
  464. package/dist/components/roadmap/PhaseManager.js.map +1 -0
  465. package/dist/components/roadmap/RoadmapItemCard.js +96 -0
  466. package/dist/components/roadmap/RoadmapItemCard.js.map +1 -0
  467. package/dist/components/roadmap/RoadmapPage.js +34 -0
  468. package/dist/components/roadmap/RoadmapPage.js.map +1 -0
  469. package/dist/components/roadmap/RoadmapSwimlaneBoard.js +91 -0
  470. package/dist/components/roadmap/RoadmapSwimlaneBoard.js.map +1 -0
  471. package/dist/components/roadmap/TrackManager.js +58 -0
  472. package/dist/components/roadmap/TrackManager.js.map +1 -0
  473. package/dist/components/roadmap/UseCaseCard.js +93 -0
  474. package/dist/components/roadmap/UseCaseCard.js.map +1 -0
  475. package/dist/components/roadmap/UseCaseLedgerPage.js +98 -0
  476. package/dist/components/roadmap/UseCaseLedgerPage.js.map +1 -0
  477. package/dist/components/roadmap/chip-tones.js +9 -0
  478. package/dist/components/roadmap/chip-tones.js.map +1 -0
  479. package/dist/components/roadmap/derive.js +28 -0
  480. package/dist/components/roadmap/derive.js.map +1 -0
  481. package/dist/components/stepper/Stepper.js +276 -0
  482. package/dist/components/stepper/Stepper.js.map +1 -0
  483. package/dist/components/stepper/derive.js +53 -0
  484. package/dist/components/stepper/derive.js.map +1 -0
  485. package/dist/confidence.css +222 -0
  486. package/dist/fonts/bricolage-grotesque-0.woff2 +0 -0
  487. package/dist/fonts/bricolage-grotesque-1.woff2 +0 -0
  488. package/dist/fonts/bricolage-grotesque-2.woff2 +0 -0
  489. package/dist/fonts/figtree-0.woff2 +0 -0
  490. package/dist/fonts/figtree-1.woff2 +0 -0
  491. package/dist/fonts/figtree-2.woff2 +0 -0
  492. package/dist/fonts/figtree-3.woff2 +0 -0
  493. package/dist/fonts/jetbrains-mono-0.woff2 +0 -0
  494. package/dist/fonts/jetbrains-mono-1.woff2 +0 -0
  495. package/dist/fonts/jetbrains-mono-10.woff2 +0 -0
  496. package/dist/fonts/jetbrains-mono-11.woff2 +0 -0
  497. package/dist/fonts/jetbrains-mono-2.woff2 +0 -0
  498. package/dist/fonts/jetbrains-mono-3.woff2 +0 -0
  499. package/dist/fonts/jetbrains-mono-4.woff2 +0 -0
  500. package/dist/fonts/jetbrains-mono-5.woff2 +0 -0
  501. package/dist/fonts/jetbrains-mono-6.woff2 +0 -0
  502. package/dist/fonts/jetbrains-mono-7.woff2 +0 -0
  503. package/dist/fonts/jetbrains-mono-8.woff2 +0 -0
  504. package/dist/fonts/jetbrains-mono-9.woff2 +0 -0
  505. package/dist/fonts.css +187 -0
  506. package/dist/icons/data.js +233 -0
  507. package/dist/icons/data.js.map +1 -0
  508. package/dist/index.js +942 -0
  509. package/dist/index.js.map +1 -0
  510. package/dist/lib/attention.js +75 -0
  511. package/dist/lib/attention.js.map +1 -0
  512. package/dist/lib/board/anchor.js +14 -0
  513. package/dist/lib/board/anchor.js.map +1 -0
  514. package/dist/lib/board/model.js +41 -0
  515. package/dist/lib/board/model.js.map +1 -0
  516. package/dist/lib/board/move.js +161 -0
  517. package/dist/lib/board/move.js.map +1 -0
  518. package/dist/lib/board/position.js +11 -0
  519. package/dist/lib/board/position.js.map +1 -0
  520. package/dist/lib/board/rejection.js +22 -0
  521. package/dist/lib/board/rejection.js.map +1 -0
  522. package/dist/lib/board/use-board.js +43 -0
  523. package/dist/lib/board/use-board.js.map +1 -0
  524. package/dist/lib/calendar/band-packer.js +44 -0
  525. package/dist/lib/calendar/band-packer.js.map +1 -0
  526. package/dist/lib/calendar/drag.js +74 -0
  527. package/dist/lib/calendar/drag.js.map +1 -0
  528. package/dist/lib/calendar/lane-packer.js +67 -0
  529. package/dist/lib/calendar/lane-packer.js.map +1 -0
  530. package/dist/lib/calendar/segments.js +82 -0
  531. package/dist/lib/calendar/segments.js.map +1 -0
  532. package/dist/lib/calendar/types.js +7 -0
  533. package/dist/lib/calendar/types.js.map +1 -0
  534. package/dist/lib/chart-palette.js +27 -0
  535. package/dist/lib/chart-palette.js.map +1 -0
  536. package/dist/lib/clipboard.js +30 -0
  537. package/dist/lib/clipboard.js.map +1 -0
  538. package/dist/lib/cn.js +9 -0
  539. package/dist/lib/cn.js.map +1 -0
  540. package/dist/lib/color.js +24 -0
  541. package/dist/lib/color.js.map +1 -0
  542. package/dist/lib/component-guidance.js +297 -0
  543. package/dist/lib/component-guidance.js.map +1 -0
  544. package/dist/lib/confidence.js +22 -0
  545. package/dist/lib/confidence.js.map +1 -0
  546. package/dist/lib/date-timeline/scale.js +197 -0
  547. package/dist/lib/date-timeline/scale.js.map +1 -0
  548. package/dist/lib/design-frame/document.js +44 -0
  549. package/dist/lib/design-frame/document.js.map +1 -0
  550. package/dist/lib/design-frame/mini-app-script.js +107 -0
  551. package/dist/lib/design-frame/mini-app-script.js.map +1 -0
  552. package/dist/lib/design-frame/mini-app.js +12 -0
  553. package/dist/lib/design-frame/mini-app.js.map +1 -0
  554. package/dist/lib/design-frame/protocol.js +46 -0
  555. package/dist/lib/design-frame/protocol.js.map +1 -0
  556. package/dist/lib/dev-warn.js +17 -0
  557. package/dist/lib/dev-warn.js.map +1 -0
  558. package/dist/lib/dnd/announce.js +120 -0
  559. package/dist/lib/dnd/announce.js.map +1 -0
  560. package/dist/lib/dnd/autoscroll.js +123 -0
  561. package/dist/lib/dnd/autoscroll.js.map +1 -0
  562. package/dist/lib/dnd/cross-drop.js +11 -0
  563. package/dist/lib/dnd/cross-drop.js.map +1 -0
  564. package/dist/lib/dnd/geometry.js +99 -0
  565. package/dist/lib/dnd/geometry.js.map +1 -0
  566. package/dist/lib/dnd/sensors/gesture.js +86 -0
  567. package/dist/lib/dnd/sensors/gesture.js.map +1 -0
  568. package/dist/lib/dnd/sensors/keyboard.js +47 -0
  569. package/dist/lib/dnd/sensors/keyboard.js.map +1 -0
  570. package/dist/lib/dnd/sensors/pointer.js +32 -0
  571. package/dist/lib/dnd/sensors/pointer.js.map +1 -0
  572. package/dist/lib/dnd/session.js +256 -0
  573. package/dist/lib/dnd/session.js.map +1 -0
  574. package/dist/lib/dnd/use-drag.js +90 -0
  575. package/dist/lib/dnd/use-drag.js.map +1 -0
  576. package/dist/lib/dom/scroll-ancestor.js +18 -0
  577. package/dist/lib/dom/scroll-ancestor.js.map +1 -0
  578. package/dist/lib/format.js +23 -0
  579. package/dist/lib/format.js.map +1 -0
  580. package/dist/lib/group-in-order.js +13 -0
  581. package/dist/lib/group-in-order.js.map +1 -0
  582. package/dist/lib/header-fold.js +11 -0
  583. package/dist/lib/header-fold.js.map +1 -0
  584. package/dist/lib/i18n/areas/auth-provenance-flows.js +156 -0
  585. package/dist/lib/i18n/areas/auth-provenance-flows.js.map +1 -0
  586. package/dist/lib/i18n/areas/board.js +35 -0
  587. package/dist/lib/i18n/areas/board.js.map +1 -0
  588. package/dist/lib/i18n/areas/card-face.js +10 -0
  589. package/dist/lib/i18n/areas/card-face.js.map +1 -0
  590. package/dist/lib/i18n/areas/chat-chart.js +118 -0
  591. package/dist/lib/i18n/areas/chat-chart.js.map +1 -0
  592. package/dist/lib/i18n/areas/code-editor.js +24 -0
  593. package/dist/lib/i18n/areas/code-editor.js.map +1 -0
  594. package/dist/lib/i18n/areas/date-timeline.js +21 -0
  595. package/dist/lib/i18n/areas/date-timeline.js.map +1 -0
  596. package/dist/lib/i18n/areas/dates.js +71 -0
  597. package/dist/lib/i18n/areas/dates.js.map +1 -0
  598. package/dist/lib/i18n/areas/docs-views.js +183 -0
  599. package/dist/lib/i18n/areas/docs-views.js.map +1 -0
  600. package/dist/lib/i18n/areas/feedback.js +75 -0
  601. package/dist/lib/i18n/areas/feedback.js.map +1 -0
  602. package/dist/lib/i18n/areas/formats.js +24 -0
  603. package/dist/lib/i18n/areas/formats.js.map +1 -0
  604. package/dist/lib/i18n/areas/forms.js +110 -0
  605. package/dist/lib/i18n/areas/forms.js.map +1 -0
  606. package/dist/lib/i18n/areas/keys.js +25 -0
  607. package/dist/lib/i18n/areas/keys.js.map +1 -0
  608. package/dist/lib/i18n/areas/markdown.js +136 -0
  609. package/dist/lib/i18n/areas/markdown.js.map +1 -0
  610. package/dist/lib/i18n/areas/move-rejected.js +14 -0
  611. package/dist/lib/i18n/areas/move-rejected.js.map +1 -0
  612. package/dist/lib/i18n/areas/navigation.js +104 -0
  613. package/dist/lib/i18n/areas/navigation.js.map +1 -0
  614. package/dist/lib/i18n/areas/rbac.js +332 -0
  615. package/dist/lib/i18n/areas/rbac.js.map +1 -0
  616. package/dist/lib/i18n/emphasis.js +6 -0
  617. package/dist/lib/i18n/emphasis.js.map +1 -0
  618. package/dist/lib/i18n/number-format.js +9 -0
  619. package/dist/lib/i18n/number-format.js.map +1 -0
  620. package/dist/lib/i18n/plural.js +9 -0
  621. package/dist/lib/i18n/plural.js.map +1 -0
  622. package/dist/lib/i18n/provider.js +27 -0
  623. package/dist/lib/i18n/provider.js.map +1 -0
  624. package/dist/lib/i18n/strings.js +38 -0
  625. package/dist/lib/i18n/strings.js.map +1 -0
  626. package/dist/lib/icons.js +17 -0
  627. package/dist/lib/icons.js.map +1 -0
  628. package/dist/lib/interactive-target.js +9 -0
  629. package/dist/lib/interactive-target.js.map +1 -0
  630. package/dist/lib/intl-cache.js +69 -0
  631. package/dist/lib/intl-cache.js.map +1 -0
  632. package/dist/lib/legal-document.js +37 -0
  633. package/dist/lib/legal-document.js.map +1 -0
  634. package/dist/lib/line-diff-model.js +51 -0
  635. package/dist/lib/line-diff-model.js.map +1 -0
  636. package/dist/lib/markdown/attachments.js +71 -0
  637. package/dist/lib/markdown/attachments.js.map +1 -0
  638. package/dist/lib/markdown/caret-map.js +153 -0
  639. package/dist/lib/markdown/caret-map.js.map +1 -0
  640. package/dist/lib/markdown/caret.js +35 -0
  641. package/dist/lib/markdown/caret.js.map +1 -0
  642. package/dist/lib/markdown/commands.js +443 -0
  643. package/dist/lib/markdown/commands.js.map +1 -0
  644. package/dist/lib/markdown/convert.js +153 -0
  645. package/dist/lib/markdown/convert.js.map +1 -0
  646. package/dist/lib/markdown/dom.js +89 -0
  647. package/dist/lib/markdown/dom.js.map +1 -0
  648. package/dist/lib/markdown/edit.js +92 -0
  649. package/dist/lib/markdown/edit.js.map +1 -0
  650. package/dist/lib/markdown/history.js +79 -0
  651. package/dist/lib/markdown/history.js.map +1 -0
  652. package/dist/lib/markdown/hotkeys.js +63 -0
  653. package/dist/lib/markdown/hotkeys.js.map +1 -0
  654. package/dist/lib/markdown/image-pipeline.js +236 -0
  655. package/dist/lib/markdown/image-pipeline.js.map +1 -0
  656. package/dist/lib/markdown/images.js +85 -0
  657. package/dist/lib/markdown/images.js.map +1 -0
  658. package/dist/lib/markdown/input.js +210 -0
  659. package/dist/lib/markdown/input.js.map +1 -0
  660. package/dist/lib/markdown/keys.js +37 -0
  661. package/dist/lib/markdown/keys.js.map +1 -0
  662. package/dist/lib/markdown/paste.js +180 -0
  663. package/dist/lib/markdown/paste.js.map +1 -0
  664. package/dist/lib/markdown/position.js +111 -0
  665. package/dist/lib/markdown/position.js.map +1 -0
  666. package/dist/lib/markdown/project.js +108 -0
  667. package/dist/lib/markdown/project.js.map +1 -0
  668. package/dist/lib/markdown/reconcile.js +127 -0
  669. package/dist/lib/markdown/reconcile.js.map +1 -0
  670. package/dist/lib/markdown/surface.js +373 -0
  671. package/dist/lib/markdown/surface.js.map +1 -0
  672. package/dist/lib/motion.js +22 -0
  673. package/dist/lib/motion.js.map +1 -0
  674. package/dist/lib/pad.js +7 -0
  675. package/dist/lib/pad.js.map +1 -0
  676. package/dist/lib/paged-window/layout.js +15 -0
  677. package/dist/lib/paged-window/layout.js.map +1 -0
  678. package/dist/lib/paged-window/list-owner.js +21 -0
  679. package/dist/lib/paged-window/list-owner.js.map +1 -0
  680. package/dist/lib/paged-window/records-binding.js +239 -0
  681. package/dist/lib/paged-window/records-binding.js.map +1 -0
  682. package/dist/lib/paged-window/store.js +562 -0
  683. package/dist/lib/paged-window/store.js.map +1 -0
  684. package/dist/lib/paged-window/use-measured-pitch.js +38 -0
  685. package/dist/lib/paged-window/use-measured-pitch.js.map +1 -0
  686. package/dist/lib/paged-window/use-page-visibility.js +36 -0
  687. package/dist/lib/paged-window/use-page-visibility.js.map +1 -0
  688. package/dist/lib/paged-window/use-paged-window.js +43 -0
  689. package/dist/lib/paged-window/use-paged-window.js.map +1 -0
  690. package/dist/lib/paged-window/use-scroll-root.js +12 -0
  691. package/dist/lib/paged-window/use-scroll-root.js.map +1 -0
  692. package/dist/lib/persist.js +84 -0
  693. package/dist/lib/persist.js.map +1 -0
  694. package/dist/lib/preference-values.js +13 -0
  695. package/dist/lib/preference-values.js.map +1 -0
  696. package/dist/lib/preferences.js +86 -0
  697. package/dist/lib/preferences.js.map +1 -0
  698. package/dist/lib/reads/hooks.js +156 -0
  699. package/dist/lib/reads/hooks.js.map +1 -0
  700. package/dist/lib/reads/optimistic.js +169 -0
  701. package/dist/lib/reads/optimistic.js.map +1 -0
  702. package/dist/lib/reads/refetch.js +108 -0
  703. package/dist/lib/reads/refetch.js.map +1 -0
  704. package/dist/lib/reads/slots.js +215 -0
  705. package/dist/lib/reads/slots.js.map +1 -0
  706. package/dist/lib/realtime/hooks.js +40 -0
  707. package/dist/lib/realtime/hooks.js.map +1 -0
  708. package/dist/lib/realtime/provider.js +25 -0
  709. package/dist/lib/realtime/provider.js.map +1 -0
  710. package/dist/lib/realtime/registry.js +472 -0
  711. package/dist/lib/realtime/registry.js.map +1 -0
  712. package/dist/lib/records/define-record-type.js +33 -0
  713. package/dist/lib/records/define-record-type.js.map +1 -0
  714. package/dist/lib/records/hooks.js +39 -0
  715. package/dist/lib/records/hooks.js.map +1 -0
  716. package/dist/lib/records/store.js +572 -0
  717. package/dist/lib/records/store.js.map +1 -0
  718. package/dist/lib/records/wire.js +58 -0
  719. package/dist/lib/records/wire.js.map +1 -0
  720. package/dist/lib/reduced-motion-help.js +19 -0
  721. package/dist/lib/reduced-motion-help.js.map +1 -0
  722. package/dist/lib/scroll-caret.js +18 -0
  723. package/dist/lib/scroll-caret.js.map +1 -0
  724. package/dist/lib/sim/createSimStore.js +54 -0
  725. package/dist/lib/sim/createSimStore.js.map +1 -0
  726. package/dist/lib/sim/latency.js +28 -0
  727. package/dist/lib/sim/latency.js.map +1 -0
  728. package/dist/lib/sim/registry.js +13 -0
  729. package/dist/lib/sim/registry.js.map +1 -0
  730. package/dist/lib/sim/settings.js +41 -0
  731. package/dist/lib/sim/settings.js.map +1 -0
  732. package/dist/lib/submit-shortcut.js +25 -0
  733. package/dist/lib/submit-shortcut.js.map +1 -0
  734. package/dist/lib/syntax/index.js +33 -0
  735. package/dist/lib/syntax/index.js.map +1 -0
  736. package/dist/lib/syntax/languages/bash.js +77 -0
  737. package/dist/lib/syntax/languages/bash.js.map +1 -0
  738. package/dist/lib/syntax/languages/css.js +81 -0
  739. package/dist/lib/syntax/languages/css.js.map +1 -0
  740. package/dist/lib/syntax/languages/html.js +91 -0
  741. package/dist/lib/syntax/languages/html.js.map +1 -0
  742. package/dist/lib/syntax/languages/index.js +49 -0
  743. package/dist/lib/syntax/languages/index.js.map +1 -0
  744. package/dist/lib/syntax/languages/javascript.js +133 -0
  745. package/dist/lib/syntax/languages/javascript.js.map +1 -0
  746. package/dist/lib/syntax/languages/json.js +45 -0
  747. package/dist/lib/syntax/languages/json.js.map +1 -0
  748. package/dist/lib/syntax/languages/mongodb.js +24 -0
  749. package/dist/lib/syntax/languages/mongodb.js.map +1 -0
  750. package/dist/lib/syntax/languages/plain.js +10 -0
  751. package/dist/lib/syntax/languages/plain.js.map +1 -0
  752. package/dist/lib/syntax/languages/sql.js +113 -0
  753. package/dist/lib/syntax/languages/sql.js.map +1 -0
  754. package/dist/lib/syntax/languages/vue.js +31 -0
  755. package/dist/lib/syntax/languages/vue.js.map +1 -0
  756. package/dist/lib/syntax/languages/yaml.js +55 -0
  757. package/dist/lib/syntax/languages/yaml.js.map +1 -0
  758. package/dist/lib/syntax/markdown/grammar.js +52 -0
  759. package/dist/lib/syntax/markdown/grammar.js.map +1 -0
  760. package/dist/lib/syntax/markdown/inline.js +477 -0
  761. package/dist/lib/syntax/markdown/inline.js.map +1 -0
  762. package/dist/lib/syntax/markdown/parse.js +464 -0
  763. package/dist/lib/syntax/markdown/parse.js.map +1 -0
  764. package/dist/lib/syntax/markdown/refs.js +94 -0
  765. package/dist/lib/syntax/markdown/refs.js.map +1 -0
  766. package/dist/lib/syntax/markdown/render.js +230 -0
  767. package/dist/lib/syntax/markdown/render.js.map +1 -0
  768. package/dist/lib/syntax/markdown/spans.js +40 -0
  769. package/dist/lib/syntax/markdown/spans.js.map +1 -0
  770. package/dist/lib/syntax/registry.js +55 -0
  771. package/dist/lib/syntax/registry.js.map +1 -0
  772. package/dist/lib/syntax/tokenize.js +96 -0
  773. package/dist/lib/syntax/tokenize.js.map +1 -0
  774. package/dist/lib/time/instant.js +7 -0
  775. package/dist/lib/time/instant.js.map +1 -0
  776. package/dist/lib/time/plain.js +83 -0
  777. package/dist/lib/time/plain.js.map +1 -0
  778. package/dist/lib/time/relativeAge.js +20 -0
  779. package/dist/lib/time/relativeAge.js.map +1 -0
  780. package/dist/lib/time/relativeClock.js +59 -0
  781. package/dist/lib/time/relativeClock.js.map +1 -0
  782. package/dist/lib/time/types.js +23 -0
  783. package/dist/lib/time/types.js.map +1 -0
  784. package/dist/lib/time/zone.js +148 -0
  785. package/dist/lib/time/zone.js.map +1 -0
  786. package/dist/lib/use-controllable.js +16 -0
  787. package/dist/lib/use-controllable.js.map +1 -0
  788. package/dist/lib/use-fill-height.js +49 -0
  789. package/dist/lib/use-fill-height.js.map +1 -0
  790. package/dist/lib/use-hydrated.js +14 -0
  791. package/dist/lib/use-hydrated.js.map +1 -0
  792. package/dist/lib/use-media-query.js +30 -0
  793. package/dist/lib/use-media-query.js.map +1 -0
  794. package/dist/lib/use-relabel-base-ui-dismiss.js +26 -0
  795. package/dist/lib/use-relabel-base-ui-dismiss.js.map +1 -0
  796. package/dist/lib/use-release-snap-drag.js +29 -0
  797. package/dist/lib/use-release-snap-drag.js.map +1 -0
  798. package/dist/lib/use-roving-options.js +18 -0
  799. package/dist/lib/use-roving-options.js.map +1 -0
  800. package/dist/lib/values/absent.js +5 -0
  801. package/dist/lib/values/absent.js.map +1 -0
  802. package/dist/lib/values/boolean.js +13 -0
  803. package/dist/lib/values/boolean.js.map +1 -0
  804. package/dist/lib/values/currency.js +23 -0
  805. package/dist/lib/values/currency.js.map +1 -0
  806. package/dist/lib/values/date.js +35 -0
  807. package/dist/lib/values/date.js.map +1 -0
  808. package/dist/lib/values/datetime.js +54 -0
  809. package/dist/lib/values/datetime.js.map +1 -0
  810. package/dist/lib/values/locale-date.js +60 -0
  811. package/dist/lib/values/locale-date.js.map +1 -0
  812. package/dist/lib/values/number.js +16 -0
  813. package/dist/lib/values/number.js.map +1 -0
  814. package/dist/pure.js +379 -0
  815. package/dist/pure.js.map +1 -0
  816. package/dist/styles.css +190 -0
  817. package/dist/theme.css +360 -0
  818. package/dist/types/components/Accordion.d.ts +15 -0
  819. package/dist/types/components/AgentWorkingSpinner.d.ts +23 -0
  820. package/dist/types/components/AppShell.d.ts +164 -0
  821. package/dist/types/components/Attention.d.ts +87 -0
  822. package/dist/types/components/Avatar.d.ts +154 -0
  823. package/dist/types/components/Badge.d.ts +131 -0
  824. package/dist/types/components/Board.d.ts +239 -0
  825. package/dist/types/components/Button.d.ts +208 -0
  826. package/dist/types/components/Callout.d.ts +163 -0
  827. package/dist/types/components/Card.d.ts +219 -0
  828. package/dist/types/components/Choice.d.ts +127 -0
  829. package/dist/types/components/CodeEditor.d.ts +86 -0
  830. package/dist/types/components/ColorPicker.d.ts +14 -0
  831. package/dist/types/components/Combobox.d.ts +43 -0
  832. package/dist/types/components/CommandPalette.d.ts +35 -0
  833. package/dist/types/components/ConcentricRing.d.ts +61 -0
  834. package/dist/types/components/ConnectionCard.d.ts +64 -0
  835. package/dist/types/components/ContextItemRow.d.ts +35 -0
  836. package/dist/types/components/CopyValue.d.ts +14 -0
  837. package/dist/types/components/CountBadge.d.ts +14 -0
  838. package/dist/types/components/DateCalendar.d.ts +30 -0
  839. package/dist/types/components/DateField.d.ts +29 -0
  840. package/dist/types/components/DatePicker.d.ts +20 -0
  841. package/dist/types/components/DateTimeText.d.ts +9 -0
  842. package/dist/types/components/DescriptionList.d.ts +40 -0
  843. package/dist/types/components/Dialog.d.ts +269 -0
  844. package/dist/types/components/DragDrop.d.ts +196 -0
  845. package/dist/types/components/Drawer.d.ts +163 -0
  846. package/dist/types/components/EditGutter.d.ts +44 -0
  847. package/dist/types/components/EmojiPicker.d.ts +30 -0
  848. package/dist/types/components/ErrorBoundary.d.ts +43 -0
  849. package/dist/types/components/Field.d.ts +37 -0
  850. package/dist/types/components/FileUpload.d.ts +22 -0
  851. package/dist/types/components/FilterMenu.d.ts +120 -0
  852. package/dist/types/components/GatesSection.d.ts +79 -0
  853. package/dist/types/components/Icon.d.ts +40 -0
  854. package/dist/types/components/IconButton.d.ts +69 -0
  855. package/dist/types/components/IconStack.d.ts +28 -0
  856. package/dist/types/components/ImageUploadField.d.ts +38 -0
  857. package/dist/types/components/InlineEdit.d.ts +183 -0
  858. package/dist/types/components/InlineMarkdownEdit.d.ts +100 -0
  859. package/dist/types/components/Input.d.ts +128 -0
  860. package/dist/types/components/LegalDocument.d.ts +23 -0
  861. package/dist/types/components/LineDiff.d.ts +53 -0
  862. package/dist/types/components/ListHeader.d.ts +45 -0
  863. package/dist/types/components/Loading.d.ts +131 -0
  864. package/dist/types/components/Markdown.d.ts +35 -0
  865. package/dist/types/components/MarkdownEditor.d.ts +129 -0
  866. package/dist/types/components/Menu.d.ts +157 -0
  867. package/dist/types/components/Navigation.d.ts +67 -0
  868. package/dist/types/components/NumberInput.d.ts +177 -0
  869. package/dist/types/components/OTPInput.d.ts +13 -0
  870. package/dist/types/components/OrderedEntityManager.d.ts +64 -0
  871. package/dist/types/components/PagedWindowList.d.ts +23 -0
  872. package/dist/types/components/PaginationBar.d.ts +31 -0
  873. package/dist/types/components/Panel.d.ts +94 -0
  874. package/dist/types/components/PasswordInput.d.ts +7 -0
  875. package/dist/types/components/PasswordRequirements.d.ts +11 -0
  876. package/dist/types/components/PatchDiff.d.ts +38 -0
  877. package/dist/types/components/PendingVeil.d.ts +8 -0
  878. package/dist/types/components/Popover.d.ts +231 -0
  879. package/dist/types/components/Progress.d.ts +580 -0
  880. package/dist/types/components/RatingScale.d.ts +30 -0
  881. package/dist/types/components/ReadMore.d.ts +26 -0
  882. package/dist/types/components/RecordCard.d.ts +413 -0
  883. package/dist/types/components/RelativeTime.d.ts +17 -0
  884. package/dist/types/components/SandboxedFrame.d.ts +37 -0
  885. package/dist/types/components/SearchInput.d.ts +6 -0
  886. package/dist/types/components/SecretField.d.ts +90 -0
  887. package/dist/types/components/SectionNav.d.ts +15 -0
  888. package/dist/types/components/Select.d.ts +53 -0
  889. package/dist/types/components/SequenceDiagram.d.ts +15 -0
  890. package/dist/types/components/SettingRow.d.ts +144 -0
  891. package/dist/types/components/SignOffRings.d.ts +29 -0
  892. package/dist/types/components/Slider.d.ts +255 -0
  893. package/dist/types/components/SolutionChoice.d.ts +49 -0
  894. package/dist/types/components/SortMenu.d.ts +45 -0
  895. package/dist/types/components/Spinner.d.ts +29 -0
  896. package/dist/types/components/Stat.d.ts +136 -0
  897. package/dist/types/components/StatusSelect.d.ts +93 -0
  898. package/dist/types/components/Surface.d.ts +145 -0
  899. package/dist/types/components/Table.d.ts +164 -0
  900. package/dist/types/components/Tabs.d.ts +142 -0
  901. package/dist/types/components/ThemeMenu.d.ts +56 -0
  902. package/dist/types/components/Toast.d.ts +63 -0
  903. package/dist/types/components/Toggle.d.ts +168 -0
  904. package/dist/types/components/ToggleMatrix.d.ts +51 -0
  905. package/dist/types/components/Tree.d.ts +20 -0
  906. package/dist/types/components/TriStateSwitch.d.ts +63 -0
  907. package/dist/types/components/VideoPlayer.d.ts +26 -0
  908. package/dist/types/components/auth/AcceptInvitationCard.d.ts +54 -0
  909. package/dist/types/components/auth/AuthLayout.d.ts +12 -0
  910. package/dist/types/components/auth/ForgotPasswordForm.d.ts +6 -0
  911. package/dist/types/components/auth/LoginForm.d.ts +13 -0
  912. package/dist/types/components/auth/ResetPasswordForm.d.ts +9 -0
  913. package/dist/types/components/auth/SignInProviders.d.ts +56 -0
  914. package/dist/types/components/auth/SignupCard.d.ts +62 -0
  915. package/dist/types/components/auth/TermsAcceptance.d.ts +14 -0
  916. package/dist/types/components/auth/index.d.ts +8 -0
  917. package/dist/types/components/board/context.d.ts +65 -0
  918. package/dist/types/components/board/recipe.d.ts +97 -0
  919. package/dist/types/components/calendar/CalendarMonth.d.ts +32 -0
  920. package/dist/types/components/calendar/CalendarTimeGrid.d.ts +74 -0
  921. package/dist/types/components/calendar/EventActions.d.ts +16 -0
  922. package/dist/types/components/calendar/format.d.ts +42 -0
  923. package/dist/types/components/calendar/palette.d.ts +17 -0
  924. package/dist/types/components/calendar/use-calendar-drag.d.ts +53 -0
  925. package/dist/types/components/calendar/use-event-keyboard.d.ts +23 -0
  926. package/dist/types/components/calendar/use-grid-navigation.d.ts +47 -0
  927. package/dist/types/components/calendar/use-now.d.ts +20 -0
  928. package/dist/types/components/card-face/AcRingGlyph.d.ts +20 -0
  929. package/dist/types/components/card-face/BoardCardAgentSlot.d.ts +19 -0
  930. package/dist/types/components/card-face/CardFace.d.ts +106 -0
  931. package/dist/types/components/card-face/CardTypeBadge.d.ts +21 -0
  932. package/dist/types/components/card-face/EffortBadge.d.ts +9 -0
  933. package/dist/types/components/card-face/GateRingGlyph.d.ts +22 -0
  934. package/dist/types/components/card-face/OverflowRow.d.ts +40 -0
  935. package/dist/types/components/card-face/TapTip.d.ts +15 -0
  936. package/dist/types/components/card-face/hit-area.d.ts +20 -0
  937. package/dist/types/components/card-face/vocabulary.d.ts +83 -0
  938. package/dist/types/components/chart/BarList.d.ts +27 -0
  939. package/dist/types/components/chart/LineChart.d.ts +64 -0
  940. package/dist/types/components/chart/ShareBar.d.ts +26 -0
  941. package/dist/types/components/chart/TimeSeriesChart.d.ts +60 -0
  942. package/dist/types/components/chart/label-metrics.d.ts +9 -0
  943. package/dist/types/components/chart/line-chart-axis.d.ts +14 -0
  944. package/dist/types/components/chart/line-chart-scale.d.ts +55 -0
  945. package/dist/types/components/chart/line-series-style.d.ts +14 -0
  946. package/dist/types/components/chart/share-bar-labels.d.ts +17 -0
  947. package/dist/types/components/chart/shared.d.ts +122 -0
  948. package/dist/types/components/chart/time-series-scale.d.ts +29 -0
  949. package/dist/types/components/chat/Attachment.d.ts +125 -0
  950. package/dist/types/components/chat/Chat.d.ts +60 -0
  951. package/dist/types/components/chat/Composer.d.ts +62 -0
  952. package/dist/types/components/chat/ContextMeter.d.ts +45 -0
  953. package/dist/types/components/chat/EffortControl.d.ts +23 -0
  954. package/dist/types/components/chat/FileCover.d.ts +14 -0
  955. package/dist/types/components/chat/Message.d.ts +66 -0
  956. package/dist/types/components/chat/MessageScroller.d.ts +18 -0
  957. package/dist/types/components/chat/ModelSelector.d.ts +44 -0
  958. package/dist/types/components/chat/StreamingMarkdown.d.ts +11 -0
  959. package/dist/types/components/chat/download-file.d.ts +7 -0
  960. package/dist/types/components/chat/file-icon.d.ts +29 -0
  961. package/dist/types/components/chat/types.d.ts +165 -0
  962. package/dist/types/components/checklist/StatusChecklist.d.ts +37 -0
  963. package/dist/types/components/checklist/index.d.ts +3 -0
  964. package/dist/types/components/checklist/tally.d.ts +19 -0
  965. package/dist/types/components/checklist/types.d.ts +28 -0
  966. package/dist/types/components/code-editor/context.d.ts +32 -0
  967. package/dist/types/components/code-editor/editing.d.ts +39 -0
  968. package/dist/types/components/code-editor/highlight.d.ts +20 -0
  969. package/dist/types/components/code-editor/recipe.d.ts +109 -0
  970. package/dist/types/components/date-timeline/DateTimeline.d.ts +99 -0
  971. package/dist/types/components/date-timeline/TimelineRow.d.ts +22 -0
  972. package/dist/types/components/date-timeline/useBarDrag.d.ts +15 -0
  973. package/dist/types/components/date-timeline/useMarkerDrag.d.ts +14 -0
  974. package/dist/types/components/date-timeline/useTimelineZoom.d.ts +23 -0
  975. package/dist/types/components/drag-drop/context.d.ts +85 -0
  976. package/dist/types/components/drag-drop/recipe.d.ts +163 -0
  977. package/dist/types/components/drag-drop/shift.d.ts +153 -0
  978. package/dist/types/components/edit/activation.d.ts +21 -0
  979. package/dist/types/components/edit/outcome.d.ts +29 -0
  980. package/dist/types/components/edit/use-edit-session.d.ts +77 -0
  981. package/dist/types/components/file-viewer/FileViewer.d.ts +2 -0
  982. package/dist/types/components/file-viewer/PageNumberJumpField.d.ts +9 -0
  983. package/dist/types/components/file-viewer/ViewerControls.d.ts +20 -0
  984. package/dist/types/components/file-viewer/ViewerRail.d.ts +10 -0
  985. package/dist/types/components/file-viewer/ViewerStage.d.ts +22 -0
  986. package/dist/types/components/file-viewer/frames.d.ts +28 -0
  987. package/dist/types/components/file-viewer/index.d.ts +3 -0
  988. package/dist/types/components/file-viewer/types.d.ts +70 -0
  989. package/dist/types/components/file-viewer/use-frame-cursor.d.ts +13 -0
  990. package/dist/types/components/file-viewer/use-viewer-keys.d.ts +24 -0
  991. package/dist/types/components/file-viewer/use-viewer-zoom.d.ts +29 -0
  992. package/dist/types/components/focus-web/FocusWeb.d.ts +3 -0
  993. package/dist/types/components/focus-web/index.d.ts +4 -0
  994. package/dist/types/components/focus-web/layout.d.ts +55 -0
  995. package/dist/types/components/focus-web/types.d.ts +131 -0
  996. package/dist/types/components/graph-explorer/GraphExplorer.d.ts +42 -0
  997. package/dist/types/components/graph-explorer/camera-math.d.ts +119 -0
  998. package/dist/types/components/graph-explorer/index.d.ts +5 -0
  999. package/dist/types/components/graph-explorer/tree-layout.d.ts +67 -0
  1000. package/dist/types/components/graph-explorer/types.d.ts +62 -0
  1001. package/dist/types/components/graph-explorer/use-camera.d.ts +81 -0
  1002. package/dist/types/components/graph-explorer/viewport-gesture.d.ts +32 -0
  1003. package/dist/types/components/kanban/KanbanBoard.d.ts +72 -0
  1004. package/dist/types/components/kanban/recipe.d.ts +73 -0
  1005. package/dist/types/components/kanban/types.d.ts +55 -0
  1006. package/dist/types/components/markdown/Affordances.d.ts +105 -0
  1007. package/dist/types/components/markdown/AttachmentStrip.d.ts +25 -0
  1008. package/dist/types/components/markdown/ImageUpload.d.ts +56 -0
  1009. package/dist/types/components/media-error.d.ts +11 -0
  1010. package/dist/types/components/nav-sections.d.ts +10 -0
  1011. package/dist/types/components/node-canvas/NodeCanvas.d.ts +66 -0
  1012. package/dist/types/components/node-canvas/index.d.ts +3 -0
  1013. package/dist/types/components/node-canvas/layout.d.ts +29 -0
  1014. package/dist/types/components/node-canvas/types.d.ts +207 -0
  1015. package/dist/types/components/node-canvas/use-canvas-gestures.d.ts +39 -0
  1016. package/dist/types/components/openapi/OpenApiViewer.d.ts +14 -0
  1017. package/dist/types/components/openapi/OperationCard.d.ts +33 -0
  1018. package/dist/types/components/openapi/SchemaView.d.ts +14 -0
  1019. package/dist/types/components/openapi/index.d.ts +6 -0
  1020. package/dist/types/components/openapi/resolve.d.ts +72 -0
  1021. package/dist/types/components/openapi/types.d.ts +128 -0
  1022. package/dist/types/components/overlay-shell.d.ts +48 -0
  1023. package/dist/types/components/overlay-stack.d.ts +18 -0
  1024. package/dist/types/components/paged-window/PageBlock.d.ts +31 -0
  1025. package/dist/types/components/provenance/ConfidenceBar.d.ts +118 -0
  1026. package/dist/types/components/provenance/ConfidenceMeter.d.ts +21 -0
  1027. package/dist/types/components/provenance/ConfidenceReadout.d.ts +17 -0
  1028. package/dist/types/components/provenance/ProvenanceBadge.d.ts +23 -0
  1029. package/dist/types/components/provenance/ProvenanceDetail.d.ts +109 -0
  1030. package/dist/types/components/provenance/ProvenanceDisclosure.d.ts +107 -0
  1031. package/dist/types/components/provenance/absence.d.ts +37 -0
  1032. package/dist/types/components/provenance/index.d.ts +7 -0
  1033. package/dist/types/components/provenance/types.d.ts +137 -0
  1034. package/dist/types/components/rbac/AccessRequestPanel.d.ts +92 -0
  1035. package/dist/types/components/rbac/AccountMenu.d.ts +46 -0
  1036. package/dist/types/components/rbac/AgentKeysList.d.ts +22 -0
  1037. package/dist/types/components/rbac/ApiKeysPanel.d.ts +26 -0
  1038. package/dist/types/components/rbac/ApiKeysTable.d.ts +65 -0
  1039. package/dist/types/components/rbac/Brand.d.ts +8 -0
  1040. package/dist/types/components/rbac/Can.d.ts +19 -0
  1041. package/dist/types/components/rbac/ChangePasswordForm.d.ts +18 -0
  1042. package/dist/types/components/rbac/DangerZone.d.ts +8 -0
  1043. package/dist/types/components/rbac/DevToolsPopover.d.ts +36 -0
  1044. package/dist/types/components/rbac/EndedLine.d.ts +21 -0
  1045. package/dist/types/components/rbac/InvitationsList.d.ts +39 -0
  1046. package/dist/types/components/rbac/InviteMembersDialog.d.ts +21 -0
  1047. package/dist/types/components/rbac/MembersPanel.d.ts +31 -0
  1048. package/dist/types/components/rbac/PermissionRequestPanel.d.ts +36 -0
  1049. package/dist/types/components/rbac/ProfileForm.d.ts +27 -0
  1050. package/dist/types/components/rbac/ProfilePage.d.ts +16 -0
  1051. package/dist/types/components/rbac/RBACProvider.d.ts +69 -0
  1052. package/dist/types/components/rbac/RoleEditorDialog.d.ts +28 -0
  1053. package/dist/types/components/rbac/RoleKeyPicker.d.ts +24 -0
  1054. package/dist/types/components/rbac/RolePermissionMatrix.d.ts +21 -0
  1055. package/dist/types/components/rbac/RolesPermissionsPage.d.ts +24 -0
  1056. package/dist/types/components/rbac/SessionsList.d.ts +35 -0
  1057. package/dist/types/components/rbac/TeamSettingsForm.d.ts +22 -0
  1058. package/dist/types/components/rbac/TeamSwitcher.d.ts +5 -0
  1059. package/dist/types/components/rbac/approvalPanelParts.d.ts +69 -0
  1060. package/dist/types/components/rbac/index.d.ts +25 -0
  1061. package/dist/types/components/rbac/permissionSections.d.ts +8 -0
  1062. package/dist/types/components/rbac/stagedForm.d.ts +25 -0
  1063. package/dist/types/components/rbac/types.d.ts +65 -0
  1064. package/dist/types/components/rbac/useStagedImage.d.ts +15 -0
  1065. package/dist/types/components/roadmap/PhaseManager.d.ts +19 -0
  1066. package/dist/types/components/roadmap/RoadmapItemCard.d.ts +51 -0
  1067. package/dist/types/components/roadmap/RoadmapPage.d.ts +12 -0
  1068. package/dist/types/components/roadmap/RoadmapSwimlaneBoard.d.ts +15 -0
  1069. package/dist/types/components/roadmap/TrackManager.d.ts +19 -0
  1070. package/dist/types/components/roadmap/UseCaseCard.d.ts +30 -0
  1071. package/dist/types/components/roadmap/UseCaseLedgerPage.d.ts +29 -0
  1072. package/dist/types/components/roadmap/chip-tones.d.ts +2 -0
  1073. package/dist/types/components/roadmap/derive.d.ts +39 -0
  1074. package/dist/types/components/roadmap/index.d.ts +10 -0
  1075. package/dist/types/components/roadmap/types.d.ts +86 -0
  1076. package/dist/types/components/stepper/Stepper.d.ts +79 -0
  1077. package/dist/types/components/stepper/derive.d.ts +49 -0
  1078. package/dist/types/components/stepper/index.d.ts +3 -0
  1079. package/dist/types/components/stepper/types.d.ts +118 -0
  1080. package/dist/types/icons/data.d.ts +2054 -0
  1081. package/dist/types/index.d.ts +209 -0
  1082. package/dist/types/lib/attention.d.ts +62 -0
  1083. package/dist/types/lib/board/anchor.d.ts +69 -0
  1084. package/dist/types/lib/board/index.d.ts +17 -0
  1085. package/dist/types/lib/board/model.d.ts +43 -0
  1086. package/dist/types/lib/board/move.d.ts +181 -0
  1087. package/dist/types/lib/board/position.d.ts +22 -0
  1088. package/dist/types/lib/board/rejection.d.ts +8 -0
  1089. package/dist/types/lib/board/types.d.ts +294 -0
  1090. package/dist/types/lib/board/use-board.d.ts +47 -0
  1091. package/dist/types/lib/calendar/band-packer.d.ts +53 -0
  1092. package/dist/types/lib/calendar/drag.d.ts +125 -0
  1093. package/dist/types/lib/calendar/index.d.ts +4 -0
  1094. package/dist/types/lib/calendar/lane-packer.d.ts +88 -0
  1095. package/dist/types/lib/calendar/segments.d.ts +91 -0
  1096. package/dist/types/lib/calendar/types.d.ts +166 -0
  1097. package/dist/types/lib/chart-palette.d.ts +14 -0
  1098. package/dist/types/lib/clipboard.d.ts +12 -0
  1099. package/dist/types/lib/cn.d.ts +7 -0
  1100. package/dist/types/lib/color.d.ts +14 -0
  1101. package/dist/types/lib/component-guidance.d.ts +15 -0
  1102. package/dist/types/lib/confidence.d.ts +28 -0
  1103. package/dist/types/lib/date-timeline/scale.d.ts +143 -0
  1104. package/dist/types/lib/design-frame/document.d.ts +39 -0
  1105. package/dist/types/lib/design-frame/mini-app-script.d.ts +29 -0
  1106. package/dist/types/lib/design-frame/mini-app.d.ts +17 -0
  1107. package/dist/types/lib/design-frame/protocol.d.ts +78 -0
  1108. package/dist/types/lib/dev-warn.d.ts +10 -0
  1109. package/dist/types/lib/dnd/announce.d.ts +124 -0
  1110. package/dist/types/lib/dnd/autoscroll.d.ts +88 -0
  1111. package/dist/types/lib/dnd/cross-drop.d.ts +18 -0
  1112. package/dist/types/lib/dnd/geometry.d.ts +126 -0
  1113. package/dist/types/lib/dnd/index.d.ts +17 -0
  1114. package/dist/types/lib/dnd/sensors/gesture.d.ts +37 -0
  1115. package/dist/types/lib/dnd/sensors/keyboard.d.ts +54 -0
  1116. package/dist/types/lib/dnd/sensors/pointer.d.ts +59 -0
  1117. package/dist/types/lib/dnd/session.d.ts +124 -0
  1118. package/dist/types/lib/dnd/types.d.ts +226 -0
  1119. package/dist/types/lib/dnd/use-drag.d.ts +82 -0
  1120. package/dist/types/lib/dom/scroll-ancestor.d.ts +15 -0
  1121. package/dist/types/lib/format.d.ts +33 -0
  1122. package/dist/types/lib/group-in-order.d.ts +13 -0
  1123. package/dist/types/lib/header-fold.d.ts +10 -0
  1124. package/dist/types/lib/i18n/areas/auth-provenance-flows.d.ts +287 -0
  1125. package/dist/types/lib/i18n/areas/board.d.ts +51 -0
  1126. package/dist/types/lib/i18n/areas/card-face.d.ts +8 -0
  1127. package/dist/types/lib/i18n/areas/chat-chart.d.ts +202 -0
  1128. package/dist/types/lib/i18n/areas/code-editor.d.ts +40 -0
  1129. package/dist/types/lib/i18n/areas/date-timeline.d.ts +36 -0
  1130. package/dist/types/lib/i18n/areas/dates.d.ts +103 -0
  1131. package/dist/types/lib/i18n/areas/docs-views.d.ts +297 -0
  1132. package/dist/types/lib/i18n/areas/feedback.d.ts +132 -0
  1133. package/dist/types/lib/i18n/areas/formats.d.ts +30 -0
  1134. package/dist/types/lib/i18n/areas/forms.d.ts +182 -0
  1135. package/dist/types/lib/i18n/areas/keys.d.ts +15 -0
  1136. package/dist/types/lib/i18n/areas/markdown.d.ts +150 -0
  1137. package/dist/types/lib/i18n/areas/move-rejected.d.ts +16 -0
  1138. package/dist/types/lib/i18n/areas/navigation.d.ts +185 -0
  1139. package/dist/types/lib/i18n/areas/rbac.d.ts +635 -0
  1140. package/dist/types/lib/i18n/emphasis.d.ts +3 -0
  1141. package/dist/types/lib/i18n/index.d.ts +10 -0
  1142. package/dist/types/lib/i18n/number-format.d.ts +5 -0
  1143. package/dist/types/lib/i18n/plural.d.ts +7 -0
  1144. package/dist/types/lib/i18n/provider.d.ts +16 -0
  1145. package/dist/types/lib/i18n/strings.d.ts +18 -0
  1146. package/dist/types/lib/icons.d.ts +22 -0
  1147. package/dist/types/lib/interactive-target.d.ts +3 -0
  1148. package/dist/types/lib/intl-cache.d.ts +31 -0
  1149. package/dist/types/lib/legal-document.d.ts +82 -0
  1150. package/dist/types/lib/line-diff-model.d.ts +39 -0
  1151. package/dist/types/lib/markdown/attachments.d.ts +50 -0
  1152. package/dist/types/lib/markdown/caret-map.d.ts +69 -0
  1153. package/dist/types/lib/markdown/caret.d.ts +6 -0
  1154. package/dist/types/lib/markdown/commands.d.ts +186 -0
  1155. package/dist/types/lib/markdown/convert.d.ts +99 -0
  1156. package/dist/types/lib/markdown/dom.d.ts +30 -0
  1157. package/dist/types/lib/markdown/edit.d.ts +16 -0
  1158. package/dist/types/lib/markdown/history.d.ts +59 -0
  1159. package/dist/types/lib/markdown/hotkeys.d.ts +63 -0
  1160. package/dist/types/lib/markdown/image-pipeline.d.ts +173 -0
  1161. package/dist/types/lib/markdown/images.d.ts +138 -0
  1162. package/dist/types/lib/markdown/input.d.ts +38 -0
  1163. package/dist/types/lib/markdown/keys.d.ts +34 -0
  1164. package/dist/types/lib/markdown/paste.d.ts +9 -0
  1165. package/dist/types/lib/markdown/position.d.ts +43 -0
  1166. package/dist/types/lib/markdown/project.d.ts +88 -0
  1167. package/dist/types/lib/markdown/reconcile.d.ts +63 -0
  1168. package/dist/types/lib/markdown/surface.d.ts +236 -0
  1169. package/dist/types/lib/motion.d.ts +30 -0
  1170. package/dist/types/lib/pad.d.ts +6 -0
  1171. package/dist/types/lib/paged-window/index.d.ts +2 -0
  1172. package/dist/types/lib/paged-window/layout.d.ts +21 -0
  1173. package/dist/types/lib/paged-window/list-owner.d.ts +12 -0
  1174. package/dist/types/lib/paged-window/records-binding.d.ts +102 -0
  1175. package/dist/types/lib/paged-window/store.d.ts +307 -0
  1176. package/dist/types/lib/paged-window/use-measured-pitch.d.ts +34 -0
  1177. package/dist/types/lib/paged-window/use-page-visibility.d.ts +20 -0
  1178. package/dist/types/lib/paged-window/use-paged-window.d.ts +61 -0
  1179. package/dist/types/lib/paged-window/use-scroll-root.d.ts +18 -0
  1180. package/dist/types/lib/persist.d.ts +57 -0
  1181. package/dist/types/lib/preference-values.d.ts +72 -0
  1182. package/dist/types/lib/preferences.d.ts +26 -0
  1183. package/dist/types/lib/reads/hooks.d.ts +49 -0
  1184. package/dist/types/lib/reads/index.d.ts +5 -0
  1185. package/dist/types/lib/reads/optimistic.d.ts +119 -0
  1186. package/dist/types/lib/reads/refetch.d.ts +83 -0
  1187. package/dist/types/lib/reads/slots.d.ts +137 -0
  1188. package/dist/types/lib/reads/types.d.ts +155 -0
  1189. package/dist/types/lib/realtime/hooks.d.ts +38 -0
  1190. package/dist/types/lib/realtime/index.d.ts +4 -0
  1191. package/dist/types/lib/realtime/provider.d.ts +38 -0
  1192. package/dist/types/lib/realtime/registry.d.ts +225 -0
  1193. package/dist/types/lib/realtime/types.d.ts +242 -0
  1194. package/dist/types/lib/records/define-record-type.d.ts +29 -0
  1195. package/dist/types/lib/records/hooks.d.ts +46 -0
  1196. package/dist/types/lib/records/index.d.ts +5 -0
  1197. package/dist/types/lib/records/store.d.ts +289 -0
  1198. package/dist/types/lib/records/types.d.ts +195 -0
  1199. package/dist/types/lib/records/wire.d.ts +96 -0
  1200. package/dist/types/lib/reduced-motion-help.d.ts +23 -0
  1201. package/dist/types/lib/scroll-caret.d.ts +6 -0
  1202. package/dist/types/lib/sim/createSimStore.d.ts +18 -0
  1203. package/dist/types/lib/sim/index.d.ts +5 -0
  1204. package/dist/types/lib/sim/latency.d.ts +10 -0
  1205. package/dist/types/lib/sim/registry.d.ts +14 -0
  1206. package/dist/types/lib/sim/settings.d.ts +11 -0
  1207. package/dist/types/lib/sim/types.d.ts +3 -0
  1208. package/dist/types/lib/submit-shortcut.d.ts +24 -0
  1209. package/dist/types/lib/syntax/index.d.ts +16 -0
  1210. package/dist/types/lib/syntax/languages/bash.d.ts +1 -0
  1211. package/dist/types/lib/syntax/languages/css.d.ts +1 -0
  1212. package/dist/types/lib/syntax/languages/html.d.ts +17 -0
  1213. package/dist/types/lib/syntax/languages/index.d.ts +33 -0
  1214. package/dist/types/lib/syntax/languages/javascript.d.ts +22 -0
  1215. package/dist/types/lib/syntax/languages/json.d.ts +1 -0
  1216. package/dist/types/lib/syntax/languages/mongodb.d.ts +1 -0
  1217. package/dist/types/lib/syntax/languages/plain.d.ts +9 -0
  1218. package/dist/types/lib/syntax/languages/sql.d.ts +4 -0
  1219. package/dist/types/lib/syntax/languages/vue.d.ts +1 -0
  1220. package/dist/types/lib/syntax/languages/yaml.d.ts +1 -0
  1221. package/dist/types/lib/syntax/markdown/frames.d.ts +145 -0
  1222. package/dist/types/lib/syntax/markdown/grammar.d.ts +1 -0
  1223. package/dist/types/lib/syntax/markdown/index.d.ts +5 -0
  1224. package/dist/types/lib/syntax/markdown/inline.d.ts +21 -0
  1225. package/dist/types/lib/syntax/markdown/parse.d.ts +15 -0
  1226. package/dist/types/lib/syntax/markdown/refs.d.ts +47 -0
  1227. package/dist/types/lib/syntax/markdown/render.d.ts +25 -0
  1228. package/dist/types/lib/syntax/markdown/spans.d.ts +84 -0
  1229. package/dist/types/lib/syntax/markdown/types.d.ts +108 -0
  1230. package/dist/types/lib/syntax/registry.d.ts +37 -0
  1231. package/dist/types/lib/syntax/tokenize.d.ts +17 -0
  1232. package/dist/types/lib/syntax/types.d.ts +119 -0
  1233. package/dist/types/lib/time/index.d.ts +4 -0
  1234. package/dist/types/lib/time/instant.d.ts +2 -0
  1235. package/dist/types/lib/time/plain.d.ts +61 -0
  1236. package/dist/types/lib/time/relativeAge.d.ts +18 -0
  1237. package/dist/types/lib/time/relativeClock.d.ts +8 -0
  1238. package/dist/types/lib/time/types.d.ts +87 -0
  1239. package/dist/types/lib/time/zone.d.ts +106 -0
  1240. package/dist/types/lib/use-controllable.d.ts +14 -0
  1241. package/dist/types/lib/use-fill-height.d.ts +26 -0
  1242. package/dist/types/lib/use-hydrated.d.ts +8 -0
  1243. package/dist/types/lib/use-media-query.d.ts +29 -0
  1244. package/dist/types/lib/use-relabel-base-ui-dismiss.d.ts +6 -0
  1245. package/dist/types/lib/use-release-snap-drag.d.ts +25 -0
  1246. package/dist/types/lib/use-roving-options.d.ts +10 -0
  1247. package/dist/types/lib/values/absent.d.ts +7 -0
  1248. package/dist/types/lib/values/boolean.d.ts +29 -0
  1249. package/dist/types/lib/values/currency.d.ts +22 -0
  1250. package/dist/types/lib/values/date.d.ts +30 -0
  1251. package/dist/types/lib/values/datetime.d.ts +48 -0
  1252. package/dist/types/lib/values/index.d.ts +5 -0
  1253. package/dist/types/lib/values/locale-date.d.ts +34 -0
  1254. package/dist/types/lib/values/number.d.ts +27 -0
  1255. package/dist/types/pure.d.ts +48 -0
  1256. package/package.json +136 -4
@@ -0,0 +1,441 @@
1
+ import { jsx as o, jsxs as z } from "react/jsx-runtime";
2
+ import { useState as C, useCallback as M, useMemo as h, useId as ve, useRef as ee, useEffect as xe } from "react";
3
+ import { cn as R } from "../../lib/cn.js";
4
+ import { Dialog as we } from "../Dialog.js";
5
+ import { Icon as L } from "../Icon.js";
6
+ import { IconButton as B } from "../IconButton.js";
7
+ import { LAYOUT_DEFAULTS as ye, neighbourhood as Ee, edgePath as Oe } from "../node-canvas/layout.js";
8
+ import { neighbourhoodTree as Te, layoutExplorerTree as Ie, frameBoxFor as De } from "./tree-layout.js";
9
+ import { useCamera as Ae } from "./use-camera.js";
10
+ import { useUiStrings as te } from "../../lib/i18n/provider.js";
11
+ import { useNumberFormat as ze } from "../../lib/i18n/number-format.js";
12
+ const Me = "32rem", Ne = "28rem", Se = 16, _e = 2, ke = 13, Fe = 14, Le = ke / Fe;
13
+ function Be(i) {
14
+ return i ? i instanceof Set ? i : new Set(i) : /* @__PURE__ */ new Set();
15
+ }
16
+ function Ce({ label: i }) {
17
+ return /* @__PURE__ */ o("div", { className: "flex min-h-full flex-col justify-center gap-1 px-3 py-2", children: /* @__PURE__ */ o("span", { className: "text-sm font-medium text-primary", children: i }) });
18
+ }
19
+ function ue({
20
+ tree: i,
21
+ crossLinks: c = [],
22
+ label: u,
23
+ renderNode: f,
24
+ focusId: l,
25
+ onFocusRequest: y,
26
+ visitedIds: q,
27
+ onNodeClick: N,
28
+ nodeWidth: S,
29
+ nodeHeight: b,
30
+ height: T,
31
+ disabled: v,
32
+ resetKey: _,
33
+ framePadding: V,
34
+ minReadableScale: k = Le,
35
+ showToolbar: $,
36
+ className: P
37
+ }) {
38
+ const H = te().graphExplorer, j = ze(), U = ve(), [x, I] = C(null), [D, X] = C({}), A = ee(/* @__PURE__ */ new Map()), F = ee(/* @__PURE__ */ new Map()), Z = M((e) => {
39
+ let t = F.current.get(e);
40
+ return t || (t = (r) => {
41
+ const s = A.current.get(e);
42
+ if (s && (s.disconnect(), A.current.delete(e)), !r) return;
43
+ const m = new ResizeObserver((d) => {
44
+ const g = d[0];
45
+ if (!g) return;
46
+ const O = Math.ceil(g.contentRect.height);
47
+ X((W) => W[e] === O ? W : { ...W, [e]: O });
48
+ });
49
+ m.observe(r), A.current.set(e, m);
50
+ }, F.current.set(e, t), t);
51
+ }, []);
52
+ xe(() => {
53
+ const e = A.current;
54
+ return () => {
55
+ for (const t of e.values()) t.disconnect();
56
+ e.clear();
57
+ };
58
+ }, []);
59
+ const E = h(
60
+ () => ({
61
+ nodes: i.nodes.map((e) => {
62
+ const t = D[e.id], r = e.height ?? b ?? ye.nodeHeight;
63
+ return t && t > r ? { ...e, height: t } : e;
64
+ })
65
+ }),
66
+ [i, D, b]
67
+ ), n = h(
68
+ () => Ie(E, c, { nodeWidth: S, nodeHeight: b }),
69
+ [E, c, S, b]
70
+ ), p = h(() => new Map(n.nodes.map((e) => [e.id, e])), [n.nodes]), w = M((e) => p.get(e) ?? null, [p]), re = h(() => {
71
+ const e = new Map(E.nodes.map((s) => [s.id, s.parentId])), t = /* @__PURE__ */ new Map();
72
+ function r(s) {
73
+ const m = t.get(s);
74
+ if (m !== void 0) return m;
75
+ const d = e.get(s) ?? null, g = d === null ? 0 : r(d) + 1;
76
+ return t.set(s, g), g;
77
+ }
78
+ for (const s of E.nodes) r(s.id);
79
+ return t;
80
+ }, [E]), fe = h(() => l ? De(n, l) : null, [l, n]), me = h(() => l ? w(l) : null, [l, w]), a = Ae({
81
+ contentBox: { x: 0, y: 0, width: n.width, height: n.height },
82
+ frameBox: fe,
83
+ frameKey: l,
84
+ framePadding: V,
85
+ minReadableScale: k,
86
+ focusBox: me,
87
+ boxOf: w,
88
+ disabled: v,
89
+ resetKey: _,
90
+ onClick: ({ target: e }) => {
91
+ const r = e.closest("[data-explorer-node]")?.getAttribute("data-explorer-node");
92
+ r && se(r);
93
+ }
94
+ }), [Y, J] = C(null), oe = h(() => {
95
+ if (n.nodes.length === 0) return null;
96
+ const e = i.nodes.filter((s) => s.parentId === null).map((s) => s.id);
97
+ return [...(e.length > 0 ? e : [n.nodes[0].id]).map((s) => p.get(s)).filter((s) => !!s)].sort((s, m) => s.y - m.y)[0]?.id ?? n.nodes[0].id;
98
+ }, [n.nodes, i.nodes, p]), ne = Y && p.has(Y) ? Y : oe, se = M(
99
+ (e) => {
100
+ const t = p.get(e);
101
+ J(e), t?.node && N?.(t.node), y(e);
102
+ },
103
+ [p, N, y]
104
+ ), ae = ee(null), G = M(
105
+ (e) => {
106
+ J(e), a.flyTo(e), queueMicrotask(() => {
107
+ ae.current?.querySelector(`[data-explorer-node="${CSS.escape(e)}"]`)?.focus();
108
+ });
109
+ },
110
+ [a]
111
+ ), ie = h(
112
+ () => [...n.edges, ...n.crossLinks],
113
+ [n.edges, n.crossLinks]
114
+ );
115
+ function le(e, t) {
116
+ if (!p.has(e)) return null;
117
+ const r = re.get(e);
118
+ if (r === void 0) return null;
119
+ const s = n.nodes.filter((d) => re.get(d.id) === r).sort((d, g) => d.x - g.x), m = s.findIndex((d) => d.id === e);
120
+ return s[m + t]?.id ?? null;
121
+ }
122
+ function pe(e) {
123
+ return n.edges.find((t) => t.to === e)?.from ?? null;
124
+ }
125
+ function he(e) {
126
+ return n.edges.find((t) => t.from === e)?.to ?? null;
127
+ }
128
+ function ge(e, t) {
129
+ if (!v)
130
+ switch (e.key) {
131
+ case "+":
132
+ case "=":
133
+ e.preventDefault(), a.zoomIn();
134
+ return;
135
+ case "-":
136
+ case "_":
137
+ e.preventDefault(), a.zoomOut();
138
+ return;
139
+ case "0":
140
+ e.preventDefault(), a.fitAll();
141
+ return;
142
+ case "Home":
143
+ e.preventDefault(), a.flyTo(t);
144
+ return;
145
+ /* DX-3401: ranks now run top to bottom, so Up/Down follow the backbone
146
+ (parent/child) and Left/Right move between siblings — the mirror of
147
+ the pre-DX-3401 mapping, which matched the old left-to-right ranking. */
148
+ case "ArrowUp": {
149
+ const r = pe(t);
150
+ r && (e.preventDefault(), G(r));
151
+ return;
152
+ }
153
+ case "ArrowDown": {
154
+ const r = he(t);
155
+ r && (e.preventDefault(), G(r));
156
+ return;
157
+ }
158
+ case "ArrowLeft": {
159
+ const r = le(t, -1);
160
+ r && (e.preventDefault(), G(r));
161
+ return;
162
+ }
163
+ case "ArrowRight": {
164
+ const r = le(t, 1);
165
+ r && (e.preventDefault(), G(r));
166
+ return;
167
+ }
168
+ case "Enter":
169
+ case " ":
170
+ e.preventDefault(), se(t);
171
+ return;
172
+ }
173
+ }
174
+ const Q = x ?? l ?? null, K = h(
175
+ () => Q ? Ee(Q, ie, _e) : null,
176
+ [Q, ie]
177
+ );
178
+ function ce(e) {
179
+ if (!e.node)
180
+ throw new Error(`GraphExplorer: placed node "${e.id}" has no backing data (expected a tree leaf)`);
181
+ return e.node;
182
+ }
183
+ const be = (e, t) => {
184
+ const r = ce(e);
185
+ return f ? f(r, t) : /* @__PURE__ */ o(Ce, { label: r.label });
186
+ };
187
+ return /* @__PURE__ */ z(
188
+ "div",
189
+ {
190
+ ref: ae,
191
+ "data-explorer-viewport": !0,
192
+ className: R(
193
+ "relative min-w-0 overflow-hidden select-none touch-none rounded-xl border border-border bg-canvas-subtle",
194
+ v ? "cursor-default" : a.panning ? "cursor-grabbing" : "cursor-grab",
195
+ P
196
+ ),
197
+ style: { height: T },
198
+ children: [
199
+ /* @__PURE__ */ o(
200
+ "div",
201
+ {
202
+ ref: a.bindViewport,
203
+ role: "tree",
204
+ "aria-label": u,
205
+ "aria-describedby": U,
206
+ "data-camera-viewport": !0,
207
+ className: "absolute inset-0",
208
+ style: { visibility: n.nodes.length > 0 && n.width === 0 ? "hidden" : "visible" },
209
+ children: /* @__PURE__ */ z(
210
+ "div",
211
+ {
212
+ "data-animating": a.animating || void 0,
213
+ className: R(
214
+ "absolute top-0 left-0 origin-top-left",
215
+ /* `transition-[var(--tx-colors),transform]`, not a bare
216
+ `transition-transform` — `transition-property` is not
217
+ additive, so naming only `transform` would silently drop the
218
+ global colour-fade transition every other element inherits
219
+ (see `styles/motion.css`'s own note on `--tx-colors`). */
220
+ a.animating && "transition-[var(--tx-colors),transform] duration-(--dur-slowest) ease-(--ease-gentle)"
221
+ ),
222
+ style: { transform: `translate(${a.camera.x}px, ${a.camera.y}px) scale(${a.camera.scale})` },
223
+ children: [
224
+ /* @__PURE__ */ z(
225
+ "svg",
226
+ {
227
+ "aria-hidden": "true",
228
+ className: "pointer-events-none absolute overflow-visible text-border-strong",
229
+ width: n.width || 1,
230
+ height: n.height || 1,
231
+ children: [
232
+ n.edges.map((e) => /* @__PURE__ */ o(de, { edge: e, neighbours: K }, `b:${e.from}->${e.to}`)),
233
+ n.crossLinks.map((e) => /* @__PURE__ */ o(de, { edge: e, neighbours: K, dashed: !0 }, `x:${e.from}->${e.to}`))
234
+ ]
235
+ }
236
+ ),
237
+ n.nodes.map((e) => {
238
+ const t = ce(e), r = e.id === l, s = q.has(e.id), m = e.id === ne, d = K?.get(e.id) ?? null, g = K !== null && d === null;
239
+ return /* @__PURE__ */ o(
240
+ "div",
241
+ {
242
+ ref: Z(e.id),
243
+ "data-explorer-node": e.id,
244
+ "data-visited": s || void 0,
245
+ role: "treeitem",
246
+ "aria-label": t.label,
247
+ "aria-current": r ? "location" : void 0,
248
+ tabIndex: m ? 0 : -1,
249
+ onFocus: () => J(e.id),
250
+ onKeyDown: (O) => ge(O, e.id),
251
+ onMouseEnter: () => I(e.id),
252
+ onMouseLeave: () => I((O) => O === e.id ? null : O),
253
+ className: R(
254
+ "absolute overflow-visible rounded-lg border bg-surface-raised outline-none",
255
+ "transition-[var(--tx-colors),box-shadow,opacity] duration-(--dur-fast) ease-snappy",
256
+ "focus-visible:ring-2 focus-visible:ring-accent-border",
257
+ r ? "border-accent-border elevate-md ring-2 ring-accent-border/40" : "border-border-subtle elevate-sm",
258
+ g && "opacity-40"
259
+ ),
260
+ style: { left: e.x, top: e.y, width: e.width, minHeight: e.height },
261
+ children: be(e, { isTabStop: m, isFocused: r, isVisited: s, distance: d })
262
+ },
263
+ e.id
264
+ );
265
+ })
266
+ ]
267
+ }
268
+ )
269
+ }
270
+ ),
271
+ (a.frameOverflow.left || a.frameOverflow.right || a.frameOverflow.top || a.frameOverflow.bottom) && /* @__PURE__ */ z("div", { "aria-hidden": "true", className: "pointer-events-none absolute inset-0", children: [
272
+ a.frameOverflow.left && /* @__PURE__ */ o(
273
+ "div",
274
+ {
275
+ "data-frame-edge-cue": "left",
276
+ className: "absolute inset-y-0 left-0 w-8 bg-gradient-to-r from-canvas-subtle to-transparent"
277
+ }
278
+ ),
279
+ a.frameOverflow.right && /* @__PURE__ */ o(
280
+ "div",
281
+ {
282
+ "data-frame-edge-cue": "right",
283
+ className: "absolute inset-y-0 right-0 w-8 bg-gradient-to-l from-canvas-subtle to-transparent"
284
+ }
285
+ ),
286
+ a.frameOverflow.top && /* @__PURE__ */ o(
287
+ "div",
288
+ {
289
+ "data-frame-edge-cue": "top",
290
+ className: "absolute inset-x-0 top-0 h-8 bg-gradient-to-b from-canvas-subtle to-transparent"
291
+ }
292
+ ),
293
+ a.frameOverflow.bottom && /* @__PURE__ */ o(
294
+ "div",
295
+ {
296
+ "data-frame-edge-cue": "bottom",
297
+ className: "absolute inset-x-0 bottom-0 h-8 bg-gradient-to-t from-canvas-subtle to-transparent"
298
+ }
299
+ )
300
+ ] }),
301
+ $ && !v && /* @__PURE__ */ o(
302
+ Re,
303
+ {
304
+ onZoomIn: a.zoomIn,
305
+ onZoomOut: a.zoomOut,
306
+ onFitAll: a.fitAll,
307
+ onReset: () => a.flyTo(l ?? ne ?? oe ?? "")
308
+ }
309
+ ),
310
+ /* @__PURE__ */ o("p", { id: U, role: "status", "aria-live": "polite", className: "sr-only", children: H.showing(n.nodes.length, j(n.nodes.length), u) })
311
+ ]
312
+ }
313
+ );
314
+ }
315
+ function de({
316
+ edge: i,
317
+ neighbours: c,
318
+ dashed: u
319
+ }) {
320
+ const f = c !== null && c.has(i.from) && c.has(i.to);
321
+ return /* @__PURE__ */ o(
322
+ "path",
323
+ {
324
+ d: Oe(i),
325
+ fill: "none",
326
+ stroke: "currentColor",
327
+ strokeWidth: c ? f ? 2 : 1 : u ? 1 : 1.5,
328
+ strokeDasharray: u ? "4 4" : void 0,
329
+ opacity: u ? c ? f ? 0.8 : 0.25 : 0.5 : c ? f ? 1 : 0.35 : 1
330
+ }
331
+ );
332
+ }
333
+ function Re({
334
+ onZoomIn: i,
335
+ onZoomOut: c,
336
+ onFitAll: u,
337
+ onReset: f
338
+ }) {
339
+ const l = te().graphExplorer;
340
+ return /* @__PURE__ */ z("div", { className: "absolute right-2 bottom-2 flex items-center gap-1 rounded-lg border border-border bg-surface/95 p-1 shadow-sm backdrop-blur-sm", children: [
341
+ /* @__PURE__ */ o(B, { icon: /* @__PURE__ */ o(L, { name: "minus", size: "sm" }), label: l.zoomOut, size: "sm", onClick: c }),
342
+ /* @__PURE__ */ o(B, { icon: /* @__PURE__ */ o(L, { name: "plus", size: "sm" }), label: l.zoomIn, size: "sm", onClick: i }),
343
+ /* @__PURE__ */ o(B, { icon: /* @__PURE__ */ o(L, { name: "maximize-2", size: "sm" }), label: l.fitAll, size: "sm", onClick: u }),
344
+ /* @__PURE__ */ o(B, { icon: /* @__PURE__ */ o(L, { name: "crosshair", size: "sm" }), label: l.resetToFocus, size: "sm", onClick: f })
345
+ ] });
346
+ }
347
+ function $e({
348
+ tree: i,
349
+ crossLinks: c = [],
350
+ label: u,
351
+ renderNode: f,
352
+ variant: l = "explorer",
353
+ focusId: y,
354
+ defaultFocusId: q = null,
355
+ onFocusIdChange: N,
356
+ visitedIds: S,
357
+ onNodeClick: b,
358
+ onExpand: T,
359
+ nodeWidth: v,
360
+ nodeHeight: _,
361
+ height: V = Me,
362
+ minReadableScale: k,
363
+ disabled: $,
364
+ className: P
365
+ }) {
366
+ const H = te().graphExplorer, [j, U] = C(q), x = y !== void 0 ? y : j, I = M(
367
+ (w) => {
368
+ y === void 0 && U(w), N?.(w);
369
+ },
370
+ [y, N]
371
+ ), D = h(() => Be(S), [S]), X = i.nodes, [A, F] = C(!1), Z = M(() => {
372
+ T ? T() : F(!0);
373
+ }, [T]);
374
+ if (l === "explorer")
375
+ return /* @__PURE__ */ o("div", { className: R("relative", P), children: /* @__PURE__ */ o(
376
+ ue,
377
+ {
378
+ tree: i,
379
+ crossLinks: c,
380
+ label: u,
381
+ renderNode: f,
382
+ focusId: x,
383
+ onFocusRequest: I,
384
+ visitedIds: D,
385
+ onNodeClick: b,
386
+ nodeWidth: v,
387
+ nodeHeight: _,
388
+ height: V,
389
+ minReadableScale: k,
390
+ disabled: $,
391
+ resetKey: X,
392
+ showToolbar: !0
393
+ }
394
+ ) });
395
+ const E = x ? Te(i, x) : null, n = i.nodes.find((w) => w.parentId === null) ?? i.nodes[0], p = E ?? { nodes: n ? [{ ...n, parentId: null }] : [] };
396
+ return /* @__PURE__ */ z("div", { className: R("relative", P), children: [
397
+ /* @__PURE__ */ o(
398
+ ue,
399
+ {
400
+ tree: p,
401
+ crossLinks: c,
402
+ label: H.minimap(u),
403
+ focusId: x,
404
+ onFocusRequest: I,
405
+ visitedIds: D,
406
+ onNodeClick: b,
407
+ renderNode: f,
408
+ nodeWidth: v,
409
+ nodeHeight: _,
410
+ height: Ne,
411
+ minReadableScale: k,
412
+ disabled: $,
413
+ resetKey: x,
414
+ framePadding: Se
415
+ }
416
+ ),
417
+ /* @__PURE__ */ o("div", { className: "absolute top-2 right-2", children: /* @__PURE__ */ o(B, { icon: /* @__PURE__ */ o(L, { name: "maximize-2", size: "sm" }), label: H.expand, size: "sm", onClick: Z }) }),
418
+ !T && /* @__PURE__ */ o(we, { open: A, onOpenChange: F, title: u, size: "xl", children: /* @__PURE__ */ o(
419
+ $e,
420
+ {
421
+ tree: i,
422
+ crossLinks: c,
423
+ label: u,
424
+ renderNode: f,
425
+ variant: "explorer",
426
+ focusId: x,
427
+ onFocusIdChange: I,
428
+ visitedIds: D,
429
+ onNodeClick: b,
430
+ nodeWidth: v,
431
+ nodeHeight: _,
432
+ height: "70vh",
433
+ minReadableScale: k
434
+ }
435
+ ) })
436
+ ] });
437
+ }
438
+ export {
439
+ $e as GraphExplorer
440
+ };
441
+ //# sourceMappingURL=GraphExplorer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GraphExplorer.js","sources":["../../../src/components/graph-explorer/GraphExplorer.tsx"],"sourcesContent":["import { useCallback, useEffect, useId, useMemo, useRef, useState } from \"react\";\nimport { cn } from \"../../lib/cn\";\nimport { useNumberFormat, useUiStrings } from \"../../lib/i18n\";\nimport { Dialog } from \"../Dialog\";\nimport { Icon } from \"../Icon\";\nimport { IconButton } from \"../IconButton\";\nimport { LAYOUT_DEFAULTS, neighbourhood } from \"../node-canvas/layout\";\nimport type { CanvasNode, CanvasPlacedEdge, PlacedNode } from \"../node-canvas/types\";\nimport { edgePath, frameBoxFor, layoutExplorerTree, neighbourhoodTree } from \"./tree-layout\";\nimport { useCamera } from \"./use-camera\";\nimport type { CrossLink, ExplorerNodeRenderContext, ExplorerNodeRenderer, ExplorerTree, GraphExplorerVariant } from \"./types\";\n\n/* ============================================================================\n GRAPH EXPLORER — a static tree you explore with a camera. (DX-3376)\n\n THE OPERATOR'S OWN WORDS, FROM THE CARD: `NodeCanvas`'s concept map was\n \"super confusing and unusable\" — a cyclic-cluster box nobody could read,\n titles cut off with an ellipsis, nodes you could accidentally drag out of\n place, and no sense of where you are. Every one of those is addressed by a\n DIFFERENT mechanism than `NodeCanvas` uses, not a tuned version of the same\n one — see `types.ts`'s module doc for why this is a sibling component\n rather than an extension.\n\n WHAT \"STATIC\" MEANS HERE: the LAYOUT never moves once computed (modulo a\n node's own height settling once its wrapped content is measured — see\n `measuredHeights` below). What moves is the CAMERA — pan, zoom, and the\n animated fly-to a controlled `focusId` drives. That is the whole design in\n one sentence: dragging a node is meaningless when nothing about the\n drawing is negotiable, so dragging is repurposed to mean \"move the camera\"\n instead, which is what `use-camera.ts` implements.\n ========================================================================= */\n\nconst DEFAULT_HEIGHT = \"32rem\";\n/* DX-3405: tall enough to hold THREE ranks (parent + focus + children) at\n the readable floor (`MIN_READABLE_TITLE_SCALE`) WITHOUT vertical clipping\n — DX-3401's original 9rem, and DX-3404's follow-up bump to 15rem, both\n assumed every node stays at `LAYOUT_DEFAULTS.nodeHeight` (76px); neither\n accounted for a node whose title actually WRAPS (measured taller via the\n `ResizeObserver` in `GraphExplorerSurface`, above). Measured against\n `src/demo/pages/GraphExplorerPage.tsx`'s own tree — which deliberately\n includes a several-line wrapping title exactly to stress this — focusing\n the node ONE RANK ABOVE the wrapping title (so the tall node is a CHILD,\n the worst case: the child row's height, not just the focus row's, grows)\n measured a required frame height of ~332px at the floor scale. Rounded\n up with real headroom rather than shaving it to the wire, since a\n slightly-longer title than this demo's is one edit away. camera-math.ts's\n `fitBoxWithFloor` is what actually keeps the frame's full vertical extent\n centred in whatever height this is — this constant only has to be TALL\n ENOUGH; the centring guarantees it is never clipped once it is. */\nconst MINIMAP_HEIGHT = \"28rem\";\n/** Padding around the minimap's auto-framed box — deliberately much smaller\n than the explorer's own `CAMERA_DEFAULTS.fitPadding` (64px), which would\n eat most of a compact strip's own height. DX-3401. */\nconst MINIMAP_FRAME_PADDING = 16;\n/** Hops the hover/focus neighbourhood highlight reaches — same distance\n `NodeCanvas` uses (`FOCUS_HOPS` in `NodeCanvas.tsx`), for a consistent feel. */\nconst HOVER_HOPS = 2;\n\n/** Smallest a node title may render on screen before the automatic frame-fit\n (mount / focus change — `useCamera`'s `minReadableScale`) stops shrinking\n to show the whole frame and instead holds this scale, centring on the\n focused node so the rest is reached by panning (DX-3404). ~13px is about\n the smallest UI text stays comfortably legible. This bounds ONLY the\n automatic fit — `fitAll` (the manual \"fit everything\" control) is\n unaffected and may still zoom out past it on purpose. */\nconst MIN_READABLE_TITLE_PX = 13;\n/** `DefaultNodeBody`'s title is `text-sm` (14px at camera scale 1) — the\n camera scales the whole node, title included, so the floor above has to\n be expressed as a FRACTION of this base, not as a raw pixel value. A\n `renderNode` with a different title size should derive its own\n `minReadableScale` from `MIN_READABLE_TITLE_PX` the same way and pass it\n as a prop, rather than assuming this default. */\nconst DEFAULT_NODE_TITLE_PX = 14;\n/** @default for `GraphExplorerProps.minReadableScale` — ~0.93 for the default node body. */\nconst MIN_READABLE_TITLE_SCALE = MIN_READABLE_TITLE_PX / DEFAULT_NODE_TITLE_PX;\n\nexport interface GraphExplorerProps<Extra = unknown> {\n tree: ExplorerTree<Extra>;\n /** Secondary relationships drawn over the fixed layout. Never affects positions. */\n crossLinks?: readonly CrossLink[];\n /** The accessible name of the whole structure. Required — see `NodeCanvasProps.label`. */\n label: string;\n /** The node body. Defaults to the label, wrapped, never truncated. */\n renderNode?: ExplorerNodeRenderer<Extra>;\n /** @default \"explorer\" */\n variant?: GraphExplorerVariant;\n /** Which node the camera centres on, with a \"you are here\" highlight. Controlled. */\n focusId?: string | null;\n /** Initial `focusId` for uncontrolled use. */\n defaultFocusId?: string | null;\n /** Fired when the controlled `focusId` would change — a node click, or `flyTo` via the keyboard. Never fired with `null`: nothing in this component ever clears focus, only moves it. */\n onFocusIdChange?: (id: string) => void;\n /** Nodes styled as already seen. */\n visitedIds?: ReadonlySet<string> | readonly string[];\n /** Fired when an ordinary node is clicked or activated by keyboard. */\n onNodeClick?: (node: CanvasNode<Extra>) => void;\n /** `variant=\"minimap\"` only: the expand affordance's handler. Defaults to an in-place full-screen dialog. */\n onExpand?: () => void;\n /** Cross-axis extent of a node that does not need more, in px — the rank's OWN axis (ranks spread along y, DX-3401's vertical default) unless `orientation` is overridden. @default LAYOUT_DEFAULTS.nodeWidth */\n nodeWidth?: number;\n /** Along-axis extent BEFORE a taller node's own content grows it — the axis ranks advance along. @default LAYOUT_DEFAULTS.nodeHeight */\n nodeHeight?: number;\n /** Floor on the automatic frame-fit's scale (mount / focus change, both\n `variant`s) — below this, the camera holds the floor and centres on the\n focused node instead of shrinking the whole frame to fit; `fitAll`\n stays unaffected (DX-3404). See `MIN_READABLE_TITLE_SCALE`'s own\n comment for the derivation; override when `renderNode` uses a\n different title font size. @default MIN_READABLE_TITLE_SCALE */\n minReadableScale?: number;\n /** `variant=\"explorer\"` only: height of the viewport. @default \"32rem\" */\n height?: string;\n /** Nothing pans, zooms or clicks. Reading is unaffected. */\n disabled?: boolean;\n className?: string;\n}\n\nfunction toVisitedSet(visitedIds: ReadonlySet<string> | readonly string[] | undefined): ReadonlySet<string> {\n if (!visitedIds) return new Set();\n return visitedIds instanceof Set ? visitedIds : new Set(visitedIds);\n}\n\nfunction DefaultNodeBody({ label }: { label: string }) {\n return (\n <div className=\"flex min-h-full flex-col justify-center gap-1 px-3 py-2\">\n <span className=\"text-sm font-medium text-primary\">{label}</span>\n </div>\n );\n}\n\n/** The shared render core — an `explorer` viewport, or the tree a `minimap` shows inside a dialog. */\nfunction GraphExplorerSurface<Extra>({\n tree,\n crossLinks = [],\n label,\n renderNode,\n focusId,\n onFocusRequest,\n visitedIds,\n onNodeClick,\n nodeWidth,\n nodeHeight,\n height,\n disabled,\n resetKey,\n framePadding,\n minReadableScale = MIN_READABLE_TITLE_SCALE,\n showToolbar,\n className,\n}: {\n tree: ExplorerTree<Extra>;\n crossLinks?: readonly CrossLink[];\n label: string;\n renderNode?: ExplorerNodeRenderer<Extra>;\n focusId: string | null;\n onFocusRequest: (id: string) => void;\n visitedIds: ReadonlySet<string>;\n onNodeClick?: (node: CanvasNode<Extra>) => void;\n nodeWidth?: number;\n nodeHeight?: number;\n height: string;\n disabled?: boolean;\n resetKey: unknown;\n /** Padding around the automatic camera frame — see `useCamera`'s own `framePadding`. `undefined` uses its default (the explorer's own generous padding); the minimap passes a much smaller value. */\n framePadding?: number;\n /** Forwarded to `useCamera`'s own `minReadableScale` — see `GraphExplorerProps.minReadableScale`. */\n minReadableScale?: number;\n /** The camera toolbar (zoom/fit/reset) lives here, not in `GraphExplorer` itself — it drives THIS surface's own `useCamera` instance, and a second instance would fall out of sync with the one actually rendering. */\n showToolbar?: boolean;\n className?: string;\n}) {\n const strings = useUiStrings().graphExplorer;\n const fmt = useNumberFormat();\n const statusId = useId();\n const [hoveredId, setHoveredId] = useState<string | null>(null);\n\n /* --- height measurement: a node's box grows to fit its wrapped content ---\n\n `layoutExplorerTree` needs a height PER NODE up front to give dagre\n spacing to work with. The true height is a fact about rendered content\n this component does not know until the browser has laid it out once —\n so the first pass uses the caller's default, a `ResizeObserver` per node\n corrects it, and the corrected height feeds the NEXT layout pass. The\n node element itself is never clipped in between (`overflow-visible`,\n `min-height` rather than a fixed `height` — see the node's own\n `className` below), so \"never truncated\" holds on every frame, including\n the first one, independent of whether measurement has caught up yet. */\n const [measuredHeights, setMeasuredHeights] = useState<Record<string, number>>({});\n const nodeObservers = useRef(new Map<string, ResizeObserver>());\n /**\n * Ref callbacks cached by id — NOT recreated on every call.\n *\n * `bindNodeMeasure(id)` is invoked inline in JSX (`ref={bindNodeMeasure(placed.id)}`),\n * so without this cache every render — including one triggered by nothing\n * more than a hover (`onMouseEnter`/`onMouseLeave` below) or a pan's\n * `camera` state update — would hand React a FRESH closure identity for\n * every visible node's ref, and React tears down and reattaches a ref\n * whose identity changed. That means disconnecting and recreating a real\n * `ResizeObserver` per node on every such render — exactly the stable-ref\n * requirement `node-canvas/use-canvas-gestures.ts`'s own `bindNode` cache\n * exists for, for the identical reason.\n */\n const nodeMeasureBindings = useRef(new Map<string, (el: HTMLDivElement | null) => void>());\n const bindNodeMeasure = useCallback((id: string) => {\n let cached = nodeMeasureBindings.current.get(id);\n if (cached) return cached;\n cached = (el: HTMLDivElement | null) => {\n const existing = nodeObservers.current.get(id);\n if (existing) {\n existing.disconnect();\n nodeObservers.current.delete(id);\n }\n if (!el) return;\n const observer = new ResizeObserver((entries) => {\n const entry = entries[0];\n if (!entry) return;\n const measured = Math.ceil(entry.contentRect.height);\n setMeasuredHeights((current) => (current[id] === measured ? current : { ...current, [id]: measured }));\n });\n observer.observe(el);\n nodeObservers.current.set(id, observer);\n };\n nodeMeasureBindings.current.set(id, cached);\n return cached;\n }, []);\n useEffect(() => {\n const observers = nodeObservers.current;\n return () => {\n for (const observer of observers.values()) observer.disconnect();\n observers.clear();\n };\n }, []);\n\n const sizedTree = useMemo<ExplorerTree<Extra>>(\n () => ({\n nodes: tree.nodes.map((node) => {\n const measured = measuredHeights[node.id];\n /* The EFFECTIVE default a node would otherwise get from\n `layoutExplorerTree` — never just `node.height ?? nodeHeight`,\n which is `undefined` (falsy) for the ordinary case of neither\n being set, and previously made THIS branch read \"no explicit\n height was ever given, so ANY measured value overrides\" — a\n measured height SMALLER than the true default (`LAYOUT_DEFAULTS\n .nodeHeight`, 76) still got applied, silently shrinking the node's\n layout box below what dagre would otherwise have given it and\n shifting every other node packed against the same rank. */\n const base = node.height ?? nodeHeight ?? LAYOUT_DEFAULTS.nodeHeight;\n return measured && measured > base ? { ...node, height: measured } : node;\n }),\n }),\n [tree, measuredHeights, nodeHeight],\n );\n\n const layout = useMemo(\n () => layoutExplorerTree(sizedTree, crossLinks, { nodeWidth, nodeHeight }),\n [sizedTree, crossLinks, nodeWidth, nodeHeight],\n );\n const byId = useMemo(() => new Map(layout.nodes.map((n) => [n.id, n])), [layout.nodes]);\n const boxOf = useCallback((id: string) => byId.get(id) ?? null, [byId]);\n\n /* --- rank, by TOPOLOGY, never by rounding a pixel coordinate ---\n\n `siblingOf` (below) needs \"every node dagre put in the same rank.\"\n Rounding a placed box's along-axis coordinate looks like a shortcut for\n that, but it silently breaks under the one thing this component already\n does dynamically: `sizedTree` (above) feeds a per-node MEASURED height\n into the layout once a node's wrapped content settles. dagre centres\n every node in a rank on the SAME along-axis coordinate — so two same-rank\n nodes of DIFFERENT height end up with different placed top-left\n coordinates (`center - height / 2`) even though dagre agrees they're one\n rank. Depth from each node's own `parentId` chain is the fact dagre's\n ranking is actually built from, so it can never disagree with dagre\n regardless of what any node measures. */\n const depthOf = useMemo(() => {\n const parentOf = new Map(sizedTree.nodes.map((node) => [node.id, node.parentId]));\n const cache = new Map<string, number>();\n function depth(id: string): number {\n const cached = cache.get(id);\n if (cached !== undefined) return cached;\n const parentId = parentOf.get(id) ?? null;\n const result = parentId === null ? 0 : depth(parentId) + 1;\n cache.set(id, result);\n return result;\n }\n for (const node of sizedTree.nodes) depth(node.id);\n return cache;\n }, [sizedTree]);\n\n /* --- the camera's automatic frame: focus + its parent + its children ---\n\n DX-3401. Feeds `useCamera`'s `frameBox`/`frameKey`, which is the SOLE\n driver of the automatic mount/focus-change fit (see that hook's own\n comment on why this replaced a separate `flyTo`-on-`focusId`-change\n effect that raced it). `null` when there is no focus yet — `useCamera`\n falls back to fitting `contentBox` (the whole tree) in that case, the\n ordinary \"nothing focused\" view. */\n const frameBox = useMemo(() => (focusId ? frameBoxFor(layout, focusId) : null), [focusId, layout]);\n /* The narrow target `minReadableScale` centres on once it clamps the fit —\n the focused node's own box, distinct from the wider `frameBox` (focus +\n parent + children) above (DX-3404). */\n const focusBox = useMemo(() => (focusId ? boxOf(focusId) : null), [focusId, boxOf]);\n\n const camera = useCamera({\n contentBox: { x: 0, y: 0, width: layout.width, height: layout.height },\n frameBox,\n frameKey: focusId,\n framePadding,\n minReadableScale,\n focusBox,\n boxOf,\n disabled,\n resetKey,\n onClick: ({ target }) => {\n const el = target.closest<HTMLElement>(\"[data-explorer-node]\");\n const id = el?.getAttribute(\"data-explorer-node\");\n if (id) activate(id);\n },\n });\n\n /* --- roving tab stop + activation --- */\n const [internalTabStop, setInternalTabStop] = useState<string | null>(null);\n const defaultTabStopId = useMemo(() => {\n if (layout.nodes.length === 0) return null;\n const roots = tree.nodes.filter((n) => n.parentId === null).map((n) => n.id);\n const candidates = roots.length > 0 ? roots : [layout.nodes[0]!.id];\n const placed = candidates.map((id) => byId.get(id)).filter((n): n is PlacedNode<Extra> => Boolean(n));\n return [...placed].sort((a, b) => a.y - b.y)[0]?.id ?? layout.nodes[0]!.id;\n }, [layout.nodes, tree.nodes, byId]);\n const tabStopId = internalTabStop && byId.has(internalTabStop) ? internalTabStop : defaultTabStopId;\n\n const activate = useCallback(\n (id: string) => {\n const placed = byId.get(id);\n setInternalTabStop(id);\n if (placed?.node) onNodeClick?.(placed.node);\n onFocusRequest(id);\n },\n [byId, onNodeClick, onFocusRequest],\n );\n\n const rootRef = useRef<HTMLDivElement | null>(null);\n /**\n * Moves the roving tab stop AND the camera — unlike `NodeCanvas`'s own\n * `focusNode`, which only needs the DOM focus move because its plane pans\n * via real `scrollLeft`/`scrollTop` and `el.scrollIntoView()` (called right\n * after `.focus()` there) is enough to bring an off-screen target into\n * view. This plane pans via a CSS `transform` instead — there is no native\n * scroll container for `scrollIntoView` to act on — so without an explicit\n * `camera.flyTo` here, arrow-key navigation across a tree larger than the\n * viewport would move DOM focus off-screen with no visual feedback at all.\n */\n const focusNode = useCallback(\n (id: string) => {\n setInternalTabStop(id);\n camera.flyTo(id);\n queueMicrotask(() => {\n rootRef.current?.querySelector<HTMLElement>(`[data-explorer-node=\"${CSS.escape(id)}\"]`)?.focus();\n });\n },\n [camera],\n );\n\n const allEdges = useMemo(\n () => [...layout.edges, ...layout.crossLinks],\n [layout.edges, layout.crossLinks],\n );\n\n /* DX-3401: rank mates are found by DEPTH (`depthOf`, topological), never by\n rounding a placed coordinate — see that memo's own comment for why a\n geometric rank axis breaks the moment same-rank nodes measure different\n heights. Within a rank, `x` is still the right SORT key (vertical\n orientation spreads siblings along x) — only which nodes COUNT as the\n rank changed. */\n function siblingOf(id: string, step: number): string | null {\n if (!byId.has(id)) return null;\n const rank = depthOf.get(id);\n if (rank === undefined) return null;\n const rankMates = layout.nodes\n .filter((n) => depthOf.get(n.id) === rank)\n .sort((a, b) => a.x - b.x);\n const index = rankMates.findIndex((n) => n.id === id);\n return rankMates[index + step]?.id ?? null;\n }\n function predecessorOf(id: string): string | null {\n return layout.edges.find((e) => e.to === id)?.from ?? null;\n }\n function successorOf(id: string): string | null {\n return layout.edges.find((e) => e.from === id)?.to ?? null;\n }\n\n function onKeyDown(event: React.KeyboardEvent, id: string) {\n if (disabled) return;\n switch (event.key) {\n case \"+\":\n case \"=\":\n event.preventDefault();\n camera.zoomIn();\n return;\n case \"-\":\n case \"_\":\n event.preventDefault();\n camera.zoomOut();\n return;\n case \"0\":\n event.preventDefault();\n camera.fitAll();\n return;\n case \"Home\":\n event.preventDefault();\n camera.flyTo(id);\n return;\n /* DX-3401: ranks now run top to bottom, so Up/Down follow the backbone\n (parent/child) and Left/Right move between siblings — the mirror of\n the pre-DX-3401 mapping, which matched the old left-to-right ranking. */\n case \"ArrowUp\": {\n const target = predecessorOf(id);\n if (target) {\n event.preventDefault();\n focusNode(target);\n }\n return;\n }\n case \"ArrowDown\": {\n const target = successorOf(id);\n if (target) {\n event.preventDefault();\n focusNode(target);\n }\n return;\n }\n case \"ArrowLeft\": {\n const target = siblingOf(id, -1);\n if (target) {\n event.preventDefault();\n focusNode(target);\n }\n return;\n }\n case \"ArrowRight\": {\n const target = siblingOf(id, 1);\n if (target) {\n event.preventDefault();\n focusNode(target);\n }\n return;\n }\n case \"Enter\":\n case \" \":\n event.preventDefault();\n activate(id);\n return;\n default:\n }\n }\n\n const referenceId = hoveredId ?? focusId ?? null;\n const neighbours = useMemo(\n () => (referenceId ? neighbourhood(referenceId, allEdges, HOVER_HOPS) : null),\n [referenceId, allEdges],\n );\n\n /* `placed.node` is typed nullable (`PlacedNode` is shared with `NodeCanvas`,\n where it IS null for a collapsed group/cycle placeholder) but a tree-only\n layout never produces one — `layoutExplorerTree` feeds `layoutGraph` no\n groups and a scope that never condenses (see `tree-layout.ts`'s module\n doc). A null here means that invariant broke, which is worth failing loud\n over rather than silently drawing a placeholder with no real data. */\n function nodeOf(placed: PlacedNode<Extra>): CanvasNode<Extra> {\n if (!placed.node) {\n throw new Error(`GraphExplorer: placed node \"${placed.id}\" has no backing data (expected a tree leaf)`);\n }\n return placed.node;\n }\n\n const body = (placed: PlacedNode<Extra>, context: ExplorerNodeRenderContext): React.ReactNode => {\n const node = nodeOf(placed);\n if (renderNode) return renderNode(node, context);\n return <DefaultNodeBody label={node.label} />;\n };\n\n return (\n <div\n ref={rootRef}\n data-explorer-viewport\n className={cn(\n \"relative min-w-0 overflow-hidden select-none touch-none rounded-xl border border-border bg-canvas-subtle\",\n disabled ? \"cursor-default\" : camera.panning ? \"cursor-grabbing\" : \"cursor-grab\",\n className,\n )}\n style={{ height }}\n >\n {/* DX-5084: the tree is the camera viewport, NOT the outer frame. A `role=\"tree\"`\n may own only treeitems (axe `aria-required-children`), and the frame also\n holds the zoom toolbar's buttons and the `role=\"status\"` live region, so\n putting the role on the frame made every explorer an invalid tree. The\n viewport holds the nodes and nothing else. */}\n <div\n ref={camera.bindViewport}\n role=\"tree\"\n aria-label={label}\n aria-describedby={statusId}\n data-camera-viewport\n className=\"absolute inset-0\"\n style={{ visibility: layout.nodes.length > 0 && layout.width === 0 ? \"hidden\" : \"visible\" }}\n >\n <div\n data-animating={camera.animating || undefined}\n className={cn(\n \"absolute top-0 left-0 origin-top-left\",\n /* `transition-[var(--tx-colors),transform]`, not a bare\n `transition-transform` — `transition-property` is not\n additive, so naming only `transform` would silently drop the\n global colour-fade transition every other element inherits\n (see `styles/motion.css`'s own note on `--tx-colors`). */\n camera.animating && \"transition-[var(--tx-colors),transform] duration-(--dur-slowest) ease-(--ease-gentle)\",\n )}\n style={{ transform: `translate(${camera.camera.x}px, ${camera.camera.y}px) scale(${camera.camera.scale})` }}\n >\n <svg\n aria-hidden=\"true\"\n className=\"pointer-events-none absolute overflow-visible text-border-strong\"\n width={layout.width || 1}\n height={layout.height || 1}\n >\n {layout.edges.map((edge) => (\n <EdgeLine key={`b:${edge.from}->${edge.to}`} edge={edge} neighbours={neighbours} />\n ))}\n {layout.crossLinks.map((edge) => (\n <EdgeLine key={`x:${edge.from}->${edge.to}`} edge={edge} neighbours={neighbours} dashed />\n ))}\n </svg>\n\n {layout.nodes.map((placed) => {\n const node = nodeOf(placed);\n const isFocused = placed.id === focusId;\n const isVisited = visitedIds.has(placed.id);\n const isTabStop = placed.id === tabStopId;\n const distance = neighbours?.get(placed.id) ?? null;\n const dimmed = neighbours !== null && distance === null;\n\n return (\n <div\n key={placed.id}\n ref={bindNodeMeasure(placed.id)}\n data-explorer-node={placed.id}\n data-visited={isVisited || undefined}\n role=\"treeitem\"\n aria-label={node.label}\n aria-current={isFocused ? \"location\" : undefined}\n tabIndex={isTabStop ? 0 : -1}\n onFocus={() => setInternalTabStop(placed.id)}\n onKeyDown={(event) => onKeyDown(event, placed.id)}\n onMouseEnter={() => setHoveredId(placed.id)}\n onMouseLeave={() => setHoveredId((current) => (current === placed.id ? null : current))}\n className={cn(\n \"absolute overflow-visible rounded-lg border bg-surface-raised outline-none\",\n \"transition-[var(--tx-colors),box-shadow,opacity] duration-(--dur-fast) ease-snappy\",\n \"focus-visible:ring-2 focus-visible:ring-accent-border\",\n isFocused ? \"border-accent-border elevate-md ring-2 ring-accent-border/40\" : \"border-border-subtle elevate-sm\",\n dimmed && \"opacity-40\",\n )}\n style={{ left: placed.x, top: placed.y, width: placed.width, minHeight: placed.height }}\n >\n {body(placed, { isTabStop, isFocused, isVisited, distance })}\n </div>\n );\n })}\n </div>\n </div>\n\n {/* DX-3404: the automatic frame-fit clamped to `minReadableScale` and\n `frameBox` still extends past the viewport on these sides — a\n subtle fade cueing that the rest is reached by panning, not that\n the drawing ends here. CSS-only, `aria-hidden` (the \"you are here\"\n semantics live on the focused node itself, `role=\"treeitem\"`\n `aria-current`, not on this purely visual cue). */}\n {(camera.frameOverflow.left || camera.frameOverflow.right || camera.frameOverflow.top || camera.frameOverflow.bottom) && (\n <div aria-hidden=\"true\" className=\"pointer-events-none absolute inset-0\">\n {camera.frameOverflow.left && (\n <div\n data-frame-edge-cue=\"left\"\n className=\"absolute inset-y-0 left-0 w-8 bg-gradient-to-r from-canvas-subtle to-transparent\"\n />\n )}\n {camera.frameOverflow.right && (\n <div\n data-frame-edge-cue=\"right\"\n className=\"absolute inset-y-0 right-0 w-8 bg-gradient-to-l from-canvas-subtle to-transparent\"\n />\n )}\n {camera.frameOverflow.top && (\n <div\n data-frame-edge-cue=\"top\"\n className=\"absolute inset-x-0 top-0 h-8 bg-gradient-to-b from-canvas-subtle to-transparent\"\n />\n )}\n {camera.frameOverflow.bottom && (\n <div\n data-frame-edge-cue=\"bottom\"\n className=\"absolute inset-x-0 bottom-0 h-8 bg-gradient-to-t from-canvas-subtle to-transparent\"\n />\n )}\n </div>\n )}\n\n {showToolbar && !disabled && (\n <CameraToolbar\n onZoomIn={camera.zoomIn}\n onZoomOut={camera.zoomOut}\n onFitAll={camera.fitAll}\n onReset={() => camera.flyTo(focusId ?? tabStopId ?? defaultTabStopId ?? \"\")}\n />\n )}\n\n <p id={statusId} role=\"status\" aria-live=\"polite\" className=\"sr-only\">\n {strings.showing(layout.nodes.length, fmt(layout.nodes.length), label)}\n </p>\n </div>\n );\n}\n\nfunction EdgeLine({\n edge,\n neighbours,\n dashed,\n}: {\n edge: CanvasPlacedEdge;\n neighbours: Map<string, number> | null;\n dashed?: boolean;\n}) {\n const highlighted = neighbours !== null && neighbours.has(edge.from) && neighbours.has(edge.to);\n return (\n <path\n d={edgePath(edge)}\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={neighbours ? (highlighted ? 2 : 1) : dashed ? 1 : 1.5}\n strokeDasharray={dashed ? \"4 4\" : undefined}\n opacity={dashed ? (neighbours ? (highlighted ? 0.8 : 0.25) : 0.5) : neighbours ? (highlighted ? 1 : 0.35) : 1}\n />\n );\n}\n\n/**\n * The on-screen camera toolbar — zoom in, zoom out, fit all, reset to focus.\n * Real buttons, so every one is a keyboard equivalent for free; `+`/`-`/`0`/\n * `Home` on the canvas itself are the direct shortcuts (`onKeyDown` above).\n * The caller (`GraphExplorerSurface`) only ever mounts this when the surface\n * is NOT disabled — a disabled surface hides the toolbar entirely rather\n * than showing greyed-out buttons for a camera that already ignores input.\n */\nfunction CameraToolbar({\n onZoomIn,\n onZoomOut,\n onFitAll,\n onReset,\n}: {\n onZoomIn: () => void;\n onZoomOut: () => void;\n onFitAll: () => void;\n onReset: () => void;\n}) {\n const strings = useUiStrings().graphExplorer;\n return (\n <div className=\"absolute right-2 bottom-2 flex items-center gap-1 rounded-lg border border-border bg-surface/95 p-1 shadow-sm backdrop-blur-sm\">\n <IconButton icon={<Icon name=\"minus\" size=\"sm\" />} label={strings.zoomOut} size=\"sm\" onClick={onZoomOut} />\n <IconButton icon={<Icon name=\"plus\" size=\"sm\" />} label={strings.zoomIn} size=\"sm\" onClick={onZoomIn} />\n <IconButton icon={<Icon name=\"maximize-2\" size=\"sm\" />} label={strings.fitAll} size=\"sm\" onClick={onFitAll} />\n <IconButton icon={<Icon name=\"crosshair\" size=\"sm\" />} label={strings.resetToFocus} size=\"sm\" onClick={onReset} />\n </div>\n );\n}\n\nexport function GraphExplorer<Extra = unknown>({\n tree,\n crossLinks = [],\n label,\n renderNode,\n variant = \"explorer\",\n focusId: controlledFocusId,\n defaultFocusId = null,\n onFocusIdChange,\n visitedIds,\n onNodeClick,\n onExpand,\n nodeWidth,\n nodeHeight,\n height = DEFAULT_HEIGHT,\n minReadableScale,\n disabled,\n className,\n}: GraphExplorerProps<Extra>) {\n const strings = useUiStrings().graphExplorer;\n const [uncontrolledFocusId, setUncontrolledFocusId] = useState<string | null>(defaultFocusId);\n const focusId = controlledFocusId !== undefined ? controlledFocusId : uncontrolledFocusId;\n const requestFocus = useCallback(\n (id: string) => {\n if (controlledFocusId === undefined) setUncontrolledFocusId(id);\n onFocusIdChange?.(id);\n },\n [controlledFocusId, onFocusIdChange],\n );\n\n const visited = useMemo(() => toVisitedSet(visitedIds), [visitedIds]);\n\n /* A different tree resets the camera to fit it — same \"new data resets the\n view\" rule `NodeCanvas` applies to its own scope, keyed on the arrays'\n identity for the same reason (see `NodeCanvas.tsx`'s own comment on this). */\n const resetKey = tree.nodes;\n\n const [expanded, setExpanded] = useState(false);\n const expand = useCallback(() => {\n if (onExpand) onExpand();\n else setExpanded(true);\n }, [onExpand]);\n\n if (variant === \"explorer\") {\n return (\n <div className={cn(\"relative\", className)}>\n <GraphExplorerSurface\n tree={tree}\n crossLinks={crossLinks}\n label={label}\n renderNode={renderNode}\n focusId={focusId}\n onFocusRequest={requestFocus}\n visitedIds={visited}\n onNodeClick={onNodeClick}\n nodeWidth={nodeWidth}\n nodeHeight={nodeHeight}\n height={height}\n minReadableScale={minReadableScale}\n disabled={disabled}\n resetKey={resetKey}\n showToolbar\n />\n </div>\n );\n }\n\n /* --- minimap: a compact strip around `focusId`, with an expand affordance ---\n\n `neighbourhoodTree` returns `null` whenever there is no `focusId` yet (the\n ordinary uncontrolled-mount case — `focusId` defaults to `null`) or the\n given `focusId` names a node not present in `tree` (stale id, data still\n loading). The fallback below must still hand `layoutExplorerTree` a\n WELL-FORMED tree — in particular a node whose `parentId` really is `null`\n — because `tree.nodes[0]` is not guaranteed to BE a root: for a tree\n whose nodes are not root-first, seeding a single-node fallback with that\n node's own (now-dangling, since nothing else is kept) `parentId` throws\n inside `layoutExplorerTree` (`\"names parent ... which is not in this\n tree\"`) instead of rendering a placeholder. Preferring an actual root\n when one exists, and force-clearing `parentId` either way, keeps this\n fallback exactly as inert as `neighbourhoodTree`'s own re-rooting already\n guarantees for every OTHER path through this component. */\n /* A plain expression, NOT a `useMemo` — this sits after the `explorer`\n branch's early `return` above, and a hook here would be called\n conditionally on `variant`, breaking the Rules of Hooks the moment a\n consumer's `variant` prop ever changed between renders of the same\n instance. `GraphExplorerSurface` below already memoizes the expensive\n step (`layoutExplorerTree`) keyed off its own `tree` prop identity, so\n recomputing this cheap lookup on every render costs nothing real. */\n const neighbourhoodFound = focusId ? neighbourhoodTree(tree, focusId) : null;\n const minimapFallbackRoot = tree.nodes.find((node) => node.parentId === null) ?? tree.nodes[0];\n const minimapTree: ExplorerTree<Extra> =\n neighbourhoodFound ?? { nodes: minimapFallbackRoot ? [{ ...minimapFallbackRoot, parentId: null }] : [] };\n\n return (\n <div className={cn(\"relative\", className)}>\n <GraphExplorerSurface\n tree={minimapTree}\n crossLinks={crossLinks}\n label={strings.minimap(label)}\n focusId={focusId}\n onFocusRequest={requestFocus}\n visitedIds={visited}\n onNodeClick={onNodeClick}\n renderNode={renderNode}\n nodeWidth={nodeWidth}\n nodeHeight={nodeHeight}\n height={MINIMAP_HEIGHT}\n minReadableScale={minReadableScale}\n disabled={disabled}\n resetKey={focusId}\n framePadding={MINIMAP_FRAME_PADDING}\n />\n <div className=\"absolute top-2 right-2\">\n <IconButton icon={<Icon name=\"maximize-2\" size=\"sm\" />} label={strings.expand} size=\"sm\" onClick={expand} />\n </div>\n\n {!onExpand && (\n <Dialog open={expanded} onOpenChange={setExpanded} title={label} size=\"xl\">\n <GraphExplorer\n tree={tree}\n crossLinks={crossLinks}\n label={label}\n renderNode={renderNode}\n variant=\"explorer\"\n focusId={focusId}\n onFocusIdChange={requestFocus}\n visitedIds={visited}\n onNodeClick={onNodeClick}\n nodeWidth={nodeWidth}\n nodeHeight={nodeHeight}\n height=\"70vh\"\n minReadableScale={minReadableScale}\n />\n </Dialog>\n )}\n </div>\n );\n}\n"],"names":["DEFAULT_HEIGHT","MINIMAP_HEIGHT","MINIMAP_FRAME_PADDING","HOVER_HOPS","MIN_READABLE_TITLE_PX","DEFAULT_NODE_TITLE_PX","MIN_READABLE_TITLE_SCALE","toVisitedSet","visitedIds","DefaultNodeBody","label","jsx","GraphExplorerSurface","tree","crossLinks","renderNode","focusId","onFocusRequest","onNodeClick","nodeWidth","nodeHeight","height","disabled","resetKey","framePadding","minReadableScale","showToolbar","className","strings","useUiStrings","fmt","useNumberFormat","statusId","useId","hoveredId","setHoveredId","useState","measuredHeights","setMeasuredHeights","nodeObservers","useRef","nodeMeasureBindings","bindNodeMeasure","useCallback","id","cached","el","existing","observer","entries","entry","measured","current","useEffect","observers","sizedTree","useMemo","node","base","LAYOUT_DEFAULTS","layout","layoutExplorerTree","byId","n","boxOf","depthOf","parentOf","cache","depth","parentId","result","frameBox","frameBoxFor","focusBox","camera","useCamera","target","internalTabStop","setInternalTabStop","defaultTabStopId","roots","a","b","tabStopId","activate","placed","rootRef","focusNode","allEdges","siblingOf","step","rank","rankMates","index","predecessorOf","e","successorOf","onKeyDown","event","referenceId","neighbours","neighbourhood","nodeOf","body","context","jsxs","cn","edge","EdgeLine","isFocused","isVisited","isTabStop","distance","dimmed","CameraToolbar","dashed","highlighted","edgePath","onZoomIn","onZoomOut","onFitAll","onReset","IconButton","Icon","GraphExplorer","variant","controlledFocusId","defaultFocusId","onFocusIdChange","onExpand","uncontrolledFocusId","setUncontrolledFocusId","requestFocus","visited","expanded","setExpanded","expand","neighbourhoodFound","neighbourhoodTree","minimapFallbackRoot","minimapTree","Dialog"],"mappings":"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"}
@@ -0,0 +1,102 @@
1
+ const f = {
2
+ /* Below this a graph of any real size is an unreadable smear of lines.
3
+ Above the max, a single node fills more of the viewport than a "you are
4
+ here" highlight needs. Both are soft limits a caller can widen. */
5
+ minScale: 0.15,
6
+ maxScale: 3,
7
+ /* `fitAll` never zooms IN past 100% just because the graph is small — a
8
+ three-node tree filling the screen at 240% reads as broken, not helpful. */
9
+ fitMaxScale: 1,
10
+ /* Clear space around the drawing that `fitAll` leaves on every side, so the
11
+ outermost nodes are not pressed against the viewport's edge. */
12
+ fitPadding: 64
13
+ };
14
+ function y(t, n = {}) {
15
+ const i = n.minScale ?? f.minScale, h = n.maxScale ?? f.maxScale;
16
+ return Math.min(Math.max(t, i), h);
17
+ }
18
+ function r(t, n) {
19
+ return {
20
+ x: (n.x - t.x) / t.scale,
21
+ y: (n.y - t.y) / t.scale
22
+ };
23
+ }
24
+ function o(t, n) {
25
+ return {
26
+ x: t.x + n.x * t.scale,
27
+ y: t.y + n.y * t.scale
28
+ };
29
+ }
30
+ function M(t, n, i, h = {}) {
31
+ const c = y(t.scale * i, h), e = r(t, n);
32
+ return {
33
+ scale: c,
34
+ x: n.x - e.x * c,
35
+ y: n.y - e.y * c
36
+ };
37
+ }
38
+ function s(t, n, i) {
39
+ const h = "width" in t ? { x: t.x + t.width / 2, y: t.y + t.height / 2 } : t;
40
+ return {
41
+ scale: i,
42
+ x: n.width / 2 - h.x * i,
43
+ y: n.height / 2 - h.y * i
44
+ };
45
+ }
46
+ function w(t) {
47
+ if (t.length === 0) return null;
48
+ let n = 1 / 0, i = 1 / 0, h = -1 / 0, c = -1 / 0;
49
+ for (const e of t)
50
+ n = Math.min(n, e.x), i = Math.min(i, e.y), h = Math.max(h, e.x + e.width), c = Math.max(c, e.y + e.height);
51
+ return { x: n, y: i, width: h - n, height: c - i };
52
+ }
53
+ function g(t, n, i = {}) {
54
+ const h = i.padding ?? f.fitPadding, c = i.maxScale ?? f.fitMaxScale, e = i.minScale ?? f.minScale, a = n.width - h * 2, l = n.height - h * 2;
55
+ if (t.width <= 0 || t.height <= 0 || a <= 0 || l <= 0)
56
+ return s(t, n, c);
57
+ const d = y(Math.min(a / t.width, l / t.height), {
58
+ minScale: e,
59
+ maxScale: c
60
+ });
61
+ return s(t, n, d);
62
+ }
63
+ function O(t, n, i = {}) {
64
+ if (t.width <= 0 || t.height <= 0 || n.width <= 0)
65
+ return { scale: y(1, i), x: 0, y: 0 };
66
+ const h = y(n.width / t.width, i);
67
+ return { scale: h, x: (n.width - t.width * h) / 2, y: 0 };
68
+ }
69
+ const x = 0.5;
70
+ function u(t, n, i) {
71
+ const h = o(i, { x: t.x, y: t.y }), c = o(i, { x: t.x + t.width, y: t.y + t.height });
72
+ return {
73
+ left: h.x < -x,
74
+ right: c.x > n.width + x,
75
+ top: h.y < -x,
76
+ bottom: c.y > n.height + x
77
+ };
78
+ }
79
+ function I(t, n, i = {}) {
80
+ const { minReadableScale: h, focusBox: c = t, ...e } = i, a = g(t, n, e);
81
+ if (h === void 0 || a.scale >= h)
82
+ return { camera: a, overflow: u(t, n, a) };
83
+ const l = Math.max(h, f.minScale), d = c.x + c.width / 2, S = t.y + t.height / 2, m = {
84
+ scale: l,
85
+ x: n.width / 2 - d * l,
86
+ y: n.height / 2 - S * l
87
+ };
88
+ return { camera: m, overflow: u(t, n, m) };
89
+ }
90
+ export {
91
+ f as CAMERA_DEFAULTS,
92
+ s as centerOn,
93
+ y as clampScale,
94
+ g as fitBox,
95
+ I as fitBoxWithFloor,
96
+ O as fitWidth,
97
+ r as toContentPoint,
98
+ o as toScreenPoint,
99
+ w as unionBox,
100
+ M as zoomAtPoint
101
+ };
102
+ //# sourceMappingURL=camera-math.js.map