@50arms/ui 0.0.0-stage → 35.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1256) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +193 -2
  3. package/dist/components/Accordion.js +68 -0
  4. package/dist/components/Accordion.js.map +1 -0
  5. package/dist/components/AgentWorkingSpinner.js +46 -0
  6. package/dist/components/AgentWorkingSpinner.js.map +1 -0
  7. package/dist/components/AppShell.js +228 -0
  8. package/dist/components/AppShell.js.map +1 -0
  9. package/dist/components/Attention.js +130 -0
  10. package/dist/components/Attention.js.map +1 -0
  11. package/dist/components/Avatar.js +99 -0
  12. package/dist/components/Avatar.js.map +1 -0
  13. package/dist/components/Badge.js +143 -0
  14. package/dist/components/Badge.js.map +1 -0
  15. package/dist/components/Board.js +292 -0
  16. package/dist/components/Board.js.map +1 -0
  17. package/dist/components/Button.js +327 -0
  18. package/dist/components/Button.js.map +1 -0
  19. package/dist/components/Callout.js +106 -0
  20. package/dist/components/Callout.js.map +1 -0
  21. package/dist/components/Card.js +140 -0
  22. package/dist/components/Card.js.map +1 -0
  23. package/dist/components/Choice.js +361 -0
  24. package/dist/components/Choice.js.map +1 -0
  25. package/dist/components/CodeEditor.js +384 -0
  26. package/dist/components/CodeEditor.js.map +1 -0
  27. package/dist/components/ColorPicker.js +174 -0
  28. package/dist/components/ColorPicker.js.map +1 -0
  29. package/dist/components/Combobox.js +212 -0
  30. package/dist/components/Combobox.js.map +1 -0
  31. package/dist/components/CommandPalette.js +163 -0
  32. package/dist/components/CommandPalette.js.map +1 -0
  33. package/dist/components/ConcentricRing.js +60 -0
  34. package/dist/components/ConcentricRing.js.map +1 -0
  35. package/dist/components/ConnectionCard.js +98 -0
  36. package/dist/components/ConnectionCard.js.map +1 -0
  37. package/dist/components/ContextItemRow.js +49 -0
  38. package/dist/components/ContextItemRow.js.map +1 -0
  39. package/dist/components/CopyValue.js +57 -0
  40. package/dist/components/CopyValue.js.map +1 -0
  41. package/dist/components/CountBadge.js +26 -0
  42. package/dist/components/CountBadge.js.map +1 -0
  43. package/dist/components/DateCalendar.js +156 -0
  44. package/dist/components/DateCalendar.js.map +1 -0
  45. package/dist/components/DateField.js +166 -0
  46. package/dist/components/DateField.js.map +1 -0
  47. package/dist/components/DatePicker.js +56 -0
  48. package/dist/components/DatePicker.js.map +1 -0
  49. package/dist/components/DateTimeText.js +19 -0
  50. package/dist/components/DateTimeText.js.map +1 -0
  51. package/dist/components/DescriptionList.js +25 -0
  52. package/dist/components/DescriptionList.js.map +1 -0
  53. package/dist/components/Dialog.js +332 -0
  54. package/dist/components/Dialog.js.map +1 -0
  55. package/dist/components/DragDrop.js +395 -0
  56. package/dist/components/DragDrop.js.map +1 -0
  57. package/dist/components/Drawer.js +100 -0
  58. package/dist/components/Drawer.js.map +1 -0
  59. package/dist/components/EditGutter.js +110 -0
  60. package/dist/components/EditGutter.js.map +1 -0
  61. package/dist/components/EmojiPicker.js +174 -0
  62. package/dist/components/EmojiPicker.js.map +1 -0
  63. package/dist/components/ErrorBoundary.js +47 -0
  64. package/dist/components/ErrorBoundary.js.map +1 -0
  65. package/dist/components/Field.js +115 -0
  66. package/dist/components/Field.js.map +1 -0
  67. package/dist/components/FileUpload.js +128 -0
  68. package/dist/components/FileUpload.js.map +1 -0
  69. package/dist/components/FilterMenu.js +256 -0
  70. package/dist/components/FilterMenu.js.map +1 -0
  71. package/dist/components/GatesSection.js +79 -0
  72. package/dist/components/GatesSection.js.map +1 -0
  73. package/dist/components/Icon.js +50 -0
  74. package/dist/components/Icon.js.map +1 -0
  75. package/dist/components/IconButton.js +59 -0
  76. package/dist/components/IconButton.js.map +1 -0
  77. package/dist/components/IconStack.js +69 -0
  78. package/dist/components/IconStack.js.map +1 -0
  79. package/dist/components/ImageUploadField.js +146 -0
  80. package/dist/components/ImageUploadField.js.map +1 -0
  81. package/dist/components/InlineEdit.js +432 -0
  82. package/dist/components/InlineEdit.js.map +1 -0
  83. package/dist/components/InlineMarkdownEdit.js +184 -0
  84. package/dist/components/InlineMarkdownEdit.js.map +1 -0
  85. package/dist/components/Input.js +156 -0
  86. package/dist/components/Input.js.map +1 -0
  87. package/dist/components/LegalDocument.js +155 -0
  88. package/dist/components/LegalDocument.js.map +1 -0
  89. package/dist/components/LineDiff.js +95 -0
  90. package/dist/components/LineDiff.js.map +1 -0
  91. package/dist/components/ListHeader.js +72 -0
  92. package/dist/components/ListHeader.js.map +1 -0
  93. package/dist/components/Loading.js +111 -0
  94. package/dist/components/Loading.js.map +1 -0
  95. package/dist/components/Markdown.js +28 -0
  96. package/dist/components/Markdown.js.map +1 -0
  97. package/dist/components/MarkdownEditor.js +467 -0
  98. package/dist/components/MarkdownEditor.js.map +1 -0
  99. package/dist/components/Menu.js +185 -0
  100. package/dist/components/Menu.js.map +1 -0
  101. package/dist/components/Navigation.js +87 -0
  102. package/dist/components/Navigation.js.map +1 -0
  103. package/dist/components/NumberInput.js +119 -0
  104. package/dist/components/NumberInput.js.map +1 -0
  105. package/dist/components/OTPInput.js +71 -0
  106. package/dist/components/OTPInput.js.map +1 -0
  107. package/dist/components/OrderedEntityManager.js +170 -0
  108. package/dist/components/OrderedEntityManager.js.map +1 -0
  109. package/dist/components/PagedWindowList.js +74 -0
  110. package/dist/components/PagedWindowList.js.map +1 -0
  111. package/dist/components/PaginationBar.js +95 -0
  112. package/dist/components/PaginationBar.js.map +1 -0
  113. package/dist/components/Panel.js +396 -0
  114. package/dist/components/Panel.js.map +1 -0
  115. package/dist/components/PasswordInput.js +32 -0
  116. package/dist/components/PasswordInput.js.map +1 -0
  117. package/dist/components/PasswordRequirements.js +25 -0
  118. package/dist/components/PasswordRequirements.js.map +1 -0
  119. package/dist/components/PatchDiff.js +96 -0
  120. package/dist/components/PatchDiff.js.map +1 -0
  121. package/dist/components/PendingVeil.js +18 -0
  122. package/dist/components/PendingVeil.js.map +1 -0
  123. package/dist/components/Popover.js +214 -0
  124. package/dist/components/Popover.js.map +1 -0
  125. package/dist/components/Progress.js +419 -0
  126. package/dist/components/Progress.js.map +1 -0
  127. package/dist/components/RatingScale.js +89 -0
  128. package/dist/components/RatingScale.js.map +1 -0
  129. package/dist/components/ReadMore.js +232 -0
  130. package/dist/components/ReadMore.js.map +1 -0
  131. package/dist/components/RecordCard.js +202 -0
  132. package/dist/components/RecordCard.js.map +1 -0
  133. package/dist/components/RelativeTime.js +29 -0
  134. package/dist/components/RelativeTime.js.map +1 -0
  135. package/dist/components/SandboxedFrame.js +135 -0
  136. package/dist/components/SandboxedFrame.js.map +1 -0
  137. package/dist/components/SearchInput.js +38 -0
  138. package/dist/components/SearchInput.js.map +1 -0
  139. package/dist/components/SecretField.js +228 -0
  140. package/dist/components/SecretField.js.map +1 -0
  141. package/dist/components/SectionNav.js +42 -0
  142. package/dist/components/SectionNav.js.map +1 -0
  143. package/dist/components/Select.js +172 -0
  144. package/dist/components/Select.js.map +1 -0
  145. package/dist/components/SequenceDiagram.js +109 -0
  146. package/dist/components/SequenceDiagram.js.map +1 -0
  147. package/dist/components/SettingRow.js +124 -0
  148. package/dist/components/SettingRow.js.map +1 -0
  149. package/dist/components/SignOffRings.js +36 -0
  150. package/dist/components/SignOffRings.js.map +1 -0
  151. package/dist/components/Slider.js +353 -0
  152. package/dist/components/Slider.js.map +1 -0
  153. package/dist/components/SolutionChoice.js +89 -0
  154. package/dist/components/SolutionChoice.js.map +1 -0
  155. package/dist/components/SortMenu.js +75 -0
  156. package/dist/components/SortMenu.js.map +1 -0
  157. package/dist/components/Spinner.js +42 -0
  158. package/dist/components/Spinner.js.map +1 -0
  159. package/dist/components/Stat.js +148 -0
  160. package/dist/components/Stat.js.map +1 -0
  161. package/dist/components/StatusSelect.js +119 -0
  162. package/dist/components/StatusSelect.js.map +1 -0
  163. package/dist/components/Surface.js +210 -0
  164. package/dist/components/Surface.js.map +1 -0
  165. package/dist/components/Table.js +300 -0
  166. package/dist/components/Table.js.map +1 -0
  167. package/dist/components/Tabs.js +288 -0
  168. package/dist/components/Tabs.js.map +1 -0
  169. package/dist/components/ThemeMenu.js +198 -0
  170. package/dist/components/ThemeMenu.js.map +1 -0
  171. package/dist/components/Toast.js +217 -0
  172. package/dist/components/Toast.js.map +1 -0
  173. package/dist/components/Toggle.js +147 -0
  174. package/dist/components/Toggle.js.map +1 -0
  175. package/dist/components/ToggleMatrix.js +157 -0
  176. package/dist/components/ToggleMatrix.js.map +1 -0
  177. package/dist/components/Tree.js +125 -0
  178. package/dist/components/Tree.js.map +1 -0
  179. package/dist/components/TriStateSwitch.js +111 -0
  180. package/dist/components/TriStateSwitch.js.map +1 -0
  181. package/dist/components/VideoPlayer.js +64 -0
  182. package/dist/components/VideoPlayer.js.map +1 -0
  183. package/dist/components/auth/AcceptInvitationCard.js +110 -0
  184. package/dist/components/auth/AcceptInvitationCard.js.map +1 -0
  185. package/dist/components/auth/AuthLayout.js +18 -0
  186. package/dist/components/auth/AuthLayout.js.map +1 -0
  187. package/dist/components/auth/ForgotPasswordForm.js +44 -0
  188. package/dist/components/auth/ForgotPasswordForm.js.map +1 -0
  189. package/dist/components/auth/LoginForm.js +76 -0
  190. package/dist/components/auth/LoginForm.js.map +1 -0
  191. package/dist/components/auth/ResetPasswordForm.js +69 -0
  192. package/dist/components/auth/ResetPasswordForm.js.map +1 -0
  193. package/dist/components/auth/SignInProviders.js +45 -0
  194. package/dist/components/auth/SignInProviders.js.map +1 -0
  195. package/dist/components/auth/SignupCard.js +204 -0
  196. package/dist/components/auth/SignupCard.js.map +1 -0
  197. package/dist/components/auth/TermsAcceptance.js +43 -0
  198. package/dist/components/auth/TermsAcceptance.js.map +1 -0
  199. package/dist/components/board/context.js +32 -0
  200. package/dist/components/board/context.js.map +1 -0
  201. package/dist/components/board/recipe.js +94 -0
  202. package/dist/components/board/recipe.js.map +1 -0
  203. package/dist/components/calendar/CalendarMonth.js +299 -0
  204. package/dist/components/calendar/CalendarMonth.js.map +1 -0
  205. package/dist/components/calendar/CalendarTimeGrid.js +430 -0
  206. package/dist/components/calendar/CalendarTimeGrid.js.map +1 -0
  207. package/dist/components/calendar/EventActions.js +101 -0
  208. package/dist/components/calendar/EventActions.js.map +1 -0
  209. package/dist/components/calendar/format.js +73 -0
  210. package/dist/components/calendar/format.js.map +1 -0
  211. package/dist/components/calendar/palette.js +31 -0
  212. package/dist/components/calendar/palette.js.map +1 -0
  213. package/dist/components/calendar/use-calendar-drag.js +149 -0
  214. package/dist/components/calendar/use-calendar-drag.js.map +1 -0
  215. package/dist/components/calendar/use-event-keyboard.js +87 -0
  216. package/dist/components/calendar/use-event-keyboard.js.map +1 -0
  217. package/dist/components/calendar/use-grid-navigation.js +79 -0
  218. package/dist/components/calendar/use-grid-navigation.js.map +1 -0
  219. package/dist/components/calendar/use-now.js +27 -0
  220. package/dist/components/calendar/use-now.js.map +1 -0
  221. package/dist/components/card-face/AcRingGlyph.js +39 -0
  222. package/dist/components/card-face/AcRingGlyph.js.map +1 -0
  223. package/dist/components/card-face/BoardCardAgentSlot.js +17 -0
  224. package/dist/components/card-face/BoardCardAgentSlot.js.map +1 -0
  225. package/dist/components/card-face/CardFace.js +109 -0
  226. package/dist/components/card-face/CardFace.js.map +1 -0
  227. package/dist/components/card-face/CardTypeBadge.js +17 -0
  228. package/dist/components/card-face/CardTypeBadge.js.map +1 -0
  229. package/dist/components/card-face/EffortBadge.js +11 -0
  230. package/dist/components/card-face/EffortBadge.js.map +1 -0
  231. package/dist/components/card-face/GateRingGlyph.js +31 -0
  232. package/dist/components/card-face/GateRingGlyph.js.map +1 -0
  233. package/dist/components/card-face/OverflowRow.js +70 -0
  234. package/dist/components/card-face/OverflowRow.js.map +1 -0
  235. package/dist/components/card-face/TapTip.js +32 -0
  236. package/dist/components/card-face/TapTip.js.map +1 -0
  237. package/dist/components/card-face/hit-area.js +6 -0
  238. package/dist/components/card-face/hit-area.js.map +1 -0
  239. package/dist/components/card-face/vocabulary.js +102 -0
  240. package/dist/components/card-face/vocabulary.js.map +1 -0
  241. package/dist/components/chart/BarList.js +78 -0
  242. package/dist/components/chart/BarList.js.map +1 -0
  243. package/dist/components/chart/LineChart.js +310 -0
  244. package/dist/components/chart/LineChart.js.map +1 -0
  245. package/dist/components/chart/ShareBar.js +141 -0
  246. package/dist/components/chart/ShareBar.js.map +1 -0
  247. package/dist/components/chart/TimeSeriesChart.js +305 -0
  248. package/dist/components/chart/TimeSeriesChart.js.map +1 -0
  249. package/dist/components/chart/label-metrics.js +17 -0
  250. package/dist/components/chart/label-metrics.js.map +1 -0
  251. package/dist/components/chart/line-chart-axis.js +38 -0
  252. package/dist/components/chart/line-chart-axis.js.map +1 -0
  253. package/dist/components/chart/line-chart-scale.js +132 -0
  254. package/dist/components/chart/line-chart-scale.js.map +1 -0
  255. package/dist/components/chart/line-series-style.js +22 -0
  256. package/dist/components/chart/line-series-style.js.map +1 -0
  257. package/dist/components/chart/share-bar-labels.js +14 -0
  258. package/dist/components/chart/share-bar-labels.js.map +1 -0
  259. package/dist/components/chart/shared.js +157 -0
  260. package/dist/components/chart/shared.js.map +1 -0
  261. package/dist/components/chart/time-series-scale.js +51 -0
  262. package/dist/components/chart/time-series-scale.js.map +1 -0
  263. package/dist/components/chat/Attachment.js +316 -0
  264. package/dist/components/chat/Attachment.js.map +1 -0
  265. package/dist/components/chat/Chat.js +171 -0
  266. package/dist/components/chat/Chat.js.map +1 -0
  267. package/dist/components/chat/Composer.js +274 -0
  268. package/dist/components/chat/Composer.js.map +1 -0
  269. package/dist/components/chat/ContextMeter.js +202 -0
  270. package/dist/components/chat/ContextMeter.js.map +1 -0
  271. package/dist/components/chat/EffortControl.js +116 -0
  272. package/dist/components/chat/EffortControl.js.map +1 -0
  273. package/dist/components/chat/FileCover.js +78 -0
  274. package/dist/components/chat/FileCover.js.map +1 -0
  275. package/dist/components/chat/Message.js +356 -0
  276. package/dist/components/chat/Message.js.map +1 -0
  277. package/dist/components/chat/MessageScroller.js +104 -0
  278. package/dist/components/chat/MessageScroller.js.map +1 -0
  279. package/dist/components/chat/ModelSelector.js +156 -0
  280. package/dist/components/chat/ModelSelector.js.map +1 -0
  281. package/dist/components/chat/StreamingMarkdown.js +42 -0
  282. package/dist/components/chat/StreamingMarkdown.js.map +1 -0
  283. package/dist/components/chat/download-file.js +9 -0
  284. package/dist/components/chat/download-file.js.map +1 -0
  285. package/dist/components/chat/file-icon.js +39 -0
  286. package/dist/components/chat/file-icon.js.map +1 -0
  287. package/dist/components/checklist/StatusChecklist.js +103 -0
  288. package/dist/components/checklist/StatusChecklist.js.map +1 -0
  289. package/dist/components/checklist/tally.js +29 -0
  290. package/dist/components/checklist/tally.js.map +1 -0
  291. package/dist/components/code-editor/context.js +13 -0
  292. package/dist/components/code-editor/context.js.map +1 -0
  293. package/dist/components/code-editor/editing.js +93 -0
  294. package/dist/components/code-editor/editing.js.map +1 -0
  295. package/dist/components/code-editor/highlight.js +27 -0
  296. package/dist/components/code-editor/highlight.js.map +1 -0
  297. package/dist/components/code-editor/recipe.js +75 -0
  298. package/dist/components/code-editor/recipe.js.map +1 -0
  299. package/dist/components/date-timeline/DateTimeline.js +358 -0
  300. package/dist/components/date-timeline/DateTimeline.js.map +1 -0
  301. package/dist/components/date-timeline/TimelineRow.js +100 -0
  302. package/dist/components/date-timeline/TimelineRow.js.map +1 -0
  303. package/dist/components/date-timeline/useBarDrag.js +44 -0
  304. package/dist/components/date-timeline/useBarDrag.js.map +1 -0
  305. package/dist/components/date-timeline/useMarkerDrag.js +40 -0
  306. package/dist/components/date-timeline/useMarkerDrag.js.map +1 -0
  307. package/dist/components/date-timeline/useTimelineZoom.js +44 -0
  308. package/dist/components/date-timeline/useTimelineZoom.js.map +1 -0
  309. package/dist/components/drag-drop/context.js +37 -0
  310. package/dist/components/drag-drop/context.js.map +1 -0
  311. package/dist/components/drag-drop/recipe.js +270 -0
  312. package/dist/components/drag-drop/recipe.js.map +1 -0
  313. package/dist/components/drag-drop/shift.js +157 -0
  314. package/dist/components/drag-drop/shift.js.map +1 -0
  315. package/dist/components/edit/activation.js +10 -0
  316. package/dist/components/edit/activation.js.map +1 -0
  317. package/dist/components/edit/outcome.js +47 -0
  318. package/dist/components/edit/outcome.js.map +1 -0
  319. package/dist/components/edit/use-edit-session.js +146 -0
  320. package/dist/components/edit/use-edit-session.js.map +1 -0
  321. package/dist/components/file-viewer/FileViewer.js +97 -0
  322. package/dist/components/file-viewer/FileViewer.js.map +1 -0
  323. package/dist/components/file-viewer/PageNumberJumpField.js +47 -0
  324. package/dist/components/file-viewer/PageNumberJumpField.js.map +1 -0
  325. package/dist/components/file-viewer/ViewerControls.js +122 -0
  326. package/dist/components/file-viewer/ViewerControls.js.map +1 -0
  327. package/dist/components/file-viewer/ViewerRail.js +57 -0
  328. package/dist/components/file-viewer/ViewerRail.js.map +1 -0
  329. package/dist/components/file-viewer/ViewerStage.js +112 -0
  330. package/dist/components/file-viewer/ViewerStage.js.map +1 -0
  331. package/dist/components/file-viewer/frames.js +37 -0
  332. package/dist/components/file-viewer/frames.js.map +1 -0
  333. package/dist/components/file-viewer/use-frame-cursor.js +32 -0
  334. package/dist/components/file-viewer/use-frame-cursor.js.map +1 -0
  335. package/dist/components/file-viewer/use-viewer-keys.js +50 -0
  336. package/dist/components/file-viewer/use-viewer-keys.js.map +1 -0
  337. package/dist/components/file-viewer/use-viewer-zoom.js +68 -0
  338. package/dist/components/file-viewer/use-viewer-zoom.js.map +1 -0
  339. package/dist/components/focus-web/FocusWeb.js +322 -0
  340. package/dist/components/focus-web/FocusWeb.js.map +1 -0
  341. package/dist/components/focus-web/layout.js +34 -0
  342. package/dist/components/focus-web/layout.js.map +1 -0
  343. package/dist/components/graph-explorer/GraphExplorer.js +441 -0
  344. package/dist/components/graph-explorer/GraphExplorer.js.map +1 -0
  345. package/dist/components/graph-explorer/camera-math.js +102 -0
  346. package/dist/components/graph-explorer/camera-math.js.map +1 -0
  347. package/dist/components/graph-explorer/tree-layout.js +103 -0
  348. package/dist/components/graph-explorer/tree-layout.js.map +1 -0
  349. package/dist/components/graph-explorer/use-camera.js +82 -0
  350. package/dist/components/graph-explorer/use-camera.js.map +1 -0
  351. package/dist/components/graph-explorer/viewport-gesture.js +107 -0
  352. package/dist/components/graph-explorer/viewport-gesture.js.map +1 -0
  353. package/dist/components/kanban/KanbanBoard.js +219 -0
  354. package/dist/components/kanban/KanbanBoard.js.map +1 -0
  355. package/dist/components/kanban/recipe.js +144 -0
  356. package/dist/components/kanban/recipe.js.map +1 -0
  357. package/dist/components/markdown/Affordances.js +398 -0
  358. package/dist/components/markdown/Affordances.js.map +1 -0
  359. package/dist/components/markdown/AttachmentStrip.js +128 -0
  360. package/dist/components/markdown/AttachmentStrip.js.map +1 -0
  361. package/dist/components/markdown/ImageUpload.js +45 -0
  362. package/dist/components/markdown/ImageUpload.js.map +1 -0
  363. package/dist/components/media-error.js +7 -0
  364. package/dist/components/media-error.js.map +1 -0
  365. package/dist/components/nav-sections.js +61 -0
  366. package/dist/components/nav-sections.js.map +1 -0
  367. package/dist/components/node-canvas/NodeCanvas.js +384 -0
  368. package/dist/components/node-canvas/NodeCanvas.js.map +1 -0
  369. package/dist/components/node-canvas/layout.js +237 -0
  370. package/dist/components/node-canvas/layout.js.map +1 -0
  371. package/dist/components/node-canvas/use-canvas-gestures.js +143 -0
  372. package/dist/components/node-canvas/use-canvas-gestures.js.map +1 -0
  373. package/dist/components/openapi/OpenApiViewer.js +137 -0
  374. package/dist/components/openapi/OpenApiViewer.js.map +1 -0
  375. package/dist/components/openapi/OperationCard.js +145 -0
  376. package/dist/components/openapi/OperationCard.js.map +1 -0
  377. package/dist/components/openapi/SchemaView.js +68 -0
  378. package/dist/components/openapi/SchemaView.js.map +1 -0
  379. package/dist/components/openapi/resolve.js +102 -0
  380. package/dist/components/openapi/resolve.js.map +1 -0
  381. package/dist/components/openapi/types.js +5 -0
  382. package/dist/components/openapi/types.js.map +1 -0
  383. package/dist/components/overlay-shell.js +29 -0
  384. package/dist/components/overlay-shell.js.map +1 -0
  385. package/dist/components/overlay-stack.js +27 -0
  386. package/dist/components/overlay-stack.js.map +1 -0
  387. package/dist/components/paged-window/PageBlock.js +50 -0
  388. package/dist/components/paged-window/PageBlock.js.map +1 -0
  389. package/dist/components/provenance/ConfidenceBar.js +60 -0
  390. package/dist/components/provenance/ConfidenceBar.js.map +1 -0
  391. package/dist/components/provenance/ConfidenceMeter.js +36 -0
  392. package/dist/components/provenance/ConfidenceMeter.js.map +1 -0
  393. package/dist/components/provenance/ConfidenceReadout.js +31 -0
  394. package/dist/components/provenance/ConfidenceReadout.js.map +1 -0
  395. package/dist/components/provenance/ProvenanceBadge.js +44 -0
  396. package/dist/components/provenance/ProvenanceBadge.js.map +1 -0
  397. package/dist/components/provenance/ProvenanceDetail.js +114 -0
  398. package/dist/components/provenance/ProvenanceDetail.js.map +1 -0
  399. package/dist/components/provenance/ProvenanceDisclosure.js +111 -0
  400. package/dist/components/provenance/ProvenanceDisclosure.js.map +1 -0
  401. package/dist/components/provenance/absence.js +31 -0
  402. package/dist/components/provenance/absence.js.map +1 -0
  403. package/dist/components/provenance/types.js +30 -0
  404. package/dist/components/provenance/types.js.map +1 -0
  405. package/dist/components/rbac/AccessRequestPanel.js +153 -0
  406. package/dist/components/rbac/AccessRequestPanel.js.map +1 -0
  407. package/dist/components/rbac/AccountMenu.js +118 -0
  408. package/dist/components/rbac/AccountMenu.js.map +1 -0
  409. package/dist/components/rbac/AgentKeysList.js +20 -0
  410. package/dist/components/rbac/AgentKeysList.js.map +1 -0
  411. package/dist/components/rbac/ApiKeysPanel.js +172 -0
  412. package/dist/components/rbac/ApiKeysPanel.js.map +1 -0
  413. package/dist/components/rbac/ApiKeysTable.js +169 -0
  414. package/dist/components/rbac/ApiKeysTable.js.map +1 -0
  415. package/dist/components/rbac/Brand.js +13 -0
  416. package/dist/components/rbac/Brand.js.map +1 -0
  417. package/dist/components/rbac/Can.js +18 -0
  418. package/dist/components/rbac/Can.js.map +1 -0
  419. package/dist/components/rbac/ChangePasswordForm.js +73 -0
  420. package/dist/components/rbac/ChangePasswordForm.js.map +1 -0
  421. package/dist/components/rbac/DangerZone.js +27 -0
  422. package/dist/components/rbac/DangerZone.js.map +1 -0
  423. package/dist/components/rbac/DevToolsPopover.js +140 -0
  424. package/dist/components/rbac/DevToolsPopover.js.map +1 -0
  425. package/dist/components/rbac/EndedLine.js +24 -0
  426. package/dist/components/rbac/EndedLine.js.map +1 -0
  427. package/dist/components/rbac/InvitationsList.js +148 -0
  428. package/dist/components/rbac/InvitationsList.js.map +1 -0
  429. package/dist/components/rbac/InviteMembersDialog.js +97 -0
  430. package/dist/components/rbac/InviteMembersDialog.js.map +1 -0
  431. package/dist/components/rbac/MembersPanel.js +138 -0
  432. package/dist/components/rbac/MembersPanel.js.map +1 -0
  433. package/dist/components/rbac/PermissionRequestPanel.js +141 -0
  434. package/dist/components/rbac/PermissionRequestPanel.js.map +1 -0
  435. package/dist/components/rbac/ProfileForm.js +86 -0
  436. package/dist/components/rbac/ProfileForm.js.map +1 -0
  437. package/dist/components/rbac/ProfilePage.js +58 -0
  438. package/dist/components/rbac/ProfilePage.js.map +1 -0
  439. package/dist/components/rbac/RBACProvider.js +82 -0
  440. package/dist/components/rbac/RBACProvider.js.map +1 -0
  441. package/dist/components/rbac/RoleEditorDialog.js +90 -0
  442. package/dist/components/rbac/RoleEditorDialog.js.map +1 -0
  443. package/dist/components/rbac/RoleKeyPicker.js +77 -0
  444. package/dist/components/rbac/RoleKeyPicker.js.map +1 -0
  445. package/dist/components/rbac/RolePermissionMatrix.js +37 -0
  446. package/dist/components/rbac/RolePermissionMatrix.js.map +1 -0
  447. package/dist/components/rbac/RolesPermissionsPage.js +142 -0
  448. package/dist/components/rbac/RolesPermissionsPage.js.map +1 -0
  449. package/dist/components/rbac/SessionsList.js +146 -0
  450. package/dist/components/rbac/SessionsList.js.map +1 -0
  451. package/dist/components/rbac/TeamSettingsForm.js +69 -0
  452. package/dist/components/rbac/TeamSettingsForm.js.map +1 -0
  453. package/dist/components/rbac/TeamSwitcher.js +66 -0
  454. package/dist/components/rbac/TeamSwitcher.js.map +1 -0
  455. package/dist/components/rbac/approvalPanelParts.js +130 -0
  456. package/dist/components/rbac/approvalPanelParts.js.map +1 -0
  457. package/dist/components/rbac/permissionSections.js +8 -0
  458. package/dist/components/rbac/permissionSections.js.map +1 -0
  459. package/dist/components/rbac/stagedForm.js +42 -0
  460. package/dist/components/rbac/stagedForm.js.map +1 -0
  461. package/dist/components/rbac/useStagedImage.js +21 -0
  462. package/dist/components/rbac/useStagedImage.js.map +1 -0
  463. package/dist/components/roadmap/PhaseManager.js +48 -0
  464. package/dist/components/roadmap/PhaseManager.js.map +1 -0
  465. package/dist/components/roadmap/RoadmapItemCard.js +96 -0
  466. package/dist/components/roadmap/RoadmapItemCard.js.map +1 -0
  467. package/dist/components/roadmap/RoadmapPage.js +34 -0
  468. package/dist/components/roadmap/RoadmapPage.js.map +1 -0
  469. package/dist/components/roadmap/RoadmapSwimlaneBoard.js +91 -0
  470. package/dist/components/roadmap/RoadmapSwimlaneBoard.js.map +1 -0
  471. package/dist/components/roadmap/TrackManager.js +58 -0
  472. package/dist/components/roadmap/TrackManager.js.map +1 -0
  473. package/dist/components/roadmap/UseCaseCard.js +93 -0
  474. package/dist/components/roadmap/UseCaseCard.js.map +1 -0
  475. package/dist/components/roadmap/UseCaseLedgerPage.js +98 -0
  476. package/dist/components/roadmap/UseCaseLedgerPage.js.map +1 -0
  477. package/dist/components/roadmap/chip-tones.js +9 -0
  478. package/dist/components/roadmap/chip-tones.js.map +1 -0
  479. package/dist/components/roadmap/derive.js +28 -0
  480. package/dist/components/roadmap/derive.js.map +1 -0
  481. package/dist/components/stepper/Stepper.js +276 -0
  482. package/dist/components/stepper/Stepper.js.map +1 -0
  483. package/dist/components/stepper/derive.js +53 -0
  484. package/dist/components/stepper/derive.js.map +1 -0
  485. package/dist/confidence.css +222 -0
  486. package/dist/fonts/bricolage-grotesque-0.woff2 +0 -0
  487. package/dist/fonts/bricolage-grotesque-1.woff2 +0 -0
  488. package/dist/fonts/bricolage-grotesque-2.woff2 +0 -0
  489. package/dist/fonts/figtree-0.woff2 +0 -0
  490. package/dist/fonts/figtree-1.woff2 +0 -0
  491. package/dist/fonts/figtree-2.woff2 +0 -0
  492. package/dist/fonts/figtree-3.woff2 +0 -0
  493. package/dist/fonts/jetbrains-mono-0.woff2 +0 -0
  494. package/dist/fonts/jetbrains-mono-1.woff2 +0 -0
  495. package/dist/fonts/jetbrains-mono-10.woff2 +0 -0
  496. package/dist/fonts/jetbrains-mono-11.woff2 +0 -0
  497. package/dist/fonts/jetbrains-mono-2.woff2 +0 -0
  498. package/dist/fonts/jetbrains-mono-3.woff2 +0 -0
  499. package/dist/fonts/jetbrains-mono-4.woff2 +0 -0
  500. package/dist/fonts/jetbrains-mono-5.woff2 +0 -0
  501. package/dist/fonts/jetbrains-mono-6.woff2 +0 -0
  502. package/dist/fonts/jetbrains-mono-7.woff2 +0 -0
  503. package/dist/fonts/jetbrains-mono-8.woff2 +0 -0
  504. package/dist/fonts/jetbrains-mono-9.woff2 +0 -0
  505. package/dist/fonts.css +187 -0
  506. package/dist/icons/data.js +233 -0
  507. package/dist/icons/data.js.map +1 -0
  508. package/dist/index.js +942 -0
  509. package/dist/index.js.map +1 -0
  510. package/dist/lib/attention.js +75 -0
  511. package/dist/lib/attention.js.map +1 -0
  512. package/dist/lib/board/anchor.js +14 -0
  513. package/dist/lib/board/anchor.js.map +1 -0
  514. package/dist/lib/board/model.js +41 -0
  515. package/dist/lib/board/model.js.map +1 -0
  516. package/dist/lib/board/move.js +161 -0
  517. package/dist/lib/board/move.js.map +1 -0
  518. package/dist/lib/board/position.js +11 -0
  519. package/dist/lib/board/position.js.map +1 -0
  520. package/dist/lib/board/rejection.js +22 -0
  521. package/dist/lib/board/rejection.js.map +1 -0
  522. package/dist/lib/board/use-board.js +43 -0
  523. package/dist/lib/board/use-board.js.map +1 -0
  524. package/dist/lib/calendar/band-packer.js +44 -0
  525. package/dist/lib/calendar/band-packer.js.map +1 -0
  526. package/dist/lib/calendar/drag.js +74 -0
  527. package/dist/lib/calendar/drag.js.map +1 -0
  528. package/dist/lib/calendar/lane-packer.js +67 -0
  529. package/dist/lib/calendar/lane-packer.js.map +1 -0
  530. package/dist/lib/calendar/segments.js +82 -0
  531. package/dist/lib/calendar/segments.js.map +1 -0
  532. package/dist/lib/calendar/types.js +7 -0
  533. package/dist/lib/calendar/types.js.map +1 -0
  534. package/dist/lib/chart-palette.js +27 -0
  535. package/dist/lib/chart-palette.js.map +1 -0
  536. package/dist/lib/clipboard.js +30 -0
  537. package/dist/lib/clipboard.js.map +1 -0
  538. package/dist/lib/cn.js +9 -0
  539. package/dist/lib/cn.js.map +1 -0
  540. package/dist/lib/color.js +24 -0
  541. package/dist/lib/color.js.map +1 -0
  542. package/dist/lib/component-guidance.js +297 -0
  543. package/dist/lib/component-guidance.js.map +1 -0
  544. package/dist/lib/confidence.js +22 -0
  545. package/dist/lib/confidence.js.map +1 -0
  546. package/dist/lib/date-timeline/scale.js +197 -0
  547. package/dist/lib/date-timeline/scale.js.map +1 -0
  548. package/dist/lib/design-frame/document.js +44 -0
  549. package/dist/lib/design-frame/document.js.map +1 -0
  550. package/dist/lib/design-frame/mini-app-script.js +107 -0
  551. package/dist/lib/design-frame/mini-app-script.js.map +1 -0
  552. package/dist/lib/design-frame/mini-app.js +12 -0
  553. package/dist/lib/design-frame/mini-app.js.map +1 -0
  554. package/dist/lib/design-frame/protocol.js +46 -0
  555. package/dist/lib/design-frame/protocol.js.map +1 -0
  556. package/dist/lib/dev-warn.js +17 -0
  557. package/dist/lib/dev-warn.js.map +1 -0
  558. package/dist/lib/dnd/announce.js +120 -0
  559. package/dist/lib/dnd/announce.js.map +1 -0
  560. package/dist/lib/dnd/autoscroll.js +123 -0
  561. package/dist/lib/dnd/autoscroll.js.map +1 -0
  562. package/dist/lib/dnd/cross-drop.js +11 -0
  563. package/dist/lib/dnd/cross-drop.js.map +1 -0
  564. package/dist/lib/dnd/geometry.js +99 -0
  565. package/dist/lib/dnd/geometry.js.map +1 -0
  566. package/dist/lib/dnd/sensors/gesture.js +86 -0
  567. package/dist/lib/dnd/sensors/gesture.js.map +1 -0
  568. package/dist/lib/dnd/sensors/keyboard.js +47 -0
  569. package/dist/lib/dnd/sensors/keyboard.js.map +1 -0
  570. package/dist/lib/dnd/sensors/pointer.js +32 -0
  571. package/dist/lib/dnd/sensors/pointer.js.map +1 -0
  572. package/dist/lib/dnd/session.js +256 -0
  573. package/dist/lib/dnd/session.js.map +1 -0
  574. package/dist/lib/dnd/use-drag.js +90 -0
  575. package/dist/lib/dnd/use-drag.js.map +1 -0
  576. package/dist/lib/dom/scroll-ancestor.js +18 -0
  577. package/dist/lib/dom/scroll-ancestor.js.map +1 -0
  578. package/dist/lib/format.js +23 -0
  579. package/dist/lib/format.js.map +1 -0
  580. package/dist/lib/group-in-order.js +13 -0
  581. package/dist/lib/group-in-order.js.map +1 -0
  582. package/dist/lib/header-fold.js +11 -0
  583. package/dist/lib/header-fold.js.map +1 -0
  584. package/dist/lib/i18n/areas/auth-provenance-flows.js +156 -0
  585. package/dist/lib/i18n/areas/auth-provenance-flows.js.map +1 -0
  586. package/dist/lib/i18n/areas/board.js +35 -0
  587. package/dist/lib/i18n/areas/board.js.map +1 -0
  588. package/dist/lib/i18n/areas/card-face.js +10 -0
  589. package/dist/lib/i18n/areas/card-face.js.map +1 -0
  590. package/dist/lib/i18n/areas/chat-chart.js +118 -0
  591. package/dist/lib/i18n/areas/chat-chart.js.map +1 -0
  592. package/dist/lib/i18n/areas/code-editor.js +24 -0
  593. package/dist/lib/i18n/areas/code-editor.js.map +1 -0
  594. package/dist/lib/i18n/areas/date-timeline.js +21 -0
  595. package/dist/lib/i18n/areas/date-timeline.js.map +1 -0
  596. package/dist/lib/i18n/areas/dates.js +71 -0
  597. package/dist/lib/i18n/areas/dates.js.map +1 -0
  598. package/dist/lib/i18n/areas/docs-views.js +183 -0
  599. package/dist/lib/i18n/areas/docs-views.js.map +1 -0
  600. package/dist/lib/i18n/areas/feedback.js +75 -0
  601. package/dist/lib/i18n/areas/feedback.js.map +1 -0
  602. package/dist/lib/i18n/areas/formats.js +24 -0
  603. package/dist/lib/i18n/areas/formats.js.map +1 -0
  604. package/dist/lib/i18n/areas/forms.js +110 -0
  605. package/dist/lib/i18n/areas/forms.js.map +1 -0
  606. package/dist/lib/i18n/areas/keys.js +25 -0
  607. package/dist/lib/i18n/areas/keys.js.map +1 -0
  608. package/dist/lib/i18n/areas/markdown.js +136 -0
  609. package/dist/lib/i18n/areas/markdown.js.map +1 -0
  610. package/dist/lib/i18n/areas/move-rejected.js +14 -0
  611. package/dist/lib/i18n/areas/move-rejected.js.map +1 -0
  612. package/dist/lib/i18n/areas/navigation.js +104 -0
  613. package/dist/lib/i18n/areas/navigation.js.map +1 -0
  614. package/dist/lib/i18n/areas/rbac.js +332 -0
  615. package/dist/lib/i18n/areas/rbac.js.map +1 -0
  616. package/dist/lib/i18n/emphasis.js +6 -0
  617. package/dist/lib/i18n/emphasis.js.map +1 -0
  618. package/dist/lib/i18n/number-format.js +9 -0
  619. package/dist/lib/i18n/number-format.js.map +1 -0
  620. package/dist/lib/i18n/plural.js +9 -0
  621. package/dist/lib/i18n/plural.js.map +1 -0
  622. package/dist/lib/i18n/provider.js +27 -0
  623. package/dist/lib/i18n/provider.js.map +1 -0
  624. package/dist/lib/i18n/strings.js +38 -0
  625. package/dist/lib/i18n/strings.js.map +1 -0
  626. package/dist/lib/icons.js +17 -0
  627. package/dist/lib/icons.js.map +1 -0
  628. package/dist/lib/interactive-target.js +9 -0
  629. package/dist/lib/interactive-target.js.map +1 -0
  630. package/dist/lib/intl-cache.js +69 -0
  631. package/dist/lib/intl-cache.js.map +1 -0
  632. package/dist/lib/legal-document.js +37 -0
  633. package/dist/lib/legal-document.js.map +1 -0
  634. package/dist/lib/line-diff-model.js +51 -0
  635. package/dist/lib/line-diff-model.js.map +1 -0
  636. package/dist/lib/markdown/attachments.js +71 -0
  637. package/dist/lib/markdown/attachments.js.map +1 -0
  638. package/dist/lib/markdown/caret-map.js +153 -0
  639. package/dist/lib/markdown/caret-map.js.map +1 -0
  640. package/dist/lib/markdown/caret.js +35 -0
  641. package/dist/lib/markdown/caret.js.map +1 -0
  642. package/dist/lib/markdown/commands.js +443 -0
  643. package/dist/lib/markdown/commands.js.map +1 -0
  644. package/dist/lib/markdown/convert.js +153 -0
  645. package/dist/lib/markdown/convert.js.map +1 -0
  646. package/dist/lib/markdown/dom.js +89 -0
  647. package/dist/lib/markdown/dom.js.map +1 -0
  648. package/dist/lib/markdown/edit.js +92 -0
  649. package/dist/lib/markdown/edit.js.map +1 -0
  650. package/dist/lib/markdown/history.js +79 -0
  651. package/dist/lib/markdown/history.js.map +1 -0
  652. package/dist/lib/markdown/hotkeys.js +63 -0
  653. package/dist/lib/markdown/hotkeys.js.map +1 -0
  654. package/dist/lib/markdown/image-pipeline.js +236 -0
  655. package/dist/lib/markdown/image-pipeline.js.map +1 -0
  656. package/dist/lib/markdown/images.js +85 -0
  657. package/dist/lib/markdown/images.js.map +1 -0
  658. package/dist/lib/markdown/input.js +210 -0
  659. package/dist/lib/markdown/input.js.map +1 -0
  660. package/dist/lib/markdown/keys.js +37 -0
  661. package/dist/lib/markdown/keys.js.map +1 -0
  662. package/dist/lib/markdown/paste.js +180 -0
  663. package/dist/lib/markdown/paste.js.map +1 -0
  664. package/dist/lib/markdown/position.js +111 -0
  665. package/dist/lib/markdown/position.js.map +1 -0
  666. package/dist/lib/markdown/project.js +108 -0
  667. package/dist/lib/markdown/project.js.map +1 -0
  668. package/dist/lib/markdown/reconcile.js +127 -0
  669. package/dist/lib/markdown/reconcile.js.map +1 -0
  670. package/dist/lib/markdown/surface.js +373 -0
  671. package/dist/lib/markdown/surface.js.map +1 -0
  672. package/dist/lib/motion.js +22 -0
  673. package/dist/lib/motion.js.map +1 -0
  674. package/dist/lib/pad.js +7 -0
  675. package/dist/lib/pad.js.map +1 -0
  676. package/dist/lib/paged-window/layout.js +15 -0
  677. package/dist/lib/paged-window/layout.js.map +1 -0
  678. package/dist/lib/paged-window/list-owner.js +21 -0
  679. package/dist/lib/paged-window/list-owner.js.map +1 -0
  680. package/dist/lib/paged-window/records-binding.js +239 -0
  681. package/dist/lib/paged-window/records-binding.js.map +1 -0
  682. package/dist/lib/paged-window/store.js +562 -0
  683. package/dist/lib/paged-window/store.js.map +1 -0
  684. package/dist/lib/paged-window/use-measured-pitch.js +38 -0
  685. package/dist/lib/paged-window/use-measured-pitch.js.map +1 -0
  686. package/dist/lib/paged-window/use-page-visibility.js +36 -0
  687. package/dist/lib/paged-window/use-page-visibility.js.map +1 -0
  688. package/dist/lib/paged-window/use-paged-window.js +43 -0
  689. package/dist/lib/paged-window/use-paged-window.js.map +1 -0
  690. package/dist/lib/paged-window/use-scroll-root.js +12 -0
  691. package/dist/lib/paged-window/use-scroll-root.js.map +1 -0
  692. package/dist/lib/persist.js +84 -0
  693. package/dist/lib/persist.js.map +1 -0
  694. package/dist/lib/preference-values.js +13 -0
  695. package/dist/lib/preference-values.js.map +1 -0
  696. package/dist/lib/preferences.js +86 -0
  697. package/dist/lib/preferences.js.map +1 -0
  698. package/dist/lib/reads/hooks.js +156 -0
  699. package/dist/lib/reads/hooks.js.map +1 -0
  700. package/dist/lib/reads/optimistic.js +169 -0
  701. package/dist/lib/reads/optimistic.js.map +1 -0
  702. package/dist/lib/reads/refetch.js +108 -0
  703. package/dist/lib/reads/refetch.js.map +1 -0
  704. package/dist/lib/reads/slots.js +215 -0
  705. package/dist/lib/reads/slots.js.map +1 -0
  706. package/dist/lib/realtime/hooks.js +40 -0
  707. package/dist/lib/realtime/hooks.js.map +1 -0
  708. package/dist/lib/realtime/provider.js +25 -0
  709. package/dist/lib/realtime/provider.js.map +1 -0
  710. package/dist/lib/realtime/registry.js +472 -0
  711. package/dist/lib/realtime/registry.js.map +1 -0
  712. package/dist/lib/records/define-record-type.js +33 -0
  713. package/dist/lib/records/define-record-type.js.map +1 -0
  714. package/dist/lib/records/hooks.js +39 -0
  715. package/dist/lib/records/hooks.js.map +1 -0
  716. package/dist/lib/records/store.js +572 -0
  717. package/dist/lib/records/store.js.map +1 -0
  718. package/dist/lib/records/wire.js +58 -0
  719. package/dist/lib/records/wire.js.map +1 -0
  720. package/dist/lib/reduced-motion-help.js +19 -0
  721. package/dist/lib/reduced-motion-help.js.map +1 -0
  722. package/dist/lib/scroll-caret.js +18 -0
  723. package/dist/lib/scroll-caret.js.map +1 -0
  724. package/dist/lib/sim/createSimStore.js +54 -0
  725. package/dist/lib/sim/createSimStore.js.map +1 -0
  726. package/dist/lib/sim/latency.js +28 -0
  727. package/dist/lib/sim/latency.js.map +1 -0
  728. package/dist/lib/sim/registry.js +13 -0
  729. package/dist/lib/sim/registry.js.map +1 -0
  730. package/dist/lib/sim/settings.js +41 -0
  731. package/dist/lib/sim/settings.js.map +1 -0
  732. package/dist/lib/submit-shortcut.js +25 -0
  733. package/dist/lib/submit-shortcut.js.map +1 -0
  734. package/dist/lib/syntax/index.js +33 -0
  735. package/dist/lib/syntax/index.js.map +1 -0
  736. package/dist/lib/syntax/languages/bash.js +77 -0
  737. package/dist/lib/syntax/languages/bash.js.map +1 -0
  738. package/dist/lib/syntax/languages/css.js +81 -0
  739. package/dist/lib/syntax/languages/css.js.map +1 -0
  740. package/dist/lib/syntax/languages/html.js +91 -0
  741. package/dist/lib/syntax/languages/html.js.map +1 -0
  742. package/dist/lib/syntax/languages/index.js +49 -0
  743. package/dist/lib/syntax/languages/index.js.map +1 -0
  744. package/dist/lib/syntax/languages/javascript.js +133 -0
  745. package/dist/lib/syntax/languages/javascript.js.map +1 -0
  746. package/dist/lib/syntax/languages/json.js +45 -0
  747. package/dist/lib/syntax/languages/json.js.map +1 -0
  748. package/dist/lib/syntax/languages/mongodb.js +24 -0
  749. package/dist/lib/syntax/languages/mongodb.js.map +1 -0
  750. package/dist/lib/syntax/languages/plain.js +10 -0
  751. package/dist/lib/syntax/languages/plain.js.map +1 -0
  752. package/dist/lib/syntax/languages/sql.js +113 -0
  753. package/dist/lib/syntax/languages/sql.js.map +1 -0
  754. package/dist/lib/syntax/languages/vue.js +31 -0
  755. package/dist/lib/syntax/languages/vue.js.map +1 -0
  756. package/dist/lib/syntax/languages/yaml.js +55 -0
  757. package/dist/lib/syntax/languages/yaml.js.map +1 -0
  758. package/dist/lib/syntax/markdown/grammar.js +52 -0
  759. package/dist/lib/syntax/markdown/grammar.js.map +1 -0
  760. package/dist/lib/syntax/markdown/inline.js +477 -0
  761. package/dist/lib/syntax/markdown/inline.js.map +1 -0
  762. package/dist/lib/syntax/markdown/parse.js +464 -0
  763. package/dist/lib/syntax/markdown/parse.js.map +1 -0
  764. package/dist/lib/syntax/markdown/refs.js +94 -0
  765. package/dist/lib/syntax/markdown/refs.js.map +1 -0
  766. package/dist/lib/syntax/markdown/render.js +230 -0
  767. package/dist/lib/syntax/markdown/render.js.map +1 -0
  768. package/dist/lib/syntax/markdown/spans.js +40 -0
  769. package/dist/lib/syntax/markdown/spans.js.map +1 -0
  770. package/dist/lib/syntax/registry.js +55 -0
  771. package/dist/lib/syntax/registry.js.map +1 -0
  772. package/dist/lib/syntax/tokenize.js +96 -0
  773. package/dist/lib/syntax/tokenize.js.map +1 -0
  774. package/dist/lib/time/instant.js +7 -0
  775. package/dist/lib/time/instant.js.map +1 -0
  776. package/dist/lib/time/plain.js +83 -0
  777. package/dist/lib/time/plain.js.map +1 -0
  778. package/dist/lib/time/relativeAge.js +20 -0
  779. package/dist/lib/time/relativeAge.js.map +1 -0
  780. package/dist/lib/time/relativeClock.js +59 -0
  781. package/dist/lib/time/relativeClock.js.map +1 -0
  782. package/dist/lib/time/types.js +23 -0
  783. package/dist/lib/time/types.js.map +1 -0
  784. package/dist/lib/time/zone.js +148 -0
  785. package/dist/lib/time/zone.js.map +1 -0
  786. package/dist/lib/use-controllable.js +16 -0
  787. package/dist/lib/use-controllable.js.map +1 -0
  788. package/dist/lib/use-fill-height.js +49 -0
  789. package/dist/lib/use-fill-height.js.map +1 -0
  790. package/dist/lib/use-hydrated.js +14 -0
  791. package/dist/lib/use-hydrated.js.map +1 -0
  792. package/dist/lib/use-media-query.js +30 -0
  793. package/dist/lib/use-media-query.js.map +1 -0
  794. package/dist/lib/use-relabel-base-ui-dismiss.js +26 -0
  795. package/dist/lib/use-relabel-base-ui-dismiss.js.map +1 -0
  796. package/dist/lib/use-release-snap-drag.js +29 -0
  797. package/dist/lib/use-release-snap-drag.js.map +1 -0
  798. package/dist/lib/use-roving-options.js +18 -0
  799. package/dist/lib/use-roving-options.js.map +1 -0
  800. package/dist/lib/values/absent.js +5 -0
  801. package/dist/lib/values/absent.js.map +1 -0
  802. package/dist/lib/values/boolean.js +13 -0
  803. package/dist/lib/values/boolean.js.map +1 -0
  804. package/dist/lib/values/currency.js +23 -0
  805. package/dist/lib/values/currency.js.map +1 -0
  806. package/dist/lib/values/date.js +35 -0
  807. package/dist/lib/values/date.js.map +1 -0
  808. package/dist/lib/values/datetime.js +54 -0
  809. package/dist/lib/values/datetime.js.map +1 -0
  810. package/dist/lib/values/locale-date.js +60 -0
  811. package/dist/lib/values/locale-date.js.map +1 -0
  812. package/dist/lib/values/number.js +16 -0
  813. package/dist/lib/values/number.js.map +1 -0
  814. package/dist/pure.js +379 -0
  815. package/dist/pure.js.map +1 -0
  816. package/dist/styles.css +190 -0
  817. package/dist/theme.css +360 -0
  818. package/dist/types/components/Accordion.d.ts +15 -0
  819. package/dist/types/components/AgentWorkingSpinner.d.ts +23 -0
  820. package/dist/types/components/AppShell.d.ts +164 -0
  821. package/dist/types/components/Attention.d.ts +87 -0
  822. package/dist/types/components/Avatar.d.ts +154 -0
  823. package/dist/types/components/Badge.d.ts +131 -0
  824. package/dist/types/components/Board.d.ts +239 -0
  825. package/dist/types/components/Button.d.ts +208 -0
  826. package/dist/types/components/Callout.d.ts +163 -0
  827. package/dist/types/components/Card.d.ts +219 -0
  828. package/dist/types/components/Choice.d.ts +127 -0
  829. package/dist/types/components/CodeEditor.d.ts +86 -0
  830. package/dist/types/components/ColorPicker.d.ts +14 -0
  831. package/dist/types/components/Combobox.d.ts +43 -0
  832. package/dist/types/components/CommandPalette.d.ts +35 -0
  833. package/dist/types/components/ConcentricRing.d.ts +61 -0
  834. package/dist/types/components/ConnectionCard.d.ts +64 -0
  835. package/dist/types/components/ContextItemRow.d.ts +35 -0
  836. package/dist/types/components/CopyValue.d.ts +14 -0
  837. package/dist/types/components/CountBadge.d.ts +14 -0
  838. package/dist/types/components/DateCalendar.d.ts +30 -0
  839. package/dist/types/components/DateField.d.ts +29 -0
  840. package/dist/types/components/DatePicker.d.ts +20 -0
  841. package/dist/types/components/DateTimeText.d.ts +9 -0
  842. package/dist/types/components/DescriptionList.d.ts +40 -0
  843. package/dist/types/components/Dialog.d.ts +269 -0
  844. package/dist/types/components/DragDrop.d.ts +196 -0
  845. package/dist/types/components/Drawer.d.ts +163 -0
  846. package/dist/types/components/EditGutter.d.ts +44 -0
  847. package/dist/types/components/EmojiPicker.d.ts +30 -0
  848. package/dist/types/components/ErrorBoundary.d.ts +43 -0
  849. package/dist/types/components/Field.d.ts +37 -0
  850. package/dist/types/components/FileUpload.d.ts +22 -0
  851. package/dist/types/components/FilterMenu.d.ts +120 -0
  852. package/dist/types/components/GatesSection.d.ts +79 -0
  853. package/dist/types/components/Icon.d.ts +40 -0
  854. package/dist/types/components/IconButton.d.ts +69 -0
  855. package/dist/types/components/IconStack.d.ts +28 -0
  856. package/dist/types/components/ImageUploadField.d.ts +38 -0
  857. package/dist/types/components/InlineEdit.d.ts +183 -0
  858. package/dist/types/components/InlineMarkdownEdit.d.ts +100 -0
  859. package/dist/types/components/Input.d.ts +128 -0
  860. package/dist/types/components/LegalDocument.d.ts +23 -0
  861. package/dist/types/components/LineDiff.d.ts +53 -0
  862. package/dist/types/components/ListHeader.d.ts +45 -0
  863. package/dist/types/components/Loading.d.ts +131 -0
  864. package/dist/types/components/Markdown.d.ts +35 -0
  865. package/dist/types/components/MarkdownEditor.d.ts +129 -0
  866. package/dist/types/components/Menu.d.ts +157 -0
  867. package/dist/types/components/Navigation.d.ts +67 -0
  868. package/dist/types/components/NumberInput.d.ts +177 -0
  869. package/dist/types/components/OTPInput.d.ts +13 -0
  870. package/dist/types/components/OrderedEntityManager.d.ts +64 -0
  871. package/dist/types/components/PagedWindowList.d.ts +23 -0
  872. package/dist/types/components/PaginationBar.d.ts +31 -0
  873. package/dist/types/components/Panel.d.ts +94 -0
  874. package/dist/types/components/PasswordInput.d.ts +7 -0
  875. package/dist/types/components/PasswordRequirements.d.ts +11 -0
  876. package/dist/types/components/PatchDiff.d.ts +38 -0
  877. package/dist/types/components/PendingVeil.d.ts +8 -0
  878. package/dist/types/components/Popover.d.ts +231 -0
  879. package/dist/types/components/Progress.d.ts +580 -0
  880. package/dist/types/components/RatingScale.d.ts +30 -0
  881. package/dist/types/components/ReadMore.d.ts +26 -0
  882. package/dist/types/components/RecordCard.d.ts +413 -0
  883. package/dist/types/components/RelativeTime.d.ts +17 -0
  884. package/dist/types/components/SandboxedFrame.d.ts +37 -0
  885. package/dist/types/components/SearchInput.d.ts +6 -0
  886. package/dist/types/components/SecretField.d.ts +90 -0
  887. package/dist/types/components/SectionNav.d.ts +15 -0
  888. package/dist/types/components/Select.d.ts +53 -0
  889. package/dist/types/components/SequenceDiagram.d.ts +15 -0
  890. package/dist/types/components/SettingRow.d.ts +144 -0
  891. package/dist/types/components/SignOffRings.d.ts +29 -0
  892. package/dist/types/components/Slider.d.ts +255 -0
  893. package/dist/types/components/SolutionChoice.d.ts +49 -0
  894. package/dist/types/components/SortMenu.d.ts +45 -0
  895. package/dist/types/components/Spinner.d.ts +29 -0
  896. package/dist/types/components/Stat.d.ts +136 -0
  897. package/dist/types/components/StatusSelect.d.ts +93 -0
  898. package/dist/types/components/Surface.d.ts +145 -0
  899. package/dist/types/components/Table.d.ts +164 -0
  900. package/dist/types/components/Tabs.d.ts +142 -0
  901. package/dist/types/components/ThemeMenu.d.ts +56 -0
  902. package/dist/types/components/Toast.d.ts +63 -0
  903. package/dist/types/components/Toggle.d.ts +168 -0
  904. package/dist/types/components/ToggleMatrix.d.ts +51 -0
  905. package/dist/types/components/Tree.d.ts +20 -0
  906. package/dist/types/components/TriStateSwitch.d.ts +63 -0
  907. package/dist/types/components/VideoPlayer.d.ts +26 -0
  908. package/dist/types/components/auth/AcceptInvitationCard.d.ts +54 -0
  909. package/dist/types/components/auth/AuthLayout.d.ts +12 -0
  910. package/dist/types/components/auth/ForgotPasswordForm.d.ts +6 -0
  911. package/dist/types/components/auth/LoginForm.d.ts +13 -0
  912. package/dist/types/components/auth/ResetPasswordForm.d.ts +9 -0
  913. package/dist/types/components/auth/SignInProviders.d.ts +56 -0
  914. package/dist/types/components/auth/SignupCard.d.ts +62 -0
  915. package/dist/types/components/auth/TermsAcceptance.d.ts +14 -0
  916. package/dist/types/components/auth/index.d.ts +8 -0
  917. package/dist/types/components/board/context.d.ts +65 -0
  918. package/dist/types/components/board/recipe.d.ts +97 -0
  919. package/dist/types/components/calendar/CalendarMonth.d.ts +32 -0
  920. package/dist/types/components/calendar/CalendarTimeGrid.d.ts +74 -0
  921. package/dist/types/components/calendar/EventActions.d.ts +16 -0
  922. package/dist/types/components/calendar/format.d.ts +42 -0
  923. package/dist/types/components/calendar/palette.d.ts +17 -0
  924. package/dist/types/components/calendar/use-calendar-drag.d.ts +53 -0
  925. package/dist/types/components/calendar/use-event-keyboard.d.ts +23 -0
  926. package/dist/types/components/calendar/use-grid-navigation.d.ts +47 -0
  927. package/dist/types/components/calendar/use-now.d.ts +20 -0
  928. package/dist/types/components/card-face/AcRingGlyph.d.ts +20 -0
  929. package/dist/types/components/card-face/BoardCardAgentSlot.d.ts +19 -0
  930. package/dist/types/components/card-face/CardFace.d.ts +106 -0
  931. package/dist/types/components/card-face/CardTypeBadge.d.ts +21 -0
  932. package/dist/types/components/card-face/EffortBadge.d.ts +9 -0
  933. package/dist/types/components/card-face/GateRingGlyph.d.ts +22 -0
  934. package/dist/types/components/card-face/OverflowRow.d.ts +40 -0
  935. package/dist/types/components/card-face/TapTip.d.ts +15 -0
  936. package/dist/types/components/card-face/hit-area.d.ts +20 -0
  937. package/dist/types/components/card-face/vocabulary.d.ts +83 -0
  938. package/dist/types/components/chart/BarList.d.ts +27 -0
  939. package/dist/types/components/chart/LineChart.d.ts +64 -0
  940. package/dist/types/components/chart/ShareBar.d.ts +26 -0
  941. package/dist/types/components/chart/TimeSeriesChart.d.ts +60 -0
  942. package/dist/types/components/chart/label-metrics.d.ts +9 -0
  943. package/dist/types/components/chart/line-chart-axis.d.ts +14 -0
  944. package/dist/types/components/chart/line-chart-scale.d.ts +55 -0
  945. package/dist/types/components/chart/line-series-style.d.ts +14 -0
  946. package/dist/types/components/chart/share-bar-labels.d.ts +17 -0
  947. package/dist/types/components/chart/shared.d.ts +122 -0
  948. package/dist/types/components/chart/time-series-scale.d.ts +29 -0
  949. package/dist/types/components/chat/Attachment.d.ts +125 -0
  950. package/dist/types/components/chat/Chat.d.ts +60 -0
  951. package/dist/types/components/chat/Composer.d.ts +62 -0
  952. package/dist/types/components/chat/ContextMeter.d.ts +45 -0
  953. package/dist/types/components/chat/EffortControl.d.ts +23 -0
  954. package/dist/types/components/chat/FileCover.d.ts +14 -0
  955. package/dist/types/components/chat/Message.d.ts +66 -0
  956. package/dist/types/components/chat/MessageScroller.d.ts +18 -0
  957. package/dist/types/components/chat/ModelSelector.d.ts +44 -0
  958. package/dist/types/components/chat/StreamingMarkdown.d.ts +11 -0
  959. package/dist/types/components/chat/download-file.d.ts +7 -0
  960. package/dist/types/components/chat/file-icon.d.ts +29 -0
  961. package/dist/types/components/chat/types.d.ts +165 -0
  962. package/dist/types/components/checklist/StatusChecklist.d.ts +37 -0
  963. package/dist/types/components/checklist/index.d.ts +3 -0
  964. package/dist/types/components/checklist/tally.d.ts +19 -0
  965. package/dist/types/components/checklist/types.d.ts +28 -0
  966. package/dist/types/components/code-editor/context.d.ts +32 -0
  967. package/dist/types/components/code-editor/editing.d.ts +39 -0
  968. package/dist/types/components/code-editor/highlight.d.ts +20 -0
  969. package/dist/types/components/code-editor/recipe.d.ts +109 -0
  970. package/dist/types/components/date-timeline/DateTimeline.d.ts +99 -0
  971. package/dist/types/components/date-timeline/TimelineRow.d.ts +22 -0
  972. package/dist/types/components/date-timeline/useBarDrag.d.ts +15 -0
  973. package/dist/types/components/date-timeline/useMarkerDrag.d.ts +14 -0
  974. package/dist/types/components/date-timeline/useTimelineZoom.d.ts +23 -0
  975. package/dist/types/components/drag-drop/context.d.ts +85 -0
  976. package/dist/types/components/drag-drop/recipe.d.ts +163 -0
  977. package/dist/types/components/drag-drop/shift.d.ts +153 -0
  978. package/dist/types/components/edit/activation.d.ts +21 -0
  979. package/dist/types/components/edit/outcome.d.ts +29 -0
  980. package/dist/types/components/edit/use-edit-session.d.ts +77 -0
  981. package/dist/types/components/file-viewer/FileViewer.d.ts +2 -0
  982. package/dist/types/components/file-viewer/PageNumberJumpField.d.ts +9 -0
  983. package/dist/types/components/file-viewer/ViewerControls.d.ts +20 -0
  984. package/dist/types/components/file-viewer/ViewerRail.d.ts +10 -0
  985. package/dist/types/components/file-viewer/ViewerStage.d.ts +22 -0
  986. package/dist/types/components/file-viewer/frames.d.ts +28 -0
  987. package/dist/types/components/file-viewer/index.d.ts +3 -0
  988. package/dist/types/components/file-viewer/types.d.ts +70 -0
  989. package/dist/types/components/file-viewer/use-frame-cursor.d.ts +13 -0
  990. package/dist/types/components/file-viewer/use-viewer-keys.d.ts +24 -0
  991. package/dist/types/components/file-viewer/use-viewer-zoom.d.ts +29 -0
  992. package/dist/types/components/focus-web/FocusWeb.d.ts +3 -0
  993. package/dist/types/components/focus-web/index.d.ts +4 -0
  994. package/dist/types/components/focus-web/layout.d.ts +55 -0
  995. package/dist/types/components/focus-web/types.d.ts +131 -0
  996. package/dist/types/components/graph-explorer/GraphExplorer.d.ts +42 -0
  997. package/dist/types/components/graph-explorer/camera-math.d.ts +119 -0
  998. package/dist/types/components/graph-explorer/index.d.ts +5 -0
  999. package/dist/types/components/graph-explorer/tree-layout.d.ts +67 -0
  1000. package/dist/types/components/graph-explorer/types.d.ts +62 -0
  1001. package/dist/types/components/graph-explorer/use-camera.d.ts +81 -0
  1002. package/dist/types/components/graph-explorer/viewport-gesture.d.ts +32 -0
  1003. package/dist/types/components/kanban/KanbanBoard.d.ts +72 -0
  1004. package/dist/types/components/kanban/recipe.d.ts +73 -0
  1005. package/dist/types/components/kanban/types.d.ts +55 -0
  1006. package/dist/types/components/markdown/Affordances.d.ts +105 -0
  1007. package/dist/types/components/markdown/AttachmentStrip.d.ts +25 -0
  1008. package/dist/types/components/markdown/ImageUpload.d.ts +56 -0
  1009. package/dist/types/components/media-error.d.ts +11 -0
  1010. package/dist/types/components/nav-sections.d.ts +10 -0
  1011. package/dist/types/components/node-canvas/NodeCanvas.d.ts +66 -0
  1012. package/dist/types/components/node-canvas/index.d.ts +3 -0
  1013. package/dist/types/components/node-canvas/layout.d.ts +29 -0
  1014. package/dist/types/components/node-canvas/types.d.ts +207 -0
  1015. package/dist/types/components/node-canvas/use-canvas-gestures.d.ts +39 -0
  1016. package/dist/types/components/openapi/OpenApiViewer.d.ts +14 -0
  1017. package/dist/types/components/openapi/OperationCard.d.ts +33 -0
  1018. package/dist/types/components/openapi/SchemaView.d.ts +14 -0
  1019. package/dist/types/components/openapi/index.d.ts +6 -0
  1020. package/dist/types/components/openapi/resolve.d.ts +72 -0
  1021. package/dist/types/components/openapi/types.d.ts +128 -0
  1022. package/dist/types/components/overlay-shell.d.ts +48 -0
  1023. package/dist/types/components/overlay-stack.d.ts +18 -0
  1024. package/dist/types/components/paged-window/PageBlock.d.ts +31 -0
  1025. package/dist/types/components/provenance/ConfidenceBar.d.ts +118 -0
  1026. package/dist/types/components/provenance/ConfidenceMeter.d.ts +21 -0
  1027. package/dist/types/components/provenance/ConfidenceReadout.d.ts +17 -0
  1028. package/dist/types/components/provenance/ProvenanceBadge.d.ts +23 -0
  1029. package/dist/types/components/provenance/ProvenanceDetail.d.ts +109 -0
  1030. package/dist/types/components/provenance/ProvenanceDisclosure.d.ts +107 -0
  1031. package/dist/types/components/provenance/absence.d.ts +37 -0
  1032. package/dist/types/components/provenance/index.d.ts +7 -0
  1033. package/dist/types/components/provenance/types.d.ts +137 -0
  1034. package/dist/types/components/rbac/AccessRequestPanel.d.ts +92 -0
  1035. package/dist/types/components/rbac/AccountMenu.d.ts +46 -0
  1036. package/dist/types/components/rbac/AgentKeysList.d.ts +22 -0
  1037. package/dist/types/components/rbac/ApiKeysPanel.d.ts +26 -0
  1038. package/dist/types/components/rbac/ApiKeysTable.d.ts +65 -0
  1039. package/dist/types/components/rbac/Brand.d.ts +8 -0
  1040. package/dist/types/components/rbac/Can.d.ts +19 -0
  1041. package/dist/types/components/rbac/ChangePasswordForm.d.ts +18 -0
  1042. package/dist/types/components/rbac/DangerZone.d.ts +8 -0
  1043. package/dist/types/components/rbac/DevToolsPopover.d.ts +36 -0
  1044. package/dist/types/components/rbac/EndedLine.d.ts +21 -0
  1045. package/dist/types/components/rbac/InvitationsList.d.ts +39 -0
  1046. package/dist/types/components/rbac/InviteMembersDialog.d.ts +21 -0
  1047. package/dist/types/components/rbac/MembersPanel.d.ts +31 -0
  1048. package/dist/types/components/rbac/PermissionRequestPanel.d.ts +36 -0
  1049. package/dist/types/components/rbac/ProfileForm.d.ts +27 -0
  1050. package/dist/types/components/rbac/ProfilePage.d.ts +16 -0
  1051. package/dist/types/components/rbac/RBACProvider.d.ts +69 -0
  1052. package/dist/types/components/rbac/RoleEditorDialog.d.ts +28 -0
  1053. package/dist/types/components/rbac/RoleKeyPicker.d.ts +24 -0
  1054. package/dist/types/components/rbac/RolePermissionMatrix.d.ts +21 -0
  1055. package/dist/types/components/rbac/RolesPermissionsPage.d.ts +24 -0
  1056. package/dist/types/components/rbac/SessionsList.d.ts +35 -0
  1057. package/dist/types/components/rbac/TeamSettingsForm.d.ts +22 -0
  1058. package/dist/types/components/rbac/TeamSwitcher.d.ts +5 -0
  1059. package/dist/types/components/rbac/approvalPanelParts.d.ts +69 -0
  1060. package/dist/types/components/rbac/index.d.ts +25 -0
  1061. package/dist/types/components/rbac/permissionSections.d.ts +8 -0
  1062. package/dist/types/components/rbac/stagedForm.d.ts +25 -0
  1063. package/dist/types/components/rbac/types.d.ts +65 -0
  1064. package/dist/types/components/rbac/useStagedImage.d.ts +15 -0
  1065. package/dist/types/components/roadmap/PhaseManager.d.ts +19 -0
  1066. package/dist/types/components/roadmap/RoadmapItemCard.d.ts +51 -0
  1067. package/dist/types/components/roadmap/RoadmapPage.d.ts +12 -0
  1068. package/dist/types/components/roadmap/RoadmapSwimlaneBoard.d.ts +15 -0
  1069. package/dist/types/components/roadmap/TrackManager.d.ts +19 -0
  1070. package/dist/types/components/roadmap/UseCaseCard.d.ts +30 -0
  1071. package/dist/types/components/roadmap/UseCaseLedgerPage.d.ts +29 -0
  1072. package/dist/types/components/roadmap/chip-tones.d.ts +2 -0
  1073. package/dist/types/components/roadmap/derive.d.ts +39 -0
  1074. package/dist/types/components/roadmap/index.d.ts +10 -0
  1075. package/dist/types/components/roadmap/types.d.ts +86 -0
  1076. package/dist/types/components/stepper/Stepper.d.ts +79 -0
  1077. package/dist/types/components/stepper/derive.d.ts +49 -0
  1078. package/dist/types/components/stepper/index.d.ts +3 -0
  1079. package/dist/types/components/stepper/types.d.ts +118 -0
  1080. package/dist/types/icons/data.d.ts +2054 -0
  1081. package/dist/types/index.d.ts +209 -0
  1082. package/dist/types/lib/attention.d.ts +62 -0
  1083. package/dist/types/lib/board/anchor.d.ts +69 -0
  1084. package/dist/types/lib/board/index.d.ts +17 -0
  1085. package/dist/types/lib/board/model.d.ts +43 -0
  1086. package/dist/types/lib/board/move.d.ts +181 -0
  1087. package/dist/types/lib/board/position.d.ts +22 -0
  1088. package/dist/types/lib/board/rejection.d.ts +8 -0
  1089. package/dist/types/lib/board/types.d.ts +294 -0
  1090. package/dist/types/lib/board/use-board.d.ts +47 -0
  1091. package/dist/types/lib/calendar/band-packer.d.ts +53 -0
  1092. package/dist/types/lib/calendar/drag.d.ts +125 -0
  1093. package/dist/types/lib/calendar/index.d.ts +4 -0
  1094. package/dist/types/lib/calendar/lane-packer.d.ts +88 -0
  1095. package/dist/types/lib/calendar/segments.d.ts +91 -0
  1096. package/dist/types/lib/calendar/types.d.ts +166 -0
  1097. package/dist/types/lib/chart-palette.d.ts +14 -0
  1098. package/dist/types/lib/clipboard.d.ts +12 -0
  1099. package/dist/types/lib/cn.d.ts +7 -0
  1100. package/dist/types/lib/color.d.ts +14 -0
  1101. package/dist/types/lib/component-guidance.d.ts +15 -0
  1102. package/dist/types/lib/confidence.d.ts +28 -0
  1103. package/dist/types/lib/date-timeline/scale.d.ts +143 -0
  1104. package/dist/types/lib/design-frame/document.d.ts +39 -0
  1105. package/dist/types/lib/design-frame/mini-app-script.d.ts +29 -0
  1106. package/dist/types/lib/design-frame/mini-app.d.ts +17 -0
  1107. package/dist/types/lib/design-frame/protocol.d.ts +78 -0
  1108. package/dist/types/lib/dev-warn.d.ts +10 -0
  1109. package/dist/types/lib/dnd/announce.d.ts +124 -0
  1110. package/dist/types/lib/dnd/autoscroll.d.ts +88 -0
  1111. package/dist/types/lib/dnd/cross-drop.d.ts +18 -0
  1112. package/dist/types/lib/dnd/geometry.d.ts +126 -0
  1113. package/dist/types/lib/dnd/index.d.ts +17 -0
  1114. package/dist/types/lib/dnd/sensors/gesture.d.ts +37 -0
  1115. package/dist/types/lib/dnd/sensors/keyboard.d.ts +54 -0
  1116. package/dist/types/lib/dnd/sensors/pointer.d.ts +59 -0
  1117. package/dist/types/lib/dnd/session.d.ts +124 -0
  1118. package/dist/types/lib/dnd/types.d.ts +226 -0
  1119. package/dist/types/lib/dnd/use-drag.d.ts +82 -0
  1120. package/dist/types/lib/dom/scroll-ancestor.d.ts +15 -0
  1121. package/dist/types/lib/format.d.ts +33 -0
  1122. package/dist/types/lib/group-in-order.d.ts +13 -0
  1123. package/dist/types/lib/header-fold.d.ts +10 -0
  1124. package/dist/types/lib/i18n/areas/auth-provenance-flows.d.ts +287 -0
  1125. package/dist/types/lib/i18n/areas/board.d.ts +51 -0
  1126. package/dist/types/lib/i18n/areas/card-face.d.ts +8 -0
  1127. package/dist/types/lib/i18n/areas/chat-chart.d.ts +202 -0
  1128. package/dist/types/lib/i18n/areas/code-editor.d.ts +40 -0
  1129. package/dist/types/lib/i18n/areas/date-timeline.d.ts +36 -0
  1130. package/dist/types/lib/i18n/areas/dates.d.ts +103 -0
  1131. package/dist/types/lib/i18n/areas/docs-views.d.ts +297 -0
  1132. package/dist/types/lib/i18n/areas/feedback.d.ts +132 -0
  1133. package/dist/types/lib/i18n/areas/formats.d.ts +30 -0
  1134. package/dist/types/lib/i18n/areas/forms.d.ts +182 -0
  1135. package/dist/types/lib/i18n/areas/keys.d.ts +15 -0
  1136. package/dist/types/lib/i18n/areas/markdown.d.ts +150 -0
  1137. package/dist/types/lib/i18n/areas/move-rejected.d.ts +16 -0
  1138. package/dist/types/lib/i18n/areas/navigation.d.ts +185 -0
  1139. package/dist/types/lib/i18n/areas/rbac.d.ts +635 -0
  1140. package/dist/types/lib/i18n/emphasis.d.ts +3 -0
  1141. package/dist/types/lib/i18n/index.d.ts +10 -0
  1142. package/dist/types/lib/i18n/number-format.d.ts +5 -0
  1143. package/dist/types/lib/i18n/plural.d.ts +7 -0
  1144. package/dist/types/lib/i18n/provider.d.ts +16 -0
  1145. package/dist/types/lib/i18n/strings.d.ts +18 -0
  1146. package/dist/types/lib/icons.d.ts +22 -0
  1147. package/dist/types/lib/interactive-target.d.ts +3 -0
  1148. package/dist/types/lib/intl-cache.d.ts +31 -0
  1149. package/dist/types/lib/legal-document.d.ts +82 -0
  1150. package/dist/types/lib/line-diff-model.d.ts +39 -0
  1151. package/dist/types/lib/markdown/attachments.d.ts +50 -0
  1152. package/dist/types/lib/markdown/caret-map.d.ts +69 -0
  1153. package/dist/types/lib/markdown/caret.d.ts +6 -0
  1154. package/dist/types/lib/markdown/commands.d.ts +186 -0
  1155. package/dist/types/lib/markdown/convert.d.ts +99 -0
  1156. package/dist/types/lib/markdown/dom.d.ts +30 -0
  1157. package/dist/types/lib/markdown/edit.d.ts +16 -0
  1158. package/dist/types/lib/markdown/history.d.ts +59 -0
  1159. package/dist/types/lib/markdown/hotkeys.d.ts +63 -0
  1160. package/dist/types/lib/markdown/image-pipeline.d.ts +173 -0
  1161. package/dist/types/lib/markdown/images.d.ts +138 -0
  1162. package/dist/types/lib/markdown/input.d.ts +38 -0
  1163. package/dist/types/lib/markdown/keys.d.ts +34 -0
  1164. package/dist/types/lib/markdown/paste.d.ts +9 -0
  1165. package/dist/types/lib/markdown/position.d.ts +43 -0
  1166. package/dist/types/lib/markdown/project.d.ts +88 -0
  1167. package/dist/types/lib/markdown/reconcile.d.ts +63 -0
  1168. package/dist/types/lib/markdown/surface.d.ts +236 -0
  1169. package/dist/types/lib/motion.d.ts +30 -0
  1170. package/dist/types/lib/pad.d.ts +6 -0
  1171. package/dist/types/lib/paged-window/index.d.ts +2 -0
  1172. package/dist/types/lib/paged-window/layout.d.ts +21 -0
  1173. package/dist/types/lib/paged-window/list-owner.d.ts +12 -0
  1174. package/dist/types/lib/paged-window/records-binding.d.ts +102 -0
  1175. package/dist/types/lib/paged-window/store.d.ts +307 -0
  1176. package/dist/types/lib/paged-window/use-measured-pitch.d.ts +34 -0
  1177. package/dist/types/lib/paged-window/use-page-visibility.d.ts +20 -0
  1178. package/dist/types/lib/paged-window/use-paged-window.d.ts +61 -0
  1179. package/dist/types/lib/paged-window/use-scroll-root.d.ts +18 -0
  1180. package/dist/types/lib/persist.d.ts +57 -0
  1181. package/dist/types/lib/preference-values.d.ts +72 -0
  1182. package/dist/types/lib/preferences.d.ts +26 -0
  1183. package/dist/types/lib/reads/hooks.d.ts +49 -0
  1184. package/dist/types/lib/reads/index.d.ts +5 -0
  1185. package/dist/types/lib/reads/optimistic.d.ts +119 -0
  1186. package/dist/types/lib/reads/refetch.d.ts +83 -0
  1187. package/dist/types/lib/reads/slots.d.ts +137 -0
  1188. package/dist/types/lib/reads/types.d.ts +155 -0
  1189. package/dist/types/lib/realtime/hooks.d.ts +38 -0
  1190. package/dist/types/lib/realtime/index.d.ts +4 -0
  1191. package/dist/types/lib/realtime/provider.d.ts +38 -0
  1192. package/dist/types/lib/realtime/registry.d.ts +225 -0
  1193. package/dist/types/lib/realtime/types.d.ts +242 -0
  1194. package/dist/types/lib/records/define-record-type.d.ts +29 -0
  1195. package/dist/types/lib/records/hooks.d.ts +46 -0
  1196. package/dist/types/lib/records/index.d.ts +5 -0
  1197. package/dist/types/lib/records/store.d.ts +289 -0
  1198. package/dist/types/lib/records/types.d.ts +195 -0
  1199. package/dist/types/lib/records/wire.d.ts +96 -0
  1200. package/dist/types/lib/reduced-motion-help.d.ts +23 -0
  1201. package/dist/types/lib/scroll-caret.d.ts +6 -0
  1202. package/dist/types/lib/sim/createSimStore.d.ts +18 -0
  1203. package/dist/types/lib/sim/index.d.ts +5 -0
  1204. package/dist/types/lib/sim/latency.d.ts +10 -0
  1205. package/dist/types/lib/sim/registry.d.ts +14 -0
  1206. package/dist/types/lib/sim/settings.d.ts +11 -0
  1207. package/dist/types/lib/sim/types.d.ts +3 -0
  1208. package/dist/types/lib/submit-shortcut.d.ts +24 -0
  1209. package/dist/types/lib/syntax/index.d.ts +16 -0
  1210. package/dist/types/lib/syntax/languages/bash.d.ts +1 -0
  1211. package/dist/types/lib/syntax/languages/css.d.ts +1 -0
  1212. package/dist/types/lib/syntax/languages/html.d.ts +17 -0
  1213. package/dist/types/lib/syntax/languages/index.d.ts +33 -0
  1214. package/dist/types/lib/syntax/languages/javascript.d.ts +22 -0
  1215. package/dist/types/lib/syntax/languages/json.d.ts +1 -0
  1216. package/dist/types/lib/syntax/languages/mongodb.d.ts +1 -0
  1217. package/dist/types/lib/syntax/languages/plain.d.ts +9 -0
  1218. package/dist/types/lib/syntax/languages/sql.d.ts +4 -0
  1219. package/dist/types/lib/syntax/languages/vue.d.ts +1 -0
  1220. package/dist/types/lib/syntax/languages/yaml.d.ts +1 -0
  1221. package/dist/types/lib/syntax/markdown/frames.d.ts +145 -0
  1222. package/dist/types/lib/syntax/markdown/grammar.d.ts +1 -0
  1223. package/dist/types/lib/syntax/markdown/index.d.ts +5 -0
  1224. package/dist/types/lib/syntax/markdown/inline.d.ts +21 -0
  1225. package/dist/types/lib/syntax/markdown/parse.d.ts +15 -0
  1226. package/dist/types/lib/syntax/markdown/refs.d.ts +47 -0
  1227. package/dist/types/lib/syntax/markdown/render.d.ts +25 -0
  1228. package/dist/types/lib/syntax/markdown/spans.d.ts +84 -0
  1229. package/dist/types/lib/syntax/markdown/types.d.ts +108 -0
  1230. package/dist/types/lib/syntax/registry.d.ts +37 -0
  1231. package/dist/types/lib/syntax/tokenize.d.ts +17 -0
  1232. package/dist/types/lib/syntax/types.d.ts +119 -0
  1233. package/dist/types/lib/time/index.d.ts +4 -0
  1234. package/dist/types/lib/time/instant.d.ts +2 -0
  1235. package/dist/types/lib/time/plain.d.ts +61 -0
  1236. package/dist/types/lib/time/relativeAge.d.ts +18 -0
  1237. package/dist/types/lib/time/relativeClock.d.ts +8 -0
  1238. package/dist/types/lib/time/types.d.ts +87 -0
  1239. package/dist/types/lib/time/zone.d.ts +106 -0
  1240. package/dist/types/lib/use-controllable.d.ts +14 -0
  1241. package/dist/types/lib/use-fill-height.d.ts +26 -0
  1242. package/dist/types/lib/use-hydrated.d.ts +8 -0
  1243. package/dist/types/lib/use-media-query.d.ts +29 -0
  1244. package/dist/types/lib/use-relabel-base-ui-dismiss.d.ts +6 -0
  1245. package/dist/types/lib/use-release-snap-drag.d.ts +25 -0
  1246. package/dist/types/lib/use-roving-options.d.ts +10 -0
  1247. package/dist/types/lib/values/absent.d.ts +7 -0
  1248. package/dist/types/lib/values/boolean.d.ts +29 -0
  1249. package/dist/types/lib/values/currency.d.ts +22 -0
  1250. package/dist/types/lib/values/date.d.ts +30 -0
  1251. package/dist/types/lib/values/datetime.d.ts +48 -0
  1252. package/dist/types/lib/values/index.d.ts +5 -0
  1253. package/dist/types/lib/values/locale-date.d.ts +34 -0
  1254. package/dist/types/lib/values/number.d.ts +27 -0
  1255. package/dist/types/pure.d.ts +48 -0
  1256. package/package.json +136 -4
@@ -0,0 +1,398 @@
1
+ import { jsx as l, jsxs as b, Fragment as j } from "react/jsx-runtime";
2
+ import { useState as v, useRef as z, useEffect as R, useMemo as N, useCallback as U, useLayoutEffect as I } from "react";
3
+ import { Menu as $, MenuGroup as S, MenuItem as T, MenuSeparator as G } from "../Menu.js";
4
+ import { Button as q } from "../Button.js";
5
+ import { Icon as y } from "../Icon.js";
6
+ import { Tooltip as X } from "../Popover.js";
7
+ import { cn as L } from "../../lib/cn.js";
8
+ import { listLanguages as K } from "../../lib/syntax/index.js";
9
+ import { isAttachmentReference as V } from "../../lib/markdown/attachments.js";
10
+ import { isUnstoredImageSrc as W } from "../../lib/markdown/images.js";
11
+ import { marksAt as F, constructAt as O, blockAt as M, convertBlock as Y, unwrapConstruct as J, setFenceLanguage as Q, editConstruct as Z } from "../../lib/markdown/convert.js";
12
+ import { toggleBold as ee, toggleItalic as te, toggleCode as ne, toggleStrike as oe, alignColumn as B, insertRow as re, insertColumn as le, deleteRow as ie, deleteColumn as ce, deleteTable as ae } from "../../lib/markdown/commands.js";
13
+ import { sourceOffsetAt as D, domPointAt as se } from "../../lib/markdown/position.js";
14
+ import { useUiStrings as C } from "../../lib/i18n/provider.js";
15
+ function Ee(e, t) {
16
+ const [i, n] = v(0), r = z(null);
17
+ return R(() => {
18
+ if (!e) return;
19
+ const a = e.root.ownerDocument, o = () => n((u) => u + 1);
20
+ return a.addEventListener("selectionchange", o), () => a.removeEventListener("selectionchange", o);
21
+ }, [e]), N(() => {
22
+ if (!e) return { source: "", caret: null, ranged: !1, block: null, construct: null, marks: /* @__PURE__ */ new Set() };
23
+ const a = e.getSource(), o = e.getSelection();
24
+ if (!o) {
25
+ const s = r.current;
26
+ return !s || s.caret === null || s.caret > a.length ? { source: a, caret: null, ranged: !1, block: null, construct: null, marks: /* @__PURE__ */ new Set() } : {
27
+ source: a,
28
+ caret: s.caret,
29
+ ranged: !1,
30
+ block: M(a, s.caret),
31
+ construct: O(e.getProjection(), s.caret),
32
+ marks: F(e.getProjection(), s.caret)
33
+ };
34
+ }
35
+ const u = Math.min(o.anchor, o.head), c = {
36
+ source: a,
37
+ caret: u,
38
+ ranged: o.anchor !== o.head,
39
+ block: M(a, u),
40
+ construct: O(e.getProjection(), u),
41
+ marks: F(e.getProjection(), u)
42
+ };
43
+ return r.current = c, c;
44
+ }, [e, i, t]);
45
+ }
46
+ const E = [
47
+ { kind: "paragraph", name: "paragraph", icon: "text" },
48
+ { kind: "heading", level: 1, name: "heading1", icon: "heading-1" },
49
+ { kind: "heading", level: 2, name: "heading2", icon: "heading-2" },
50
+ { kind: "heading", level: 3, name: "heading3", icon: "heading-3" },
51
+ { kind: "bullet", name: "bulletList", icon: "list" },
52
+ { kind: "ordered", name: "numberedList", icon: "list-ordered" },
53
+ { kind: "task", name: "taskList", icon: "list-checks" },
54
+ { kind: "quote", name: "blockquote", icon: "quote" },
55
+ { kind: "code", name: "codeBlock", icon: "terminal" },
56
+ { kind: "table", name: "table", icon: "table" },
57
+ { kind: "rule", name: "horizontalRule", icon: "minus" }
58
+ ], A = (e, t) => !!t && t.kind === e.kind && (e.level === void 0 || t.level === e.level);
59
+ function Ae({ surface: e, state: t, run: i, container: n, external: r }) {
60
+ const a = C().markdownAffordances, [o, u] = v(null), [c, s] = v(null), [m, p] = v(!1), h = U(
61
+ (d) => {
62
+ if (!e || !n) return null;
63
+ const f = H(e, d);
64
+ return f === null ? null : { top: f.top - n.getBoundingClientRect().top + n.scrollTop, height: f.height };
65
+ },
66
+ [e, n]
67
+ );
68
+ R(() => {
69
+ if (!e || !n || m) return;
70
+ const d = e.root, f = (x) => {
71
+ const P = be(e, x.clientX, x.clientY);
72
+ P !== null && (s(P), u(h(P)));
73
+ }, w = () => {
74
+ if (t.caret === null) return u(null);
75
+ s(t.caret), u(h(t.caret));
76
+ };
77
+ return d.addEventListener("pointermove", f), n.addEventListener("pointerleave", w), () => {
78
+ d.removeEventListener("pointermove", f), n.removeEventListener("pointerleave", w);
79
+ };
80
+ }, [e, n, h, m, t.caret]), R(() => {
81
+ m || t.caret === null || (s(t.caret), u(h(t.caret)));
82
+ }, [t.caret, h, m]);
83
+ const g = N(
84
+ () => e && c !== null ? M(e.getSource(), c) : null,
85
+ [e, c, t.source]
86
+ );
87
+ return o === null || c === null ? null : /* @__PURE__ */ l(
88
+ "div",
89
+ {
90
+ className: L("absolute z-10 flex items-center", r ? "right-full" : "left-0"),
91
+ style: { top: o.top, height: o.height },
92
+ children: /* @__PURE__ */ l(
93
+ $,
94
+ {
95
+ open: m,
96
+ onOpenChange: p,
97
+ side: "right",
98
+ align: "start",
99
+ trigger: (
100
+ /* `Button`, not a hand-rolled `<button>` — the SAME control
101
+ `BarButton` (below) and the header toolbar use, which is what
102
+ gives this a real resting/hover/focus/pressed identity instead
103
+ of a bare icon with a manual opacity fade standing in for one.
104
+ The global `:focus-visible` rule (authored.css) covers focus for
105
+ free; `Button` itself supplies hover, active-press translate and
106
+ the ripple. `more-vertical` replaces `grip-vertical`: this opens
107
+ a menu, it does not drag anything, and a grip glyph told the
108
+ opposite story. */
109
+ /* @__PURE__ */ l(
110
+ q,
111
+ {
112
+ variant: "ghost",
113
+ size: "sm",
114
+ iconOnly: !0,
115
+ "aria-label": a.lineType(g ? ue(g, a.blockTypes) : a.blockTypes.paragraph),
116
+ onMouseDown: (d) => d.preventDefault(),
117
+ onClick: () => p(!0),
118
+ className: L(m && "bg-control-subtle text-control-text hover:bg-control-subtle-hover"),
119
+ children: /* @__PURE__ */ l(y, { name: "more-vertical", className: "h-3.5 w-3.5" })
120
+ }
121
+ )
122
+ ),
123
+ children: /* @__PURE__ */ l(S, { label: a.turnInto, children: E.map((d) => /* @__PURE__ */ b(
124
+ T,
125
+ {
126
+ selected: A(d, g),
127
+ onClick: () => {
128
+ e?.root.focus(), e?.apply({ start: c, end: c, text: "" }, { anchor: c, head: c }), i(Y(d.kind, { level: d.level }));
129
+ },
130
+ children: [
131
+ /* @__PURE__ */ l(y, { name: d.icon, className: "mr-2 h-4 w-4 text-tertiary" }),
132
+ a.blockTypes[d.name]
133
+ ]
134
+ },
135
+ `${d.kind}${d.level ?? ""}`
136
+ )) })
137
+ }
138
+ )
139
+ }
140
+ );
141
+ }
142
+ function ue(e, t) {
143
+ const i = E.find((n) => A(n, e));
144
+ return i ? t[i.name] : e.kind;
145
+ }
146
+ const de = () => !1;
147
+ function Ie({ surface: e, state: t, run: i, container: n, external: r, isFileUrl: a }) {
148
+ const o = t.construct && !W(t.construct.target) && !V(t.construct.kind, t.construct.target, { isFileUrl: a ?? de }) ? t.construct : null, u = o ?? (t.block?.kind === "code" || t.block?.kind === "table" ? t.block : null), c = z(null), [s, m] = v(null), [p, h] = v("above");
149
+ return I(() => {
150
+ if (h("above"), !e || !n || !u) {
151
+ m(null);
152
+ return;
153
+ }
154
+ const g = o ? fe(e, o) : null;
155
+ (() => {
156
+ const f = o ? g && ke(g) : H(e, u.start);
157
+ if (!f) {
158
+ m(null);
159
+ return;
160
+ }
161
+ const w = n.getBoundingClientRect().top, x = r ? n.offsetTop : n.scrollTop;
162
+ m({
163
+ top: f.top - w + x,
164
+ bottom: f.bottom - w + x
165
+ });
166
+ })();
167
+ }, [e, n, u, o, t.source, r]), I(() => {
168
+ if (!s || p === "below" || !n) return;
169
+ const g = c.current?.getBoundingClientRect(), d = n.getBoundingClientRect().top;
170
+ g && g.top < d && h("below");
171
+ }, [s, p, n]), !u || s === null || !e ? null : /* @__PURE__ */ b(
172
+ "div",
173
+ {
174
+ ref: c,
175
+ className: L(
176
+ "absolute left-8 z-20 flex items-center gap-1 rounded-lg border border-border-subtle",
177
+ "bg-surface px-1.5 py-1 shadow-lg"
178
+ ),
179
+ style: p === "above" ? { top: s.top, transform: "translateY(calc(-100% - 6px))" } : { top: s.bottom + 6 },
180
+ onMouseDown: (g) => g.preventDefault(),
181
+ children: [
182
+ o && /* @__PURE__ */ l(me, { surface: e, construct: o, run: i }),
183
+ !o && t.block?.kind === "code" && /* @__PURE__ */ l(ge, { language: t.block.language ?? "", run: i }),
184
+ !o && t.block?.kind === "table" && /* @__PURE__ */ l(pe, { run: i })
185
+ ]
186
+ }
187
+ );
188
+ }
189
+ function me({
190
+ surface: e,
191
+ construct: t,
192
+ run: i
193
+ }) {
194
+ const n = C().markdownAffordances, r = t.start, a = (o) => () => Z(e.getProjection(), r, o);
195
+ return /* @__PURE__ */ b(j, { children: [
196
+ /* @__PURE__ */ l(
197
+ "input",
198
+ {
199
+ "aria-label": t.kind === "image" ? n.imageSource : n.linkDestination,
200
+ defaultValue: t.target,
201
+ placeholder: "https://…",
202
+ onMouseDown: (o) => o.stopPropagation(),
203
+ onKeyDown: (o) => {
204
+ o.key === "Enter" && (o.preventDefault(), i(a({ target: o.target.value })));
205
+ },
206
+ onBlur: (o) => i(a({ target: o.target.value })),
207
+ className: L(
208
+ "h-7 w-56 rounded border border-border-subtle bg-surface-inset px-2 text-sm",
209
+ "text-primary outline-none focus:border-control focus:shadow-[0_0_0_3px_var(--control-focus-halo)]"
210
+ )
211
+ },
212
+ `${r}-${t.target}`
213
+ ),
214
+ /* @__PURE__ */ l(
215
+ k,
216
+ {
217
+ icon: t.kind === "image" ? "link" : "image",
218
+ label: t.kind === "image" ? n.turnIntoLink : n.turnIntoImage,
219
+ onClick: () => i(a({ kind: t.kind === "image" ? "link" : "image" }))
220
+ }
221
+ ),
222
+ /* @__PURE__ */ l(
223
+ k,
224
+ {
225
+ icon: "unlink",
226
+ label: t.kind === "image" ? n.removeImage : n.removeLink,
227
+ onClick: () => i(() => J(e.getProjection(), r))
228
+ }
229
+ )
230
+ ] });
231
+ }
232
+ function ge({ language: e, run: t }) {
233
+ const i = C().markdownAffordances, n = N(() => {
234
+ const r = K().sort();
235
+ return e && !r.includes(e) ? [e, ...r] : r;
236
+ }, [e]);
237
+ return /* @__PURE__ */ b("label", { className: "flex items-center gap-1.5 px-1 text-xs text-tertiary", children: [
238
+ i.language,
239
+ /* @__PURE__ */ b(
240
+ "select",
241
+ {
242
+ "aria-label": i.codeBlockLanguage,
243
+ value: e,
244
+ onMouseDown: (r) => r.stopPropagation(),
245
+ onChange: (r) => t(Q(r.target.value)),
246
+ className: L(
247
+ "h-7 rounded border border-border-subtle bg-surface-inset px-1.5 text-sm",
248
+ "text-primary outline-none focus:border-control focus:shadow-[0_0_0_3px_var(--control-focus-halo)]"
249
+ ),
250
+ children: [
251
+ /* @__PURE__ */ l("option", { value: "", children: i.noLanguage }),
252
+ n.map((r) => /* @__PURE__ */ l("option", { value: r, children: r }, r))
253
+ ]
254
+ }
255
+ )
256
+ ] });
257
+ }
258
+ function pe({ run: e }) {
259
+ const t = C().markdownAffordances, i = C().markdownEditor.newColumnHeader;
260
+ return /* @__PURE__ */ b(j, { children: [
261
+ /* @__PURE__ */ l(k, { icon: "align-left", label: t.alignLeft, onClick: () => e(B("left")) }),
262
+ /* @__PURE__ */ l(k, { icon: "align-center", label: t.alignCenter, onClick: () => e(B("center")) }),
263
+ /* @__PURE__ */ l(k, { icon: "align-right", label: t.alignRight, onClick: () => e(B("right")) }),
264
+ /* @__PURE__ */ l(_, {}),
265
+ /* @__PURE__ */ l(k, { icon: "insert-row", label: t.insertRowBelow, onClick: () => e(re(!0)) }),
266
+ /* @__PURE__ */ l(k, { icon: "insert-column", label: t.insertColumnAfter, onClick: () => e(le(!0, i)) }),
267
+ /* @__PURE__ */ l(_, {}),
268
+ /* @__PURE__ */ l(k, { icon: "delete-row", label: t.deleteRow, onClick: () => e(ie) }),
269
+ /* @__PURE__ */ l(k, { icon: "delete-column", label: t.deleteColumn, onClick: () => e(ce) }),
270
+ /* @__PURE__ */ l(k, { icon: "trash-2", label: t.deleteTable, onClick: () => e(ae) })
271
+ ] });
272
+ }
273
+ const _ = () => /* @__PURE__ */ l("span", { className: "mx-0.5 h-4 w-px bg-border-subtle" });
274
+ function k({ icon: e, label: t, onClick: i }) {
275
+ return /* @__PURE__ */ l(X, { content: t, children: /* @__PURE__ */ l(
276
+ q,
277
+ {
278
+ variant: "ghost",
279
+ size: "sm",
280
+ "aria-label": t,
281
+ onMouseDown: (n) => n.preventDefault(),
282
+ onClick: i,
283
+ children: /* @__PURE__ */ l(y, { name: e, className: "size-4" })
284
+ }
285
+ ) });
286
+ }
287
+ function Fe({ surface: e, state: t, run: i, container: n }) {
288
+ const r = C().markdownAffordances, [a, o] = v(null);
289
+ if (R(() => {
290
+ if (!e || !n) return;
291
+ const c = e.root, s = (m) => {
292
+ const p = e.getSelection();
293
+ if (!(!!p && p.anchor !== p.head)) return;
294
+ m.preventDefault();
295
+ const g = n.getBoundingClientRect();
296
+ o({ x: m.clientX - g.left, y: m.clientY - g.top + n.scrollTop });
297
+ };
298
+ return c.addEventListener("contextmenu", s), () => c.removeEventListener("contextmenu", s);
299
+ }, [e, n]), !a) return null;
300
+ const u = [
301
+ // I18N-ALLOW: format id paired with its toggle command
302
+ ["bold", "bold", ee],
303
+ // I18N-ALLOW: format id paired with its toggle command
304
+ ["italic", "italic", te],
305
+ // I18N-ALLOW: format id paired with its toggle command
306
+ ["inlineCode", "code", ne],
307
+ // I18N-ALLOW: format id paired with its toggle command
308
+ ["strikethrough", "strikethrough", oe]
309
+ ];
310
+ return /* @__PURE__ */ l("div", { className: "absolute z-30", style: { left: a.x, top: a.y }, children: /* @__PURE__ */ b(
311
+ $,
312
+ {
313
+ open: !0,
314
+ onOpenChange: (c) => !c && o(null),
315
+ side: "bottom",
316
+ align: "start",
317
+ trigger: /* @__PURE__ */ l("span", { "aria-hidden": "true", className: "block h-0 w-0" }),
318
+ children: [
319
+ /* @__PURE__ */ l(S, { label: r.formatGroup, children: u.map(([c, s, m]) => /* @__PURE__ */ b(
320
+ T,
321
+ {
322
+ onClick: () => {
323
+ i(m), o(null);
324
+ },
325
+ children: [
326
+ /* @__PURE__ */ l(y, { name: s, className: "mr-2 h-4 w-4 text-tertiary" }),
327
+ r.format[c]
328
+ ]
329
+ },
330
+ c
331
+ )) }),
332
+ /* @__PURE__ */ l(G, {}),
333
+ /* @__PURE__ */ l(S, { label: r.turnInto, children: E.map((c) => /* @__PURE__ */ b(
334
+ T,
335
+ {
336
+ selected: A(c, t.block),
337
+ onClick: () => {
338
+ i(Y(c.kind, { level: c.level })), o(null);
339
+ },
340
+ children: [
341
+ /* @__PURE__ */ l(y, { name: c.icon, className: "mr-2 h-4 w-4 text-tertiary" }),
342
+ r.blockTypes[c.name]
343
+ ]
344
+ },
345
+ `${c.kind}${c.level ?? ""}`
346
+ )) })
347
+ ]
348
+ }
349
+ ) });
350
+ }
351
+ function H(e, t) {
352
+ const i = e.getSource();
353
+ let n = Math.max(0, Math.min(t, i.length));
354
+ for (; n > 0 && i[n - 1] !== `
355
+ `; ) n--;
356
+ const a = e.getCaretMap().stops.find((s) => s >= n) ?? n, o = he(e, a);
357
+ if (!o) return null;
358
+ const u = e.root.ownerDocument.createRange();
359
+ try {
360
+ u.setStart(o.node, o.offset), u.collapse(!0);
361
+ } catch {
362
+ return null;
363
+ }
364
+ const c = u.getBoundingClientRect();
365
+ return c.height === 0 && c.top === 0 ? null : c;
366
+ }
367
+ function fe(e, t) {
368
+ const i = t.kind === "image" ? "[data-md-src]" : "[data-md-href]";
369
+ for (const n of e.root.querySelectorAll(i))
370
+ if (D(e.root, n, 0) === t.start) return n;
371
+ return null;
372
+ }
373
+ function ke(e) {
374
+ const t = e.getBoundingClientRect();
375
+ return t.width === 0 && t.height === 0 ? null : t;
376
+ }
377
+ function he(e, t) {
378
+ return se(e.root, t);
379
+ }
380
+ function be(e, t, i) {
381
+ const n = e.root.ownerDocument;
382
+ if (typeof n.caretPositionFromPoint == "function") {
383
+ const r = n.caretPositionFromPoint(t, i);
384
+ return r ? D(e.root, r.offsetNode, r.offset) : null;
385
+ }
386
+ if (typeof n.caretRangeFromPoint == "function") {
387
+ const r = n.caretRangeFromPoint(t, i);
388
+ return r ? D(e.root, r.startContainer, r.startOffset) : null;
389
+ }
390
+ return null;
391
+ }
392
+ export {
393
+ Ie as ConstructBar,
394
+ Fe as ConversionMenu,
395
+ Ae as LineHandle,
396
+ Ee as useEditorState
397
+ };
398
+ //# sourceMappingURL=Affordances.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Affordances.js","sources":["../../../src/components/markdown/Affordances.tsx"],"sourcesContent":["/* ============================================================================\n AFFORDANCES — the controls that reach what the caret no longer can.\n\n WHY THESE ARE NOT OPTIONAL. With the markdown never shown, every parameter\n that lives in markup became unreachable: a link's destination has no caret\n positions at all, and neither does a fence's language, an image's source or a\n table's alignment row. The editor can render them and cannot edit them. These\n three surfaces are where that is given back:\n\n the line handle what a LINE is — paragraph, heading, quote, list, fence\n the construct bar what a CONSTRUCT holds — destination, language, columns\n the context menu what a SELECTION should become\n\n NONE OF THEM LIVE INSIDE THE EDITABLE. A node in there is either text the\n projection invariant counts, and a\n per-line control is not that — a frame can span lines and a line can span\n frames. They are an overlay in the same positioned container, measured from\n the DOM rather than inserted into it.\n\n AND NONE OF THEM TAKE THE CARET. Every control cancels `mousedown`, which is\n the same trick the toolbar uses: the browser moves focus on mousedown, so\n cancelling it leaves the selection exactly where the user left it and the\n command has something to act on. A control that steals the caret is a control\n that cannot edit the thing it was opened for.\n ========================================================================= */\n\nimport { useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState } from \"react\";\n\nimport { Menu, MenuGroup, MenuItem, MenuSeparator } from \"../Menu\";\nimport { Button } from \"../Button\";\nimport { Icon } from \"../Icon\";\nimport { Tooltip } from \"../Popover\";\nimport { cn } from \"../../lib/cn\";\nimport { useUiStrings, type UiStrings } from \"../../lib/i18n\";\nimport { listLanguages } from \"../../lib/syntax\";\nimport { isAttachmentReference } from \"../../lib/markdown/attachments\";\nimport { isUnstoredImageSrc } from \"../../lib/markdown/images\";\nimport {\n blockAt,\n constructAt,\n convertBlock,\n editConstruct,\n marksAt,\n setFenceLanguage,\n unwrapConstruct,\n type BlockInfo,\n type BlockKind,\n type ConstructInfo,\n type InlineMark,\n} from \"../../lib/markdown/convert\";\nimport {\n alignColumn,\n deleteColumn,\n deleteRow,\n deleteTable,\n insertColumn,\n insertRow,\n toggleBold,\n toggleCode,\n toggleItalic,\n toggleStrike,\n type Command,\n} from \"../../lib/markdown/commands\";\nimport { domPointAt, sourceOffsetAt } from \"../../lib/markdown/position\";\nimport type { MarkdownSurface } from \"../../lib/markdown/surface\";\n\n/* --- What the editor is currently looking at ------------------------------ */\n\nexport interface EditorState {\n source: string;\n /** Collapsed caret offset, or null when there is no selection in the host. */\n caret: number | null;\n /** True when the selection covers something. */\n ranged: boolean;\n block: BlockInfo | null;\n construct: ConstructInfo | null;\n /**\n * Inline marks (bold, italic, inline code, strikethrough) surrounding the\n * caret's own position — the header toolbar's only source for \"is bold\n * currently active\", so a toggle button never re-derives it from the\n * source text a second time. Empty, never null, when there is nothing to\n * report, which is the harder-to-misuse shape for a caller that only ever\n * does `marks.has(...)`.\n */\n marks: Set<InlineMark>;\n}\n\n/**\n * Tracks source and selection, and derives what is under the caret.\n *\n * `selectionchange` is a DOCUMENT event and the only signal for a caret the\n * browser moved on its own — a click, a drag, an arrow key. It fires for the\n * surface's own restore too, which is harmless here because this only reads.\n */\nexport function useEditorState(surface: MarkdownSurface | null, version: number): EditorState {\n const [tick, setTick] = useState(0);\n /**\n * THE LAST KNOWN CARET, HELD ON PURPOSE.\n *\n * The moment a control takes focus — typing a URL into the destination field\n * — the selection is no longer inside the editable, so the surface reports\n * none and everything derived from it becomes null. The bar would then\n * unmount the input the user is typing in, which the probe caught as a field\n * that vanished between `fill` and `Enter`.\n *\n * \"No selection\" is not the same as \"nothing to act on\": it means focus is\n * somewhere else for a moment, and the document has not moved. Holding the\n * last reading is what makes a control able to edit the thing it was opened\n * for — the same reason every button here cancels mousedown.\n */\n const held = useRef<EditorState | null>(null);\n\n useEffect(() => {\n if (!surface) return;\n const document = surface.root.ownerDocument;\n const onSelect = () => setTick((n) => n + 1);\n document.addEventListener(\"selectionchange\", onSelect);\n return () => document.removeEventListener(\"selectionchange\", onSelect);\n }, [surface]);\n\n return useMemo(() => {\n void tick;\n if (!surface) return { source: \"\", caret: null, ranged: false, block: null, construct: null, marks: new Set<InlineMark>() };\n const source = surface.getSource();\n const selection = surface.getSelection();\n\n if (!selection) {\n const last = held.current;\n /* Re-derived against the CURRENT source: an edit made from a control\n moves the offsets the held reading was built from. */\n if (!last || last.caret === null || last.caret > source.length) {\n return { source, caret: null, ranged: false, block: null, construct: null, marks: new Set<InlineMark>() };\n }\n return {\n source,\n caret: last.caret,\n ranged: false,\n block: blockAt(source, last.caret),\n construct: constructAt(surface.getProjection(), last.caret),\n marks: marksAt(surface.getProjection(), last.caret),\n };\n }\n\n const from = Math.min(selection.anchor, selection.head);\n const next: EditorState = {\n source,\n caret: from,\n ranged: selection.anchor !== selection.head,\n block: blockAt(source, from),\n construct: constructAt(surface.getProjection(), from),\n marks: marksAt(surface.getProjection(), from),\n };\n held.current = next;\n return next;\n }, [surface, tick, version]);\n}\n\n/* --- The block types a line can be ---------------------------------------- */\n\ninterface TypeChoice {\n kind: BlockKind;\n level?: number;\n /** Which of the active provider's `markdownAffordances.blockTypes` words names this choice. */\n name: keyof UiStrings[\"markdownAffordances\"][\"blockTypes\"];\n icon: string;\n}\n\n/**\n * WHAT THE MENU OFFERS, and the omissions are deliberate. Headings stop at\n * three because four, five and six exist in markdown and not in anyone's\n * document; the hotkeys still reach them. There is no \"image\" — an image is\n * something you insert, not something a paragraph becomes.\n */\nconst TYPES: TypeChoice[] = [\n { kind: \"paragraph\", name: \"paragraph\", icon: \"text\" },\n { kind: \"heading\", level: 1, name: \"heading1\", icon: \"heading-1\" },\n { kind: \"heading\", level: 2, name: \"heading2\", icon: \"heading-2\" },\n { kind: \"heading\", level: 3, name: \"heading3\", icon: \"heading-3\" },\n { kind: \"bullet\", name: \"bulletList\", icon: \"list\" },\n { kind: \"ordered\", name: \"numberedList\", icon: \"list-ordered\" },\n { kind: \"task\", name: \"taskList\", icon: \"list-checks\" },\n { kind: \"quote\", name: \"blockquote\", icon: \"quote\" },\n { kind: \"code\", name: \"codeBlock\", icon: \"terminal\" },\n { kind: \"table\", name: \"table\", icon: \"table\" },\n { kind: \"rule\", name: \"horizontalRule\", icon: \"minus\" },\n];\n\nconst sameType = (choice: TypeChoice, block: BlockInfo | null): boolean =>\n !!block && block.kind === choice.kind && (choice.level === undefined || block.level === choice.level);\n\n/* --- The line handle ------------------------------------------------------ */\n\nexport interface LineHandleProps {\n surface: MarkdownSurface | null;\n state: EditorState;\n run: (command: Command) => void;\n /** The container the handle is positioned inside. */\n container: HTMLElement | null;\n /**\n * DX-3374: render in the EXTERNAL gutter (`right-full`, the same slot\n * `EditGutter`'s pencil sits in — see `MarkdownEditor`'s `chrome=\"flush\"`)\n * rather than the INTERNAL one (`left-0`, inset into the editable's own\n * padding). Both are still positioned relative to the same `container`; only\n * which side of its left edge the handle renders on changes. Default\n * (omitted/false) is the original inset gutter, unchanged for every\n * `chrome=\"panel\"` consumer.\n */\n external?: boolean;\n}\n\n/**\n * A type control beside the line under the pointer, or under the caret.\n *\n * ON HOVER AND ON THE CARET'S LINE, never on every line at once: a permanent\n * gutter of forty identical buttons is noise, and one that follows the pointer\n * is discoverable the moment a pointer moves. The caret's line is included so\n * the control exists for someone who is not using a pointer at all.\n */\nexport function LineHandle({ surface, state, run, container, external }: LineHandleProps) {\n const strings = useUiStrings().markdownAffordances;\n const [metrics, setMetrics] = useState<{ top: number; height: number } | null>(null);\n const [offset, setOffset] = useState<number | null>(null);\n const [open, setOpen] = useState(false);\n\n /**\n * The line holding `at`, as a box relative to the container.\n *\n * HEIGHT TRAVELS WITH THE TOP, not just the y-coordinate, because the button\n * is now a real control sized off `--control-*` (28-44px depending on\n * pointer, per the density scale) rather than the old fixed 20px glyph —\n * taller, on a coarse pointer, than most lines of text. Centring it inside\n * the line's own box (see the render below) is what keeps it from riding\n * above or below the text it belongs to at every size the button can be,\n * without hard-coding that size here and having the two drift apart.\n */\n const measure = useCallback(\n (at: number): { top: number; height: number } | null => {\n if (!surface || !container) return null;\n const rect = lineRect(surface, at);\n if (rect === null) return null;\n return { top: rect.top - container.getBoundingClientRect().top + container.scrollTop, height: rect.height };\n },\n [surface, container],\n );\n\n useEffect(() => {\n if (!surface || !container || open) return;\n const root = surface.root;\n\n const onMove = (event: PointerEvent) => {\n const found = offsetFromPoint(surface, event.clientX, event.clientY);\n if (found === null) return;\n setOffset(found);\n setMetrics(measure(found));\n };\n\n /* LEAVING IS SCOPED TO THE CONTAINER, NOT THE EDITABLE, and that is the\n difference between this working and not. The handle sits in the gutter,\n OUTSIDE the editable's own box — so moving the pointer onto the handle\n leaves the editable, and a leave handler bound there hid the control the\n instant you reached for it. The probe caught it as a menu that never\n opened: the button unmounted between mousedown and click. */\n const onLeave = () => {\n if (state.caret === null) return setMetrics(null);\n setOffset(state.caret);\n setMetrics(measure(state.caret));\n };\n\n root.addEventListener(\"pointermove\", onMove);\n container.addEventListener(\"pointerleave\", onLeave);\n return () => {\n root.removeEventListener(\"pointermove\", onMove);\n container.removeEventListener(\"pointerleave\", onLeave);\n };\n }, [surface, container, measure, open, state.caret]);\n\n /* Follow the caret when it moves on its own. */\n useEffect(() => {\n if (open || state.caret === null) return;\n setOffset(state.caret);\n setMetrics(measure(state.caret));\n }, [state.caret, measure, open]);\n\n const block = useMemo(\n () => (surface && offset !== null ? blockAt(surface.getSource(), offset) : null),\n [surface, offset, state.source],\n );\n\n if (metrics === null || offset === null) return null;\n\n return (\n <div\n className={cn(\"absolute z-10 flex items-center\", external ? \"right-full\" : \"left-0\")}\n style={{ top: metrics.top, height: metrics.height }}\n >\n <Menu\n open={open}\n onOpenChange={setOpen}\n side=\"right\"\n align=\"start\"\n trigger={\n /* `Button`, not a hand-rolled `<button>` — the SAME control\n `BarButton` (below) and the header toolbar use, which is what\n gives this a real resting/hover/focus/pressed identity instead\n of a bare icon with a manual opacity fade standing in for one.\n The global `:focus-visible` rule (authored.css) covers focus for\n free; `Button` itself supplies hover, active-press translate and\n the ripple. `more-vertical` replaces `grip-vertical`: this opens\n a menu, it does not drag anything, and a grip glyph told the\n opposite story. */\n <Button\n variant=\"ghost\"\n size=\"sm\"\n /* `iconOnly` — a real square, unlike `BarButton`/the header\n toolbar (which stay rectangular, unchanged). Those sit in a\n horizontal row where that reads fine; this one stands alone in\n a vertical gutter, and the gutter's own reserved width (see\n `MarkdownEditor`'s `pl-(--control-sm)`) is sized off the SAME\n `--control-sm` token specifically because a square button's\n width equals its height — a non-square button here would make\n that arithmetic wrong. */\n iconOnly\n aria-label={strings.lineType(block ? labelOf(block, strings.blockTypes) : strings.blockTypes.paragraph)}\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => setOpen(true)}\n className={cn(open && \"bg-control-subtle text-control-text hover:bg-control-subtle-hover\")}\n >\n <Icon name=\"more-vertical\" className=\"h-3.5 w-3.5\" />\n </Button>\n }\n >\n <MenuGroup label={strings.turnInto}>\n {TYPES.map((choice) => (\n <MenuItem\n key={`${choice.kind}${choice.level ?? \"\"}`}\n selected={sameType(choice, block)}\n onClick={() => {\n surface?.root.focus();\n surface?.apply({ start: offset, end: offset, text: \"\" }, { anchor: offset, head: offset });\n run(convertBlock(choice.kind, { level: choice.level }));\n }}\n >\n <Icon name={choice.icon} className=\"mr-2 h-4 w-4 text-tertiary\" />\n {strings.blockTypes[choice.name]}\n </MenuItem>\n ))}\n </MenuGroup>\n </Menu>\n </div>\n );\n}\n\nfunction labelOf(block: BlockInfo, blockTypes: UiStrings[\"markdownAffordances\"][\"blockTypes\"]): string {\n const found = TYPES.find((t) => sameType(t, block));\n return found ? blockTypes[found.name] : block.kind;\n}\n\nconst NO_FILES = () => false;\n\n/* --- The construct bar ---------------------------------------------------- */\n\nexport interface ConstructBarProps {\n surface: MarkdownSurface | null;\n state: EditorState;\n run: (command: Command) => void;\n container: HTMLElement | null;\n /**\n * Rendered as a SIBLING of `container` (under the same positioned root), not inside it: the container is\n * `overflow-x-auto`, which clips the bar when the field is one line tall (`chrome=\"flush\"`, see `LineHandle`'s\n * `external`). Offsets are then taken from the container's own position in that root, with no scroll term.\n */\n external?: boolean;\n /** Which links are stored files (the editor's `isFileUrl`, `blob:` included). A reference to a file gets no bar. */\n isFileUrl?: (url: string) => boolean;\n}\n\n/**\n * The controls for whatever the caret is inside — a link, an image, a fence or\n * a table.\n *\n * IT APPEARS BY ITSELF rather than waiting for a click, and that is a decision\n * the always-hidden markup forces. A destination the caret cannot enter and a\n * control that has to be found are the same thing as no control at all; a small\n * bar anchored to the construct you are already standing in is the shortest\n * path from \"I want to change this URL\" to changing it.\n */\nexport function ConstructBar({ surface, state, run, container, external, isFileUrl }: ConstructBarProps) {\n /* DX-3134 / DXUI-74: NO BAR FOR A FILE THAT IS NOT STORED YET. Its \"destination\"\n is an object URL the editor minted - opaque to the author, meaningful only to\n this tab - and editing it would cut the reference loose from the upload that\n is about to replace it. Its controls are on its tile in the attachment strip;\n once stored, the bar returns with the real URL in it. */\n /* DXUI-74: NO BAR FOR AN ATTACHMENT REFERENCE EITHER. Right after a paste the caret sits beside the new reference, and\n the bar would open below the line and cover its tile. The tile holds rename, download and remove, and the URL is\n not the author's to type. The definition is the strip's own (`isAttachmentReference`); an ordinary typed link\n keeps its bar. */\n const construct =\n state.construct &&\n !isUnstoredImageSrc(state.construct.target) &&\n !isAttachmentReference(state.construct.kind, state.construct.target, { isFileUrl: isFileUrl ?? NO_FILES })\n ? state.construct\n : null;\n const anchor = construct ?? (state.block?.kind === \"code\" || state.block?.kind === \"table\" ? state.block : null);\n const barRef = useRef<HTMLDivElement>(null);\n const [box, setBox] = useState<{ top: number; bottom: number } | null>(null);\n /* DX-3142: \"above\" is the placement every bar used before this card, kept as\n the default so nothing changes for the common case; \"below\" is chosen\n only when \"above\" is measured (not guessed) not to fit — see the second\n effect. */\n const [placement, setPlacement] = useState<\"above\" | \"below\">(\"above\");\n\n useLayoutEffect(() => {\n setPlacement(\"above\");\n if (!surface || !container || !anchor) {\n setBox(null);\n return;\n }\n\n /* DX-3142: THE CONSTRUCT'S OWN RENDERED BOX, not a caret's insertion point:\n the widget element's rect is the whole rendered construct. A fence or\n table has no such widget (its controls anchor to `state.block`, always\n ordinary text), so that path measures the line. Resolved once. */\n const widget = construct ? findWidget(surface, construct) : null;\n\n const measure = () => {\n const rect = construct ? (widget && anchorRect(widget)) : lineRect(surface, anchor.start);\n if (!rect) {\n setBox(null);\n return;\n }\n const containerTop = container.getBoundingClientRect().top;\n const shift = external ? container.offsetTop : container.scrollTop;\n setBox({\n top: rect.top - containerTop + shift,\n bottom: rect.bottom - containerTop + shift,\n });\n };\n measure();\n }, [surface, container, anchor, construct, state.source, external]);\n\n /* DX-3142: FLIP BELOW ONLY WHEN \"ABOVE\" IS MEASURED NOT TO FIT, never by a\n guessed viewport threshold. The bar always tries \"above\" first — same\n rendered box, same rule the comment below explains — and only after IT\n HAS PAINTED does this check whether its own top edge went past the\n clip boundary above it. Growing DOWN from the construct's bottom needs\n no such trick: `top` alone, no transform, is already correct without\n knowing the bar's height in advance.\n\n THE BOUNDARY IS THE CONTAINER'S OWN TOP, not the browser viewport's.\n `container` (the \"frame\" div `ConstructBar` positions inside) carries\n Tailwind's `overflow-x-auto` — and setting only ONE axis's `overflow` to\n a non-`visible` value makes the OTHER axis compute to `auto` too, per the\n CSS Overflow spec (never both `visible`). So this container clips\n vertically as a side effect of a class meant to handle a wide table, and\n a bar pushed far enough above a tall image can go PAST the container's\n own top — clipped there, still well within the actual browser viewport,\n with room to spare below the toolbar above it. Comparing against 0 (the\n viewport) never caught that; comparing against the clip boundary that is\n ACTUALLY in effect does.\n\n KNOWN LIMITATION, left as-is: once flipped, there is no symmetric check\n that \"below\" itself fits above the container's own BOTTOM clip — a\n construct tall enough to leave no room on either side (a picture taller\n than a short editor's whole visible height) can still end up with the\n bar clipped at the bottom instead of the top. Trying \"above\", then\n \"below\", then some third strategy is a bigger design question than this\n card's \"never covers the construct\" scope; this flip already turns the\n common near-the-top case (the one actually reported) into a genuinely\n usable bar, which the AC 34037 verification confirmed across three\n viewport widths in both themes. */\n useLayoutEffect(() => {\n if (!box || placement === \"below\" || !container) return;\n const rect = barRef.current?.getBoundingClientRect();\n const clipTop = container.getBoundingClientRect().top;\n if (rect && rect.top < clipTop) setPlacement(\"below\");\n }, [box, placement, container]);\n\n if (!anchor || box === null || !surface) return null;\n\n return (\n <div\n ref={barRef}\n className={cn(\n \"absolute left-8 z-20 flex items-center gap-1 rounded-lg border border-border-subtle\",\n \"bg-surface px-1.5 py-1 shadow-lg\",\n )}\n /* THE PLACEMENT RULE: anchored to the top of the construct it controls,\n then pushed up by ITS OWN RENDERED HEIGHT plus a fixed 6px gap — never\n by a guessed pixel count.\n\n This used to be `top: top - 38`, a constant sized for the narrowest\n bar (a link's single input) and never revisited when a wider one was\n added. `TableControls` renders eight icon buttons and two dividers;\n measured in a real browser it is 46px tall, not 38 — so the bar's own\n BOTTOM landed 8px BELOW the table's top edge, on every table, at\n every position in the editor, because the gap was a fixed number that\n happened to be right for a different bar. `-38` was never a function\n of the anchor's position (near the top of a short field vs. deep in a\n tall one) — it under-shot by the same fixed amount everywhere, which\n is why the overlap reproduced identically table-at-top,\n table-at-middle and table-at-bottom.\n\n `translateY(calc(-100% - 6px))` asks the BROWSER for the bar's own\n box height at paint time instead of assuming one, so it is exactly\n right for however many controls a given bar renders — two for a\n fence's language picker, three for a link/image, or eight for a\n table — and stays right if a future bar adds a ninth.\n\n DX-3142: the \"below\" branch needs no such trick — growing down from\n the construct's own bottom edge is already correct with `top` alone. */\n style={\n placement === \"above\"\n ? { top: box.top, transform: \"translateY(calc(-100% - 6px))\" }\n : { top: box.bottom + 6 }\n }\n onMouseDown={(event) => event.preventDefault()}\n >\n {construct && <ConstructControls surface={surface} construct={construct} run={run} />}\n {!construct && state.block?.kind === \"code\" && <FenceControls language={state.block.language ?? \"\"} run={run} />}\n {!construct && state.block?.kind === \"table\" && <TableControls run={run} />}\n </div>\n );\n}\n\nfunction ConstructControls({\n surface,\n construct,\n run,\n}: {\n surface: MarkdownSurface;\n construct: ConstructInfo;\n run: (command: Command) => void;\n}) {\n const strings = useUiStrings().markdownAffordances;\n const at = construct.start;\n const patch = (next: Parameters<typeof editConstruct>[2]): Command => () =>\n editConstruct(surface.getProjection(), at, next);\n\n return (\n <>\n <input\n aria-label={construct.kind === \"image\" ? strings.imageSource : strings.linkDestination}\n defaultValue={construct.target}\n key={`${at}-${construct.target}`}\n placeholder=\"https://…\"\n onMouseDown={(event) => event.stopPropagation()}\n onKeyDown={(event) => {\n if (event.key !== \"Enter\") return;\n event.preventDefault();\n run(patch({ target: (event.target as HTMLInputElement).value }));\n }}\n onBlur={(event) => run(patch({ target: event.target.value }))}\n className={cn(\n \"h-7 w-56 rounded border border-border-subtle bg-surface-inset px-2 text-sm\",\n \"text-primary outline-none focus:border-control focus:shadow-[0_0_0_3px_var(--control-focus-halo)]\",\n )}\n />\n <BarButton\n icon={construct.kind === \"image\" ? \"link\" : \"image\"}\n label={construct.kind === \"image\" ? strings.turnIntoLink : strings.turnIntoImage}\n onClick={() => run(patch({ kind: construct.kind === \"image\" ? \"link\" : \"image\" }))}\n />\n <BarButton\n icon=\"unlink\"\n label={construct.kind === \"image\" ? strings.removeImage : strings.removeLink}\n onClick={() => run(() => unwrapConstruct(surface.getProjection(), at))}\n />\n </>\n );\n}\n\nfunction FenceControls({ language, run }: { language: string; run: (command: Command) => void }) {\n /* THE REAL REGISTRY, not a hand-written list. A picker offering a language\n the highlighter does not have is a picker that lies, and this package has\n shipped that exact defect before — the published bundle went out with no\n grammars at all and nothing noticed.\n\n THE DOCUMENT'S OWN WORD IS ALWAYS AN OPTION, even when the registry does\n not list it. `ts` is an ALIAS the highlighter resolves to `typescript`, and\n plenty of real documents say `ts` — a select whose value matches no option\n renders blank, so the picker would have claimed a perfectly good fence had\n no language at all. Showing the word that is actually in the file is the\n only reading that cannot be wrong. */\n const strings = useUiStrings().markdownAffordances;\n const languages = useMemo(() => {\n const known = listLanguages().sort();\n return language && !known.includes(language) ? [language, ...known] : known;\n }, [language]);\n\n return (\n <label className=\"flex items-center gap-1.5 px-1 text-xs text-tertiary\">\n {strings.language}\n <select\n aria-label={strings.codeBlockLanguage}\n value={language}\n onMouseDown={(event) => event.stopPropagation()}\n onChange={(event) => run(setFenceLanguage(event.target.value))}\n className={cn(\n \"h-7 rounded border border-border-subtle bg-surface-inset px-1.5 text-sm\",\n \"text-primary outline-none focus:border-control focus:shadow-[0_0_0_3px_var(--control-focus-halo)]\",\n )}\n >\n <option value=\"\">{strings.noLanguage}</option>\n {languages.map((name) => (\n <option key={name} value={name}>\n {name}\n </option>\n ))}\n </select>\n </label>\n );\n}\n\n/**\n * EIGHT ICONS, because the library grew rather than this bar improvising.\n *\n * An earlier version said \"Left / Centre / − Row\" in words: the registry had\n * no alignment glyphs and only one trash can, and adding icons to serve one\n * component looked like the larger of two costs. That reads the wrong way\n * round for a DESIGN SYSTEM — a missing primitive is a gap the library fills\n * once, and every later consumer with a table gets it for free. Seven of the\n * eight controls needed a glyph that did not exist; all seven are now curated\n * like everything else, so the bar spends the width of an icon on each control\n * instead of the width of a word.\n *\n * The two the library still could not simply take are the deletions: Lucide\n * draws no delete-row or delete-column, and a second trash can beside the\n * first says nothing about WHICH axis it removes. `delete-row` /\n * `delete-column` are the fold pair, which is axis-legible — a deleted row is\n * the rows either side of it closing together. Every one of these carries a\n * Tooltip regardless, which is what an icon-only control owes a pointer and\n * assistive tech alike.\n */\nfunction TableControls({ run }: { run: (command: Command) => void }) {\n const strings = useUiStrings().markdownAffordances;\n const newColumnHeader = useUiStrings().markdownEditor.newColumnHeader;\n return (\n <>\n <BarButton icon=\"align-left\" label={strings.alignLeft} onClick={() => run(alignColumn(\"left\"))} />\n <BarButton icon=\"align-center\" label={strings.alignCenter} onClick={() => run(alignColumn(\"center\"))} />\n <BarButton icon=\"align-right\" label={strings.alignRight} onClick={() => run(alignColumn(\"right\"))} />\n <BarDivider />\n <BarButton icon=\"insert-row\" label={strings.insertRowBelow} onClick={() => run(insertRow(true))} />\n <BarButton icon=\"insert-column\" label={strings.insertColumnAfter} onClick={() => run(insertColumn(true, newColumnHeader))} />\n <BarDivider />\n <BarButton icon=\"delete-row\" label={strings.deleteRow} onClick={() => run(deleteRow)} />\n <BarButton icon=\"delete-column\" label={strings.deleteColumn} onClick={() => run(deleteColumn)} />\n <BarButton icon=\"trash-2\" label={strings.deleteTable} onClick={() => run(deleteTable)} />\n </>\n );\n}\n\nconst BarDivider = () => <span className=\"mx-0.5 h-4 w-px bg-border-subtle\" />;\n\n/**\n * `Button` + `Tooltip`, matching the toolbar exactly rather than a hand-rolled\n * pair — an icon-only control needs a name on hover and a name for assistive\n * tech, and this package already decided how both are spelled.\n */\nfunction BarButton({ icon, label, onClick }: { icon: string; label: string; onClick: () => void }) {\n return (\n <Tooltip content={label}>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n aria-label={label}\n onMouseDown={(event) => event.preventDefault()}\n onClick={onClick}\n >\n <Icon name={icon} className=\"size-4\" />\n </Button>\n </Tooltip>\n );\n}\n\n/* --- The context menu ----------------------------------------------------- */\n\nexport interface ConversionMenuProps {\n surface: MarkdownSurface | null;\n state: EditorState;\n run: (command: Command) => void;\n container: HTMLElement | null;\n}\n\n/**\n * Right-click conversions for a selection.\n *\n * OURS ONLY WHEN THERE IS SOMETHING TO CONVERT. Swallowing every right-click\n * costs the browser's own spellcheck suggestions, which is a worse trade than\n * this menu is worth — so with no selection and nothing under the pointer, the\n * native menu is left alone.\n */\nexport function ConversionMenu({ surface, state, run, container }: ConversionMenuProps) {\n const strings = useUiStrings().markdownAffordances;\n const [point, setPoint] = useState<{ x: number; y: number } | null>(null);\n\n useEffect(() => {\n if (!surface || !container) return;\n const root = surface.root;\n const onContext = (event: MouseEvent) => {\n const selection = surface.getSelection();\n const ranged = !!selection && selection.anchor !== selection.head;\n if (!ranged) return; /* Native menu, and its spellcheck with it. */\n event.preventDefault();\n const box = container.getBoundingClientRect();\n setPoint({ x: event.clientX - box.left, y: event.clientY - box.top + container.scrollTop });\n };\n root.addEventListener(\"contextmenu\", onContext);\n return () => root.removeEventListener(\"contextmenu\", onContext);\n }, [surface, container]);\n\n if (!point) return null;\n\n const inline: Array<[keyof UiStrings[\"markdownAffordances\"][\"format\"], string, Command]> = [\n // I18N-ALLOW: format id paired with its toggle command\n [\"bold\", \"bold\", toggleBold],\n // I18N-ALLOW: format id paired with its toggle command\n [\"italic\", \"italic\", toggleItalic],\n // I18N-ALLOW: format id paired with its toggle command\n [\"inlineCode\", \"code\", toggleCode],\n // I18N-ALLOW: format id paired with its toggle command\n [\"strikethrough\", \"strikethrough\", toggleStrike],\n ];\n\n return (\n <div className=\"absolute z-30\" style={{ left: point.x, top: point.y }}>\n <Menu\n open\n onOpenChange={(next) => !next && setPoint(null)}\n side=\"bottom\"\n align=\"start\"\n trigger={<span aria-hidden=\"true\" className=\"block h-0 w-0\" />}\n >\n <MenuGroup label={strings.formatGroup}>\n {inline.map(([name, icon, command]) => (\n <MenuItem\n key={name}\n onClick={() => {\n run(command);\n setPoint(null);\n }}\n >\n <Icon name={icon} className=\"mr-2 h-4 w-4 text-tertiary\" />\n {strings.format[name]}\n </MenuItem>\n ))}\n </MenuGroup>\n <MenuSeparator />\n <MenuGroup label={strings.turnInto}>\n {TYPES.map((choice) => (\n <MenuItem\n key={`${choice.kind}${choice.level ?? \"\"}`}\n selected={sameType(choice, state.block)}\n onClick={() => {\n run(convertBlock(choice.kind, { level: choice.level }));\n setPoint(null);\n }}\n >\n <Icon name={choice.icon} className=\"mr-2 h-4 w-4 text-tertiary\" />\n {strings.blockTypes[choice.name]}\n </MenuItem>\n ))}\n </MenuGroup>\n </Menu>\n </div>\n );\n}\n\n/* --- Measuring the document, without writing to it ------------------------ */\n\n/**\n * The viewport box of the line holding `at`.\n *\n * A collapsed Range has no width and a perfectly good height and position,\n * which is the cheapest way to ask the browser where a source offset ended up\n * without putting anything in the document to look at. `lineTop` (below) is\n * the pre-existing y-only reader; `LineHandle` also needs the line's HEIGHT,\n * to centre a control against it rather than pin the control's own top to\n * the line's, so this is the one measurement both build on.\n */\nfunction lineRect(surface: MarkdownSurface, at: number): DOMRect | null {\n const source = surface.getSource();\n let start = Math.max(0, Math.min(at, source.length));\n while (start > 0 && source[start - 1] !== \"\\n\") start--;\n\n const stops = surface.getCaretMap().stops;\n const stop = stops.find((s) => s >= start) ?? start;\n const point = domPoint(surface, stop);\n if (!point) return null;\n\n const range = surface.root.ownerDocument.createRange();\n try {\n range.setStart(point.node, point.offset);\n range.collapse(true);\n } catch {\n return null;\n }\n const rect = range.getBoundingClientRect();\n return rect.height === 0 && rect.top === 0 ? null : rect;\n}\n\n/**\n * The link/image widget a construct's SOURCE OFFSET identifies — not a DOM\n * point walked out to it. Two things ruled out the obvious \"ask `domPointAt`\n * for `construct.start`\" approach, both found by pasting an image large\n * enough to have a real `data:` URL (tens of thousands of characters), not\n * the tiny fixtures the demo's own sample images use:\n *\n * 1. When the construct sits right after ordinary text (the common case —\n * \"a note with a picture: ![...]\"), `domPointAt` returns a point INSIDE\n * that preceding text node, not an element boundary beside the widget —\n * `visible()` (`position.ts`) explicitly prefers real adjacent content\n * over a markup boundary \"unless content already ended exactly here\",\n * which content did. Neither association side changes that.\n * 2. Asking at `construct.end` instead (to at least bound a Range) walks\n * every stamped node up to it — including, for an image, one per\n * character of its `src` — and near the far end of a run that long two\n * boundary-adjacent offsets resolved to visually indistinguishable\n * points: the same \"middle of the image\" failure this card exists to\n * fix, arrived at a second way.\n *\n * `sourceOffsetAt` is the INVERSE mapping this module already has, and it has\n * neither problem: it reads a known ELEMENT's position directly, no walk. So\n * this queries every widget of the construct's KIND already in the surface\n * (there are rarely more than a handful) and keeps the one whose own source\n * offset matches — exact, and no adjacency ambiguity to resolve.\n */\nfunction findWidget(surface: MarkdownSurface, construct: ConstructInfo): Element | null {\n const selector = construct.kind === \"image\" ? \"[data-md-src]\" : \"[data-md-href]\";\n for (const el of surface.root.querySelectorAll(selector)) {\n if (sourceOffsetAt(surface.root, el, 0) === construct.start) return el;\n }\n return null;\n}\n\n/** A link or image's own rendered box: the widget span's rect, null while it has no size. */\nfunction anchorRect(widget: Element): DOMRect | null {\n const rect = widget.getBoundingClientRect();\n return rect.width === 0 && rect.height === 0 ? null : rect;\n}\n\nfunction domPoint(surface: MarkdownSurface, at: number): { node: Node; offset: number } | null {\n /* The same mapping the surface uses to WRITE the caret, called directly and\n read-only. Measuring must never move the selection — the whole point of\n these controls is that the caret is still where the user left it. */\n return domPointAt(surface.root, at);\n}\n\n/** Maps a viewport point to a source offset, for the pointer-following handle. */\nfunction offsetFromPoint(surface: MarkdownSurface, x: number, y: number): number | null {\n const document = surface.root.ownerDocument as Document & {\n caretPositionFromPoint?: (x: number, y: number) => { offsetNode: Node; offset: number } | null;\n caretRangeFromPoint?: (x: number, y: number) => Range | null;\n };\n\n if (typeof document.caretPositionFromPoint === \"function\") {\n const position = document.caretPositionFromPoint(x, y);\n if (!position) return null;\n return sourceOffsetAt(surface.root, position.offsetNode, position.offset);\n }\n /* Safari had only the older spelling until 2024, and it is still the one\n shipping in every browser built on an older WebKit. */\n if (typeof document.caretRangeFromPoint === \"function\") {\n const range = document.caretRangeFromPoint(x, y);\n if (!range) return null;\n return sourceOffsetAt(surface.root, range.startContainer, range.startOffset);\n }\n return null;\n}\n\nexport const AFFORDANCE_TYPES = TYPES;\n"],"names":["useEditorState","surface","version","tick","setTick","useState","held","useRef","useEffect","document","onSelect","n","useMemo","source","selection","last","blockAt","constructAt","marksAt","from","next","TYPES","sameType","choice","block","LineHandle","state","run","container","external","strings","useUiStrings","metrics","setMetrics","offset","setOffset","open","setOpen","measure","useCallback","at","rect","lineRect","root","onMove","event","found","offsetFromPoint","onLeave","jsx","cn","Menu","Button","labelOf","Icon","MenuGroup","jsxs","MenuItem","convertBlock","blockTypes","t","NO_FILES","ConstructBar","isFileUrl","construct","isUnstoredImageSrc","isAttachmentReference","anchor","barRef","box","setBox","placement","setPlacement","useLayoutEffect","widget","findWidget","anchorRect","containerTop","shift","clipTop","ConstructControls","FenceControls","TableControls","patch","editConstruct","Fragment","BarButton","unwrapConstruct","language","languages","known","listLanguages","setFenceLanguage","name","newColumnHeader","alignColumn","BarDivider","insertRow","insertColumn","deleteRow","deleteColumn","deleteTable","icon","label","onClick","Tooltip","ConversionMenu","point","setPoint","onContext","inline","toggleBold","toggleItalic","toggleCode","toggleStrike","command","MenuSeparator","start","stop","domPoint","range","selector","el","sourceOffsetAt","domPointAt","x","y","position"],"mappings":"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"}
@@ -0,0 +1,128 @@
1
+ import { jsxs as I, jsx as r } from "react/jsx-runtime";
2
+ import { useMemo as T, useState as y, useRef as O, useLayoutEffect as V } from "react";
3
+ import { attachmentsOf as j } from "../../lib/markdown/attachments.js";
4
+ import { sanitizeImageSrc as q, isUnstoredImageSrc as H } from "../../lib/markdown/images.js";
5
+ import { sanitizeHref as _ } from "../../lib/syntax/markdown/render.js";
6
+ import { AttachmentList as G, AttachmentAction as J } from "../chat/Attachment.js";
7
+ import { downloadChatFile as P } from "../chat/download-file.js";
8
+ import { isImageFile as K } from "../chat/file-icon.js";
9
+ import { Button as Q } from "../Button.js";
10
+ import { Icon as b } from "../Icon.js";
11
+ import { Input as W } from "../Input.js";
12
+ import { Menu as X, MenuItem as S } from "../Menu.js";
13
+ import { Popover as Y } from "../Popover.js";
14
+ import { useUiStrings as R } from "../../lib/i18n/provider.js";
15
+ import { FileViewer as Z } from "../file-viewer/FileViewer.js";
16
+ function $(e) {
17
+ if (/^data:/i.test(e.trimStart())) return "";
18
+ const i = e.split(/[?#]/, 1)[0], n = i.slice(i.lastIndexOf("/") + 1);
19
+ try {
20
+ return decodeURIComponent(n);
21
+ } catch {
22
+ return n;
23
+ }
24
+ }
25
+ function tt(e, i, n) {
26
+ const c = n?.file.name ?? ($(e.url) || void 0), p = e.name || c || e.url, s = n?.file.type || (e.image ? "image/*" : void 0), g = n ? e.url : q(e.url) ?? void 0, h = K({ name: p, fileName: c, mimeType: s }), w = n ? e.url : (h ? g : _(e.url)) ?? void 0;
27
+ return {
28
+ id: i,
29
+ name: p,
30
+ fileName: c,
31
+ size: n?.file.size,
32
+ mimeType: s,
33
+ url: w,
34
+ thumbnailUrl: h ? g : void 0,
35
+ /* A `blob:` this editor did not mint can never be stored: it is a failed file, with no reason to give. */
36
+ status: n?.state === "uploading" ? "uploading" : n?.state === "failed" || !n && H(e.url) ? "error" : "ready",
37
+ error: n?.state === "failed" ? n.message : void 0
38
+ };
39
+ }
40
+ function ft({ projection: e, isFileUrl: i, resolve: n, identify: c, textFocus: p, readOnly: s = !1, padded: g = !1, onRename: h, onRemove: w, onRetry: U }) {
41
+ const l = R().markdownEditor.attachment, z = R().chat.attachment, m = T(() => j(e, { isFileUrl: i }), [e, i]), [A, F] = y(null), [o, f] = y(null), [N, B] = y(null), k = O(null), v = O("trigger"), x = o?.id ?? null;
42
+ if (V(() => {
43
+ const t = [...k.current?.querySelectorAll("[data-attachment]") ?? []];
44
+ B(x === null ? null : t.find((a) => a.getAttribute("data-attachment") === x) ?? null);
45
+ }, [x, m]), m.length === 0) return null;
46
+ const M = m.map((t) => n(t.url)), u = m.map((t, a) => tt(t, c(t.url), M[a])), C = new Map(m.map((t, a) => [u[a].id, t.url])), D = new Set(m.flatMap((t, a) => M[a]?.state === "failed" ? [u[a].id] : [])), E = (t) => {
47
+ t.preventDefault(), t.stopPropagation();
48
+ const a = o?.draft.trim(), d = o ? C.get(o.id) : void 0;
49
+ d !== void 0 && a && h(d, a), f(null);
50
+ }, L = (t) => {
51
+ const a = t.status !== "uploading" && t.url !== void 0;
52
+ if (!(s && !a))
53
+ return /* @__PURE__ */ I(
54
+ X,
55
+ {
56
+ side: "bottom",
57
+ align: "end",
58
+ className: "min-w-44",
59
+ finalFocus: () => {
60
+ const d = v.current;
61
+ return v.current = "trigger", d === "text" ? p() : d === "trigger";
62
+ },
63
+ trigger: /* @__PURE__ */ r(J, { icon: "more-vertical", label: l.actions(t.name), tinted: !!t.thumbnailUrl }),
64
+ children: [
65
+ t.status === "error" && t.error && /* The reason a picture's upload failed: its tile has room for an icon only, and a tooltip is out of reach
66
+ of touch and keyboard, so the menu says it. */
67
+ /* @__PURE__ */ r("p", { role: "note", className: "max-w-60 px-2.5 py-1.5 text-xs text-danger-text [overflow-wrap:anywhere]", children: t.error }),
68
+ a && /* @__PURE__ */ r(S, { icon: /* @__PURE__ */ r(b, { name: "download", size: "sm" }), onClick: () => P(t), children: z.download(t.name) }),
69
+ !s && /* @__PURE__ */ r(S, { icon: /* @__PURE__ */ r(b, { name: "pencil", size: "sm" }), onClick: () => {
70
+ v.current = "field", f({ id: t.id, draft: t.name });
71
+ }, children: l.rename(t.name) }),
72
+ !s && D.has(t.id) && /* @__PURE__ */ r(S, { icon: /* @__PURE__ */ r(b, { name: "rotate-ccw", size: "sm" }), onClick: () => U(C.get(t.id)), children: l.retry(t.name) }),
73
+ !s && /* @__PURE__ */ r(S, { tone: "danger", icon: /* @__PURE__ */ r(b, { name: "trash-2", size: "sm" }), onClick: () => {
74
+ v.current = "text", w(C.get(t.id));
75
+ }, children: z.remove(t.name) })
76
+ ]
77
+ }
78
+ );
79
+ };
80
+ return /* @__PURE__ */ I("div", { ref: k, role: "group", "aria-label": l.strip, "data-md-attachment-strip": "", className: g ? "px-3 pb-2" : void 0, children: [
81
+ /* @__PURE__ */ r(
82
+ G,
83
+ {
84
+ files: u,
85
+ layout: "strip",
86
+ caption: !0,
87
+ action: L,
88
+ onPreview: (t) => F(t.id)
89
+ }
90
+ ),
91
+ /* @__PURE__ */ r(
92
+ Z,
93
+ {
94
+ open: A !== null,
95
+ onOpenChange: (t) => !t && F(null),
96
+ files: u,
97
+ initialFileId: A,
98
+ onDownload: P
99
+ }
100
+ ),
101
+ /* @__PURE__ */ r(
102
+ Y,
103
+ {
104
+ anchor: N,
105
+ open: o !== null && N !== null,
106
+ onOpenChange: (t) => !t && f(null),
107
+ side: "top",
108
+ "aria-label": o ? l.rename(u.find((t) => t.id === x)?.name ?? "") : void 0,
109
+ children: o && /* @__PURE__ */ I("form", { onSubmit: E, className: "flex items-center gap-2", children: [
110
+ /* @__PURE__ */ r(
111
+ W,
112
+ {
113
+ autoFocus: !0,
114
+ value: o.draft,
115
+ "aria-label": l.renameField,
116
+ onChange: (t) => f({ ...o, draft: t.target.value })
117
+ }
118
+ ),
119
+ /* @__PURE__ */ r(Q, { type: "submit", size: "sm", disabled: o.draft.trim() === "", children: l.renameSave })
120
+ ] })
121
+ }
122
+ )
123
+ ] });
124
+ }
125
+ export {
126
+ ft as AttachmentStrip
127
+ };
128
+ //# sourceMappingURL=AttachmentStrip.js.map