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 +1 @@
1
- {"version":3,"file":"TimeSeriesChart.d.ts","sourceRoot":"","sources":["../../../src/react/charts/TimeSeriesChart.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAa,KAAK,UAAU,EAAE,KAAK,WAAW,EAA8B,MAAM,aAAa,CAAC;AACvG,OAAO,EAAE,KAAK,SAAS,EAAa,MAAM,aAAa,CAAC;AAExD,4EAA4E;AAC5E,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG;IACrC,+EAA+E;IAC/E,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,wEAAwE;IACxE,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,kFAAkF;AAClF,MAAM,MAAM,aAAa,GAAG;IAC1B,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB,CAAC;AAEF,+EAA+E;AAC/E,MAAM,MAAM,QAAQ,GAAG;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,UAAU,EAAE,CAAC;IACnB,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,mEAAmE;IACnE,SAAS,EAAE,MAAM,CAAC;IAClB,sEAAsE;IACtE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8DAA8D;IAC9D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3C,kCAAkC;IAClC,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;IAC7B;;;;OAIG;IACH,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;IACnB;;;OAGG;IACH,IAAI,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,SAAS,CAAA;KAAE,CAAC;IAChE,gEAAgE;IAChE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,6EAA6E;IAC7E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,EAC9B,IAAI,EACJ,MAAM,EACN,SAAS,EACT,IAAW,EACX,MAAY,EACZ,WAAmB,EACnB,cAAc,EACd,UAAU,EACV,KAAK,EACL,IAAI,EACJ,MAAM,EACN,MAAW,EACX,YAAmB,GACpB,EAAE,oBAAoB,+BAmItB"}
1
+ {"version":3,"file":"TimeSeriesChart.d.ts","sourceRoot":"","sources":["../../../src/react/charts/TimeSeriesChart.tsx"],"names":[],"mappings":"AAMA,OAAO,EAA6B,KAAK,UAAU,EAAE,KAAK,WAAW,EAA8B,MAAM,aAAa,CAAC;AACvH,OAAO,EAAE,KAAK,SAAS,EAAa,MAAM,aAAa,CAAC;AAExD,4EAA4E;AAC5E,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG;IACrC,+EAA+E;IAC/E,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,wEAAwE;IACxE,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,kFAAkF;AAClF,MAAM,MAAM,aAAa,GAAG;IAC1B,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB,CAAC;AAEF,+EAA+E;AAC/E,MAAM,MAAM,QAAQ,GAAG;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,UAAU,EAAE,CAAC;IACnB,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,mEAAmE;IACnE,SAAS,EAAE,MAAM,CAAC;IAClB,sEAAsE;IACtE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8DAA8D;IAC9D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3C,kCAAkC;IAClC,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;IAC7B;;;;OAIG;IACH,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;IACnB;;;OAGG;IACH,IAAI,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,SAAS,CAAA;KAAE,CAAC;IAChE,gEAAgE;IAChE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,6EAA6E;IAC7E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,EAC9B,IAAI,EACJ,MAAM,EACN,SAAS,EACT,IAAW,EACX,MAAM,EACN,WAAmB,EACnB,cAAc,EACd,UAAU,EACV,KAAK,EACL,IAAI,EACJ,MAAM,EACN,MAAW,EACX,YAAmB,GACpB,EAAE,oBAAoB,+BAmItB"}
@@ -4,7 +4,7 @@ import { ChartFrame } from './ChartFrame.js';
4
4
  import { legendContent } from './ChartLegend.js';
5
5
  import { tooltipContent } from './ChartTooltip.js';
6
6
  import { formatTimeFull, formatTimeTick } from './format.js';
7
- import { axisProps, seriesColor, useGradientId } from './shared.js';
7
+ import { axisProps, valueAxisProps, seriesColor, useGradientId } from './shared.js';
8
8
  import { toneColor } from './tokens.js';
9
9
  /**
10
10
  * The workhorse time-series: multiple series over an epoch-ms x-axis, mixing
@@ -17,24 +17,24 @@ import { toneColor } from './tokens.js';
17
17
  * reference line" is one chart, and composing it from three would not share an
18
18
  * axis.
19
19
  */
20
- export function TimeSeriesChart({ data, series, ariaLabel, xKey = 'ts', height = 240, includeDate = false, valueFormatter, references, bands, band, legend, yWidth = 52, zeroBaseline = true, }) {
20
+ export function TimeSeriesChart({ data, series, ariaLabel, xKey = 'ts', height, includeDate = false, valueFormatter, references, bands, band, legend, yWidth = 52, zeroBaseline = true, }) {
21
21
  const gradId = useGradientId();
22
- const showLegend = legend ?? series.length > 1;
23
- return (_jsx(ChartFrame, { ariaLabel: ariaLabel, height: height, children: (t) => (_jsxs(ComposedChart, { data: data, margin: { top: 8, right: 12, bottom: 0, left: 0 }, children: [_jsx("defs", { children: series.map((s, i) => {
22
+ const showLegend = (box) => legend ?? (!box.legendInHeader && series.length > 1);
23
+ return (_jsx(ChartFrame, { ariaLabel: ariaLabel, height: height, children: (t, box) => (_jsxs(ComposedChart, { data: data, margin: { top: 8, right: 12, bottom: 0, left: 0 }, children: [_jsx("defs", { children: series.map((s, i) => {
24
24
  const c = seriesColor(t, s, i);
25
25
  return (_jsxs("linearGradient", { id: `${gradId}-${s.dataKey}`, x1: '0', y1: '0', x2: '0', y2: '1', children: [_jsx("stop", { offset: '0%', stopColor: c, stopOpacity: 0.24 }), _jsx("stop", { offset: '100%', stopColor: c, stopOpacity: 0.02 })] }, s.dataKey));
26
26
  }) }), _jsx(CartesianGrid, { strokeDasharray: '3 3', stroke: t.foregroundMuted, strokeOpacity: 0.3, vertical: false }), _jsx(XAxis, { dataKey: xKey, type: 'number',
27
27
  // An epoch-ms axis must be scaled by TIME, not by index: with gaps
28
28
  // (a sleeping host, a paused collector) an index axis draws unequal
29
29
  // intervals as equal and silently flattens the hole.
30
- domain: ['dataMin', 'dataMax'], scale: 'time', ...axisProps(t), tickFormatter: (v) => formatTimeTick(Number(v), includeDate), minTickGap: 32 }), _jsx(YAxis, { ...axisProps(t), tickFormatter: valueFormatter, width: yWidth, axisLine: false, domain: zeroBaseline ? [0, 'auto'] : ['auto', 'auto'] }), bands?.map((b) => (_jsx(ReferenceArea, { x1: b.from, x2: b.to, fill: toneColor(t, b.tone ?? 'neutral'), fillOpacity: 0.12, strokeOpacity: 0, label: b.label ? { value: b.label, fill: t.foregroundMuted, fontSize: 12 } : undefined }, `${b.from}-${b.to}`))), band && (_jsxs(_Fragment, { children: [_jsx(Area, { dataKey: band.lowerKey, stackId: 'cb-band', stroke: 'none', fill: 'none', isAnimationActive: false, legendType: 'none', tooltipType: 'none' }), _jsx(Area, { dataKey: band.upperKey, stackId: 'cb-band', stroke: 'none', fill: toneColor(t, band.tone ?? 'neutral'), fillOpacity: 0.14, isAnimationActive: false, legendType: 'none', tooltipType: 'none' })] })), _jsx(Tooltip, { content: tooltipContent(t, (l) => formatTimeFull(Number(l)), valueFormatter), cursor: { stroke: t.foregroundMuted, strokeWidth: 1, strokeOpacity: 0.5 }, isAnimationActive: false }), showLegend && _jsx(Legend, { content: legendContent(t) }), references?.map((r) => (_jsx(ReferenceLine, { y: r.y, stroke: toneColor(t, r.tone ?? 'warning'), strokeDasharray: '4 4', label: r.label ? { value: r.label, fill: t.foregroundMuted, fontSize: 12, position: 'right' } : undefined }, `${r.y}-${r.label ?? ''}`))), series.map((s, i) => {
30
+ domain: ['dataMin', 'dataMax'], scale: 'time', ...axisProps(t, box), tickFormatter: (v) => formatTimeTick(Number(v), includeDate), minTickGap: box.gap(32) }), _jsx(YAxis, { ...axisProps(t, box), ...valueAxisProps(box, valueFormatter), width: yWidth, axisLine: false, domain: zeroBaseline ? [0, 'auto'] : ['auto', 'auto'] }), bands?.map((b) => (_jsx(ReferenceArea, { x1: b.from, x2: b.to, fill: toneColor(t, b.tone ?? 'neutral'), fillOpacity: 0.12, strokeOpacity: 0, label: b.label ? { value: b.label, fill: t.foregroundMuted, fontSize: 12 } : undefined }, `${b.from}-${b.to}`))), band && (_jsxs(_Fragment, { children: [_jsx(Area, { dataKey: band.lowerKey, stackId: 'cb-band', stroke: 'none', fill: 'none', isAnimationActive: false, legendType: 'none', tooltipType: 'none' }), _jsx(Area, { dataKey: band.upperKey, stackId: 'cb-band', stroke: 'none', fill: toneColor(t, band.tone ?? 'neutral'), fillOpacity: 0.14, isAnimationActive: false, legendType: 'none', tooltipType: 'none' })] })), _jsx(Tooltip, { content: tooltipContent(t, (l) => formatTimeFull(Number(l)), valueFormatter), cursor: { stroke: t.foregroundMuted, strokeWidth: 1, strokeOpacity: 0.5 }, isAnimationActive: false }), showLegend(box) && _jsx(Legend, { content: legendContent(t) }), references?.map((r) => (_jsx(ReferenceLine, { y: r.y, stroke: toneColor(t, r.tone ?? 'warning'), strokeDasharray: '4 4', label: r.label ? { value: r.label, fill: t.foregroundMuted, fontSize: 12, position: 'right' } : undefined }, `${r.y}-${r.label ?? ''}`))), series.map((s, i) => {
31
31
  const c = seriesColor(t, s, i);
32
32
  const common = {
33
33
  type: 'monotone',
34
34
  dataKey: s.dataKey,
35
35
  name: s.name ?? s.dataKey,
36
36
  stroke: c,
37
- strokeWidth: 2,
37
+ strokeWidth: box.stroke,
38
38
  isAnimationActive: false,
39
39
  ...(s.dashed ? { strokeDasharray: '5 4' } : {}),
40
40
  // A gap in the data must render as a gap. Without this recharts
@@ -1 +1 @@
1
- {"version":3,"file":"TimeSeriesChart.js","sourceRoot":"","sources":["../../../src/react/charts/TimeSeriesChart.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TimeSeriesChart.js","sourceRoot":"","sources":["../../../src/react/charts/TimeSeriesChart.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ /** Width tiers of the chart's CONTAINER (not the viewport — a chart in a narrow pane on a
2
+ * wide screen is a phone-sized chart). */
3
+ export type ChartTier = 'phone' | 'desktop' | 'wide';
4
+ export interface ChartBox {
5
+ tier: ChartTier;
6
+ /** The container's measured width in px (0 before the first measure). */
7
+ width: number;
8
+ /** The plot height the frame claims. */
9
+ height: number;
10
+ /** Series stroke width: heavier on a wide screen, lighter on a phone (CHT-6). */
11
+ stroke: number;
12
+ /** How many y ticks to aim for — fewer gridlines on a phone (CHT-6). */
13
+ tickCount: number;
14
+ /** Axis tick font size in px. */
15
+ tickFontSize: number;
16
+ /** Scale a chart's own `minTickGap` for the tier — x labels thin out on a phone. */
17
+ gap: (base: number) => number;
18
+ /** True inside a `ChartCard` that draws the legend in its header (CHT-2) — the chart then
19
+ * leaves its own legend off, so the plot keeps its height. */
20
+ legendInHeader: boolean;
21
+ }
22
+ /** Below this container width a chart is phone-shaped. */
23
+ export declare const CHART_PHONE_MAX = 560;
24
+ /** At or above this container width a chart is wide-screen-shaped (a `wide` 1536px page on a
25
+ * 2,560px monitor lands here; a `dashboard` 1152px page does not). */
26
+ export declare const CHART_WIDE_MIN = 1280;
27
+ /** The frame never gets shorter or taller than these, whatever the aspect says. */
28
+ export declare const CHART_MIN_HEIGHT = 160;
29
+ export declare const CHART_MAX_HEIGHT = 400;
30
+ /** Before the first measure — the height every chart used to hard-code. */
31
+ export declare const CHART_FALLBACK_HEIGHT = 240;
32
+ export declare function chartTier(width: number): ChartTier;
33
+ /** CHT-1: 4:3 on a phone, about 2:1 on a desktop, about 3:1 on a very wide screen. */
34
+ export declare function chartAspect(tier: ChartTier): number;
35
+ /** The frame's height at a width — the aspect, clamped so a chart is never a sliver or a wall. */
36
+ export declare function chartHeight(width: number): number;
37
+ export declare function chartBox(width: number, options?: {
38
+ height?: number;
39
+ legendInHeader?: boolean;
40
+ }): ChartBox;
41
+ /** Set by `ChartCard` around its body — read by `ChartFrame`. */
42
+ export declare const ChartCardContext: import("react").Context<{
43
+ legendInHeader: boolean;
44
+ height?: number;
45
+ } | null>;
46
+ //# sourceMappingURL=chartBox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chartBox.d.ts","sourceRoot":"","sources":["../../../src/react/charts/chartBox.ts"],"names":[],"mappings":"AAOA;2CAC2C;AAC3C,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAErD,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,SAAS,CAAC;IAChB,yEAAyE;IACzE,KAAK,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,iFAAiF;IACjF,MAAM,EAAE,MAAM,CAAC;IACf,wEAAwE;IACxE,SAAS,EAAE,MAAM,CAAC;IAClB,iCAAiC;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,oFAAoF;IACpF,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IAC9B;mEAC+D;IAC/D,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,0DAA0D;AAC1D,eAAO,MAAM,eAAe,MAAM,CAAC;AACnC;uEACuE;AACvE,eAAO,MAAM,cAAc,OAAO,CAAC;AACnC,mFAAmF;AACnF,eAAO,MAAM,gBAAgB,MAAM,CAAC;AACpC,eAAO,MAAM,gBAAgB,MAAM,CAAC;AACpC,2EAA2E;AAC3E,eAAO,MAAM,qBAAqB,MAAM,CAAC;AAEzC,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAIlD;AAED,sFAAsF;AACtF,wBAAgB,WAAW,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAEnD;AAED,kGAAkG;AAClG,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIjD;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,QAAQ,CAY7G;AAED,iEAAiE;AACjE,eAAO,MAAM,gBAAgB;oBAAmC,OAAO;aAAW,MAAM;SAAgB,CAAC"}
@@ -0,0 +1,45 @@
1
+ import { createContext } from 'react';
2
+ /** Below this container width a chart is phone-shaped. */
3
+ export const CHART_PHONE_MAX = 560;
4
+ /** At or above this container width a chart is wide-screen-shaped (a `wide` 1536px page on a
5
+ * 2,560px monitor lands here; a `dashboard` 1152px page does not). */
6
+ export const CHART_WIDE_MIN = 1280;
7
+ /** The frame never gets shorter or taller than these, whatever the aspect says. */
8
+ export const CHART_MIN_HEIGHT = 160;
9
+ export const CHART_MAX_HEIGHT = 400;
10
+ /** Before the first measure — the height every chart used to hard-code. */
11
+ export const CHART_FALLBACK_HEIGHT = 240;
12
+ export function chartTier(width) {
13
+ if (width > 0 && width < CHART_PHONE_MAX)
14
+ return 'phone';
15
+ if (width >= CHART_WIDE_MIN)
16
+ return 'wide';
17
+ return 'desktop';
18
+ }
19
+ /** CHT-1: 4:3 on a phone, about 2:1 on a desktop, about 3:1 on a very wide screen. */
20
+ export function chartAspect(tier) {
21
+ return tier === 'phone' ? 4 / 3 : tier === 'wide' ? 3 : 2;
22
+ }
23
+ /** The frame's height at a width — the aspect, clamped so a chart is never a sliver or a wall. */
24
+ export function chartHeight(width) {
25
+ if (width <= 0)
26
+ return CHART_FALLBACK_HEIGHT;
27
+ const h = Math.round(width / chartAspect(chartTier(width)));
28
+ return Math.min(CHART_MAX_HEIGHT, Math.max(CHART_MIN_HEIGHT, h));
29
+ }
30
+ export function chartBox(width, options = {}) {
31
+ const tier = chartTier(width);
32
+ return {
33
+ tier,
34
+ width,
35
+ height: options.height ?? chartHeight(width),
36
+ stroke: tier === 'phone' ? 1.5 : tier === 'wide' ? 2.5 : 2,
37
+ tickCount: tier === 'phone' ? 3 : 5,
38
+ tickFontSize: tier === 'wide' ? 13 : 12,
39
+ gap: (base) => (tier === 'phone' ? base * 2 : base),
40
+ legendInHeader: options.legendInHeader ?? false,
41
+ };
42
+ }
43
+ /** Set by `ChartCard` around its body — read by `ChartFrame`. */
44
+ export const ChartCardContext = createContext(null);
45
+ //# sourceMappingURL=chartBox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chartBox.js","sourceRoot":"","sources":["../../../src/react/charts/chartBox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AA8BtC,0DAA0D;AAC1D,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,CAAC;AACnC;uEACuE;AACvE,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC;AACnC,mFAAmF;AACnF,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,CAAC;AACpC,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,CAAC;AACpC,2EAA2E;AAC3E,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAEzC,MAAM,UAAU,SAAS,CAAC,KAAa;IACrC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,eAAe;QAAE,OAAO,OAAO,CAAC;IACzD,IAAI,KAAK,IAAI,cAAc;QAAE,OAAO,MAAM,CAAC;IAC3C,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,WAAW,CAAC,IAAe;IACzC,OAAO,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED,kGAAkG;AAClG,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,qBAAqB,CAAC;IAC7C,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC5D,OAAO,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAa,EAAE,UAAyD,EAAE;IACjG,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAC9B,OAAO;QACL,IAAI;QACJ,KAAK;QACL,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,WAAW,CAAC,KAAK,CAAC;QAC5C,MAAM,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC1D,SAAS,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnC,YAAY,EAAE,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;QACvC,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACnD,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,KAAK;KAChD,CAAC;AACJ,CAAC;AAED,iEAAiE;AACjE,MAAM,CAAC,MAAM,gBAAgB,GAAG,aAAa,CAAsD,IAAI,CAAC,CAAC"}
@@ -1,6 +1,8 @@
1
1
  export { AreaChart, type AreaChartProps } from './AreaChart.js';
2
2
  export { BarChart, type BarChartProps } from './BarChart.js';
3
3
  export { CATEGORICAL_CEILING, CATEGORICAL_ORDER, categoricalColor, foldToOther, hexToRgb, sequentialStep, } from './categorical.js';
4
+ export { ChartCard, type ChartCardLegendItem, type ChartCardProps } from './ChartCard.js';
5
+ export { type ChartBox, type ChartTier, chartHeight } from './chartBox.js';
4
6
  export { ChartFrame, type ChartFrameProps } from './ChartFrame.js';
5
7
  export { ChartLegend, type ChartLegendProps, legendContent } from './ChartLegend.js';
6
8
  export { ChartTooltip, type ChartTooltipProps, tooltipContent } from './ChartTooltip.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/react/charts/index.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,EACX,QAAQ,EACR,cAAc,GACf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACrF,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACzF,cAAc,aAAa,CAAC;AAC5B,OAAO,EACL,YAAY,EACZ,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,YAAY,GACb,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,gBAAgB,EAChB,KAAK,qBAAqB,EAC1B,SAAS,EACT,KAAK,YAAY,EACjB,KAAK,gBAAgB,GACtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EACL,UAAU,EACV,KAAK,eAAe,EACpB,QAAQ,EACR,KAAK,aAAa,EAClB,KAAK,QAAQ,GACd,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACjG,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,eAAe,EACf,KAAK,oBAAoB,GAC1B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAC7E,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,SAAS,EACT,cAAc,GACf,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/react/charts/index.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,EACX,QAAQ,EACR,cAAc,GACf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,KAAK,mBAAmB,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC1F,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,SAAS,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACrF,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACzF,cAAc,aAAa,CAAC;AAC5B,OAAO,EACL,YAAY,EACZ,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,YAAY,GACb,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,gBAAgB,EAChB,KAAK,qBAAqB,EAC1B,SAAS,EACT,KAAK,YAAY,EACjB,KAAK,gBAAgB,GACtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EACL,UAAU,EACV,KAAK,eAAe,EACpB,QAAQ,EACR,KAAK,aAAa,EAClB,KAAK,QAAQ,GACd,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACjG,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,eAAe,EACf,KAAK,oBAAoB,GAC1B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAC7E,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,SAAS,EACT,cAAc,GACf,MAAM,aAAa,CAAC"}
@@ -11,6 +11,8 @@
11
11
  export { AreaChart } from './AreaChart.js';
12
12
  export { BarChart } from './BarChart.js';
13
13
  export { CATEGORICAL_CEILING, CATEGORICAL_ORDER, categoricalColor, foldToOther, hexToRgb, sequentialStep, } from './categorical.js';
14
+ export { ChartCard } from './ChartCard.js';
15
+ export { chartHeight } from './chartBox.js';
14
16
  export { ChartFrame } from './ChartFrame.js';
15
17
  export { ChartLegend, legendContent } from './ChartLegend.js';
16
18
  export { ChartTooltip, tooltipContent } from './ChartTooltip.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/react/charts/index.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,gFAAgF;AAChF,sFAAsF;AACtF,mFAAmF;AACnF,sFAAsF;AACtF,gFAAgF;AAChF,yDAAyD;AACzD,sEAAsE;AACtE,sFAAsF;AACtF,6DAA6D;AAE7D,OAAO,EAAE,SAAS,EAAuB,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAsB,MAAM,eAAe,CAAC;AAC7D,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,EACX,QAAQ,EACR,cAAc,GACf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAwB,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,WAAW,EAAyB,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACrF,OAAO,EAAE,YAAY,EAA0B,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACzF,cAAc,aAAa,CAAC;AAC5B,OAAO,EACL,YAAY,EAGZ,YAAY,GACb,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,gBAAgB,EAEhB,SAAS,GAGV,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAuB,MAAM,gBAAgB,CAAC;AAChE,OAAO,EACL,UAAU,EAEV,QAAQ,GAGT,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,cAAc,EAA8C,MAAM,qBAAqB,CAAC;AACjG,OAAO,EAAE,SAAS,EAAuB,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAIL,eAAe,GAEhB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAwC,MAAM,cAAc,CAAC;AAC7E,OAAO,EAAqC,WAAW,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,EAGL,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,SAAS,EACT,cAAc,GACf,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/react/charts/index.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,gFAAgF;AAChF,sFAAsF;AACtF,mFAAmF;AACnF,sFAAsF;AACtF,gFAAgF;AAChF,yDAAyD;AACzD,sEAAsE;AACtE,sFAAsF;AACtF,6DAA6D;AAE7D,OAAO,EAAE,SAAS,EAAuB,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAsB,MAAM,eAAe,CAAC;AAC7D,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,EACX,QAAQ,EACR,cAAc,GACf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAiD,MAAM,gBAAgB,CAAC;AAC1F,OAAO,EAAiC,WAAW,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAwB,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,WAAW,EAAyB,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACrF,OAAO,EAAE,YAAY,EAA0B,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACzF,cAAc,aAAa,CAAC;AAC5B,OAAO,EACL,YAAY,EAGZ,YAAY,GACb,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,gBAAgB,EAEhB,SAAS,GAGV,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAuB,MAAM,gBAAgB,CAAC;AAChE,OAAO,EACL,UAAU,EAEV,QAAQ,GAGT,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,cAAc,EAA8C,MAAM,qBAAqB,CAAC;AACjG,OAAO,EAAE,SAAS,EAAuB,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAIL,eAAe,GAEhB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAwC,MAAM,cAAc,CAAC;AAC7E,OAAO,EAAqC,WAAW,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,EAGL,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,SAAS,EACT,cAAc,GACf,MAAM,aAAa,CAAC"}
@@ -1,3 +1,4 @@
1
+ import type { ChartBox } from './chartBox.js';
1
2
  import { type ChartTokens, type ChartTone } from './tokens.js';
2
3
  /** A row of chart data — string/number cells keyed by the x-axis + series dataKeys. */
3
4
  export type ChartDatum = Record<string, string | number | null | undefined>;
@@ -16,8 +17,9 @@ export type ChartSeries = {
16
17
  export declare const seriesColor: (t: ChartTokens, item: {
17
18
  tone?: ChartTone;
18
19
  }, i: number) => string;
19
- /** Shared cartesian-axis styling so every chart's ticks/lines read identically. */
20
- export declare const axisProps: (t: ChartTokens) => {
20
+ /** Shared cartesian-axis styling so every chart's ticks/lines read identically — scaled to the
21
+ * frame's box when one is given (CHT-6: a larger tick on a wide screen). */
22
+ export declare const axisProps: (t: ChartTokens, box?: ChartBox) => {
21
23
  stroke: string;
22
24
  tick: {
23
25
  fill: string;
@@ -25,6 +27,15 @@ export declare const axisProps: (t: ChartTokens) => {
25
27
  };
26
28
  tickLine: boolean;
27
29
  };
30
+ /**
31
+ * The value axis's tick formatter and density for the box (CHT-6): fewer ticks on a phone,
32
+ * and an abbreviated number there ("12.4k") when the caller gave no formatter of its own — a
33
+ * phone-width y axis has no room for "12,400".
34
+ */
35
+ export declare const valueAxisProps: (box: ChartBox, valueFormatter?: (value: number) => string) => {
36
+ tickCount: number;
37
+ tickFormatter: ((n: number) => string) | undefined;
38
+ };
28
39
  /** A stable, collision-free SVG id for a chart's per-instance `<linearGradient>`. */
29
40
  export declare const useGradientId: () => string;
30
41
  //# sourceMappingURL=shared.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/react/charts/shared.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,SAAS,EAAa,MAAM,aAAa,CAAC;AAE1E,uFAAuF;AACvF,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;AAE5E,2FAA2F;AAC3F,MAAM,MAAM,WAAW,GAAG;IACxB,kDAAkD;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,qDAAqD;IACrD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2EAA2E;IAC3E,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,6DAA6D;IAC7D,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,0EAA0E;AAC1E,eAAO,MAAM,WAAW,GAAI,GAAG,WAAW,EAAE,MAAM;IAAE,IAAI,CAAC,EAAE,SAAS,CAAA;CAAE,EAAE,GAAG,MAAM,KAAG,MACf,CAAC;AAEtE,mFAAmF;AACnF,eAAO,MAAM,SAAS,GAAI,GAAG,WAAW;;;;;;;CAItC,CAAC;AAEH,qFAAqF;AACrF,eAAO,MAAM,aAAa,QAAO,MAA2C,CAAC"}
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/react/charts/shared.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,SAAS,EAAa,MAAM,aAAa,CAAC;AAE1E,uFAAuF;AACvF,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;AAE5E,2FAA2F;AAC3F,MAAM,MAAM,WAAW,GAAG;IACxB,kDAAkD;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,qDAAqD;IACrD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2EAA2E;IAC3E,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,6DAA6D;IAC7D,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,0EAA0E;AAC1E,eAAO,MAAM,WAAW,GAAI,GAAG,WAAW,EAAE,MAAM;IAAE,IAAI,CAAC,EAAE,SAAS,CAAA;CAAE,EAAE,GAAG,MAAM,KAAG,MACf,CAAC;AAEtE;6EAC6E;AAC7E,eAAO,MAAM,SAAS,GAAI,GAAG,WAAW,EAAE,MAAM,QAAQ;;;;;;;CAItD,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAI,KAAK,QAAQ,EAAE,iBAAiB,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM;;;CAGtF,CAAC;AAEH,qFAAqF;AACrF,eAAO,MAAM,aAAa,QAAO,MAA2C,CAAC"}
@@ -1,13 +1,24 @@
1
1
  import { useId } from 'react';
2
+ import { formatNumber } from './format.js';
2
3
  import { toneColor } from './tokens.js';
3
4
  /** Positional categorical color, or the item's explicit semantic tone. */
4
5
  export const seriesColor = (t, item, i) => item.tone ? toneColor(t, item.tone) : t.series[i % t.series.length];
5
- /** Shared cartesian-axis styling so every chart's ticks/lines read identically. */
6
- export const axisProps = (t) => ({
6
+ /** Shared cartesian-axis styling so every chart's ticks/lines read identically — scaled to the
7
+ * frame's box when one is given (CHT-6: a larger tick on a wide screen). */
8
+ export const axisProps = (t, box) => ({
7
9
  stroke: t.border,
8
- tick: { fill: t.foregroundMuted, fontSize: 12 },
10
+ tick: { fill: t.foregroundMuted, fontSize: box?.tickFontSize ?? 12 },
9
11
  tickLine: false,
10
12
  });
13
+ /**
14
+ * The value axis's tick formatter and density for the box (CHT-6): fewer ticks on a phone,
15
+ * and an abbreviated number there ("12.4k") when the caller gave no formatter of its own — a
16
+ * phone-width y axis has no room for "12,400".
17
+ */
18
+ export const valueAxisProps = (box, valueFormatter) => ({
19
+ tickCount: box.tickCount,
20
+ tickFormatter: valueFormatter ?? (box.tier === 'phone' ? formatNumber : undefined),
21
+ });
11
22
  /** A stable, collision-free SVG id for a chart's per-instance `<linearGradient>`. */
12
23
  export const useGradientId = () => `cb-${useId().replace(/:/g, '')}`;
13
24
  //# sourceMappingURL=shared.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/react/charts/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC9B,OAAO,EAAoC,SAAS,EAAE,MAAM,aAAa,CAAC;AAiB1E,0EAA0E;AAC1E,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAc,EAAE,IAA0B,EAAE,CAAS,EAAU,EAAE,CAC3F,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAEtE,mFAAmF;AACnF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAc,EAAE,EAAE,CAAC,CAAC;IAC5C,MAAM,EAAE,CAAC,CAAC,MAAM;IAChB,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,eAAe,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC/C,QAAQ,EAAE,KAAK;CAChB,CAAC,CAAC;AAEH,qFAAqF;AACrF,MAAM,CAAC,MAAM,aAAa,GAAG,GAAW,EAAE,CAAC,MAAM,KAAK,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC"}
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/react/charts/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAE9B,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAoC,SAAS,EAAE,MAAM,aAAa,CAAC;AAiB1E,0EAA0E;AAC1E,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAc,EAAE,IAA0B,EAAE,CAAS,EAAU,EAAE,CAC3F,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAEtE;6EAC6E;AAC7E,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAc,EAAE,GAAc,EAAE,EAAE,CAAC,CAAC;IAC5D,MAAM,EAAE,CAAC,CAAC,MAAM;IAChB,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,eAAe,EAAE,QAAQ,EAAE,GAAG,EAAE,YAAY,IAAI,EAAE,EAAE;IACpE,QAAQ,EAAE,KAAK;CAChB,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,GAAa,EAAE,cAA0C,EAAE,EAAE,CAAC,CAAC;IAC5F,SAAS,EAAE,GAAG,CAAC,SAAS;IACxB,aAAa,EAAE,cAAc,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;CACnF,CAAC,CAAC;AAEH,qFAAqF;AACrF,MAAM,CAAC,MAAM,aAAa,GAAG,GAAW,EAAE,CAAC,MAAM,KAAK,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC"}
@@ -26,10 +26,10 @@ function AttachmentChip({ attachment, onDelete, }) {
26
26
  // way there's nothing to link/preview, so render a flat placeholder rather than a
27
27
  // broken image or a dead link (orchai-19).
28
28
  if (attachment.deleted || !attachment.url) {
29
- return (_jsxs("div", { className: cn('flex min-h-[44px] items-center gap-2 rounded-md border border-border/40', 'bg-background/30 px-3 py-2 text-sm text-muted-foreground italic backdrop-blur-sm'), children: [_jsx(FileX, { className: 'h-4 w-4 shrink-0', "aria-hidden": 'true' }), _jsx("span", { className: 'min-w-0 truncate', children: attachment.deleted ? 'File deleted' : attachment.name })] }));
29
+ return (_jsxs("div", { className: cn('flex min-h-11 items-center gap-2 rounded-md border border-border/40', 'bg-background/30 px-3 py-2 text-sm text-muted-foreground italic backdrop-blur-sm'), children: [_jsx(FileX, { className: 'h-4 w-4 shrink-0', "aria-hidden": 'true' }), _jsx("span", { className: 'min-w-0 truncate', children: attachment.deleted ? 'File deleted' : attachment.name })] }));
30
30
  }
31
31
  const isImage = attachment.mimeType?.startsWith('image/');
32
- return (_jsxs("div", { className: cn('group flex min-h-[44px] items-center gap-2 rounded-md border border-border/40', 'bg-background/30 px-3 py-2 text-sm backdrop-blur-sm hover:bg-background/50'), children: [_jsxs("a", { href: attachment.url, target: '_blank', rel: 'noopener noreferrer', className: cn('flex min-w-0 flex-1 items-center gap-2', 'focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring'), children: [isImage ? (_jsx("img", { src: attachment.url, alt: attachment.name, className: 'h-8 w-8 rounded object-cover' })) : (_jsx(FileText, { className: 'h-4 w-4 shrink-0', "aria-hidden": 'true' })), _jsxs("span", { className: 'min-w-0', children: [_jsx("span", { className: 'block truncate font-medium', children: attachment.name }), attachment.sizeBytes != null && (_jsx("span", { className: 'block text-xs opacity-70', children: formatBytes(attachment.sizeBytes) }))] }), _jsx(Paperclip, { className: 'ml-1 h-3 w-3 shrink-0 opacity-50', "aria-hidden": 'true' })] }), _jsx(FileActions, { url: attachment.url, filename: attachment.name, mimeType: attachment.mimeType }), onDelete && (_jsx(DeleteButton, { iconOnly: true, size: 'sm', itemLabel: 'file', tooltip: 'Delete this file', onDelete: () => onDelete(attachment) }))] }));
32
+ return (_jsxs("div", { className: cn('group flex min-h-11 items-center gap-2 rounded-md border border-border/40', 'bg-background/30 px-3 py-2 text-sm backdrop-blur-sm hover:bg-background/50'), children: [_jsxs("a", { href: attachment.url, target: '_blank', rel: 'noopener noreferrer', className: cn('flex min-w-0 flex-1 items-center gap-2', 'focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring'), children: [isImage ? (_jsx("img", { src: attachment.url, alt: attachment.name, className: 'h-8 w-8 rounded object-cover' })) : (_jsx(FileText, { className: 'h-4 w-4 shrink-0', "aria-hidden": 'true' })), _jsxs("span", { className: 'min-w-0', children: [_jsx("span", { className: 'block truncate font-medium', children: attachment.name }), attachment.sizeBytes != null && (_jsx("span", { className: 'block text-xs opacity-70', children: formatBytes(attachment.sizeBytes) }))] }), _jsx(Paperclip, { className: 'ml-1 h-3 w-3 shrink-0 opacity-50', "aria-hidden": 'true' })] }), _jsx(FileActions, { url: attachment.url, filename: attachment.name, mimeType: attachment.mimeType }), onDelete && (_jsx(DeleteButton, { iconOnly: true, size: 'sm', itemLabel: 'file', tooltip: 'Delete this file', onDelete: () => onDelete(attachment) }))] }));
33
33
  }
34
34
  /**
35
35
  * A single chat message bubble.
@@ -47,9 +47,9 @@ export function Bubble({ message, variant = 'other', format = 'plain', grouped =
47
47
  if (isSystem) {
48
48
  return (_jsx("div", { className: cn('px-4 py-0.5 text-center text-xs italic text-muted-foreground', className), children: message.deleted ? _jsx("span", { className: 'opacity-60', children: "Message deleted" }) : message.body }));
49
49
  }
50
- const bubbleClasses = cn('relative max-w-[80%] rounded-2xl px-3.5 py-2.5 text-sm leading-relaxed', isOwn
50
+ const bubbleClasses = cn('relative max-w-4/5 rounded-2xl px-3.5 py-2.5 text-sm leading-relaxed', isOwn
51
51
  ? ['bg-accent-solid text-white', grouped ? 'rounded-br-md' : 'rounded-br-sm']
52
52
  : ['bg-muted text-foreground', grouped ? 'rounded-bl-md' : 'rounded-bl-sm']);
53
- return (_jsxs("div", { className: cn('flex max-w-full flex-col gap-1', isOwn ? 'items-end' : 'items-start', className), children: [_jsxs("div", { className: bubbleClasses, children: [message.deleted ? (_jsx("span", { className: 'italic opacity-60', children: "This message was deleted" })) : message.streaming && !message.body ? (_jsx(StreamingDots, {})) : format === 'markdown' ? (_jsxs(_Fragment, { children: [_jsx(Markdown, { text: message.body }), message.streaming && _jsx(StreamingDots, {})] })) : (_jsxs("span", { className: 'whitespace-pre-wrap break-words', children: [message.body, message.streaming && _jsx(StreamingDots, {})] })), message.edited && !message.deleted && (_jsx("span", { className: 'ml-1 text-xs opacity-60', children: "(edited)" })), isOwn && message.status && !message.streaming && (_jsx("span", { className: 'ml-1.5 inline-flex items-center opacity-70', children: STATUS_ICON[message.status] }))] }), (copyable || meta) && !message.streaming && !message.deleted && (_jsxs("div", { className: cn('flex items-center gap-1 px-1', isOwn ? 'flex-row-reverse' : 'flex-row'), children: [copyable && (_jsx(CopyButton, { value: message.body, label: 'Copy full response', confirmToast: false, iconSize: 13, className: '-mx-0.5' })), meta && (_jsx("div", { "data-cb-bubble-meta": '', className: cn('text-caption leading-tight text-muted-foreground', isOwn ? 'text-right' : 'text-left'), children: meta }))] })), message.attachments && message.attachments.length > 0 && (_jsx("div", { className: cn('flex w-full max-w-[80%] flex-col gap-1.5', isOwn ? 'items-end' : 'items-start'), children: message.attachments.map((a) => (_jsx("div", { className: 'w-full max-w-xs', children: _jsx(AttachmentChip, { attachment: a, onDelete: onDeleteAttachment }) }, a.id))) })), message.reactions && (_jsx(ReactionBar, { emojis: message.reactions.emojis, myReaction: message.reactions.myReaction, onReact: (emoji) => onReact?.(emoji), className: 'mt-0.5' })), isOwn && message.status === 'failed' && onRetry && (_jsx(Button, { variant: 'link', size: 'sm', tooltip: 'Retry sending this message', onClick: onRetry, leftIcon: _jsx(RefreshCw, { className: 'h-3 w-3', "aria-hidden": 'true' }), className: 'min-h-[44px] text-xs text-destructive', children: "Tap to retry" }))] }));
53
+ return (_jsxs("div", { className: cn('flex max-w-full flex-col gap-1', isOwn ? 'items-end' : 'items-start', className), children: [_jsxs("div", { className: bubbleClasses, children: [message.deleted ? (_jsx("span", { className: 'italic opacity-60', children: "This message was deleted" })) : message.streaming && !message.body ? (_jsx(StreamingDots, {})) : format === 'markdown' ? (_jsxs(_Fragment, { children: [_jsx(Markdown, { text: message.body }), message.streaming && _jsx(StreamingDots, {})] })) : (_jsxs("span", { className: 'whitespace-pre-wrap break-words', children: [message.body, message.streaming && _jsx(StreamingDots, {})] })), message.edited && !message.deleted && (_jsx("span", { className: 'ml-1 text-xs opacity-60', children: "(edited)" })), isOwn && message.status && !message.streaming && (_jsx("span", { className: 'ml-1.5 inline-flex items-center opacity-70', children: STATUS_ICON[message.status] }))] }), (copyable || meta) && !message.streaming && !message.deleted && (_jsxs("div", { className: cn('flex items-center gap-1 px-1', isOwn ? 'flex-row-reverse' : 'flex-row'), children: [copyable && (_jsx(CopyButton, { value: message.body, label: 'Copy full response', confirmToast: false, iconSize: 13, className: '-mx-0.5' })), meta && (_jsx("div", { "data-cb-bubble-meta": '', className: cn('text-caption leading-tight text-muted-foreground', isOwn ? 'text-right' : 'text-left'), children: meta }))] })), message.attachments && message.attachments.length > 0 && (_jsx("div", { className: cn('flex w-full max-w-4/5 flex-col gap-1.5', isOwn ? 'items-end' : 'items-start'), children: message.attachments.map((a) => (_jsx("div", { className: 'w-full max-w-xs', children: _jsx(AttachmentChip, { attachment: a, onDelete: onDeleteAttachment }) }, a.id))) })), message.reactions && (_jsx(ReactionBar, { emojis: message.reactions.emojis, myReaction: message.reactions.myReaction, onReact: (emoji) => onReact?.(emoji), className: 'mt-0.5' })), isOwn && message.status === 'failed' && onRetry && (_jsx(Button, { variant: 'link', size: 'sm', tooltip: 'Retry sending this message', onClick: onRetry, leftIcon: _jsx(RefreshCw, { className: 'h-3 w-3', "aria-hidden": 'true' }), className: 'min-h-11 text-xs text-destructive', children: "Tap to retry" }))] }));
54
54
  }
55
55
  //# sourceMappingURL=Bubble.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Bubble.js","sourceRoot":"","sources":["../../../src/react/chat/Bubble.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Bubble.js","sourceRoot":"","sources":["../../../src/react/chat/Bubble.tsx"],"names":[],"mappings":"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"}
@@ -91,6 +91,6 @@ export function MessageScroller({ children, onLoadMore, loadingMore = false, loa
91
91
  }
92
92
  prevScrollHeightRef.current = newHeight;
93
93
  });
94
- return (_jsxs("div", { className: cn('relative flex min-h-0 flex-1 flex-col', className), children: [_jsxs(ScrollArea, { scrollRef: scrollRef, space: 'none', safeArea: false, onScroll: handleScroll, className: 'flex-1', children: [loadingMore && (_jsxs("div", { role: 'status', className: 'flex justify-center py-3', "aria-live": 'polite', children: [_jsx(Spinner, { size: 'sm' }), _jsx("span", { className: 'sr-only', children: "Loading older messages" })] })), children, _jsx("div", { className: cn('shrink-0', showScrollBtn ? 'h-16' : 'h-2'), "aria-hidden": 'true' })] }), showScrollBtn && (_jsxs(_Fragment, { children: [_jsx("div", { "aria-hidden": 'true', className: 'pointer-events-none absolute inset-x-0 bottom-0 z-[9] h-16 bg-gradient-to-t from-surface to-transparent' }), _jsx(Button, { variant: 'secondary', onClick: () => scrollToBottom(), "aria-label": 'Jump to latest message', tooltip: 'Jump to the latest message', leftIcon: _jsx(ChevronDown, { className: 'h-3.5 w-3.5', "aria-hidden": 'true' }), className: cn('absolute bottom-3 left-1/2 z-10 -translate-x-1/2', 'min-h-[44px] rounded-full border-border bg-surface px-4 py-2 text-xs font-medium text-foreground shadow-overlay'), children: "Jump to latest" })] }))] }));
94
+ return (_jsxs("div", { className: cn('relative flex min-h-0 flex-1 flex-col', className), children: [_jsxs(ScrollArea, { scrollRef: scrollRef, space: 'none', safeArea: false, onScroll: handleScroll, className: 'flex-1', children: [loadingMore && (_jsxs("div", { role: 'status', className: 'flex justify-center py-3', "aria-live": 'polite', children: [_jsx(Spinner, { size: 'sm' }), _jsx("span", { className: 'sr-only', children: "Loading older messages" })] })), children, _jsx("div", { className: cn('shrink-0', showScrollBtn ? 'h-16' : 'h-2'), "aria-hidden": 'true' })] }), showScrollBtn && (_jsxs(_Fragment, { children: [_jsx("div", { "aria-hidden": 'true', className: 'pointer-events-none absolute inset-x-0 bottom-0 z-[9] h-16 bg-gradient-to-t from-surface to-transparent' }), _jsx(Button, { variant: 'secondary', onClick: () => scrollToBottom(), "aria-label": 'Jump to latest message', tooltip: 'Jump to the latest message', leftIcon: _jsx(ChevronDown, { className: 'h-3.5 w-3.5', "aria-hidden": 'true' }), className: cn('absolute bottom-3 left-1/2 z-10 -translate-x-1/2', 'min-h-11 rounded-full border-border bg-surface px-4 py-2 text-xs font-medium text-foreground shadow-overlay'), children: "Jump to latest" })] }))] }));
95
95
  }
96
96
  //# sourceMappingURL=MessageScroller.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MessageScroller.js","sourceRoot":"","sources":["../../../src/react/chat/MessageScroller.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MessageScroller.js","sourceRoot":"","sources":["../../../src/react/chat/MessageScroller.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ActionBar.d.ts","sourceRoot":"","sources":["../../../src/react/components/ActionBar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAsC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAI3E,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAUD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,YAAY,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,iBAAiB,+BAetE;AAED,MAAM,WAAW,cAAc;IAC7B;+EAC2E;IAC3E,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,qBAAqB;IACrB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,gFAAgF;IAChF,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,mEAAmE;IACnE,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CAAC,EACxB,OAAO,EACP,SAAS,EACT,WAAW,EACX,QAAQ,EACR,SAAS,GACV,EAAE,cAAc,+BAsChB;AAmBD;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,sCAO3D"}
1
+ {"version":3,"file":"ActionBar.d.ts","sourceRoot":"","sources":["../../../src/react/components/ActionBar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAsC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAK3E,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAUD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,YAAY,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,iBAAiB,+BAetE;AAED,MAAM,WAAW,cAAc;IAC7B;+EAC2E;IAC3E,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,qBAAqB;IACrB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,gFAAgF;IAChF,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,mEAAmE;IACnE,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CAAC,EACxB,OAAO,EACP,SAAS,EACT,WAAW,EACX,QAAQ,EACR,SAAS,GACV,EAAE,cAAc,+BA6ChB;AAmBD;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,sCAe3D"}
@@ -2,6 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Children, Fragment, isValidElement } from 'react';
3
3
  import { useMediaQuery } from '../hooks/useMediaQuery.js';
4
4
  import { cn } from '../lib/cn.js';
5
+ import { devWarnOnce } from '../lib/devWarn.js';
5
6
  const MOBILE_QUERY = '(max-width: 639px)';
6
7
  const MOBILE_CHROME = 'sticky bottom-0 z-40 flex flex-col gap-2 border-t border-border bg-background/95 px-4 pt-3 backdrop-blur';
7
8
  // Home-indicator clearance (fixed CSS expression, needs the env() literal).
@@ -49,6 +50,10 @@ export function FooterChrome({ children, className }) {
49
50
  */
50
51
  export function ActionBar({ primary, secondary, destructive, children, className, }) {
51
52
  const isMobile = useMediaQuery(MOBILE_QUERY);
53
+ if (hasPrimaryChild(children)) {
54
+ devWarnOnce('ActionBar:primary-child', 'cursedbelt: <ActionBar> was given a variant="primary" Button as a CHILD — children sit on the left, ' +
55
+ 'so the hero action lands far from the bottom-right (FRM-13). Pass it as `primary={…}`.');
56
+ }
52
57
  if (isMobile) {
53
58
  return (_jsxs("div", { "data-cb-action-bar": 'mobile', className: cn(MOBILE_CHROME, MOBILE_SAFE_AREA, className),
54
59
  // Rides above the soft keyboard. Inline because it's a live custom-property value
@@ -83,6 +88,63 @@ function ownsFooterChrome(node) {
83
88
  export function FooterSlot({ footer }) {
84
89
  if (footer === null || footer === undefined || footer === false)
85
90
  return null;
86
- return (_jsx("div", { className: 'flex-none', "data-cb-footer-slot": ownsFooterChrome(footer) ? 'action-bar' : 'wrapped', children: ownsFooterChrome(footer) ? footer : _jsx(FooterChrome, { children: footer }) }));
91
+ if (ownsFooterChrome(footer)) {
92
+ return (_jsx("div", { className: 'flex-none', "data-cb-footer-slot": 'action-bar', children: footer }));
93
+ }
94
+ const ordered = orderFooterButtons(footer);
95
+ return (_jsx("div", { className: 'flex-none', "data-cb-footer-slot": ordered ? 'ordered' : 'wrapped', children: ordered ?? _jsx(FooterChrome, { children: footer }) }));
96
+ }
97
+ /** What a footer button is, by its variant — or, for `DeleteButton`, by its static `footerRole`. */
98
+ function footerRole(node) {
99
+ if (!isValidElement(node))
100
+ return null;
101
+ const marked = node.type.footerRole;
102
+ if (marked)
103
+ return marked;
104
+ const variant = node.props.variant;
105
+ if (variant === 'primary' || variant === 'success-solid')
106
+ return 'primary';
107
+ if (typeof variant === 'string' && variant.startsWith('destructive'))
108
+ return 'destructive';
109
+ return 'other';
110
+ }
111
+ function flattenFooter(node) {
112
+ return Children.toArray(node).flatMap((child) => isValidElement(child) && child.type === Fragment ? flattenFooter(child.props.children) : [child]);
113
+ }
114
+ /**
115
+ * OVL-2 orders a footer by VARIANT, not by the order the caller wrote it: a destructive action
116
+ * alone on the far left, the primary on the far right, everything else (Cancel) beside the
117
+ * primary. A footer of bare buttons — `<><Button variant='primary'>Save</Button><Button>Cancel
118
+ * </Button></>`, which put Save on the left in vault and desk — is laid out as the
119
+ * {@link ActionBar} it should have been, so it also gets the phone's stacked thumb targets.
120
+ *
121
+ * Only a footer made wholly of elements is reordered, and only when it names a primary or a
122
+ * destructive action; text, or a row with neither, keeps its order inside the plain chrome.
123
+ */
124
+ function orderFooterButtons(footer) {
125
+ const items = flattenFooter(footer);
126
+ const roles = items.map(footerRole);
127
+ if (items.length < 2 || roles.some((r) => r === null))
128
+ return null;
129
+ if (!roles.some((r) => r === 'primary' || r === 'destructive'))
130
+ return null;
131
+ const pick = (role) => items.filter((_, i) => roles[i] === role);
132
+ const primary = pick('primary');
133
+ const destructive = pick('destructive');
134
+ const others = pick('other');
135
+ // Two primaries is a caller's mistake; the last one written stays the hero, the other
136
+ // waits beside Cancel rather than vanishing.
137
+ const hero = primary.at(-1);
138
+ const secondary = [...others, ...primary.slice(0, -1)];
139
+ return (_jsx(ActionBar, { primary: hero, secondary: secondary.length ? secondary : undefined, destructive: destructive.length ? destructive : undefined }));
140
+ }
141
+ /**
142
+ * FRM-13 places the primary far right by its SLOT. Children are the left-hand misc group, so a
143
+ * primary passed there would sit beside the destructive action. No caller did on 2026-10-02
144
+ * (forge task 2514); the slot stays the one way, and this keeps it so.
145
+ */
146
+ function hasPrimaryChild(node) {
147
+ return Children.toArray(node).some((child) => isValidElement(child) &&
148
+ (child.props.variant === 'primary' || (child.type === Fragment && hasPrimaryChild(child.props.children))));
87
149
  }
88
150
  //# sourceMappingURL=ActionBar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ActionBar.js","sourceRoot":"","sources":["../../../src/react/components/ActionBar.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ActionBar.js","sourceRoot":"","sources":["../../../src/react/components/ActionBar.tsx"],"names":[],"mappings":"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"}
@@ -19,7 +19,7 @@ export function AddItemsMenu({ items, groups, onAdd, itemKey, itemLabel, itemDes
19
19
  // panel is outside the page's ScrollArea and has no keyboard-inset concern); the
20
20
  // height cap comes from Radix's reported available height.
21
21
  // guardrails-ignore no-raw-overflow: floating popover panel outside the page's ScrollArea, height-capped by Radix — no keyboard-inset concern.
22
- className: cn('max-h-[var(--radix-popover-content-available-height)] w-64 max-w-[90vw] overflow-y-auto p-0'), trigger: _jsx(Button, { variant: buttonVariant, size: buttonSize, leftIcon: icon, disabled: disabled, tooltip: label, className: cn('inline-flex', className), children: showCount ? `${label} (${count})` : label }), children: _jsx("div", { className: 'py-1 text-sm', children: count === 0 ? (_jsx("p", { className: 'px-3 py-2 text-muted-foreground', children: emptyLabel })) : (resolvedGroups.map((group, gi) => (_jsxs("div", { children: [group.label ? (_jsx("p", { className: 'cb-meta-label px-3 pt-2 pb-1', children: group.label })) : null, group.items.map((item) => (_jsxs("button", {
22
+ className: cn('max-h-[var(--radix-popover-content-available-height)] w-64 max-w-[var(--overlay-max-w)] overflow-y-auto p-0'), trigger: _jsx(Button, { variant: buttonVariant, size: buttonSize, leftIcon: icon, disabled: disabled, tooltip: label, className: cn('inline-flex', className), children: showCount ? `${label} (${count})` : label }), children: _jsx("div", { className: 'py-1 text-sm', children: count === 0 ? (_jsx("p", { className: 'px-3 py-2 text-muted-foreground', children: emptyLabel })) : (resolvedGroups.map((group, gi) => (_jsxs("div", { children: [group.label ? (_jsx("p", { className: 'cb-meta-label px-3 pt-2 pb-1', children: group.label })) : null, group.items.map((item) => (_jsxs("button", {
23
23
  // guardrails-ignore no-raw-action-button: selects an item to add — a
24
24
  // menu-row list item (mirrors the "selects X — navigation" idiom), not
25
25
  // a destructive/mutating action; Button's centered/rounded chrome
@@ -1 +1 @@
1
- {"version":3,"file":"AddItemsMenu.js","sourceRoot":"","sources":["../../../src/react/components/AddItemsMenu.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AddItemsMenu.js","sourceRoot":"","sources":["../../../src/react/components/AddItemsMenu.tsx"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { ReactNode } from 'react';
1
+ import { type ReactNode } from 'react';
2
2
  declare const TONE: {
3
3
  readonly info: "border-accent/40 bg-accent/5 [&_.alert-icon]:text-accent";
4
4
  readonly success: "border-success/40 bg-success/5 [&_.alert-icon]:text-success";
@@ -20,9 +20,23 @@ export interface AlertProps {
20
20
  onDismiss?: () => void;
21
21
  /** Accessible name for the dismiss ✕ (default "Dismiss"). */
22
22
  dismissLabel?: string;
23
+ /**
24
+ * A caveat the reader needs to see ONCE (CPY-2): show a ✕, and once pressed the alert stays
25
+ * gone. With `dismissKey` it stays gone across reloads on this device; without one, until
26
+ * the component unmounts. `onDismiss`, when given too, is still called.
27
+ */
28
+ dismissible?: boolean;
29
+ /**
30
+ * Where a `dismissible` alert remembers it was dismissed — one stable name per caveat
31
+ * (`'station:limits-window'`). Change the key when the caveat's text changes enough to be
32
+ * worth reading again.
33
+ */
34
+ dismissKey?: string;
23
35
  className?: string;
24
36
  children?: ReactNode;
25
37
  }
26
- export declare function Alert({ tone, title, icon, actions, onDismiss, dismissLabel, className, children, }: AlertProps): import("react").JSX.Element;
38
+ /** The localStorage namespace for a dismissed `Alert`'s `dismissKey`. */
39
+ export declare const ALERT_DISMISS_STORAGE_PREFIX = "cb:alert-dismissed:";
40
+ export declare function Alert({ tone, title, icon, actions, onDismiss, dismissLabel, dismissible, dismissKey, className, children, }: AlertProps): import("react").JSX.Element | null;
27
41
  export {};
28
42
  //# sourceMappingURL=Alert.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Alert.d.ts","sourceRoot":"","sources":["../../../src/react/components/Alert.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAUvC,QAAA,MAAM,IAAI;;;;;;CAMA,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,IAAI,CAAC;AAU1C,MAAM,WAAW,UAAU;IACzB,qFAAqF;IACrF,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,4CAA4C;IAC5C,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,2EAA2E;IAC3E,IAAI,CAAC,EAAE,SAAS,GAAG,KAAK,CAAC;IACzB,sEAAsE;IACtE,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,yCAAyC;IACzC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,6DAA6D;IAC7D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,wBAAgB,KAAK,CAAC,EACpB,IAAa,EACb,KAAK,EACL,IAAI,EACJ,OAAO,EACP,SAAS,EACT,YAAwB,EACxB,SAAS,EACT,QAAQ,GACT,EAAE,UAAU,+BA4BZ"}
1
+ {"version":3,"file":"Alert.d.ts","sourceRoot":"","sources":["../../../src/react/components/Alert.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAY,MAAM,OAAO,CAAC;AAUjD,QAAA,MAAM,IAAI;;;;;;CAMA,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,IAAI,CAAC;AAU1C,MAAM,WAAW,UAAU;IACzB,qFAAqF;IACrF,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,4CAA4C;IAC5C,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,2EAA2E;IAC3E,IAAI,CAAC,EAAE,SAAS,GAAG,KAAK,CAAC;IACzB,sEAAsE;IACtE,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,yCAAyC;IACzC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,6DAA6D;IAC7D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,yEAAyE;AACzE,eAAO,MAAM,4BAA4B,wBAAwB,CAAC;AAoBlE,wBAAgB,KAAK,CAAC,EACpB,IAAa,EACb,KAAK,EACL,IAAI,EACJ,OAAO,EACP,SAAS,EACT,YAAwB,EACxB,WAAmB,EACnB,UAAU,EACV,SAAS,EACT,QAAQ,GACT,EAAE,UAAU,sCAqCZ"}