@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 @@
1
+ {"version":3,"file":"Chat.js","sources":["../../../src/components/chat/Chat.tsx"],"sourcesContent":["import { useState, type ReactNode } from \"react\";\nimport { cn } from \"../../lib/cn\";\nimport { useUiStrings } from \"../../lib/i18n\";\nimport { Icon } from \"../Icon\";\nimport { Popover } from \"../Popover\";\nimport { EmptyState } from \"../Surface\";\nimport { Composer, type ComposerProps } from \"./Composer\";\nimport { downloadChatFile } from \"./download-file\";\nimport { Message, type MessageAction } from \"./Message\";\nimport { MessageScroller } from \"./MessageScroller\";\nimport { FileViewer } from \"../file-viewer\";\nimport { ModelSelector, type ChatModel } from \"./ModelSelector\";\nimport { EffortControl, type EffortLevel } from \"./EffortControl\";\nimport { ContextMeter, type ContextSegment, type UsageLimit } from \"./ContextMeter\";\nimport type {\n ChatComponents,\n ChatFile,\n ChatMessage,\n PartRenderers,\n} from \"./types\";\n\n/* ============================================================================\n CHAT\n The whole thing, assembled.\n\n EVERY CONTROL IS OFF UNTIL IT IS CONFIGURED, and the configuration IS the\n switch: pass `models` and the model selector appears, pass `context` and the\n meter appears. There is no `showModelSelector` boolean, because a boolean\n and the data it reveals can disagree — `showModelSelector` with an empty\n model list is a menu of nothing, and every codebase that has the boolean\n eventually ships that bug. The default is a plain, well-made chat.\n\n SURFACE IS PRESENTATION ONLY. Inline, sidebar and popover change the frame\n and nothing else: the same conversation, composer and controls in all three.\n A \"sidebar chat\" that quietly drops features is how two divergent chat\n implementations start.\n ========================================================================= */\n\n/* Every file a message carries — its attachments, then the file parts of its\n body — in the order the reader sees them. This is the set a click on any one\n of them opens the viewer over (DX-4398): the files of THAT message, never the\n whole transcript's. */\nfunction filesOfMessage(message: ChatMessage): ChatFile[] {\n return [\n ...(message.attachments ?? []),\n ...message.parts.flatMap((part) => (part.type === \"file\" ? [part.file] : [])),\n ];\n}\n\nexport type ChatSurface = \"inline\" | \"sidebar\" | \"popover\";\n\nexport interface ChatProps<TApp = unknown>\n extends Pick<\n ComposerProps,\n | \"value\"\n | \"onValueChange\"\n | \"onSubmit\"\n | \"files\"\n | \"onFilesAdded\"\n | \"onFileRemoved\"\n | \"busy\"\n | \"onStop\"\n | \"placeholder\"\n | \"disabled\"\n | \"error\"\n | \"accept\"\n | \"uploadImage\"\n > {\n messages: ChatMessage[];\n /** Replaces a built-in part renderer. Partial — override one, keep the rest. */\n renderers?: PartRenderers<TApp>;\n /** Application components a message may address by name. */\n components?: ChatComponents<TApp>;\n /** Handed to every renderer at call time, so a module-scope registry still\n reaches live application state. */\n appContext?: TApp;\n\n title?: ReactNode;\n subtitle?: ReactNode;\n /** Buttons in the header — new thread, settings, close. */\n headerActions?: ReactNode;\n /** Shown instead of the transcript when there are no messages. */\n empty?: ReactNode;\n\n /* --- optional controls; presence enables them ------------------------- */\n models?: ChatModel[];\n model?: string;\n onModelChange?: (id: string) => void;\n /** Switches under the model list — fast mode, thinking, and so on. */\n modelOptions?: Parameters<typeof ModelSelector>[0][\"options\"];\n\n effortLevels?: EffortLevel[];\n effort?: string;\n onEffortChange?: (id: string) => void;\n\n context?: { segments: ContextSegment[]; capacity: number; limits?: UsageLimit[] };\n\n /** Per-message buttons. Copy is always present and is not listed here. */\n messageActions?: MessageAction[];\n showTimestamps?: boolean;\n /** Status line above the composer — \"Thinking…\", \"Running tests\". */\n status?: ReactNode;\n hint?: ReactNode;\n\n surface?: ChatSurface;\n className?: string;\n}\n\nexport function Chat<TApp = unknown>({\n messages,\n renderers,\n components,\n appContext,\n title,\n subtitle,\n headerActions,\n empty,\n models,\n model,\n onModelChange,\n modelOptions,\n effortLevels,\n effort,\n onEffortChange,\n context,\n messageActions,\n showTimestamps = false,\n status,\n hint,\n surface = \"inline\",\n className,\n ...composer\n}: ChatProps<TApp>) {\n const strings = useUiStrings().chat.chat;\n const [viewing, setViewing] = useState<{ files: ChatFile[]; fileId: string } | null>(null);\n\n /* Opens the viewer over the files of `message`, at `file`. */\n const openViewer = (message: ChatMessage, file: ChatFile) => {\n setViewing({ files: filesOfMessage(message), fileId: file.id });\n };\n\n const toolbar = (\n <>\n {models && model !== undefined && onModelChange && (\n <ModelSelector\n models={models}\n value={model}\n onValueChange={onModelChange}\n options={modelOptions}\n />\n )}\n {effort !== undefined && onEffortChange && (\n <EffortControl levels={effortLevels} value={effort} onValueChange={onEffortChange} />\n )}\n {context && (\n <ContextMeter\n segments={context.segments}\n capacity={context.capacity}\n limits={context.limits}\n />\n )}\n </>\n );\n\n const hasToolbar = !!(models || effort !== undefined || context);\n\n return (\n <section\n data-chat-surface={surface}\n className={cn(\n \"flex min-h-0 flex-col bg-canvas\",\n surface === \"sidebar\" && \"h-full border-l border-border-subtle\",\n surface === \"popover\" && \"h-[32rem] w-[26rem]\",\n surface === \"inline\" && \"h-full\",\n className,\n )}\n >\n {(title || headerActions) && (\n <header className=\"flex shrink-0 items-center gap-3 border-b border-border-subtle px-4 py-2.5\">\n <div className=\"flex min-w-0 flex-col\">\n {title && (\n <h2 className=\"truncate font-display text-sm font-semibold text-primary\">{title}</h2>\n )}\n {subtitle && <p className=\"truncate text-2xs text-tertiary\">{subtitle}</p>}\n </div>\n {headerActions && <div className=\"ml-auto flex items-center gap-1\">{headerActions}</div>}\n </header>\n )}\n\n <MessageScroller className=\"px-4 py-4\">\n {messages.length === 0\n ? (empty ?? (\n <EmptyState\n icon=\"message-square\"\n title={strings.emptyTitle}\n description={strings.emptyDescription}\n />\n ))\n : messages.map((message, index) => (\n <Message\n key={message.id}\n message={message}\n renderers={renderers}\n components={components}\n appContext={appContext}\n actions={message.role === \"assistant\" ? messageActions : undefined}\n showTimestamp={showTimestamps}\n /* Consecutive turns from the same author drop the avatar and\n name. Repeating them on every line turns a conversation into\n a stack of business cards. */\n grouped={index > 0 && messages[index - 1].role === message.role}\n onPreviewFile={(file) => openViewer(message, file)}\n onDownloadFile={downloadChatFile}\n />\n ))}\n </MessageScroller>\n\n <div className=\"shrink-0 px-4 pt-1 pb-4\">\n {status && <div className=\"px-1 pb-1.5\">{status}</div>}\n <Composer\n {...composer}\n hint={hint}\n toolbar={hasToolbar ? toolbar : undefined}\n />\n </div>\n\n <FileViewer\n open={viewing !== null}\n onOpenChange={(open) => {\n if (!open) setViewing(null);\n }}\n files={viewing?.files ?? []}\n initialFileId={viewing?.fileId}\n onDownload={downloadChatFile}\n />\n </section>\n );\n}\n\nexport interface ChatPopoverProps<TApp = unknown> extends ChatProps<TApp> {\n /** The control that opens it. Defaults to a floating round button. */\n trigger?: ReactNode;\n side?: \"top\" | \"bottom\" | \"left\" | \"right\";\n align?: \"start\" | \"center\" | \"end\";\n}\n\n/**\n * The same chat, anchored to a trigger.\n *\n * A popover rather than a fixed-position widget: anchoring is the positioning\n * engine's job, and a hand-placed `bottom-6 right-6` panel is the version that\n * ends up off screen on a short viewport or under a cookie banner.\n */\nexport function ChatPopover<TApp = unknown>({\n trigger,\n side = \"top\",\n align = \"end\",\n ...chat\n}: ChatPopoverProps<TApp>) {\n const strings = useUiStrings().chat.chat;\n return (\n <Popover\n side={side}\n align={align}\n className=\"w-auto overflow-hidden p-0\"\n trigger={\n trigger ?? (\n <button\n type=\"button\"\n aria-label={strings.open}\n className={cn(\n \"grid size-12 cursor-pointer place-items-center rounded-full bg-accent text-accent-contrast\",\n \"shadow-lg outline-none transition-[var(--tx-colors),transform] duration-(--dur-fast) ease-(--ease-snappy)\",\n \"hover:bg-accent-hover active:scale-95 focus-visible:ring-2 focus-visible:ring-focus-ring\",\n )}\n >\n <Icon name=\"message-square\" size=\"md\" />\n </button>\n )\n }\n >\n <Chat {...(chat as ChatProps<TApp>)} surface=\"popover\" />\n </Popover>\n );\n}\n"],"names":["filesOfMessage","message","part","Chat","messages","renderers","components","appContext","title","subtitle","headerActions","empty","models","model","onModelChange","modelOptions","effortLevels","effort","onEffortChange","context","messageActions","showTimestamps","status","hint","surface","className","composer","strings","useUiStrings","viewing","setViewing","useState","openViewer","file","toolbar","jsxs","Fragment","jsx","ModelSelector","EffortControl","ContextMeter","hasToolbar","cn","MessageScroller","EmptyState","index","Message","downloadChatFile","Composer","FileViewer","open","ChatPopover","trigger","side","align","chat","Popover","Icon"],"mappings":"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"}
@@ -0,0 +1,274 @@
1
+ import { jsx as t, jsxs as a, Fragment as C } from "react/jsx-runtime";
2
+ import { useRef as A, useState as O } from "react";
3
+ import { cn as p } from "../../lib/cn.js";
4
+ import { Button as F } from "../Button.js";
5
+ import { IconButton as w } from "../IconButton.js";
6
+ import { Icon as l } from "../Icon.js";
7
+ import { MarkdownEditor as ee } from "../MarkdownEditor.js";
8
+ import { Tooltip as P } from "../Popover.js";
9
+ import { AttachmentList as te } from "./Attachment.js";
10
+ import { useUiStrings as ne } from "../../lib/i18n/provider.js";
11
+ const re = {
12
+ inline: { className: "px-1.5 py-1.5", blockRem: 0.375 },
13
+ stacked: { className: "px-1 py-1", blockRem: 0.25 }
14
+ }, ae = 1.5;
15
+ function se(r) {
16
+ const { strings: c } = r;
17
+ if (r.submitDisabledReason !== void 0) return { reason: r.submitDisabledReason, explained: !0 };
18
+ if (r.unstoredImages > 0) return { reason: c.sendUnstoredImage, explained: !0 };
19
+ if (r.hasUploadingFile) return { reason: c.sendUploading, explained: !1 };
20
+ if (!r.hasContent) return { reason: c.sendNothing, explained: !1 };
21
+ if (r.inactive) return { reason: c.unavailable, explained: !1 };
22
+ }
23
+ function xe({
24
+ value: r,
25
+ onValueChange: c,
26
+ onSubmit: B,
27
+ layout: D = "stacked",
28
+ submitOn: H = "enter",
29
+ submitDisabledReason: K,
30
+ files: m = [],
31
+ onFilesAdded: s,
32
+ onFileRemoved: j,
33
+ busy: b = !1,
34
+ onStop: u,
35
+ placeholder: _,
36
+ disabled: o = !1,
37
+ error: v,
38
+ toolbar: f,
39
+ leading: R,
40
+ hint: g,
41
+ accept: $,
42
+ maxRows: G = 12,
43
+ uploadImage: L,
44
+ uploadFile: M,
45
+ imageTypes: S,
46
+ isFileUrl: W,
47
+ className: X,
48
+ ref: q
49
+ }) {
50
+ const n = ne().chat.composer, I = _ ?? n.placeholder, N = A(null), [y, k] = O(!1), [J, Q] = O(0), x = se({
51
+ submitDisabledReason: K,
52
+ unstoredImages: J,
53
+ hasUploadingFile: m.some((e) => e.status === "uploading"),
54
+ hasContent: r.trim().length > 0 || m.length > 0,
55
+ inactive: o || b,
56
+ strings: n
57
+ }), z = x === void 0, d = D === "inline", T = re[D], h = () => {
58
+ z && B(r, m);
59
+ }, V = (e) => {
60
+ e.target.closest("[data-md-editable]") && (e.key !== "Enter" || e.nativeEvent.isComposing || (H === "mod-enter" ? !(e.ctrlKey || e.metaKey) : e.shiftKey) || (e.preventDefault(), e.stopPropagation(), h()));
61
+ }, Y = (e) => {
62
+ if (!s) return;
63
+ const i = [...e.clipboardData.files];
64
+ i.length !== 0 && (e.preventDefault(), e.stopPropagation(), s(i));
65
+ }, Z = (e) => {
66
+ if (k(!1), !s) return;
67
+ const i = [...e.dataTransfer.files];
68
+ i.length !== 0 && (e.preventDefault(), e.stopPropagation(), s(i));
69
+ }, U = s && /* @__PURE__ */ t(
70
+ "input",
71
+ {
72
+ ref: N,
73
+ type: "file",
74
+ multiple: !0,
75
+ accept: $,
76
+ onChange: (e) => {
77
+ const i = [...e.target.files ?? []];
78
+ i.length > 0 && s(i), e.target.value = "";
79
+ },
80
+ className: "sr-only",
81
+ tabIndex: -1,
82
+ "aria-hidden": !0
83
+ }
84
+ ), E = /* @__PURE__ */ t("div", { "data-composer-text": "", onKeyDownCapture: V, onPasteCapture: Y, className: d ? "flex min-h-control-sm min-w-0 flex-1 flex-col justify-center" : "w-full", children: /* @__PURE__ */ t(
85
+ ee,
86
+ {
87
+ ref: q,
88
+ chrome: "bare",
89
+ label: I,
90
+ value: r,
91
+ onChange: c,
92
+ placeholder: I,
93
+ readOnly: o,
94
+ uploadImage: L,
95
+ uploadFile: M,
96
+ imageTypes: S,
97
+ isFileUrl: W,
98
+ onImageUploadStateChange: (e) => Q(e.unstored),
99
+ minHeight: 0,
100
+ maxHeight: `calc(${G} * ${ae}rem - ${2 * T.blockRem}rem)`,
101
+ className: p(
102
+ "text-sm text-primary",
103
+ /* DXUI-18: inline, the field is the row's flexible middle. The wrapper's `min-h-control-sm` is the height of the buttons beside it
104
+ (it lifts to 44px under a coarse pointer together with them) and centres a one-line draft on them (DXUI-31); a
105
+ taller draft fills the wrapper, reads from the top and grows upward from the same bottom edge. */
106
+ T.className
107
+ )
108
+ }
109
+ ) });
110
+ return /* @__PURE__ */ a("div", { className: p("flex flex-col gap-1.5", X), children: [
111
+ /* @__PURE__ */ a(
112
+ "div",
113
+ {
114
+ onDragOver: (e) => {
115
+ s && (e.preventDefault(), k(!0));
116
+ },
117
+ onDragLeave: (e) => {
118
+ e.currentTarget.contains(e.relatedTarget) || k(!1);
119
+ },
120
+ onDropCapture: Z,
121
+ "data-composer-box": "",
122
+ "data-dragging": y || void 0,
123
+ className: p(
124
+ "relative flex flex-col rounded-2xl border bg-field",
125
+ d ? "gap-1.5 p-1.5" : "gap-2 p-2.5",
126
+ "transition-[var(--tx-colors),box-shadow] duration-(--dur-fast) ease-(--ease-standard)",
127
+ "focus-within:border-control focus-within:ring-4 focus-within:ring-control-focus-halo",
128
+ v ? "border-danger-border" : "border-field-border",
129
+ y && "border-control ring-4 ring-control-focus-halo",
130
+ o && "opacity-60"
131
+ ),
132
+ children: [
133
+ m.length > 0 && /* @__PURE__ */ t(
134
+ te,
135
+ {
136
+ files: m,
137
+ layout: d ? "strip" : "tile",
138
+ onRemove: j,
139
+ disabled: o,
140
+ className: d ? "px-1.5 pt-1.5" : void 0
141
+ }
142
+ ),
143
+ d ? /* @__PURE__ */ a("div", { className: "flex items-end gap-1", children: [
144
+ s && /* @__PURE__ */ a(C, { children: [
145
+ U,
146
+ /* @__PURE__ */ t(
147
+ w,
148
+ {
149
+ icon: /* @__PURE__ */ t(l, { name: "paperclip", size: "md" }),
150
+ label: n.attach,
151
+ variant: "ghost",
152
+ size: "sm",
153
+ disabledReason: o ? n.unavailable : void 0,
154
+ onClick: () => N.current?.click()
155
+ }
156
+ )
157
+ ] }),
158
+ R,
159
+ E,
160
+ b && u ? /* @__PURE__ */ t(
161
+ w,
162
+ {
163
+ icon: /* @__PURE__ */ t("span", { className: "size-2.5 rounded-[3px] bg-current" }),
164
+ label: n.stop,
165
+ variant: "outline",
166
+ size: "sm",
167
+ className: "rounded-full",
168
+ onClick: u
169
+ }
170
+ ) : /* @__PURE__ */ t(
171
+ w,
172
+ {
173
+ icon: /* @__PURE__ */ t(l, { name: "arrow-up", size: "md" }),
174
+ label: n.send,
175
+ variant: "solid",
176
+ size: "sm",
177
+ className: "rounded-full",
178
+ disabledReason: x?.reason,
179
+ onClick: h
180
+ }
181
+ )
182
+ ] }) : /* @__PURE__ */ a(C, { children: [
183
+ E,
184
+ /* @__PURE__ */ a("div", { className: "@container flex items-center gap-1", children: [
185
+ s && /* @__PURE__ */ a(C, { children: [
186
+ U,
187
+ /* @__PURE__ */ t(P, { content: n.attach, children: /* @__PURE__ */ t(
188
+ "button",
189
+ {
190
+ type: "button",
191
+ onClick: () => N.current?.click(),
192
+ disabled: o,
193
+ "aria-label": n.attach,
194
+ className: p(
195
+ "dx-tap grid size-7 shrink-0 cursor-pointer place-items-center rounded-lg text-tertiary outline-none",
196
+ "transition-colors duration-(--dur-fast) hover:bg-surface-hover hover:text-primary",
197
+ "focus-visible:ring-2 focus-visible:ring-focus-ring",
198
+ o && "pointer-events-none opacity-50"
199
+ ),
200
+ children: /* @__PURE__ */ t(l, { name: "paperclip", size: "sm" })
201
+ }
202
+ ) })
203
+ ] }),
204
+ R,
205
+ f && /* @__PURE__ */ t("div", { className: "flex min-w-0 items-center gap-0.5", children: f }),
206
+ /* @__PURE__ */ a("div", { className: "ml-auto flex items-center gap-2", children: [
207
+ g && /* @__PURE__ */ t("span", { className: "hidden text-2xs text-tertiary @sm:inline", children: g }),
208
+ b && u ? /* @__PURE__ */ t(P, { content: n.stop, children: /* @__PURE__ */ t(
209
+ "button",
210
+ {
211
+ type: "button",
212
+ onClick: u,
213
+ "aria-label": n.stop,
214
+ className: "dx-ground-raised dx-tap grid size-8 shrink-0 cursor-pointer place-items-center rounded-full bg-surface-raised text-primary outline-none ring-1 ring-border transition-colors duration-(--dur-fast) hover:bg-surface-hover focus-visible:ring-2 focus-visible:ring-focus-ring",
215
+ children: /* @__PURE__ */ t("span", { className: "size-2.5 rounded-[3px] bg-current" })
216
+ }
217
+ ) }) : (
218
+ /* DXUI-18: a stacked composer is a surface already in use, so with no `submitDisabledReason` its send is
219
+ the button it always was (a `Button` differs in size, dimming, focus ring, press translate, ripple and
220
+ cursor). A reason is the opt-in, and `Button` owns what a reason needs - soft-disabled, tooltip,
221
+ accessible description. */
222
+ x?.explained ? /* @__PURE__ */ t(
223
+ F,
224
+ {
225
+ variant: "solid",
226
+ size: "sm",
227
+ iconOnly: !0,
228
+ "aria-label": n.send,
229
+ onClick: h,
230
+ disabledReason: x.reason,
231
+ className: "dx-tap size-8 h-8! rounded-full",
232
+ children: /* @__PURE__ */ t(l, { name: "arrow-up", size: "sm" })
233
+ }
234
+ ) : /* @__PURE__ */ t(
235
+ "button",
236
+ {
237
+ type: "button",
238
+ onClick: h,
239
+ disabled: !z,
240
+ "aria-label": n.send,
241
+ className: p(
242
+ "dx-tap grid size-8 shrink-0 cursor-pointer place-items-center rounded-full outline-none",
243
+ "transition-[var(--tx-colors),transform] duration-(--dur-fast) ease-(--ease-snappy)",
244
+ "focus-visible:ring-2 focus-visible:ring-focus-ring",
245
+ z ? "bg-accent text-accent-contrast hover:bg-accent-hover active:scale-95" : "cursor-not-allowed bg-surface-inset text-disabled"
246
+ ),
247
+ children: /* @__PURE__ */ t(l, { name: "arrow-up", size: "sm" })
248
+ }
249
+ )
250
+ )
251
+ ] })
252
+ ] })
253
+ ] }),
254
+ y && /* @__PURE__ */ t("div", { className: "pointer-events-none absolute inset-0 grid place-items-center rounded-2xl bg-control-subtle/80", children: /* @__PURE__ */ a("span", { className: "flex items-center gap-2 text-sm font-medium text-control-text", children: [
255
+ /* @__PURE__ */ t(l, { name: "upload", size: "sm" }),
256
+ n.dropToAttach
257
+ ] }) })
258
+ ]
259
+ }
260
+ ),
261
+ d && (f || g) && /* @__PURE__ */ a("div", { className: "flex min-w-0 flex-wrap items-center gap-x-2 gap-y-1 px-1.5 text-xs text-secondary", children: [
262
+ f,
263
+ g
264
+ ] }),
265
+ v && /* @__PURE__ */ a("p", { className: "flex items-center gap-1.5 px-1 text-2xs text-danger-text", children: [
266
+ /* @__PURE__ */ t(l, { name: "circle-alert", size: "xs" }),
267
+ v
268
+ ] })
269
+ ] });
270
+ }
271
+ export {
272
+ xe as Composer
273
+ };
274
+ //# sourceMappingURL=Composer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Composer.js","sources":["../../../src/components/chat/Composer.tsx"],"sourcesContent":["import {\n useRef,\n useState,\n type ClipboardEvent,\n type DragEvent,\n type KeyboardEvent,\n type ReactNode,\n type Ref,\n} from \"react\";\nimport { cn } from \"../../lib/cn\";\nimport { Button } from \"../Button\";\nimport { IconButton } from \"../IconButton\";\nimport { useUiStrings, type UiStrings } from \"../../lib/i18n\";\nimport { Icon } from \"../Icon\";\nimport { MarkdownEditor, type MarkdownEditorHandle } from \"../MarkdownEditor\";\nimport type { ImageUploader } from \"../../lib/markdown/image-pipeline\";\nimport { Tooltip } from \"../Popover\";\nimport { AttachmentList } from \"./Attachment\";\nimport type { ChatFile } from \"./types\";\n\n/* ============================================================================\n COMPOSER\n Where the message is written.\n\n ONE BORDERED REGION CONTAINING EVERYTHING — staged files, the text, and the\n controls. The alternative, a toolbar outside the field, makes the attachments\n look like they belong to the page rather than to the message being written,\n and people send without them. Enclosing them says \"this is the message\".\n\n THE TEXT IS A `MarkdownEditor chrome=\"bare\"` (DXUI-25). The value is markdown\n in and out, rendered live as it is typed, with the right-click formatting\n menu and the hotkeys; the editor draws no toolbar, gutter, border or footer,\n and takes this box's font size and line height, so the box looks as it did\n with a plain textarea. It grows with its content (the editable area has no\n fixed height) and is capped at `maxRows` lines, so a long draft scrolls\n internally instead of pushing the conversation off screen.\n ========================================================================= */\n\nexport interface ComposerProps {\n value: string;\n onValueChange: (value: string) => void;\n onSubmit: (value: string, files: ChatFile[]) => void;\n /** Staged files, shown above the text. */\n files?: ChatFile[];\n onFilesAdded?: (files: File[]) => void;\n onFileRemoved?: (file: ChatFile) => void;\n /**\n * DXUI-18: `\"stacked\"` (default) draws the text with its controls in a row UNDER it. `\"inline\"` draws ONE line,\n * `[attach] [text that grows] [send]`, the staged files in a scrolling `AttachmentList layout=\"strip\"` above the\n * text, and `toolbar` / `hint` in a row under the box.\n */\n layout?: \"stacked\" | \"inline\";\n /**\n * DXUI-18: `\"enter\"` (default) sends on Enter and breaks the line on Shift+Enter. `\"mod-enter\"` sends on\n * Ctrl/Cmd+Enter only; a plain Enter inserts a new line.\n */\n submitOn?: \"enter\" | \"mod-enter\";\n /**\n * DXUI-18: set → sending is unavailable AND this says why. The send button is disabled with the sentence as its\n * tooltip and accessible description, and the keyboard send does nothing. Unset → only the built-in rules apply\n * (empty, a file still uploading, busy, `disabled`).\n */\n submitDisabledReason?: string;\n /** Streaming — the send button becomes stop. */\n busy?: boolean;\n onStop?: () => void;\n placeholder?: string;\n disabled?: boolean;\n /** Blocks submit and explains why, under the field. */\n error?: ReactNode;\n /** Controls at the bottom-left — model, effort, context, whatever applies. */\n toolbar?: ReactNode;\n /** Extra buttons beside the attach button. */\n leading?: ReactNode;\n /** Hint at bottom-right, left of the send button. With `layout=\"inline\"` it joins `toolbar` in the row under the box,\n which is where a caller's status line (a sending spinner, a note) goes. */\n hint?: ReactNode;\n accept?: string;\n maxRows?: number;\n /**\n * DXUI-25: stores an image the text embeds (the attach chord, or a paste with no `onFilesAdded`) and resolves with its\n * URL; overrides the nearest `MarkdownImageUploadProvider`. A file pasted or dropped WITH `onFilesAdded` is staged as an\n * attachment instead and never reaches this. While an embedded file is not stored the send is unavailable.\n */\n uploadImage?: ImageUploader;\n /** DXUI-74: stores any other file the text embeds as a link, with `uploadImage`'s contract; see `MarkdownEditorProps.uploadFile`. Leaving it out does NOT disable file uploads: the editor falls through to the nearest `MarkdownImageUploadProvider`. A viewer who cannot comment is given an uploader that refuses, as `CommentComposer` does. Set `isFileUrl` with it. */\n uploadFile?: ImageUploader;\n /** DXUI-74: the picture types `uploadImage` stores; see `MarkdownEditorProps.imageTypes`. */\n imageTypes?: readonly string[];\n /** DXUI-74: whether a link's destination is a stored file, so it gets a tile; see `MarkdownEditorProps.isFileUrl`. */\n isFileUrl?: (url: string) => boolean;\n className?: string;\n /** DXUI-25: focuses the text (`focus(\"end\")` puts the caret after the draft). */\n ref?: Ref<MarkdownEditorHandle>;\n}\n\n/* DXUI-25: the text's vertical padding in each layout, named once. The className draws it and the max-height calc gives it\n back, so the editable area's cap equals the old textarea's, which counted its own padding. Each class is a literal for Tailwind. */\nconst TEXT_PADDING = {\n inline: { className: \"px-1.5 py-1.5\", blockRem: 0.375 },\n stacked: { className: \"px-1 py-1\", blockRem: 0.25 },\n} as const;\n/** DXUI-25: the allowance per row the old textarea's `maxRows` cap was measured in (the box inherits `text-sm`'s line height). */\nconst ROW_HEIGHT_REM = 1.5;\n\n/** Why the send is unavailable, and whether the stacked layout must show that reason too. */\ninterface SendBlock {\n reason: string;\n /** DXUI-18: the stacked send stays the plain disabled button for the built-in rules (empty, a file uploading, busy);\n a block that must be read (the caller's reason, an unstored image) switches it to the `Button` that carries a tooltip. */\n explained: boolean;\n}\n\n/**\n * DXUI-18 / DXUI-25: THE ONE ORDER of the send's rules - the first that holds blocks it, and `undefined` means it can send.\n * `canSend`, the inline send's tooltip and the stacked send's choice of button all read this, so a new rule is one line here.\n */\nfunction sendBlockOf(rules: {\n submitDisabledReason: string | undefined;\n unstoredImages: number;\n hasUploadingFile: boolean;\n hasContent: boolean;\n inactive: boolean;\n strings: Pick<UiStrings[\"chat\"][\"composer\"], \"sendUnstoredImage\" | \"sendUploading\" | \"sendNothing\" | \"unavailable\">;\n}): SendBlock | undefined {\n const { strings } = rules;\n /* The caller's reason wins over every built-in one. */\n if (rules.submitDisabledReason !== undefined) return { reason: rules.submitDisabledReason, explained: true };\n /* PLN-10 R-1: an image in the text that is uploading, failed or only local is a `blob:` URL no other reader can load. */\n if (rules.unstoredImages > 0) return { reason: strings.sendUnstoredImage, explained: true };\n /* A file mid-upload has no id the caller can send yet. */\n if (rules.hasUploadingFile) return { reason: strings.sendUploading, explained: false };\n if (!rules.hasContent) return { reason: strings.sendNothing, explained: false };\n if (rules.inactive) return { reason: strings.unavailable, explained: false };\n return undefined;\n}\n\nexport function Composer({\n value,\n onValueChange,\n onSubmit,\n layout = \"stacked\",\n submitOn = \"enter\",\n submitDisabledReason,\n files = [],\n onFilesAdded,\n onFileRemoved,\n busy = false,\n onStop,\n placeholder,\n disabled = false,\n error,\n toolbar,\n leading,\n hint,\n accept,\n maxRows = 12,\n uploadImage,\n uploadFile,\n imageTypes,\n isFileUrl,\n className,\n ref,\n}: ComposerProps) {\n const strings = useUiStrings().chat.composer;\n const placeholderText = placeholder ?? strings.placeholder;\n const inputRef = useRef<HTMLInputElement | null>(null);\n const [dragging, setDragging] = useState(false);\n\n /* DXUI-25: THE EDITOR'S SAVE GATE HOLDS FOR THE SEND (PLN-10 R-1): the editor reports how many images in the text are not stored. */\n const [unstoredImages, setUnstoredImages] = useState(0);\n /* A file mid-upload has no id the caller can send yet, so Send must not fire while one is in flight, or a chat consumer\n either sends a partial file set or invents its own guard on top of a button that visibly says \"go\". */\n const sendBlock = sendBlockOf({\n submitDisabledReason,\n unstoredImages,\n hasUploadingFile: files.some((file) => file.status === \"uploading\"),\n hasContent: value.trim().length > 0 || files.length > 0,\n inactive: disabled || busy,\n strings,\n });\n const canSend = sendBlock === undefined;\n const inline = layout === \"inline\";\n const padding = TEXT_PADDING[layout];\n\n const submit = () => {\n if (!canSend) return;\n onSubmit(value, files);\n };\n\n /* DXUI-25: bound in the CAPTURE phase. The editor's own key handling is a native listener on its editable and consumes\n Enter (a new line, a list item), so by the time a bubbling handler ran the key would already be spent. */\n const onKeyDownCapture = (event: KeyboardEvent<HTMLElement>) => {\n /* A key typed in a menu or popover the editor portals out still bubbles through React to here; only the text is ours. */\n if (!(event.target as Element).closest(\"[data-md-editable]\")) return;\n /* Enter sends, Shift+Enter breaks the line. The reverse is defensible for\n long-form writing, but this is a chat: the overwhelmingly common action\n is send, and it should be the unqualified key.\n\n IME composition is excluded — while composing Japanese or Chinese, Enter\n commits the candidate and must never send a half-typed word. */\n if (event.key !== \"Enter\" || event.nativeEvent.isComposing) return;\n /* DXUI-18: `mod-enter` is the long-form reading of the choice above - the plain key breaks the line (the browser's\n own behavior, so it is left alone) and only Ctrl/Cmd+Enter sends. */\n if (submitOn === \"mod-enter\" ? !(event.ctrlKey || event.metaKey) : event.shiftKey) return;\n event.preventDefault();\n event.stopPropagation();\n submit();\n };\n\n const onPasteCapture = (event: ClipboardEvent<HTMLElement>) => {\n if (!onFilesAdded) return;\n const pasted = [...event.clipboardData.files];\n if (pasted.length === 0) return;\n /* Pasting a screenshot is how most images reach a chat. Without this it\n pastes nothing at all, which reads as the app being broken. */\n event.preventDefault();\n event.stopPropagation();\n onFilesAdded(pasted);\n };\n\n /* Capture phase (DXUI-25): the editor also takes dropped image files into the markdown, and a composer that stages\n attachments must be the only one to take them. */\n const onDropCapture = (event: DragEvent<HTMLDivElement>) => {\n setDragging(false);\n if (!onFilesAdded) return;\n const dropped = [...event.dataTransfer.files];\n if (dropped.length === 0) return;\n event.preventDefault();\n event.stopPropagation();\n onFilesAdded(dropped);\n };\n\n const fileInput = onFilesAdded && (\n <input\n ref={inputRef}\n type=\"file\"\n multiple\n accept={accept}\n onChange={(event) => {\n const chosen = [...(event.target.files ?? [])];\n if (chosen.length > 0) onFilesAdded(chosen);\n /* Cleared so choosing the SAME file twice in a row still\n fires a change event. */\n event.target.value = \"\";\n }}\n className=\"sr-only\"\n tabIndex={-1}\n /* Out of the accessibility tree entirely. The paperclip button\n is the labelled control and the only way in; leaving this in\n the tree offers a second, unlabelled file input to anyone\n using a screen reader, which is worse than not exposing it. */\n aria-hidden\n />\n );\n\n const textbox = (\n <div data-composer-text=\"\" onKeyDownCapture={onKeyDownCapture} onPasteCapture={onPasteCapture} className={inline ? \"flex min-h-control-sm min-w-0 flex-1 flex-col justify-center\" : \"w-full\"}>\n <MarkdownEditor\n ref={ref}\n /* I18N-ALLOW: editor chrome token, not words */\n chrome=\"bare\"\n label={placeholderText}\n value={value}\n onChange={onValueChange}\n placeholder={placeholderText}\n readOnly={disabled}\n uploadImage={uploadImage}\n uploadFile={uploadFile}\n imageTypes={imageTypes}\n isFileUrl={isFileUrl}\n onImageUploadStateChange={(state) => setUnstoredImages(state.unstored)}\n /* No floor of the editor's own: the box is one line tall until the draft grows, as the textarea was. */\n minHeight={0}\n maxHeight={`calc(${maxRows} * ${ROW_HEIGHT_REM}rem - ${2 * padding.blockRem}rem)`}\n className={cn(\n \"text-sm text-primary\",\n /* DXUI-18: inline, the field is the row's flexible middle. The wrapper's `min-h-control-sm` is the height of the buttons beside it\n (it lifts to 44px under a coarse pointer together with them) and centres a one-line draft on them (DXUI-31); a\n taller draft fills the wrapper, reads from the top and grows upward from the same bottom edge. */\n padding.className,\n )}\n />\n </div>\n );\n\n return (\n <div className={cn(\"flex flex-col gap-1.5\", className)}>\n <div\n onDragOver={(event) => {\n if (!onFilesAdded) return;\n event.preventDefault();\n setDragging(true);\n }}\n onDragLeave={(event) => {\n /* Only when the pointer leaves the composer itself. Without the\n containment check, dragging across a child fires leave and the\n highlight strobes. */\n if (event.currentTarget.contains(event.relatedTarget as Node)) return;\n setDragging(false);\n }}\n onDropCapture={onDropCapture}\n data-composer-box=\"\"\n data-dragging={dragging || undefined}\n className={cn(\n \"relative flex flex-col rounded-2xl border bg-field\",\n inline ? \"gap-1.5 p-1.5\" : \"gap-2 p-2.5\",\n \"transition-[var(--tx-colors),box-shadow] duration-(--dur-fast) ease-(--ease-standard)\",\n \"focus-within:border-control focus-within:ring-4 focus-within:ring-control-focus-halo\",\n error ? \"border-danger-border\" : \"border-field-border\",\n dragging && \"border-control ring-4 ring-control-focus-halo\",\n disabled && \"opacity-60\",\n )}\n >\n {files.length > 0 && (\n <AttachmentList\n files={files}\n layout={inline ? \"strip\" : \"tile\"}\n onRemove={onFileRemoved}\n disabled={disabled}\n className={inline ? \"px-1.5 pt-1.5\" : undefined}\n />\n )}\n\n {inline ? (\n <div className=\"flex items-end gap-1\">\n {onFilesAdded && (\n <>\n {fileInput}\n <IconButton\n icon={<Icon name=\"paperclip\" size=\"md\" />}\n label={strings.attach}\n variant=\"ghost\"\n size=\"sm\"\n disabledReason={disabled ? strings.unavailable : undefined}\n onClick={() => inputRef.current?.click()}\n />\n </>\n )}\n {leading}\n {textbox}\n {busy && onStop ? (\n <IconButton\n icon={<span className=\"size-2.5 rounded-[3px] bg-current\" />}\n label={strings.stop}\n variant=\"outline\"\n size=\"sm\"\n /* DXUI-19: the stop and send buttons are circles in both layouts. */\n className=\"rounded-full\"\n onClick={onStop}\n />\n ) : (\n <IconButton\n icon={<Icon name=\"arrow-up\" size=\"md\" />}\n label={strings.send}\n variant=\"solid\"\n size=\"sm\"\n className=\"rounded-full\"\n disabledReason={sendBlock?.reason}\n onClick={submit}\n />\n )}\n </div>\n ) : (\n <>\n {textbox}\n\n {/* A CONTAINER QUERY, not a viewport one. This row is inside a resizable\n panel, so its width has almost nothing to do with the window: the same\n composer is 720px wide on a phone-shaped panel that has been dragged\n open and 360px wide on a desktop with a narrow chat pane. A `sm:`\n variant would answer the wrong question in both directions. */}\n <div className=\"@container flex items-center gap-1\">\n {onFilesAdded && (\n <>\n {fileInput}\n <Tooltip content={strings.attach}>\n <button\n type=\"button\"\n onClick={() => inputRef.current?.click()}\n disabled={disabled}\n aria-label={strings.attach}\n className={cn(\n \"dx-tap grid size-7 shrink-0 cursor-pointer place-items-center rounded-lg text-tertiary outline-none\",\n \"transition-colors duration-(--dur-fast) hover:bg-surface-hover hover:text-primary\",\n \"focus-visible:ring-2 focus-visible:ring-focus-ring\",\n disabled && \"pointer-events-none opacity-50\",\n )}\n >\n <Icon name=\"paperclip\" size=\"sm\" />\n </button>\n </Tooltip>\n </>\n )}\n\n {leading}\n {toolbar && <div className=\"flex min-w-0 items-center gap-0.5\">{toolbar}</div>}\n\n <div className=\"ml-auto flex items-center gap-2\">\n {/* The hint is the first thing to go when the row runs out of room:\n it repeats a shortcut the person either knows or can discover by\n pressing Enter, while everything beside it is a control. Below a\n 24rem row it was wrapping onto two lines and colliding with the\n send button. */}\n {hint && <span className=\"hidden text-2xs text-tertiary @sm:inline\">{hint}</span>}\n\n {busy && onStop ? (\n <Tooltip content={strings.stop}>\n <button\n type=\"button\"\n onClick={onStop}\n aria-label={strings.stop}\n /* `dx-ground-raised`: this button paints its OWN resting\n surface, so its hover has to be measured from that and not\n from the composer behind it. */\n className=\"dx-ground-raised dx-tap grid size-8 shrink-0 cursor-pointer place-items-center rounded-full bg-surface-raised text-primary outline-none ring-1 ring-border transition-colors duration-(--dur-fast) hover:bg-surface-hover focus-visible:ring-2 focus-visible:ring-focus-ring\"\n >\n {/* A square, not an X: stop is not dismiss, and the square is\n the universal transport symbol for it. */}\n <span className=\"size-2.5 rounded-[3px] bg-current\" />\n </button>\n </Tooltip>\n ) : (\n /* DXUI-18: a stacked composer is a surface already in use, so with no `submitDisabledReason` its send is\n the button it always was (a `Button` differs in size, dimming, focus ring, press translate, ripple and\n cursor). A reason is the opt-in, and `Button` owns what a reason needs - soft-disabled, tooltip,\n accessible description. */\n !sendBlock?.explained ? (\n <button\n type=\"button\"\n onClick={submit}\n disabled={!canSend}\n aria-label={strings.send}\n className={cn(\n \"dx-tap grid size-8 shrink-0 cursor-pointer place-items-center rounded-full outline-none\",\n \"transition-[var(--tx-colors),transform] duration-(--dur-fast) ease-(--ease-snappy)\",\n \"focus-visible:ring-2 focus-visible:ring-focus-ring\",\n canSend\n ? \"bg-accent text-accent-contrast hover:bg-accent-hover active:scale-95\"\n : \"cursor-not-allowed bg-surface-inset text-disabled\",\n )}\n >\n <Icon name=\"arrow-up\" size=\"sm\" />\n </button>\n ) : (\n <Button\n variant=\"solid\"\n size=\"sm\"\n iconOnly\n aria-label={strings.send}\n onClick={submit}\n disabledReason={sendBlock.reason}\n /* `h-8!`: `size=\"sm\"` carries `h-control-sm` (36px), which `size-8` does not displace, so the box would grow 4px\n whenever a reason appears; the important height pins it to the 32px of the button without one. */\n className=\"dx-tap size-8 h-8! rounded-full\"\n >\n <Icon name=\"arrow-up\" size=\"sm\" />\n </Button>\n )\n )}\n </div>\n </div>\n </>\n )}\n\n {dragging && (\n <div className=\"pointer-events-none absolute inset-0 grid place-items-center rounded-2xl bg-control-subtle/80\">\n <span className=\"flex items-center gap-2 text-sm font-medium text-control-text\">\n <Icon name=\"upload\" size=\"sm\" />\n {strings.dropToAttach}\n </span>\n </div>\n )}\n </div>\n\n {inline && (toolbar || hint) && (\n <div className=\"flex min-w-0 flex-wrap items-center gap-x-2 gap-y-1 px-1.5 text-xs text-secondary\">\n {toolbar}\n {hint}\n </div>\n )}\n\n {error && (\n <p className=\"flex items-center gap-1.5 px-1 text-2xs text-danger-text\">\n <Icon name=\"circle-alert\" size=\"xs\" />\n {error}\n </p>\n )}\n </div>\n );\n}\n"],"names":["TEXT_PADDING","ROW_HEIGHT_REM","sendBlockOf","rules","strings","Composer","value","onValueChange","onSubmit","layout","submitOn","submitDisabledReason","files","onFilesAdded","onFileRemoved","busy","onStop","placeholder","disabled","error","toolbar","leading","hint","accept","maxRows","uploadImage","uploadFile","imageTypes","isFileUrl","className","ref","useUiStrings","placeholderText","inputRef","useRef","dragging","setDragging","useState","unstoredImages","setUnstoredImages","sendBlock","file","canSend","inline","padding","submit","onKeyDownCapture","event","onPasteCapture","pasted","onDropCapture","dropped","fileInput","jsx","chosen","textbox","MarkdownEditor","state","cn","jsxs","AttachmentList","Fragment","IconButton","Icon","Tooltip","Button"],"mappings":"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"}
@@ -0,0 +1,202 @@
1
+ import { jsx as e, jsxs as a } from "react/jsx-runtime";
2
+ import { useId as C } from "react";
3
+ import { cn as i } from "../../lib/cn.js";
4
+ import { formatPercent as L } from "../../lib/intl-cache.js";
5
+ import { formatTokens as m } from "../../lib/format.js";
6
+ import { Icon as S } from "../Icon.js";
7
+ import { Popover as T } from "../Popover.js";
8
+ import { ProgressRing as I } from "../Progress.js";
9
+ import { useUiLocale as P, useUiStrings as E } from "../../lib/i18n/provider.js";
10
+ const f = [
11
+ "var(--color-accent)",
12
+ "var(--color-info)",
13
+ "var(--color-warning)",
14
+ "var(--color-success)",
15
+ "var(--color-brand)"
16
+ ];
17
+ function H({
18
+ segments: n,
19
+ capacity: t,
20
+ limits: s,
21
+ warnAt: u = 0.8,
22
+ dangerAt: g = 0.92,
23
+ inline: b = !1,
24
+ side: _ = "top",
25
+ align: j = "start",
26
+ className: v
27
+ }) {
28
+ const c = P(), d = E().chat.contextMeter, h = (r) => L(Math.round(r), c), N = C(), p = n.reduce((r, l) => r + Math.max(0, l.tokens), 0), x = t > 0 ? p / t : 0, w = Math.round(x * 100), o = x >= g ? "danger" : x >= u ? "warning" : "normal", y = d.summary(m(p, c), m(t, c), h(w)), z = /* @__PURE__ */ e(
29
+ "div",
30
+ {
31
+ role: "img",
32
+ "aria-labelledby": N,
33
+ className: "flex h-1.5 w-full gap-px overflow-hidden rounded-full bg-surface-inset",
34
+ children: n.map((r, l) => {
35
+ const k = t > 0 ? r.tokens / t * 100 : 0;
36
+ return k <= 0 ? null : /* @__PURE__ */ e(
37
+ "span",
38
+ {
39
+ className: "h-full first:rounded-l-full transition-[var(--tx-colors),width] duration-(--dur-slow) ease-(--ease-standard)",
40
+ style: {
41
+ width: `${k}%`,
42
+ background: r.color ?? (o === "danger" && l === n.length - 1 ? "var(--color-danger)" : f[l % f.length])
43
+ }
44
+ },
45
+ r.id
46
+ );
47
+ })
48
+ }
49
+ ), M = (
50
+ /* Marker for the overlay and visual gates — same reason as the effort
51
+ panel: the popup's own DOM has no selector a probe can name without
52
+ depending on an implementation detail. */
53
+ /* DX-4086 — in the popup the design width lives on the popup (`width` below) and the
54
+ panel fills it; inline there is no popup, so the panel keeps its own 18rem, capped
55
+ by its container. */
56
+ /* @__PURE__ */ a(
57
+ "div",
58
+ {
59
+ "data-context-panel": "",
60
+ className: i("flex min-w-0 flex-col gap-3", b ? ["w-72 max-w-full", v] : "w-full"),
61
+ children: [
62
+ /* @__PURE__ */ a("div", { className: "flex flex-col gap-1.5", children: [
63
+ /* @__PURE__ */ a("div", { className: "flex items-baseline justify-between gap-3", children: [
64
+ /* @__PURE__ */ e("span", { id: N, className: "text-sm font-semibold text-primary", children: d.title }),
65
+ /* @__PURE__ */ e(
66
+ "span",
67
+ {
68
+ className: i(
69
+ "font-mono text-2xs tabular-nums",
70
+ o === "danger" ? "text-danger-text" : o === "warning" ? "text-warning-text" : "text-tertiary"
71
+ ),
72
+ children: y
73
+ }
74
+ )
75
+ ] }),
76
+ z
77
+ ] }),
78
+ /* @__PURE__ */ a("ul", { className: "flex flex-col gap-1", children: [
79
+ n.map((r, l) => /* @__PURE__ */ a("li", { className: "flex items-center gap-2 text-2xs", children: [
80
+ /* @__PURE__ */ e(
81
+ "span",
82
+ {
83
+ "aria-hidden": !0,
84
+ className: "size-2 shrink-0 rounded-[3px]",
85
+ style: {
86
+ background: r.color ?? f[l % f.length]
87
+ }
88
+ }
89
+ ),
90
+ /* @__PURE__ */ e("span", { className: "flex-1 truncate text-secondary", children: r.label }),
91
+ /* @__PURE__ */ e("span", { className: "font-mono tabular-nums text-tertiary", children: m(r.tokens, c) })
92
+ ] }, r.id)),
93
+ /* @__PURE__ */ a("li", { className: "flex items-center gap-2 text-2xs", children: [
94
+ /* @__PURE__ */ e(
95
+ "span",
96
+ {
97
+ "aria-hidden": !0,
98
+ className: "size-2 shrink-0 rounded-[3px] border border-border bg-surface-inset"
99
+ }
100
+ ),
101
+ /* @__PURE__ */ e("span", { className: "flex-1 truncate text-tertiary", children: d.free }),
102
+ /* @__PURE__ */ e("span", { className: "font-mono tabular-nums text-tertiary", children: m(Math.max(0, t - p), c) })
103
+ ] })
104
+ ] }),
105
+ s && s.length > 0 && /* @__PURE__ */ e("div", { className: "flex flex-col gap-2 border-t border-border-subtle pt-3", children: s.map((r) => /* @__PURE__ */ a("div", { className: "flex flex-col gap-1", children: [
106
+ /* @__PURE__ */ a("div", { className: "flex items-baseline justify-between gap-3 text-2xs", children: [
107
+ /* @__PURE__ */ e("span", { className: "truncate font-medium text-secondary", children: r.label }),
108
+ r.resets && /* @__PURE__ */ e("span", { className: "shrink-0 text-tertiary", children: r.resets }),
109
+ /* @__PURE__ */ e("span", { className: "font-mono tabular-nums text-tertiary", children: h(r.percent) })
110
+ ] }),
111
+ /* @__PURE__ */ e("div", { className: "h-1 w-full overflow-hidden rounded-full bg-surface-inset", children: /* @__PURE__ */ e(
112
+ "div",
113
+ {
114
+ className: i(
115
+ "h-full rounded-full transition-[var(--tx-colors),width] duration-(--dur-slow) ease-(--ease-standard)",
116
+ r.percent >= g * 100 ? "bg-danger" : r.percent >= u * 100 ? "bg-warning" : "bg-accent"
117
+ ),
118
+ style: { width: `${Math.min(100, Math.max(0, r.percent))}%` }
119
+ }
120
+ ) })
121
+ ] }, r.id)) })
122
+ ]
123
+ }
124
+ )
125
+ );
126
+ return b ? M : /* @__PURE__ */ e(
127
+ T,
128
+ {
129
+ side: _,
130
+ align: j,
131
+ width: "calc(19.5rem*var(--ui-scale))",
132
+ className: "p-3",
133
+ trigger: /* @__PURE__ */ a(
134
+ "button",
135
+ {
136
+ type: "button",
137
+ "aria-label": d.triggerLabel(y),
138
+ className: i(
139
+ "dx-tap group/context inline-flex cursor-pointer items-center gap-2 rounded-md px-2 py-1",
140
+ "transition-colors duration-(--dur-fast) hover:bg-surface-hover",
141
+ "outline-none focus-visible:ring-2 focus-visible:ring-focus-ring",
142
+ v
143
+ ),
144
+ children: [
145
+ /* @__PURE__ */ e(O, { fraction: x, tone: o, label: d.dialLabel }),
146
+ /* @__PURE__ */ e(
147
+ "span",
148
+ {
149
+ className: i(
150
+ "font-mono text-2xs tabular-nums transition-colors duration-(--dur-fast)",
151
+ o === "danger" ? "text-danger-text" : o === "warning" ? "text-warning-text" : "text-tertiary group-hover/context:text-secondary"
152
+ ),
153
+ children: h(w)
154
+ }
155
+ ),
156
+ /* @__PURE__ */ e(
157
+ S,
158
+ {
159
+ name: "chevron-right",
160
+ size: "xs",
161
+ className: "text-tertiary transition-[var(--tx-colors),transform,translate,scale,rotate] duration-(--dur-fast) group-hover/context:translate-x-0.5"
162
+ }
163
+ )
164
+ ]
165
+ }
166
+ ),
167
+ children: M
168
+ }
169
+ );
170
+ }
171
+ function O({ fraction: n, tone: t, label: s }) {
172
+ const u = t === "danger" ? "danger" : t === "warning" ? "warning" : "accent";
173
+ return /* @__PURE__ */ e(
174
+ I,
175
+ {
176
+ value: Math.min(1, Math.max(0, n)) * 100,
177
+ tone: u,
178
+ size: "xs",
179
+ showValue: !1,
180
+ label: s
181
+ }
182
+ );
183
+ }
184
+ function J({ children: n, active: t = !0, className: s }) {
185
+ return /* @__PURE__ */ e(
186
+ "span",
187
+ {
188
+ "aria-live": "polite",
189
+ className: i(
190
+ "text-2xs font-medium",
191
+ t ? "animate-shimmer bg-[linear-gradient(90deg,var(--color-tertiary)_20%,var(--color-primary)_45%,var(--color-tertiary)_70%)] bg-[length:220%_100%] bg-clip-text text-transparent" : "text-tertiary",
192
+ s
193
+ ),
194
+ children: n
195
+ }
196
+ );
197
+ }
198
+ export {
199
+ J as ChatStatus,
200
+ H as ContextMeter
201
+ };
202
+ //# sourceMappingURL=ContextMeter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContextMeter.js","sources":["../../../src/components/chat/ContextMeter.tsx"],"sourcesContent":["import { useId, type ReactNode } from \"react\";\nimport { cn } from \"../../lib/cn\";\nimport { useUiLocale, useUiStrings } from \"../../lib/i18n\";\nimport { formatPercent } from \"../../lib/intl-cache\";\nimport { formatTokens } from \"../../lib/format\";\nimport { Icon } from \"../Icon\";\nimport { Popover } from \"../Popover\";\nimport { ProgressRing, type ProgressTone } from \"../Progress\";\n\n/* ============================================================================\n CONTEXT METER\n How much of the window is spoken for, and by what.\n\n SEGMENTED, NOT A SINGLE FILL. \"76% remaining\" answers the wrong question.\n The useful one is what is EATING it — a system prompt and a set of tool\n definitions are fixed costs you cannot type your way out of, while message\n history is the part that compaction reclaims. One bar with one colour hides\n the only distinction that changes what a person does next.\n\n NOT A PROGRESS BAR. `Progress` announces a task advancing toward completion;\n filling a context window is neither a task nor desirable. This is closer to\n a fuel gauge, and it carries `role=\"img\"` with a written label rather than\n progressbar semantics that would have a screen reader narrate consumption as\n achievement.\n ========================================================================= */\n\nexport interface ContextSegment {\n id: string;\n label: string;\n tokens: number;\n /** Any CSS colour. Defaults walk a fixed palette in declaration order. */\n color?: string;\n}\n\nconst SEGMENT_COLORS = [\n \"var(--color-accent)\",\n \"var(--color-info)\",\n \"var(--color-warning)\",\n \"var(--color-success)\",\n \"var(--color-brand)\",\n];\n\nexport interface UsageLimit {\n id: string;\n label: string;\n /** 0–100. */\n percent: number;\n /** \"Resets in 1 hr 46 min\" — relative or absolute, whichever is clearer. */\n resets?: string;\n}\n\nexport interface ContextMeterProps {\n segments: ContextSegment[];\n /** Total window size in tokens. */\n capacity: number;\n /** Plan or rate limits, listed under the breakdown. */\n limits?: UsageLimit[];\n /** Fraction of capacity at which the bar turns amber, then red. */\n warnAt?: number;\n dangerAt?: number;\n /** Renders the panel inline rather than behind a trigger row. */\n inline?: boolean;\n side?: \"top\" | \"bottom\";\n align?: \"start\" | \"center\" | \"end\";\n className?: string;\n}\n\nexport function ContextMeter({\n segments,\n capacity,\n limits,\n warnAt = 0.8,\n dangerAt = 0.92,\n inline = false,\n side = \"top\",\n align = \"start\",\n className,\n}: ContextMeterProps) {\n const locale = useUiLocale();\n const strings = useUiStrings().chat.contextMeter;\n const percentText = (value: number) => formatPercent(Math.round(value), locale);\n const labelId = useId();\n const used = segments.reduce((total, segment) => total + Math.max(0, segment.tokens), 0);\n const fraction = capacity > 0 ? used / capacity : 0;\n const percent = Math.round(fraction * 100);\n\n const tone = fraction >= dangerAt ? \"danger\" : fraction >= warnAt ? \"warning\" : \"normal\";\n const summary = strings.summary(formatTokens(used, locale), formatTokens(capacity, locale), percentText(percent));\n\n const bar = (\n <div\n role=\"img\"\n aria-labelledby={labelId}\n className=\"flex h-1.5 w-full gap-px overflow-hidden rounded-full bg-surface-inset\"\n >\n {segments.map((segment, index) => {\n const share = capacity > 0 ? (segment.tokens / capacity) * 100 : 0;\n if (share <= 0) return null;\n return (\n <span\n key={segment.id}\n className=\"h-full first:rounded-l-full transition-[var(--tx-colors),width] duration-(--dur-slow) ease-(--ease-standard)\"\n style={{\n width: `${share}%`,\n background:\n segment.color ??\n (tone === \"danger\" && index === segments.length - 1\n ? \"var(--color-danger)\"\n : SEGMENT_COLORS[index % SEGMENT_COLORS.length]),\n }}\n />\n );\n })}\n </div>\n );\n\n const panel = (\n /* Marker for the overlay and visual gates — same reason as the effort\n panel: the popup's own DOM has no selector a probe can name without\n depending on an implementation detail. */\n /* DX-4086 — in the popup the design width lives on the popup (`width` below) and the\n panel fills it; inline there is no popup, so the panel keeps its own 18rem, capped\n by its container. */\n <div\n data-context-panel=\"\"\n className={cn(\"flex min-w-0 flex-col gap-3\", inline ? [\"w-72 max-w-full\", className] : \"w-full\")}\n >\n <div className=\"flex flex-col gap-1.5\">\n <div className=\"flex items-baseline justify-between gap-3\">\n <span id={labelId} className=\"text-sm font-semibold text-primary\">\n {strings.title}\n </span>\n <span\n className={cn(\n \"font-mono text-2xs tabular-nums\",\n tone === \"danger\"\n ? \"text-danger-text\"\n : tone === \"warning\"\n ? \"text-warning-text\"\n : \"text-tertiary\",\n )}\n >\n {summary}\n </span>\n </div>\n {bar}\n </div>\n\n <ul className=\"flex flex-col gap-1\">\n {segments.map((segment, index) => (\n <li key={segment.id} className=\"flex items-center gap-2 text-2xs\">\n <span\n aria-hidden\n className=\"size-2 shrink-0 rounded-[3px]\"\n style={{\n background: segment.color ?? SEGMENT_COLORS[index % SEGMENT_COLORS.length],\n }}\n />\n <span className=\"flex-1 truncate text-secondary\">{segment.label}</span>\n <span className=\"font-mono tabular-nums text-tertiary\">\n {formatTokens(segment.tokens, locale)}\n </span>\n </li>\n ))}\n <li className=\"flex items-center gap-2 text-2xs\">\n <span\n aria-hidden\n className=\"size-2 shrink-0 rounded-[3px] border border-border bg-surface-inset\"\n />\n <span className=\"flex-1 truncate text-tertiary\">{strings.free}</span>\n <span className=\"font-mono tabular-nums text-tertiary\">\n {formatTokens(Math.max(0, capacity - used), locale)}\n </span>\n </li>\n </ul>\n\n {limits && limits.length > 0 && (\n <div className=\"flex flex-col gap-2 border-t border-border-subtle pt-3\">\n {limits.map((limit) => (\n <div key={limit.id} className=\"flex flex-col gap-1\">\n <div className=\"flex items-baseline justify-between gap-3 text-2xs\">\n <span className=\"truncate font-medium text-secondary\">{limit.label}</span>\n {limit.resets && <span className=\"shrink-0 text-tertiary\">{limit.resets}</span>}\n <span className=\"font-mono tabular-nums text-tertiary\">\n {percentText(limit.percent)}\n </span>\n </div>\n <div className=\"h-1 w-full overflow-hidden rounded-full bg-surface-inset\">\n <div\n className={cn(\n \"h-full rounded-full transition-[var(--tx-colors),width] duration-(--dur-slow) ease-(--ease-standard)\",\n limit.percent >= dangerAt * 100\n ? \"bg-danger\"\n : limit.percent >= warnAt * 100\n ? \"bg-warning\"\n : \"bg-accent\",\n )}\n style={{ width: `${Math.min(100, Math.max(0, limit.percent))}%` }}\n />\n </div>\n </div>\n ))}\n </div>\n )}\n </div>\n );\n\n if (inline) return panel;\n\n return (\n <Popover\n side={side}\n align={align}\n /* 19.5rem = the panel's 18rem design width (the `w-72` it keeps inline) plus this\n popup's `p-3` (1.5rem); the popup width includes its padding. */\n width=\"calc(19.5rem*var(--ui-scale))\"\n className=\"p-3\"\n trigger={\n <button\n type=\"button\"\n aria-label={strings.triggerLabel(summary)}\n className={cn(\n \"dx-tap group/context inline-flex cursor-pointer items-center gap-2 rounded-md px-2 py-1\",\n \"transition-colors duration-(--dur-fast) hover:bg-surface-hover\",\n \"outline-none focus-visible:ring-2 focus-visible:ring-focus-ring\",\n className,\n )}\n >\n {/* A ring rather than a bar on the trigger: it holds a percentage in\n a square the height of the text it sits beside, where a\n meaningful horizontal bar would need three times the width. */}\n <ContextDial fraction={fraction} tone={tone} label={strings.dialLabel} />\n <span\n className={cn(\n \"font-mono text-2xs tabular-nums transition-colors duration-(--dur-fast)\",\n tone === \"danger\"\n ? \"text-danger-text\"\n : tone === \"warning\"\n ? \"text-warning-text\"\n : \"text-tertiary group-hover/context:text-secondary\",\n )}\n >\n {percentText(percent)}\n </span>\n <Icon\n name=\"chevron-right\"\n size=\"xs\"\n className=\"text-tertiary transition-[var(--tx-colors),transform,translate,scale,rotate] duration-(--dur-fast) group-hover/context:translate-x-0.5\"\n />\n </button>\n }\n >\n {panel}\n </Popover>\n );\n}\n\n/**\n * DX-2948: this used to be a hand-rolled `pathLength=\"1\"` single-arc SVG,\n * geometrically identical to (and drifting from) `ProgressRing`'s own arc\n * maths. It now delegates to `ProgressRing` at the new `xs` size instead of\n * re-deriving that math a second time — one compact-ring implementation,\n * not two. `showValue` stays off: two digits do not fit a 14px circle, and\n * the percentage is already rendered as text beside the dial.\n */\nfunction ContextDial({ fraction, tone, label }: { fraction: number; tone: string; label: string }) {\n const ringTone: ProgressTone = tone === \"danger\" ? \"danger\" : tone === \"warning\" ? \"warning\" : \"accent\";\n return (\n <ProgressRing\n value={Math.min(1, Math.max(0, fraction)) * 100}\n tone={ringTone}\n size=\"xs\"\n showValue={false}\n label={label}\n />\n );\n}\n\n/**\n * A live status line for the composer — \"Thinking…\", \"Ran 3 commands\".\n *\n * Shimmer rather than a spinner: a spinner beside text competes with it for\n * attention and adds a second thing moving in a row that already has one. The\n * text saying what is happening IS the indicator.\n */\nexport interface ChatStatusProps {\n children: ReactNode;\n active?: boolean;\n className?: string;\n}\n\nexport function ChatStatus({ children, active = true, className }: ChatStatusProps) {\n return (\n <span\n aria-live=\"polite\"\n className={cn(\n \"text-2xs font-medium\",\n active\n ? \"animate-shimmer bg-[linear-gradient(90deg,var(--color-tertiary)_20%,var(--color-primary)_45%,var(--color-tertiary)_70%)] bg-[length:220%_100%] bg-clip-text text-transparent\"\n : \"text-tertiary\",\n className,\n )}\n >\n {children}\n </span>\n );\n}\n"],"names":["SEGMENT_COLORS","ContextMeter","segments","capacity","limits","warnAt","dangerAt","inline","side","align","className","locale","useUiLocale","strings","useUiStrings","percentText","value","formatPercent","labelId","useId","used","total","segment","fraction","percent","tone","summary","formatTokens","bar","jsx","index","share","panel","jsxs","cn","limit","Popover","ContextDial","Icon","label","ringTone","ProgressRing","ChatStatus","children","active"],"mappings":"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"}