@50arms/ui 0.0.0-stage → 35.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1256) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +193 -2
  3. package/dist/components/Accordion.js +68 -0
  4. package/dist/components/Accordion.js.map +1 -0
  5. package/dist/components/AgentWorkingSpinner.js +46 -0
  6. package/dist/components/AgentWorkingSpinner.js.map +1 -0
  7. package/dist/components/AppShell.js +228 -0
  8. package/dist/components/AppShell.js.map +1 -0
  9. package/dist/components/Attention.js +130 -0
  10. package/dist/components/Attention.js.map +1 -0
  11. package/dist/components/Avatar.js +99 -0
  12. package/dist/components/Avatar.js.map +1 -0
  13. package/dist/components/Badge.js +143 -0
  14. package/dist/components/Badge.js.map +1 -0
  15. package/dist/components/Board.js +292 -0
  16. package/dist/components/Board.js.map +1 -0
  17. package/dist/components/Button.js +327 -0
  18. package/dist/components/Button.js.map +1 -0
  19. package/dist/components/Callout.js +106 -0
  20. package/dist/components/Callout.js.map +1 -0
  21. package/dist/components/Card.js +140 -0
  22. package/dist/components/Card.js.map +1 -0
  23. package/dist/components/Choice.js +361 -0
  24. package/dist/components/Choice.js.map +1 -0
  25. package/dist/components/CodeEditor.js +384 -0
  26. package/dist/components/CodeEditor.js.map +1 -0
  27. package/dist/components/ColorPicker.js +174 -0
  28. package/dist/components/ColorPicker.js.map +1 -0
  29. package/dist/components/Combobox.js +212 -0
  30. package/dist/components/Combobox.js.map +1 -0
  31. package/dist/components/CommandPalette.js +163 -0
  32. package/dist/components/CommandPalette.js.map +1 -0
  33. package/dist/components/ConcentricRing.js +60 -0
  34. package/dist/components/ConcentricRing.js.map +1 -0
  35. package/dist/components/ConnectionCard.js +98 -0
  36. package/dist/components/ConnectionCard.js.map +1 -0
  37. package/dist/components/ContextItemRow.js +49 -0
  38. package/dist/components/ContextItemRow.js.map +1 -0
  39. package/dist/components/CopyValue.js +57 -0
  40. package/dist/components/CopyValue.js.map +1 -0
  41. package/dist/components/CountBadge.js +26 -0
  42. package/dist/components/CountBadge.js.map +1 -0
  43. package/dist/components/DateCalendar.js +156 -0
  44. package/dist/components/DateCalendar.js.map +1 -0
  45. package/dist/components/DateField.js +166 -0
  46. package/dist/components/DateField.js.map +1 -0
  47. package/dist/components/DatePicker.js +56 -0
  48. package/dist/components/DatePicker.js.map +1 -0
  49. package/dist/components/DateTimeText.js +19 -0
  50. package/dist/components/DateTimeText.js.map +1 -0
  51. package/dist/components/DescriptionList.js +25 -0
  52. package/dist/components/DescriptionList.js.map +1 -0
  53. package/dist/components/Dialog.js +332 -0
  54. package/dist/components/Dialog.js.map +1 -0
  55. package/dist/components/DragDrop.js +395 -0
  56. package/dist/components/DragDrop.js.map +1 -0
  57. package/dist/components/Drawer.js +100 -0
  58. package/dist/components/Drawer.js.map +1 -0
  59. package/dist/components/EditGutter.js +110 -0
  60. package/dist/components/EditGutter.js.map +1 -0
  61. package/dist/components/EmojiPicker.js +174 -0
  62. package/dist/components/EmojiPicker.js.map +1 -0
  63. package/dist/components/ErrorBoundary.js +47 -0
  64. package/dist/components/ErrorBoundary.js.map +1 -0
  65. package/dist/components/Field.js +115 -0
  66. package/dist/components/Field.js.map +1 -0
  67. package/dist/components/FileUpload.js +128 -0
  68. package/dist/components/FileUpload.js.map +1 -0
  69. package/dist/components/FilterMenu.js +256 -0
  70. package/dist/components/FilterMenu.js.map +1 -0
  71. package/dist/components/GatesSection.js +79 -0
  72. package/dist/components/GatesSection.js.map +1 -0
  73. package/dist/components/Icon.js +50 -0
  74. package/dist/components/Icon.js.map +1 -0
  75. package/dist/components/IconButton.js +59 -0
  76. package/dist/components/IconButton.js.map +1 -0
  77. package/dist/components/IconStack.js +69 -0
  78. package/dist/components/IconStack.js.map +1 -0
  79. package/dist/components/ImageUploadField.js +146 -0
  80. package/dist/components/ImageUploadField.js.map +1 -0
  81. package/dist/components/InlineEdit.js +432 -0
  82. package/dist/components/InlineEdit.js.map +1 -0
  83. package/dist/components/InlineMarkdownEdit.js +184 -0
  84. package/dist/components/InlineMarkdownEdit.js.map +1 -0
  85. package/dist/components/Input.js +156 -0
  86. package/dist/components/Input.js.map +1 -0
  87. package/dist/components/LegalDocument.js +155 -0
  88. package/dist/components/LegalDocument.js.map +1 -0
  89. package/dist/components/LineDiff.js +95 -0
  90. package/dist/components/LineDiff.js.map +1 -0
  91. package/dist/components/ListHeader.js +72 -0
  92. package/dist/components/ListHeader.js.map +1 -0
  93. package/dist/components/Loading.js +111 -0
  94. package/dist/components/Loading.js.map +1 -0
  95. package/dist/components/Markdown.js +28 -0
  96. package/dist/components/Markdown.js.map +1 -0
  97. package/dist/components/MarkdownEditor.js +467 -0
  98. package/dist/components/MarkdownEditor.js.map +1 -0
  99. package/dist/components/Menu.js +185 -0
  100. package/dist/components/Menu.js.map +1 -0
  101. package/dist/components/Navigation.js +87 -0
  102. package/dist/components/Navigation.js.map +1 -0
  103. package/dist/components/NumberInput.js +119 -0
  104. package/dist/components/NumberInput.js.map +1 -0
  105. package/dist/components/OTPInput.js +71 -0
  106. package/dist/components/OTPInput.js.map +1 -0
  107. package/dist/components/OrderedEntityManager.js +170 -0
  108. package/dist/components/OrderedEntityManager.js.map +1 -0
  109. package/dist/components/PagedWindowList.js +74 -0
  110. package/dist/components/PagedWindowList.js.map +1 -0
  111. package/dist/components/PaginationBar.js +95 -0
  112. package/dist/components/PaginationBar.js.map +1 -0
  113. package/dist/components/Panel.js +396 -0
  114. package/dist/components/Panel.js.map +1 -0
  115. package/dist/components/PasswordInput.js +32 -0
  116. package/dist/components/PasswordInput.js.map +1 -0
  117. package/dist/components/PasswordRequirements.js +25 -0
  118. package/dist/components/PasswordRequirements.js.map +1 -0
  119. package/dist/components/PatchDiff.js +96 -0
  120. package/dist/components/PatchDiff.js.map +1 -0
  121. package/dist/components/PendingVeil.js +18 -0
  122. package/dist/components/PendingVeil.js.map +1 -0
  123. package/dist/components/Popover.js +214 -0
  124. package/dist/components/Popover.js.map +1 -0
  125. package/dist/components/Progress.js +419 -0
  126. package/dist/components/Progress.js.map +1 -0
  127. package/dist/components/RatingScale.js +89 -0
  128. package/dist/components/RatingScale.js.map +1 -0
  129. package/dist/components/ReadMore.js +232 -0
  130. package/dist/components/ReadMore.js.map +1 -0
  131. package/dist/components/RecordCard.js +202 -0
  132. package/dist/components/RecordCard.js.map +1 -0
  133. package/dist/components/RelativeTime.js +29 -0
  134. package/dist/components/RelativeTime.js.map +1 -0
  135. package/dist/components/SandboxedFrame.js +135 -0
  136. package/dist/components/SandboxedFrame.js.map +1 -0
  137. package/dist/components/SearchInput.js +38 -0
  138. package/dist/components/SearchInput.js.map +1 -0
  139. package/dist/components/SecretField.js +228 -0
  140. package/dist/components/SecretField.js.map +1 -0
  141. package/dist/components/SectionNav.js +42 -0
  142. package/dist/components/SectionNav.js.map +1 -0
  143. package/dist/components/Select.js +172 -0
  144. package/dist/components/Select.js.map +1 -0
  145. package/dist/components/SequenceDiagram.js +109 -0
  146. package/dist/components/SequenceDiagram.js.map +1 -0
  147. package/dist/components/SettingRow.js +124 -0
  148. package/dist/components/SettingRow.js.map +1 -0
  149. package/dist/components/SignOffRings.js +36 -0
  150. package/dist/components/SignOffRings.js.map +1 -0
  151. package/dist/components/Slider.js +353 -0
  152. package/dist/components/Slider.js.map +1 -0
  153. package/dist/components/SolutionChoice.js +89 -0
  154. package/dist/components/SolutionChoice.js.map +1 -0
  155. package/dist/components/SortMenu.js +75 -0
  156. package/dist/components/SortMenu.js.map +1 -0
  157. package/dist/components/Spinner.js +42 -0
  158. package/dist/components/Spinner.js.map +1 -0
  159. package/dist/components/Stat.js +148 -0
  160. package/dist/components/Stat.js.map +1 -0
  161. package/dist/components/StatusSelect.js +119 -0
  162. package/dist/components/StatusSelect.js.map +1 -0
  163. package/dist/components/Surface.js +210 -0
  164. package/dist/components/Surface.js.map +1 -0
  165. package/dist/components/Table.js +300 -0
  166. package/dist/components/Table.js.map +1 -0
  167. package/dist/components/Tabs.js +288 -0
  168. package/dist/components/Tabs.js.map +1 -0
  169. package/dist/components/ThemeMenu.js +198 -0
  170. package/dist/components/ThemeMenu.js.map +1 -0
  171. package/dist/components/Toast.js +217 -0
  172. package/dist/components/Toast.js.map +1 -0
  173. package/dist/components/Toggle.js +147 -0
  174. package/dist/components/Toggle.js.map +1 -0
  175. package/dist/components/ToggleMatrix.js +157 -0
  176. package/dist/components/ToggleMatrix.js.map +1 -0
  177. package/dist/components/Tree.js +125 -0
  178. package/dist/components/Tree.js.map +1 -0
  179. package/dist/components/TriStateSwitch.js +111 -0
  180. package/dist/components/TriStateSwitch.js.map +1 -0
  181. package/dist/components/VideoPlayer.js +64 -0
  182. package/dist/components/VideoPlayer.js.map +1 -0
  183. package/dist/components/auth/AcceptInvitationCard.js +110 -0
  184. package/dist/components/auth/AcceptInvitationCard.js.map +1 -0
  185. package/dist/components/auth/AuthLayout.js +18 -0
  186. package/dist/components/auth/AuthLayout.js.map +1 -0
  187. package/dist/components/auth/ForgotPasswordForm.js +44 -0
  188. package/dist/components/auth/ForgotPasswordForm.js.map +1 -0
  189. package/dist/components/auth/LoginForm.js +76 -0
  190. package/dist/components/auth/LoginForm.js.map +1 -0
  191. package/dist/components/auth/ResetPasswordForm.js +69 -0
  192. package/dist/components/auth/ResetPasswordForm.js.map +1 -0
  193. package/dist/components/auth/SignInProviders.js +45 -0
  194. package/dist/components/auth/SignInProviders.js.map +1 -0
  195. package/dist/components/auth/SignupCard.js +204 -0
  196. package/dist/components/auth/SignupCard.js.map +1 -0
  197. package/dist/components/auth/TermsAcceptance.js +43 -0
  198. package/dist/components/auth/TermsAcceptance.js.map +1 -0
  199. package/dist/components/board/context.js +32 -0
  200. package/dist/components/board/context.js.map +1 -0
  201. package/dist/components/board/recipe.js +94 -0
  202. package/dist/components/board/recipe.js.map +1 -0
  203. package/dist/components/calendar/CalendarMonth.js +299 -0
  204. package/dist/components/calendar/CalendarMonth.js.map +1 -0
  205. package/dist/components/calendar/CalendarTimeGrid.js +430 -0
  206. package/dist/components/calendar/CalendarTimeGrid.js.map +1 -0
  207. package/dist/components/calendar/EventActions.js +101 -0
  208. package/dist/components/calendar/EventActions.js.map +1 -0
  209. package/dist/components/calendar/format.js +73 -0
  210. package/dist/components/calendar/format.js.map +1 -0
  211. package/dist/components/calendar/palette.js +31 -0
  212. package/dist/components/calendar/palette.js.map +1 -0
  213. package/dist/components/calendar/use-calendar-drag.js +149 -0
  214. package/dist/components/calendar/use-calendar-drag.js.map +1 -0
  215. package/dist/components/calendar/use-event-keyboard.js +87 -0
  216. package/dist/components/calendar/use-event-keyboard.js.map +1 -0
  217. package/dist/components/calendar/use-grid-navigation.js +79 -0
  218. package/dist/components/calendar/use-grid-navigation.js.map +1 -0
  219. package/dist/components/calendar/use-now.js +27 -0
  220. package/dist/components/calendar/use-now.js.map +1 -0
  221. package/dist/components/card-face/AcRingGlyph.js +39 -0
  222. package/dist/components/card-face/AcRingGlyph.js.map +1 -0
  223. package/dist/components/card-face/BoardCardAgentSlot.js +17 -0
  224. package/dist/components/card-face/BoardCardAgentSlot.js.map +1 -0
  225. package/dist/components/card-face/CardFace.js +109 -0
  226. package/dist/components/card-face/CardFace.js.map +1 -0
  227. package/dist/components/card-face/CardTypeBadge.js +17 -0
  228. package/dist/components/card-face/CardTypeBadge.js.map +1 -0
  229. package/dist/components/card-face/EffortBadge.js +11 -0
  230. package/dist/components/card-face/EffortBadge.js.map +1 -0
  231. package/dist/components/card-face/GateRingGlyph.js +31 -0
  232. package/dist/components/card-face/GateRingGlyph.js.map +1 -0
  233. package/dist/components/card-face/OverflowRow.js +70 -0
  234. package/dist/components/card-face/OverflowRow.js.map +1 -0
  235. package/dist/components/card-face/TapTip.js +32 -0
  236. package/dist/components/card-face/TapTip.js.map +1 -0
  237. package/dist/components/card-face/hit-area.js +6 -0
  238. package/dist/components/card-face/hit-area.js.map +1 -0
  239. package/dist/components/card-face/vocabulary.js +102 -0
  240. package/dist/components/card-face/vocabulary.js.map +1 -0
  241. package/dist/components/chart/BarList.js +78 -0
  242. package/dist/components/chart/BarList.js.map +1 -0
  243. package/dist/components/chart/LineChart.js +310 -0
  244. package/dist/components/chart/LineChart.js.map +1 -0
  245. package/dist/components/chart/ShareBar.js +141 -0
  246. package/dist/components/chart/ShareBar.js.map +1 -0
  247. package/dist/components/chart/TimeSeriesChart.js +305 -0
  248. package/dist/components/chart/TimeSeriesChart.js.map +1 -0
  249. package/dist/components/chart/label-metrics.js +17 -0
  250. package/dist/components/chart/label-metrics.js.map +1 -0
  251. package/dist/components/chart/line-chart-axis.js +38 -0
  252. package/dist/components/chart/line-chart-axis.js.map +1 -0
  253. package/dist/components/chart/line-chart-scale.js +132 -0
  254. package/dist/components/chart/line-chart-scale.js.map +1 -0
  255. package/dist/components/chart/line-series-style.js +22 -0
  256. package/dist/components/chart/line-series-style.js.map +1 -0
  257. package/dist/components/chart/share-bar-labels.js +14 -0
  258. package/dist/components/chart/share-bar-labels.js.map +1 -0
  259. package/dist/components/chart/shared.js +157 -0
  260. package/dist/components/chart/shared.js.map +1 -0
  261. package/dist/components/chart/time-series-scale.js +51 -0
  262. package/dist/components/chart/time-series-scale.js.map +1 -0
  263. package/dist/components/chat/Attachment.js +316 -0
  264. package/dist/components/chat/Attachment.js.map +1 -0
  265. package/dist/components/chat/Chat.js +171 -0
  266. package/dist/components/chat/Chat.js.map +1 -0
  267. package/dist/components/chat/Composer.js +274 -0
  268. package/dist/components/chat/Composer.js.map +1 -0
  269. package/dist/components/chat/ContextMeter.js +202 -0
  270. package/dist/components/chat/ContextMeter.js.map +1 -0
  271. package/dist/components/chat/EffortControl.js +116 -0
  272. package/dist/components/chat/EffortControl.js.map +1 -0
  273. package/dist/components/chat/FileCover.js +78 -0
  274. package/dist/components/chat/FileCover.js.map +1 -0
  275. package/dist/components/chat/Message.js +356 -0
  276. package/dist/components/chat/Message.js.map +1 -0
  277. package/dist/components/chat/MessageScroller.js +104 -0
  278. package/dist/components/chat/MessageScroller.js.map +1 -0
  279. package/dist/components/chat/ModelSelector.js +156 -0
  280. package/dist/components/chat/ModelSelector.js.map +1 -0
  281. package/dist/components/chat/StreamingMarkdown.js +42 -0
  282. package/dist/components/chat/StreamingMarkdown.js.map +1 -0
  283. package/dist/components/chat/download-file.js +9 -0
  284. package/dist/components/chat/download-file.js.map +1 -0
  285. package/dist/components/chat/file-icon.js +39 -0
  286. package/dist/components/chat/file-icon.js.map +1 -0
  287. package/dist/components/checklist/StatusChecklist.js +103 -0
  288. package/dist/components/checklist/StatusChecklist.js.map +1 -0
  289. package/dist/components/checklist/tally.js +29 -0
  290. package/dist/components/checklist/tally.js.map +1 -0
  291. package/dist/components/code-editor/context.js +13 -0
  292. package/dist/components/code-editor/context.js.map +1 -0
  293. package/dist/components/code-editor/editing.js +93 -0
  294. package/dist/components/code-editor/editing.js.map +1 -0
  295. package/dist/components/code-editor/highlight.js +27 -0
  296. package/dist/components/code-editor/highlight.js.map +1 -0
  297. package/dist/components/code-editor/recipe.js +75 -0
  298. package/dist/components/code-editor/recipe.js.map +1 -0
  299. package/dist/components/date-timeline/DateTimeline.js +358 -0
  300. package/dist/components/date-timeline/DateTimeline.js.map +1 -0
  301. package/dist/components/date-timeline/TimelineRow.js +100 -0
  302. package/dist/components/date-timeline/TimelineRow.js.map +1 -0
  303. package/dist/components/date-timeline/useBarDrag.js +44 -0
  304. package/dist/components/date-timeline/useBarDrag.js.map +1 -0
  305. package/dist/components/date-timeline/useMarkerDrag.js +40 -0
  306. package/dist/components/date-timeline/useMarkerDrag.js.map +1 -0
  307. package/dist/components/date-timeline/useTimelineZoom.js +44 -0
  308. package/dist/components/date-timeline/useTimelineZoom.js.map +1 -0
  309. package/dist/components/drag-drop/context.js +37 -0
  310. package/dist/components/drag-drop/context.js.map +1 -0
  311. package/dist/components/drag-drop/recipe.js +270 -0
  312. package/dist/components/drag-drop/recipe.js.map +1 -0
  313. package/dist/components/drag-drop/shift.js +157 -0
  314. package/dist/components/drag-drop/shift.js.map +1 -0
  315. package/dist/components/edit/activation.js +10 -0
  316. package/dist/components/edit/activation.js.map +1 -0
  317. package/dist/components/edit/outcome.js +47 -0
  318. package/dist/components/edit/outcome.js.map +1 -0
  319. package/dist/components/edit/use-edit-session.js +146 -0
  320. package/dist/components/edit/use-edit-session.js.map +1 -0
  321. package/dist/components/file-viewer/FileViewer.js +97 -0
  322. package/dist/components/file-viewer/FileViewer.js.map +1 -0
  323. package/dist/components/file-viewer/PageNumberJumpField.js +47 -0
  324. package/dist/components/file-viewer/PageNumberJumpField.js.map +1 -0
  325. package/dist/components/file-viewer/ViewerControls.js +122 -0
  326. package/dist/components/file-viewer/ViewerControls.js.map +1 -0
  327. package/dist/components/file-viewer/ViewerRail.js +57 -0
  328. package/dist/components/file-viewer/ViewerRail.js.map +1 -0
  329. package/dist/components/file-viewer/ViewerStage.js +112 -0
  330. package/dist/components/file-viewer/ViewerStage.js.map +1 -0
  331. package/dist/components/file-viewer/frames.js +37 -0
  332. package/dist/components/file-viewer/frames.js.map +1 -0
  333. package/dist/components/file-viewer/use-frame-cursor.js +32 -0
  334. package/dist/components/file-viewer/use-frame-cursor.js.map +1 -0
  335. package/dist/components/file-viewer/use-viewer-keys.js +50 -0
  336. package/dist/components/file-viewer/use-viewer-keys.js.map +1 -0
  337. package/dist/components/file-viewer/use-viewer-zoom.js +68 -0
  338. package/dist/components/file-viewer/use-viewer-zoom.js.map +1 -0
  339. package/dist/components/focus-web/FocusWeb.js +322 -0
  340. package/dist/components/focus-web/FocusWeb.js.map +1 -0
  341. package/dist/components/focus-web/layout.js +34 -0
  342. package/dist/components/focus-web/layout.js.map +1 -0
  343. package/dist/components/graph-explorer/GraphExplorer.js +441 -0
  344. package/dist/components/graph-explorer/GraphExplorer.js.map +1 -0
  345. package/dist/components/graph-explorer/camera-math.js +102 -0
  346. package/dist/components/graph-explorer/camera-math.js.map +1 -0
  347. package/dist/components/graph-explorer/tree-layout.js +103 -0
  348. package/dist/components/graph-explorer/tree-layout.js.map +1 -0
  349. package/dist/components/graph-explorer/use-camera.js +82 -0
  350. package/dist/components/graph-explorer/use-camera.js.map +1 -0
  351. package/dist/components/graph-explorer/viewport-gesture.js +107 -0
  352. package/dist/components/graph-explorer/viewport-gesture.js.map +1 -0
  353. package/dist/components/kanban/KanbanBoard.js +219 -0
  354. package/dist/components/kanban/KanbanBoard.js.map +1 -0
  355. package/dist/components/kanban/recipe.js +144 -0
  356. package/dist/components/kanban/recipe.js.map +1 -0
  357. package/dist/components/markdown/Affordances.js +398 -0
  358. package/dist/components/markdown/Affordances.js.map +1 -0
  359. package/dist/components/markdown/AttachmentStrip.js +128 -0
  360. package/dist/components/markdown/AttachmentStrip.js.map +1 -0
  361. package/dist/components/markdown/ImageUpload.js +45 -0
  362. package/dist/components/markdown/ImageUpload.js.map +1 -0
  363. package/dist/components/media-error.js +7 -0
  364. package/dist/components/media-error.js.map +1 -0
  365. package/dist/components/nav-sections.js +61 -0
  366. package/dist/components/nav-sections.js.map +1 -0
  367. package/dist/components/node-canvas/NodeCanvas.js +384 -0
  368. package/dist/components/node-canvas/NodeCanvas.js.map +1 -0
  369. package/dist/components/node-canvas/layout.js +237 -0
  370. package/dist/components/node-canvas/layout.js.map +1 -0
  371. package/dist/components/node-canvas/use-canvas-gestures.js +143 -0
  372. package/dist/components/node-canvas/use-canvas-gestures.js.map +1 -0
  373. package/dist/components/openapi/OpenApiViewer.js +137 -0
  374. package/dist/components/openapi/OpenApiViewer.js.map +1 -0
  375. package/dist/components/openapi/OperationCard.js +145 -0
  376. package/dist/components/openapi/OperationCard.js.map +1 -0
  377. package/dist/components/openapi/SchemaView.js +68 -0
  378. package/dist/components/openapi/SchemaView.js.map +1 -0
  379. package/dist/components/openapi/resolve.js +102 -0
  380. package/dist/components/openapi/resolve.js.map +1 -0
  381. package/dist/components/openapi/types.js +5 -0
  382. package/dist/components/openapi/types.js.map +1 -0
  383. package/dist/components/overlay-shell.js +29 -0
  384. package/dist/components/overlay-shell.js.map +1 -0
  385. package/dist/components/overlay-stack.js +27 -0
  386. package/dist/components/overlay-stack.js.map +1 -0
  387. package/dist/components/paged-window/PageBlock.js +50 -0
  388. package/dist/components/paged-window/PageBlock.js.map +1 -0
  389. package/dist/components/provenance/ConfidenceBar.js +60 -0
  390. package/dist/components/provenance/ConfidenceBar.js.map +1 -0
  391. package/dist/components/provenance/ConfidenceMeter.js +36 -0
  392. package/dist/components/provenance/ConfidenceMeter.js.map +1 -0
  393. package/dist/components/provenance/ConfidenceReadout.js +31 -0
  394. package/dist/components/provenance/ConfidenceReadout.js.map +1 -0
  395. package/dist/components/provenance/ProvenanceBadge.js +44 -0
  396. package/dist/components/provenance/ProvenanceBadge.js.map +1 -0
  397. package/dist/components/provenance/ProvenanceDetail.js +114 -0
  398. package/dist/components/provenance/ProvenanceDetail.js.map +1 -0
  399. package/dist/components/provenance/ProvenanceDisclosure.js +111 -0
  400. package/dist/components/provenance/ProvenanceDisclosure.js.map +1 -0
  401. package/dist/components/provenance/absence.js +31 -0
  402. package/dist/components/provenance/absence.js.map +1 -0
  403. package/dist/components/provenance/types.js +30 -0
  404. package/dist/components/provenance/types.js.map +1 -0
  405. package/dist/components/rbac/AccessRequestPanel.js +153 -0
  406. package/dist/components/rbac/AccessRequestPanel.js.map +1 -0
  407. package/dist/components/rbac/AccountMenu.js +118 -0
  408. package/dist/components/rbac/AccountMenu.js.map +1 -0
  409. package/dist/components/rbac/AgentKeysList.js +20 -0
  410. package/dist/components/rbac/AgentKeysList.js.map +1 -0
  411. package/dist/components/rbac/ApiKeysPanel.js +172 -0
  412. package/dist/components/rbac/ApiKeysPanel.js.map +1 -0
  413. package/dist/components/rbac/ApiKeysTable.js +167 -0
  414. package/dist/components/rbac/ApiKeysTable.js.map +1 -0
  415. package/dist/components/rbac/Brand.js +13 -0
  416. package/dist/components/rbac/Brand.js.map +1 -0
  417. package/dist/components/rbac/Can.js +18 -0
  418. package/dist/components/rbac/Can.js.map +1 -0
  419. package/dist/components/rbac/ChangePasswordForm.js +73 -0
  420. package/dist/components/rbac/ChangePasswordForm.js.map +1 -0
  421. package/dist/components/rbac/DangerZone.js +27 -0
  422. package/dist/components/rbac/DangerZone.js.map +1 -0
  423. package/dist/components/rbac/DevToolsPopover.js +140 -0
  424. package/dist/components/rbac/DevToolsPopover.js.map +1 -0
  425. package/dist/components/rbac/EndedLine.js +24 -0
  426. package/dist/components/rbac/EndedLine.js.map +1 -0
  427. package/dist/components/rbac/InvitationsList.js +148 -0
  428. package/dist/components/rbac/InvitationsList.js.map +1 -0
  429. package/dist/components/rbac/InviteMembersDialog.js +97 -0
  430. package/dist/components/rbac/InviteMembersDialog.js.map +1 -0
  431. package/dist/components/rbac/MembersPanel.js +138 -0
  432. package/dist/components/rbac/MembersPanel.js.map +1 -0
  433. package/dist/components/rbac/PermissionRequestPanel.js +141 -0
  434. package/dist/components/rbac/PermissionRequestPanel.js.map +1 -0
  435. package/dist/components/rbac/ProfileForm.js +86 -0
  436. package/dist/components/rbac/ProfileForm.js.map +1 -0
  437. package/dist/components/rbac/ProfilePage.js +58 -0
  438. package/dist/components/rbac/ProfilePage.js.map +1 -0
  439. package/dist/components/rbac/RBACProvider.js +82 -0
  440. package/dist/components/rbac/RBACProvider.js.map +1 -0
  441. package/dist/components/rbac/RoleEditorDialog.js +90 -0
  442. package/dist/components/rbac/RoleEditorDialog.js.map +1 -0
  443. package/dist/components/rbac/RoleKeyPicker.js +77 -0
  444. package/dist/components/rbac/RoleKeyPicker.js.map +1 -0
  445. package/dist/components/rbac/RolePermissionMatrix.js +37 -0
  446. package/dist/components/rbac/RolePermissionMatrix.js.map +1 -0
  447. package/dist/components/rbac/RolesPermissionsPage.js +142 -0
  448. package/dist/components/rbac/RolesPermissionsPage.js.map +1 -0
  449. package/dist/components/rbac/SessionsList.js +146 -0
  450. package/dist/components/rbac/SessionsList.js.map +1 -0
  451. package/dist/components/rbac/TeamSettingsForm.js +69 -0
  452. package/dist/components/rbac/TeamSettingsForm.js.map +1 -0
  453. package/dist/components/rbac/TeamSwitcher.js +66 -0
  454. package/dist/components/rbac/TeamSwitcher.js.map +1 -0
  455. package/dist/components/rbac/approvalPanelParts.js +130 -0
  456. package/dist/components/rbac/approvalPanelParts.js.map +1 -0
  457. package/dist/components/rbac/permissionSections.js +8 -0
  458. package/dist/components/rbac/permissionSections.js.map +1 -0
  459. package/dist/components/rbac/stagedForm.js +42 -0
  460. package/dist/components/rbac/stagedForm.js.map +1 -0
  461. package/dist/components/rbac/useStagedImage.js +21 -0
  462. package/dist/components/rbac/useStagedImage.js.map +1 -0
  463. package/dist/components/roadmap/PhaseManager.js +48 -0
  464. package/dist/components/roadmap/PhaseManager.js.map +1 -0
  465. package/dist/components/roadmap/RoadmapItemCard.js +96 -0
  466. package/dist/components/roadmap/RoadmapItemCard.js.map +1 -0
  467. package/dist/components/roadmap/RoadmapPage.js +34 -0
  468. package/dist/components/roadmap/RoadmapPage.js.map +1 -0
  469. package/dist/components/roadmap/RoadmapSwimlaneBoard.js +91 -0
  470. package/dist/components/roadmap/RoadmapSwimlaneBoard.js.map +1 -0
  471. package/dist/components/roadmap/TrackManager.js +58 -0
  472. package/dist/components/roadmap/TrackManager.js.map +1 -0
  473. package/dist/components/roadmap/UseCaseCard.js +93 -0
  474. package/dist/components/roadmap/UseCaseCard.js.map +1 -0
  475. package/dist/components/roadmap/UseCaseLedgerPage.js +98 -0
  476. package/dist/components/roadmap/UseCaseLedgerPage.js.map +1 -0
  477. package/dist/components/roadmap/chip-tones.js +9 -0
  478. package/dist/components/roadmap/chip-tones.js.map +1 -0
  479. package/dist/components/roadmap/derive.js +28 -0
  480. package/dist/components/roadmap/derive.js.map +1 -0
  481. package/dist/components/stepper/Stepper.js +276 -0
  482. package/dist/components/stepper/Stepper.js.map +1 -0
  483. package/dist/components/stepper/derive.js +53 -0
  484. package/dist/components/stepper/derive.js.map +1 -0
  485. package/dist/confidence.css +222 -0
  486. package/dist/fonts/bricolage-grotesque-0.woff2 +0 -0
  487. package/dist/fonts/bricolage-grotesque-1.woff2 +0 -0
  488. package/dist/fonts/bricolage-grotesque-2.woff2 +0 -0
  489. package/dist/fonts/figtree-0.woff2 +0 -0
  490. package/dist/fonts/figtree-1.woff2 +0 -0
  491. package/dist/fonts/figtree-2.woff2 +0 -0
  492. package/dist/fonts/figtree-3.woff2 +0 -0
  493. package/dist/fonts/jetbrains-mono-0.woff2 +0 -0
  494. package/dist/fonts/jetbrains-mono-1.woff2 +0 -0
  495. package/dist/fonts/jetbrains-mono-10.woff2 +0 -0
  496. package/dist/fonts/jetbrains-mono-11.woff2 +0 -0
  497. package/dist/fonts/jetbrains-mono-2.woff2 +0 -0
  498. package/dist/fonts/jetbrains-mono-3.woff2 +0 -0
  499. package/dist/fonts/jetbrains-mono-4.woff2 +0 -0
  500. package/dist/fonts/jetbrains-mono-5.woff2 +0 -0
  501. package/dist/fonts/jetbrains-mono-6.woff2 +0 -0
  502. package/dist/fonts/jetbrains-mono-7.woff2 +0 -0
  503. package/dist/fonts/jetbrains-mono-8.woff2 +0 -0
  504. package/dist/fonts/jetbrains-mono-9.woff2 +0 -0
  505. package/dist/fonts.css +187 -0
  506. package/dist/icons/data.js +233 -0
  507. package/dist/icons/data.js.map +1 -0
  508. package/dist/index.js +942 -0
  509. package/dist/index.js.map +1 -0
  510. package/dist/lib/attention.js +75 -0
  511. package/dist/lib/attention.js.map +1 -0
  512. package/dist/lib/board/anchor.js +14 -0
  513. package/dist/lib/board/anchor.js.map +1 -0
  514. package/dist/lib/board/model.js +41 -0
  515. package/dist/lib/board/model.js.map +1 -0
  516. package/dist/lib/board/move.js +161 -0
  517. package/dist/lib/board/move.js.map +1 -0
  518. package/dist/lib/board/position.js +11 -0
  519. package/dist/lib/board/position.js.map +1 -0
  520. package/dist/lib/board/rejection.js +22 -0
  521. package/dist/lib/board/rejection.js.map +1 -0
  522. package/dist/lib/board/use-board.js +43 -0
  523. package/dist/lib/board/use-board.js.map +1 -0
  524. package/dist/lib/calendar/band-packer.js +44 -0
  525. package/dist/lib/calendar/band-packer.js.map +1 -0
  526. package/dist/lib/calendar/drag.js +74 -0
  527. package/dist/lib/calendar/drag.js.map +1 -0
  528. package/dist/lib/calendar/lane-packer.js +67 -0
  529. package/dist/lib/calendar/lane-packer.js.map +1 -0
  530. package/dist/lib/calendar/segments.js +82 -0
  531. package/dist/lib/calendar/segments.js.map +1 -0
  532. package/dist/lib/calendar/types.js +7 -0
  533. package/dist/lib/calendar/types.js.map +1 -0
  534. package/dist/lib/chart-palette.js +27 -0
  535. package/dist/lib/chart-palette.js.map +1 -0
  536. package/dist/lib/clipboard.js +30 -0
  537. package/dist/lib/clipboard.js.map +1 -0
  538. package/dist/lib/cn.js +9 -0
  539. package/dist/lib/cn.js.map +1 -0
  540. package/dist/lib/color.js +24 -0
  541. package/dist/lib/color.js.map +1 -0
  542. package/dist/lib/component-guidance.js +297 -0
  543. package/dist/lib/component-guidance.js.map +1 -0
  544. package/dist/lib/confidence.js +22 -0
  545. package/dist/lib/confidence.js.map +1 -0
  546. package/dist/lib/date-timeline/scale.js +197 -0
  547. package/dist/lib/date-timeline/scale.js.map +1 -0
  548. package/dist/lib/design-frame/document.js +44 -0
  549. package/dist/lib/design-frame/document.js.map +1 -0
  550. package/dist/lib/design-frame/mini-app-script.js +107 -0
  551. package/dist/lib/design-frame/mini-app-script.js.map +1 -0
  552. package/dist/lib/design-frame/mini-app.js +12 -0
  553. package/dist/lib/design-frame/mini-app.js.map +1 -0
  554. package/dist/lib/design-frame/protocol.js +46 -0
  555. package/dist/lib/design-frame/protocol.js.map +1 -0
  556. package/dist/lib/dev-warn.js +17 -0
  557. package/dist/lib/dev-warn.js.map +1 -0
  558. package/dist/lib/dnd/announce.js +120 -0
  559. package/dist/lib/dnd/announce.js.map +1 -0
  560. package/dist/lib/dnd/autoscroll.js +123 -0
  561. package/dist/lib/dnd/autoscroll.js.map +1 -0
  562. package/dist/lib/dnd/cross-drop.js +11 -0
  563. package/dist/lib/dnd/cross-drop.js.map +1 -0
  564. package/dist/lib/dnd/geometry.js +99 -0
  565. package/dist/lib/dnd/geometry.js.map +1 -0
  566. package/dist/lib/dnd/sensors/gesture.js +86 -0
  567. package/dist/lib/dnd/sensors/gesture.js.map +1 -0
  568. package/dist/lib/dnd/sensors/keyboard.js +47 -0
  569. package/dist/lib/dnd/sensors/keyboard.js.map +1 -0
  570. package/dist/lib/dnd/sensors/pointer.js +32 -0
  571. package/dist/lib/dnd/sensors/pointer.js.map +1 -0
  572. package/dist/lib/dnd/session.js +256 -0
  573. package/dist/lib/dnd/session.js.map +1 -0
  574. package/dist/lib/dnd/use-drag.js +90 -0
  575. package/dist/lib/dnd/use-drag.js.map +1 -0
  576. package/dist/lib/dom/scroll-ancestor.js +18 -0
  577. package/dist/lib/dom/scroll-ancestor.js.map +1 -0
  578. package/dist/lib/format.js +23 -0
  579. package/dist/lib/format.js.map +1 -0
  580. package/dist/lib/group-in-order.js +13 -0
  581. package/dist/lib/group-in-order.js.map +1 -0
  582. package/dist/lib/header-fold.js +11 -0
  583. package/dist/lib/header-fold.js.map +1 -0
  584. package/dist/lib/i18n/areas/auth-provenance-flows.js +156 -0
  585. package/dist/lib/i18n/areas/auth-provenance-flows.js.map +1 -0
  586. package/dist/lib/i18n/areas/board.js +35 -0
  587. package/dist/lib/i18n/areas/board.js.map +1 -0
  588. package/dist/lib/i18n/areas/card-face.js +10 -0
  589. package/dist/lib/i18n/areas/card-face.js.map +1 -0
  590. package/dist/lib/i18n/areas/chat-chart.js +118 -0
  591. package/dist/lib/i18n/areas/chat-chart.js.map +1 -0
  592. package/dist/lib/i18n/areas/code-editor.js +24 -0
  593. package/dist/lib/i18n/areas/code-editor.js.map +1 -0
  594. package/dist/lib/i18n/areas/date-timeline.js +21 -0
  595. package/dist/lib/i18n/areas/date-timeline.js.map +1 -0
  596. package/dist/lib/i18n/areas/dates.js +71 -0
  597. package/dist/lib/i18n/areas/dates.js.map +1 -0
  598. package/dist/lib/i18n/areas/docs-views.js +183 -0
  599. package/dist/lib/i18n/areas/docs-views.js.map +1 -0
  600. package/dist/lib/i18n/areas/feedback.js +75 -0
  601. package/dist/lib/i18n/areas/feedback.js.map +1 -0
  602. package/dist/lib/i18n/areas/formats.js +24 -0
  603. package/dist/lib/i18n/areas/formats.js.map +1 -0
  604. package/dist/lib/i18n/areas/forms.js +110 -0
  605. package/dist/lib/i18n/areas/forms.js.map +1 -0
  606. package/dist/lib/i18n/areas/keys.js +25 -0
  607. package/dist/lib/i18n/areas/keys.js.map +1 -0
  608. package/dist/lib/i18n/areas/markdown.js +136 -0
  609. package/dist/lib/i18n/areas/markdown.js.map +1 -0
  610. package/dist/lib/i18n/areas/move-rejected.js +14 -0
  611. package/dist/lib/i18n/areas/move-rejected.js.map +1 -0
  612. package/dist/lib/i18n/areas/navigation.js +104 -0
  613. package/dist/lib/i18n/areas/navigation.js.map +1 -0
  614. package/dist/lib/i18n/areas/rbac.js +331 -0
  615. package/dist/lib/i18n/areas/rbac.js.map +1 -0
  616. package/dist/lib/i18n/emphasis.js +6 -0
  617. package/dist/lib/i18n/emphasis.js.map +1 -0
  618. package/dist/lib/i18n/number-format.js +9 -0
  619. package/dist/lib/i18n/number-format.js.map +1 -0
  620. package/dist/lib/i18n/plural.js +9 -0
  621. package/dist/lib/i18n/plural.js.map +1 -0
  622. package/dist/lib/i18n/provider.js +27 -0
  623. package/dist/lib/i18n/provider.js.map +1 -0
  624. package/dist/lib/i18n/strings.js +38 -0
  625. package/dist/lib/i18n/strings.js.map +1 -0
  626. package/dist/lib/icons.js +17 -0
  627. package/dist/lib/icons.js.map +1 -0
  628. package/dist/lib/interactive-target.js +9 -0
  629. package/dist/lib/interactive-target.js.map +1 -0
  630. package/dist/lib/intl-cache.js +69 -0
  631. package/dist/lib/intl-cache.js.map +1 -0
  632. package/dist/lib/legal-document.js +37 -0
  633. package/dist/lib/legal-document.js.map +1 -0
  634. package/dist/lib/line-diff-model.js +51 -0
  635. package/dist/lib/line-diff-model.js.map +1 -0
  636. package/dist/lib/markdown/attachments.js +71 -0
  637. package/dist/lib/markdown/attachments.js.map +1 -0
  638. package/dist/lib/markdown/caret-map.js +153 -0
  639. package/dist/lib/markdown/caret-map.js.map +1 -0
  640. package/dist/lib/markdown/caret.js +35 -0
  641. package/dist/lib/markdown/caret.js.map +1 -0
  642. package/dist/lib/markdown/commands.js +443 -0
  643. package/dist/lib/markdown/commands.js.map +1 -0
  644. package/dist/lib/markdown/convert.js +153 -0
  645. package/dist/lib/markdown/convert.js.map +1 -0
  646. package/dist/lib/markdown/dom.js +89 -0
  647. package/dist/lib/markdown/dom.js.map +1 -0
  648. package/dist/lib/markdown/edit.js +92 -0
  649. package/dist/lib/markdown/edit.js.map +1 -0
  650. package/dist/lib/markdown/history.js +79 -0
  651. package/dist/lib/markdown/history.js.map +1 -0
  652. package/dist/lib/markdown/hotkeys.js +63 -0
  653. package/dist/lib/markdown/hotkeys.js.map +1 -0
  654. package/dist/lib/markdown/image-pipeline.js +236 -0
  655. package/dist/lib/markdown/image-pipeline.js.map +1 -0
  656. package/dist/lib/markdown/images.js +85 -0
  657. package/dist/lib/markdown/images.js.map +1 -0
  658. package/dist/lib/markdown/input.js +210 -0
  659. package/dist/lib/markdown/input.js.map +1 -0
  660. package/dist/lib/markdown/keys.js +37 -0
  661. package/dist/lib/markdown/keys.js.map +1 -0
  662. package/dist/lib/markdown/paste.js +180 -0
  663. package/dist/lib/markdown/paste.js.map +1 -0
  664. package/dist/lib/markdown/position.js +111 -0
  665. package/dist/lib/markdown/position.js.map +1 -0
  666. package/dist/lib/markdown/project.js +108 -0
  667. package/dist/lib/markdown/project.js.map +1 -0
  668. package/dist/lib/markdown/reconcile.js +127 -0
  669. package/dist/lib/markdown/reconcile.js.map +1 -0
  670. package/dist/lib/markdown/surface.js +373 -0
  671. package/dist/lib/markdown/surface.js.map +1 -0
  672. package/dist/lib/motion.js +22 -0
  673. package/dist/lib/motion.js.map +1 -0
  674. package/dist/lib/pad.js +7 -0
  675. package/dist/lib/pad.js.map +1 -0
  676. package/dist/lib/paged-window/layout.js +15 -0
  677. package/dist/lib/paged-window/layout.js.map +1 -0
  678. package/dist/lib/paged-window/list-owner.js +21 -0
  679. package/dist/lib/paged-window/list-owner.js.map +1 -0
  680. package/dist/lib/paged-window/records-binding.js +239 -0
  681. package/dist/lib/paged-window/records-binding.js.map +1 -0
  682. package/dist/lib/paged-window/store.js +562 -0
  683. package/dist/lib/paged-window/store.js.map +1 -0
  684. package/dist/lib/paged-window/use-measured-pitch.js +38 -0
  685. package/dist/lib/paged-window/use-measured-pitch.js.map +1 -0
  686. package/dist/lib/paged-window/use-page-visibility.js +36 -0
  687. package/dist/lib/paged-window/use-page-visibility.js.map +1 -0
  688. package/dist/lib/paged-window/use-paged-window.js +43 -0
  689. package/dist/lib/paged-window/use-paged-window.js.map +1 -0
  690. package/dist/lib/paged-window/use-scroll-root.js +12 -0
  691. package/dist/lib/paged-window/use-scroll-root.js.map +1 -0
  692. package/dist/lib/persist.js +84 -0
  693. package/dist/lib/persist.js.map +1 -0
  694. package/dist/lib/preference-values.js +13 -0
  695. package/dist/lib/preference-values.js.map +1 -0
  696. package/dist/lib/preferences.js +86 -0
  697. package/dist/lib/preferences.js.map +1 -0
  698. package/dist/lib/reads/hooks.js +156 -0
  699. package/dist/lib/reads/hooks.js.map +1 -0
  700. package/dist/lib/reads/optimistic.js +169 -0
  701. package/dist/lib/reads/optimistic.js.map +1 -0
  702. package/dist/lib/reads/refetch.js +108 -0
  703. package/dist/lib/reads/refetch.js.map +1 -0
  704. package/dist/lib/reads/slots.js +215 -0
  705. package/dist/lib/reads/slots.js.map +1 -0
  706. package/dist/lib/realtime/hooks.js +40 -0
  707. package/dist/lib/realtime/hooks.js.map +1 -0
  708. package/dist/lib/realtime/provider.js +25 -0
  709. package/dist/lib/realtime/provider.js.map +1 -0
  710. package/dist/lib/realtime/registry.js +472 -0
  711. package/dist/lib/realtime/registry.js.map +1 -0
  712. package/dist/lib/records/define-record-type.js +33 -0
  713. package/dist/lib/records/define-record-type.js.map +1 -0
  714. package/dist/lib/records/hooks.js +39 -0
  715. package/dist/lib/records/hooks.js.map +1 -0
  716. package/dist/lib/records/store.js +572 -0
  717. package/dist/lib/records/store.js.map +1 -0
  718. package/dist/lib/records/wire.js +58 -0
  719. package/dist/lib/records/wire.js.map +1 -0
  720. package/dist/lib/reduced-motion-help.js +19 -0
  721. package/dist/lib/reduced-motion-help.js.map +1 -0
  722. package/dist/lib/scroll-caret.js +18 -0
  723. package/dist/lib/scroll-caret.js.map +1 -0
  724. package/dist/lib/sim/createSimStore.js +54 -0
  725. package/dist/lib/sim/createSimStore.js.map +1 -0
  726. package/dist/lib/sim/latency.js +28 -0
  727. package/dist/lib/sim/latency.js.map +1 -0
  728. package/dist/lib/sim/registry.js +13 -0
  729. package/dist/lib/sim/registry.js.map +1 -0
  730. package/dist/lib/sim/settings.js +41 -0
  731. package/dist/lib/sim/settings.js.map +1 -0
  732. package/dist/lib/submit-shortcut.js +25 -0
  733. package/dist/lib/submit-shortcut.js.map +1 -0
  734. package/dist/lib/syntax/index.js +33 -0
  735. package/dist/lib/syntax/index.js.map +1 -0
  736. package/dist/lib/syntax/languages/bash.js +77 -0
  737. package/dist/lib/syntax/languages/bash.js.map +1 -0
  738. package/dist/lib/syntax/languages/css.js +81 -0
  739. package/dist/lib/syntax/languages/css.js.map +1 -0
  740. package/dist/lib/syntax/languages/html.js +91 -0
  741. package/dist/lib/syntax/languages/html.js.map +1 -0
  742. package/dist/lib/syntax/languages/index.js +49 -0
  743. package/dist/lib/syntax/languages/index.js.map +1 -0
  744. package/dist/lib/syntax/languages/javascript.js +133 -0
  745. package/dist/lib/syntax/languages/javascript.js.map +1 -0
  746. package/dist/lib/syntax/languages/json.js +45 -0
  747. package/dist/lib/syntax/languages/json.js.map +1 -0
  748. package/dist/lib/syntax/languages/mongodb.js +24 -0
  749. package/dist/lib/syntax/languages/mongodb.js.map +1 -0
  750. package/dist/lib/syntax/languages/plain.js +10 -0
  751. package/dist/lib/syntax/languages/plain.js.map +1 -0
  752. package/dist/lib/syntax/languages/sql.js +113 -0
  753. package/dist/lib/syntax/languages/sql.js.map +1 -0
  754. package/dist/lib/syntax/languages/vue.js +31 -0
  755. package/dist/lib/syntax/languages/vue.js.map +1 -0
  756. package/dist/lib/syntax/languages/yaml.js +55 -0
  757. package/dist/lib/syntax/languages/yaml.js.map +1 -0
  758. package/dist/lib/syntax/markdown/grammar.js +52 -0
  759. package/dist/lib/syntax/markdown/grammar.js.map +1 -0
  760. package/dist/lib/syntax/markdown/inline.js +477 -0
  761. package/dist/lib/syntax/markdown/inline.js.map +1 -0
  762. package/dist/lib/syntax/markdown/parse.js +464 -0
  763. package/dist/lib/syntax/markdown/parse.js.map +1 -0
  764. package/dist/lib/syntax/markdown/refs.js +94 -0
  765. package/dist/lib/syntax/markdown/refs.js.map +1 -0
  766. package/dist/lib/syntax/markdown/render.js +230 -0
  767. package/dist/lib/syntax/markdown/render.js.map +1 -0
  768. package/dist/lib/syntax/markdown/spans.js +40 -0
  769. package/dist/lib/syntax/markdown/spans.js.map +1 -0
  770. package/dist/lib/syntax/registry.js +55 -0
  771. package/dist/lib/syntax/registry.js.map +1 -0
  772. package/dist/lib/syntax/tokenize.js +96 -0
  773. package/dist/lib/syntax/tokenize.js.map +1 -0
  774. package/dist/lib/time/instant.js +7 -0
  775. package/dist/lib/time/instant.js.map +1 -0
  776. package/dist/lib/time/plain.js +83 -0
  777. package/dist/lib/time/plain.js.map +1 -0
  778. package/dist/lib/time/relativeAge.js +20 -0
  779. package/dist/lib/time/relativeAge.js.map +1 -0
  780. package/dist/lib/time/relativeClock.js +59 -0
  781. package/dist/lib/time/relativeClock.js.map +1 -0
  782. package/dist/lib/time/types.js +23 -0
  783. package/dist/lib/time/types.js.map +1 -0
  784. package/dist/lib/time/zone.js +148 -0
  785. package/dist/lib/time/zone.js.map +1 -0
  786. package/dist/lib/use-controllable.js +16 -0
  787. package/dist/lib/use-controllable.js.map +1 -0
  788. package/dist/lib/use-fill-height.js +49 -0
  789. package/dist/lib/use-fill-height.js.map +1 -0
  790. package/dist/lib/use-hydrated.js +14 -0
  791. package/dist/lib/use-hydrated.js.map +1 -0
  792. package/dist/lib/use-media-query.js +30 -0
  793. package/dist/lib/use-media-query.js.map +1 -0
  794. package/dist/lib/use-relabel-base-ui-dismiss.js +26 -0
  795. package/dist/lib/use-relabel-base-ui-dismiss.js.map +1 -0
  796. package/dist/lib/use-release-snap-drag.js +29 -0
  797. package/dist/lib/use-release-snap-drag.js.map +1 -0
  798. package/dist/lib/use-roving-options.js +18 -0
  799. package/dist/lib/use-roving-options.js.map +1 -0
  800. package/dist/lib/values/absent.js +5 -0
  801. package/dist/lib/values/absent.js.map +1 -0
  802. package/dist/lib/values/boolean.js +13 -0
  803. package/dist/lib/values/boolean.js.map +1 -0
  804. package/dist/lib/values/currency.js +23 -0
  805. package/dist/lib/values/currency.js.map +1 -0
  806. package/dist/lib/values/date.js +35 -0
  807. package/dist/lib/values/date.js.map +1 -0
  808. package/dist/lib/values/datetime.js +54 -0
  809. package/dist/lib/values/datetime.js.map +1 -0
  810. package/dist/lib/values/locale-date.js +60 -0
  811. package/dist/lib/values/locale-date.js.map +1 -0
  812. package/dist/lib/values/number.js +16 -0
  813. package/dist/lib/values/number.js.map +1 -0
  814. package/dist/pure.js +379 -0
  815. package/dist/pure.js.map +1 -0
  816. package/dist/styles.css +190 -0
  817. package/dist/theme.css +360 -0
  818. package/dist/types/components/Accordion.d.ts +15 -0
  819. package/dist/types/components/AgentWorkingSpinner.d.ts +23 -0
  820. package/dist/types/components/AppShell.d.ts +164 -0
  821. package/dist/types/components/Attention.d.ts +87 -0
  822. package/dist/types/components/Avatar.d.ts +154 -0
  823. package/dist/types/components/Badge.d.ts +131 -0
  824. package/dist/types/components/Board.d.ts +239 -0
  825. package/dist/types/components/Button.d.ts +208 -0
  826. package/dist/types/components/Callout.d.ts +163 -0
  827. package/dist/types/components/Card.d.ts +219 -0
  828. package/dist/types/components/Choice.d.ts +127 -0
  829. package/dist/types/components/CodeEditor.d.ts +86 -0
  830. package/dist/types/components/ColorPicker.d.ts +14 -0
  831. package/dist/types/components/Combobox.d.ts +43 -0
  832. package/dist/types/components/CommandPalette.d.ts +35 -0
  833. package/dist/types/components/ConcentricRing.d.ts +61 -0
  834. package/dist/types/components/ConnectionCard.d.ts +64 -0
  835. package/dist/types/components/ContextItemRow.d.ts +35 -0
  836. package/dist/types/components/CopyValue.d.ts +14 -0
  837. package/dist/types/components/CountBadge.d.ts +14 -0
  838. package/dist/types/components/DateCalendar.d.ts +30 -0
  839. package/dist/types/components/DateField.d.ts +29 -0
  840. package/dist/types/components/DatePicker.d.ts +20 -0
  841. package/dist/types/components/DateTimeText.d.ts +9 -0
  842. package/dist/types/components/DescriptionList.d.ts +40 -0
  843. package/dist/types/components/Dialog.d.ts +269 -0
  844. package/dist/types/components/DragDrop.d.ts +196 -0
  845. package/dist/types/components/Drawer.d.ts +163 -0
  846. package/dist/types/components/EditGutter.d.ts +44 -0
  847. package/dist/types/components/EmojiPicker.d.ts +30 -0
  848. package/dist/types/components/ErrorBoundary.d.ts +43 -0
  849. package/dist/types/components/Field.d.ts +37 -0
  850. package/dist/types/components/FileUpload.d.ts +22 -0
  851. package/dist/types/components/FilterMenu.d.ts +120 -0
  852. package/dist/types/components/GatesSection.d.ts +79 -0
  853. package/dist/types/components/Icon.d.ts +40 -0
  854. package/dist/types/components/IconButton.d.ts +69 -0
  855. package/dist/types/components/IconStack.d.ts +28 -0
  856. package/dist/types/components/ImageUploadField.d.ts +38 -0
  857. package/dist/types/components/InlineEdit.d.ts +183 -0
  858. package/dist/types/components/InlineMarkdownEdit.d.ts +100 -0
  859. package/dist/types/components/Input.d.ts +128 -0
  860. package/dist/types/components/LegalDocument.d.ts +23 -0
  861. package/dist/types/components/LineDiff.d.ts +53 -0
  862. package/dist/types/components/ListHeader.d.ts +45 -0
  863. package/dist/types/components/Loading.d.ts +131 -0
  864. package/dist/types/components/Markdown.d.ts +35 -0
  865. package/dist/types/components/MarkdownEditor.d.ts +129 -0
  866. package/dist/types/components/Menu.d.ts +157 -0
  867. package/dist/types/components/Navigation.d.ts +67 -0
  868. package/dist/types/components/NumberInput.d.ts +177 -0
  869. package/dist/types/components/OTPInput.d.ts +13 -0
  870. package/dist/types/components/OrderedEntityManager.d.ts +64 -0
  871. package/dist/types/components/PagedWindowList.d.ts +23 -0
  872. package/dist/types/components/PaginationBar.d.ts +31 -0
  873. package/dist/types/components/Panel.d.ts +94 -0
  874. package/dist/types/components/PasswordInput.d.ts +7 -0
  875. package/dist/types/components/PasswordRequirements.d.ts +11 -0
  876. package/dist/types/components/PatchDiff.d.ts +38 -0
  877. package/dist/types/components/PendingVeil.d.ts +8 -0
  878. package/dist/types/components/Popover.d.ts +231 -0
  879. package/dist/types/components/Progress.d.ts +580 -0
  880. package/dist/types/components/RatingScale.d.ts +30 -0
  881. package/dist/types/components/ReadMore.d.ts +26 -0
  882. package/dist/types/components/RecordCard.d.ts +413 -0
  883. package/dist/types/components/RelativeTime.d.ts +17 -0
  884. package/dist/types/components/SandboxedFrame.d.ts +37 -0
  885. package/dist/types/components/SearchInput.d.ts +6 -0
  886. package/dist/types/components/SecretField.d.ts +90 -0
  887. package/dist/types/components/SectionNav.d.ts +15 -0
  888. package/dist/types/components/Select.d.ts +53 -0
  889. package/dist/types/components/SequenceDiagram.d.ts +15 -0
  890. package/dist/types/components/SettingRow.d.ts +144 -0
  891. package/dist/types/components/SignOffRings.d.ts +29 -0
  892. package/dist/types/components/Slider.d.ts +255 -0
  893. package/dist/types/components/SolutionChoice.d.ts +49 -0
  894. package/dist/types/components/SortMenu.d.ts +45 -0
  895. package/dist/types/components/Spinner.d.ts +29 -0
  896. package/dist/types/components/Stat.d.ts +136 -0
  897. package/dist/types/components/StatusSelect.d.ts +93 -0
  898. package/dist/types/components/Surface.d.ts +145 -0
  899. package/dist/types/components/Table.d.ts +164 -0
  900. package/dist/types/components/Tabs.d.ts +142 -0
  901. package/dist/types/components/ThemeMenu.d.ts +56 -0
  902. package/dist/types/components/Toast.d.ts +63 -0
  903. package/dist/types/components/Toggle.d.ts +168 -0
  904. package/dist/types/components/ToggleMatrix.d.ts +51 -0
  905. package/dist/types/components/Tree.d.ts +20 -0
  906. package/dist/types/components/TriStateSwitch.d.ts +63 -0
  907. package/dist/types/components/VideoPlayer.d.ts +26 -0
  908. package/dist/types/components/auth/AcceptInvitationCard.d.ts +54 -0
  909. package/dist/types/components/auth/AuthLayout.d.ts +12 -0
  910. package/dist/types/components/auth/ForgotPasswordForm.d.ts +6 -0
  911. package/dist/types/components/auth/LoginForm.d.ts +13 -0
  912. package/dist/types/components/auth/ResetPasswordForm.d.ts +9 -0
  913. package/dist/types/components/auth/SignInProviders.d.ts +56 -0
  914. package/dist/types/components/auth/SignupCard.d.ts +62 -0
  915. package/dist/types/components/auth/TermsAcceptance.d.ts +14 -0
  916. package/dist/types/components/auth/index.d.ts +8 -0
  917. package/dist/types/components/board/context.d.ts +65 -0
  918. package/dist/types/components/board/recipe.d.ts +97 -0
  919. package/dist/types/components/calendar/CalendarMonth.d.ts +32 -0
  920. package/dist/types/components/calendar/CalendarTimeGrid.d.ts +74 -0
  921. package/dist/types/components/calendar/EventActions.d.ts +16 -0
  922. package/dist/types/components/calendar/format.d.ts +42 -0
  923. package/dist/types/components/calendar/palette.d.ts +17 -0
  924. package/dist/types/components/calendar/use-calendar-drag.d.ts +53 -0
  925. package/dist/types/components/calendar/use-event-keyboard.d.ts +23 -0
  926. package/dist/types/components/calendar/use-grid-navigation.d.ts +47 -0
  927. package/dist/types/components/calendar/use-now.d.ts +20 -0
  928. package/dist/types/components/card-face/AcRingGlyph.d.ts +20 -0
  929. package/dist/types/components/card-face/BoardCardAgentSlot.d.ts +19 -0
  930. package/dist/types/components/card-face/CardFace.d.ts +106 -0
  931. package/dist/types/components/card-face/CardTypeBadge.d.ts +21 -0
  932. package/dist/types/components/card-face/EffortBadge.d.ts +9 -0
  933. package/dist/types/components/card-face/GateRingGlyph.d.ts +22 -0
  934. package/dist/types/components/card-face/OverflowRow.d.ts +40 -0
  935. package/dist/types/components/card-face/TapTip.d.ts +15 -0
  936. package/dist/types/components/card-face/hit-area.d.ts +20 -0
  937. package/dist/types/components/card-face/vocabulary.d.ts +83 -0
  938. package/dist/types/components/chart/BarList.d.ts +27 -0
  939. package/dist/types/components/chart/LineChart.d.ts +64 -0
  940. package/dist/types/components/chart/ShareBar.d.ts +26 -0
  941. package/dist/types/components/chart/TimeSeriesChart.d.ts +60 -0
  942. package/dist/types/components/chart/label-metrics.d.ts +9 -0
  943. package/dist/types/components/chart/line-chart-axis.d.ts +14 -0
  944. package/dist/types/components/chart/line-chart-scale.d.ts +55 -0
  945. package/dist/types/components/chart/line-series-style.d.ts +14 -0
  946. package/dist/types/components/chart/share-bar-labels.d.ts +17 -0
  947. package/dist/types/components/chart/shared.d.ts +122 -0
  948. package/dist/types/components/chart/time-series-scale.d.ts +29 -0
  949. package/dist/types/components/chat/Attachment.d.ts +125 -0
  950. package/dist/types/components/chat/Chat.d.ts +60 -0
  951. package/dist/types/components/chat/Composer.d.ts +62 -0
  952. package/dist/types/components/chat/ContextMeter.d.ts +45 -0
  953. package/dist/types/components/chat/EffortControl.d.ts +23 -0
  954. package/dist/types/components/chat/FileCover.d.ts +14 -0
  955. package/dist/types/components/chat/Message.d.ts +66 -0
  956. package/dist/types/components/chat/MessageScroller.d.ts +18 -0
  957. package/dist/types/components/chat/ModelSelector.d.ts +44 -0
  958. package/dist/types/components/chat/StreamingMarkdown.d.ts +11 -0
  959. package/dist/types/components/chat/download-file.d.ts +7 -0
  960. package/dist/types/components/chat/file-icon.d.ts +29 -0
  961. package/dist/types/components/chat/types.d.ts +165 -0
  962. package/dist/types/components/checklist/StatusChecklist.d.ts +37 -0
  963. package/dist/types/components/checklist/index.d.ts +3 -0
  964. package/dist/types/components/checklist/tally.d.ts +19 -0
  965. package/dist/types/components/checklist/types.d.ts +28 -0
  966. package/dist/types/components/code-editor/context.d.ts +32 -0
  967. package/dist/types/components/code-editor/editing.d.ts +39 -0
  968. package/dist/types/components/code-editor/highlight.d.ts +20 -0
  969. package/dist/types/components/code-editor/recipe.d.ts +109 -0
  970. package/dist/types/components/date-timeline/DateTimeline.d.ts +99 -0
  971. package/dist/types/components/date-timeline/TimelineRow.d.ts +22 -0
  972. package/dist/types/components/date-timeline/useBarDrag.d.ts +15 -0
  973. package/dist/types/components/date-timeline/useMarkerDrag.d.ts +14 -0
  974. package/dist/types/components/date-timeline/useTimelineZoom.d.ts +23 -0
  975. package/dist/types/components/drag-drop/context.d.ts +85 -0
  976. package/dist/types/components/drag-drop/recipe.d.ts +163 -0
  977. package/dist/types/components/drag-drop/shift.d.ts +153 -0
  978. package/dist/types/components/edit/activation.d.ts +21 -0
  979. package/dist/types/components/edit/outcome.d.ts +29 -0
  980. package/dist/types/components/edit/use-edit-session.d.ts +77 -0
  981. package/dist/types/components/file-viewer/FileViewer.d.ts +2 -0
  982. package/dist/types/components/file-viewer/PageNumberJumpField.d.ts +9 -0
  983. package/dist/types/components/file-viewer/ViewerControls.d.ts +20 -0
  984. package/dist/types/components/file-viewer/ViewerRail.d.ts +10 -0
  985. package/dist/types/components/file-viewer/ViewerStage.d.ts +22 -0
  986. package/dist/types/components/file-viewer/frames.d.ts +28 -0
  987. package/dist/types/components/file-viewer/index.d.ts +3 -0
  988. package/dist/types/components/file-viewer/types.d.ts +70 -0
  989. package/dist/types/components/file-viewer/use-frame-cursor.d.ts +13 -0
  990. package/dist/types/components/file-viewer/use-viewer-keys.d.ts +24 -0
  991. package/dist/types/components/file-viewer/use-viewer-zoom.d.ts +29 -0
  992. package/dist/types/components/focus-web/FocusWeb.d.ts +3 -0
  993. package/dist/types/components/focus-web/index.d.ts +4 -0
  994. package/dist/types/components/focus-web/layout.d.ts +55 -0
  995. package/dist/types/components/focus-web/types.d.ts +131 -0
  996. package/dist/types/components/graph-explorer/GraphExplorer.d.ts +42 -0
  997. package/dist/types/components/graph-explorer/camera-math.d.ts +119 -0
  998. package/dist/types/components/graph-explorer/index.d.ts +5 -0
  999. package/dist/types/components/graph-explorer/tree-layout.d.ts +67 -0
  1000. package/dist/types/components/graph-explorer/types.d.ts +62 -0
  1001. package/dist/types/components/graph-explorer/use-camera.d.ts +81 -0
  1002. package/dist/types/components/graph-explorer/viewport-gesture.d.ts +32 -0
  1003. package/dist/types/components/kanban/KanbanBoard.d.ts +72 -0
  1004. package/dist/types/components/kanban/recipe.d.ts +73 -0
  1005. package/dist/types/components/kanban/types.d.ts +55 -0
  1006. package/dist/types/components/markdown/Affordances.d.ts +105 -0
  1007. package/dist/types/components/markdown/AttachmentStrip.d.ts +25 -0
  1008. package/dist/types/components/markdown/ImageUpload.d.ts +56 -0
  1009. package/dist/types/components/media-error.d.ts +11 -0
  1010. package/dist/types/components/nav-sections.d.ts +10 -0
  1011. package/dist/types/components/node-canvas/NodeCanvas.d.ts +66 -0
  1012. package/dist/types/components/node-canvas/index.d.ts +3 -0
  1013. package/dist/types/components/node-canvas/layout.d.ts +29 -0
  1014. package/dist/types/components/node-canvas/types.d.ts +207 -0
  1015. package/dist/types/components/node-canvas/use-canvas-gestures.d.ts +39 -0
  1016. package/dist/types/components/openapi/OpenApiViewer.d.ts +14 -0
  1017. package/dist/types/components/openapi/OperationCard.d.ts +33 -0
  1018. package/dist/types/components/openapi/SchemaView.d.ts +14 -0
  1019. package/dist/types/components/openapi/index.d.ts +6 -0
  1020. package/dist/types/components/openapi/resolve.d.ts +72 -0
  1021. package/dist/types/components/openapi/types.d.ts +128 -0
  1022. package/dist/types/components/overlay-shell.d.ts +48 -0
  1023. package/dist/types/components/overlay-stack.d.ts +18 -0
  1024. package/dist/types/components/paged-window/PageBlock.d.ts +31 -0
  1025. package/dist/types/components/provenance/ConfidenceBar.d.ts +118 -0
  1026. package/dist/types/components/provenance/ConfidenceMeter.d.ts +21 -0
  1027. package/dist/types/components/provenance/ConfidenceReadout.d.ts +17 -0
  1028. package/dist/types/components/provenance/ProvenanceBadge.d.ts +23 -0
  1029. package/dist/types/components/provenance/ProvenanceDetail.d.ts +109 -0
  1030. package/dist/types/components/provenance/ProvenanceDisclosure.d.ts +107 -0
  1031. package/dist/types/components/provenance/absence.d.ts +37 -0
  1032. package/dist/types/components/provenance/index.d.ts +7 -0
  1033. package/dist/types/components/provenance/types.d.ts +137 -0
  1034. package/dist/types/components/rbac/AccessRequestPanel.d.ts +92 -0
  1035. package/dist/types/components/rbac/AccountMenu.d.ts +46 -0
  1036. package/dist/types/components/rbac/AgentKeysList.d.ts +20 -0
  1037. package/dist/types/components/rbac/ApiKeysPanel.d.ts +26 -0
  1038. package/dist/types/components/rbac/ApiKeysTable.d.ts +63 -0
  1039. package/dist/types/components/rbac/Brand.d.ts +8 -0
  1040. package/dist/types/components/rbac/Can.d.ts +19 -0
  1041. package/dist/types/components/rbac/ChangePasswordForm.d.ts +18 -0
  1042. package/dist/types/components/rbac/DangerZone.d.ts +8 -0
  1043. package/dist/types/components/rbac/DevToolsPopover.d.ts +36 -0
  1044. package/dist/types/components/rbac/EndedLine.d.ts +21 -0
  1045. package/dist/types/components/rbac/InvitationsList.d.ts +39 -0
  1046. package/dist/types/components/rbac/InviteMembersDialog.d.ts +21 -0
  1047. package/dist/types/components/rbac/MembersPanel.d.ts +31 -0
  1048. package/dist/types/components/rbac/PermissionRequestPanel.d.ts +36 -0
  1049. package/dist/types/components/rbac/ProfileForm.d.ts +27 -0
  1050. package/dist/types/components/rbac/ProfilePage.d.ts +16 -0
  1051. package/dist/types/components/rbac/RBACProvider.d.ts +69 -0
  1052. package/dist/types/components/rbac/RoleEditorDialog.d.ts +28 -0
  1053. package/dist/types/components/rbac/RoleKeyPicker.d.ts +24 -0
  1054. package/dist/types/components/rbac/RolePermissionMatrix.d.ts +21 -0
  1055. package/dist/types/components/rbac/RolesPermissionsPage.d.ts +24 -0
  1056. package/dist/types/components/rbac/SessionsList.d.ts +35 -0
  1057. package/dist/types/components/rbac/TeamSettingsForm.d.ts +22 -0
  1058. package/dist/types/components/rbac/TeamSwitcher.d.ts +5 -0
  1059. package/dist/types/components/rbac/approvalPanelParts.d.ts +69 -0
  1060. package/dist/types/components/rbac/index.d.ts +25 -0
  1061. package/dist/types/components/rbac/permissionSections.d.ts +8 -0
  1062. package/dist/types/components/rbac/stagedForm.d.ts +25 -0
  1063. package/dist/types/components/rbac/types.d.ts +65 -0
  1064. package/dist/types/components/rbac/useStagedImage.d.ts +15 -0
  1065. package/dist/types/components/roadmap/PhaseManager.d.ts +19 -0
  1066. package/dist/types/components/roadmap/RoadmapItemCard.d.ts +51 -0
  1067. package/dist/types/components/roadmap/RoadmapPage.d.ts +12 -0
  1068. package/dist/types/components/roadmap/RoadmapSwimlaneBoard.d.ts +15 -0
  1069. package/dist/types/components/roadmap/TrackManager.d.ts +19 -0
  1070. package/dist/types/components/roadmap/UseCaseCard.d.ts +30 -0
  1071. package/dist/types/components/roadmap/UseCaseLedgerPage.d.ts +29 -0
  1072. package/dist/types/components/roadmap/chip-tones.d.ts +2 -0
  1073. package/dist/types/components/roadmap/derive.d.ts +39 -0
  1074. package/dist/types/components/roadmap/index.d.ts +10 -0
  1075. package/dist/types/components/roadmap/types.d.ts +86 -0
  1076. package/dist/types/components/stepper/Stepper.d.ts +79 -0
  1077. package/dist/types/components/stepper/derive.d.ts +49 -0
  1078. package/dist/types/components/stepper/index.d.ts +3 -0
  1079. package/dist/types/components/stepper/types.d.ts +118 -0
  1080. package/dist/types/icons/data.d.ts +2054 -0
  1081. package/dist/types/index.d.ts +209 -0
  1082. package/dist/types/lib/attention.d.ts +62 -0
  1083. package/dist/types/lib/board/anchor.d.ts +69 -0
  1084. package/dist/types/lib/board/index.d.ts +17 -0
  1085. package/dist/types/lib/board/model.d.ts +43 -0
  1086. package/dist/types/lib/board/move.d.ts +181 -0
  1087. package/dist/types/lib/board/position.d.ts +22 -0
  1088. package/dist/types/lib/board/rejection.d.ts +8 -0
  1089. package/dist/types/lib/board/types.d.ts +294 -0
  1090. package/dist/types/lib/board/use-board.d.ts +47 -0
  1091. package/dist/types/lib/calendar/band-packer.d.ts +53 -0
  1092. package/dist/types/lib/calendar/drag.d.ts +125 -0
  1093. package/dist/types/lib/calendar/index.d.ts +4 -0
  1094. package/dist/types/lib/calendar/lane-packer.d.ts +88 -0
  1095. package/dist/types/lib/calendar/segments.d.ts +91 -0
  1096. package/dist/types/lib/calendar/types.d.ts +166 -0
  1097. package/dist/types/lib/chart-palette.d.ts +14 -0
  1098. package/dist/types/lib/clipboard.d.ts +12 -0
  1099. package/dist/types/lib/cn.d.ts +7 -0
  1100. package/dist/types/lib/color.d.ts +14 -0
  1101. package/dist/types/lib/component-guidance.d.ts +15 -0
  1102. package/dist/types/lib/confidence.d.ts +28 -0
  1103. package/dist/types/lib/date-timeline/scale.d.ts +143 -0
  1104. package/dist/types/lib/design-frame/document.d.ts +39 -0
  1105. package/dist/types/lib/design-frame/mini-app-script.d.ts +29 -0
  1106. package/dist/types/lib/design-frame/mini-app.d.ts +17 -0
  1107. package/dist/types/lib/design-frame/protocol.d.ts +78 -0
  1108. package/dist/types/lib/dev-warn.d.ts +10 -0
  1109. package/dist/types/lib/dnd/announce.d.ts +124 -0
  1110. package/dist/types/lib/dnd/autoscroll.d.ts +88 -0
  1111. package/dist/types/lib/dnd/cross-drop.d.ts +18 -0
  1112. package/dist/types/lib/dnd/geometry.d.ts +126 -0
  1113. package/dist/types/lib/dnd/index.d.ts +17 -0
  1114. package/dist/types/lib/dnd/sensors/gesture.d.ts +37 -0
  1115. package/dist/types/lib/dnd/sensors/keyboard.d.ts +54 -0
  1116. package/dist/types/lib/dnd/sensors/pointer.d.ts +59 -0
  1117. package/dist/types/lib/dnd/session.d.ts +124 -0
  1118. package/dist/types/lib/dnd/types.d.ts +226 -0
  1119. package/dist/types/lib/dnd/use-drag.d.ts +82 -0
  1120. package/dist/types/lib/dom/scroll-ancestor.d.ts +15 -0
  1121. package/dist/types/lib/format.d.ts +33 -0
  1122. package/dist/types/lib/group-in-order.d.ts +13 -0
  1123. package/dist/types/lib/header-fold.d.ts +10 -0
  1124. package/dist/types/lib/i18n/areas/auth-provenance-flows.d.ts +287 -0
  1125. package/dist/types/lib/i18n/areas/board.d.ts +51 -0
  1126. package/dist/types/lib/i18n/areas/card-face.d.ts +8 -0
  1127. package/dist/types/lib/i18n/areas/chat-chart.d.ts +202 -0
  1128. package/dist/types/lib/i18n/areas/code-editor.d.ts +40 -0
  1129. package/dist/types/lib/i18n/areas/date-timeline.d.ts +36 -0
  1130. package/dist/types/lib/i18n/areas/dates.d.ts +103 -0
  1131. package/dist/types/lib/i18n/areas/docs-views.d.ts +297 -0
  1132. package/dist/types/lib/i18n/areas/feedback.d.ts +132 -0
  1133. package/dist/types/lib/i18n/areas/formats.d.ts +30 -0
  1134. package/dist/types/lib/i18n/areas/forms.d.ts +182 -0
  1135. package/dist/types/lib/i18n/areas/keys.d.ts +15 -0
  1136. package/dist/types/lib/i18n/areas/markdown.d.ts +150 -0
  1137. package/dist/types/lib/i18n/areas/move-rejected.d.ts +16 -0
  1138. package/dist/types/lib/i18n/areas/navigation.d.ts +185 -0
  1139. package/dist/types/lib/i18n/areas/rbac.d.ts +633 -0
  1140. package/dist/types/lib/i18n/emphasis.d.ts +3 -0
  1141. package/dist/types/lib/i18n/index.d.ts +10 -0
  1142. package/dist/types/lib/i18n/number-format.d.ts +5 -0
  1143. package/dist/types/lib/i18n/plural.d.ts +7 -0
  1144. package/dist/types/lib/i18n/provider.d.ts +16 -0
  1145. package/dist/types/lib/i18n/strings.d.ts +18 -0
  1146. package/dist/types/lib/icons.d.ts +22 -0
  1147. package/dist/types/lib/interactive-target.d.ts +3 -0
  1148. package/dist/types/lib/intl-cache.d.ts +31 -0
  1149. package/dist/types/lib/legal-document.d.ts +82 -0
  1150. package/dist/types/lib/line-diff-model.d.ts +39 -0
  1151. package/dist/types/lib/markdown/attachments.d.ts +50 -0
  1152. package/dist/types/lib/markdown/caret-map.d.ts +69 -0
  1153. package/dist/types/lib/markdown/caret.d.ts +6 -0
  1154. package/dist/types/lib/markdown/commands.d.ts +186 -0
  1155. package/dist/types/lib/markdown/convert.d.ts +99 -0
  1156. package/dist/types/lib/markdown/dom.d.ts +30 -0
  1157. package/dist/types/lib/markdown/edit.d.ts +16 -0
  1158. package/dist/types/lib/markdown/history.d.ts +59 -0
  1159. package/dist/types/lib/markdown/hotkeys.d.ts +63 -0
  1160. package/dist/types/lib/markdown/image-pipeline.d.ts +173 -0
  1161. package/dist/types/lib/markdown/images.d.ts +138 -0
  1162. package/dist/types/lib/markdown/input.d.ts +38 -0
  1163. package/dist/types/lib/markdown/keys.d.ts +34 -0
  1164. package/dist/types/lib/markdown/paste.d.ts +9 -0
  1165. package/dist/types/lib/markdown/position.d.ts +43 -0
  1166. package/dist/types/lib/markdown/project.d.ts +88 -0
  1167. package/dist/types/lib/markdown/reconcile.d.ts +63 -0
  1168. package/dist/types/lib/markdown/surface.d.ts +236 -0
  1169. package/dist/types/lib/motion.d.ts +30 -0
  1170. package/dist/types/lib/pad.d.ts +6 -0
  1171. package/dist/types/lib/paged-window/index.d.ts +2 -0
  1172. package/dist/types/lib/paged-window/layout.d.ts +21 -0
  1173. package/dist/types/lib/paged-window/list-owner.d.ts +12 -0
  1174. package/dist/types/lib/paged-window/records-binding.d.ts +102 -0
  1175. package/dist/types/lib/paged-window/store.d.ts +307 -0
  1176. package/dist/types/lib/paged-window/use-measured-pitch.d.ts +34 -0
  1177. package/dist/types/lib/paged-window/use-page-visibility.d.ts +20 -0
  1178. package/dist/types/lib/paged-window/use-paged-window.d.ts +61 -0
  1179. package/dist/types/lib/paged-window/use-scroll-root.d.ts +18 -0
  1180. package/dist/types/lib/persist.d.ts +57 -0
  1181. package/dist/types/lib/preference-values.d.ts +72 -0
  1182. package/dist/types/lib/preferences.d.ts +26 -0
  1183. package/dist/types/lib/reads/hooks.d.ts +49 -0
  1184. package/dist/types/lib/reads/index.d.ts +5 -0
  1185. package/dist/types/lib/reads/optimistic.d.ts +119 -0
  1186. package/dist/types/lib/reads/refetch.d.ts +83 -0
  1187. package/dist/types/lib/reads/slots.d.ts +137 -0
  1188. package/dist/types/lib/reads/types.d.ts +155 -0
  1189. package/dist/types/lib/realtime/hooks.d.ts +38 -0
  1190. package/dist/types/lib/realtime/index.d.ts +4 -0
  1191. package/dist/types/lib/realtime/provider.d.ts +38 -0
  1192. package/dist/types/lib/realtime/registry.d.ts +225 -0
  1193. package/dist/types/lib/realtime/types.d.ts +242 -0
  1194. package/dist/types/lib/records/define-record-type.d.ts +29 -0
  1195. package/dist/types/lib/records/hooks.d.ts +46 -0
  1196. package/dist/types/lib/records/index.d.ts +5 -0
  1197. package/dist/types/lib/records/store.d.ts +289 -0
  1198. package/dist/types/lib/records/types.d.ts +195 -0
  1199. package/dist/types/lib/records/wire.d.ts +96 -0
  1200. package/dist/types/lib/reduced-motion-help.d.ts +23 -0
  1201. package/dist/types/lib/scroll-caret.d.ts +6 -0
  1202. package/dist/types/lib/sim/createSimStore.d.ts +18 -0
  1203. package/dist/types/lib/sim/index.d.ts +5 -0
  1204. package/dist/types/lib/sim/latency.d.ts +10 -0
  1205. package/dist/types/lib/sim/registry.d.ts +14 -0
  1206. package/dist/types/lib/sim/settings.d.ts +11 -0
  1207. package/dist/types/lib/sim/types.d.ts +3 -0
  1208. package/dist/types/lib/submit-shortcut.d.ts +24 -0
  1209. package/dist/types/lib/syntax/index.d.ts +16 -0
  1210. package/dist/types/lib/syntax/languages/bash.d.ts +1 -0
  1211. package/dist/types/lib/syntax/languages/css.d.ts +1 -0
  1212. package/dist/types/lib/syntax/languages/html.d.ts +17 -0
  1213. package/dist/types/lib/syntax/languages/index.d.ts +33 -0
  1214. package/dist/types/lib/syntax/languages/javascript.d.ts +22 -0
  1215. package/dist/types/lib/syntax/languages/json.d.ts +1 -0
  1216. package/dist/types/lib/syntax/languages/mongodb.d.ts +1 -0
  1217. package/dist/types/lib/syntax/languages/plain.d.ts +9 -0
  1218. package/dist/types/lib/syntax/languages/sql.d.ts +4 -0
  1219. package/dist/types/lib/syntax/languages/vue.d.ts +1 -0
  1220. package/dist/types/lib/syntax/languages/yaml.d.ts +1 -0
  1221. package/dist/types/lib/syntax/markdown/frames.d.ts +145 -0
  1222. package/dist/types/lib/syntax/markdown/grammar.d.ts +1 -0
  1223. package/dist/types/lib/syntax/markdown/index.d.ts +5 -0
  1224. package/dist/types/lib/syntax/markdown/inline.d.ts +21 -0
  1225. package/dist/types/lib/syntax/markdown/parse.d.ts +15 -0
  1226. package/dist/types/lib/syntax/markdown/refs.d.ts +47 -0
  1227. package/dist/types/lib/syntax/markdown/render.d.ts +25 -0
  1228. package/dist/types/lib/syntax/markdown/spans.d.ts +84 -0
  1229. package/dist/types/lib/syntax/markdown/types.d.ts +108 -0
  1230. package/dist/types/lib/syntax/registry.d.ts +37 -0
  1231. package/dist/types/lib/syntax/tokenize.d.ts +17 -0
  1232. package/dist/types/lib/syntax/types.d.ts +119 -0
  1233. package/dist/types/lib/time/index.d.ts +4 -0
  1234. package/dist/types/lib/time/instant.d.ts +2 -0
  1235. package/dist/types/lib/time/plain.d.ts +61 -0
  1236. package/dist/types/lib/time/relativeAge.d.ts +18 -0
  1237. package/dist/types/lib/time/relativeClock.d.ts +8 -0
  1238. package/dist/types/lib/time/types.d.ts +87 -0
  1239. package/dist/types/lib/time/zone.d.ts +106 -0
  1240. package/dist/types/lib/use-controllable.d.ts +14 -0
  1241. package/dist/types/lib/use-fill-height.d.ts +26 -0
  1242. package/dist/types/lib/use-hydrated.d.ts +8 -0
  1243. package/dist/types/lib/use-media-query.d.ts +29 -0
  1244. package/dist/types/lib/use-relabel-base-ui-dismiss.d.ts +6 -0
  1245. package/dist/types/lib/use-release-snap-drag.d.ts +25 -0
  1246. package/dist/types/lib/use-roving-options.d.ts +10 -0
  1247. package/dist/types/lib/values/absent.d.ts +7 -0
  1248. package/dist/types/lib/values/boolean.d.ts +29 -0
  1249. package/dist/types/lib/values/currency.d.ts +22 -0
  1250. package/dist/types/lib/values/date.d.ts +30 -0
  1251. package/dist/types/lib/values/datetime.d.ts +48 -0
  1252. package/dist/types/lib/values/index.d.ts +5 -0
  1253. package/dist/types/lib/values/locale-date.d.ts +34 -0
  1254. package/dist/types/lib/values/number.d.ts +27 -0
  1255. package/dist/types/pure.d.ts +48 -0
  1256. package/package.json +136 -4
@@ -0,0 +1,95 @@
1
+ import { jsx as t, jsxs as x, Fragment as y } from "react/jsx-runtime";
2
+ import { useMemo as D, useState as A } from "react";
3
+ import { tv as C } from "tailwind-variants";
4
+ import { cn as k } from "../lib/cn.js";
5
+ import { diffLines as R, splitLines as z, DEFAULT_CONTEXT as S, foldGaps as I, gapState as T, expand as F, NOTHING as G, EXPAND_STEP as g } from "../lib/line-diff-model.js";
6
+ import { Button as u } from "./Button.js";
7
+ import { Icon as w } from "./Icon.js";
8
+ import { useUiStrings as E } from "../lib/i18n/provider.js";
9
+ import { useNumberFormat as L } from "../lib/i18n/number-format.js";
10
+ const v = C({
11
+ base: "flex min-w-0 gap-2 rounded-sm px-2 py-0.5 font-mono text-xs whitespace-pre-wrap [overflow-wrap:anywhere]",
12
+ variants: {
13
+ kind: {
14
+ unchanged: "text-secondary",
15
+ removed: "bg-danger-subtle text-danger-text",
16
+ added: "bg-success-subtle text-success-text",
17
+ gap: "bg-surface-inset text-tertiary italic"
18
+ }
19
+ }
20
+ }), U = {
21
+ unchanged: " ",
22
+ removed: "−",
23
+ added: "+"
24
+ };
25
+ function V({ before: e, after: r, label: i, context: a, expandable: s = !1, className: o }) {
26
+ const c = E().lineDiff, p = L(), f = D(() => R(z(e), z(r)), [e, r]);
27
+ if (s)
28
+ return /* @__PURE__ */ t(j, { lines: f, label: i, context: a ?? S, className: o });
29
+ const l = O(f, a);
30
+ return /* @__PURE__ */ t("div", { role: "group", "aria-label": i, "data-slot": "line-diff", className: k("flex flex-col", o), children: l.map(
31
+ (n, m) => n.kind === "gap" ? /* @__PURE__ */ x("div", { "data-slot": "line-diff-gap", className: v({ kind: "gap" }), children: [
32
+ /* @__PURE__ */ t("span", { "aria-hidden": !0, className: "select-none opacity-60", children: "⋯" }),
33
+ /* @__PURE__ */ t("span", { children: c.unchangedLines(n.hidden, p(n.hidden)) })
34
+ ] }, m) : /* @__PURE__ */ t(h, { line: n }, m)
35
+ ) });
36
+ }
37
+ function h({ line: e }) {
38
+ return /* @__PURE__ */ x("div", { className: v({ kind: e.kind }), children: [
39
+ /* @__PURE__ */ t("span", { "aria-hidden": !0, className: "shrink-0 select-none opacity-60", children: U[e.kind] }),
40
+ /* @__PURE__ */ t("span", { className: "min-w-0 flex-1", children: e.text.length === 0 ? " " : e.text })
41
+ ] });
42
+ }
43
+ function j({ lines: e, label: r, context: i, className: a }) {
44
+ const s = D(() => I(e, i), [e, i]), [o, c] = A({}), p = new Map(s.map((l) => [l.start, l])), f = [];
45
+ for (let l = 0; l < e.length; l++) {
46
+ const n = p.get(l);
47
+ if (n === void 0) {
48
+ f.push(/* @__PURE__ */ t(h, { line: e[l] }, l));
49
+ continue;
50
+ }
51
+ const { top: m, bottom: M, hidden: N } = T(n, o[n.start]);
52
+ for (let d = n.start; d < n.start + m; d++) f.push(/* @__PURE__ */ t(h, { line: e[d] }, d));
53
+ N > 0 && f.push(
54
+ /* @__PURE__ */ t(
55
+ B,
56
+ {
57
+ gap: n,
58
+ hidden: N,
59
+ onExpand: (d) => c((b) => ({ ...b, [n.start]: F(n, b[n.start] ?? G, d) }))
60
+ },
61
+ `gap-${n.start}`
62
+ )
63
+ );
64
+ for (let d = n.end - M; d < n.end; d++) f.push(/* @__PURE__ */ t(h, { line: e[d] }, d));
65
+ l = n.end - 1;
66
+ }
67
+ return /* @__PURE__ */ t("div", { role: "group", "aria-label": r, "data-slot": "line-diff", className: k("flex flex-col", a), children: f });
68
+ }
69
+ function B({ gap: e, hidden: r, onExpand: i }) {
70
+ const a = E().lineDiff, s = L(), o = a.unchangedLines(r, s(r));
71
+ return /* @__PURE__ */ t("div", { role: "group", "aria-label": o, "data-slot": "line-diff-gap", className: k(v({ kind: "gap" }), "flex-wrap items-center not-italic"), children: r <= g ? /* @__PURE__ */ t(u, { size: "sm", variant: "ghost", leadingIcon: /* @__PURE__ */ t(w, { name: e.atStart ? "arrow-up" : "arrow-down", size: "xs" }), onClick: () => i("all"), children: a.showLines(r, s(r)) }) : /* @__PURE__ */ x(y, { children: [
72
+ e.atStart ? null : /* @__PURE__ */ t(u, { size: "sm", variant: "ghost", leadingIcon: /* @__PURE__ */ t(w, { name: "arrow-down", size: "xs" }), onClick: () => i("down"), children: a.showMoreBelow(s(g)) }),
73
+ e.atEnd ? null : /* @__PURE__ */ t(u, { size: "sm", variant: "ghost", leadingIcon: /* @__PURE__ */ t(w, { name: "arrow-up", size: "xs" }), onClick: () => i("up"), children: a.showMoreAbove(s(g)) }),
74
+ /* @__PURE__ */ t(u, { size: "sm", variant: "ghost", onClick: () => i("all"), children: a.showAll }),
75
+ /* @__PURE__ */ t("span", { "aria-hidden": !0, children: o })
76
+ ] }) });
77
+ }
78
+ function O(e, r) {
79
+ if (r === void 0) return e;
80
+ const i = e.map(() => !1);
81
+ e.forEach((o, c) => {
82
+ if (o.kind !== "unchanged")
83
+ for (let p = Math.max(0, c - r); p <= Math.min(e.length - 1, c + r); p++) i[p] = !0;
84
+ });
85
+ const a = [];
86
+ let s = 0;
87
+ return e.forEach((o, c) => {
88
+ i[c] ? (s > 0 && a.push({ kind: "gap", hidden: s }), s = 0, a.push(o)) : s++;
89
+ }), s > 0 && a.push({ kind: "gap", hidden: s }), a;
90
+ }
91
+ export {
92
+ V as LineDiff,
93
+ v as lineDiffRow
94
+ };
95
+ //# sourceMappingURL=LineDiff.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LineDiff.js","sources":["../../src/components/LineDiff.tsx"],"sourcesContent":["import { useMemo, useState, type ReactNode } from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport { cn } from \"../lib/cn\";\nimport { useNumberFormat, useUiStrings } from \"../lib/i18n\";\nimport { DEFAULT_CONTEXT, EXPAND_STEP, NOTHING, diffLines, expand, foldGaps, gapState, splitLines, type DiffKind, type DiffLine, type Expand, type Gap, type Reveal } from \"../lib/line-diff-model\";\nimport { Button } from \"./Button\";\nimport { Icon } from \"./Icon\";\n\n/* ============================================================================\n LINE DIFF — comparing a text value against its baseline, one line at a\n time. DX-3787.\n\n WHY THIS EXISTS. The plan-event-text editing panel needs to show an\n operator exactly what a customized event text changed relative to the\n board's global default, inline, as they edit — not a separate \"compare\"\n screen, and not a wall of prose restating the two values. Nothing in this\n library rendered a diff at all before this (confirmed by grep over\n `src/components/`), so this is the first one.\n\n WHY LINE-BASED, NOT WORD/CHAR-BASED. The text this compares is authored\n prose and templated copy — event text, not source code — where the unit an\n author actually edits is the LINE: a whole sentence or paragraph rewritten,\n a line added or removed. A character-level diff on prose produces a\n scattering of tiny insertions/deletions inside a rewritten sentence that is\n technically accurate and practically unreadable — every word looks half\n red and half green. Diffing whole lines instead means a rewritten line\n reads as exactly what it is: the old line removed, the new line added,\n each shown whole. This also keeps the algorithm cheap and dependency-free:\n an O(n*m) LCS over a few dozen lines is trivial, where a real word/char\n diff worth using would mean pulling in a diffing library this component\n has no other reason to need.\n\n THE ALGORITHM IS A SMALL PURE FUNCTION, co-located and unexported. It has\n exactly one caller and no reason yet to be usable without React (contrast\n `lib/markdown/project.ts` or `lib/board`, which are exported precisely\n because something ELSE consumes them headlessly) — see `src/pure.ts`'s own\n module comment for what earns a spot on that entry. If a second consumer\n needs the raw diff later, promote it then rather than speculatively now.\n\n A CHANGED LINE RENDERS AS A REMOVAL FOLLOWED BY AN ADDITION, never a third\n \"modified\" style. The LCS only ever classifies a line as kept, removed or\n added; a line edited in place is, from the algorithm's view, one line\n disappearing and a different one appearing at the same position — which is\n also the more informative rendering for a reader scanning for exactly what\n changed, `−`/`+` markers matching the convention a unified text diff\n already uses.\n\n LONG TEXT COLLAPSES, ON REQUEST (DX-4041). A page's whole source is hundreds\n of lines of which a reviewer cares about the dozen that changed, so showing\n every line buries the change — the failure the operator named on the docs\n review screen. `context` is `git diff -U<n>`: keep that many unchanged lines\n either side of a change and fold every longer unchanged run into one gap row\n that says how many lines it hid. It is a prop rather than a default because\n the board's event-text panel (DX-3787) wants every line of a short value, and\n the two answers differ only by what the caller knows about the text's length.\n Two changes whose unchanged lines between them fit inside `2 * context` merge\n into one hunk with no gap — folding fewer lines than the gap row itself costs\n to read would be noise. The gap row is not interactive: expanding it is a\n second interaction model for a comparison the library keeps read-only.\n\n EXPANDABLE CONTEXT (DXUI-38). `expandable` turns each folded run into\n something a person can open, as a code host's diff does: the gap row becomes\n buttons that reveal the next lines under the change above, the next lines\n over the change below, or the whole run, and the model (`lib/line-diff-model`,\n ported from the approved DX-6188 review design) tracks how much of each gap\n is open. It is a prop, not the default, so the fixed `context` mode every\n existing caller relies on is untouched.\n\n LONG UNBROKEN TEXT WRAPS (DXUI-38). A URL or a hash has no break opportunity,\n so `whitespace-pre-wrap` alone let it push the row wider than a phone and\n clip. Every row's text now breaks anywhere when it must (`overflow-wrap:\n anywhere`) and can shrink inside the flex row (`min-w-0`).\n\n ACCESSIBLE AS ONE COMPARISON REGION. `role=\"group\"` + `aria-label={label}`\n on the outer element — the same pattern `InlineMarkdownEdit`'s\n `RestingMarkdown` uses for a single named region — so a screen reader\n announces this as one labelled comparison rather than a loose list of\n lines with no context for why some are marked.\n ========================================================================= */\n\n/** Shared with `PatchDiff` (DX-5271): one row look for every line diff the library draws. */\nexport const lineDiffRow = tv({\n base: \"flex min-w-0 gap-2 rounded-sm px-2 py-0.5 font-mono text-xs whitespace-pre-wrap [overflow-wrap:anywhere]\",\n variants: {\n kind: {\n unchanged: \"text-secondary\",\n removed: \"bg-danger-subtle text-danger-text\",\n added: \"bg-success-subtle text-success-text\",\n gap: \"bg-surface-inset text-tertiary italic\",\n },\n },\n});\n\nconst MARKER: Record<DiffKind, string> = {\n unchanged: \" \",\n removed: \"−\",\n added: \"+\",\n};\n\nexport interface LineDiffProps {\n /** The baseline/default text this compares `after` against. */\n before: string;\n /** The current text being compared against `before`. */\n after: string;\n /** The accessible name for the diff region. */\n label: string;\n /**\n * Show only this many unchanged lines either side of a change, folding each\n * longer unchanged run into a \"N unchanged lines\" row (`git diff -U<n>`).\n * Omitted: every line is shown. `0` shows the changed lines alone. DX-4041.\n */\n context?: number;\n /**\n * Fold each unchanged run longer than `context` (default 2) into a row a\n * person can open: a few lines at a time under the change above or over the\n * change below, or the whole run. Off: the fixed `context` mode. DXUI-38.\n */\n expandable?: boolean;\n className?: string;\n}\n\n/**\n * Renders a line-based diff of `after` against `before`: lines common to both\n * are shown once, plain; a line only in `before` is shown once, styled as a\n * removal; a line only in `after` is shown once, styled as an addition. A\n * line edited in place shows as its old form removed immediately followed by\n * its new form added. Identical `before`/`after` renders every line\n * unchanged, with no added/removed markers at all.\n */\nexport function LineDiff({ before, after, label, context, expandable = false, className }: LineDiffProps) {\n const strings = useUiStrings().lineDiff;\n const fmt = useNumberFormat();\n const lines = useMemo(() => diffLines(splitLines(before), splitLines(after)), [before, after]);\n if (expandable) {\n return <ExpandableRows lines={lines} label={label} context={context ?? DEFAULT_CONTEXT} className={className} />;\n }\n const rows = foldUnchanged(lines, context);\n return (\n <div role=\"group\" aria-label={label} data-slot=\"line-diff\" className={cn(\"flex flex-col\", className)}>\n {rows.map((row, index) =>\n row.kind === \"gap\" ? (\n <div key={index} data-slot=\"line-diff-gap\" className={lineDiffRow({ kind: \"gap\" })}>\n <span aria-hidden className=\"select-none opacity-60\">\n ⋯\n </span>\n <span>{strings.unchangedLines(row.hidden, fmt(row.hidden))}</span>\n </div>\n ) : (\n <DiffRow key={index} line={row} />\n ),\n )}\n </div>\n );\n}\n\nfunction DiffRow({ line }: { line: DiffLine }) {\n return (\n <div className={lineDiffRow({ kind: line.kind })}>\n <span aria-hidden className=\"shrink-0 select-none opacity-60\">\n {MARKER[line.kind]}\n </span>\n <span className=\"min-w-0 flex-1\">{line.text.length === 0 ? \" \" : line.text}</span>\n </div>\n );\n}\n\n/** The expandable mode (DXUI-38): rows around each change, every longer unchanged run a gap the person opens. */\nfunction ExpandableRows({ lines, label, context, className }: { lines: DiffLine[]; label: string; context: number; className?: string }) {\n const gaps = useMemo(() => foldGaps(lines, context), [lines, context]);\n const [reveals, setReveals] = useState<Record<number, Reveal>>({});\n const gapAt = new Map(gaps.map((g) => [g.start, g]));\n\n const rows: ReactNode[] = [];\n for (let i = 0; i < lines.length; i++) {\n const gap = gapAt.get(i);\n if (gap === undefined) {\n rows.push(<DiffRow key={i} line={lines[i]!} />);\n continue;\n }\n const { top, bottom, hidden } = gapState(gap, reveals[gap.start]);\n for (let k = gap.start; k < gap.start + top; k++) rows.push(<DiffRow key={k} line={lines[k]!} />);\n if (hidden > 0) {\n rows.push(\n <GapControls\n key={`gap-${gap.start}`}\n gap={gap}\n hidden={hidden}\n onExpand={(how) => setReveals((r) => ({ ...r, [gap.start]: expand(gap, r[gap.start] ?? NOTHING, how) }))}\n />,\n );\n }\n for (let k = gap.end - bottom; k < gap.end; k++) rows.push(<DiffRow key={k} line={lines[k]!} />);\n i = gap.end - 1;\n }\n return (\n <div role=\"group\" aria-label={label} data-slot=\"line-diff\" className={cn(\"flex flex-col\", className)}>\n {rows}\n </div>\n );\n}\n\nfunction GapControls({ gap, hidden, onExpand }: { gap: Gap; hidden: number; onExpand: (how: Expand) => void }) {\n const strings = useUiStrings().lineDiff;\n const fmt = useNumberFormat();\n const folded = strings.unchangedLines(hidden, fmt(hidden));\n return (\n <div role=\"group\" aria-label={folded} data-slot=\"line-diff-gap\" className={cn(lineDiffRow({ kind: \"gap\" }), \"flex-wrap items-center not-italic\")}>\n {hidden <= EXPAND_STEP ? (\n <Button size=\"sm\" variant=\"ghost\" leadingIcon={<Icon name={gap.atStart ? \"arrow-up\" : \"arrow-down\"} size=\"xs\" />} onClick={() => onExpand(\"all\")}>\n {strings.showLines(hidden, fmt(hidden))}\n </Button>\n ) : (\n <>\n {gap.atStart ? null : (\n <Button size=\"sm\" variant=\"ghost\" leadingIcon={<Icon name=\"arrow-down\" size=\"xs\" />} onClick={() => onExpand(\"down\")}>\n {strings.showMoreBelow(fmt(EXPAND_STEP))}\n </Button>\n )}\n {gap.atEnd ? null : (\n <Button size=\"sm\" variant=\"ghost\" leadingIcon={<Icon name=\"arrow-up\" size=\"xs\" />} onClick={() => onExpand(\"up\")}>\n {strings.showMoreAbove(fmt(EXPAND_STEP))}\n </Button>\n )}\n <Button size=\"sm\" variant=\"ghost\" onClick={() => onExpand(\"all\")}>\n {strings.showAll}\n </Button>\n <span aria-hidden>{folded}</span>\n </>\n )}\n </div>\n );\n}\n\ninterface GapRow {\n kind: \"gap\";\n hidden: number;\n}\n\n/**\n * DX-4041: folds every run of unchanged lines that sits further than `context`\n * lines from a change into one `gap` row. A line is kept when a changed line\n * is within `context` of it, which is what makes two close changes one hunk.\n * An all-unchanged diff folds to a single gap row when a `context` was asked\n * for, because nothing in it is worth reading.\n */\nfunction foldUnchanged(lines: DiffLine[], context: number | undefined): (DiffLine | GapRow)[] {\n if (context === undefined) return lines;\n const keep = lines.map(() => false);\n lines.forEach((line, index) => {\n if (line.kind === \"unchanged\") return;\n for (let k = Math.max(0, index - context); k <= Math.min(lines.length - 1, index + context); k++) keep[k] = true;\n });\n const rows: (DiffLine | GapRow)[] = [];\n let hidden = 0;\n lines.forEach((line, index) => {\n if (keep[index]) {\n if (hidden > 0) rows.push({ kind: \"gap\", hidden });\n hidden = 0;\n rows.push(line);\n } else {\n hidden++;\n }\n });\n if (hidden > 0) rows.push({ kind: \"gap\", hidden });\n return rows;\n}\n"],"names":["lineDiffRow","tv","MARKER","LineDiff","before","after","label","context","expandable","className","strings","useUiStrings","fmt","useNumberFormat","lines","useMemo","diffLines","splitLines","ExpandableRows","DEFAULT_CONTEXT","rows","foldUnchanged","jsx","cn","row","index","jsxs","DiffRow","line","gaps","foldGaps","reveals","setReveals","useState","gapAt","g","i","gap","top","bottom","hidden","gapState","k","GapControls","how","r","expand","NOTHING","onExpand","folded","EXPAND_STEP","Button","Icon","Fragment","keep"],"mappings":"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"}
@@ -0,0 +1,72 @@
1
+ import { jsx as i, jsxs as c } from "react/jsx-runtime";
2
+ import { useId as A } from "react";
3
+ import { createPortal as B } from "react-dom";
4
+ import { Badge as z } from "./Badge.js";
5
+ import { FilterMenu as E, FilterChips as g } from "./FilterMenu.js";
6
+ import { Icon as N } from "./Icon.js";
7
+ import { IconButton as H } from "./IconButton.js";
8
+ import { Popover as P, Tooltip as _ } from "./Popover.js";
9
+ import { SearchInput as j } from "./SearchInput.js";
10
+ import { useUiStrings as D } from "../lib/i18n/provider.js";
11
+ const b = 20;
12
+ function C({ searchLabel: a, searchPlaceholder: u, query: s, onQueryChange: r, onQueryCommit: o, search: w = "box", filters: l, children: I, controlsHost: d }) {
13
+ const S = D().listHeader, m = A(), t = a !== void 0 && s !== void 0 && r !== void 0, p = t && w === "button", e = (s ?? "").trim(), v = e.length > b, f = t ? (
14
+ /* `SearchInput` carries the x that empties the box. An emptied box is committed at once, never waiting for a blur the x's own click has already spent. */
15
+ /* @__PURE__ */ i(
16
+ j,
17
+ {
18
+ size: "sm",
19
+ value: s,
20
+ placeholder: u,
21
+ "aria-label": a,
22
+ onValueChange: (n) => {
23
+ r(n), n === "" && o?.("");
24
+ },
25
+ onKeyDown: o === void 0 ? void 0 : (n) => n.key === "Enter" && o(s),
26
+ onBlur: o === void 0 ? void 0 : () => o(s)
27
+ }
28
+ )
29
+ ) : null, h = /* @__PURE__ */ i(
30
+ z,
31
+ {
32
+ "data-search-chip": "",
33
+ icon: /* @__PURE__ */ i(N, { name: "search", size: "xs" }),
34
+ dismiss: {
35
+ label: S.removeSearch(e),
36
+ onDismiss: () => {
37
+ r?.(""), o?.("");
38
+ }
39
+ },
40
+ children: v ? `${e.slice(0, b).trimEnd()}…` : e
41
+ }
42
+ ), x = /* @__PURE__ */ c("div", { className: "flex flex-wrap items-center gap-2", children: [
43
+ t ? p ? /* @__PURE__ */ i(
44
+ P,
45
+ {
46
+ align: "start",
47
+ "aria-labelledby": m,
48
+ trigger: /* @__PURE__ */ i(H, { icon: /* @__PURE__ */ i(N, { name: "search", size: "sm" }), label: a, variant: e === "" ? "outline" : "solid", size: "sm" }),
49
+ children: /* @__PURE__ */ c("div", { className: "flex w-full min-w-0 flex-col gap-2", children: [
50
+ /* @__PURE__ */ i("span", { id: m, className: "sr-only", children: a }),
51
+ f
52
+ ] })
53
+ }
54
+ ) : (
55
+ /* The `Input` fills whatever box it is in (it has no wrapper class of its own), so the box carries the sizing. */
56
+ /* @__PURE__ */ i("div", { className: "min-w-0 flex-1 basis-40", children: f })
57
+ ) : null,
58
+ l !== void 0 && /* @__PURE__ */ i(E, { "aria-label": l.label, icon: l.icon, fields: l.fields, onClearAll: l.onClearAll }),
59
+ I
60
+ ] });
61
+ return /* @__PURE__ */ c("div", { className: "flex flex-col gap-2", children: [
62
+ d === void 0 ? x : d === null ? null : B(x, d),
63
+ p && e !== "" ? /* @__PURE__ */ c("div", { className: "flex min-w-0 flex-wrap items-center gap-1.5", children: [
64
+ v ? /* @__PURE__ */ i(_, { content: e, children: h }) : h,
65
+ l !== void 0 && /* @__PURE__ */ i(g, { className: "contents", fields: l.fields })
66
+ ] }) : l !== void 0 && /* @__PURE__ */ i(g, { fields: l.fields })
67
+ ] });
68
+ }
69
+ export {
70
+ C as ListHeader
71
+ };
72
+ //# sourceMappingURL=ListHeader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListHeader.js","sources":["../../src/components/ListHeader.tsx"],"sourcesContent":["import { useId, type ReactNode } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { useUiStrings } from \"../lib/i18n\";\nimport { Badge } from \"./Badge\";\nimport { FilterChips, FilterMenu, type FilterField } from \"./FilterMenu\";\nimport { Icon, type IconName } from \"./Icon\";\nimport { IconButton } from \"./IconButton\";\nimport { Popover, Tooltip } from \"./Popover\";\nimport { SearchInput } from \"./SearchInput\";\n\n/** DXUI-47: how many characters of an applied search its chip shows before cutting it short with an ellipsis; the full text is on hover. */\nconst SEARCH_CHIP_MAX_CHARS = 20;\n\n/* ----------------------------------------------------------------------------\n LIST HEADER (DX-5711, moved from the dashboard's CardList by DX-5374's header)\n\n THE ONE LIST HEADER: the search box, then the filter icon button, then the\n sort, in one row, with the applied filters as removable chips on a line of\n their own under it. Every list's search + filters + sort row is this, in the\n dashboard and in the docs viewer alike, so the filter pattern is one thing.\n The caller keeps the state (a URL, a store); this draws it. The sort is the\n caller's `SortMenu`, passed as children so it lands at the row's end.\n -------------------------------------------------------------------------- */\n\n/** A list's filters as `FilterMenu` and `FilterChips` draw them: the fields, the one step that turns them all off, and the control's name. */\nexport interface ListFilters {\n fields: readonly FilterField[];\n onClearAll: () => void;\n /** Names the filter button for assistive technology, e.g. \"Filter feedback\". */\n label: string;\n /** The button's icon when the list filters by one kind of thing (a comment thread's tags); the funnel otherwise. */\n icon?: IconName;\n}\n\nexport interface ListHeaderProps {\n /**\n * DXUI-97: the keyword search is optional. `searchLabel` (the box's accessible name), `searchPlaceholder`, `query` and `onQueryChange` are passed\n * together or not at all; a list with no keyword search (API keys, sessions Recent) passes none and the header draws no search box, button or chip.\n */\n searchLabel?: string;\n searchPlaceholder?: string;\n query?: string;\n onQueryChange?: (query: string) => void;\n /**\n * Told the box's text on Enter, when the box loses focus and when it is emptied (typed empty or cleared with its x button), for a list that\n * reads once per search and not once per keystroke.\n */\n onQueryCommit?: (query: string) => void;\n /**\n * DXUI-47: how the keyword search is drawn. `\"box\"` (the default) is the open search box. `\"button\"` is a search icon button, named by\n * `searchLabel`, that opens a popover holding the box; the applied search then shows as a short removable chip beside the filter\n * chips, and the button shows it is active. For a search that sits beside something else you type into (a comment thread), where an\n * open box reads as the place to write. The `query` / `onQueryChange` / `onQueryCommit` contract is the same in both.\n */\n search?: \"box\" | \"button\";\n /** The list's filters: ONE filter icon button right after the search box (before the sort), the applied ones as chips under the row. Never a row of `Select`s. */\n filters?: ListFilters;\n /** The controls at the row's end: the sort, and the caller's own. */\n children?: ReactNode;\n /**\n * DXUI-94: where the controls row (the search, the filter button, the caller's own controls and the sort) is drawn. Passed, the row goes into that\n * element, which a caller puts elsewhere (an overlay's title row) while the applied filters' chips stay under the header where it is; `null` is an\n * element that has not mounted yet and draws no controls for now. Omitted (the default), the row sits in the header as always.\n */\n controlsHost?: HTMLElement | null;\n}\n\nexport function ListHeader({ searchLabel, searchPlaceholder, query, onQueryChange, onQueryCommit, search = \"box\", filters, children, controlsHost }: ListHeaderProps) {\n const strings = useUiStrings().listHeader;\n const popoverNameId = useId();\n const hasSearch = searchLabel !== undefined && query !== undefined && onQueryChange !== undefined;\n const asButton = hasSearch && search === \"button\";\n const applied = (query ?? \"\").trim();\n const clipped = applied.length > SEARCH_CHIP_MAX_CHARS;\n const searchBox = !hasSearch ? null : (\n /* `SearchInput` carries the x that empties the box. An emptied box is committed at once, never waiting for a blur the x's own click has already spent. */\n <SearchInput\n size=\"sm\"\n value={query}\n placeholder={searchPlaceholder}\n aria-label={searchLabel}\n onValueChange={(next) => {\n onQueryChange(next);\n if (next === \"\") onQueryCommit?.(\"\");\n }}\n onKeyDown={onQueryCommit === undefined ? undefined : (event) => event.key === \"Enter\" && onQueryCommit(query)}\n onBlur={onQueryCommit === undefined ? undefined : () => onQueryCommit(query)}\n />\n );\n const chip = (\n <Badge\n data-search-chip=\"\"\n icon={<Icon name=\"search\" size=\"xs\" />}\n dismiss={{\n label: strings.removeSearch(applied),\n onDismiss: () => {\n onQueryChange?.(\"\");\n onQueryCommit?.(\"\");\n },\n }}\n >\n {clipped ? `${applied.slice(0, SEARCH_CHIP_MAX_CHARS).trimEnd()}…` : applied}\n </Badge>\n );\n\n const controls = (\n <div className=\"flex flex-wrap items-center gap-2\">\n {!hasSearch ? null : asButton ? (\n <Popover\n align=\"start\"\n aria-labelledby={popoverNameId}\n trigger={<IconButton icon={<Icon name=\"search\" size=\"sm\" />} label={searchLabel} variant={applied === \"\" ? \"outline\" : \"solid\"} size=\"sm\" />}\n >\n <div className=\"flex w-full min-w-0 flex-col gap-2\">\n <span id={popoverNameId} className=\"sr-only\">\n {searchLabel}\n </span>\n {searchBox}\n </div>\n </Popover>\n ) : (\n /* The `Input` fills whatever box it is in (it has no wrapper class of its own), so the box carries the sizing. */\n <div className=\"min-w-0 flex-1 basis-40\">{searchBox}</div>\n )}\n {filters !== undefined && <FilterMenu aria-label={filters.label} icon={filters.icon} fields={filters.fields} onClearAll={filters.onClearAll} />}\n {children}\n </div>\n );\n\n return (\n <div className=\"flex flex-col gap-2\">\n {controlsHost === undefined ? controls : controlsHost === null ? null : createPortal(controls, controlsHost)}\n {asButton && applied !== \"\" ? (\n <div className=\"flex min-w-0 flex-wrap items-center gap-1.5\">\n {clipped ? <Tooltip content={applied}>{chip}</Tooltip> : chip}\n {filters !== undefined && <FilterChips className=\"contents\" fields={filters.fields} />}\n </div>\n ) : (\n filters !== undefined && <FilterChips fields={filters.fields} />\n )}\n </div>\n );\n}\n"],"names":["SEARCH_CHIP_MAX_CHARS","ListHeader","searchLabel","searchPlaceholder","query","onQueryChange","onQueryCommit","search","filters","children","controlsHost","strings","useUiStrings","popoverNameId","useId","hasSearch","asButton","applied","clipped","searchBox","jsx","SearchInput","next","event","chip","Badge","Icon","controls","jsxs","Popover","IconButton","FilterMenu","createPortal","Tooltip","FilterChips"],"mappings":"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"}
@@ -0,0 +1,111 @@
1
+ import { jsx as a, jsxs as p } from "react/jsx-runtime";
2
+ import { tv as g } from "tailwind-variants";
3
+ import { cn as i } from "../lib/cn.js";
4
+ import { Spinner as h } from "./Spinner.js";
5
+ import { useUiStrings as f } from "../lib/i18n/provider.js";
6
+ const v = g({
7
+ base: [
8
+ "block bg-surface-inset",
9
+ /* A pulse, not a sweep, by default. A sweep everywhere reads as 2019-era,
10
+ and with sub-second queries the sweep frequently never completes — and a
11
+ half-finished sweep is the ugliest state a skeleton has. A pulse
12
+ degrades gracefully at any duration. */
13
+ "animate-pulse"
14
+ ],
15
+ variants: {
16
+ shape: {
17
+ text: "h-[1em] rounded-sm",
18
+ block: "rounded-md",
19
+ circle: "aspect-square rounded-full",
20
+ pill: "rounded-full"
21
+ },
22
+ /* Opt-in sweep for large hero or table regions, where the extra motion
23
+ reads as substantial rather than busy. */
24
+ sweep: { true: "dx-sweep animate-none", false: "" }
25
+ },
26
+ defaultVariants: { shape: "block", sweep: !1 }
27
+ });
28
+ function x({
29
+ shape: e,
30
+ sweep: r,
31
+ className: n,
32
+ width: s,
33
+ height: d,
34
+ style: c,
35
+ ref: o,
36
+ repeat: l
37
+ }) {
38
+ const m = f().loading, t = i(v({ shape: e, sweep: r }), n), u = { width: s, height: d, ...c };
39
+ return l && l > 1 ? /* @__PURE__ */ a("span", { ref: o, className: "flex flex-col gap-3", "aria-busy": "true", "aria-label": m.loading, children: Array.from({ length: l }, (N, b) => /* @__PURE__ */ a("span", { "aria-hidden": !0, className: t, style: u }, b)) }) : /* @__PURE__ */ a("span", { ref: o, "aria-hidden": !0, className: t, style: u });
40
+ }
41
+ function A({ lines: e = 3, className: r }) {
42
+ return /* @__PURE__ */ a("span", { className: i("flex flex-col gap-2", r), children: Array.from({ length: e }, (n, s) => /* @__PURE__ */ a(
43
+ x,
44
+ {
45
+ shape: "text",
46
+ className: s === e - 1 && e > 1 ? "w-[62%]" : "w-full"
47
+ },
48
+ s
49
+ )) });
50
+ }
51
+ function y({ active: e, message: r, children: n, className: s }) {
52
+ return /* @__PURE__ */ p("div", { className: i("relative", s), children: [
53
+ /* @__PURE__ */ a("div", { inert: e || void 0, children: n }),
54
+ e && /* @__PURE__ */ a(
55
+ "div",
56
+ {
57
+ className: i(
58
+ "absolute inset-0 z-(--z-overlay) grid place-items-center rounded-[inherit]",
59
+ /* `veil`, not `scrim`: a scrim is built to push a whole page back
60
+ behind a modal, and using it here lays a grey sheet over content
61
+ that is supposed to stay readable.
62
+
63
+ NO BACKDROP BLUR. A 1px blur is below the threshold where the eye
64
+ reads "blurred" and above the threshold where it reads "badly
65
+ rendered" — text underneath goes soft and appears to shimmer as
66
+ the veil fades. Dimming alone communicates "busy" without
67
+ touching how crisply anything is drawn. Blur belongs on a modal
68
+ scrim, at a radius large enough to be obviously deliberate. */
69
+ "bg-veil",
70
+ "animate-fade-in"
71
+ ),
72
+ children: /* @__PURE__ */ p(
73
+ "div",
74
+ {
75
+ role: "status",
76
+ "aria-live": "polite",
77
+ className: i(
78
+ "flex items-center gap-3 rounded-lg border border-border bg-surface-overlay",
79
+ "px-4 py-3 shadow-lg",
80
+ "animate-rise-in"
81
+ ),
82
+ children: [
83
+ /* @__PURE__ */ a(h, { size: "md", className: "text-accent" }),
84
+ r && /* @__PURE__ */ a("span", { className: "text-sm font-medium text-primary", children: r })
85
+ ]
86
+ }
87
+ )
88
+ }
89
+ )
90
+ ] });
91
+ }
92
+ function L({ loading: e, hasContent: r, skeleton: n, label: s, message: d, children: c, className: o }) {
93
+ const l = f().loading, m = e && !r, t = e;
94
+ return /* @__PURE__ */ a(
95
+ "div",
96
+ {
97
+ role: t ? "group" : void 0,
98
+ "aria-busy": t || void 0,
99
+ "aria-label": t ? s ?? l.loading : void 0,
100
+ className: o,
101
+ children: m ? n : /* @__PURE__ */ a(y, { active: e, message: d, children: c })
102
+ }
103
+ );
104
+ }
105
+ export {
106
+ L as LoadRegion,
107
+ y as LoadingOverlay,
108
+ x as Skeleton,
109
+ A as SkeletonText
110
+ };
111
+ //# sourceMappingURL=Loading.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Loading.js","sources":["../../src/components/Loading.tsx"],"sourcesContent":["import type { CSSProperties, ReactNode, Ref } from \"react\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\nimport { cn } from \"../lib/cn\";\nimport { useUiStrings } from \"../lib/i18n\";\nimport { Spinner } from \"./Spinner\";\n\n/* ============================================================================\n TWO DIFFERENT LOADS, TWO DIFFERENT TREATMENTS\n\n Loading from NOTHING and REPLACING what is already there are not the same\n event, and using one treatment for both is the most common loading mistake\n in a data-heavy UI:\n\n Nothing yet -> SKELETON. It reserves the layout, so arriving content\n does not shove the page around, and it previews the shape\n of what is coming.\n Already have -> REFRESH OVERLAY. Never a skeleton: swapping real data for\n grey bars destroys the context someone was reading, and\n makes a 200ms refresh feel like a page change. The\n existing content stays visible, dimmed, under a centred\n card.\n ========================================================================= */\n\nconst skeleton = tv({\n base: [\n \"block bg-surface-inset\",\n /* A pulse, not a sweep, by default. A sweep everywhere reads as 2019-era,\n and with sub-second queries the sweep frequently never completes — and a\n half-finished sweep is the ugliest state a skeleton has. A pulse\n degrades gracefully at any duration. */\n \"animate-pulse\",\n ],\n variants: {\n shape: {\n text: \"h-[1em] rounded-sm\",\n block: \"rounded-md\",\n circle: \"aspect-square rounded-full\",\n pill: \"rounded-full\",\n },\n /* Opt-in sweep for large hero or table regions, where the extra motion\n reads as substantial rather than busy. */\n sweep: { true: \"dx-sweep animate-none\", false: \"\" },\n },\n defaultVariants: { shape: \"block\", sweep: false },\n});\n\nexport interface SkeletonProps extends VariantProps<typeof skeleton> {\n className?: string;\n width?: string | number;\n height?: string | number;\n style?: CSSProperties;\n ref?: Ref<HTMLSpanElement>;\n /**\n * Stack this many bars in a column instead of rendering one (SG-833\n * slice 7) — for a loading LIST (a table's rows, a feed's cards), where the\n * shape being previewed is \"several of these\", not one field.\n *\n * Extracted because every consumer needing this had written the same three\n * lines by hand: `Array.from({ length: n }, (_, i) => <Skeleton key={i}\n * .../>)` inside a `flex flex-col gap-3` wrapper carrying `aria-busy`/\n * `aria-label=\"Loading\"` — gpt-manager's Demand Desk had exactly this as its\n * own `LoadingRows` component. `shape`/`sweep`/`className`/`width`/`height`\n * apply to EACH bar; `repeat` only changes how many render and how they are\n * laid out.\n *\n * 1 or omitted renders the plain single bar, unchanged from before this\n * prop existed — including staying `aria-hidden` rather than gaining the\n * wrapper's live-region treatment, so a lone field's skeleton doesn't start\n * announcing itself.\n */\n repeat?: number;\n}\n\nexport function Skeleton({\n shape,\n sweep,\n className,\n width,\n height,\n style,\n ref,\n repeat,\n}: SkeletonProps) {\n const strings = useUiStrings().loading;\n /* aria-hidden on every bar regardless of `repeat` — the LIVE REGION belongs\n on the wrapper below when there is one. A screen reader announcing\n \"loading\" once per bar turns a twelve-row table into twelve\n announcements; the bars are visual scaffolding, and only the region they\n fill is worth reporting. */\n const barClassName = cn(skeleton({ shape, sweep }), className);\n const barStyle = { width, height, ...style };\n\n if (repeat && repeat > 1) {\n return (\n <span ref={ref} className=\"flex flex-col gap-3\" aria-busy=\"true\" aria-label={strings.loading}>\n {Array.from({ length: repeat }, (_, i) => (\n <span key={i} aria-hidden className={barClassName} style={barStyle} />\n ))}\n </span>\n );\n }\n\n /* Unchanged from before `repeat` existed: one bar, `ref` on the one element\n rendered. */\n return <span ref={ref} aria-hidden className={barClassName} style={barStyle} />;\n}\n\nexport interface SkeletonTextProps {\n /** How many lines to draw. */\n lines?: number;\n className?: string;\n}\n\n/**\n * A paragraph-shaped skeleton.\n *\n * The last line is short. That single detail is what makes it read as text\n * rather than as a stack of bars — every real paragraph ends mid-line, and a\n * block of equal-length bars reads as a table.\n */\nexport function SkeletonText({ lines = 3, className }: SkeletonTextProps) {\n return (\n <span className={cn(\"flex flex-col gap-2\", className)}>\n {Array.from({ length: lines }, (_, i) => (\n <Skeleton\n key={i}\n shape=\"text\"\n className={i === lines - 1 && lines > 1 ? \"w-[62%]\" : \"w-full\"}\n />\n ))}\n </span>\n );\n}\n\nexport interface LoadingOverlayProps {\n /** Whether the overlay is showing. */\n active: boolean;\n /** Text inside the card. Keep it short — it sits over content being read. */\n message?: ReactNode;\n children: ReactNode;\n className?: string;\n}\n\n/**\n * Dims existing content and floats a card over it while that content is being\n * replaced.\n *\n * TWO DETAILS DO THE REAL WORK.\n *\n * The veil is `inert`, not `pointer-events: none`. Blocking the mouse alone\n * leaves every control underneath reachable by Tab and clickable by Enter, so\n * a keyboard user can act on data that is mid-replacement — which is exactly\n * the race the overlay exists to prevent. `inert` removes the subtree from the\n * tab order and the accessibility tree together.\n *\n * The card is OPAQUE while the veil is translucent. A translucent card over\n * translucent content produces text over text, which is unreadable at\n * precisely the moment someone is trying to work out what is happening.\n */\nexport function LoadingOverlay({ active, message, children, className }: LoadingOverlayProps) {\n return (\n <div className={cn(\"relative\", className)}>\n <div inert={active || undefined}>{children}</div>\n\n {active && (\n <div\n className={cn(\n \"absolute inset-0 z-(--z-overlay) grid place-items-center rounded-[inherit]\",\n /* `veil`, not `scrim`: a scrim is built to push a whole page back\n behind a modal, and using it here lays a grey sheet over content\n that is supposed to stay readable.\n\n NO BACKDROP BLUR. A 1px blur is below the threshold where the eye\n reads \"blurred\" and above the threshold where it reads \"badly\n rendered\" — text underneath goes soft and appears to shimmer as\n the veil fades. Dimming alone communicates \"busy\" without\n touching how crisply anything is drawn. Blur belongs on a modal\n scrim, at a radius large enough to be obviously deliberate. */\n \"bg-veil\",\n \"animate-fade-in\",\n )}\n >\n <div\n /* `polite`, never `assertive`: a refresh is not an emergency, and\n assertive would interrupt whatever the person is reading — the\n very content this overlay is protecting. */\n role=\"status\"\n aria-live=\"polite\"\n className={cn(\n \"flex items-center gap-3 rounded-lg border border-border bg-surface-overlay\",\n \"px-4 py-3 shadow-lg\",\n \"animate-rise-in\",\n )}\n >\n <Spinner size=\"md\" className=\"text-accent\" />\n {message && <span className=\"text-sm font-medium text-primary\">{message}</span>}\n </div>\n </div>\n )}\n </div>\n );\n}\n\nexport interface LoadRegionProps {\n /** True while the region's data is loading: the first load, or any later one (a filter, search, sort or page change, a refetch). */\n loading: boolean;\n /**\n * Whether the region has ever had content to show. This is the caller's fact, never inferred from `loading`: a region that mounts\n * idle and starts loading with nothing to show (a panel waiting on a choice, a load that failed) must still draw the skeleton.\n */\n hasContent: boolean;\n /** Drawn only while `loading` and there is no content. */\n skeleton: ReactNode;\n /** Accessible name of the region while it loads. Defaults to the library's \"Loading\". */\n label?: string;\n /** Text inside the overlay card, when `loading` over content. */\n message?: ReactNode;\n /** The content. It must keep rendering its last data while `loading`, so the overlay has something to sit on. */\n children: ReactNode;\n className?: string;\n}\n\n/**\n * The one decision between the two treatments above, for a list or panel that loads its own data: `loading && !hasContent` is the\n * skeleton, `loading && hasContent` is the content kept on screen under the refresh overlay, and anything else is the content.\n *\n * The content sits in one tree for the overlay and the idle states, so a reload starting remounts nothing and keeps focus and\n * scroll inside it. A region is `aria-busy` and named (`role=\"group\"`) exactly while it loads.\n *\n * NOT FOR A `DataTable`: it already takes `loading` (first load) and `refreshing` (a reload over rows) and draws both itself.\n * Wrapping one in this would stack a second overlay on its own.\n */\nexport function LoadRegion({ loading, hasContent, skeleton, label, message, children, className }: LoadRegionProps) {\n const strings = useUiStrings().loading;\n const showSkeleton = loading && !hasContent;\n const busy = loading;\n return (\n <div\n role={busy ? \"group\" : undefined}\n aria-busy={busy || undefined}\n aria-label={busy ? (label ?? strings.loading) : undefined}\n className={className}\n >\n {showSkeleton ? skeleton : <LoadingOverlay active={loading} message={message}>{children}</LoadingOverlay>}\n </div>\n );\n}\n"],"names":["skeleton","tv","Skeleton","shape","sweep","className","width","height","style","ref","repeat","strings","useUiStrings","barClassName","cn","barStyle","jsx","_","i","SkeletonText","lines","LoadingOverlay","active","message","children","jsxs","Spinner","LoadRegion","loading","hasContent","label","showSkeleton","busy"],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import { jsx as e } from "react/jsx-runtime";
2
+ import { memo as m, useMemo as i } from "react";
3
+ import { cn as a } from "../lib/cn.js";
4
+ import { CodeEditor as s, CodeEditorToolbar as c, CodeEditorCaption as l } from "./CodeEditor.js";
5
+ import { parseMarkdown as u } from "../lib/syntax/markdown/parse.js";
6
+ import { MarkdownNodes as p } from "../lib/syntax/markdown/render.js";
7
+ function f({ code: o, language: r, filename: d, streaming: n, className: t }) {
8
+ return /* @__PURE__ */ e(
9
+ s,
10
+ {
11
+ value: o,
12
+ language: r ?? void 0,
13
+ filename: d,
14
+ view: "source",
15
+ className: a("my-2", t),
16
+ toolbar: n ? /* @__PURE__ */ e(c, { children: /* @__PURE__ */ e(l, {}) }) : void 0
17
+ }
18
+ );
19
+ }
20
+ const g = (o) => /* @__PURE__ */ e(f, { code: o.code, language: o.language, streaming: o.open }), E = m(function({ children: r, className: d, renderCode: n }) {
21
+ const t = i(() => u(r), [r]);
22
+ return /* @__PURE__ */ e("div", { className: a("text-sm leading-relaxed text-secondary", d), children: /* @__PURE__ */ e(p, { nodes: t, renderCode: n ?? g }) });
23
+ });
24
+ export {
25
+ f as CodeBlock,
26
+ E as Markdown
27
+ };
28
+ //# sourceMappingURL=Markdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Markdown.js","sources":["../../src/components/Markdown.tsx"],"sourcesContent":["import { memo, useMemo } from \"react\";\nimport { cn } from \"../lib/cn\";\nimport { CodeEditor, CodeEditorCaption, CodeEditorToolbar } from \"./CodeEditor\";\nimport { parseMarkdown, MarkdownNodes } from \"../lib/syntax/markdown\";\nimport type { MdCodeRenderer } from \"../lib/syntax/markdown\";\n\n/* ============================================================================\n MARKDOWN — the one component that turns a markdown string into React.\n\n This is the public face of `lib/syntax/markdown`'s `parseMarkdown` +\n `MarkdownNodes`: a memoised parse and a default fenced-code renderer, so a\n consumer can write `<Markdown>{text}</Markdown>` without wiring the tree\n walk itself. Anything more specialised — the caret-aware WYSIWYG surface,\n the streaming chat variant — composes THIS component or the lower-level\n `parseMarkdown`/`MarkdownNodes` pair directly; neither one forks the parser.\n\n `renderCode` is left overridable (not just the default) for the same reason\n `MarkdownNodes` itself takes it as a prop: a docs page and a chat transcript\n can both want a fenced block to look different without either one forking\n this file.\n ========================================================================= */\n\nexport interface CodeBlockProps {\n code: string;\n language?: string | null;\n filename?: string;\n /** Still filling — suppresses the copy button, which would copy a fragment. */\n streaming?: boolean;\n className?: string;\n}\n\n/**\n * A fenced code block, rendered through the shared `CodeEditor` viewer.\n *\n * `view=\"source\"` is pinned rather than left to `CodeEditor`'s own default:\n * left alone, a fence whose language is literally `markdown` would flip\n * `CodeEditor` into ITS OWN rendered-preview mode, so a ```markdown block\n * quoted inside a document would render as prose nested inside prose instead\n * of the literal source the author fenced off. Every other language already\n * defaults to `\"source\"`, so this only changes behaviour for that one case.\n */\nexport function CodeBlock({ code, language, filename, streaming, className }: CodeBlockProps) {\n return (\n <CodeEditor\n value={code}\n language={language ?? undefined}\n filename={filename}\n view=\"source\"\n className={cn(\"my-2\", className)}\n /* While a block is still arriving, the toolbar keeps its caption and\n loses its copy button: copying a fragment gives you something that\n looks like code and does not run. Composing the toolbar is how the\n component says that, rather than a `hideCopy` boolean nobody would\n find. */\n toolbar={\n streaming ? (\n <CodeEditorToolbar>\n <CodeEditorCaption />\n </CodeEditorToolbar>\n ) : undefined\n }\n />\n );\n}\n\n/** `block.open` is a real field on every fenced-code node (parse.ts sets it\n for an unclosed fence, streaming or not) — reusing it here means a\n genuinely truncated document hides its copy button too, for the same\n reason a still-arriving one does, with no extra plumbing. */\nconst defaultRenderCode: MdCodeRenderer = (block) => (\n <CodeBlock code={block.code} language={block.language} streaming={block.open} />\n);\n\nexport interface MarkdownProps {\n children: string;\n className?: string;\n /** Defaults to a `CodeEditor`-backed viewer with a copy button. */\n renderCode?: MdCodeRenderer;\n}\n\n/**\n * Renders a complete markdown string as a document.\n *\n * This is the general-purpose entry point — the one nearly every consumer\n * wants: a card description, a comment, a retro field, a plan record. It\n * parses ONCE per `children` change and hands the tree straight to\n * `MarkdownNodes`; there is no second parser, no block-splitting of its own.\n */\nexport const Markdown = memo(function Markdown({ children, className, renderCode }: MarkdownProps) {\n const nodes = useMemo(() => parseMarkdown(children), [children]);\n return (\n <div className={cn(\"text-sm leading-relaxed text-secondary\", className)}>\n <MarkdownNodes nodes={nodes} renderCode={renderCode ?? defaultRenderCode} />\n </div>\n );\n});\n"],"names":["CodeBlock","code","language","filename","streaming","className","jsx","CodeEditor","cn","CodeEditorToolbar","CodeEditorCaption","defaultRenderCode","block","Markdown","memo","children","renderCode","nodes","useMemo","parseMarkdown","MarkdownNodes"],"mappings":";;;;;;AAyCO,SAASA,EAAU,EAAE,MAAAC,GAAM,UAAAC,GAAU,UAAAC,GAAU,WAAAC,GAAW,WAAAC,KAA6B;AAC5F,SACE,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,OAAON;AAAA,MACP,UAAUC,KAAY;AAAA,MACtB,UAAAC;AAAA,MACA,MAAK;AAAA,MACL,WAAWK,EAAG,QAAQH,CAAS;AAAA,MAM/B,SACED,IACE,gBAAAE,EAACG,KACC,UAAA,gBAAAH,EAACI,GAAA,EAAkB,GACrB,IACE;AAAA,IAAA;AAAA,EAAA;AAIZ;AAMA,MAAMC,IAAoC,CAACC,MACzC,gBAAAN,EAACN,GAAA,EAAU,MAAMY,EAAM,MAAM,UAAUA,EAAM,UAAU,WAAWA,EAAM,KAAA,CAAM,GAkBnEC,IAAWC,EAAK,SAAkB,EAAE,UAAAC,GAAU,WAAAV,GAAW,YAAAW,KAA6B;AACjG,QAAMC,IAAQC,EAAQ,MAAMC,EAAcJ,CAAQ,GAAG,CAACA,CAAQ,CAAC;AAC/D,SACE,gBAAAT,EAAC,OAAA,EAAI,WAAWE,EAAG,0CAA0CH,CAAS,GACpE,UAAA,gBAAAC,EAACc,GAAA,EAAc,OAAAH,GAAc,YAAYD,KAAcL,GAAmB,GAC5E;AAEJ,CAAC;"}