cursedbelt 5.40.0 → 5.45.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 (499) hide show
  1. package/dist/react/Toast.d.ts +12 -2
  2. package/dist/react/Toast.d.ts.map +1 -1
  3. package/dist/react/Toast.js +32 -3
  4. package/dist/react/Toast.js.map +1 -1
  5. package/dist/react/analytics/MetricDrilldown.js +1 -1
  6. package/dist/react/charts/AreaChart.d.ts.map +1 -1
  7. package/dist/react/charts/AreaChart.js +5 -5
  8. package/dist/react/charts/AreaChart.js.map +1 -1
  9. package/dist/react/charts/BarChart.d.ts.map +1 -1
  10. package/dist/react/charts/BarChart.js +3 -3
  11. package/dist/react/charts/BarChart.js.map +1 -1
  12. package/dist/react/charts/ChartCard.d.ts +53 -0
  13. package/dist/react/charts/ChartCard.d.ts.map +1 -0
  14. package/dist/react/charts/ChartCard.js +46 -0
  15. package/dist/react/charts/ChartCard.js.map +1 -0
  16. package/dist/react/charts/ChartFrame.d.ts +12 -5
  17. package/dist/react/charts/ChartFrame.d.ts.map +1 -1
  18. package/dist/react/charts/ChartFrame.js +12 -5
  19. package/dist/react/charts/ChartFrame.js.map +1 -1
  20. package/dist/react/charts/ChartLegend.js +1 -1
  21. package/dist/react/charts/ChartLegend.js.map +1 -1
  22. package/dist/react/charts/HeatmapChart.js +3 -3
  23. package/dist/react/charts/HeatmapChart.js.map +1 -1
  24. package/dist/react/charts/IntervalTimeline.js +1 -1
  25. package/dist/react/charts/IntervalTimeline.js.map +1 -1
  26. package/dist/react/charts/LineChart.d.ts.map +1 -1
  27. package/dist/react/charts/LineChart.js +3 -3
  28. package/dist/react/charts/LineChart.js.map +1 -1
  29. package/dist/react/charts/TimeSeriesChart.d.ts.map +1 -1
  30. package/dist/react/charts/TimeSeriesChart.js +6 -6
  31. package/dist/react/charts/TimeSeriesChart.js.map +1 -1
  32. package/dist/react/charts/chartBox.d.ts +46 -0
  33. package/dist/react/charts/chartBox.d.ts.map +1 -0
  34. package/dist/react/charts/chartBox.js +45 -0
  35. package/dist/react/charts/chartBox.js.map +1 -0
  36. package/dist/react/charts/index.d.ts +2 -0
  37. package/dist/react/charts/index.d.ts.map +1 -1
  38. package/dist/react/charts/index.js +2 -0
  39. package/dist/react/charts/index.js.map +1 -1
  40. package/dist/react/charts/shared.d.ts +13 -2
  41. package/dist/react/charts/shared.d.ts.map +1 -1
  42. package/dist/react/charts/shared.js +14 -3
  43. package/dist/react/charts/shared.js.map +1 -1
  44. package/dist/react/chat/Bubble.js +4 -4
  45. package/dist/react/chat/Bubble.js.map +1 -1
  46. package/dist/react/chat/MessageScroller.js +1 -1
  47. package/dist/react/chat/MessageScroller.js.map +1 -1
  48. package/dist/react/components/ActionBar.d.ts.map +1 -1
  49. package/dist/react/components/ActionBar.js +63 -1
  50. package/dist/react/components/ActionBar.js.map +1 -1
  51. package/dist/react/components/AddItemsMenu.js +1 -1
  52. package/dist/react/components/AddItemsMenu.js.map +1 -1
  53. package/dist/react/components/Alert.d.ts +16 -2
  54. package/dist/react/components/Alert.d.ts.map +1 -1
  55. package/dist/react/components/Alert.js +35 -2
  56. package/dist/react/components/Alert.js.map +1 -1
  57. package/dist/react/components/AppShell.d.ts +55 -33
  58. package/dist/react/components/AppShell.d.ts.map +1 -1
  59. package/dist/react/components/AppShell.js +121 -31
  60. package/dist/react/components/AppShell.js.map +1 -1
  61. package/dist/react/components/AsyncPanel.d.ts +21 -3
  62. package/dist/react/components/AsyncPanel.d.ts.map +1 -1
  63. package/dist/react/components/AsyncPanel.js +49 -5
  64. package/dist/react/components/AsyncPanel.js.map +1 -1
  65. package/dist/react/components/BannerLane.d.ts +32 -0
  66. package/dist/react/components/BannerLane.d.ts.map +1 -0
  67. package/dist/react/components/BannerLane.js +41 -0
  68. package/dist/react/components/BannerLane.js.map +1 -0
  69. package/dist/react/components/Button.d.ts.map +1 -1
  70. package/dist/react/components/Button.js +2 -1
  71. package/dist/react/components/Button.js.map +1 -1
  72. package/dist/react/components/ChipFilterStrip.js +1 -1
  73. package/dist/react/components/ChipFilterStrip.js.map +1 -1
  74. package/dist/react/components/ComboboxField.d.ts.map +1 -1
  75. package/dist/react/components/ComboboxField.js +14 -4
  76. package/dist/react/components/ComboboxField.js.map +1 -1
  77. package/dist/react/components/CommentThread.js +2 -2
  78. package/dist/react/components/CommentThread.js.map +1 -1
  79. package/dist/react/components/ConfirmDialog.js +1 -1
  80. package/dist/react/components/ConfirmDialog.js.map +1 -1
  81. package/dist/react/components/DataTable/DataTable.d.ts +18 -2
  82. package/dist/react/components/DataTable/DataTable.d.ts.map +1 -1
  83. package/dist/react/components/DataTable/DataTable.js +51 -12
  84. package/dist/react/components/DataTable/DataTable.js.map +1 -1
  85. package/dist/react/components/DataTable/Pagination.js +1 -1
  86. package/dist/react/components/DataTable/Pagination.js.map +1 -1
  87. package/dist/react/components/DataTable/RowActions.d.ts +7 -1
  88. package/dist/react/components/DataTable/RowActions.d.ts.map +1 -1
  89. package/dist/react/components/DataTable/RowActions.js +10 -3
  90. package/dist/react/components/DataTable/RowActions.js.map +1 -1
  91. package/dist/react/components/DataTable/TableFilterBuilder.js +1 -1
  92. package/dist/react/components/DataTable/TableFilterBuilder.js.map +1 -1
  93. package/dist/react/components/DataTable/cells/CodeCell.js +1 -1
  94. package/dist/react/components/DataTable/cells/CodeCell.js.map +1 -1
  95. package/dist/react/components/DataTable/cells/LinkCell.js +1 -1
  96. package/dist/react/components/DataTable/cells/LinkCell.js.map +1 -1
  97. package/dist/react/components/DataTable/index.d.ts +1 -1
  98. package/dist/react/components/DataTable/index.d.ts.map +1 -1
  99. package/dist/react/components/DataTable/index.js.map +1 -1
  100. package/dist/react/components/DataTable/types.d.ts +20 -0
  101. package/dist/react/components/DataTable/types.d.ts.map +1 -1
  102. package/dist/react/components/DataTable/types.js +22 -0
  103. package/dist/react/components/DataTable/types.js.map +1 -1
  104. package/dist/react/components/DateTimeField.d.ts.map +1 -1
  105. package/dist/react/components/DateTimeField.js +4 -1
  106. package/dist/react/components/DateTimeField.js.map +1 -1
  107. package/dist/react/components/DeleteButton.js +2 -0
  108. package/dist/react/components/DeleteButton.js.map +1 -1
  109. package/dist/react/components/Drawer.js +3 -3
  110. package/dist/react/components/Drawer.js.map +1 -1
  111. package/dist/react/components/DropdownMenu.d.ts +16 -0
  112. package/dist/react/components/DropdownMenu.d.ts.map +1 -1
  113. package/dist/react/components/DropdownMenu.js +22 -6
  114. package/dist/react/components/DropdownMenu.js.map +1 -1
  115. package/dist/react/components/EmptyState.d.ts +10 -2
  116. package/dist/react/components/EmptyState.d.ts.map +1 -1
  117. package/dist/react/components/EmptyState.js +10 -5
  118. package/dist/react/components/EmptyState.js.map +1 -1
  119. package/dist/react/components/EventTimeline.js +1 -1
  120. package/dist/react/components/EventTimeline.js.map +1 -1
  121. package/dist/react/components/FileDropZone.js +1 -1
  122. package/dist/react/components/FileDropZone.js.map +1 -1
  123. package/dist/react/components/Grid.d.ts +9 -1
  124. package/dist/react/components/Grid.d.ts.map +1 -1
  125. package/dist/react/components/Grid.js +20 -2
  126. package/dist/react/components/Grid.js.map +1 -1
  127. package/dist/react/components/Guide.d.ts +31 -0
  128. package/dist/react/components/Guide.d.ts.map +1 -0
  129. package/dist/react/components/Guide.js +18 -0
  130. package/dist/react/components/Guide.js.map +1 -0
  131. package/dist/react/components/InfoHintImpl.d.ts +0 -13
  132. package/dist/react/components/InfoHintImpl.d.ts.map +1 -1
  133. package/dist/react/components/InfoHintImpl.js +17 -1
  134. package/dist/react/components/InfoHintImpl.js.map +1 -1
  135. package/dist/react/components/InlineEditableText.js +1 -1
  136. package/dist/react/components/InlineEditableText.js.map +1 -1
  137. package/dist/react/components/IsolatedFrame.js +1 -1
  138. package/dist/react/components/IsolatedFrame.js.map +1 -1
  139. package/dist/react/components/ListToolbar.d.ts.map +1 -1
  140. package/dist/react/components/ListToolbar.js +2 -2
  141. package/dist/react/components/ListToolbar.js.map +1 -1
  142. package/dist/react/components/LogViewer.d.ts +26 -2
  143. package/dist/react/components/LogViewer.d.ts.map +1 -1
  144. package/dist/react/components/LogViewer.js +41 -26
  145. package/dist/react/components/LogViewer.js.map +1 -1
  146. package/dist/react/components/Modal.d.ts +5 -1
  147. package/dist/react/components/Modal.d.ts.map +1 -1
  148. package/dist/react/components/Modal.js +18 -8
  149. package/dist/react/components/Modal.js.map +1 -1
  150. package/dist/react/components/Page.d.ts +51 -7
  151. package/dist/react/components/Page.d.ts.map +1 -1
  152. package/dist/react/components/Page.js +53 -8
  153. package/dist/react/components/Page.js.map +1 -1
  154. package/dist/react/components/PageGuideButton.d.ts +11 -0
  155. package/dist/react/components/PageGuideButton.d.ts.map +1 -0
  156. package/dist/react/components/PageGuideButton.js +13 -0
  157. package/dist/react/components/PageGuideButton.js.map +1 -0
  158. package/dist/react/components/PanelSeparator.js +1 -1
  159. package/dist/react/components/PanelSeparator.js.map +1 -1
  160. package/dist/react/components/Popover.d.ts.map +1 -1
  161. package/dist/react/components/Popover.js +2 -1
  162. package/dist/react/components/Popover.js.map +1 -1
  163. package/dist/react/components/PromptDialog.js +1 -1
  164. package/dist/react/components/PromptDialog.js.map +1 -1
  165. package/dist/react/components/ScrollArea.d.ts +9 -1
  166. package/dist/react/components/ScrollArea.d.ts.map +1 -1
  167. package/dist/react/components/ScrollArea.js +9 -3
  168. package/dist/react/components/ScrollArea.js.map +1 -1
  169. package/dist/react/components/Section.d.ts +5 -2
  170. package/dist/react/components/Section.d.ts.map +1 -1
  171. package/dist/react/components/Section.js +5 -2
  172. package/dist/react/components/Section.js.map +1 -1
  173. package/dist/react/components/Skeleton.d.ts +19 -1
  174. package/dist/react/components/Skeleton.d.ts.map +1 -1
  175. package/dist/react/components/Skeleton.js +24 -2
  176. package/dist/react/components/Skeleton.js.map +1 -1
  177. package/dist/react/components/StatStrip.js +1 -1
  178. package/dist/react/components/StatStrip.js.map +1 -1
  179. package/dist/react/components/StatTile.d.ts +30 -3
  180. package/dist/react/components/StatTile.d.ts.map +1 -1
  181. package/dist/react/components/StatTile.js +35 -9
  182. package/dist/react/components/StatTile.js.map +1 -1
  183. package/dist/react/components/StatTileGrid.d.ts +10 -1
  184. package/dist/react/components/StatTileGrid.d.ts.map +1 -1
  185. package/dist/react/components/StatTileGrid.js +50 -33
  186. package/dist/react/components/StatTileGrid.js.map +1 -1
  187. package/dist/react/components/StatusPill.d.ts.map +1 -1
  188. package/dist/react/components/StatusPill.js +26 -1
  189. package/dist/react/components/StatusPill.js.map +1 -1
  190. package/dist/react/components/Surface.d.ts +1 -1
  191. package/dist/react/components/Surface.d.ts.map +1 -1
  192. package/dist/react/components/Surface.js +20 -11
  193. package/dist/react/components/Surface.js.map +1 -1
  194. package/dist/react/components/SwatchPicker.d.ts.map +1 -1
  195. package/dist/react/components/SwatchPicker.js +5 -1
  196. package/dist/react/components/SwatchPicker.js.map +1 -1
  197. package/dist/react/components/Switch.js +1 -1
  198. package/dist/react/components/Switch.js.map +1 -1
  199. package/dist/react/components/WidgetHeader.js +1 -1
  200. package/dist/react/components/WidgetHeader.js.map +1 -1
  201. package/dist/react/components/calendar/CalendarLegend.js +1 -1
  202. package/dist/react/components/calendar/CalendarLegend.js.map +1 -1
  203. package/dist/react/components/calendar/DayAgenda.js +1 -1
  204. package/dist/react/components/calendar/DayAgenda.js.map +1 -1
  205. package/dist/react/components/calendar/EventChip.js +1 -1
  206. package/dist/react/components/calendar/EventChip.js.map +1 -1
  207. package/dist/react/components/calendar/MonthGrid.js +1 -1
  208. package/dist/react/components/calendar/MonthGrid.js.map +1 -1
  209. package/dist/react/components/calendar/WeekView.js +2 -2
  210. package/dist/react/components/calendar/WeekView.js.map +1 -1
  211. package/dist/react/components/cardFrame.d.ts +16 -0
  212. package/dist/react/components/cardFrame.d.ts.map +1 -0
  213. package/dist/react/components/cardFrame.js +24 -0
  214. package/dist/react/components/cardFrame.js.map +1 -0
  215. package/dist/react/components/dialog.d.ts.map +1 -1
  216. package/dist/react/components/dialog.js +2 -1
  217. package/dist/react/components/dialog.js.map +1 -1
  218. package/dist/react/dashboard-grid/WidgetFrame.js +2 -2
  219. package/dist/react/dashboard-grid/WidgetFrame.js.map +1 -1
  220. package/dist/react/emoji/EmojiPicker.js +1 -1
  221. package/dist/react/emoji/EmojiPicker.js.map +1 -1
  222. package/dist/react/file-tree/FileTree.d.ts +8 -1
  223. package/dist/react/file-tree/FileTree.d.ts.map +1 -1
  224. package/dist/react/file-tree/FileTree.js +29 -4
  225. package/dist/react/file-tree/FileTree.js.map +1 -1
  226. package/dist/react/filter-rail/FilterRail.js +1 -1
  227. package/dist/react/filter-rail/FilterRail.js.map +1 -1
  228. package/dist/react/icons.js +1 -1
  229. package/dist/react/icons.js.map +1 -1
  230. package/dist/react/index.d.ts +8 -5
  231. package/dist/react/index.d.ts.map +1 -1
  232. package/dist/react/index.js +5 -2
  233. package/dist/react/index.js.map +1 -1
  234. package/dist/react/lib/menuSections.d.ts +8 -0
  235. package/dist/react/lib/menuSections.d.ts.map +1 -0
  236. package/dist/react/lib/menuSections.js +37 -0
  237. package/dist/react/lib/menuSections.js.map +1 -0
  238. package/dist/react/markdown/Markdown.js +2 -2
  239. package/dist/react/markdown/Markdown.js.map +1 -1
  240. package/dist/react/media/HoverScrubVideoThumb.js +1 -1
  241. package/dist/react/media/HoverScrubVideoThumb.js.map +1 -1
  242. package/dist/react/media/MaskPainter.js +1 -1
  243. package/dist/react/media/MediaUploadControl.js +1 -1
  244. package/dist/react/media/MediaUploadControl.js.map +1 -1
  245. package/dist/react/media/VideoTrimmer.js +1 -1
  246. package/dist/react/media/VideoTrimmer.js.map +1 -1
  247. package/dist/react/media/denseGallery.css +5 -1
  248. package/dist/react/namespace/NamespaceTargetCapsule.js +1 -1
  249. package/dist/react/namespace/NamespaceTargetCapsule.js.map +1 -1
  250. package/dist/react/nav/BreadcrumbTrail.js +1 -1
  251. package/dist/react/nav/BreadcrumbTrail.js.map +1 -1
  252. package/dist/react/nav/CommandBar.d.ts +7 -1
  253. package/dist/react/nav/CommandBar.d.ts.map +1 -1
  254. package/dist/react/nav/CommandBar.js +5 -3
  255. package/dist/react/nav/CommandBar.js.map +1 -1
  256. package/dist/react/nav/PlaceBar.d.ts.map +1 -1
  257. package/dist/react/nav/PlaceBar.js +7 -9
  258. package/dist/react/nav/PlaceBar.js.map +1 -1
  259. package/dist/react/nav/SideNav.d.ts +12 -2
  260. package/dist/react/nav/SideNav.d.ts.map +1 -1
  261. package/dist/react/nav/SideNav.js +42 -22
  262. package/dist/react/nav/SideNav.js.map +1 -1
  263. package/dist/react/nav/TopBar.d.ts +65 -31
  264. package/dist/react/nav/TopBar.d.ts.map +1 -1
  265. package/dist/react/nav/TopBar.js +59 -24
  266. package/dist/react/nav/TopBar.js.map +1 -1
  267. package/dist/react/nav/index.d.ts +1 -1
  268. package/dist/react/nav/index.d.ts.map +1 -1
  269. package/dist/react/nav/index.js +1 -1
  270. package/dist/react/nav/index.js.map +1 -1
  271. package/dist/react/nav/navShared.d.ts +10 -1
  272. package/dist/react/nav/navShared.d.ts.map +1 -1
  273. package/dist/react/nav/navShared.js +23 -0
  274. package/dist/react/nav/navShared.js.map +1 -1
  275. package/dist/react/notifications/NotificationFeed.js +2 -2
  276. package/dist/react/notifications/NotificationFeed.js.map +1 -1
  277. package/dist/react/palette/Command.d.ts.map +1 -1
  278. package/dist/react/palette/Command.js +1 -1
  279. package/dist/react/palette/Command.js.map +1 -1
  280. package/dist/react/palette/CommandPalette.d.ts +13 -1
  281. package/dist/react/palette/CommandPalette.d.ts.map +1 -1
  282. package/dist/react/palette/CommandPalette.js +44 -8
  283. package/dist/react/palette/CommandPalette.js.map +1 -1
  284. package/dist/react/palette/commandSources.d.ts +57 -0
  285. package/dist/react/palette/commandSources.d.ts.map +1 -0
  286. package/dist/react/palette/commandSources.js +129 -0
  287. package/dist/react/palette/commandSources.js.map +1 -0
  288. package/dist/react/palette/index.d.ts +1 -0
  289. package/dist/react/palette/index.d.ts.map +1 -1
  290. package/dist/react/palette/index.js +1 -0
  291. package/dist/react/palette/index.js.map +1 -1
  292. package/dist/react/rich-text/RichTextEditor.js +1 -1
  293. package/dist/react/rich-text/RichTextEditor.js.map +1 -1
  294. package/dist/react/rich-text/RichTextToolbar.js +1 -1
  295. package/dist/react/rich-text/RichTextToolbar.js.map +1 -1
  296. package/dist/scripts/guardrailsEnforce.d.ts.map +1 -1
  297. package/dist/styles-areas/analytics.css +16 -16
  298. package/dist/styles-areas/auth.css +3 -3
  299. package/dist/styles-areas/calendar.css +6 -6
  300. package/dist/styles-areas/chart-table.css +1 -1
  301. package/dist/styles-areas/charts.css +3 -3
  302. package/dist/styles-areas/chat.css +7 -6
  303. package/dist/styles-areas/companion-link.css +2 -2
  304. package/dist/styles-areas/core.css +98 -89
  305. package/dist/styles-areas/dashboard-grid.css +4 -4
  306. package/dist/styles-areas/data-table.css +16 -16
  307. package/dist/styles-areas/disk-usage.css +5 -5
  308. package/dist/styles-areas/emoji.css +2 -2
  309. package/dist/styles-areas/fields.css +13 -14
  310. package/dist/styles-areas/filter-rail.css +4 -4
  311. package/dist/styles-areas/folder-tree.css +3 -3
  312. package/dist/styles-areas/markdown.css +2 -1
  313. package/dist/styles-areas/master-detail.css +3 -3
  314. package/dist/styles-areas/media-gallery.css +8 -8
  315. package/dist/styles-areas/media.css +12 -13
  316. package/dist/styles-areas/nav.css +28 -14
  317. package/dist/styles-areas/notifications.css +4 -4
  318. package/dist/styles-areas/overlays.css +4 -4
  319. package/dist/styles-areas/palette.css +4 -3
  320. package/dist/styles-areas/rich-text.css +3 -3
  321. package/dist/styles-areas/sharing.css +4 -3
  322. package/dist/styles-areas/stats.css +9 -8
  323. package/dist/styles-areas/test-report.css +3 -3
  324. package/dist/styles-areas/wizard.css +6 -5
  325. package/dist/styles-areas/workbench.css +10 -9
  326. package/dist/styles-areas/workbook-viewer.css +2 -2
  327. package/dist/styles-utilities.css +272 -187
  328. package/dist/testing/designAudit.d.ts.map +1 -1
  329. package/dist/testing/designAudit.js +4 -0
  330. package/dist/testing/designAudit.js.map +1 -1
  331. package/dist/testing/designBaseline.d.ts.map +1 -1
  332. package/dist/testing/designBaseline.js +4 -0
  333. package/dist/testing/designBaseline.js.map +1 -1
  334. package/dist/theme.css +103 -2
  335. package/package.json +3 -2
  336. package/scripts/guardrails-baseline.json +2 -1
  337. package/scripts/guardrailsEnforce.spec.ts +64 -0
  338. package/scripts/guardrailsEnforce.ts +65 -8
  339. package/scripts/styleAreas.ts +1 -0
  340. package/src/nodeTypesDeclared.spec.ts +47 -0
  341. package/src/react/Toast.spec.tsx +43 -0
  342. package/src/react/Toast.tsx +45 -2
  343. package/src/react/analytics/MetricDrilldown.tsx +1 -1
  344. package/src/react/charts/AreaChart.tsx +9 -8
  345. package/src/react/charts/BarChart.tsx +11 -10
  346. package/src/react/charts/ChartCard.tsx +146 -0
  347. package/src/react/charts/ChartFrame.tsx +28 -10
  348. package/src/react/charts/ChartLegend.tsx +1 -1
  349. package/src/react/charts/HeatmapChart.tsx +5 -5
  350. package/src/react/charts/IntervalTimeline.tsx +2 -2
  351. package/src/react/charts/LineChart.tsx +9 -8
  352. package/src/react/charts/TimeSeriesChart.tsx +11 -10
  353. package/src/react/charts/chartBox.spec.ts +40 -0
  354. package/src/react/charts/chartBox.ts +75 -0
  355. package/src/react/charts/index.ts +2 -0
  356. package/src/react/charts/shared.ts +16 -3
  357. package/src/react/chat/Bubble.tsx +5 -5
  358. package/src/react/chat/MessageScroller.tsx +1 -1
  359. package/src/react/components/ActionBar.spec.tsx +90 -0
  360. package/src/react/components/ActionBar.tsx +82 -2
  361. package/src/react/components/AddItemsMenu.tsx +1 -1
  362. package/src/react/components/Alert.spec.tsx +32 -2
  363. package/src/react/components/Alert.tsx +47 -3
  364. package/src/react/components/AppShell.spec.tsx +199 -13
  365. package/src/react/components/AppShell.tsx +235 -92
  366. package/src/react/components/AsyncPanel.spec.tsx +7 -1
  367. package/src/react/components/AsyncPanel.tsx +85 -5
  368. package/src/react/components/BannerLane.tsx +128 -0
  369. package/src/react/components/Button.tsx +2 -0
  370. package/src/react/components/ChipFilterStrip.tsx +1 -1
  371. package/src/react/components/ComboboxField.tsx +20 -3
  372. package/src/react/components/CommentThread.tsx +2 -2
  373. package/src/react/components/ConfirmDialog.tsx +1 -1
  374. package/src/react/components/DataTable/DataTable.tsx +80 -8
  375. package/src/react/components/DataTable/Pagination.tsx +1 -1
  376. package/src/react/components/DataTable/RowActions.tsx +55 -2
  377. package/src/react/components/DataTable/TableFilterBuilder.tsx +1 -1
  378. package/src/react/components/DataTable/cells/CodeCell.tsx +1 -1
  379. package/src/react/components/DataTable/cells/LinkCell.tsx +1 -1
  380. package/src/react/components/DataTable/index.ts +1 -0
  381. package/src/react/components/DataTable/numericColumn.spec.ts +19 -0
  382. package/src/react/components/DataTable/types.ts +36 -0
  383. package/src/react/components/DateTimeField.tsx +3 -1
  384. package/src/react/components/DeleteButton.tsx +3 -0
  385. package/src/react/components/Drawer.tsx +3 -3
  386. package/src/react/components/DropdownMenu.spec.tsx +55 -0
  387. package/src/react/components/DropdownMenu.tsx +73 -20
  388. package/src/react/components/EmptyState.tsx +26 -7
  389. package/src/react/components/EventTimeline.tsx +1 -1
  390. package/src/react/components/Field.width.spec.tsx +11 -0
  391. package/src/react/components/FileDropZone.tsx +1 -1
  392. package/src/react/components/Grid.spec.tsx +44 -0
  393. package/src/react/components/Grid.tsx +41 -11
  394. package/src/react/components/Guide.tsx +77 -0
  395. package/src/react/components/InfoHint.spec.tsx +21 -0
  396. package/src/react/components/InfoHintImpl.tsx +22 -1
  397. package/src/react/components/InlineEditableText.tsx +1 -1
  398. package/src/react/components/IsolatedFrame.tsx +1 -1
  399. package/src/react/components/ListToolbar.spec.tsx +12 -0
  400. package/src/react/components/ListToolbar.tsx +8 -5
  401. package/src/react/components/LogViewer.tsx +118 -18
  402. package/src/react/components/Modal.spec.tsx +17 -2
  403. package/src/react/components/Modal.tsx +25 -10
  404. package/src/react/components/MultiSelectField.spec.tsx +6 -0
  405. package/src/react/components/Page.spec.tsx +89 -5
  406. package/src/react/components/Page.tsx +100 -16
  407. package/src/react/components/PageGuideButton.tsx +42 -0
  408. package/src/react/components/PanelSeparator.tsx +1 -1
  409. package/src/react/components/Popover.tsx +3 -1
  410. package/src/react/components/PromptDialog.tsx +1 -1
  411. package/src/react/components/ScrollArea.spec.tsx +20 -0
  412. package/src/react/components/ScrollArea.tsx +19 -0
  413. package/src/react/components/Section.spec.tsx +82 -1
  414. package/src/react/components/Section.tsx +10 -4
  415. package/src/react/components/Skeleton.tsx +50 -2
  416. package/src/react/components/StatStrip.tsx +1 -1
  417. package/src/react/components/StatTile.tsx +84 -11
  418. package/src/react/components/StatTileGrid.spec.tsx +6 -1
  419. package/src/react/components/StatTileGrid.tsx +25 -0
  420. package/src/react/components/StatusPill.tsx +26 -1
  421. package/src/react/components/Surface.tsx +22 -14
  422. package/src/react/components/SwatchPicker.tsx +4 -0
  423. package/src/react/components/Switch.tsx +1 -1
  424. package/src/react/components/WidgetHeader.tsx +1 -1
  425. package/src/react/components/calendar/CalendarLegend.tsx +1 -1
  426. package/src/react/components/calendar/DayAgenda.tsx +1 -1
  427. package/src/react/components/calendar/EventChip.tsx +1 -1
  428. package/src/react/components/calendar/MonthGrid.tsx +1 -1
  429. package/src/react/components/calendar/WeekView.tsx +2 -2
  430. package/src/react/components/cardFrame.ts +28 -0
  431. package/src/react/components/dataDisplay.spec.tsx +176 -0
  432. package/src/react/components/dialog.tsx +4 -1
  433. package/src/react/dashboard-grid/WidgetFrame.tsx +2 -2
  434. package/src/react/emoji/EmojiPicker.tsx +1 -1
  435. package/src/react/file-tree/FileTree.spec.tsx +49 -0
  436. package/src/react/file-tree/FileTree.tsx +37 -4
  437. package/src/react/filter-rail/FilterRail.tsx +1 -1
  438. package/src/react/icons.tsx +1 -1
  439. package/src/react/index.ts +28 -3
  440. package/src/react/lib/menuSections.ts +33 -0
  441. package/src/react/markdown/Markdown.tsx +2 -2
  442. package/src/react/media/HoverScrubVideoThumb.tsx +2 -2
  443. package/src/react/media/MaskPainter.tsx +1 -1
  444. package/src/react/media/MediaUploadControl.tsx +1 -1
  445. package/src/react/media/VideoTrimmer.tsx +1 -1
  446. package/src/react/media/denseGallery.css +5 -1
  447. package/src/react/namespace/NamespaceTargetCapsule.tsx +1 -1
  448. package/src/react/nav/BreadcrumbTrail.tsx +2 -2
  449. package/src/react/nav/CommandBar.tsx +14 -3
  450. package/src/react/nav/PlaceBar.tsx +18 -8
  451. package/src/react/nav/SideNav.tsx +99 -17
  452. package/src/react/nav/TopBar.spec.tsx +78 -21
  453. package/src/react/nav/TopBar.tsx +270 -98
  454. package/src/react/nav/index.ts +8 -1
  455. package/src/react/nav/nav.spec.tsx +46 -2
  456. package/src/react/nav/navShared.tsx +23 -2
  457. package/src/react/notifications/NotificationFeed.tsx +2 -2
  458. package/src/react/palette/Command.tsx +1 -1
  459. package/src/react/palette/CommandPalette.spec.tsx +31 -0
  460. package/src/react/palette/CommandPalette.tsx +108 -11
  461. package/src/react/palette/commandSources.tsx +186 -0
  462. package/src/react/palette/index.ts +7 -0
  463. package/src/react/rich-text/RichTextEditor.tsx +1 -1
  464. package/src/react/rich-text/RichTextToolbar.tsx +1 -1
  465. package/src/styles-areas/analytics.css +16 -16
  466. package/src/styles-areas/auth.css +3 -3
  467. package/src/styles-areas/calendar.css +6 -6
  468. package/src/styles-areas/chart-table.css +1 -1
  469. package/src/styles-areas/charts.css +3 -3
  470. package/src/styles-areas/chat.css +7 -6
  471. package/src/styles-areas/companion-link.css +2 -2
  472. package/src/styles-areas/core.css +98 -89
  473. package/src/styles-areas/dashboard-grid.css +4 -4
  474. package/src/styles-areas/data-table.css +16 -16
  475. package/src/styles-areas/disk-usage.css +5 -5
  476. package/src/styles-areas/emoji.css +2 -2
  477. package/src/styles-areas/fields.css +13 -14
  478. package/src/styles-areas/filter-rail.css +4 -4
  479. package/src/styles-areas/folder-tree.css +3 -3
  480. package/src/styles-areas/markdown.css +2 -1
  481. package/src/styles-areas/master-detail.css +3 -3
  482. package/src/styles-areas/media-gallery.css +8 -8
  483. package/src/styles-areas/media.css +12 -13
  484. package/src/styles-areas/nav.css +28 -14
  485. package/src/styles-areas/notifications.css +4 -4
  486. package/src/styles-areas/overlays.css +4 -4
  487. package/src/styles-areas/palette.css +4 -3
  488. package/src/styles-areas/rich-text.css +3 -3
  489. package/src/styles-areas/sharing.css +4 -3
  490. package/src/styles-areas/stats.css +9 -8
  491. package/src/styles-areas/test-report.css +3 -3
  492. package/src/styles-areas/wizard.css +6 -5
  493. package/src/styles-areas/workbench.css +10 -9
  494. package/src/styles-areas/workbook-viewer.css +2 -2
  495. package/src/styles-utilities.css +272 -187
  496. package/src/testing/designAudit.ts +3 -0
  497. package/src/testing/designBaseline.ts +4 -0
  498. package/src/theme.css +103 -2
  499. package/src/themeDarkScopeAliases.spec.ts +65 -0
@@ -1,5 +1,15 @@
1
- import { Toaster as SonnerToaster, toast } from 'sonner';
2
- export { toast };
1
+ import { type ExternalToast, Toaster as SonnerToaster, toast as sonnerToast } from 'sonner';
2
+ type ToastMessage = Parameters<typeof sonnerToast.error>[0];
3
+ /**
4
+ * "Moved 3 files to trash" with an Undo — the shape OVL-9 asks every reversible action to take.
5
+ * `onUndo` runs when Undo is pressed; the toast stays for 6s, long enough to reach the button.
6
+ */
7
+ declare function undoToast(message: ToastMessage, onUndo: () => void, data?: ExternalToast): string | number;
8
+ /** sonner's `toast`, with OVL-9's rules on `error` and an `undo` helper. */
9
+ export declare const toast: typeof sonnerToast & {
10
+ undo: typeof undoToast;
11
+ };
3
12
  export type ToasterProps = React.ComponentProps<typeof SonnerToaster>;
4
13
  export declare function Toaster({ style, ...props }: ToasterProps): import("react").JSX.Element;
14
+ export {};
5
15
  //# sourceMappingURL=Toast.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Toast.d.ts","sourceRoot":"","sources":["../../src/react/Toast.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAEzD,OAAO,EAAE,KAAK,EAAE,CAAC;AAEjB,MAAM,MAAM,YAAY,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,aAAa,CAAC,CAAC;AAgBtE,wBAAgB,OAAO,CAAC,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,YAAY,+BAyBxD"}
1
+ {"version":3,"file":"Toast.d.ts","sourceRoot":"","sources":["../../src/react/Toast.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAE,KAAK,aAAa,EAAE,OAAO,IAAI,aAAa,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,QAAQ,CAAC;AAG5F,KAAK,YAAY,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAmB5D;;;GAGG;AACH,iBAAS,SAAS,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,IAAI,EAAE,IAAI,CAAC,EAAE,aAAa,mBAEjF;AAED,4EAA4E;AAC5E,eAAO,MAAM,KAAK,EAAE,OAAO,WAAW,GAAG;IAAE,IAAI,EAAE,OAAO,SAAS,CAAA;CAIhE,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,aAAa,CAAC,CAAC;AAwBtE,wBAAgB,OAAO,CAAC,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,YAAY,+BA2BxD"}
@@ -12,8 +12,30 @@ import { jsx as _jsx } from "react/jsx-runtime";
12
12
  * light/dark exactly like every other primitive (no sonner `richColors` — that
13
13
  * would inject sonner's own hardcoded palette instead of our tokens).
14
14
  */
15
- import { Toaster as SonnerToaster, toast } from 'sonner';
16
- export { toast };
15
+ import { Toaster as SonnerToaster, toast as sonnerToast } from 'sonner';
16
+ import { devWarnOnce } from './lib/devWarn.js';
17
+ /**
18
+ * OVL-9: a toast confirms what happened ("Moved to trash") and offers Undo; it never carries an
19
+ * error the reader must act on — that is an inline `Alert` where the problem is, because a toast
20
+ * leaves in four seconds and takes the problem with it. An error toast is allowed only with an
21
+ * `action` (Retry, Undo), so the error is something the toast itself lets you resolve.
22
+ */
23
+ function errorToast(message, data) {
24
+ if (!data?.action) {
25
+ devWarnOnce('toast:error-without-action', 'cursedbelt: toast.error() with no `action` — an error the reader must act on belongs in an inline <Alert tone="error"> ' +
26
+ "where the problem is (OVL-9). Give the toast an action (Retry) if it can resolve it itself.");
27
+ }
28
+ return sonnerToast.error(message, data);
29
+ }
30
+ /**
31
+ * "Moved 3 files to trash" with an Undo — the shape OVL-9 asks every reversible action to take.
32
+ * `onUndo` runs when Undo is pressed; the toast stays for 6s, long enough to reach the button.
33
+ */
34
+ function undoToast(message, onUndo, data) {
35
+ return sonnerToast(message, { duration: 6000, ...data, action: { label: 'Undo', onClick: onUndo } });
36
+ }
37
+ /** sonner's `toast`, with OVL-9's rules on `error` and an `undo` helper. */
38
+ export const toast = Object.assign((...args) => sonnerToast(...args), sonnerToast, { error: errorToast, undo: undoToast });
17
39
  /**
18
40
  * 🔴 sonner paints a toast from its OWN variables (`--normal-bg`, `--normal-border`,
19
41
  * `--normal-text`), set per `data-sonner-theme` on the toaster — and its rule outranks the
@@ -27,8 +49,15 @@ const TOKEN_VARS = {
27
49
  '--normal-border': 'var(--border)',
28
50
  '--normal-text': 'var(--popover-foreground)',
29
51
  };
52
+ /**
53
+ * OVL-9: on a phone the stack sits ABOVE the `PlaceBar` (and any bottom dock), not on top of
54
+ * the navigation. `AppShell` publishes its bottom chrome's height as `--cb-bottom-chrome-h`;
55
+ * outside a shell it is 0 and this is sonner's own gap.
56
+ */
57
+ const BOTTOM_OFFSET = { bottom: 'calc(var(--cb-bottom-chrome-h, 0px) + 16px)', right: '16px' };
58
+ const DESKTOP_OFFSET = { bottom: 'calc(var(--cb-bottom-chrome-h, 0px) + 24px)', right: '24px' };
30
59
  export function Toaster({ style, ...props }) {
31
- return (_jsx(SonnerToaster, { style: { ...TOKEN_VARS, ...style }, position: 'bottom-right', closeButton: true, toastOptions: {
60
+ return (_jsx(SonnerToaster, { style: { ...TOKEN_VARS, ...style }, position: 'bottom-right', offset: DESKTOP_OFFSET, mobileOffset: BOTTOM_OFFSET, closeButton: true, toastOptions: {
32
61
  classNames: {
33
62
  toast: 'rounded-lg border border-border bg-popover text-foreground shadow-overlay',
34
63
  title: 'text-sm font-medium',
@@ -1 +1 @@
1
- {"version":3,"file":"Toast.js","sourceRoot":"","sources":["../../src/react/Toast.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAEzD,OAAO,EAAE,KAAK,EAAE,CAAC;AAIjB;;;;;;;GAOG;AACH,MAAM,UAAU,GAAG;IACjB,aAAa,EAAE,gBAAgB;IAC/B,iBAAiB,EAAE,eAAe;IAClC,eAAe,EAAE,2BAA2B;CACtB,CAAC;AAEzB,MAAM,UAAU,OAAO,CAAC,EAAE,KAAK,EAAE,GAAG,KAAK,EAAgB;IACvD,OAAO,CACL,KAAC,aAAa,IACZ,KAAK,EAAE,EAAE,GAAG,UAAU,EAAE,GAAG,KAAK,EAAE,EAClC,QAAQ,EAAC,cAAc,EACvB,WAAW,QACX,YAAY,EAAE;YACZ,UAAU,EAAE;gBACV,KAAK,EAAE,2EAA2E;gBAClF,KAAK,EAAE,qBAAqB;gBAC5B,sFAAsF;gBACtF,8EAA8E;gBAC9E,WAAW,EAAE,gCAAgC;gBAC7C,YAAY,EAAE,yDAAyD;gBACvE,YAAY,EAAE,uDAAuD;gBACrE,WAAW,EAAE,0EAA0E;gBACvF,KAAK,EAAE,wDAAwD;gBAC/D,OAAO,EAAE,gDAAgD;gBACzD,OAAO,EAAE,gDAAgD;gBACzD,IAAI,EAAE,8CAA8C;aACrD;SACF,KACG,KAAK,GACT,CACH,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"Toast.js","sourceRoot":"","sources":["../../src/react/Toast.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAsB,OAAO,IAAI,aAAa,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,QAAQ,CAAC;AAC5F,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAI/C;;;;;GAKG;AACH,SAAS,UAAU,CAAC,OAAqB,EAAE,IAAoB;IAC7D,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;QAClB,WAAW,CACT,4BAA4B,EAC5B,yHAAyH;YACvH,6FAA6F,CAChG,CAAC;IACJ,CAAC;IACD,OAAO,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAC1C,CAAC;AAED;;;GAGG;AACH,SAAS,SAAS,CAAC,OAAqB,EAAE,MAAkB,EAAE,IAAoB;IAChF,OAAO,WAAW,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;AACvG,CAAC;AAED,4EAA4E;AAC5E,MAAM,CAAC,MAAM,KAAK,GAAoD,MAAM,CAAC,MAAM,CACjF,CAAC,GAAG,IAAoC,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,EACjE,WAAW,EACX,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,CACvC,CAAC;AAIF;;;;;;;GAOG;AACH,MAAM,UAAU,GAAG;IACjB,aAAa,EAAE,gBAAgB;IAC/B,iBAAiB,EAAE,eAAe;IAClC,eAAe,EAAE,2BAA2B;CACtB,CAAC;AAEzB;;;;GAIG;AACH,MAAM,aAAa,GAAG,EAAE,MAAM,EAAE,6CAA6C,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC/F,MAAM,cAAc,GAAG,EAAE,MAAM,EAAE,6CAA6C,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAEhG,MAAM,UAAU,OAAO,CAAC,EAAE,KAAK,EAAE,GAAG,KAAK,EAAgB;IACvD,OAAO,CACL,KAAC,aAAa,IACZ,KAAK,EAAE,EAAE,GAAG,UAAU,EAAE,GAAG,KAAK,EAAE,EAClC,QAAQ,EAAC,cAAc,EACvB,MAAM,EAAE,cAAc,EACtB,YAAY,EAAE,aAAa,EAC3B,WAAW,QACX,YAAY,EAAE;YACZ,UAAU,EAAE;gBACV,KAAK,EAAE,2EAA2E;gBAClF,KAAK,EAAE,qBAAqB;gBAC5B,sFAAsF;gBACtF,8EAA8E;gBAC9E,WAAW,EAAE,gCAAgC;gBAC7C,YAAY,EAAE,yDAAyD;gBACvE,YAAY,EAAE,uDAAuD;gBACrE,WAAW,EAAE,0EAA0E;gBACvF,KAAK,EAAE,wDAAwD;gBAC/D,OAAO,EAAE,gDAAgD;gBACzD,OAAO,EAAE,gDAAgD;gBACzD,IAAI,EAAE,8CAA8C;aACrD;SACF,KACG,KAAK,GACT,CACH,CAAC;AACJ,CAAC"}
@@ -29,7 +29,7 @@ import { AnalyticsPanel } from './AnalyticsPanel.js';
29
29
  * (retention, a pruned event log, nothing broke) rather than a blank table.
30
30
  */
31
31
  export function MetricDrilldown({ open, onClose, title, value, question, caveat, range, chart, data, columns, getRowId, onRowClick, downloadName, emptyState, children, }) {
32
- return (_jsx(Modal, { open: open, onClose: onClose, size: 'xl', title: value === undefined ? (title) : (_jsxs("span", { className: 'flex items-baseline gap-2', children: [_jsx("span", { children: title }), _jsx("span", { className: 'font-semibold text-muted-foreground tabular-nums', children: value })] })), subtitle: question, children: _jsxs("div", { className: 'flex min-w-0 flex-col gap-3', children: [children, _jsx(AnalyticsPanel, { title: `${data.length} ${data.length === 1 ? 'row' : 'rows'}`, question: question, ...(caveat === undefined ? {} : { caveat }), ...(range === undefined ? {} : { range }),
32
+ return (_jsx(Modal, { open: open, onClose: onClose, size: 'lg', title: value === undefined ? (title) : (_jsxs("span", { className: 'flex items-baseline gap-2', children: [_jsx("span", { children: title }), _jsx("span", { className: 'font-semibold text-muted-foreground tabular-nums', children: value })] })), subtitle: question, children: _jsxs("div", { className: 'flex min-w-0 flex-col gap-3', children: [children, _jsx(AnalyticsPanel, { title: `${data.length} ${data.length === 1 ? 'row' : 'rows'}`, question: question, ...(caveat === undefined ? {} : { caveat }), ...(range === undefined ? {} : { range }),
33
33
  // No chart means the reader came for the list: open on the table. The
34
34
  // Chart tab still exists (the toggle is the panel's, not ours) so it
35
35
  // must SAY there is nothing to draw — an empty pane reads as a broken
@@ -1 +1 @@
1
- {"version":3,"file":"AreaChart.d.ts","sourceRoot":"","sources":["../../../src/react/charts/AreaChart.tsx"],"names":[],"mappings":"AAYA,OAAO,EAAa,KAAK,UAAU,EAAE,KAAK,WAAW,EAA8B,MAAM,aAAa,CAAC;AAEvG,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,UAAU,EAAE,CAAC;IACnB,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,mEAAmE;IACnE,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,gEAAgE;IAChE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,6CAA6C;IAC7C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,8CAA8C;IAC9C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,KAAK,MAAM,CAAC;IACpD,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3C,iCAAiC;IACjC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,KAAK,MAAM,CAAC;CACrD,CAAC;AAEF,oFAAoF;AACpF,wBAAgB,SAAS,CAAC,EACxB,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,SAAS,EACT,MAAM,EACN,MAAa,EACb,MAAM,EACN,IAAW,EACX,OAAe,EACf,MAAW,EACX,cAAc,EACd,cAAc,EACd,cAAc,GACf,EAAE,cAAc,+BAmEhB"}
1
+ {"version":3,"file":"AreaChart.d.ts","sourceRoot":"","sources":["../../../src/react/charts/AreaChart.tsx"],"names":[],"mappings":"AAaA,OAAO,EAA6B,KAAK,UAAU,EAAE,KAAK,WAAW,EAA8B,MAAM,aAAa,CAAC;AAEvH,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,UAAU,EAAE,CAAC;IACnB,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,mEAAmE;IACnE,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,gEAAgE;IAChE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,6CAA6C;IAC7C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,8CAA8C;IAC9C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,KAAK,MAAM,CAAC;IACpD,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3C,iCAAiC;IACjC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,KAAK,MAAM,CAAC;CACrD,CAAC;AAEF,oFAAoF;AACpF,wBAAgB,SAAS,CAAC,EACxB,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,SAAS,EACT,MAAM,EACN,MAAa,EACb,MAAM,EACN,IAAW,EACX,OAAe,EACf,MAAW,EACX,cAAc,EACd,cAAc,EACd,cAAc,GACf,EAAE,cAAc,+BAmEhB"}
@@ -3,17 +3,17 @@ import { Area, CartesianGrid, Legend, AreaChart as RAreaChart, Tooltip, XAxis, Y
3
3
  import { ChartFrame } from './ChartFrame.js';
4
4
  import { legendContent } from './ChartLegend.js';
5
5
  import { tooltipContent } from './ChartTooltip.js';
6
- import { axisProps, seriesColor, useGradientId } from './shared.js';
6
+ import { axisProps, valueAxisProps, seriesColor, useGradientId } from './shared.js';
7
7
  /** Multi-series area chart with token-colored gradient fills (per-instance ids). */
8
8
  export function AreaChart({ data, xKey, series, ariaLabel, height, smooth = true, legend, grid = true, stacked = false, yWidth = 44, xTickFormatter, valueFormatter, labelFormatter, }) {
9
9
  const gradId = useGradientId();
10
- const showLegend = legend ?? series.length > 1;
11
- return (_jsx(ChartFrame, { ariaLabel: ariaLabel, height: height, children: (t) => (_jsxs(RAreaChart, { data: data, margin: { top: 8, right: 12, bottom: 0, left: 0 }, children: [_jsx("defs", { children: series.map((s, i) => {
10
+ const showLegend = (box) => legend ?? (!box.legendInHeader && series.length > 1);
11
+ return (_jsx(ChartFrame, { ariaLabel: ariaLabel, height: height, children: (t, box) => (_jsxs(RAreaChart, { data: data, margin: { top: 8, right: 12, bottom: 0, left: 0 }, children: [_jsx("defs", { children: series.map((s, i) => {
12
12
  const c = seriesColor(t, s, i);
13
13
  return (_jsxs("linearGradient", { id: `${gradId}-${s.dataKey}`, x1: '0', y1: '0', x2: '0', y2: '1', children: [_jsx("stop", { offset: '0%', stopColor: c, stopOpacity: 0.2 }), _jsx("stop", { offset: '100%', stopColor: c, stopOpacity: 0.02 })] }, s.dataKey));
14
- }) }), grid && (_jsx(CartesianGrid, { strokeDasharray: '3 3', stroke: t.foregroundMuted, strokeOpacity: 0.3, vertical: false })), _jsx(XAxis, { dataKey: xKey, ...axisProps(t), tickFormatter: xTickFormatter, interval: 'preserveStartEnd', minTickGap: 24 }), _jsx(YAxis, { ...axisProps(t), tickFormatter: valueFormatter, width: yWidth, axisLine: false }), _jsx(Tooltip, { content: tooltipContent(t, labelFormatter, valueFormatter), cursor: { stroke: t.foregroundMuted, strokeWidth: 1, strokeOpacity: 0.5 }, isAnimationActive: false }), showLegend && _jsx(Legend, { content: legendContent(t) }), series.map((s, i) => {
14
+ }) }), grid && (_jsx(CartesianGrid, { strokeDasharray: '3 3', stroke: t.foregroundMuted, strokeOpacity: 0.3, vertical: false })), _jsx(XAxis, { dataKey: xKey, ...axisProps(t, box), tickFormatter: xTickFormatter, interval: 'preserveStartEnd', minTickGap: box.gap(24) }), _jsx(YAxis, { ...axisProps(t, box), ...valueAxisProps(box, valueFormatter), width: yWidth, axisLine: false }), _jsx(Tooltip, { content: tooltipContent(t, labelFormatter, valueFormatter), cursor: { stroke: t.foregroundMuted, strokeWidth: 1, strokeOpacity: 0.5 }, isAnimationActive: false }), showLegend(box) && _jsx(Legend, { content: legendContent(t) }), series.map((s, i) => {
15
15
  const c = seriesColor(t, s, i);
16
- return (_jsx(Area, { type: smooth ? 'monotone' : 'linear', dataKey: s.dataKey, name: s.name ?? s.dataKey, stackId: stacked ? (s.stackId ?? 'stack') : s.stackId, stroke: c, strokeWidth: 2, fill: `url(#${gradId}-${s.dataKey})`, isAnimationActive: false }, s.dataKey));
16
+ return (_jsx(Area, { type: smooth ? 'monotone' : 'linear', dataKey: s.dataKey, name: s.name ?? s.dataKey, stackId: stacked ? (s.stackId ?? 'stack') : s.stackId, stroke: c, strokeWidth: box.stroke, fill: `url(#${gradId}-${s.dataKey})`, isAnimationActive: false }, s.dataKey));
17
17
  })] })) }));
18
18
  }
19
19
  //# sourceMappingURL=AreaChart.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AreaChart.js","sourceRoot":"","sources":["../../../src/react/charts/AreaChart.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AreaChart.js","sourceRoot":"","sources":["../../../src/react/charts/AreaChart.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"BarChart.d.ts","sourceRoot":"","sources":["../../../src/react/charts/BarChart.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAa,KAAK,UAAU,EAAE,KAAK,WAAW,EAAe,MAAM,aAAa,CAAC;AAIxF,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,UAAU,EAAE,CAAC;IACnB,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,mEAAmE;IACnE,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,WAAW,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;IACxC,8DAA8D;IAC9D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gEAAgE;IAChE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,6CAA6C;IAC7C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qBAAqB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,KAAK,MAAM,CAAC;IAC3D,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3C,iCAAiC;IACjC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,KAAK,MAAM,CAAC;CACrD,CAAC;AAEF,2EAA2E;AAC3E,wBAAgB,QAAQ,CAAC,EACvB,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,SAAS,EACT,MAAM,EACN,WAAwB,EACxB,OAAe,EACf,MAAM,EACN,IAAW,EACX,MAAW,EACX,qBAAqB,EACrB,cAAc,EACd,cAAc,GACf,EAAE,aAAa,+BA8Ef"}
1
+ {"version":3,"file":"BarChart.d.ts","sourceRoot":"","sources":["../../../src/react/charts/BarChart.tsx"],"names":[],"mappings":"AAKA,OAAO,EAA6B,KAAK,UAAU,EAAE,KAAK,WAAW,EAAe,MAAM,aAAa,CAAC;AAIxG,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,UAAU,EAAE,CAAC;IACnB,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,mEAAmE;IACnE,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,WAAW,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;IACxC,8DAA8D;IAC9D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gEAAgE;IAChE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,6CAA6C;IAC7C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qBAAqB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,KAAK,MAAM,CAAC;IAC3D,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3C,iCAAiC;IACjC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,KAAK,MAAM,CAAC;CACrD,CAAC;AAEF,2EAA2E;AAC3E,wBAAgB,QAAQ,CAAC,EACvB,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,SAAS,EACT,MAAM,EACN,WAAwB,EACxB,OAAe,EACf,MAAM,EACN,IAAW,EACX,MAAW,EACX,qBAAqB,EACrB,cAAc,EACd,cAAc,GACf,EAAE,aAAa,+BA8Ef"}
@@ -3,11 +3,11 @@ import { Bar, CartesianGrid, Legend, BarChart as RBarChart, Tooltip, XAxis, YAxi
3
3
  import { ChartFrame } from './ChartFrame.js';
4
4
  import { legendContent } from './ChartLegend.js';
5
5
  import { tooltipContent } from './ChartTooltip.js';
6
- import { axisProps, seriesColor } from './shared.js';
6
+ import { axisProps, valueAxisProps, seriesColor } from './shared.js';
7
7
  /** Vertical/horizontal, grouped/stacked bar chart with rounded corners. */
8
8
  export function BarChart({ data, xKey, series, ariaLabel, height, orientation = 'vertical', stacked = false, legend, grid = true, yWidth = 44, categoryTickFormatter, valueFormatter, labelFormatter, }) {
9
9
  const horizontal = orientation === 'horizontal';
10
- const showLegend = legend ?? series.length > 1;
10
+ const showLegend = (box) => legend ?? (!box.legendInHeader && series.length > 1);
11
11
  // Round only the outer end of each bar; for a stack, only the last (outer) series.
12
12
  const cornersFor = (i) => {
13
13
  const outer = !stacked || i === series.length - 1;
@@ -15,6 +15,6 @@ export function BarChart({ data, xKey, series, ariaLabel, height, orientation =
15
15
  return [0, 0, 0, 0];
16
16
  return horizontal ? [0, 4, 4, 0] : [4, 4, 0, 0];
17
17
  };
18
- return (_jsx(ChartFrame, { ariaLabel: ariaLabel, height: height, children: (t) => (_jsxs(RBarChart, { data: data, layout: horizontal ? 'vertical' : 'horizontal', margin: { top: 8, right: 12, bottom: 0, left: 0 }, children: [grid && (_jsx(CartesianGrid, { strokeDasharray: '3 3', stroke: t.foregroundMuted, strokeOpacity: 0.3, horizontal: !horizontal, vertical: horizontal })), horizontal ? (_jsxs(_Fragment, { children: [_jsx(XAxis, { type: 'number', ...axisProps(t), tickFormatter: valueFormatter }), _jsx(YAxis, { type: 'category', dataKey: xKey, ...axisProps(t), tickFormatter: categoryTickFormatter, width: yWidth, axisLine: false })] })) : (_jsxs(_Fragment, { children: [_jsx(XAxis, { type: 'category', dataKey: xKey, ...axisProps(t), tickFormatter: categoryTickFormatter, interval: 'preserveStartEnd', minTickGap: 8 }), _jsx(YAxis, { type: 'number', ...axisProps(t), tickFormatter: valueFormatter, width: yWidth, axisLine: false })] })), _jsx(Tooltip, { content: tooltipContent(t, labelFormatter, valueFormatter), cursor: { fill: t.foregroundMuted, fillOpacity: 0.08 }, isAnimationActive: false }), showLegend && _jsx(Legend, { content: legendContent(t) }), series.map((s, i) => (_jsx(Bar, { dataKey: s.dataKey, name: s.name ?? s.dataKey, stackId: stacked ? (s.stackId ?? 'stack') : s.stackId, fill: seriesColor(t, s, i), radius: cornersFor(i), isAnimationActive: false }, s.dataKey)))] })) }));
18
+ return (_jsx(ChartFrame, { ariaLabel: ariaLabel, height: height, children: (t, box) => (_jsxs(RBarChart, { data: data, layout: horizontal ? 'vertical' : 'horizontal', margin: { top: 8, right: 12, bottom: 0, left: 0 }, children: [grid && (_jsx(CartesianGrid, { strokeDasharray: '3 3', stroke: t.foregroundMuted, strokeOpacity: 0.3, horizontal: !horizontal, vertical: horizontal })), horizontal ? (_jsxs(_Fragment, { children: [_jsx(XAxis, { type: 'number', ...axisProps(t, box), ...valueAxisProps(box, valueFormatter) }), _jsx(YAxis, { type: 'category', dataKey: xKey, ...axisProps(t, box), tickFormatter: categoryTickFormatter, width: yWidth, axisLine: false })] })) : (_jsxs(_Fragment, { children: [_jsx(XAxis, { type: 'category', dataKey: xKey, ...axisProps(t, box), tickFormatter: categoryTickFormatter, interval: 'preserveStartEnd', minTickGap: box.gap(8) }), _jsx(YAxis, { type: 'number', ...axisProps(t, box), ...valueAxisProps(box, valueFormatter), width: yWidth, axisLine: false })] })), _jsx(Tooltip, { content: tooltipContent(t, labelFormatter, valueFormatter), cursor: { fill: t.foregroundMuted, fillOpacity: 0.08 }, isAnimationActive: false }), showLegend(box) && _jsx(Legend, { content: legendContent(t) }), series.map((s, i) => (_jsx(Bar, { dataKey: s.dataKey, name: s.name ?? s.dataKey, stackId: stacked ? (s.stackId ?? 'stack') : s.stackId, fill: seriesColor(t, s, i), radius: cornersFor(i), isAnimationActive: false }, s.dataKey)))] })) }));
19
19
  }
20
20
  //# sourceMappingURL=BarChart.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BarChart.js","sourceRoot":"","sources":["../../../src/react/charts/BarChart.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,IAAI,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACpG,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAqC,WAAW,EAAE,MAAM,aAAa,CAAC;AA4BxF,2EAA2E;AAC3E,MAAM,UAAU,QAAQ,CAAC,EACvB,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,SAAS,EACT,MAAM,EACN,WAAW,GAAG,UAAU,EACxB,OAAO,GAAG,KAAK,EACf,MAAM,EACN,IAAI,GAAG,IAAI,EACX,MAAM,GAAG,EAAE,EACX,qBAAqB,EACrB,cAAc,EACd,cAAc,GACA;IACd,MAAM,UAAU,GAAG,WAAW,KAAK,YAAY,CAAC;IAChD,MAAM,UAAU,GAAG,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IAC/C,mFAAmF;IACnF,MAAM,UAAU,GAAG,CAAC,CAAS,EAAW,EAAE;QACxC,MAAM,KAAK,GAAG,CAAC,OAAO,IAAI,CAAC,KAAK,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QAClD,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAChC,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAClD,CAAC,CAAC;IACF,OAAO,CACL,KAAC,UAAU,IAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,YAC7C,CAAC,CAAC,EAAE,EAAE,CAAC,CACN,MAAC,SAAS,IACR,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,EAC9C,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,aAEhD,IAAI,IAAI,CACP,KAAC,aAAa,IACZ,eAAe,EAAC,KAAK,EACrB,MAAM,EAAE,CAAC,CAAC,eAAe,EACzB,aAAa,EAAE,GAAG,EAClB,UAAU,EAAE,CAAC,UAAU,EACvB,QAAQ,EAAE,UAAU,GACpB,CACH,EACA,UAAU,CAAC,CAAC,CAAC,CACZ,8BACE,KAAC,KAAK,IAAC,IAAI,EAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,cAAc,GAAI,EACxE,KAAC,KAAK,IACJ,IAAI,EAAC,UAAU,EACf,OAAO,EAAE,IAAI,KACT,SAAS,CAAC,CAAC,CAAC,EAChB,aAAa,EAAE,qBAAqB,EACpC,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,KAAK,GACf,IACD,CACJ,CAAC,CAAC,CAAC,CACF,8BACE,KAAC,KAAK,IACJ,IAAI,EAAC,UAAU,EACf,OAAO,EAAE,IAAI,KACT,SAAS,CAAC,CAAC,CAAC,EAChB,aAAa,EAAE,qBAAqB,EACpC,QAAQ,EAAC,kBAAkB,EAC3B,UAAU,EAAE,CAAC,GACb,EACF,KAAC,KAAK,IACJ,IAAI,EAAC,QAAQ,KACT,SAAS,CAAC,CAAC,CAAC,EAChB,aAAa,EAAE,cAAc,EAC7B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,KAAK,GACf,IACD,CACJ,EACD,KAAC,OAAO,IACN,OAAO,EAAE,cAAc,CAAC,CAAC,EAAE,cAAc,EAAE,cAAc,CAAC,EAC1D,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,eAAe,EAAE,WAAW,EAAE,IAAI,EAAE,EACtD,iBAAiB,EAAE,KAAK,GACxB,EACD,UAAU,IAAI,KAAC,MAAM,IAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,GAAI,EACnD,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CACpB,KAAC,GAAG,IAEF,OAAO,EAAE,CAAC,CAAC,OAAO,EAClB,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,OAAO,EACzB,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EACrD,IAAI,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC1B,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,EACrB,iBAAiB,EAAE,KAAK,IANnB,CAAC,CAAC,OAAO,CAOd,CACH,CAAC,IACQ,CACb,GACU,CACd,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"BarChart.js","sourceRoot":"","sources":["../../../src/react/charts/BarChart.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ import { type ReactNode } from 'react';
2
+ import type { ChartTone } from './tokens.js';
3
+ /** One entry of the header legend — a dot and its label (CHT-2). */
4
+ export interface ChartCardLegendItem {
5
+ label: string;
6
+ /** A semantic color instead of the positional one — the same `tone` its series carries. */
7
+ tone?: ChartTone;
8
+ }
9
+ export interface ChartCardProps {
10
+ /** What is measured — "Daily volume". */
11
+ title: ReactNode;
12
+ /** The range, in one line — "Sep 13 → Oct 1" (CHT-2). */
13
+ subtitle?: ReactNode;
14
+ /**
15
+ * The legend, drawn inline in the header instead of under the plot, in SERIES ORDER: item
16
+ * `i` takes `--chart-{i+1}`, the color the chart gives its series `i` (CHT-7), unless a
17
+ * `tone` says otherwise. When set, a chart inside the card leaves its own legend off.
18
+ * Long legends wrap; on a phone-width card they fold into a "Legend" button.
19
+ */
20
+ legend?: ChartCardLegendItem[];
21
+ /** Header controls on the right — a range picker, a chart/table toggle. */
22
+ actions?: ReactNode;
23
+ /** First load: a skeleton of the frame at the frame's own size (CHT-9, STA-1). */
24
+ loading?: boolean;
25
+ /**
26
+ * No data: an empty state INSIDE the frame at the same size (CHT-9). `true` uses a generic
27
+ * title; pass `{ title, description, action }` to say what is missing and what fills it.
28
+ */
29
+ empty?: boolean | {
30
+ title: ReactNode;
31
+ description?: ReactNode;
32
+ action?: ReactNode;
33
+ };
34
+ /** Fix the plot height. Leave unset — the card takes the aspect for its width (CHT-1). */
35
+ height?: number;
36
+ /** The chart — any `cursedbelt/react/charts` chart, with its `height` left unset. */
37
+ children: ReactNode;
38
+ className?: string;
39
+ }
40
+ /** CHT-7: one color order across every chart — the same `--chart-*` the chart's series take. */
41
+ export declare function legendColor(item: ChartCardLegendItem, index: number): string;
42
+ /**
43
+ * The chart's frame (CHT-1, CHT-2, CHT-9): a card whose header holds the title, the range and
44
+ * an inline legend, and whose body owns the plot's SHAPE — the chart inside measures the same
45
+ * width and takes the same aspect, so the loading skeleton, the empty state and the chart are
46
+ * one size and nothing moves when the data lands. Collapse a sidebar beside it and the chart
47
+ * re-measures; it never clips.
48
+ *
49
+ * Build an operations-console Trends section from this and a `DataTable` with no app-local
50
+ * styling (`docs/design/blueprints/operations-console.md`).
51
+ */
52
+ export declare function ChartCard({ title, subtitle, legend, actions, loading, empty, height, children, className, }: ChartCardProps): import("react").JSX.Element;
53
+ //# sourceMappingURL=ChartCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChartCard.d.ts","sourceRoot":"","sources":["../../../src/react/charts/ChartCard.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAU,MAAM,OAAO,CAAC;AAS/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,oEAAoE;AACpE,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,2FAA2F;IAC3F,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,yCAAyC;IACzC,KAAK,EAAE,SAAS,CAAC;IACjB,yDAAyD;IACzD,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAC/B,2EAA2E;IAC3E,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,kFAAkF;IAClF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG;QAAE,KAAK,EAAE,SAAS,CAAC;QAAC,WAAW,CAAC,EAAE,SAAS,CAAC;QAAC,MAAM,CAAC,EAAE,SAAS,CAAA;KAAE,CAAC;IACpF,0FAA0F;IAC1F,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qFAAqF;IACrF,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAUD,gGAAgG;AAChG,wBAAgB,WAAW,CAAC,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAE5E;AAkBD;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,QAAQ,EACR,MAAM,EACN,OAAO,EACP,OAAe,EACf,KAAa,EACb,MAAM,EACN,QAAQ,EACR,SAAS,GACV,EAAE,cAAc,+BAkDhB"}
@@ -0,0 +1,46 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useRef } from 'react';
3
+ import { Button } from '../components/Button.js';
4
+ import { EmptyState } from '../components/EmptyState.js';
5
+ import { Popover } from '../components/Popover.js';
6
+ import { Skeleton } from '../components/Skeleton.js';
7
+ import { Surface } from '../components/Surface.js';
8
+ import { useElementSize } from '../hooks/useResizeObserver.js';
9
+ import { cn } from '../lib/cn.js';
10
+ import { CHART_PHONE_MAX, ChartCardContext, chartHeight } from './chartBox.js';
11
+ const TONE_VAR = {
12
+ accent: 'var(--accent)',
13
+ success: 'var(--success)',
14
+ warning: 'var(--warning)',
15
+ danger: 'var(--destructive)',
16
+ neutral: 'var(--muted-foreground)',
17
+ };
18
+ /** CHT-7: one color order across every chart — the same `--chart-*` the chart's series take. */
19
+ export function legendColor(item, index) {
20
+ return item.tone ? TONE_VAR[item.tone] : `var(--chart-${(index % 8) + 1})`;
21
+ }
22
+ function LegendList({ items, className }) {
23
+ return (_jsx("ul", { "data-cb-chart-legend": '', className: cn('m-0 flex list-none flex-wrap items-center gap-x-3 gap-y-1 p-0 text-xs', className), children: items.map((item, i) => (_jsxs("li", { className: 'flex min-w-0 items-center gap-1.5 text-muted-foreground', children: [_jsx("svg", { "aria-hidden": true, className: 'size-2 shrink-0', viewBox: '0 0 8 8', children: _jsx("circle", { cx: '4', cy: '4', r: '4', fill: legendColor(item, i) }) }), _jsx("span", { className: 'truncate', children: item.label })] }, item.label))) }));
24
+ }
25
+ /**
26
+ * The chart's frame (CHT-1, CHT-2, CHT-9): a card whose header holds the title, the range and
27
+ * an inline legend, and whose body owns the plot's SHAPE — the chart inside measures the same
28
+ * width and takes the same aspect, so the loading skeleton, the empty state and the chart are
29
+ * one size and nothing moves when the data lands. Collapse a sidebar beside it and the chart
30
+ * re-measures; it never clips.
31
+ *
32
+ * Build an operations-console Trends section from this and a `DataTable` with no app-local
33
+ * styling (`docs/design/blueprints/operations-console.md`).
34
+ */
35
+ export function ChartCard({ title, subtitle, legend, actions, loading = false, empty = false, height, children, className, }) {
36
+ const bodyRef = useRef(null);
37
+ const { width } = useElementSize(bodyRef, { layout: true });
38
+ const plotHeight = height ?? chartHeight(width);
39
+ const phone = width > 0 && width < CHART_PHONE_MAX;
40
+ // A phone header has room for two or three dots; past that the legend folds (CHT-2) rather
41
+ // than push the plot down the screen.
42
+ const foldLegend = phone && legend != null && legend.length > 3;
43
+ const emptyContent = empty === true ? { title: 'No data for this range' } : empty || null;
44
+ return (_jsxs(Surface, { level: 'flat', pad: 'md', radius: 'lg', className: cn('flex min-w-0 flex-col gap-3', className), "data-cb-chart-card": '', children: [_jsxs("div", { className: 'flex min-w-0 flex-wrap items-start justify-between gap-x-4 gap-y-2', children: [_jsxs("div", { className: 'flex min-w-0 flex-col gap-0.5', children: [_jsx("h3", { className: 'truncate text-sm font-semibold text-foreground', children: title }), subtitle != null && _jsx("p", { className: 'truncate text-xs tabular-nums text-muted-foreground', children: subtitle })] }), _jsxs("div", { className: 'flex min-w-0 flex-wrap items-center justify-end gap-x-3 gap-y-2', children: [legend && legend.length > 0 && !foldLegend && _jsx(LegendList, { items: legend, className: 'justify-end' }), foldLegend && legend && (_jsx(Popover, { trigger: _jsx(Button, { variant: 'ghost', size: 'sm', tooltip: 'Show what each color is', tooltipMobile: 'off', children: `Legend · ${legend.length}` }), align: 'end', label: 'Chart legend', children: _jsx(LegendList, { items: legend, className: 'flex-col items-start' }) })), actions] })] }), _jsx("div", { ref: bodyRef, className: 'min-w-0', "data-cb-chart-body": '', children: loading ? (_jsx(Skeleton, { className: 'w-full rounded-md', style: { height: plotHeight }, "data-cb-chart-skeleton": '' })) : emptyContent ? (_jsx("div", { className: 'flex w-full items-center justify-center rounded-md border border-dashed border-border', style: { height: plotHeight }, children: _jsx(EmptyState, { compact: true, title: emptyContent.title, description: emptyContent.description, action: emptyContent.action }) })) : (_jsx(ChartCardContext.Provider, { value: { legendInHeader: legend != null && legend.length > 0, height }, children: children })) })] }));
45
+ }
46
+ //# sourceMappingURL=ChartCard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChartCard.js","sourceRoot":"","sources":["../../../src/react/charts/ChartCard.tsx"],"names":[],"mappings":"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"}
@@ -1,19 +1,26 @@
1
1
  import { type ReactElement } from 'react';
2
+ import { type ChartBox } from './chartBox.js';
2
3
  import { type ChartTokens } from './tokens.js';
3
4
  export type ChartFrameProps = {
4
5
  /** Human label for the chart's `role="img"` wrapper (SVG a11y). */
5
6
  ariaLabel: string;
6
- /** Pixel height of the responsive container. Width is always 100%. */
7
+ /**
8
+ * Pixel height of the plot. Leave it unset: the frame takes its shape from its own width
9
+ * (CHT-1 — 4:3 on a phone, 2:1 on a desktop, 3:1 on a very wide screen, clamped to
10
+ * 160–480px) and re-measures when its container resizes. Width is always 100%.
11
+ */
7
12
  height?: number;
8
13
  className?: string;
9
- /** Render the recharts chart from the live tokens. */
10
- children: (tokens: ChartTokens) => ReactElement;
14
+ /** Render the recharts chart from the live tokens and the measured box. */
15
+ children: (tokens: ChartTokens, box: ChartBox) => ReactElement;
11
16
  };
12
17
  /**
13
18
  * The shared chart wrapper. Its `role="img"` element is the cascade anchor
14
19
  * useChartTokens reads from (so a `.dark`/accent ancestor themes the chart), and it
15
- * hosts a recharts <ResponsiveContainer> that owns sizing — every chart is 100% wide
16
- * and never overflows its column. All wrappers below build on it.
20
+ * hosts a recharts <ResponsiveContainer> that owns the width — every chart is 100% wide
21
+ * and never overflows its column. The HEIGHT is the frame's: it measures its own width
22
+ * (a sidebar folding re-measures it) and derives the plot's shape and its marks' weight
23
+ * from it — see `chartBox`. All wrappers below build on it.
17
24
  */
18
25
  export declare function ChartFrame({ ariaLabel, height, className, children }: ChartFrameProps): import("react").JSX.Element;
19
26
  //# sourceMappingURL=ChartFrame.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChartFrame.d.ts","sourceRoot":"","sources":["../../../src/react/charts/ChartFrame.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAU,MAAM,OAAO,CAAC;AAGlD,OAAO,EAAE,KAAK,WAAW,EAAkB,MAAM,aAAa,CAAC;AAE/D,MAAM,MAAM,eAAe,GAAG;IAC5B,mEAAmE;IACnE,SAAS,EAAE,MAAM,CAAC;IAClB,sEAAsE;IACtE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sDAAsD;IACtD,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,YAAY,CAAC;CACjD,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,EAAE,SAAS,EAAE,MAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,eAAe,+BAU3F"}
1
+ {"version":3,"file":"ChartFrame.d.ts","sourceRoot":"","sources":["../../../src/react/charts/ChartFrame.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAsB,MAAM,OAAO,CAAC;AAI9D,OAAO,EAAE,KAAK,QAAQ,EAA8B,MAAM,eAAe,CAAC;AAC1E,OAAO,EAAE,KAAK,WAAW,EAAkB,MAAM,aAAa,CAAC;AAE/D,MAAM,MAAM,eAAe,GAAG;IAC5B,mEAAmE;IACnE,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,QAAQ,KAAK,YAAY,CAAC;CAChE,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,eAAe,+BAoBrF"}
@@ -1,17 +1,24 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { useRef } from 'react';
2
+ import { useContext, useRef } from 'react';
3
3
  import { ResponsiveContainer } from 'recharts';
4
+ import { useElementSize } from '../hooks/useResizeObserver.js';
4
5
  import { cn } from '../lib/cn.js';
6
+ import { ChartCardContext, chartBox } from './chartBox.js';
5
7
  import { useChartTokens } from './tokens.js';
6
8
  /**
7
9
  * The shared chart wrapper. Its `role="img"` element is the cascade anchor
8
10
  * useChartTokens reads from (so a `.dark`/accent ancestor themes the chart), and it
9
- * hosts a recharts <ResponsiveContainer> that owns sizing — every chart is 100% wide
10
- * and never overflows its column. All wrappers below build on it.
11
+ * hosts a recharts <ResponsiveContainer> that owns the width — every chart is 100% wide
12
+ * and never overflows its column. The HEIGHT is the frame's: it measures its own width
13
+ * (a sidebar folding re-measures it) and derives the plot's shape and its marks' weight
14
+ * from it — see `chartBox`. All wrappers below build on it.
11
15
  */
12
- export function ChartFrame({ ariaLabel, height = 240, className, children }) {
16
+ export function ChartFrame({ ariaLabel, height, className, children }) {
13
17
  const ref = useRef(null);
14
18
  const tokens = useChartTokens(ref);
15
- return (_jsx("div", { ref: ref, role: 'img', "aria-label": ariaLabel, "data-cb-chart": '', className: cn('w-full', className), children: _jsx(ResponsiveContainer, { width: '100%', height: height, children: children(tokens) }) }));
19
+ const { width } = useElementSize(ref, { layout: true });
20
+ const card = useContext(ChartCardContext);
21
+ const box = chartBox(width, { height: height ?? card?.height, legendInHeader: card?.legendInHeader ?? false });
22
+ return (_jsx("div", { ref: ref, role: 'img', "aria-label": ariaLabel, "data-cb-chart": '', "data-cb-chart-tier": box.tier, className: cn('w-full min-w-0', className), children: _jsx(ResponsiveContainer, { width: '100%', height: box.height, children: children(tokens, box) }) }));
16
23
  }
17
24
  //# sourceMappingURL=ChartFrame.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChartFrame.js","sourceRoot":"","sources":["../../../src/react/charts/ChartFrame.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAqB,MAAM,EAAE,MAAM,OAAO,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAoB,cAAc,EAAE,MAAM,aAAa,CAAC;AAY/D;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAmB;IAC1F,MAAM,GAAG,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IACnC,OAAO,CACL,cAAK,GAAG,EAAE,GAAG,EAAE,IAAI,EAAC,KAAK,gBAAa,SAAS,mBAAgB,EAAE,EAAC,SAAS,EAAE,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,YAClG,KAAC,mBAAmB,IAAC,KAAK,EAAC,MAAM,EAAC,MAAM,EAAE,MAAM,YAC7C,QAAQ,CAAC,MAAM,CAAC,GACG,GAClB,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"ChartFrame.js","sourceRoot":"","sources":["../../../src/react/charts/ChartFrame.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAqB,UAAU,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAiB,gBAAgB,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC1E,OAAO,EAAoB,cAAc,EAAE,MAAM,aAAa,CAAC;AAgB/D;;;;;;;GAOG;AACH,MAAM,UAAU,UAAU,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAmB;IACpF,MAAM,GAAG,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IACnC,MAAM,EAAE,KAAK,EAAE,GAAG,cAAc,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,MAAM,IAAI,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC;IAC1C,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,IAAI,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,IAAI,KAAK,EAAE,CAAC,CAAC;IAC/G,OAAO,CACL,cACE,GAAG,EAAE,GAAG,EACR,IAAI,EAAC,KAAK,gBACE,SAAS,mBACP,EAAE,wBACI,GAAG,CAAC,IAAI,EAC5B,SAAS,EAAE,EAAE,CAAC,gBAAgB,EAAE,SAAS,CAAC,YAE1C,KAAC,mBAAmB,IAAC,KAAK,EAAC,MAAM,EAAC,MAAM,EAAE,GAAG,CAAC,MAAM,YACjD,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,GACF,GAClB,CACP,CAAC;AACJ,CAAC"}
@@ -4,7 +4,7 @@ import { FALLBACK_TOKENS } from './tokens.js';
4
4
  export function ChartLegend({ payload, tokens = FALLBACK_TOKENS }) {
5
5
  if (!payload?.length)
6
6
  return null;
7
- return (_jsx("ul", { className: 'm-0 flex list-none flex-wrap items-center justify-center gap-x-4 gap-y-1 p-0 pt-2 text-xs', style: { color: tokens.foreground }, children: payload.map((entry, i) => (_jsxs("li", { className: 'flex items-center gap-1.5', children: [_jsx("span", { className: 'inline-block h-2.5 w-2.5 shrink-0 rounded-[3px]', style: { backgroundColor: entry.color } }), _jsx("span", { children: entry.value })] }, typeof entry.value === 'string' || typeof entry.value === 'number'
7
+ return (_jsx("ul", { className: 'm-0 flex list-none flex-wrap items-center justify-center gap-x-4 gap-y-1 p-0 pt-2 text-xs', style: { color: tokens.foreground }, children: payload.map((entry, i) => (_jsxs("li", { className: 'flex items-center gap-1.5', children: [_jsx("span", { className: 'inline-block h-2.5 w-2.5 shrink-0 rounded-xs', style: { backgroundColor: entry.color } }), _jsx("span", { children: entry.value })] }, typeof entry.value === 'string' || typeof entry.value === 'number'
8
8
  ? String(entry.value)
9
9
  : String(entry.dataKey ?? i)))) }));
10
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ChartLegend.js","sourceRoot":"","sources":["../../../src/react/charts/ChartLegend.tsx"],"names":[],"mappings":";AACA,OAAO,EAAoB,eAAe,EAAE,MAAM,aAAa,CAAC;AAShE,mFAAmF;AACnF,MAAM,UAAU,WAAW,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,eAAe,EAAoB;IACjF,IAAI,CAAC,OAAO,EAAE,MAAM;QAAE,OAAO,IAAI,CAAC;IAClC,OAAO,CACL,aACE,SAAS,EAAC,2FAA2F,EACrG,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,UAAU,EAAE,YAElC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAIzB,cAME,SAAS,EAAC,2BAA2B,aAErC,eACE,SAAS,EAAC,iDAAiD,EAC3D,KAAK,EAAE,EAAE,eAAe,EAAE,KAAK,CAAC,KAAK,EAAE,GACvC,EACF,yBAAO,KAAK,CAAC,KAAK,GAAQ,KAVxB,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;YAChE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;YACrB,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC,CAS7B,CACN,CAAC,GACC,CACN,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAAmB,EAAE,EAAE,CAAC,CAAC,CAAwB,EAAE,EAAE,CAAC,CAClF,KAAC,WAAW,IAAC,OAAO,EAAE,CAAC,CAAC,OAAsC,EAAE,MAAM,EAAE,MAAM,GAAI,CACnF,CAAC"}
1
+ {"version":3,"file":"ChartLegend.js","sourceRoot":"","sources":["../../../src/react/charts/ChartLegend.tsx"],"names":[],"mappings":";AACA,OAAO,EAAoB,eAAe,EAAE,MAAM,aAAa,CAAC;AAShE,mFAAmF;AACnF,MAAM,UAAU,WAAW,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,eAAe,EAAoB;IACjF,IAAI,CAAC,OAAO,EAAE,MAAM;QAAE,OAAO,IAAI,CAAC;IAClC,OAAO,CACL,aACE,SAAS,EAAC,2FAA2F,EACrG,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,UAAU,EAAE,YAElC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAIzB,cAME,SAAS,EAAC,2BAA2B,aAErC,eACE,SAAS,EAAC,8CAA8C,EACxD,KAAK,EAAE,EAAE,eAAe,EAAE,KAAK,CAAC,KAAK,EAAE,GACvC,EACF,yBAAO,KAAK,CAAC,KAAK,GAAQ,KAVxB,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;YAChE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;YACrB,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC,CAS7B,CACN,CAAC,GACC,CACN,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAAmB,EAAE,EAAE,CAAC,CAAC,CAAwB,EAAE,EAAE,CAAC,CAClF,KAAC,WAAW,IAAC,OAAO,EAAE,CAAC,CAAC,OAAsC,EAAE,MAAM,EAAE,MAAM,GAAI,CACnF,CAAC"}
@@ -50,20 +50,20 @@ export function HeatmapChart({ cells, rows, columns, ariaLabel, tone = 'accent',
50
50
  const bottom = observed.length > 0 ? Math.min(...observed) : 0;
51
51
  const title = (cell) => cellTitle?.(cell) ??
52
52
  `${rowLabel(cell.row)} · ${cell.column}: ${cell.value === null ? 'no data' : valueFormatter(cell.value)}`;
53
- return (_jsxs("div", { ref: ref, "data-cb-chart": '', className: cn('flex w-full min-w-0 flex-col gap-2', className), children: [_jsxs("div", { role: 'img', "aria-label": ariaLabel, className: 'grid min-w-0 gap-[2px]',
53
+ return (_jsxs("div", { ref: ref, "data-cb-chart": '', className: cn('flex w-full min-w-0 flex-col gap-2', className), children: [_jsxs("div", { role: 'img', "aria-label": ariaLabel, className: 'grid min-w-0 gap-0.5',
54
54
  // The row-label column is sized to its content; every data column shares
55
55
  // the remainder equally, so the grid fits its container at any width.
56
56
  style: { gridTemplateColumns: `auto repeat(${columns.length}, minmax(0, 1fr))` }, children: [_jsx("div", { "aria-hidden": true }), columns.map((column, i) => (_jsx("div", { "aria-hidden": true, className: 'cb-meta-label truncate text-center text-caption leading-none', children: columnLabel(column, i) }, column))), rows.map((row) => (_jsx(Row, { label: rowLabel(row), children: columns.map((column) => {
57
57
  const cell = byKey.get(cellKey(row, column)) ?? { row, column, value: null };
58
58
  const empty = cell.value === null;
59
59
  const text = title(cell);
60
- return (_jsx(CellChrome, { label: text, className: cn('rounded-[3px] transition-opacity', empty && 'border border-border border-dashed', onCellClick && 'cursor-pointer hover:opacity-80 focus-visible:cb-ring'), style: {
60
+ return (_jsx(CellChrome, { label: text, className: cn('rounded-xs transition-opacity', empty && 'border border-border border-dashed', onCellClick && 'cursor-pointer hover:opacity-80 focus-visible:cb-ring'), style: {
61
61
  height: cellHeight,
62
62
  ...(empty
63
63
  ? {}
64
64
  : { background: sequentialStep(hue, heatFraction(cell.value ?? 0, top)) }),
65
65
  }, onActivate: onCellClick ? () => onCellClick(cell) : undefined }, column));
66
- }) }, row)))] }), legend && (_jsxs("div", { className: 'flex items-center gap-2 text-caption text-muted-foreground', children: [_jsx("span", { children: valueFormatter(bottom) }), _jsx("div", { className: 'flex h-2 flex-1 gap-[2px]', children: [0, 0.25, 0.5, 0.75, 1].map((f) => (_jsx("div", { className: 'flex-1 rounded-[2px]', style: { background: sequentialStep(hue, f) } }, f))) }), _jsx("span", { children: valueFormatter(top) }), _jsxs("span", { className: 'ml-2 inline-flex items-center gap-1', children: [_jsx("span", { className: 'inline-block h-2 w-3 rounded-[2px] border border-border border-dashed' }), "no data"] })] })), footnote && _jsx("div", { className: 'text-caption text-muted-foreground', children: footnote })] }));
66
+ }) }, row)))] }), legend && (_jsxs("div", { className: 'flex items-center gap-2 text-caption text-muted-foreground', children: [_jsx("span", { children: valueFormatter(bottom) }), _jsx("div", { className: 'flex h-2 flex-1 gap-0.5', children: [0, 0.25, 0.5, 0.75, 1].map((f) => (_jsx("div", { className: 'flex-1 rounded-xs', style: { background: sequentialStep(hue, f) } }, f))) }), _jsx("span", { children: valueFormatter(top) }), _jsxs("span", { className: 'ml-2 inline-flex items-center gap-1', children: [_jsx("span", { className: 'inline-block h-2 w-3 rounded-xs border border-border border-dashed' }), "no data"] })] })), footnote && _jsx("div", { className: 'text-caption text-muted-foreground', children: footnote })] }));
67
67
  }
68
68
  /** A label cell plus its row of data cells — a fragment, so the grid stays flat. */
69
69
  function Row({ label, children }) {
@@ -1 +1 @@
1
- {"version":3,"file":"HeatmapChart.js","sourceRoot":"","sources":["../../../src/react/charts/HeatmapChart.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HeatmapChart.js","sourceRoot":"","sources":["../../../src/react/charts/HeatmapChart.tsx"],"names":[],"mappings":"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"}
@@ -77,7 +77,7 @@ export function IntervalTimeline({ intervals, window: windowProp, bands = [], ma
77
77
  // subtly wrong. A bar carries no text, so nothing is lost.
78
78
  return (_jsx(Tooltip, { content: hint, multiline: true, maxWidth: 340, children: onSelect ? (_jsx("button", {
79
79
  // guardrails-ignore no-raw-action-button: a chart MARK, not an action — cursedbelt's Button carries height, padding and a label slot, none of which a positioned interval bar can have. The native element is used precisely so Enter/Space, focus and disabled semantics are the browser's rather than a hand-rolled keydown handler's.
80
- type: 'button', "aria-label": label, onClick: () => onSelect(interval), className: 'absolute cursor-pointer rounded-[3px] p-0 outline-none focus-visible:ring-2 focus-visible:ring-ring', style: style })) : (_jsx("span", { role: 'img', "aria-label": label, className: 'absolute rounded-[3px]', style: style })) }, interval.id));
80
+ type: 'button', "aria-label": label, onClick: () => onSelect(interval), className: 'absolute cursor-pointer rounded-xs p-0 outline-none focus-visible:ring-2 focus-visible:ring-ring', style: style })) : (_jsx("span", { role: 'img', "aria-label": label, className: 'absolute rounded-xs', style: style })) }, interval.id));
81
81
  }), markers.map((m) => (_jsx("span", { "aria-hidden": true, className: 'absolute inset-y-0 w-px', style: { left: `${clampedPct(m.at)}%`, background: toneColor(tokens, m.tone ?? 'danger') } }, `${ref}-mark-${m.at}`)))] }), showConcurrency && peak > 0 && (_jsxs("div", {
82
82
  // guardrails-ignore no-hand-rolled-surface: the concurrency strip's plot well — an instrument surface, not a card
83
83
  className: 'relative h-8 w-full overflow-hidden rounded-md border border-border bg-surface-sunken', role: 'img', "aria-label": `How many ran at once, peaking at ${peak}`, children: [profile.map((p, i) => {
@@ -1 +1 @@
1
- {"version":3,"file":"IntervalTimeline.js","sourceRoot":"","sources":["../../../src/react/charts/IntervalTimeline.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IntervalTimeline.js","sourceRoot":"","sources":["../../../src/react/charts/IntervalTimeline.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"LineChart.d.ts","sourceRoot":"","sources":["../../../src/react/charts/LineChart.tsx"],"names":[],"mappings":"AAYA,OAAO,EAAa,KAAK,UAAU,EAAE,KAAK,WAAW,EAAe,MAAM,aAAa,CAAC;AAExF,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,UAAU,EAAE,CAAC;IACnB,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,mEAAmE;IACnE,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,gEAAgE;IAChE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,6CAA6C;IAC7C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,KAAK,MAAM,CAAC;IACpD,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3C,iCAAiC;IACjC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,KAAK,MAAM,CAAC;CACrD,CAAC;AAEF,yFAAyF;AACzF,wBAAgB,SAAS,CAAC,EACxB,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,SAAS,EACT,MAAM,EACN,MAAa,EACb,MAAM,EACN,IAAW,EACX,MAAW,EACX,cAAc,EACd,cAAc,EACd,cAAc,GACf,EAAE,cAAc,+BA6ChB"}
1
+ {"version":3,"file":"LineChart.d.ts","sourceRoot":"","sources":["../../../src/react/charts/LineChart.tsx"],"names":[],"mappings":"AAaA,OAAO,EAA6B,KAAK,UAAU,EAAE,KAAK,WAAW,EAAe,MAAM,aAAa,CAAC;AAExG,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,UAAU,EAAE,CAAC;IACnB,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,mEAAmE;IACnE,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,gEAAgE;IAChE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,6CAA6C;IAC7C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,KAAK,MAAM,CAAC;IACpD,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3C,iCAAiC;IACjC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,KAAK,MAAM,CAAC;CACrD,CAAC;AAEF,yFAAyF;AACzF,wBAAgB,SAAS,CAAC,EACxB,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,SAAS,EACT,MAAM,EACN,MAAa,EACb,MAAM,EACN,IAAW,EACX,MAAW,EACX,cAAc,EACd,cAAc,EACd,cAAc,GACf,EAAE,cAAc,+BA6ChB"}
@@ -3,10 +3,10 @@ import { CartesianGrid, Legend, Line, LineChart as RLineChart, Tooltip, XAxis, Y
3
3
  import { ChartFrame } from './ChartFrame.js';
4
4
  import { legendContent } from './ChartLegend.js';
5
5
  import { tooltipContent } from './ChartTooltip.js';
6
- import { axisProps, seriesColor } from './shared.js';
6
+ import { axisProps, valueAxisProps, seriesColor } from './shared.js';
7
7
  /** Multi-series line chart. Colors come from the tokens; callers pass no color props. */
8
8
  export function LineChart({ data, xKey, series, ariaLabel, height, smooth = true, legend, grid = true, yWidth = 44, xTickFormatter, valueFormatter, labelFormatter, }) {
9
- const showLegend = legend ?? series.length > 1;
10
- return (_jsx(ChartFrame, { ariaLabel: ariaLabel, height: height, children: (t) => (_jsxs(RLineChart, { data: data, margin: { top: 8, right: 12, bottom: 0, left: 0 }, children: [grid && (_jsx(CartesianGrid, { strokeDasharray: '3 3', stroke: t.foregroundMuted, strokeOpacity: 0.3, vertical: false })), _jsx(XAxis, { dataKey: xKey, ...axisProps(t), tickFormatter: xTickFormatter, interval: 'preserveStartEnd', minTickGap: 24 }), _jsx(YAxis, { ...axisProps(t), tickFormatter: valueFormatter, width: yWidth, axisLine: false }), _jsx(Tooltip, { content: tooltipContent(t, labelFormatter, valueFormatter), cursor: { stroke: t.foregroundMuted, strokeWidth: 1, strokeOpacity: 0.5 }, isAnimationActive: false }), showLegend && _jsx(Legend, { content: legendContent(t) }), series.map((s, i) => (_jsx(Line, { type: smooth ? 'monotone' : 'linear', dataKey: s.dataKey, name: s.name ?? s.dataKey, stroke: seriesColor(t, s, i), strokeWidth: 2, dot: false, activeDot: { r: 3 }, isAnimationActive: false }, s.dataKey)))] })) }));
9
+ const showLegend = (box) => legend ?? (!box.legendInHeader && series.length > 1);
10
+ return (_jsx(ChartFrame, { ariaLabel: ariaLabel, height: height, children: (t, box) => (_jsxs(RLineChart, { data: data, margin: { top: 8, right: 12, bottom: 0, left: 0 }, children: [grid && (_jsx(CartesianGrid, { strokeDasharray: '3 3', stroke: t.foregroundMuted, strokeOpacity: 0.3, vertical: false })), _jsx(XAxis, { dataKey: xKey, ...axisProps(t, box), tickFormatter: xTickFormatter, interval: 'preserveStartEnd', minTickGap: box.gap(24) }), _jsx(YAxis, { ...axisProps(t, box), ...valueAxisProps(box, valueFormatter), width: yWidth, axisLine: false }), _jsx(Tooltip, { content: tooltipContent(t, labelFormatter, valueFormatter), cursor: { stroke: t.foregroundMuted, strokeWidth: 1, strokeOpacity: 0.5 }, isAnimationActive: false }), showLegend(box) && _jsx(Legend, { content: legendContent(t) }), series.map((s, i) => (_jsx(Line, { type: smooth ? 'monotone' : 'linear', dataKey: s.dataKey, name: s.name ?? s.dataKey, stroke: seriesColor(t, s, i), strokeWidth: box.stroke, dot: false, activeDot: { r: 3 }, isAnimationActive: false }, s.dataKey)))] })) }));
11
11
  }
12
12
  //# sourceMappingURL=LineChart.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LineChart.js","sourceRoot":"","sources":["../../../src/react/charts/LineChart.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,aAAa,EACb,MAAM,EACN,IAAI,EACJ,SAAS,IAAI,UAAU,EACvB,OAAO,EACP,KAAK,EACL,KAAK,GACN,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAqC,WAAW,EAAE,MAAM,aAAa,CAAC;AAwBxF,yFAAyF;AACzF,MAAM,UAAU,SAAS,CAAC,EACxB,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,SAAS,EACT,MAAM,EACN,MAAM,GAAG,IAAI,EACb,MAAM,EACN,IAAI,GAAG,IAAI,EACX,MAAM,GAAG,EAAE,EACX,cAAc,EACd,cAAc,EACd,cAAc,GACC;IACf,MAAM,UAAU,GAAG,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IAC/C,OAAO,CACL,KAAC,UAAU,IAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,YAC7C,CAAC,CAAC,EAAE,EAAE,CAAC,CACN,MAAC,UAAU,IAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,aACtE,IAAI,IAAI,CACP,KAAC,aAAa,IACZ,eAAe,EAAC,KAAK,EACrB,MAAM,EAAE,CAAC,CAAC,eAAe,EACzB,aAAa,EAAE,GAAG,EAClB,QAAQ,EAAE,KAAK,GACf,CACH,EACD,KAAC,KAAK,IACJ,OAAO,EAAE,IAAI,KACT,SAAS,CAAC,CAAC,CAAC,EAChB,aAAa,EAAE,cAAc,EAC7B,QAAQ,EAAC,kBAAkB,EAC3B,UAAU,EAAE,EAAE,GACd,EACF,KAAC,KAAK,OAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,GAAI,EAC1F,KAAC,OAAO,IACN,OAAO,EAAE,cAAc,CAAC,CAAC,EAAE,cAAc,EAAE,cAAc,CAAC,EAC1D,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,eAAe,EAAE,WAAW,EAAE,CAAC,EAAE,aAAa,EAAE,GAAG,EAAE,EACzE,iBAAiB,EAAE,KAAK,GACxB,EACD,UAAU,IAAI,KAAC,MAAM,IAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,GAAI,EACnD,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CACpB,KAAC,IAAI,IAEH,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,EACpC,OAAO,EAAE,CAAC,CAAC,OAAO,EAClB,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,OAAO,EACzB,MAAM,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC5B,WAAW,EAAE,CAAC,EACd,GAAG,EAAE,KAAK,EACV,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EACnB,iBAAiB,EAAE,KAAK,IARnB,CAAC,CAAC,OAAO,CASd,CACH,CAAC,IACS,CACd,GACU,CACd,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"LineChart.js","sourceRoot":"","sources":["../../../src/react/charts/LineChart.tsx"],"names":[],"mappings":"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"}