@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 @@
1
+ {"version":3,"file":"LineChart.js","sources":["../../../src/components/chart/LineChart.tsx"],"sourcesContent":["import { useMemo, useRef, useState, type KeyboardEvent, type PointerEvent, type ReactNode, type Ref } from \"react\";\nimport { cn } from \"../../lib/cn\";\nimport { useUiLocale, useUiStrings } from \"../../lib/i18n\";\nimport { dateFormat, numberFormat } from \"../../lib/intl-cache\";\nimport { CHART_SERIES_COUNT, chartSeriesColor } from \"../../lib/chart-palette\";\nimport { lineSeriesPaint, type LineSeriesPaint, type LineSeriesStyle } from \"./line-series-style\";\nimport { Tooltip } from \"../Popover\";\nimport {\n ChartEmpty,\n ChartTable,\n ChartTip,\n LegendItem,\n LegendList,\n LegendSwatch,\n LegendToggle,\n TipBody,\n ValueGrid,\n XTickLabel,\n defaultFormatValue,\n plotLayout,\n useElementWidth,\n useHiddenSeries,\n} from \"./shared\";\nimport { axisTicks } from \"./line-chart-axis\";\nimport { decimate, mergeInstants, nearestIndex, summarize, timeBounds, valueAt, type LinePoint } from \"./line-chart-scale\";\nimport { niceTicks } from \"./time-series-scale\";\n\n/* ============================================================================\n LINE CHART — non-stacked lines over real timestamps (DX-4933).\n\n THE FORM. A quantity that moves over time, one line per thing measured, where\n the question is \"what was it at this moment\", not \"how much was there in this\n span\". A session's context size per API call is the case it was made for. It\n is NOT `TimeSeriesChart`: that one takes values already summed into buckets and\n stacks them into a total, which is the wrong picture for anything that is not\n additive (two contexts do not add up to a context) and has no place for a\n point at an arbitrary instant.\n\n THE CALLER SUPPLIES INSTANTS. Each series is `{t, value}` points in strictly\n ascending epoch ms; nothing is bucketed, resampled, smoothed or interpolated\n between points when drawing, and a gap in time is a long segment, not a hole.\n This component fetches nothing and knows nothing about what the values are:\n `formatValue` is how a value reads and `formatTime` how an instant reads.\n\n COLOUR FOLLOWS POSITION, never rank: series take the categorical chart\n palette in input order, and hiding one never repaints the others. There is no\n \"Other\" fold on a line chart (nothing to sum into it), so a ninth series\n throws. Text wears ink tokens, never the series colour.\n\n THE VALUE AXIS starts at zero and is rounded up over what is visible plus every\n reference line, so a limit the data is approaching is always on the chart.\n\n REFERENCE LINES are horizontal, dashed, in a neutral ink and labelled in\n words at their right end: a line is never told apart from a series by colour.\n\n MARKERS are diamonds on a series at an instant, with the caller's label and\n content in a tooltip. A marker whose time falls between two points sits on the\n straight line between them. Each is its own keyboard stop.\n\n READING A VALUE. The plot is one tab stop. Hover moves a cursor to the nearest\n instant any visible series has a point at; the arrow keys, Home and End move it\n by instant and PageUp/PageDown by a tenth of them. The cursor's readout (each\n visible series' nearest point, with that point's own instant when it differs)\n is a tooltip and a polite live region. The accessible name of the plot is a\n stable summary, and a visually hidden table gives every series' count, first\n and last instant, lowest and highest value.\n\n MANY POINTS cost no DOM: a series is one path (thinned to the pixel columns by\n `decimate`, which keeps each column's extremes), and there is one hover surface\n however many points there are. Points are dotted only while there are few\n enough to count.\n\n NO MOTION. Nothing here animates.\n ========================================================================= */\n\nexport type { LinePoint } from \"./line-chart-scale\";\nexport type { LineSeriesStyle } from \"./line-series-style\";\n\nexport interface LineSeries {\n /** Unique within the chart. */\n key: string;\n label: string;\n /**\n * DXUI-43: a line style in place of the palette colour. `\"striped\"` is a black-and-white striped line (ink over surface, so it reads in\n * light and dark); `\"danger\"` is the danger (red) token; `\"dashed\"` is a long-dash line in the accent token (DXUI-50). Unset keeps the palette colour for the series' position.\n */\n style?: LineSeriesStyle;\n /** Strictly ascending `t` (epoch ms), finite `value` >= 0 — anything else throws. May be empty. */\n points: readonly LinePoint[];\n}\n\n/** A horizontal line at a value, e.g. the model's context window. */\nexport interface LineReference {\n /** Unique within the chart. */\n id: string;\n /** Finite and >= 0, in the same unit as the series' values. */\n value: number;\n /** Said beside the line and in the hidden list. */\n label: string;\n}\n\n/** A point of interest on a series, e.g. a compaction. */\nexport interface LineMarker {\n /** Unique within the chart. */\n id: string;\n /** A `LineSeries.key`. */\n series: string;\n /** Epoch ms; must fall within that series' first and last point. */\n t: number;\n /** Names the marker in its tooltip, its accessible name and the hidden list. */\n label: string;\n /** Shown under the label and the time in the marker's tooltip. */\n content?: ReactNode;\n}\n\nexport interface LineChartProps {\n /** What the chart measures, e.g. \"Context size\". Names the group and captions the table. */\n label: string;\n /** At most 8, in palette order. */\n series: readonly LineSeries[];\n referenceLines?: readonly LineReference[];\n markers?: readonly LineMarker[];\n /** How a raw value reads in the tooltip, the readout and the table. @default locale-formatted number */\n formatValue?: (value: number) => string;\n /** How a value reads on the y axis; use a compact form here. @default `formatValue` */\n formatAxis?: (value: number) => string;\n /** How an instant reads in the tooltip, the readout and the table. @default medium date and time in the viewer's locale */\n formatTime?: (t: number) => string;\n /** How an instant reads on the x axis, on one line. @default a time of day, with the date where the day changes */\n formatAxisTime?: (t: number) => string;\n /** IANA zone instants are labelled in, e.g. \"UTC\". @default the viewer's */\n timeZone?: string;\n /** Plot height in px. @default 240 */\n height?: number;\n /** Said when there is nothing to draw. @default the built-in \"No data\" */\n emptyLabel?: string;\n className?: string;\n ref?: Ref<HTMLDivElement>;\n}\n\nconst MARGIN = { top: 12, right: 12, bottom: 36 };\nconst LINE_WIDTH = 2;\nconst DOT_RADIUS = 2.5;\n/** A series of one point is only its dot, so the dot is larger. */\nconst LONE_DOT_RADIUS = 4;\n/** Past this many points a series is a line only: dots would be a texture, and a DOM node each. */\nconst DOT_MAX = 60;\nconst MARKER_RADIUS = 6;\nconst MARKER_HIT_RADIUS = 12;\nconst REFERENCE_DASH = \"6 4\";\n/** A reference label that would sit above the plot's top edge is set under its line instead. */\nconst REFERENCE_LABEL_ROOM = 14;\n/** How many instants PageUp / PageDown skip: a tenth of them, at least one. */\nconst PAGE_DIVISOR = 10;\n\ninterface Shown {\n series: LineSeries;\n color: string;\n paint: LineSeriesPaint;\n}\n\nfunction validate(props: LineChartProps): void {\n const { series, referenceLines = [], markers = [] } = props;\n if (series.length > CHART_SERIES_COUNT) {\n throw new Error(`LineChart: at most ${CHART_SERIES_COUNT} series (the categorical hues); got ${series.length}.`);\n }\n const keys = new Set<string>();\n for (const s of series) {\n if (keys.has(s.key)) throw new Error(`LineChart: duplicate series key \"${s.key}\".`);\n keys.add(s.key);\n s.points.forEach((p, i) => {\n if (!Number.isFinite(p.t)) throw new Error(`LineChart: \"${s.key}\" point ${i} has t ${p.t}; instants are finite epoch ms.`);\n if (i > 0 && p.t <= s.points[i - 1]!.t) throw new Error(`LineChart: \"${s.key}\" instants must be strictly ascending (point ${i}).`);\n if (!Number.isFinite(p.value) || p.value < 0) throw new Error(`LineChart: \"${s.key}\" has value ${p.value}; values must be finite and >= 0.`);\n });\n }\n const refs = new Set<string>();\n for (const r of referenceLines) {\n if (refs.has(r.id)) throw new Error(`LineChart: duplicate reference line id \"${r.id}\".`);\n refs.add(r.id);\n if (!Number.isFinite(r.value) || r.value < 0) throw new Error(`LineChart: reference line \"${r.id}\" has value ${r.value}; values must be finite and >= 0.`);\n }\n const ids = new Set<string>();\n for (const m of markers) {\n if (ids.has(m.id)) throw new Error(`LineChart: duplicate marker id \"${m.id}\".`);\n ids.add(m.id);\n const target = series.find((s) => s.key === m.series);\n if (!target) throw new Error(`LineChart: marker \"${m.id}\" names series \"${m.series}\", which is not in series.`);\n const first = target.points[0]?.t;\n const last = target.points[target.points.length - 1]?.t;\n if (first === undefined || last === undefined || !Number.isFinite(m.t) || m.t < first || m.t > last) {\n throw new Error(`LineChart: marker \"${m.id}\" at ${m.t} is outside series \"${m.series}\" (${first} to ${last}).`);\n }\n }\n}\n\n/** A path through `points` as `M x,y L x,y ...` with the numbers rounded to a hundredth of a pixel. */\nfunction pathThrough(points: readonly LinePoint[], x: (t: number) => number, y: (v: number) => number): string {\n return points.map((p, i) => `${i === 0 ? \"M\" : \"L\"}${x(p.t).toFixed(2)},${y(p.value).toFixed(2)}`).join(\"\");\n}\n\n/** A diamond centred on (cx, cy): the one mark shape that is not a circle, so a marker is never mistaken for a data point. */\nfunction diamond(cx: number, cy: number, r: number): string {\n return `M${cx},${cy - r}L${cx + r},${cy}L${cx},${cy + r}L${cx - r},${cy}Z`;\n}\n\n/** The highest value among the given series' points and the reference lines, 0 when there are none. */\nfunction highest(series: readonly LineSeries[], referenceLines: readonly LineReference[]): number {\n let max = 0;\n for (const s of series) for (const p of s.points) max = Math.max(max, p.value);\n for (const r of referenceLines) max = Math.max(max, r.value);\n return max;\n}\n\nexport function LineChart(props: LineChartProps) {\n validate(props);\n const { label, series, height = 240, emptyLabel, className, ref } = props;\n const words = useUiStrings().chart.lineChart;\n if (series.every((s) => s.points.length === 0)) {\n return <ChartEmpty ref={ref} label={label} text={emptyLabel ?? words.empty} height={height} className={className} />;\n }\n return <LinePlot {...props} />;\n}\n\n/** The chart itself, for a chart that has at least one point. Hooks live here so the empty state costs none. */\nfunction LinePlot(props: LineChartProps) {\n const {\n label,\n series,\n referenceLines = [],\n markers = [],\n formatValue: formatCaller,\n formatTime: formatTimeCaller,\n formatAxisTime,\n timeZone,\n height = 240,\n className,\n ref,\n } = props;\n const locale = useUiLocale();\n const words = useUiStrings().chart.lineChart;\n const formatValue = formatCaller ?? ((value: number) => defaultFormatValue(value, locale));\n const formatAxis = props.formatAxis ?? formatValue;\n const formatTime = formatTimeCaller ?? ((t: number) => dateFormat(locale, { dateStyle: \"medium\", timeStyle: \"medium\", timeZone }).format(t));\n const formatCount = (n: number) => numberFormat(locale, {}).format(n);\n\n const measureRef = useRef<HTMLDivElement>(null);\n const measured = useElementWidth(measureRef);\n const [hidden, toggle] = useHiddenSeries();\n const [cursor, setCursor] = useState<number | null>(null);\n const [focused, setFocused] = useState(false);\n const [markerStop, setMarkerStop] = useState(0);\n\n const colored: Shown[] = series.map((s, index) => {\n const paint = lineSeriesPaint(s.style, chartSeriesColor(index));\n return { series: s, color: paint.color, paint };\n });\n const shown = colored.filter((c) => !hidden.has(c.series.key));\n\n /* Everything that costs a pass over the points is computed when the data or the visible set changes, never on a cursor move. */\n const instants = useMemo(() => mergeInstants(series.filter((s) => !hidden.has(s.key)).map((s) => s.points)), [series, hidden]);\n const bounds = useMemo(() => timeBounds(series.map((s) => s.points))!, [series]);\n const dataMax = useMemo(() => highest(series.filter((s) => !hidden.has(s.key)), referenceLines), [series, hidden, referenceLines]);\n const summaries = useMemo(() => series.map((s) => summarize(s.points)), [series]);\n\n /* ---- scales ---- */\n const { min: minT, max: maxT } = bounds;\n const span = maxT - minT;\n const zero = dataMax === 0;\n const nice = niceTicks(dataMax);\n // Nothing to scale: the axis is its zero line alone, never an invented \"1 token\" top tick.\n const yTicks = zero ? [0] : nice.ticks;\n const yMax = nice.max;\n\n const axisLabels = yTicks.map(formatAxis);\n const { left, W, plotW, plotH } = plotLayout(measured, height, MARGIN, axisLabels);\n const x = (t: number) => (span === 0 ? left + plotW / 2 : left + (plotW * (t - minT)) / span);\n const y = (v: number) => MARGIN.top + plotH * (1 - v / yMax);\n const base = y(0);\n\n const xTicks = useMemo(() => axisTicks(minT, maxT, plotW, timeZone, locale, formatAxisTime), [minT, maxT, plotW, timeZone, locale, formatAxisTime]);\n\n /* ---- the cursor ---- */\n const cursorAt = (t: number): number | null => (instants.length === 0 ? null : instants[nearestIndex(instants, t)]!);\n const readoutParts =\n cursor === null\n ? []\n : shown.flatMap((c) => {\n if (c.series.points.length === 0) return [];\n const p = c.series.points[nearestIndex(c.series.points, cursor)]!;\n return [{ shown: c, point: p, at: p.t === cursor ? null : formatTime(p.t) }];\n });\n const readout =\n cursor === null ? \"\" : words.readout(formatTime(cursor), readoutParts.map((r) => words.readoutPart(r.shown.series.label, formatValue(r.point.value), r.at)));\n\n /** Pointer move, and a tap or click: the cursor goes to the instant under the pointer. */\n const readAt = (e: PointerEvent<SVGRectElement>) => {\n if (instants.length === 0) return;\n const rect = e.currentTarget.getBoundingClientRect();\n setCursor(cursorAt(minT + ((e.clientX - rect.left) / plotW) * span));\n };\n\n const onKeyDown = (e: KeyboardEvent<SVGGElement>) => {\n if (e.key === \"Escape\") {\n setCursor(null);\n return;\n }\n if (instants.length === 0) return;\n const i = cursor === null ? 0 : nearestIndex(instants, cursor);\n const page = Math.max(1, Math.ceil(instants.length / PAGE_DIVISOR));\n const to =\n e.key === \"ArrowRight\" ? i + 1\n : e.key === \"ArrowLeft\" ? i - 1\n : e.key === \"PageDown\" ? i + page\n : e.key === \"PageUp\" ? i - page\n : e.key === \"Home\" ? 0\n : e.key === \"End\" ? instants.length - 1\n : null;\n if (to === null) return;\n e.preventDefault();\n setCursor(instants[Math.min(instants.length - 1, Math.max(0, to))]!);\n };\n\n /* ---- the marks ---- */\n /* The paths are rebuilt only when the data, the width or the axis changes — not on every cursor move. */\n const paths = useMemo(\n () => new Map(series.map((s) => [s.key, pathThrough(decimate(s.points, x, plotW), x, y)])),\n // eslint-disable-next-line react-hooks/exhaustive-deps -- x and y are pure functions of exactly the values listed\n [series, minT, span, left, plotW, yMax, plotH],\n );\n const dotted = (points: readonly LinePoint[]) => points.length > 0 && points.length <= DOT_MAX;\n\n const tipLines = readoutParts.map((r) => (\n <span key={r.shown.series.key} className=\"flex items-center gap-1.5\">\n <span aria-hidden style={{ background: r.shown.paint.swatch }} className=\"h-[3px] w-3 shrink-0 rounded-full\" />\n <span>{words.readoutPart(r.shown.series.label, formatValue(r.point.value), r.at)}</span>\n </span>\n ));\n\n /* The visible markers in time order: the order the arrow keys walk them in. */\n const shownMarkers = markers\n .flatMap((m) => {\n const owner = shown.find((c) => c.series.key === m.series);\n return owner ? [{ marker: m, owner, value: valueAt(owner.series.points, m.t)! }] : [];\n })\n .sort((a, b) => a.marker.t - b.marker.t || a.marker.id.localeCompare(b.marker.id));\n const stop = Math.min(markerStop, Math.max(0, shownMarkers.length - 1));\n\n const onMarkerKeyDown = (e: KeyboardEvent<SVGGElement>, i: number) => {\n const to = e.key === \"ArrowRight\" ? i + 1 : e.key === \"ArrowLeft\" ? i - 1 : e.key === \"Home\" ? 0 : e.key === \"End\" ? shownMarkers.length - 1 : null;\n if (to === null) return;\n e.preventDefault();\n const target = Math.min(shownMarkers.length - 1, Math.max(0, to));\n setMarkerStop(target);\n (e.currentTarget.parentElement?.querySelector(`[data-marker-index=\"${target}\"]`) as SVGGElement | null)?.focus();\n };\n\n const legend = series.length >= 2;\n\n return (\n <div ref={ref} role=\"group\" aria-label={label} className={cn(\"relative flex w-full min-w-0 flex-col gap-3 overflow-clip\", className)}>\n <div ref={measureRef} className=\"w-full min-w-0\">\n <svg width={W} height={height} viewBox={`0 0 ${W} ${height}`} data-line-chart className=\"block max-w-full overflow-visible\">\n {/* The grid and both axes: hairline, solid, recessive. The zero line is the baseline. */}\n <g aria-hidden>\n <ValueGrid ticks={yTicks} labels={axisLabels} left={left} right={W - MARGIN.right} y={y} />\n {xTicks.map((tick) => (\n <XTickLabel key={tick.t} at={tick.t} x={x(tick.t)} y={base + 14} primary={tick.primary} secondary={tick.secondary} />\n ))}\n </g>\n\n {/* Reference lines sit under the data, so a line that reaches one stays visible. */}\n {referenceLines.map((r) => {\n const ry = y(r.value);\n const under = ry - MARGIN.top < REFERENCE_LABEL_ROOM;\n return (\n <g key={r.id} aria-hidden>\n <line\n data-reference={r.id}\n x1={left}\n x2={W - MARGIN.right}\n y1={ry}\n y2={ry}\n strokeWidth={1.5}\n strokeDasharray={REFERENCE_DASH}\n className=\"stroke-border-strong\"\n />\n <text\n data-reference-label={r.id}\n x={W - MARGIN.right - 4}\n y={under ? ry + 12 : ry - 5}\n textAnchor=\"end\"\n strokeWidth={3}\n className=\"fill-secondary stroke-surface text-2xs [paint-order:stroke]\"\n >\n {r.label}\n </text>\n </g>\n );\n })}\n\n {shown.map((c) => (\n <g key={c.series.key}>\n {c.series.points.length > 0 && c.paint.underlay !== undefined && (\n <path\n data-line-underlay={c.series.key}\n d={paths.get(c.series.key)}\n fill=\"none\"\n stroke={c.paint.underlay}\n strokeWidth={LINE_WIDTH}\n strokeLinejoin=\"round\"\n />\n )}\n {c.series.points.length > 0 && (\n <path\n data-line={c.series.key}\n d={paths.get(c.series.key)}\n fill=\"none\"\n stroke={c.color}\n strokeWidth={LINE_WIDTH}\n strokeDasharray={c.paint.dash}\n strokeLinejoin=\"round\"\n strokeLinecap={c.paint.dash === undefined ? \"round\" : \"butt\"}\n />\n )}\n {dotted(c.series.points) &&\n c.series.points.map((p) => (\n <circle\n key={p.t}\n data-dot={c.series.key}\n cx={x(p.t)}\n cy={y(p.value)}\n r={c.series.points.length === 1 ? LONE_DOT_RADIUS : DOT_RADIUS}\n fill={c.color}\n className=\"stroke-surface\"\n strokeWidth={1}\n />\n ))}\n </g>\n ))}\n\n {/* The plot is one tab stop; the hover surface is the one element that hears the pointer however many points there are. */}\n <g\n data-plot\n role=\"img\"\n tabIndex={0}\n aria-label={words.plot(label)}\n onFocus={() => {\n setFocused(true);\n setCursor((c) => c ?? instants[0] ?? null);\n }}\n onBlur={() => {\n setFocused(false);\n setCursor(null);\n }}\n onKeyDown={onKeyDown}\n className=\"outline-none [&:focus-visible>[data-focus-ring]]:stroke-border-interactive\"\n >\n <rect\n data-surface\n x={left}\n y={MARGIN.top}\n width={plotW}\n height={plotH}\n fill=\"transparent\"\n style={{ touchAction: \"pan-y\" }}\n onPointerMove={readAt}\n onPointerDown={readAt}\n onPointerLeave={(e) => {\n // A finger that lifts leaves the surface at once; the reading it took stays until focus moves on.\n if (!focused && e.pointerType !== \"touch\") setCursor(null);\n }}\n />\n {cursor !== null && (\n <g aria-hidden className=\"pointer-events-none\">\n <line data-cursor={cursor} x1={x(cursor)} x2={x(cursor)} y1={MARGIN.top} y2={base} strokeWidth={1} className=\"stroke-border-strong\" />\n {readoutParts.map((r) => (\n <circle\n key={r.shown.series.key}\n data-cursor-dot={r.shown.series.key}\n cx={x(r.point.t)}\n cy={y(r.point.value)}\n r={DOT_RADIUS + 1.5}\n fill={r.shown.color}\n className=\"stroke-surface\"\n strokeWidth={2}\n />\n ))}\n </g>\n )}\n <rect\n data-focus-ring\n x={left}\n y={MARGIN.top}\n width={plotW}\n height={plotH}\n fill=\"none\"\n strokeWidth={2}\n rx={4}\n stroke=\"transparent\"\n className=\"pointer-events-none\"\n />\n </g>\n\n {/* The tooltip's anchor: a 1px mark on the cursor, moved with it. It hears nothing; the open state is the cursor's. */}\n <Tooltip content={<TipBody label={cursor === null ? \"\" : formatTime(cursor)} lines={tipLines} />} open={cursor !== null} onOpenChange={() => undefined}>\n <rect data-anchor x={cursor === null ? left : x(cursor)} y={MARGIN.top} width={1} height={1} fill=\"transparent\" aria-hidden className=\"pointer-events-none\" />\n </Tooltip>\n\n {shown.length === 0 && (\n <text data-all-hidden x={left + plotW / 2} y={MARGIN.top + plotH / 2} textAnchor=\"middle\" dy=\"0.32em\" className=\"fill-tertiary text-sm\">\n {words.allHidden}\n </text>\n )}\n\n {/* Markers last, so they are above the hover surface and take their own pointer and focus. They are one Tab stop between them:\n the arrow keys, Home and End walk them in time order, so a session with dozens of compactions is not dozens of stops. */}\n {shownMarkers.map(({ marker: m, owner, value }, i) => {\n const mx = x(m.t);\n const my = y(value);\n const when = formatTime(m.t);\n return (\n <ChartTip key={m.id} content={<TipBody label={m.label} lines={[when, ...(m.content === undefined ? [] : [m.content])]} />}>\n <g\n data-marker={m.id}\n data-marker-index={i}\n data-t={m.t}\n data-value={value}\n role=\"img\"\n tabIndex={i === stop ? 0 : -1}\n aria-label={words.marker(m.label, owner.series.label, when)}\n onFocusCapture={() => setMarkerStop(i)}\n onKeyDown={(e) => onMarkerKeyDown(e, i)}\n className=\"cursor-pointer outline-none [&:focus-visible>[data-focus-ring]]:stroke-border-interactive\"\n >\n <circle cx={mx} cy={my} r={MARKER_HIT_RADIUS} fill=\"transparent\" />\n <path d={diamond(mx, my, MARKER_RADIUS)} fill={owner.color} strokeWidth={2} strokeLinejoin=\"round\" className=\"stroke-surface\" />\n <circle data-focus-ring cx={mx} cy={my} r={MARKER_RADIUS + 4} fill=\"none\" strokeWidth={2} stroke=\"transparent\" />\n </g>\n </ChartTip>\n );\n })}\n </svg>\n </div>\n\n {legend && (\n <LegendList label={words.legend}>\n {colored.map((c) => {\n const off = hidden.has(c.series.key);\n return (\n <LegendItem key={c.series.key} id={c.series.key}>\n <LegendToggle name={words.showSeries(c.series.label)} off={off} onToggle={() => toggle(c.series.key)} className={cn(off && \"line-through\")}>\n <LegendSwatch color={c.color} swatch={c.paint.swatch} off={off} className=\"h-[3px] w-4 shrink-0 rounded-full border\" />\n <span className=\"truncate\">{c.series.label}</span>\n </LegendToggle>\n </LegendItem>\n );\n })}\n </LegendList>\n )}\n\n {/* The cursor's words, announced as it moves. Empty (and silent) when there is no cursor. */}\n <div data-readout role=\"status\" aria-live=\"polite\" className=\"sr-only\">\n {readout}\n </div>\n\n {/* Firefox paints a table caption outside the table's own sr-only clip; the wrapper clips it. */}\n <div className=\"sr-only\">\n <ChartTable\n caption={label}\n columns={[words.columnPoints, words.columnFrom, words.columnTo, words.columnLowest, words.columnHighest]}\n rows={series.map((s, i) => {\n const sum = summaries[i]!;\n return {\n key: s.key,\n header: s.label,\n cells:\n sum.count === 0\n ? [formatCount(0), \"\", \"\", \"\", \"\"]\n : [formatCount(sum.count), formatTime(sum.first!), formatTime(sum.last!), formatValue(sum.lowest!), formatValue(sum.highest!)],\n };\n })}\n />\n {referenceLines.length > 0 && (\n <ul data-reference-list aria-label={words.referenceLines}>\n {referenceLines.map((r) => (\n <li key={r.id}>{words.referenceLine(r.label, formatValue(r.value))}</li>\n ))}\n </ul>\n )}\n {markers.length > 0 && (\n <ul data-marker-list aria-label={words.markers}>\n {markers.map((m) => (\n <li key={m.id}>{words.marker(m.label, series.find((s) => s.key === m.series)!.label, formatTime(m.t))}</li>\n ))}\n </ul>\n )}\n </div>\n </div>\n );\n}\n"],"names":["MARGIN","LINE_WIDTH","DOT_RADIUS","LONE_DOT_RADIUS","DOT_MAX","MARKER_RADIUS","MARKER_HIT_RADIUS","REFERENCE_DASH","REFERENCE_LABEL_ROOM","PAGE_DIVISOR","validate","props","series","referenceLines","markers","CHART_SERIES_COUNT","keys","s","p","i","refs","r","ids","m","target","first","last","pathThrough","points","x","y","diamond","cx","cy","highest","max","LineChart","label","height","emptyLabel","className","ref","words","useUiStrings","jsx","ChartEmpty","LinePlot","formatCaller","formatTimeCaller","formatAxisTime","timeZone","locale","useUiLocale","formatValue","value","defaultFormatValue","formatAxis","formatTime","t","dateFormat","formatCount","n","numberFormat","measureRef","useRef","measured","useElementWidth","hidden","toggle","useHiddenSeries","cursor","setCursor","useState","focused","setFocused","markerStop","setMarkerStop","colored","index","paint","lineSeriesPaint","chartSeriesColor","shown","c","instants","useMemo","mergeInstants","bounds","timeBounds","dataMax","summaries","summarize","minT","maxT","span","zero","nice","niceTicks","yTicks","yMax","axisLabels","left","W","plotW","plotH","plotLayout","v","base","xTicks","axisTicks","cursorAt","nearestIndex","readoutParts","readout","readAt","rect","onKeyDown","page","to","paths","decimate","dotted","tipLines","jsxs","shownMarkers","owner","valueAt","a","b","stop","onMarkerKeyDown","legend","cn","ValueGrid","tick","XTickLabel","ry","under","Tooltip","TipBody","mx","my","when","ChartTip","e","LegendList","off","LegendItem","LegendToggle","LegendSwatch","ChartTable","sum"],"mappings":"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"}
@@ -0,0 +1,141 @@
1
+ import { jsxs as k, jsx as t } from "react/jsx-runtime";
2
+ import { useRef as K, useState as _, useLayoutEffect as j } from "react";
3
+ import { cn as S } from "../../lib/cn.js";
4
+ import { CHART_SERIES_COUNT as z, chartSeriesColor as D } from "../../lib/chart-palette.js";
5
+ import { assertChartData as L, ChartTip as V, TipBody as $, ChartTable as I, rowKey as O, OTHER_KEY as U, defaultFormatValue as q, formatShare as H } from "./shared.js";
6
+ import { labelsToDrop as M } from "./share-bar-labels.js";
7
+ import { useUiLocale as F, useUiStrings as X } from "../../lib/i18n/provider.js";
8
+ const Y = 4;
9
+ function G(i, u) {
10
+ const c = i.reduce((a, r) => a + r.value, 0), h = i.slice(0, z).map((a, r) => ({
11
+ key: O(a.id),
12
+ id: a.id,
13
+ label: a.label,
14
+ value: a.value,
15
+ color: a.color ?? D(r),
16
+ share: c > 0 ? a.value / c : 0,
17
+ other: !1
18
+ })), m = i.slice(z);
19
+ if (m.length > 0) {
20
+ const a = m.reduce((r, n) => r + n.value, 0);
21
+ h.push({
22
+ key: U,
23
+ id: "other",
24
+ label: u,
25
+ value: a,
26
+ color: "var(--text-tertiary)",
27
+ share: c > 0 ? a / c : 0,
28
+ other: !0
29
+ });
30
+ }
31
+ return h;
32
+ }
33
+ function le({ segments: i, label: u, formatValue: c, legend: h = !0, className: m, ref: a }) {
34
+ const r = F(), n = X().chart, b = c ?? ((e) => q(e, r)), d = (e) => H(e, r);
35
+ L("ShareBar", i);
36
+ const f = G(i, n.other), o = f.filter((e) => e.value > 0), C = h && f.length >= 2, w = C && o.length <= Y, N = K(null), [x, B] = _(/* @__PURE__ */ new Set()), A = o.map((e) => `${e.key}:${e.value}`).join("|");
37
+ return j(() => {
38
+ const e = N.current;
39
+ if (!e) {
40
+ B((l) => l.size === 0 ? l : /* @__PURE__ */ new Set());
41
+ return;
42
+ }
43
+ const p = new Map(o.map((l) => [l.key, l.share])), R = () => {
44
+ const l = e.getBoundingClientRect(), E = [...e.querySelectorAll("[data-label-key]")].map((s) => {
45
+ const y = s.getBoundingClientRect(), T = s.dataset.labelKey;
46
+ return {
47
+ key: T,
48
+ share: p.get(T),
49
+ center: y.left - l.left + y.width / 2,
50
+ width: s.firstElementChild.getBoundingClientRect().width
51
+ };
52
+ }), v = l.width > 0 && E.every((s) => s.width > 0) ? M(E, l.width) : /* @__PURE__ */ new Set();
53
+ B((s) => s.size === v.size && [...v].every((y) => s.has(y)) ? s : v);
54
+ };
55
+ R();
56
+ const g = new ResizeObserver(R);
57
+ return g.observe(e), e.querySelectorAll("[data-label-key]").forEach((l) => g.observe(l.firstElementChild)), () => g.disconnect();
58
+ }, [w, A, r]), /* @__PURE__ */ k("div", { ref: a, role: "group", "aria-label": u, className: S("flex w-full min-w-0 flex-col gap-2", m), children: [
59
+ /* @__PURE__ */ k("div", { "data-share-bar": !0, className: "flex w-full gap-[2px]", children: [
60
+ o.map((e, p) => /* @__PURE__ */ t(
61
+ V,
62
+ {
63
+ content: /* @__PURE__ */ t($, { label: e.label, lines: [b(e.value), d(e.share)] }),
64
+ children: /* @__PURE__ */ t(
65
+ "div",
66
+ {
67
+ role: "img",
68
+ tabIndex: 0,
69
+ "aria-label": n.shareBar.segment(e.label, b(e.value), d(e.share)),
70
+ "data-segment": e.other ? void 0 : e.id,
71
+ "data-other": e.other || void 0,
72
+ "data-share": e.share,
73
+ style: { flex: `${e.value} 1 0%` },
74
+ className: "flex h-6 min-w-1 items-center",
75
+ children: /* @__PURE__ */ t(
76
+ "span",
77
+ {
78
+ "data-mark": !0,
79
+ style: { backgroundColor: e.color },
80
+ className: S(
81
+ "block h-3 w-full",
82
+ p === 0 && "rounded-s-[4px]",
83
+ p === o.length - 1 && "rounded-e-[4px]"
84
+ )
85
+ }
86
+ )
87
+ }
88
+ )
89
+ },
90
+ e.key
91
+ )),
92
+ o.length === 0 && /* @__PURE__ */ t("div", { className: "h-6 w-full", "aria-hidden": !0 })
93
+ ] }),
94
+ w && /* @__PURE__ */ t("div", { ref: N, "aria-hidden": !0, className: "flex w-full gap-[2px]", "data-direct-labels": !0, children: o.map((e) => (
95
+ /* The label is centred under its segment and never truncated: a clipped "3%" reads "3",
96
+ which is a wrong number. A tiny segment's label overflows its box on both sides; the fit
97
+ rule drops it (into the legend) when that would carry it past the bar's ends. */
98
+ /* @__PURE__ */ t(
99
+ "span",
100
+ {
101
+ "data-label-key": e.key,
102
+ style: { flex: `${e.value} 1 0%` },
103
+ className: "flex min-w-1 justify-center",
104
+ children: /* @__PURE__ */ t(
105
+ "span",
106
+ {
107
+ "data-label-dropped": x.has(e.key) || void 0,
108
+ className: S(
109
+ "shrink-0 whitespace-nowrap text-2xs font-medium tabular-nums text-secondary",
110
+ x.has(e.key) && "invisible"
111
+ ),
112
+ children: d(e.share)
113
+ }
114
+ )
115
+ },
116
+ e.key
117
+ )
118
+ )) }),
119
+ C && /* @__PURE__ */ t("ul", { "aria-hidden": !0, role: "list", "data-legend": !0, className: "flex flex-wrap gap-x-4 gap-y-1", children: f.map((e) => /* @__PURE__ */ k("li", { className: "flex min-w-0 items-center gap-1.5 text-xs text-secondary", children: [
120
+ /* @__PURE__ */ t("span", { "aria-hidden": !0, "data-swatch": !0, style: { backgroundColor: e.color }, className: "size-2.5 shrink-0 rounded-[2px]" }),
121
+ /* @__PURE__ */ t("span", { className: "truncate", children: e.label }),
122
+ w && x.has(e.key) && /* @__PURE__ */ t("span", { "data-legend-share": !0, className: "shrink-0 font-medium tabular-nums", children: d(e.share) })
123
+ ] }, e.key)) }),
124
+ /* @__PURE__ */ t(
125
+ I,
126
+ {
127
+ caption: u,
128
+ columns: [n.shareBar.columnSegment, n.shareBar.columnValue, n.shareBar.columnShare],
129
+ rows: f.map((e) => ({
130
+ key: e.key,
131
+ header: e.label,
132
+ cells: [b(e.value), d(e.share)]
133
+ }))
134
+ }
135
+ )
136
+ ] });
137
+ }
138
+ export {
139
+ le as ShareBar
140
+ };
141
+ //# sourceMappingURL=ShareBar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ShareBar.js","sources":["../../../src/components/chart/ShareBar.tsx"],"sourcesContent":["import { useLayoutEffect, useRef, useState, type Ref } from \"react\";\nimport { cn } from \"../../lib/cn\";\nimport { useUiLocale, useUiStrings } from \"../../lib/i18n\";\nimport { CHART_SERIES_COUNT, chartSeriesColor } from \"../../lib/chart-palette\";\nimport {\n ChartTable,\n ChartTip,\n TipBody,\n OTHER_KEY,\n assertChartData,\n defaultFormatValue,\n formatShare,\n rowKey,\n} from \"./shared\";\nimport { labelsToDrop, type LabelBox } from \"./share-bar-labels\";\n\n/* ============================================================================\n SHARE BAR — one horizontal 100% bar: how a whole divides into parts (DX-3963).\n\n THE FORM. A part-to-whole question with a handful of parts is one stacked\n bar, not a pie: lengths on a common baseline are read more accurately than\n angles, and the bar costs a line of height instead of a square.\n\n COLOUR IS NEVER THE ONLY CUE. Every segment is also a focusable `img` named\n \"label: value, share\", a legend row, a tooltip with the same three facts, and\n a row in a visually hidden table. Hues come from the categorical chart\n palette (`styles/chart-palette.css`) in input order, never cycled; the 9th\n segment onward folds into a neutral \"Other\" rather than inventing a ninth hue.\n A segment's colour follows its POSITION in the input, so the caller sorting\n (or filtering) is what decides which entity wears which hue.\n\n TEXT WEARS INK, NEVER THE SERIES COLOUR. A swatch is a coloured box beside\n the text; the text itself is `text-primary` / `text-secondary`.\n\n THE GEOMETRY, pinned by test: segments are separated by a 2px gap (the\n surface shows through it), only the two ENDS of the bar are rounded (4px,\n anchored to the baseline), and the interior joins are square.\n\n A DIRECT LABEL IS DRAWN ONLY WHERE IT FITS (DXUI-5). Each label is centred under its\n segment, never truncated (a clipped \"3%\" would read \"3\"). When two thin neighbours\n would print their labels over each other, the label of the SMALLER share is not drawn\n under the bar and its share moves into its legend row instead, so no share is lost.\n A label wider than its edge segment that would leave the bar is dropped the same way.\n The decision is by measurement, not segment count: `labelsToDrop` (share-bar-labels.ts), re-run whenever\n the bar or a label resizes.\n\n ZERO. A zero-value segment stays in the legend and the table (it is a fact)\n and is not drawn. When everything is zero there is no bar to divide, so the\n track is empty and every share reads `0%`, never `NaN%`.\n ========================================================================= */\n\nexport interface ShareBarSegment {\n /** Unique within the bar. */\n id: string;\n label: string;\n /** Finite and >= 0 — anything else throws. */\n value: number;\n /** Any CSS colour. Wins over the palette hue the segment's position would get. */\n color?: string;\n}\n\nexport interface ShareBarProps {\n segments: readonly ShareBarSegment[];\n /** What the bar measures, e.g. \"Model share\". Names the group and captions the table. */\n label: string;\n /** How a raw value reads in the tooltip and the table. @default locale-formatted number */\n formatValue?: (value: number) => string;\n /**\n * DXUI-26: draw the legend (and the direct share labels that lead into it) under the bar. `false` draws the bar\n * alone, with neither in the DOM, for a surface that names the segments elsewhere (a hover popover). The segments\n * keep their accessible names, tooltips and the hidden table either way. @default true\n */\n legend?: boolean;\n className?: string;\n ref?: Ref<HTMLDivElement>;\n}\n\n/** At or under this many drawn segments each one is labelled with its share directly. */\nconst DIRECT_LABEL_MAX = 4;\n\ninterface Row {\n key: string;\n id: string;\n label: string;\n value: number;\n color: string;\n share: number;\n other: boolean;\n}\n\nfunction toRows(segments: readonly ShareBarSegment[], otherLabel: string): Row[] {\n const total = segments.reduce((sum, s) => sum + s.value, 0);\n const rows: Row[] = segments.slice(0, CHART_SERIES_COUNT).map((s, i) => ({\n key: rowKey(s.id),\n id: s.id,\n label: s.label,\n value: s.value,\n color: s.color ?? chartSeriesColor(i),\n share: total > 0 ? s.value / total : 0,\n other: false,\n }));\n const rest = segments.slice(CHART_SERIES_COUNT);\n if (rest.length > 0) {\n const value = rest.reduce((sum, s) => sum + s.value, 0);\n rows.push({\n key: OTHER_KEY,\n id: \"other\",\n label: otherLabel,\n value,\n color: \"var(--text-tertiary)\",\n share: total > 0 ? value / total : 0,\n other: true,\n });\n }\n return rows;\n}\n\nexport function ShareBar({ segments, label, formatValue: formatCaller, legend: showLegend = true, className, ref }: ShareBarProps) {\n const locale = useUiLocale();\n const strings = useUiStrings().chart;\n const formatValue = formatCaller ?? ((value: number) => defaultFormatValue(value, locale));\n const share = (fraction: number) => formatShare(fraction, locale);\n assertChartData(\"ShareBar\", segments);\n const rows = toRows(segments, strings.other);\n const drawn = rows.filter((r) => r.value > 0);\n const legend = showLegend && rows.length >= 2;\n const direct = legend && drawn.length <= DIRECT_LABEL_MAX;\n const labelsRef = useRef<HTMLDivElement>(null);\n const [dropped, setDropped] = useState<ReadonlySet<string>>(new Set());\n\n // DXUI-5: measure the printed labels against the bar and drop the ones that would touch or leave it. One read\n // pass per resize (no write between reads), and state changes only when the dropped set actually does. Keyed on\n // what is drawn (keys and values), not on the `segments` array, so a caller passing a fresh equal array each\n // render keeps the same observer. CONTRACT with the JSX below: each label is a `[data-label-key]` cell whose\n // `firstElementChild` is the printed text; the cells' flex-grow puts the cell centre under its segment.\n const drawnKey = drawn.map((r) => `${r.key}:${r.value}`).join(\"|\");\n useLayoutEffect(() => {\n const el = labelsRef.current;\n if (!el) {\n setDropped((prev) => (prev.size === 0 ? prev : new Set()));\n return;\n }\n const shareByKey = new Map(drawn.map((r) => [r.key, r.share]));\n const measure = () => {\n const bar = el.getBoundingClientRect();\n const boxes: LabelBox[] = [...el.querySelectorAll<HTMLElement>(\"[data-label-key]\")].map((cell) => {\n const cellRect = cell.getBoundingClientRect();\n const key = cell.dataset.labelKey!;\n return {\n key,\n share: shareByKey.get(key)!,\n center: cellRect.left - bar.left + cellRect.width / 2,\n width: cell.firstElementChild!.getBoundingClientRect().width,\n };\n });\n // No layout yet (first paint, a hidden tab, or an environment that does no layout): nothing is measurable, so nothing is dropped.\n const measurable = bar.width > 0 && boxes.every((b) => b.width > 0);\n const next = measurable ? labelsToDrop(boxes, bar.width) : new Set<string>();\n setDropped((prev) => (prev.size === next.size && [...next].every((k) => prev.has(k)) ? prev : next));\n };\n measure();\n const ro = new ResizeObserver(measure);\n ro.observe(el);\n el.querySelectorAll(\"[data-label-key]\").forEach((c) => ro.observe(c.firstElementChild!));\n return () => ro.disconnect();\n // `drawn` is covered by `drawnKey`: equal keys and values give equal rows.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [direct, drawnKey, locale]);\n\n return (\n <div ref={ref} role=\"group\" aria-label={label} className={cn(\"flex w-full min-w-0 flex-col gap-2\", className)}>\n {/* The 2px gap IS the surface showing through: the container paints nothing. */}\n <div data-share-bar className=\"flex w-full gap-[2px]\">\n {drawn.map((r, i) => (\n <ChartTip\n key={r.key}\n content={<TipBody label={r.label} lines={[formatValue(r.value), share(r.share)]} />}\n >\n <div\n role=\"img\"\n tabIndex={0}\n aria-label={strings.shareBar.segment(r.label, formatValue(r.value), share(r.share))}\n data-segment={r.other ? undefined : r.id}\n data-other={r.other || undefined}\n data-share={r.share}\n /* Proportional by flex-grow over a zero basis, so the 2px gaps come out of the\n free space and the lengths stay exactly value/total. `min-w-1` keeps a tiny\n segment visible and focusable instead of a sub-pixel sliver. */\n style={{ flex: `${r.value} 1 0%` }}\n /* The hit target is 24px tall; the mark inside it is 12px. */\n className=\"flex h-6 min-w-1 items-center\"\n >\n <span\n data-mark\n style={{ backgroundColor: r.color }}\n className={cn(\n \"block h-3 w-full\",\n i === 0 && \"rounded-s-[4px]\",\n i === drawn.length - 1 && \"rounded-e-[4px]\",\n )}\n />\n </div>\n </ChartTip>\n ))}\n {drawn.length === 0 && <div className=\"h-6 w-full\" aria-hidden />}\n </div>\n\n {direct && (\n <div ref={labelsRef} aria-hidden className=\"flex w-full gap-[2px]\" data-direct-labels>\n {drawn.map((r) => (\n /* The label is centred under its segment and never truncated: a clipped \"3%\" reads \"3\",\n which is a wrong number. A tiny segment's label overflows its box on both sides; the fit\n rule drops it (into the legend) when that would carry it past the bar's ends. */\n <span\n key={r.key}\n data-label-key={r.key}\n style={{ flex: `${r.value} 1 0%` }}\n className=\"flex min-w-1 justify-center\"\n >\n {/* Hidden, not removed, when it does not fit: it keeps its width so a resize can bring it back. */}\n <span\n data-label-dropped={dropped.has(r.key) || undefined}\n className={cn(\n \"shrink-0 whitespace-nowrap text-2xs font-medium tabular-nums text-secondary\",\n dropped.has(r.key) && \"invisible\",\n )}\n >\n {share(r.share)}\n </span>\n </span>\n ))}\n </div>\n )}\n\n {legend && (\n <ul aria-hidden role=\"list\" data-legend className=\"flex flex-wrap gap-x-4 gap-y-1\">\n {rows.map((r) => (\n <li key={r.key} className=\"flex min-w-0 items-center gap-1.5 text-xs text-secondary\">\n <span aria-hidden data-swatch style={{ backgroundColor: r.color }} className=\"size-2.5 shrink-0 rounded-[2px]\" />\n <span className=\"truncate\">{r.label}</span>\n {direct && dropped.has(r.key) && (\n <span data-legend-share className=\"shrink-0 font-medium tabular-nums\">\n {share(r.share)}\n </span>\n )}\n </li>\n ))}\n </ul>\n )}\n\n <ChartTable\n caption={label}\n columns={[strings.shareBar.columnSegment, strings.shareBar.columnValue, strings.shareBar.columnShare]}\n rows={rows.map((r) => ({\n key: r.key,\n header: r.label,\n cells: [formatValue(r.value), share(r.share)],\n }))}\n />\n </div>\n );\n}\n"],"names":["DIRECT_LABEL_MAX","toRows","segments","otherLabel","total","sum","s","rows","CHART_SERIES_COUNT","i","rowKey","chartSeriesColor","rest","value","OTHER_KEY","ShareBar","label","formatCaller","showLegend","className","ref","locale","useUiLocale","strings","useUiStrings","formatValue","defaultFormatValue","share","fraction","formatShare","assertChartData","drawn","r","legend","direct","labelsRef","useRef","dropped","setDropped","useState","drawnKey","useLayoutEffect","el","prev","shareByKey","measure","bar","boxes","cell","cellRect","key","next","b","labelsToDrop","k","ro","c","jsxs","cn","jsx","ChartTip","TipBody","ChartTable"],"mappings":"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"}
@@ -0,0 +1,305 @@
1
+ import { jsx as o, jsxs as g, Fragment as je } from "react/jsx-runtime";
2
+ import { useId as Ke, useRef as Ue, useState as G } from "react";
3
+ import { cn as A } from "../../lib/cn.js";
4
+ import { CHART_SERIES_COUNT as Ve, chartSeriesColor as De } from "../../lib/chart-palette.js";
5
+ import { useHiddenSeries as Xe, useElementWidth as Ge, ChartEmpty as Oe, plotLayout as Ze, ValueGrid as Qe, XTickLabel as qe, ChartTip as Ye, LegendList as Je, LegendSwatch as et, LegendItem as tt, LegendToggle as me, ChartTable as rt, defaultFormatValue as ot, OTHER_KEY as nt, TipBody as at, LEGEND_FRAME as st } from "./shared.js";
6
+ import { LABEL_CHAR_PX as lt, LABEL_PAD_PX as it } from "./label-metrics.js";
7
+ import { bucketIndexAt as fe, niceTicks as ct, timeFormatters as ht } from "./time-series-scale.js";
8
+ import { useUiLocale as dt, useUiStrings as ut } from "../../lib/i18n/provider.js";
9
+ const mt = 24, K = 2, ge = 4, $ = { top: 8, right: 8, bottom: 36 }, F = 6;
10
+ function bt(l) {
11
+ const { buckets: a, bucketMs: i, series: u, blocks: c = [], blockKinds: h = [] } = l;
12
+ if (a.length > 0 && (i === null || !Number.isFinite(i) || i <= 0))
13
+ throw new Error(`TimeSeriesChart: bucketMs must be a positive number when there are buckets; got ${i}.`);
14
+ a.forEach((n, m) => {
15
+ if (!Number.isFinite(n)) throw new Error(`TimeSeriesChart: bucket ${m} is ${n}; buckets are finite epoch ms.`);
16
+ if (m > 0 && n <= a[m - 1]) throw new Error(`TimeSeriesChart: buckets must be strictly ascending (bucket ${m}).`);
17
+ });
18
+ const k = /* @__PURE__ */ new Set();
19
+ for (const n of u) {
20
+ if (k.has(n.key)) throw new Error(`TimeSeriesChart: duplicate series key "${n.key}".`);
21
+ if (k.add(n.key), n.points.length !== a.length)
22
+ throw new Error(`TimeSeriesChart: "${n.key}" has ${n.points.length} points for ${a.length} buckets.`);
23
+ for (const m of n.points)
24
+ if (!Number.isFinite(m) || m < 0) throw new Error(`TimeSeriesChart: "${n.key}" has value ${m}; values must be finite and >= 0.`);
25
+ }
26
+ if (h.length > 2) throw new Error(`TimeSeriesChart: at most 2 block kinds (45 and 135 degree hatching); got ${h.length}.`);
27
+ const M = new Set(h.map((n) => n.key)), N = /* @__PURE__ */ new Set();
28
+ for (const n of c) {
29
+ if (N.has(n.id)) throw new Error(`TimeSeriesChart: duplicate block id "${n.id}".`);
30
+ if (N.add(n.id), !Number.isFinite(n.value) || n.value < 0) throw new Error(`TimeSeriesChart: block "${n.id}" has value ${n.value}; values must be finite and >= 0.`);
31
+ if (!M.has(n.kind)) throw new Error(`TimeSeriesChart: block "${n.id}" has kind "${n.kind}", which is not in blockKinds.`);
32
+ if (i === null || fe(a, i, n.at) < 0)
33
+ throw new Error(`TimeSeriesChart: block "${n.id}" at ${n.at} falls inside no bucket.`);
34
+ }
35
+ }
36
+ function pt(l, a, i) {
37
+ const u = [], c = [];
38
+ for (const h of l)
39
+ h.role === "other" || u.length >= Ve ? c.push(h) : u.push({ key: h.key, label: h.label, color: De(u.length), other: !1, points: [...h.points] });
40
+ if (c.length > 0) {
41
+ const h = c.filter((k) => k.role === "other");
42
+ u.push({
43
+ key: nt,
44
+ label: h.length === c.length && h.length === 1 ? h[0].label : i,
45
+ color: "var(--text-tertiary)",
46
+ other: !0,
47
+ points: Array.from({ length: a }, (k, M) => c.reduce((N, n) => N + n.points[M], 0))
48
+ });
49
+ }
50
+ return u;
51
+ }
52
+ function be(l, a, i, u) {
53
+ const c = Math.min(ge, i / 2, u);
54
+ return `M${l},${a + u}V${a + c}Q${l},${a} ${l + c},${a}H${l + i - c}Q${l + i},${a} ${l + i},${a + c}V${a + u}Z`;
55
+ }
56
+ function pe(l, a) {
57
+ return `url(#${a}-hatch-${l})`;
58
+ }
59
+ function ke(l) {
60
+ return `repeating-linear-gradient(${l === 0 ? 45 : 135}deg, var(--text-tertiary) 0 1.5px, var(--surface-inset) 1.5px 4px)`;
61
+ }
62
+ function St(l) {
63
+ bt(l);
64
+ const {
65
+ buckets: a,
66
+ bucketMs: i,
67
+ series: u,
68
+ blocks: c = [],
69
+ blockKinds: h = [],
70
+ label: k,
71
+ variant: M = "bar",
72
+ formatValue: N,
73
+ timeZone: n,
74
+ onSelectSeries: m,
75
+ height: R = 240,
76
+ emptyLabel: ye,
77
+ zeroLabel: ve,
78
+ className: O,
79
+ ref: Z
80
+ } = l, Q = dt(), q = ut().chart, b = q.timeSeriesChart, we = ye ?? b.empty, xe = ve ?? b.zero, y = N ?? ((t) => ot(t, Q)), $e = l.formatAxis ?? y, U = Ke().replace(/:/g, ""), Y = Ue(null), [J, Ce] = Xe(), [Se, ee] = G(null), [Ne, te] = G(null), [Te, re] = G(0), Me = Ge(Y), f = a.length, v = pt(u, f, q.other), H = new Map(h.map((t, e) => [t.key, e])), _ = Array.from({ length: f }, () => []);
81
+ for (const t of c) _[fe(a, i, t.at)].push(t);
82
+ if (f === 0 || v.length === 0 && c.length === 0)
83
+ return /* @__PURE__ */ o(Oe, { ref: Z, label: k, text: we, height: R, className: O });
84
+ const V = v.filter((t) => !J.has(t.key)), W = (t) => [
85
+ ...V.filter((e) => e.points[t] > 0).map((e) => ({ id: e.key, label: e.label, color: e.color, value: e.points[t], block: null, member: e })),
86
+ ..._[t].filter((e) => e.value > 0).map((e) => ({ id: `block:${e.id}`, label: e.label, color: "", value: e.value, block: e, member: null }))
87
+ ], z = a.map((t, e) => W(e).reduce((r, s) => r + s.value, 0)), oe = Math.max(0, ...z), ne = oe === 0, ae = ct(oe), se = ne ? [0] : ae.ticks, Ee = ae.max, B = ht(i, Q, n), le = se.map($e), { left: I, W: D, plotW: ie, plotH: E } = Ze(Me, R, $, le), w = ie / f, X = Math.max(1, Math.min(mt, w - K)), C = (t) => I + w * (t + 0.5), T = (t) => $.top + E * (1 - t / Ee), ce = T(0), P = M === "area" && f > 1, he = a.map((t, e) => B.tick(t, e === 0 ? null : a[e - 1])), Le = Math.max(...he.map((t) => Math.max(t.primary.length, (t.secondary ?? "").length))), Ae = Math.max(1, Math.ceil((Le * lt + it) / w)), de = Se ?? Ne, Fe = (t, e) => {
88
+ const r = t.key === "ArrowRight" ? e + 1 : t.key === "ArrowLeft" ? e - 1 : t.key === "Home" ? 0 : t.key === "End" ? f - 1 : null;
89
+ if (r === null) return;
90
+ t.preventDefault();
91
+ const s = Math.min(f - 1, Math.max(0, r));
92
+ re(s), t.currentTarget.parentElement?.querySelector(`[data-bucket-index="${s}"]`)?.focus();
93
+ }, L = m === void 0 ? void 0 : (t) => t.other ? void 0 : () => m(t.key), Re = (t) => {
94
+ const e = W(t);
95
+ return /* @__PURE__ */ o(
96
+ at,
97
+ {
98
+ label: B.full(a[t]),
99
+ lines: [
100
+ ...[...e].reverse().map((r) => /* @__PURE__ */ g("span", { className: "flex items-center gap-1.5", children: [
101
+ r.block ? /* @__PURE__ */ o("span", { "aria-hidden": !0, style: { background: ke(H.get(r.block.kind)) }, className: "size-2.5 shrink-0 rounded-[2px]" }) : /* @__PURE__ */ o("span", { "aria-hidden": !0, style: { backgroundColor: r.color }, className: "size-2.5 shrink-0 rounded-[2px]" }),
102
+ /* @__PURE__ */ o("span", { className: "font-medium text-primary", children: y(r.value) }),
103
+ /* @__PURE__ */ o("span", { children: r.label })
104
+ ] }, r.id)),
105
+ /* @__PURE__ */ o("span", { className: "font-medium text-primary", children: b.total(y(z[t])) }, "total")
106
+ ]
107
+ }
108
+ );
109
+ }, He = (t) => {
110
+ const e = W(t).map((r) => b.bucketPart(r.label, y(r.value)));
111
+ return b.bucket(B.full(a[t]), e, y(z[t]));
112
+ }, ue = (t) => {
113
+ const e = W(t);
114
+ let r = 0;
115
+ return e.map((s, p) => {
116
+ const x = T(r + s.value), d = T(r) - (p > 0 ? K : 0);
117
+ return r += s.value, { piece: s, top: x, height: Math.max(d - x, 1), last: p === e.length - 1 };
118
+ });
119
+ }, _e = (t) => ue(t).map(({ piece: e, top: r, height: s, last: p }) => {
120
+ const x = C(t) - X / 2, d = e.member && L ? L(e.member) : void 0, S = {
121
+ fill: e.block ? pe(H.get(e.block.kind), U) : e.color,
122
+ "data-segment": e.member && !e.member.other ? e.member.key : void 0,
123
+ "data-other": e.member?.other || void 0,
124
+ "data-block": e.block?.id,
125
+ onClick: d,
126
+ className: A(d && "cursor-pointer hover:opacity-80")
127
+ };
128
+ return p ? /* @__PURE__ */ o("path", { d: be(x, r, X, s), ...S }, e.id) : /* @__PURE__ */ o("rect", { x, y: r, width: X, height: s, ...S }, e.id);
129
+ }), We = (() => {
130
+ if (!P) return null;
131
+ const t = new Array(f).fill(0);
132
+ return V.map((e) => {
133
+ const r = [...t];
134
+ for (let d = 0; d < f; d++) t[d] += e.points[d];
135
+ if (e.points.every((d) => d === 0)) return null;
136
+ const p = [...t].map((d, S) => `${S === 0 ? "M" : "L"}${C(S)},${T(d)}`).join("") + [...r].reverse().map((d, S) => `L${C(f - 1 - S)},${T(d)}`).join("") + "Z", x = L?.(e);
137
+ return /* @__PURE__ */ o(
138
+ "path",
139
+ {
140
+ d: p,
141
+ fill: e.color,
142
+ "data-segment": e.other ? void 0 : e.key,
143
+ "data-other": e.other || void 0,
144
+ style: { stroke: "var(--surface)", strokeWidth: K, strokeLinejoin: "round" },
145
+ onClick: x,
146
+ className: A(x && "cursor-pointer hover:opacity-80")
147
+ },
148
+ e.key
149
+ );
150
+ });
151
+ })(), ze = (t) => ue(t).map(({ piece: e, top: r, height: s }) => {
152
+ if (!e.block) return null;
153
+ const p = Math.max(1, w - K);
154
+ return /* @__PURE__ */ o(
155
+ "path",
156
+ {
157
+ d: be(C(t) - p / 2, r, p, s),
158
+ fill: pe(H.get(e.block.kind), U),
159
+ "data-block": e.block.id
160
+ },
161
+ e.id
162
+ );
163
+ }), j = h.filter((t) => c.some((e) => e.kind === t.key)), Be = v.length + j.length >= 2, Ie = [...v.map((t) => t.label), ...j.map((t) => t.label), b.columnTotal], Pe = (t) => v.reduce((e, r) => e + r.points[t], 0) + _[t].reduce((e, r) => e + r.value, 0);
164
+ return (
165
+ /* The hidden table is absolutely positioned and as wide as its widest row; clipping at this box
166
+ keeps it out of the page's scroll width. */
167
+ /* @__PURE__ */ g("div", { ref: Z, role: "group", "aria-label": k, className: A("relative flex w-full min-w-0 flex-col gap-3 overflow-clip", O), children: [
168
+ /* @__PURE__ */ o("div", { ref: Y, className: "w-full min-w-0", children: /* @__PURE__ */ g(
169
+ "svg",
170
+ {
171
+ width: D,
172
+ height: R,
173
+ viewBox: `0 0 ${D} ${R}`,
174
+ role: "group",
175
+ "aria-label": b.plot(k),
176
+ "data-time-series": !0,
177
+ "data-variant": P ? "area" : "bar",
178
+ className: "block max-w-full overflow-visible",
179
+ children: [
180
+ /* @__PURE__ */ o("defs", { children: [0, 1].map((t) => /* @__PURE__ */ g(
181
+ "pattern",
182
+ {
183
+ id: `${U}-hatch-${t}`,
184
+ patternUnits: "userSpaceOnUse",
185
+ width: F,
186
+ height: F,
187
+ patternTransform: `rotate(${t === 0 ? 45 : -45})`,
188
+ children: [
189
+ /* @__PURE__ */ o("rect", { width: F, height: F, fill: "var(--surface-inset)" }),
190
+ /* @__PURE__ */ o("line", { x1: "0", y1: "0", x2: "0", y2: F, stroke: "var(--text-tertiary)", strokeWidth: "1.5" })
191
+ ]
192
+ },
193
+ t
194
+ )) }),
195
+ /* @__PURE__ */ g("g", { "aria-hidden": !0, children: [
196
+ /* @__PURE__ */ o(Qe, { ticks: se, labels: le, left: I, right: D - $.right, y: T }),
197
+ he.map(
198
+ (t, e) => e % Ae === 0 ? /* @__PURE__ */ o(qe, { at: a[e], x: C(e), y: ce + 14, primary: t.primary, secondary: t.secondary }, a[e]) : null
199
+ )
200
+ ] }),
201
+ We,
202
+ a.map((t, e) => {
203
+ const r = I + w * e;
204
+ return /* @__PURE__ */ o(Ye, { content: Re(e), children: /* @__PURE__ */ g(
205
+ "g",
206
+ {
207
+ role: "img",
208
+ tabIndex: e === Te ? 0 : -1,
209
+ "aria-label": He(e),
210
+ "data-bucket": t,
211
+ "data-bucket-index": e,
212
+ "data-total": z[e],
213
+ onPointerEnter: () => ee(e),
214
+ onPointerLeave: () => ee(null),
215
+ onFocusCapture: () => {
216
+ te(e), re(e);
217
+ },
218
+ onBlurCapture: () => te(null),
219
+ onKeyDown: (s) => Fe(s, e),
220
+ className: "outline-none [&:focus-visible>[data-focus-ring]]:stroke-border-interactive",
221
+ children: [
222
+ /* @__PURE__ */ o("rect", { x: r, y: $.top, width: w, height: E, fill: "transparent" }),
223
+ de === e && /* @__PURE__ */ o("rect", { "data-active": !0, x: r, y: $.top, width: w, height: E, className: "fill-surface-hover" }),
224
+ P ? ze(e) : _e(e),
225
+ P && de === e && /* @__PURE__ */ o("line", { x1: C(e), x2: C(e), y1: $.top, y2: ce, strokeWidth: 1, className: "stroke-border-strong" }),
226
+ /* @__PURE__ */ o(
227
+ "rect",
228
+ {
229
+ "data-focus-ring": !0,
230
+ x: r + 1,
231
+ y: $.top,
232
+ width: Math.max(w - 2, 1),
233
+ height: E,
234
+ fill: "none",
235
+ strokeWidth: 2,
236
+ rx: ge,
237
+ stroke: "transparent"
238
+ }
239
+ )
240
+ ]
241
+ }
242
+ ) }, t);
243
+ }),
244
+ ne && /* @__PURE__ */ o(
245
+ "text",
246
+ {
247
+ "data-zero": !0,
248
+ x: I + ie / 2,
249
+ y: $.top + E / 2,
250
+ textAnchor: "middle",
251
+ dy: "0.32em",
252
+ className: "fill-tertiary text-sm",
253
+ children: V.length === 0 && v.length > 0 ? b.allHidden : xe
254
+ }
255
+ )
256
+ ]
257
+ }
258
+ ) }),
259
+ Be && /* @__PURE__ */ g(Je, { label: b.legend, children: [
260
+ v.map((t) => {
261
+ const e = J.has(t.key), r = /* @__PURE__ */ o(et, { color: t.color, off: e }), s = () => Ce(t.key);
262
+ return /* @__PURE__ */ o(tt, { id: t.key, other: t.other, children: L?.(t) ? /* @__PURE__ */ g(je, { children: [
263
+ /* @__PURE__ */ o(me, { name: b.showSeries(t.label), off: e, onToggle: s, className: "justify-center", children: r }),
264
+ /* @__PURE__ */ o("button", { type: "button", onClick: L(t), "data-legend-select": !0, className: A(st, e && "line-through"), children: /* @__PURE__ */ o("span", { className: "truncate", children: t.label }) })
265
+ ] }) : /* @__PURE__ */ g(me, { name: b.showSeries(t.label), off: e, onToggle: s, className: A(e && "line-through"), children: [
266
+ r,
267
+ /* @__PURE__ */ o("span", { className: "truncate", children: t.label })
268
+ ] }) }, t.key);
269
+ }),
270
+ j.map((t) => /* @__PURE__ */ g("li", { "data-legend-block": t.key, className: "flex min-h-6 min-w-0 items-center gap-1.5 px-1 text-xs text-secondary", children: [
271
+ /* @__PURE__ */ o(
272
+ "span",
273
+ {
274
+ "aria-hidden": !0,
275
+ "data-swatch": !0,
276
+ style: { background: ke(H.get(t.key)) },
277
+ className: "size-2.5 shrink-0 rounded-[2px]"
278
+ }
279
+ ),
280
+ /* @__PURE__ */ o("span", { className: "truncate", children: t.label })
281
+ ] }, t.key))
282
+ ] }),
283
+ /* @__PURE__ */ o("div", { className: "sr-only", children: /* @__PURE__ */ o(
284
+ rt,
285
+ {
286
+ caption: k,
287
+ columns: Ie,
288
+ rows: a.map((t, e) => ({
289
+ key: String(t),
290
+ header: B.full(t),
291
+ cells: [
292
+ ...v.map((r) => y(r.points[e])),
293
+ ...j.map((r) => y(_[e].filter((s) => s.kind === r.key).reduce((s, p) => s + p.value, 0))),
294
+ y(Pe(e))
295
+ ]
296
+ }))
297
+ }
298
+ ) })
299
+ ] })
300
+ );
301
+ }
302
+ export {
303
+ St as TimeSeriesChart
304
+ };
305
+ //# sourceMappingURL=TimeSeriesChart.js.map