@50arms/ui 0.0.0-stage → 35.1.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 +167 -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 +331 -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 +20 -0
  1037. package/dist/types/components/rbac/ApiKeysPanel.d.ts +26 -0
  1038. package/dist/types/components/rbac/ApiKeysTable.d.ts +63 -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 +633 -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,256 @@
1
+ import { isLaneDrop as f } from "./cross-drop.js";
2
+ import { measure as p, resolveTarget as a, sameTarget as c, remainingItems as d, isNoOp as v, containerAt as g } from "./geometry.js";
3
+ function y(h, t) {
4
+ const e = h.getBoundingClientRect();
5
+ return { x: t.x - e.left, y: t.y - e.top };
6
+ }
7
+ const r = {
8
+ phase: "idle",
9
+ id: null,
10
+ from: null,
11
+ over: null,
12
+ mode: null,
13
+ point: null,
14
+ grab: null
15
+ };
16
+ class O {
17
+ state = r;
18
+ listeners = /* @__PURE__ */ new Set();
19
+ items = /* @__PURE__ */ new Map();
20
+ containers = /* @__PURE__ */ new Map();
21
+ groups = /* @__PURE__ */ new Map();
22
+ layout = null;
23
+ callbacks;
24
+ observers = /* @__PURE__ */ new Set();
25
+ constructor(t = {}) {
26
+ this.callbacks = t;
27
+ }
28
+ /**
29
+ * The OWNING consumer's callbacks — the one that renders the board and writes
30
+ * the reorder. Replaced rather than passed per-call because a React consumer
31
+ * re-creates its handlers on every render and the session must not be rebuilt;
32
+ * rebuilding it mid-gesture drops the drag.
33
+ */
34
+ setCallbacks(t) {
35
+ this.callbacks = t;
36
+ }
37
+ /**
38
+ * Register an ADDITIONAL listener. Returns its teardown.
39
+ *
40
+ * `setCallbacks` is a single slot owned by whoever renders the board, so a
41
+ * second interested party — the live-region announcer, an analytics hook, a
42
+ * test — could not be told anything without clobbering it. And `subscribe`
43
+ * is not a substitute: a drop and a cancel both end at the same idle state,
44
+ * so a state subscriber sees ONE identical transition for two outcomes that
45
+ * must be announced differently.
46
+ *
47
+ * That gap was not theoretical. The announcer worked around it by inferring
48
+ * the cause from whichever DOM event was mid-dispatch — about ninety lines of
49
+ * genuinely careful machinery, defeated once by the microtask checkpoint the
50
+ * HTML spec runs BETWEEN listeners of the same event, so that every cancel
51
+ * announced itself as a drop. Nothing that reads the session should have to
52
+ * guess what the session just did.
53
+ */
54
+ addObserver(t) {
55
+ return this.observers.add(t), () => {
56
+ this.observers.delete(t);
57
+ };
58
+ }
59
+ /**
60
+ * Owner first, then observers, in registration order.
61
+ *
62
+ * The owner goes first because it is the one that mutates the list, and an
63
+ * observer that reads the consumer's state — an announcer reporting "3 of 7"
64
+ * — must see the world after the write, not before.
65
+ */
66
+ fan(t, e) {
67
+ const i = this.callbacks[t];
68
+ i?.(e);
69
+ for (const n of this.observers) {
70
+ const o = n[t];
71
+ o?.(e);
72
+ }
73
+ }
74
+ getState = () => this.state;
75
+ subscribe = (t) => (this.listeners.add(t), () => {
76
+ this.listeners.delete(t);
77
+ });
78
+ emit(t) {
79
+ this.state = t;
80
+ for (const e of this.listeners) e();
81
+ }
82
+ /* --- Registration ------------------------------------------------------ */
83
+ registerItem(t) {
84
+ return this.items.set(t.id, t), () => {
85
+ this.items.get(t.id) === t && this.items.delete(t.id);
86
+ };
87
+ }
88
+ /** DX-5522 / DX-5521: a group box's piece, keyed by its piece id (unique in the document; a box drawn as several pieces registers each). */
89
+ registerGroup(t) {
90
+ const e = t.piece;
91
+ return this.groups.set(e, t), () => {
92
+ this.groups.get(e) === t && this.groups.delete(e);
93
+ };
94
+ }
95
+ registerContainer(t) {
96
+ return this.containers.set(t.id, t), () => {
97
+ this.containers.get(t.id) === t && this.containers.delete(t.id);
98
+ };
99
+ }
100
+ /**
101
+ * Document order, used by keyboard container stepping.
102
+ *
103
+ * DX-4590: NOT registration order. A container re-registers whenever its
104
+ * `total`, `offset` or `axis` changes (a delete + re-add, which moves it to the
105
+ * end of the Map), and a lane or toggle that mounts later registers later, so
106
+ * registration order drifts away from the screen and ArrowLeft/Right skip lanes
107
+ * or reach them out of order. Document order is what the user sees.
108
+ */
109
+ containerIds() {
110
+ return [...this.containers.values()].sort((t, e) => {
111
+ const i = t.element.compareDocumentPosition(e.element);
112
+ return i & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : i & Node.DOCUMENT_POSITION_PRECEDING ? 1 : 0;
113
+ }).map((t) => t.id);
114
+ }
115
+ /* --- Layout ------------------------------------------------------------ */
116
+ /**
117
+ * Re-measure. Called at pickup, and by the sensors on scroll, resize and
118
+ * every auto-scroll frame — the three things that move a box while a drag is
119
+ * in flight without the drag having caused it.
120
+ */
121
+ remeasure() {
122
+ return this.layout = p(this.items.values(), this.containers.values(), this.groups.values()), this.layout;
123
+ }
124
+ getLayout() {
125
+ return this.layout;
126
+ }
127
+ /* --- Lifecycle --------------------------------------------------------- */
128
+ start(t) {
129
+ const e = this.items.get(t.id);
130
+ if (!e) return !1;
131
+ const i = { container: e.container, index: e.index }, n = this.remeasure(), o = t.pending || !t.point ? i : a(n, t.point, t.id) ?? i;
132
+ return this.emit({
133
+ phase: t.pending ? "pending" : "dragging",
134
+ id: t.id,
135
+ from: i,
136
+ over: o,
137
+ mode: t.mode,
138
+ point: t.point ?? null,
139
+ /* COMPUTED HERE, NEVER PASSED IN. `grab` is the cursor's offset inside the
140
+ ITEM — that is what makes a floating clone sit under the point the user
141
+ actually pressed. The sensor is attached to the HANDLE and has no other
142
+ element to measure, so a sensor-supplied value is silently the offset
143
+ inside the grip instead: measured at 8.9,13.9 where the item-relative
144
+ answer was 17.0,28.0, putting the clone ~8px left and ~14px above the
145
+ card. The session is the only place that holds the item's registered
146
+ element, so it is the only place that can be right. */
147
+ grab: t.point ? y(e.element, t.point) : null
148
+ }), t.pending || this.fan("onDragStart", { id: t.id, from: i, mode: t.mode }), !0;
149
+ }
150
+ /** Promote a `pending` pointer into a real drag once its constraint is met. */
151
+ activate() {
152
+ const t = this.state;
153
+ if (t.phase !== "pending" || !t.id || !t.from || !t.mode) return;
154
+ const e = this.remeasure(), i = t.point && a(e, t.point, t.id) || t.from;
155
+ this.emit({ ...t, phase: "dragging", over: i }), this.fan("onDragStart", { id: t.id, from: t.from, mode: t.mode }), c(i, t.from) || this.fan("onDragOver", { id: t.id, from: t.from, over: i });
156
+ }
157
+ /** Pointer moved. Cheap when the target has not changed, which is most frames. */
158
+ moveTo(t) {
159
+ const e = this.state;
160
+ if (e.phase === "idle" || !e.id || !e.from) return;
161
+ if (e.phase === "pending") {
162
+ this.emit({ ...e, point: t });
163
+ return;
164
+ }
165
+ const i = this.layout ?? this.remeasure(), n = a(i, t, e.id) ?? e.over, o = !c(n, e.over);
166
+ this.emit({ ...e, point: t, over: n }), o && n && this.fan("onDragOver", { id: e.id, from: e.from, over: n });
167
+ }
168
+ /**
169
+ * Step the insertion point within the current container. The keyboard's
170
+ * along-axis movement.
171
+ *
172
+ * Clamped rather than wrapping: wrapping from the bottom of a list to the top
173
+ * is indistinguishable from a missed keypress when you cannot see the list.
174
+ */
175
+ moveIndex(t) {
176
+ const e = this.state;
177
+ if (e.phase !== "dragging" || !e.id || !e.over || !e.from || f(this.crossDropOf(e.over.container), e.from.container, e.over.container)) return;
178
+ const i = this.layout ?? this.remeasure(), n = d(i, e.over.container, e.id).length, o = Math.min(n, Math.max(0, e.over.index + t));
179
+ if (o === e.over.index) return;
180
+ const s = { container: e.over.container, index: o };
181
+ this.emit({ ...e, over: s }), this.fan("onDragOver", { id: e.id, from: e.from, over: s });
182
+ }
183
+ /**
184
+ * Move to the previous or next container. The keyboard's cross-axis movement.
185
+ *
186
+ * Lands at the index nearest the item's current one rather than at the top,
187
+ * because a card carried sideways across a board should stay roughly where it
188
+ * was vertically — the same thing the pointer does for free.
189
+ */
190
+ moveContainer(t) {
191
+ const e = this.state;
192
+ if (e.phase !== "dragging" || !e.id || !e.over || !e.from) return;
193
+ const i = this.containerIds(), n = i.indexOf(e.over.container);
194
+ if (n < 0) return;
195
+ const o = n + t;
196
+ if (o < 0 || o >= i.length) return;
197
+ const s = i[o], u = this.layout ?? this.remeasure(), l = d(u, s, e.id).length, m = { container: s, index: Math.min(e.over.index, l) };
198
+ this.emit({ ...e, over: m }), this.fan("onDragOver", { id: e.id, from: e.from, over: m });
199
+ }
200
+ /** Release. Emits `onDragEnd` even for a no-op so consumers can announce it. */
201
+ commit() {
202
+ const t = this.state;
203
+ if (t.phase === "idle" || !t.id || !t.from) {
204
+ this.emit(r);
205
+ return;
206
+ }
207
+ if (t.phase === "pending") {
208
+ this.emit(r);
209
+ return;
210
+ }
211
+ const e = t.over ?? t.from, i = {
212
+ id: t.id,
213
+ from: t.from,
214
+ to: e,
215
+ mode: t.mode ?? "pointer",
216
+ moved: !v(t.from, e)
217
+ };
218
+ this.emit(r), this.fan("onDragEnd", i);
219
+ }
220
+ /** Esc, `pointercancel`, or an unmount mid-gesture. Never writes. */
221
+ cancel() {
222
+ const t = this.state;
223
+ this.emit(r), t.phase === "dragging" && t.id && t.from && this.fan("onDragCancel", { id: t.id, from: t.from, mode: t.mode ?? "pointer" });
224
+ }
225
+ /* --- Read helpers used by the view ------------------------------------- */
226
+ /** The container the pointer is over right now, or null. */
227
+ containerAtPoint(t) {
228
+ const e = this.layout;
229
+ return e ? g(e, t)?.id ?? null : null;
230
+ }
231
+ /**
232
+ * Where a drop target sits, as a person is told it: 1-based, in the WHOLE
233
+ * container, with the whole container's length counted with the carried item
234
+ * in it. A container that renders every item is its own whole (the items
235
+ * registered under it); a windowed one says so at registration (`offset`,
236
+ * `total`) and the answer follows. `index` counts the container with the
237
+ * carried item already removed — the engine's one index rule.
238
+ */
239
+ spokenPosition(t, e, i) {
240
+ const n = this.containers.get(t), o = n?.offset ?? 0, s = n?.total === void 0 ? this.slotCount(t) : n.total - (this.items.get(i)?.container === t ? 1 : 0);
241
+ return { position: o + e + 1, total: s + 1 };
242
+ }
243
+ /** What a card carried in from another container means here — see `ContainerRegistration.crossDrop`. */
244
+ crossDropOf(t) {
245
+ return this.containers.get(t)?.crossDrop;
246
+ }
247
+ /** How many items a container holds once the carried one is taken out. */
248
+ slotCount(t) {
249
+ const e = this.layout ?? this.remeasure();
250
+ return d(e, t, this.state.id).length;
251
+ }
252
+ }
253
+ export {
254
+ O as DragSession
255
+ };
256
+ //# sourceMappingURL=session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.js","sources":["../../../src/lib/dnd/session.ts"],"sourcesContent":["import { isLaneDrop } from \"./cross-drop\";\nimport {\n containerAt,\n isNoOp,\n measure,\n remainingItems,\n resolveTarget,\n sameTarget,\n} from \"./geometry\";\nimport type {\n ContainerRegistration,\n CrossDrop,\n DragId,\n DragMode,\n DragSessionCallbacks,\n DragState,\n DropTarget,\n GroupRegistration,\n ItemRegistration,\n LayoutSnapshot,\n Point,\n} from \"./types\";\n\n/**\n * The one state machine. Every input source — pointer, keyboard, and whatever\n * comes later — drives THIS, and nothing downstream knows which one is active\n * beyond reading `state.mode`.\n *\n * WHY ONE SESSION AND NOT TWO IMPLEMENTATIONS. The usual shape is a pointer\n * drag with keyboard support \"added\", which is two codebases computing the same\n * answer and drifting apart on every change — the accessible path is the one\n * nobody is looking at, so it is the one that rots. Here a sensor can only\n * `start`, `moveTo`/`moveIndex`/`moveContainer`, `commit` and `cancel`. If a\n * behaviour is reachable by pointer it is reachable by keyboard by\n * construction, and the audit can assert the two produce identical results.\n *\n * Framework-agnostic on purpose: a plain subscribable store, so `useSyncExternalStore`\n * consumes it and the tests do not need React to exercise the machine.\n */\n\n/** Where inside `element` a client-space point falls. */\nfunction offsetWithin(element: HTMLElement, point: Point): Point {\n const rect = element.getBoundingClientRect();\n return { x: point.x - rect.left, y: point.y - rect.top };\n}\n\nconst IDLE: DragState = {\n phase: \"idle\",\n id: null,\n from: null,\n over: null,\n mode: null,\n point: null,\n grab: null,\n};\n\nexport interface StartArgs {\n id: DragId;\n mode: DragMode;\n /** Pointer position at pickup. Omitted for keyboard sessions. */\n point?: Point;\n /**\n * `true` for a pointer that is down but has not passed its activation\n * constraint yet. The session holds `pending` until the sensor calls\n * `activate()` — see `DragPhase` in `types.ts` for why that gap exists.\n */\n pending?: boolean;\n}\n\nexport class DragSession {\n private state: DragState = IDLE;\n private listeners = new Set<() => void>();\n private items = new Map<DragId, ItemRegistration>();\n private containers = new Map<string, ContainerRegistration>();\n private groups = new Map<string, GroupRegistration>();\n private layout: LayoutSnapshot | null = null;\n private callbacks: DragSessionCallbacks;\n private observers = new Set<DragSessionCallbacks>();\n\n constructor(callbacks: DragSessionCallbacks = {}) {\n this.callbacks = callbacks;\n }\n\n /**\n * The OWNING consumer's callbacks — the one that renders the board and writes\n * the reorder. Replaced rather than passed per-call because a React consumer\n * re-creates its handlers on every render and the session must not be rebuilt;\n * rebuilding it mid-gesture drops the drag.\n */\n setCallbacks(callbacks: DragSessionCallbacks): void {\n this.callbacks = callbacks;\n }\n\n /**\n * Register an ADDITIONAL listener. Returns its teardown.\n *\n * `setCallbacks` is a single slot owned by whoever renders the board, so a\n * second interested party — the live-region announcer, an analytics hook, a\n * test — could not be told anything without clobbering it. And `subscribe`\n * is not a substitute: a drop and a cancel both end at the same idle state,\n * so a state subscriber sees ONE identical transition for two outcomes that\n * must be announced differently.\n *\n * That gap was not theoretical. The announcer worked around it by inferring\n * the cause from whichever DOM event was mid-dispatch — about ninety lines of\n * genuinely careful machinery, defeated once by the microtask checkpoint the\n * HTML spec runs BETWEEN listeners of the same event, so that every cancel\n * announced itself as a drop. Nothing that reads the session should have to\n * guess what the session just did.\n */\n addObserver(callbacks: DragSessionCallbacks): () => void {\n this.observers.add(callbacks);\n return () => {\n this.observers.delete(callbacks);\n };\n }\n\n /**\n * Owner first, then observers, in registration order.\n *\n * The owner goes first because it is the one that mutates the list, and an\n * observer that reads the consumer's state — an announcer reporting \"3 of 7\"\n * — must see the world after the write, not before.\n */\n private fan<K extends keyof DragSessionCallbacks>(\n name: K,\n event: Parameters<NonNullable<DragSessionCallbacks[K]>>[0],\n ): void {\n const owner = this.callbacks[name] as ((e: unknown) => void) | undefined;\n owner?.(event);\n for (const o of this.observers) {\n const fn = o[name] as ((e: unknown) => void) | undefined;\n fn?.(event);\n }\n }\n\n getState = (): DragState => this.state;\n\n subscribe = (fn: () => void): (() => void) => {\n this.listeners.add(fn);\n return () => {\n this.listeners.delete(fn);\n };\n };\n\n private emit(next: DragState): void {\n this.state = next;\n for (const fn of this.listeners) fn();\n }\n\n /* --- Registration ------------------------------------------------------ */\n\n registerItem(reg: ItemRegistration): () => void {\n this.items.set(reg.id, reg);\n return () => {\n /* Only remove the registration still standing. A list that re-orders\n unmounts and remounts rows in an order React does not promise, so a\n stale cleanup can otherwise delete the registration its successor has\n already installed — the row then exists on screen and is invisible to\n every hit test. */\n if (this.items.get(reg.id) === reg) this.items.delete(reg.id);\n };\n }\n\n /** DX-5522 / DX-5521: a group box's piece, keyed by its piece id (unique in the document; a box drawn as several pieces registers each). */\n registerGroup(reg: GroupRegistration): () => void {\n const key = reg.piece;\n this.groups.set(key, reg);\n return () => {\n if (this.groups.get(key) === reg) this.groups.delete(key);\n };\n }\n\n registerContainer(reg: ContainerRegistration): () => void {\n this.containers.set(reg.id, reg);\n return () => {\n if (this.containers.get(reg.id) === reg) this.containers.delete(reg.id);\n };\n }\n\n /**\n * Document order, used by keyboard container stepping.\n *\n * DX-4590: NOT registration order. A container re-registers whenever its\n * `total`, `offset` or `axis` changes (a delete + re-add, which moves it to the\n * end of the Map), and a lane or toggle that mounts later registers later, so\n * registration order drifts away from the screen and ArrowLeft/Right skip lanes\n * or reach them out of order. Document order is what the user sees.\n */\n containerIds(): string[] {\n return [...this.containers.values()]\n .sort((a, b) => {\n const rel = a.element.compareDocumentPosition(b.element);\n if (rel & Node.DOCUMENT_POSITION_FOLLOWING) return -1;\n if (rel & Node.DOCUMENT_POSITION_PRECEDING) return 1;\n return 0;\n })\n .map((reg) => reg.id);\n }\n\n /* --- Layout ------------------------------------------------------------ */\n\n /**\n * Re-measure. Called at pickup, and by the sensors on scroll, resize and\n * every auto-scroll frame — the three things that move a box while a drag is\n * in flight without the drag having caused it.\n */\n remeasure(): LayoutSnapshot {\n this.layout = measure(this.items.values(), this.containers.values(), this.groups.values());\n return this.layout;\n }\n\n getLayout(): LayoutSnapshot | null {\n return this.layout;\n }\n\n /* --- Lifecycle --------------------------------------------------------- */\n\n start(args: StartArgs): boolean {\n const reg = this.items.get(args.id);\n if (!reg) return false;\n const from: DropTarget = { container: reg.container, index: reg.index };\n const layout = this.remeasure();\n /* `over` starts at the item's own home so the very first move has something\n to compare against and a release with no movement is provably a no-op\n rather than an accident of null-handling.\n\n NO POINT MEANS NO HIT TEST. A keyboard session supplies no pointer, and\n coalescing that to {0, 0} hit-tests the viewport ORIGIN: if any\n container's box contains it, the pickup begins at that container's end\n index rather than the card's own place, and the first arrow key moves a\n card the user only picked up to look at. It went unnoticed here because\n the demo board's columns start ~200px in, and in the unit fixture the\n first card sits at index 0 where the wrong answer and the right one\n coincide. A coalesced default at read time is exactly what this project\n bans — the honest answer with no pointer is the item's home. */\n const over: DropTarget = args.pending || !args.point\n ? from\n : (resolveTarget(layout, args.point, args.id) ?? from);\n this.emit({\n phase: args.pending ? \"pending\" : \"dragging\",\n id: args.id,\n from,\n over,\n mode: args.mode,\n point: args.point ?? null,\n /* COMPUTED HERE, NEVER PASSED IN. `grab` is the cursor's offset inside the\n ITEM — that is what makes a floating clone sit under the point the user\n actually pressed. The sensor is attached to the HANDLE and has no other\n element to measure, so a sensor-supplied value is silently the offset\n inside the grip instead: measured at 8.9,13.9 where the item-relative\n answer was 17.0,28.0, putting the clone ~8px left and ~14px above the\n card. The session is the only place that holds the item's registered\n element, so it is the only place that can be right. */\n grab: args.point ? offsetWithin(reg.element, args.point) : null,\n });\n if (!args.pending) this.fan(\"onDragStart\", { id: args.id, from, mode: args.mode });\n return true;\n }\n\n /** Promote a `pending` pointer into a real drag once its constraint is met. */\n activate(): void {\n const s = this.state;\n if (s.phase !== \"pending\" || !s.id || !s.from || !s.mode) return;\n const layout = this.remeasure();\n const over = (s.point && resolveTarget(layout, s.point, s.id)) || s.from;\n this.emit({ ...s, phase: \"dragging\", over });\n this.fan(\"onDragStart\", { id: s.id, from: s.from, mode: s.mode });\n if (!sameTarget(over, s.from)) {\n this.fan(\"onDragOver\", { id: s.id, from: s.from, over });\n }\n }\n\n /** Pointer moved. Cheap when the target has not changed, which is most frames. */\n moveTo(point: Point): void {\n const s = this.state;\n if (s.phase === \"idle\" || !s.id || !s.from) return;\n if (s.phase === \"pending\") {\n this.emit({ ...s, point });\n return;\n }\n const layout = this.layout ?? this.remeasure();\n /* `?? s.over` IS NOW ONLY THE EMPTY-BOARD GUARD, and it is worth saying so\n because it used to be the mechanism. `resolveTarget` answers with the\n NEAREST container when the pointer is inside none of them, so a cursor in\n a gutter or on a lane header resolves to the lane it is over rather than\n to the last one it crossed — see that function's header for the drop it\n used to send into the wrong lane. Null now means a board with no\n registered containers at all, where keeping the last target is the only\n thing left to do. */\n const next = resolveTarget(layout, point, s.id) ?? s.over;\n const changed = !sameTarget(next, s.over);\n this.emit({ ...s, point, over: next });\n if (changed && next) this.fan(\"onDragOver\", { id: s.id, from: s.from, over: next });\n }\n\n /**\n * Step the insertion point within the current container. The keyboard's\n * along-axis movement.\n *\n * Clamped rather than wrapping: wrapping from the bottom of a list to the top\n * is indistinguishable from a missed keypress when you cannot see the list.\n */\n moveIndex(delta: number): void {\n const s = this.state;\n if (s.phase !== \"dragging\" || !s.id || !s.over || !s.from) return;\n /* DX-4583: a container that takes the card as a whole has no position to\n step through, so an arrow along its axis is not a move: nothing changes\n and nothing is announced again. */\n if (isLaneDrop(this.crossDropOf(s.over.container), s.from.container, s.over.container)) return;\n const layout = this.layout ?? this.remeasure();\n const max = remainingItems(layout, s.over.container, s.id).length;\n const index = Math.min(max, Math.max(0, s.over.index + delta));\n if (index === s.over.index) return;\n const over = { container: s.over.container, index };\n this.emit({ ...s, over });\n this.fan(\"onDragOver\", { id: s.id, from: s.from, over });\n }\n\n /**\n * Move to the previous or next container. The keyboard's cross-axis movement.\n *\n * Lands at the index nearest the item's current one rather than at the top,\n * because a card carried sideways across a board should stay roughly where it\n * was vertically — the same thing the pointer does for free.\n */\n moveContainer(delta: number): void {\n const s = this.state;\n if (s.phase !== \"dragging\" || !s.id || !s.over || !s.from) return;\n const ids = this.containerIds();\n const at = ids.indexOf(s.over.container);\n if (at < 0) return;\n const nextAt = at + delta;\n if (nextAt < 0 || nextAt >= ids.length) return;\n const container = ids[nextAt];\n const layout = this.layout ?? this.remeasure();\n const max = remainingItems(layout, container, s.id).length;\n const over = { container, index: Math.min(s.over.index, max) };\n this.emit({ ...s, over });\n this.fan(\"onDragOver\", { id: s.id, from: s.from, over });\n }\n\n /** Release. Emits `onDragEnd` even for a no-op so consumers can announce it. */\n commit(): void {\n const s = this.state;\n if (s.phase === \"idle\" || !s.id || !s.from) {\n this.emit(IDLE);\n return;\n }\n /* A `pending` pointer that never activated is a click, not a drag. It\n must not commit — otherwise every tap on a card reorders the list by\n zero and writes anyway. */\n if (s.phase === \"pending\") {\n this.emit(IDLE);\n return;\n }\n const to = s.over ?? s.from;\n const event = {\n id: s.id,\n from: s.from,\n to,\n mode: s.mode ?? \"pointer\",\n moved: !isNoOp(s.from, to),\n };\n this.emit(IDLE);\n this.fan(\"onDragEnd\", event);\n }\n\n /** Esc, `pointercancel`, or an unmount mid-gesture. Never writes. */\n cancel(): void {\n const s = this.state;\n this.emit(IDLE);\n if (s.phase === \"dragging\" && s.id && s.from) {\n this.fan(\"onDragCancel\", { id: s.id, from: s.from, mode: s.mode ?? \"pointer\" });\n }\n }\n\n /* --- Read helpers used by the view ------------------------------------- */\n\n /** The container the pointer is over right now, or null. */\n containerAtPoint(point: Point): string | null {\n const layout = this.layout;\n if (!layout) return null;\n return containerAt(layout, point)?.id ?? null;\n }\n\n /**\n * Where a drop target sits, as a person is told it: 1-based, in the WHOLE\n * container, with the whole container's length counted with the carried item\n * in it. A container that renders every item is its own whole (the items\n * registered under it); a windowed one says so at registration (`offset`,\n * `total`) and the answer follows. `index` counts the container with the\n * carried item already removed — the engine's one index rule.\n */\n spokenPosition(container: string, index: number, carried: DragId): { position: number; total: number } {\n const reg = this.containers.get(container);\n const offset = reg?.offset ?? 0;\n const others =\n reg?.total === undefined\n ? this.slotCount(container)\n : reg.total - (this.items.get(carried)?.container === container ? 1 : 0);\n return { position: offset + index + 1, total: others + 1 };\n }\n\n /** What a card carried in from another container means here — see `ContainerRegistration.crossDrop`. */\n crossDropOf(container: string): CrossDrop | undefined {\n return this.containers.get(container)?.crossDrop;\n }\n\n /** How many items a container holds once the carried one is taken out. */\n slotCount(container: string): number {\n const layout = this.layout ?? this.remeasure();\n return remainingItems(layout, container, this.state.id).length;\n }\n}\n"],"names":["offsetWithin","element","point","rect","IDLE","DragSession","callbacks","name","event","owner","o","fn","next","reg","key","a","b","rel","measure","args","from","layout","over","resolveTarget","s","sameTarget","changed","delta","isLaneDrop","max","remainingItems","index","ids","at","nextAt","container","to","isNoOp","containerAt","carried","offset","others"],"mappings":"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"}
@@ -0,0 +1,90 @@
1
+ import { createContext as R, useRef as v, useEffect as l, useContext as S, useSyncExternalStore as D, useState as d } from "react";
2
+ import { DragSession as $ } from "./session.js";
3
+ import { attachSessionWindowListeners as G, attachPointerSensor as P } from "./sensors/pointer.js";
4
+ import { attachKeyboardSensor as I } from "./sensors/keyboard.js";
5
+ const p = R(null), B = p.Provider;
6
+ function O(e) {
7
+ const r = S(p);
8
+ if (!r)
9
+ throw new Error(`<${e}> must be rendered inside a <DragDrop>.`);
10
+ return r;
11
+ }
12
+ function V(e) {
13
+ const r = v(null);
14
+ r.current ??= new $(e);
15
+ const t = r.current;
16
+ return t.setCallbacks(e), l(() => G(t), [t]), t;
17
+ }
18
+ function b(e) {
19
+ return D(e.subscribe, e.getState, e.getState);
20
+ }
21
+ const K = () => () => {
22
+ };
23
+ function W() {
24
+ const e = S(p);
25
+ return D(
26
+ e ? e.subscribe : K,
27
+ () => e?.getState().phase === "dragging",
28
+ () => !1
29
+ );
30
+ }
31
+ function _(e, r) {
32
+ const { id: t, container: n, index: o, axis: i = "y", group: a, piece: u, disabled: g = !1, activation: s } = r, [c, x] = d(null), [f, C] = d(null);
33
+ l(() => {
34
+ if (c) {
35
+ if (a === void 0 != (u === void 0))
36
+ throw new Error(`useDraggable: item ${t} names a group without its piece or a piece without its group; give both or neither.`);
37
+ return e.registerItem(
38
+ a === void 0 ? { id: t, container: n, index: o, element: c } : { id: t, container: n, index: o, element: c, group: a, piece: u }
39
+ );
40
+ }
41
+ }, [e, c, t, n, o, a, u]);
42
+ const E = `${s?.distance ?? ""}/${s?.delay ?? ""}/${s?.tolerance ?? ""}`, m = v(s);
43
+ m.current = s, l(() => {
44
+ if (!f || g) return;
45
+ const w = P(e, f, {
46
+ id: t,
47
+ activation: m.current
48
+ }), y = I(e, f, { id: t, axis: i });
49
+ return () => {
50
+ w(), y();
51
+ };
52
+ }, [e, f, t, i, g, E]);
53
+ const h = b(e);
54
+ return {
55
+ setItemRef: x,
56
+ setHandleRef: C,
57
+ isDragging: h.phase === "dragging" && h.id === t
58
+ };
59
+ }
60
+ function j(e, r) {
61
+ const { id: t, piece: n, container: o } = r, [i, a] = d(null);
62
+ return l(() => {
63
+ if (i)
64
+ return e.registerGroup({ id: t, piece: n, container: o, element: i });
65
+ }, [e, i, t, n, o]), a;
66
+ }
67
+ function k(e, r) {
68
+ const { id: t, axis: n = "y", offset: o, total: i, crossDrop: a } = r, [u, g] = d(null);
69
+ l(() => {
70
+ if (u)
71
+ return e.registerContainer({ id: t, element: u, axis: n, offset: o, total: i, crossDrop: a });
72
+ }, [e, u, t, n, o, i, a]);
73
+ const s = b(e), c = s.phase === "dragging" && s.over?.container === t;
74
+ return {
75
+ setContainerRef: g,
76
+ isOver: c,
77
+ overIndex: c ? s.over?.index ?? null : null
78
+ };
79
+ }
80
+ export {
81
+ B as DragSessionProvider,
82
+ V as useCreateDragSession,
83
+ W as useDragLive,
84
+ O as useDragSession,
85
+ b as useDragState,
86
+ _ as useDraggable,
87
+ k as useDropContainer,
88
+ j as useGroupBox
89
+ };
90
+ //# sourceMappingURL=use-drag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-drag.js","sources":["../../../src/lib/dnd/use-drag.ts"],"sourcesContent":["import {\n createContext,\n useContext,\n useEffect,\n useRef,\n useState,\n useSyncExternalStore,\n} from \"react\";\nimport { DragSession } from \"./session\";\nimport { attachPointerSensor, attachSessionWindowListeners } from \"./sensors/pointer\";\nimport { attachKeyboardSensor } from \"./sensors/keyboard\";\nimport type { PointerActivation } from \"./sensors/pointer\";\nimport type {\n ContainerId,\n CrossDrop,\n DragAxis,\n DragId,\n DragSessionCallbacks,\n DragState,\n GroupId,\n PieceId,\n} from \"./types\";\n\n/* ----------------------------------------------------------------------------\n The React binding.\n\n `useSyncExternalStore` rather than component state, because the session is\n mutated from event handlers that fire outside React's batching — a\n `pointermove` at 120Hz driving `setState` would re-render the whole board on\n every frame regardless of whether anything it renders changed. The store\n emits once per real change, and each subscriber reads only the slice it needs.\n\n `getState` returns the SAME object until something changes, which is what\n makes the default equality check correct. Any selector added later must\n preserve that: returning a fresh object per read turns every emit into a\n re-render of everything.\n\n ELEMENTS ARE HELD IN STATE, NOT IN A REF. An effect that reads `ref.current`\n only runs when its declared dependencies change, so an element swapped\n without a dependency changing is never registered — the row is on screen and\n invisible to every hit test, with nothing to show for it. A ref CALLBACK that\n sets state makes the element itself a dependency, which is the only version\n of this that cannot silently miss.\n -------------------------------------------------------------------------- */\n\nconst DragContext = createContext<DragSession | null>(null);\n\nexport const DragSessionProvider = DragContext.Provider;\n\nexport function useDragSession(component: string): DragSession {\n const session = useContext(DragContext);\n if (!session) {\n throw new Error(`<${component}> must be rendered inside a <DragDrop>.`);\n }\n return session;\n}\n\n/**\n * Create the session a `<DragDrop>` owns.\n *\n * Built ONCE, with its callbacks swapped on every render. Rebuilding it when a\n * consumer's `onDragEnd` identity changes — which it does on every render\n * unless they memoize, and they will not — would destroy the machine mid-gesture\n * and drop the drag.\n */\nexport function useCreateDragSession(callbacks: DragSessionCallbacks): DragSession {\n const ref = useRef<DragSession | null>(null);\n ref.current ??= new DragSession(callbacks);\n const session = ref.current;\n session.setCallbacks(callbacks);\n useEffect(() => attachSessionWindowListeners(session), [session]);\n return session;\n}\n\n/** Subscribe to the session. */\nexport function useDragState(session: DragSession): DragState {\n return useSyncExternalStore(session.subscribe, session.getState, session.getState);\n}\n\nconst NEVER_CHANGES = () => () => {};\n\n/**\n * True while a card is being carried in the enclosing `<DragDrop>`, and false\n * outside one — it never throws, because the callers that ask (a windowed list\n * deciding whether it may drop a page) are ordinary components that are\n * sometimes inside a board and sometimes not.\n *\n * Reads only `phase === \"dragging\"`, so it re-renders its caller when a drag\n * starts or ends and not on every pointer move, which `useDragState` would.\n */\nexport function useDragLive(): boolean {\n const session = useContext(DragContext);\n return useSyncExternalStore(\n session ? session.subscribe : NEVER_CHANGES,\n () => session?.getState().phase === \"dragging\",\n () => false,\n );\n}\n\nexport interface UseDraggableOptions {\n id: DragId;\n container: ContainerId;\n /** Position in the consumer's data. Re-registers when it changes. */\n index: number;\n /**\n * The reorder axis of this item's container. Decides which arrow pair steps\n * within the container and which moves between containers.\n *\n * @default \"y\"\n */\n axis?: DragAxis;\n /** DX-5522: the group box this item is drawn in — see `ItemRegistration.group`. */\n group?: GroupId;\n /** DX-5521: the piece of that box it is drawn in — see `ItemRegistration.piece`. Given exactly when `group` is. */\n piece?: PieceId;\n disabled?: boolean;\n activation?: PointerActivation;\n}\n\nexport interface UseDraggableResult {\n /** The item's own element — this is what gets measured. */\n setItemRef: (el: HTMLElement | null) => void;\n /**\n * The drag handle. Pass the same element as `setItemRef` to make the whole\n * item draggable, or a grip inside it to make only the grip draggable. They\n * are deliberately separate: a card full of buttons must not start a drag\n * from every one of them.\n */\n setHandleRef: (el: HTMLElement | null) => void;\n isDragging: boolean;\n}\n\nexport function useDraggable(\n session: DragSession,\n options: UseDraggableOptions,\n): UseDraggableResult {\n const { id, container, index, axis = \"y\", group, piece, disabled = false, activation } = options;\n const [itemEl, setItemRef] = useState<HTMLElement | null>(null);\n const [handleEl, setHandleRef] = useState<HTMLElement | null>(null);\n\n useEffect(() => {\n if (!itemEl) return;\n if ((group === undefined) !== (piece === undefined)) {\n throw new Error(`useDraggable: item ${id} names a group without its piece or a piece without its group; give both or neither.`);\n }\n return session.registerItem(\n group === undefined ? { id, container, index, element: itemEl } : { id, container, index, element: itemEl, group, piece },\n );\n }, [session, itemEl, id, container, index, group, piece]);\n\n /* `activation` is an options OBJECT, so a consumer writing it inline hands us\n a new identity on every render. Depending on it directly would tear the\n sensor down and rebuild it mid-gesture, dropping the drag — and it would do\n so only for consumers who wrote the idiomatic thing. Depend on the VALUES;\n read the object through a ref at attach time. */\n const activationKey = `${activation?.distance ?? \"\"}/${activation?.delay ?? \"\"}/${activation?.tolerance ?? \"\"}`;\n const activationRef = useRef(activation);\n activationRef.current = activation;\n\n /* BOTH SENSORS, from one hook, always. Attaching only the pointer one and\n leaving the keyboard to the consumer is how a library ships a drag list\n that is inaccessible by default: the keyboard path becomes something each\n consumer has to remember, on a surface where forgetting produces no error\n and no visible symptom on the machine it was written on. The first\n consumer of this hook did have to wire it by hand, and kept a second copy\n of the handle element in state to manage it — the gap announced itself\n immediately. */\n useEffect(() => {\n if (!handleEl || disabled) return;\n const detachPointer = attachPointerSensor(session, handleEl, {\n id,\n activation: activationRef.current,\n });\n const detachKeyboard = attachKeyboardSensor(session, handleEl, { id, axis });\n return () => {\n detachPointer();\n detachKeyboard();\n };\n }, [session, handleEl, id, axis, disabled, activationKey]);\n\n const state = useDragState(session);\n\n return {\n setItemRef,\n setHandleRef,\n isDragging: state.phase === \"dragging\" && state.id === id,\n };\n}\n\n/** DX-5522: register a group box's piece so the engine can measure it. The container is the enclosing one, passed by the caller. */\nexport function useGroupBox(session: DragSession, options: { id: GroupId; piece: PieceId; container: ContainerId }): (el: HTMLElement | null) => void {\n const { id, piece, container } = options;\n const [el, setGroupRef] = useState<HTMLElement | null>(null);\n useEffect(() => {\n if (!el) return;\n return session.registerGroup({ id, piece, container, element: el });\n }, [session, el, id, piece, container]);\n return setGroupRef;\n}\n\nexport interface UseDropContainerOptions {\n id: ContainerId;\n axis?: DragAxis;\n /** See `ContainerRegistration.offset` — a windowed container's first item's place in the whole list. */\n offset?: number;\n /** See `ContainerRegistration.total` — a windowed container's whole length. */\n total?: number;\n /** See `ContainerRegistration.crossDrop`. */\n crossDrop?: CrossDrop;\n}\n\nexport interface UseDropContainerResult {\n setContainerRef: (el: HTMLElement | null) => void;\n /** True while the carried item would land in this container. */\n isOver: boolean;\n /** Insertion index within this container, or null when it is not the target. */\n overIndex: number | null;\n}\n\nexport function useDropContainer(\n session: DragSession,\n options: UseDropContainerOptions,\n): UseDropContainerResult {\n const { id, axis = \"y\", offset, total, crossDrop } = options;\n const [el, setContainerRef] = useState<HTMLElement | null>(null);\n\n useEffect(() => {\n if (!el) return;\n return session.registerContainer({ id, element: el, axis, offset, total, crossDrop });\n }, [session, el, id, axis, offset, total, crossDrop]);\n\n const state = useDragState(session);\n const isOver = state.phase === \"dragging\" && state.over?.container === id;\n\n return {\n setContainerRef,\n isOver,\n overIndex: isOver ? (state.over?.index ?? null) : null,\n };\n}\n"],"names":["DragContext","createContext","DragSessionProvider","useDragSession","component","session","useContext","useCreateDragSession","callbacks","ref","useRef","DragSession","useEffect","attachSessionWindowListeners","useDragState","useSyncExternalStore","NEVER_CHANGES","useDragLive","useDraggable","options","id","container","index","axis","group","piece","disabled","activation","itemEl","setItemRef","useState","handleEl","setHandleRef","activationKey","activationRef","detachPointer","attachPointerSensor","detachKeyboard","attachKeyboardSensor","state","useGroupBox","el","setGroupRef","useDropContainer","offset","total","crossDrop","setContainerRef","isOver"],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ const c = /^(auto|scroll|overlay)$/;
2
+ function s(e, { axes: n = ["y"], mustOverflow: r = !1 } = {}) {
3
+ const t = getComputedStyle(e);
4
+ return n.some((o) => {
5
+ const l = o === "y" ? t.overflowY : t.overflowX;
6
+ return c.test(l) ? r ? o === "y" ? e.scrollHeight > e.clientHeight : e.scrollWidth > e.clientWidth : !0 : !1;
7
+ });
8
+ }
9
+ function u(e, { includeSelf: n, ...r }) {
10
+ for (let t = n ? e : e?.parentElement ?? null; t; t = t.parentElement)
11
+ if (t instanceof HTMLElement && s(t, r)) return t;
12
+ return null;
13
+ }
14
+ export {
15
+ s as isScrollBox,
16
+ u as nearestScrollAncestor
17
+ };
18
+ //# sourceMappingURL=scroll-ancestor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scroll-ancestor.js","sources":["../../../src/lib/dom/scroll-ancestor.ts"],"sourcesContent":["/* ============================================================================\n THE NEAREST BOX THAT SCROLLS — one answer for three callers. DX-4540.\n\n `PagedWindowList` needs the root of its IntersectionObserver, `useFillHeight`\n needs the box it sizes itself against, and drag auto-scroll needs the box\n under the pointer. Each had its own walk up the tree, and the three walks\n disagreed on three things. This is where those disagreements are decided,\n once, instead of by whichever copy a reader happens to find.\n\n WHICH OVERFLOW VALUES COUNT: `auto`, `scroll` and `overlay`. `overlay` is\n the legacy alias Chromium used for `auto` with a floating scrollbar; it is\n accepted everywhere. `useFillHeight` used to leave it out, which changed no\n behaviour in any shipping browser and is not a reason to keep a second list.\n `hidden` and `clip` never count: such a box is a clip, often a content-sized\n one (a rounded card, a `Surface`), and measuring against it hands back its own\n content height.\n\n WHETHER THE ELEMENT ITSELF IS A CANDIDATE (`includeSelf`): a list whose own\n class scrolls IS its scroller; an element sizing itself against its scrollport\n must not pick itself; and the element under a pointer is the first thing\n auto-scroll asks about. So it is the caller's statement, not a default.\n\n WHETHER A BOX MUST ACTUALLY OVERFLOW (`mustOverflow`): auto-scroll only wants\n a box it can move, so a roomy `overflow: auto` column is skipped in favour of\n the page. A box that merely DECLARES scrolling is what the other two want:\n an observer root and a fill-height reference exist whether or not the content\n happens to be tall today.\n\n The answer is `null` when nothing scrolls. What that means (the viewport, the\n document element) is the caller's, because it differs: an IntersectionObserver\n root of `null` is the viewport, and auto-scroll falls back to\n `document.scrollingElement` and checks it too.\n ========================================================================= */\n\nexport type ScrollAxis = \"x\" | \"y\";\n\nexport interface ScrollBoxOptions {\n /** The axes that count; a box scrolling along any of them qualifies. @default [\"y\"] */\n axes?: readonly ScrollAxis[];\n /** Also require the content to overflow the box on that axis, not merely allow scrolling. @default false */\n mustOverflow?: boolean;\n}\n\nexport interface ScrollAncestorOptions extends ScrollBoxOptions {\n /** Whether `from` itself may be the answer. Required: it is a statement about the caller. */\n includeSelf: boolean;\n}\n\nconst SCROLLING_OVERFLOW = /^(auto|scroll|overlay)$/;\n\n/** Does `el` scroll along any of the given axes? */\nexport function isScrollBox(el: HTMLElement, { axes = [\"y\"], mustOverflow = false }: ScrollBoxOptions = {}): boolean {\n const style = getComputedStyle(el);\n return axes.some((axis) => {\n const overflow = axis === \"y\" ? style.overflowY : style.overflowX;\n if (!SCROLLING_OVERFLOW.test(overflow)) return false;\n if (!mustOverflow) return true;\n return axis === \"y\" ? el.scrollHeight > el.clientHeight : el.scrollWidth > el.clientWidth;\n });\n}\n\n/** The nearest box that scrolls, walking up from `from`; null when none does. */\nexport function nearestScrollAncestor(\n from: Element | null,\n { includeSelf, ...box }: ScrollAncestorOptions,\n): HTMLElement | null {\n for (let node = includeSelf ? from : (from?.parentElement ?? null); node; node = node.parentElement) {\n if (node instanceof HTMLElement && isScrollBox(node, box)) return node;\n }\n return null;\n}\n"],"names":["SCROLLING_OVERFLOW","isScrollBox","el","axes","mustOverflow","style","axis","overflow","nearestScrollAncestor","from","includeSelf","box","node"],"mappings":"AAgDA,MAAMA,IAAqB;AAGpB,SAASC,EAAYC,GAAiB,EAAE,MAAAC,IAAO,CAAC,GAAG,GAAG,cAAAC,IAAe,GAAA,IAA4B,IAAa;AACnH,QAAMC,IAAQ,iBAAiBH,CAAE;AACjC,SAAOC,EAAK,KAAK,CAACG,MAAS;AACzB,UAAMC,IAAWD,MAAS,MAAMD,EAAM,YAAYA,EAAM;AACxD,WAAKL,EAAmB,KAAKO,CAAQ,IAChCH,IACEE,MAAS,MAAMJ,EAAG,eAAeA,EAAG,eAAeA,EAAG,cAAcA,EAAG,cADpD,KADqB;AAAA,EAGjD,CAAC;AACH;AAGO,SAASM,EACdC,GACA,EAAE,aAAAC,GAAa,GAAGC,KACE;AACpB,WAASC,IAAOF,IAAcD,IAAQA,GAAM,iBAAiB,MAAOG,GAAMA,IAAOA,EAAK;AACpF,QAAIA,aAAgB,eAAeX,EAAYW,GAAMD,CAAG,EAAG,QAAOC;AAEpE,SAAO;AACT;"}
@@ -0,0 +1,23 @@
1
+ import { numberFormat as n } from "./intl-cache.js";
2
+ function e(t, i) {
3
+ if (!Number.isFinite(t) || t < 0) return "";
4
+ if (t < 1024) return `${n(i, {}).format(t)} B`;
5
+ const o = ["KB", "MB", "GB", "TB"];
6
+ let r = t / 1024, m = 0;
7
+ for (; r >= 1024 && m < o.length - 1; )
8
+ r /= 1024, m += 1;
9
+ const u = r < 10 ? 1 : 0;
10
+ return `${n(i, { minimumFractionDigits: u, maximumFractionDigits: u }).format(r)} ${o[m]}`;
11
+ }
12
+ function c(t, i) {
13
+ return a(t, i);
14
+ }
15
+ function a(t, i) {
16
+ return t == null || !Number.isFinite(t) ? "—" : Math.abs(t) < 999.5 ? n(i, { maximumFractionDigits: 0 }).format(Math.round(t) + 0) : n(i, { notation: "compact", maximumFractionDigits: 1 }).format(t);
17
+ }
18
+ export {
19
+ e as formatBytes,
20
+ a as formatCompactNumber,
21
+ c as formatTokens
22
+ };
23
+ //# sourceMappingURL=format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.js","sources":["../../src/lib/format.ts"],"sourcesContent":["/* ----------------------------------------------------------------------------\n NUMBERS, TURNED INTO THE STRINGS PEOPLE READ.\n\n These lived inside the components that needed them first — `formatBytes` in\n `chat/Attachment.tsx`, `formatTokens` in `chat/ContextMeter.tsx` — which was\n fine right up until somebody outside a component wanted one. The package\n exports a single entry, so importing `formatBytes` into an application's own\n formatting layer dragged React and every component in this library into a\n layer that is deliberately framework-free.\n\n They are here because they are DECISIONS, not utilities: how much precision\n a reader can act on, and where a rounded figure stops telling the truth. Two\n places rendering the same quantity to different precision is the defect this\n file prevents — see each function for the call it makes.\n\n NOTHING IN THIS FILE MAY IMPORT REACT, directly or transitively. It is the\n whole content of the `@50arms/ui/pure` entry; `src/pure.ts` states the\n contract and `pure-entry.test.ts` enforces it against both the source graph\n and the built artifact.\n -------------------------------------------------------------------------- */\n\nimport { numberFormat } from \"./intl-cache\";\n\n/** Binary units, because these are file sizes and every OS reports them this way. */\nexport function formatBytes(bytes: number, locale: string): string {\n if (!Number.isFinite(bytes) || bytes < 0) return \"\";\n if (bytes < 1024) return `${numberFormat(locale, {}).format(bytes)} B`;\n // I18N-ALLOW: international unit symbols (kilo-, mega-, giga-, tera-byte), shown as the standard writes them in every locale\n const units = [\"KB\", \"MB\", \"GB\", \"TB\"];\n let value = bytes / 1024;\n let unit = 0;\n while (value >= 1024 && unit < units.length - 1) {\n value /= 1024;\n unit += 1;\n }\n /* One decimal below 10 and none above: \"1.4 MB\" is useful precision,\n \"847.3 KB\" is noise on a number nobody acts on. */\n const digits = value < 10 ? 1 : 0;\n return `${numberFormat(locale, { minimumFractionDigits: digits, maximumFractionDigits: digits }).format(value)} ${units[unit]}`;\n}\n\n/**\n * 241_600 → \"241.6K\". A thin, token-domain-named wrapper — see\n * `formatCompactNumber` below for the shared algorithm and its own reasoning.\n * Kept as its own function (rather than every call site switching to the\n * generic one directly) because \"tokens\" is a real vocabulary word in this\n * package's chat components, and renaming every call site to the generic name\n * would cost real diff for zero behavioral gain.\n */\nexport function formatTokens(tokens: number, locale: string): string {\n return formatCompactNumber(tokens, locale);\n}\n\n/**\n * A GENERIC large count, abbreviated the way the locale writes it: in en-US\n * `850` → `\"850\"`, `1_100` → `\"1.1K\"`, `3_400_000` → `\"3.4M\"`,\n * `4_400_000_000` → `\"4.4B\"`. `null` / `undefined` / non-finite → `\"—\"`.\n *\n * DX-4740: THE SUFFIXES COME FROM `Intl` (`notation: \"compact\"`), NOT FROM A\n * TABLE HERE. A hand-written T/B/M/k ladder is English: \"B\" for 10^9 reads as\n * \"billón\" (10^12) to an es-AR reader, and every other language has its own\n * words for thousand and million. en-US now writes an uppercase \"K\".\n *\n * One decimal at most, trimmed of a trailing \".0\" (`1_000_000` → `\"1M\"`, not\n * `\"1.0M\"`), and exact below 1,000 — a count small enough to read digit-by-digit\n * gets no abbreviation at all, since \"850\" is not improved by becoming \"0.9K\".\n * `formatTokens` is the token-budget's name for the same thing; this one is for\n * any large count a screen needs to abbreviate — a field tally, a donut's\n * fraction, a record count.\n *\n * NEGATIVE VALUES keep their sign (`-1_100` → `\"-1.1K\"`) rather than being\n * treated as absent — a generic count utility cannot assume its caller's\n * domain never has one.\n */\nexport function formatCompactNumber(value: number | null | undefined, locale: string): string {\n if (value == null || !Number.isFinite(value)) return \"—\";\n /* Below 1,000 (after rounding) the number is written whole. 999.6 rounds UP to 1,000 and so belongs to the compact branch. */\n /* `Math.round(-0.4)` is -0, which prints \"-0\"; adding 0 turns it into 0. */\n if (Math.abs(value) < 999.5) return numberFormat(locale, { maximumFractionDigits: 0 }).format(Math.round(value) + 0);\n return numberFormat(locale, { notation: \"compact\", maximumFractionDigits: 1 }).format(value);\n}\n"],"names":["formatBytes","bytes","locale","numberFormat","units","value","unit","digits","formatTokens","tokens","formatCompactNumber"],"mappings":";AAwBO,SAASA,EAAYC,GAAeC,GAAwB;AACjE,MAAI,CAAC,OAAO,SAASD,CAAK,KAAKA,IAAQ,EAAG,QAAO;AACjD,MAAIA,IAAQ,KAAM,QAAO,GAAGE,EAAaD,GAAQ,CAAA,CAAE,EAAE,OAAOD,CAAK,CAAC;AAElE,QAAMG,IAAQ,CAAC,MAAM,MAAM,MAAM,IAAI;AACrC,MAAIC,IAAQJ,IAAQ,MAChBK,IAAO;AACX,SAAOD,KAAS,QAAQC,IAAOF,EAAM,SAAS;AAC5C,IAAAC,KAAS,MACTC,KAAQ;AAIV,QAAMC,IAASF,IAAQ,KAAK,IAAI;AAChC,SAAO,GAAGF,EAAaD,GAAQ,EAAE,uBAAuBK,GAAQ,uBAAuBA,EAAA,CAAQ,EAAE,OAAOF,CAAK,CAAC,IAAID,EAAME,CAAI,CAAC;AAC/H;AAUO,SAASE,EAAaC,GAAgBP,GAAwB;AACnE,SAAOQ,EAAoBD,GAAQP,CAAM;AAC3C;AAuBO,SAASQ,EAAoBL,GAAkCH,GAAwB;AAC5F,SAAIG,KAAS,QAAQ,CAAC,OAAO,SAASA,CAAK,IAAU,MAGjD,KAAK,IAAIA,CAAK,IAAI,QAAcF,EAAaD,GAAQ,EAAE,uBAAuB,EAAA,CAAG,EAAE,OAAO,KAAK,MAAMG,CAAK,IAAI,CAAC,IAC5GF,EAAaD,GAAQ,EAAE,UAAU,WAAW,uBAAuB,EAAA,CAAG,EAAE,OAAOG,CAAK;AAC7F;"}
@@ -0,0 +1,13 @@
1
+ function u(n, r, c) {
2
+ if (!n.some((e) => r(e))) return [{ label: void 0, items: [...n] }];
3
+ const s = [], t = /* @__PURE__ */ new Map();
4
+ for (const e of n) {
5
+ const o = r(e) || c;
6
+ t.has(o) || (s.push(o), t.set(o, [])), t.get(o).push(e);
7
+ }
8
+ return s.map((e) => ({ label: e, items: t.get(e) }));
9
+ }
10
+ export {
11
+ u as groupInOrder
12
+ };
13
+ //# sourceMappingURL=group-in-order.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"group-in-order.js","sources":["../../src/lib/group-in-order.ts"],"sourcesContent":["/* DX-4963: the one grouping rule for a grid of rows under headings, shared by `ToggleMatrix` and (through `groupByCategory`) the\n permission pickers, so it has exactly one implementation. */\n\nexport interface OrderedSection<T> {\n /** `undefined` when nothing in the set names a group. */\n label: string | undefined;\n items: T[];\n}\n\n/**\n * Buckets items by their group, preserving first-seen order.\n *\n * Grouping is opt-in as a WHOLE, not per item: if not one item names a group this returns one ungrouped section rather than inventing\n * an \"Uncategorised\" heading nobody asked to see. When some items name a group and others do not, the rest go under `otherLabel`,\n * because at that point the absence of a group on a few items is itself information worth a heading.\n */\nexport function groupInOrder<T>(items: readonly T[], groupOf: (item: T) => string | undefined, otherLabel: string): OrderedSection<T>[] {\n if (!items.some((item) => groupOf(item))) return [{ label: undefined, items: [...items] }];\n\n const order: string[] = [];\n const buckets = new Map<string, T[]>();\n for (const item of items) {\n const label = groupOf(item) || otherLabel;\n if (!buckets.has(label)) {\n order.push(label);\n buckets.set(label, []);\n }\n buckets.get(label)!.push(item);\n }\n return order.map((label) => ({ label, items: buckets.get(label)! }));\n}\n"],"names":["groupInOrder","items","groupOf","otherLabel","item","order","buckets","label"],"mappings":"AAgBO,SAASA,EAAgBC,GAAqBC,GAA0CC,GAAyC;AACtI,MAAI,CAACF,EAAM,KAAK,CAACG,MAASF,EAAQE,CAAI,CAAC,UAAU,CAAC,EAAE,OAAO,QAAW,OAAO,CAAC,GAAGH,CAAK,GAAG;AAEzF,QAAMI,IAAkB,CAAA,GAClBC,wBAAc,IAAA;AACpB,aAAWF,KAAQH,GAAO;AACxB,UAAMM,IAAQL,EAAQE,CAAI,KAAKD;AAC/B,IAAKG,EAAQ,IAAIC,CAAK,MACpBF,EAAM,KAAKE,CAAK,GAChBD,EAAQ,IAAIC,GAAO,EAAE,IAEvBD,EAAQ,IAAIC,CAAK,EAAG,KAAKH,CAAI;AAAA,EAC/B;AACA,SAAOC,EAAM,IAAI,CAACE,OAAW,EAAE,OAAAA,GAAO,OAAOD,EAAQ,IAAIC,CAAK,EAAA,EAAK;AACrE;"}
@@ -0,0 +1,11 @@
1
+ import { useContext as o, createContext as n } from "react";
2
+ const r = n(0);
3
+ function c(e) {
4
+ const t = o(r);
5
+ return t !== 0 && t < e;
6
+ }
7
+ export {
8
+ r as HeaderWidthContext,
9
+ c as useHeaderFold
10
+ };
11
+ //# sourceMappingURL=header-fold.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"header-fold.js","sources":["../../src/lib/header-fold.ts"],"sourcesContent":["import { createContext, useContext } from \"react\";\n\n/* ============================================================================\n HEADER FOLD (DX-5319)\n\n A header that runs out of room has two honest options: let its controls be\n squeezed (they shrank to thin lines before this existed) or move the\n least important of them somewhere else. This is the second, and it is a\n WIDTH decision, so it is made from the one number that does not depend on the\n header's contents: the width of the `<header>` itself, which the viewport and\n the sidebar set and a control appearing or vanishing cannot move. A fold\n decided from \"did the contents overflow?\" would flicker, because folding a\n control makes room and room un-folds it; a fold decided from the header's width\n cannot.\n\n `AppShell` measures its header and provides the width here. A control names\n the header width below which it no longer fits (`useHeaderFold(minWidth)`),\n and the SAME call, made again where the replacement lives (the account menu's\n `actions`), agrees with it by construction: one threshold, two subtrees.\n\n Unmeasured (no provider, or the first render before the layout effect has\n read the header) is `0`, which reads as \"not folded\": the full header paints\n first and a fold happens before the browser paints, never the other way\n round.\n ========================================================================= */\n\n/** The measured width of the `AppShell` header in CSS pixels; `0` until measured. */\nexport const HeaderWidthContext = createContext<number>(0);\n\n/**\n * True when the `AppShell` header is narrower than `minWidth` CSS pixels, i.e. the\n * control that asked no longer fits and should live in the account menu instead.\n * Call it from inside the shell's `header` or `sidebarFooter` subtree (a\n * component the consumer renders there), never from the component that renders\n * `<AppShell>` itself: the width is provided by the shell, below it.\n */\nexport function useHeaderFold(minWidth: number): boolean {\n const width = useContext(HeaderWidthContext);\n return width !== 0 && width < minWidth;\n}\n"],"names":["HeaderWidthContext","createContext","useHeaderFold","minWidth","width","useContext"],"mappings":";AA2BO,MAAMA,IAAqBC,EAAsB,CAAC;AASlD,SAASC,EAAcC,GAA2B;AACvD,QAAMC,IAAQC,EAAWL,CAAkB;AAC3C,SAAOI,MAAU,KAAKA,IAAQD;AAChC;"}