@flanksource/clicky-ui 0.3.54 → 0.3.56

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 (999) hide show
  1. package/NOTICE.md +6 -0
  2. package/dist/ai.cjs +6 -0
  3. package/dist/ai.js +3 -1
  4. package/dist/chat.cjs +2 -0
  5. package/dist/chat.d.ts +1 -0
  6. package/dist/chat.d.ts.map +1 -1
  7. package/dist/chat.js +2 -1
  8. package/dist/comments/CommentCard.cjs +37 -7
  9. package/dist/comments/CommentCard.cjs.map +1 -1
  10. package/dist/comments/CommentCard.d.ts +11 -1
  11. package/dist/comments/CommentCard.d.ts.map +1 -1
  12. package/dist/comments/CommentCard.js +37 -7
  13. package/dist/comments/CommentCard.js.map +1 -1
  14. package/dist/comments/CommentCardParts.cjs +9 -4
  15. package/dist/comments/CommentCardParts.cjs.map +1 -1
  16. package/dist/comments/CommentCardParts.d.ts.map +1 -1
  17. package/dist/comments/CommentCardParts.js +9 -4
  18. package/dist/comments/CommentCardParts.js.map +1 -1
  19. package/dist/comments/CommentComposer.cjs +8 -8
  20. package/dist/comments/CommentComposer.cjs.map +1 -1
  21. package/dist/comments/CommentComposer.d.ts.map +1 -1
  22. package/dist/comments/CommentComposer.js +8 -8
  23. package/dist/comments/CommentComposer.js.map +1 -1
  24. package/dist/comments/CommentProvider.cjs +5 -1
  25. package/dist/comments/CommentProvider.cjs.map +1 -1
  26. package/dist/comments/CommentProvider.d.ts +1 -1
  27. package/dist/comments/CommentProvider.d.ts.map +1 -1
  28. package/dist/comments/CommentProvider.js +5 -1
  29. package/dist/comments/CommentProvider.js.map +1 -1
  30. package/dist/comments/CommentSidePanel.cjs +17 -11
  31. package/dist/comments/CommentSidePanel.cjs.map +1 -1
  32. package/dist/comments/CommentSidePanel.d.ts +6 -0
  33. package/dist/comments/CommentSidePanel.d.ts.map +1 -1
  34. package/dist/comments/CommentSidePanel.js +17 -11
  35. package/dist/comments/CommentSidePanel.js.map +1 -1
  36. package/dist/comments/CommentThread.cjs +4 -1
  37. package/dist/comments/CommentThread.cjs.map +1 -1
  38. package/dist/comments/CommentThread.d.ts +4 -1
  39. package/dist/comments/CommentThread.d.ts.map +1 -1
  40. package/dist/comments/CommentThread.js +4 -1
  41. package/dist/comments/CommentThread.js.map +1 -1
  42. package/dist/comments/CommentThreadList.cjs +6 -3
  43. package/dist/comments/CommentThreadList.cjs.map +1 -1
  44. package/dist/comments/CommentThreadList.d.ts +7 -2
  45. package/dist/comments/CommentThreadList.d.ts.map +1 -1
  46. package/dist/comments/CommentThreadList.js +6 -3
  47. package/dist/comments/CommentThreadList.js.map +1 -1
  48. package/dist/comments/MentionTextarea.cjs +1 -1
  49. package/dist/comments/MentionTextarea.cjs.map +1 -1
  50. package/dist/comments/MentionTextarea.d.ts.map +1 -1
  51. package/dist/comments/MentionTextarea.js +1 -1
  52. package/dist/comments/MentionTextarea.js.map +1 -1
  53. package/dist/comments/comment-assign.cjs +68 -0
  54. package/dist/comments/comment-assign.cjs.map +1 -0
  55. package/dist/comments/comment-assign.d.ts +31 -0
  56. package/dist/comments/comment-assign.d.ts.map +1 -0
  57. package/dist/comments/comment-assign.js +67 -0
  58. package/dist/comments/comment-assign.js.map +1 -0
  59. package/dist/comments/comment-types.cjs.map +1 -1
  60. package/dist/comments/comment-types.d.ts +39 -0
  61. package/dist/comments/comment-types.d.ts.map +1 -1
  62. package/dist/comments/comment-types.js.map +1 -1
  63. package/dist/comments/comment-utils.cjs +2 -0
  64. package/dist/comments/comment-utils.cjs.map +1 -1
  65. package/dist/comments/comment-utils.d.ts +2 -0
  66. package/dist/comments/comment-utils.d.ts.map +1 -1
  67. package/dist/comments/comment-utils.js +2 -0
  68. package/dist/comments/comment-utils.js.map +1 -1
  69. package/dist/comments.cjs +3 -0
  70. package/dist/comments.d.ts +1 -0
  71. package/dist/comments.d.ts.map +1 -1
  72. package/dist/comments.js +2 -1
  73. package/dist/components/ComboboxMenu.cjs +23 -13
  74. package/dist/components/ComboboxMenu.cjs.map +1 -1
  75. package/dist/components/ComboboxMenu.d.ts.map +1 -1
  76. package/dist/components/ComboboxMenu.js +23 -13
  77. package/dist/components/ComboboxMenu.js.map +1 -1
  78. package/dist/components/FilterBar.cjs +29 -6
  79. package/dist/components/FilterBar.cjs.map +1 -1
  80. package/dist/components/FilterBar.d.ts +3 -1
  81. package/dist/components/FilterBar.d.ts.map +1 -1
  82. package/dist/components/FilterBar.js +29 -6
  83. package/dist/components/FilterBar.js.map +1 -1
  84. package/dist/components/ItemActions.cjs +1 -1
  85. package/dist/components/ItemActions.cjs.map +1 -1
  86. package/dist/components/ItemActions.js +1 -1
  87. package/dist/components/ItemActions.js.map +1 -1
  88. package/dist/components/ListMenu.cjs +33 -3
  89. package/dist/components/ListMenu.cjs.map +1 -1
  90. package/dist/components/ListMenu.d.ts +4 -1
  91. package/dist/components/ListMenu.d.ts.map +1 -1
  92. package/dist/components/ListMenu.js +33 -3
  93. package/dist/components/ListMenu.js.map +1 -1
  94. package/dist/components/ListMenuItems.cjs +80 -0
  95. package/dist/components/ListMenuItems.cjs.map +1 -0
  96. package/dist/components/ListMenuItems.d.ts +8 -0
  97. package/dist/components/ListMenuItems.d.ts.map +1 -0
  98. package/dist/components/ListMenuItems.js +80 -0
  99. package/dist/components/ListMenuItems.js.map +1 -0
  100. package/dist/components/LocalPathPicker.cjs +182 -0
  101. package/dist/components/LocalPathPicker.cjs.map +1 -0
  102. package/dist/components/LocalPathPicker.d.ts +11 -0
  103. package/dist/components/LocalPathPicker.d.ts.map +1 -0
  104. package/dist/components/LocalPathPicker.js +182 -0
  105. package/dist/components/LocalPathPicker.js.map +1 -0
  106. package/dist/components/LocalPathTree.cjs +89 -0
  107. package/dist/components/LocalPathTree.cjs.map +1 -0
  108. package/dist/components/LocalPathTree.d.ts +9 -0
  109. package/dist/components/LocalPathTree.d.ts.map +1 -0
  110. package/dist/components/LocalPathTree.js +89 -0
  111. package/dist/components/LocalPathTree.js.map +1 -0
  112. package/dist/components/RangeSlider.cjs +10 -30
  113. package/dist/components/RangeSlider.cjs.map +1 -1
  114. package/dist/components/RangeSlider.d.ts.map +1 -1
  115. package/dist/components/RangeSlider.js +4 -24
  116. package/dist/components/RangeSlider.js.map +1 -1
  117. package/dist/components/Slider.cjs +79 -0
  118. package/dist/components/Slider.cjs.map +1 -0
  119. package/dist/components/Slider.d.ts +23 -0
  120. package/dist/components/Slider.d.ts.map +1 -0
  121. package/dist/components/Slider.js +79 -0
  122. package/dist/components/Slider.js.map +1 -0
  123. package/dist/components/combobox-types.d.ts +4 -1
  124. package/dist/components/combobox-types.d.ts.map +1 -1
  125. package/dist/components/filter-bar-field-utils.cjs +3 -5
  126. package/dist/components/filter-bar-field-utils.cjs.map +1 -1
  127. package/dist/components/filter-bar-field-utils.d.ts.map +1 -1
  128. package/dist/components/filter-bar-field-utils.js +3 -5
  129. package/dist/components/filter-bar-field-utils.js.map +1 -1
  130. package/dist/components/filter-bar-tree-model.cjs +22 -0
  131. package/dist/components/filter-bar-tree-model.cjs.map +1 -0
  132. package/dist/components/filter-bar-tree-model.d.ts +33 -0
  133. package/dist/components/filter-bar-tree-model.d.ts.map +1 -0
  134. package/dist/components/filter-bar-tree-model.js +21 -0
  135. package/dist/components/filter-bar-tree-model.js.map +1 -0
  136. package/dist/components/filter-bar-tree.cjs +84 -0
  137. package/dist/components/filter-bar-tree.cjs.map +1 -0
  138. package/dist/components/filter-bar-tree.d.ts +7 -0
  139. package/dist/components/filter-bar-tree.d.ts.map +1 -0
  140. package/dist/components/filter-bar-tree.js +84 -0
  141. package/dist/components/filter-bar-tree.js.map +1 -0
  142. package/dist/components/json-schema-form-debug-glyph-map.cjs +2 -0
  143. package/dist/components/json-schema-form-debug-glyph-map.cjs.map +1 -1
  144. package/dist/components/json-schema-form-debug-glyph-map.d.ts.map +1 -1
  145. package/dist/components/json-schema-form-debug-glyph-map.js +2 -0
  146. package/dist/components/json-schema-form-debug-glyph-map.js.map +1 -1
  147. package/dist/components/json-schema-form-help-links.cjs +18 -0
  148. package/dist/components/json-schema-form-help-links.cjs.map +1 -0
  149. package/dist/components/json-schema-form-help-links.d.ts +5 -0
  150. package/dist/components/json-schema-form-help-links.d.ts.map +1 -0
  151. package/dist/components/json-schema-form-help-links.js +18 -0
  152. package/dist/components/json-schema-form-help-links.js.map +1 -0
  153. package/dist/components/json-schema-form-help-model.cjs +7 -0
  154. package/dist/components/json-schema-form-help-model.cjs.map +1 -0
  155. package/dist/components/json-schema-form-help-model.d.ts +3 -0
  156. package/dist/components/json-schema-form-help-model.d.ts.map +1 -0
  157. package/dist/components/json-schema-form-help-model.js +7 -0
  158. package/dist/components/json-schema-form-help-model.js.map +1 -0
  159. package/dist/components/json-schema-form-json.cjs +48 -0
  160. package/dist/components/json-schema-form-json.cjs.map +1 -0
  161. package/dist/components/json-schema-form-json.d.ts +7 -0
  162. package/dist/components/json-schema-form-json.d.ts.map +1 -0
  163. package/dist/components/json-schema-form-json.js +48 -0
  164. package/dist/components/json-schema-form-json.js.map +1 -0
  165. package/dist/components/json-schema-form-layout.cjs +7 -5
  166. package/dist/components/json-schema-form-layout.cjs.map +1 -1
  167. package/dist/components/json-schema-form-layout.d.ts +2 -2
  168. package/dist/components/json-schema-form-layout.d.ts.map +1 -1
  169. package/dist/components/json-schema-form-layout.js +7 -5
  170. package/dist/components/json-schema-form-layout.js.map +1 -1
  171. package/dist/components/json-schema-form-object.cjs +2 -13
  172. package/dist/components/json-schema-form-object.cjs.map +1 -1
  173. package/dist/components/json-schema-form-object.d.ts.map +1 -1
  174. package/dist/components/json-schema-form-object.js +2 -13
  175. package/dist/components/json-schema-form-object.js.map +1 -1
  176. package/dist/components/json-schema-form-refs.cjs +1 -1
  177. package/dist/components/json-schema-form-refs.cjs.map +1 -1
  178. package/dist/components/json-schema-form-refs.d.ts.map +1 -1
  179. package/dist/components/json-schema-form-refs.js +1 -1
  180. package/dist/components/json-schema-form-refs.js.map +1 -1
  181. package/dist/components/json-schema-form-render.cjs +20 -6
  182. package/dist/components/json-schema-form-render.cjs.map +1 -1
  183. package/dist/components/json-schema-form-render.d.ts.map +1 -1
  184. package/dist/components/json-schema-form-render.js +20 -6
  185. package/dist/components/json-schema-form-render.js.map +1 -1
  186. package/dist/components/json-schema-form-resolve.cjs +22 -2
  187. package/dist/components/json-schema-form-resolve.cjs.map +1 -1
  188. package/dist/components/json-schema-form-resolve.d.ts.map +1 -1
  189. package/dist/components/json-schema-form-resolve.js +22 -2
  190. package/dist/components/json-schema-form-resolve.js.map +1 -1
  191. package/dist/components/json-schema-form-types.d.ts +5 -1
  192. package/dist/components/json-schema-form-types.d.ts.map +1 -1
  193. package/dist/components/json-schema-form-union-model.cjs +46 -0
  194. package/dist/components/json-schema-form-union-model.cjs.map +1 -0
  195. package/dist/components/json-schema-form-union-model.d.ts +6 -0
  196. package/dist/components/json-schema-form-union-model.d.ts.map +1 -0
  197. package/dist/components/json-schema-form-union-model.js +43 -0
  198. package/dist/components/json-schema-form-union-model.js.map +1 -0
  199. package/dist/components/json-schema-form-union.cjs +52 -0
  200. package/dist/components/json-schema-form-union.cjs.map +1 -0
  201. package/dist/components/json-schema-form-union.d.ts +7 -0
  202. package/dist/components/json-schema-form-union.d.ts.map +1 -0
  203. package/dist/components/json-schema-form-union.js +52 -0
  204. package/dist/components/json-schema-form-union.js.map +1 -0
  205. package/dist/components/list-menu-virtual.cjs +5 -0
  206. package/dist/components/list-menu-virtual.cjs.map +1 -0
  207. package/dist/components/list-menu-virtual.d.ts +12 -0
  208. package/dist/components/list-menu-virtual.d.ts.map +1 -0
  209. package/dist/components/list-menu-virtual.js +6 -0
  210. package/dist/components/list-menu-virtual.js.map +1 -0
  211. package/dist/components/local-path.cjs +12 -0
  212. package/dist/components/local-path.cjs.map +1 -0
  213. package/dist/components/local-path.d.ts +14 -0
  214. package/dist/components/local-path.d.ts.map +1 -0
  215. package/dist/components/local-path.js +12 -0
  216. package/dist/components/local-path.js.map +1 -0
  217. package/dist/components/slider-shared.cjs +32 -0
  218. package/dist/components/slider-shared.cjs.map +1 -0
  219. package/dist/components/slider-shared.d.ts +18 -0
  220. package/dist/components/slider-shared.d.ts.map +1 -0
  221. package/dist/components/slider-shared.js +27 -0
  222. package/dist/components/slider-shared.js.map +1 -0
  223. package/dist/components.cjs +8 -0
  224. package/dist/components.d.ts +6 -1
  225. package/dist/components.d.ts.map +1 -1
  226. package/dist/components.js +5 -1
  227. package/dist/connections/ConnectionsPage.cjs +51 -19
  228. package/dist/connections/ConnectionsPage.cjs.map +1 -1
  229. package/dist/connections/ConnectionsPage.d.ts +9 -1
  230. package/dist/connections/ConnectionsPage.d.ts.map +1 -1
  231. package/dist/connections/ConnectionsPage.js +52 -20
  232. package/dist/connections/ConnectionsPage.js.map +1 -1
  233. package/dist/connections/connectionDashboard.cjs +13 -8
  234. package/dist/connections/connectionDashboard.cjs.map +1 -1
  235. package/dist/connections/connectionDashboard.d.ts +8 -3
  236. package/dist/connections/connectionDashboard.d.ts.map +1 -1
  237. package/dist/connections/connectionDashboard.js +14 -9
  238. package/dist/connections/connectionDashboard.js.map +1 -1
  239. package/dist/connections/connectionDashboardModel.cjs.map +1 -1
  240. package/dist/connections/connectionDashboardModel.d.ts +4 -0
  241. package/dist/connections/connectionDashboardModel.d.ts.map +1 -1
  242. package/dist/connections/connectionDashboardModel.js.map +1 -1
  243. package/dist/connections/connectionDashboardRow.cjs +75 -55
  244. package/dist/connections/connectionDashboardRow.cjs.map +1 -1
  245. package/dist/connections/connectionDashboardRow.d.ts +3 -2
  246. package/dist/connections/connectionDashboardRow.d.ts.map +1 -1
  247. package/dist/connections/connectionDashboardRow.js +75 -55
  248. package/dist/connections/connectionDashboardRow.js.map +1 -1
  249. package/dist/connections/connectionNamespaceField.cjs +17 -0
  250. package/dist/connections/connectionNamespaceField.cjs.map +1 -0
  251. package/dist/connections/connectionNamespaceField.d.ts +10 -0
  252. package/dist/connections/connectionNamespaceField.d.ts.map +1 -0
  253. package/dist/connections/connectionNamespaceField.js +17 -0
  254. package/dist/connections/connectionNamespaceField.js.map +1 -0
  255. package/dist/connections/connectionSchemaFormExtensions.cjs +98 -0
  256. package/dist/connections/connectionSchemaFormExtensions.cjs.map +1 -0
  257. package/dist/connections/connectionSchemaFormExtensions.d.ts +41 -0
  258. package/dist/connections/connectionSchemaFormExtensions.d.ts.map +1 -0
  259. package/dist/connections/connectionSchemaFormExtensions.js +96 -0
  260. package/dist/connections/connectionSchemaFormExtensions.js.map +1 -0
  261. package/dist/connections/connectionsPageModel.cjs +11 -0
  262. package/dist/connections/connectionsPageModel.cjs.map +1 -1
  263. package/dist/connections/connectionsPageModel.d.ts +5 -0
  264. package/dist/connections/connectionsPageModel.d.ts.map +1 -1
  265. package/dist/connections/connectionsPageModel.js +11 -1
  266. package/dist/connections/connectionsPageModel.js.map +1 -1
  267. package/dist/connections.cjs +5 -0
  268. package/dist/connections.d.ts +2 -1
  269. package/dist/connections.d.ts.map +1 -1
  270. package/dist/connections.js +3 -2
  271. package/dist/data/AvatarBadge.cjs +3 -3
  272. package/dist/data/AvatarBadge.cjs.map +1 -1
  273. package/dist/data/AvatarBadge.js +3 -3
  274. package/dist/data/AvatarBadge.js.map +1 -1
  275. package/dist/data/CodeDiff.cjs +2 -0
  276. package/dist/data/CodeDiff.cjs.map +1 -1
  277. package/dist/data/CodeDiff.js +2 -0
  278. package/dist/data/CodeDiff.js.map +1 -1
  279. package/dist/data/DataTable.cjs +3 -2
  280. package/dist/data/DataTable.cjs.map +1 -1
  281. package/dist/data/DataTable.d.ts.map +1 -1
  282. package/dist/data/DataTable.js +3 -2
  283. package/dist/data/DataTable.js.map +1 -1
  284. package/dist/data/Gauge.cjs +1 -1
  285. package/dist/data/Gauge.cjs.map +1 -1
  286. package/dist/data/Gauge.js +1 -1
  287. package/dist/data/Gauge.js.map +1 -1
  288. package/dist/data/HighlightedTokens.cjs +2 -10
  289. package/dist/data/HighlightedTokens.cjs.map +1 -1
  290. package/dist/data/HighlightedTokens.d.ts.map +1 -1
  291. package/dist/data/HighlightedTokens.js +1 -9
  292. package/dist/data/HighlightedTokens.js.map +1 -1
  293. package/dist/data/Markdown.cjs +38 -11
  294. package/dist/data/Markdown.cjs.map +1 -1
  295. package/dist/data/Markdown.d.ts +9 -1
  296. package/dist/data/Markdown.d.ts.map +1 -1
  297. package/dist/data/Markdown.js +39 -12
  298. package/dist/data/Markdown.js.map +1 -1
  299. package/dist/data/MultiGaugeBar.cjs +157 -0
  300. package/dist/data/MultiGaugeBar.cjs.map +1 -0
  301. package/dist/data/MultiGaugeBar.d.ts +29 -0
  302. package/dist/data/MultiGaugeBar.d.ts.map +1 -0
  303. package/dist/data/MultiGaugeBar.js +157 -0
  304. package/dist/data/MultiGaugeBar.js.map +1 -0
  305. package/dist/data/OpenInFilesLink.cjs +27 -0
  306. package/dist/data/OpenInFilesLink.cjs.map +1 -0
  307. package/dist/data/OpenInFilesLink.d.ts +15 -0
  308. package/dist/data/OpenInFilesLink.d.ts.map +1 -0
  309. package/dist/data/OpenInFilesLink.js +27 -0
  310. package/dist/data/OpenInFilesLink.js.map +1 -0
  311. package/dist/data/ProgressBar.cjs +5 -3
  312. package/dist/data/ProgressBar.cjs.map +1 -1
  313. package/dist/data/ProgressBar.d.ts +5 -1
  314. package/dist/data/ProgressBar.d.ts.map +1 -1
  315. package/dist/data/ProgressBar.js +5 -3
  316. package/dist/data/ProgressBar.js.map +1 -1
  317. package/dist/data/ProgressBars.cjs +13 -5
  318. package/dist/data/ProgressBars.cjs.map +1 -1
  319. package/dist/data/ProgressBars.d.ts +6 -1
  320. package/dist/data/ProgressBars.d.ts.map +1 -1
  321. package/dist/data/ProgressBars.js +13 -5
  322. package/dist/data/ProgressBars.js.map +1 -1
  323. package/dist/data/Properties.cjs +3 -3
  324. package/dist/data/Properties.cjs.map +1 -1
  325. package/dist/data/Properties.js +3 -3
  326. package/dist/data/Properties.js.map +1 -1
  327. package/dist/data/TaskProgress.cjs +14 -6
  328. package/dist/data/TaskProgress.cjs.map +1 -1
  329. package/dist/data/TaskProgress.d.ts +3 -1
  330. package/dist/data/TaskProgress.d.ts.map +1 -1
  331. package/dist/data/TaskProgress.js +14 -6
  332. package/dist/data/TaskProgress.js.map +1 -1
  333. package/dist/data/TaskPrompts.cjs +96 -0
  334. package/dist/data/TaskPrompts.cjs.map +1 -0
  335. package/dist/data/TaskPrompts.d.ts +6 -0
  336. package/dist/data/TaskPrompts.d.ts.map +1 -0
  337. package/dist/data/TaskPrompts.js +96 -0
  338. package/dist/data/TaskPrompts.js.map +1 -0
  339. package/dist/data/TaskSnapshot.cjs.map +1 -1
  340. package/dist/data/TaskSnapshot.d.ts +3 -0
  341. package/dist/data/TaskSnapshot.d.ts.map +1 -1
  342. package/dist/data/TaskSnapshot.js.map +1 -1
  343. package/dist/data/TimeseriesCoreBars.cjs +7 -3
  344. package/dist/data/TimeseriesCoreBars.cjs.map +1 -1
  345. package/dist/data/TimeseriesCoreBars.d.ts.map +1 -1
  346. package/dist/data/TimeseriesCoreBars.js +8 -4
  347. package/dist/data/TimeseriesCoreBars.js.map +1 -1
  348. package/dist/data/TimeseriesGauge.cjs +12 -5
  349. package/dist/data/TimeseriesGauge.cjs.map +1 -1
  350. package/dist/data/TimeseriesGauge.d.ts.map +1 -1
  351. package/dist/data/TimeseriesGauge.js +13 -6
  352. package/dist/data/TimeseriesGauge.js.map +1 -1
  353. package/dist/data/TimeseriesPanel.cjs +10 -9
  354. package/dist/data/TimeseriesPanel.cjs.map +1 -1
  355. package/dist/data/TimeseriesPanel.d.ts +1 -1
  356. package/dist/data/TimeseriesPanel.d.ts.map +1 -1
  357. package/dist/data/TimeseriesPanel.js +11 -10
  358. package/dist/data/TimeseriesPanel.js.map +1 -1
  359. package/dist/data/TimeseriesPanel.model.cjs +62 -10
  360. package/dist/data/TimeseriesPanel.model.cjs.map +1 -1
  361. package/dist/data/TimeseriesPanel.model.d.ts +40 -1
  362. package/dist/data/TimeseriesPanel.model.d.ts.map +1 -1
  363. package/dist/data/TimeseriesPanel.model.js +62 -11
  364. package/dist/data/TimeseriesPanel.model.js.map +1 -1
  365. package/dist/data/WorkloadCard.cjs +7 -3
  366. package/dist/data/WorkloadCard.cjs.map +1 -1
  367. package/dist/data/WorkloadCard.d.ts +3 -1
  368. package/dist/data/WorkloadCard.d.ts.map +1 -1
  369. package/dist/data/WorkloadCard.js +7 -3
  370. package/dist/data/WorkloadCard.js.map +1 -1
  371. package/dist/data/WorkloadCard.model.cjs.map +1 -1
  372. package/dist/data/WorkloadCard.model.d.ts +2 -0
  373. package/dist/data/WorkloadCard.model.d.ts.map +1 -1
  374. package/dist/data/WorkloadCard.model.js.map +1 -1
  375. package/dist/data/ai/ChatWindow.placement.cjs +2 -1
  376. package/dist/data/ai/ChatWindow.placement.cjs.map +1 -1
  377. package/dist/data/ai/ChatWindow.placement.d.ts +1 -1
  378. package/dist/data/ai/ChatWindow.placement.d.ts.map +1 -1
  379. package/dist/data/ai/ChatWindow.placement.js +2 -1
  380. package/dist/data/ai/ChatWindow.placement.js.map +1 -1
  381. package/dist/data/ai/SpecRuntimeBar.cjs +2 -2
  382. package/dist/data/ai/SpecRuntimeBar.cjs.map +1 -1
  383. package/dist/data/ai/SpecRuntimeBar.d.ts +4 -1
  384. package/dist/data/ai/SpecRuntimeBar.d.ts.map +1 -1
  385. package/dist/data/ai/SpecRuntimeBar.js +2 -2
  386. package/dist/data/ai/SpecRuntimeBar.js.map +1 -1
  387. package/dist/data/ai/SpecRuntimeEditor/PromptSection.cjs +1 -1
  388. package/dist/data/ai/SpecRuntimeEditor/PromptSection.cjs.map +1 -1
  389. package/dist/data/ai/SpecRuntimeEditor/PromptSection.js +1 -1
  390. package/dist/data/ai/SpecRuntimeEditor/PromptSection.js.map +1 -1
  391. package/dist/data/ai/SpecRuntimeEditor.model.cjs +2 -2
  392. package/dist/data/ai/SpecRuntimeEditor.model.cjs.map +1 -1
  393. package/dist/data/ai/SpecRuntimeEditor.model.d.ts +2 -2
  394. package/dist/data/ai/SpecRuntimeEditor.model.d.ts.map +1 -1
  395. package/dist/data/ai/SpecRuntimeEditor.model.js +2 -2
  396. package/dist/data/ai/SpecRuntimeEditor.model.js.map +1 -1
  397. package/dist/data/ai/ThreadPicker.cjs +2 -2
  398. package/dist/data/ai/ThreadPicker.cjs.map +1 -1
  399. package/dist/data/ai/ThreadPicker.js +2 -2
  400. package/dist/data/ai/ThreadPicker.js.map +1 -1
  401. package/dist/data/ai/index.d.ts +2 -0
  402. package/dist/data/ai/index.d.ts.map +1 -1
  403. package/dist/data/ai/use-prompt-run-stream.cjs +126 -0
  404. package/dist/data/ai/use-prompt-run-stream.cjs.map +1 -0
  405. package/dist/data/ai/use-prompt-run-stream.d.ts +52 -0
  406. package/dist/data/ai/use-prompt-run-stream.d.ts.map +1 -0
  407. package/dist/data/ai/use-prompt-run-stream.js +126 -0
  408. package/dist/data/ai/use-prompt-run-stream.js.map +1 -0
  409. package/dist/data/cache-browser/CacheBrowser.cjs +1 -0
  410. package/dist/data/cache-browser/CacheBrowser.cjs.map +1 -1
  411. package/dist/data/cache-browser/CacheBrowser.d.ts.map +1 -1
  412. package/dist/data/cache-browser/CacheBrowser.js +1 -0
  413. package/dist/data/cache-browser/CacheBrowser.js.map +1 -1
  414. package/dist/data/charts/BarChart.cjs +194 -0
  415. package/dist/data/charts/BarChart.cjs.map +1 -0
  416. package/dist/data/charts/BarChart.d.ts +19 -0
  417. package/dist/data/charts/BarChart.d.ts.map +1 -0
  418. package/dist/data/charts/BarChart.js +194 -0
  419. package/dist/data/charts/BarChart.js.map +1 -0
  420. package/dist/data/charts/ChartLegend.cjs +54 -0
  421. package/dist/data/charts/ChartLegend.cjs.map +1 -0
  422. package/dist/data/charts/ChartLegend.d.ts +17 -0
  423. package/dist/data/charts/ChartLegend.d.ts.map +1 -0
  424. package/dist/data/charts/ChartLegend.js +54 -0
  425. package/dist/data/charts/ChartLegend.js.map +1 -0
  426. package/dist/data/charts/Sparkline.cjs +56 -0
  427. package/dist/data/charts/Sparkline.cjs.map +1 -0
  428. package/dist/data/charts/Sparkline.d.ts +15 -0
  429. package/dist/data/charts/Sparkline.d.ts.map +1 -0
  430. package/dist/data/charts/Sparkline.js +56 -0
  431. package/dist/data/charts/Sparkline.js.map +1 -0
  432. package/dist/data/charts/StackedBarChart.cjs +241 -0
  433. package/dist/data/charts/StackedBarChart.cjs.map +1 -0
  434. package/dist/data/charts/StackedBarChart.d.ts +20 -0
  435. package/dist/data/charts/StackedBarChart.d.ts.map +1 -0
  436. package/dist/data/charts/StackedBarChart.js +241 -0
  437. package/dist/data/charts/StackedBarChart.js.map +1 -0
  438. package/dist/data/charts/TrendChart.cjs +157 -0
  439. package/dist/data/charts/TrendChart.cjs.map +1 -0
  440. package/dist/data/charts/TrendChart.d.ts +20 -0
  441. package/dist/data/charts/TrendChart.d.ts.map +1 -0
  442. package/dist/data/charts/TrendChart.js +157 -0
  443. package/dist/data/charts/TrendChart.js.map +1 -0
  444. package/dist/data/charts/chart-marks.cjs +115 -0
  445. package/dist/data/charts/chart-marks.cjs.map +1 -0
  446. package/dist/data/charts/chart-marks.d.ts +39 -0
  447. package/dist/data/charts/chart-marks.d.ts.map +1 -0
  448. package/dist/data/charts/chart-marks.js +112 -0
  449. package/dist/data/charts/chart-marks.js.map +1 -0
  450. package/dist/data/charts/chart-palette.cjs +74 -0
  451. package/dist/data/charts/chart-palette.cjs.map +1 -0
  452. package/dist/data/charts/chart-palette.d.ts +58 -0
  453. package/dist/data/charts/chart-palette.d.ts.map +1 -0
  454. package/dist/data/charts/chart-palette.js +72 -0
  455. package/dist/data/charts/chart-palette.js.map +1 -0
  456. package/dist/data/charts/chart-scale.cjs +115 -0
  457. package/dist/data/charts/chart-scale.cjs.map +1 -0
  458. package/dist/data/charts/chart-scale.d.ts +41 -0
  459. package/dist/data/charts/chart-scale.d.ts.map +1 -0
  460. package/dist/data/charts/chart-scale.js +104 -0
  461. package/dist/data/charts/chart-scale.js.map +1 -0
  462. package/dist/data/charts/chart.test-utils.d.ts +7 -0
  463. package/dist/data/charts/chart.test-utils.d.ts.map +1 -0
  464. package/dist/data/charts/index.d.ts +7 -0
  465. package/dist/data/charts/index.d.ts.map +1 -0
  466. package/dist/data/chat/MessageActions.cjs +1 -1
  467. package/dist/data/chat/MessageActions.cjs.map +1 -1
  468. package/dist/data/chat/MessageActions.js +1 -1
  469. package/dist/data/chat/MessageActions.js.map +1 -1
  470. package/dist/data/diagnostics/DiagnosticsDetailPanel.cjs +1 -1
  471. package/dist/data/diagnostics/DiagnosticsDetailPanel.js +1 -1
  472. package/dist/data/diagnostics/DiagnosticsTree.cjs +1 -1
  473. package/dist/data/diagnostics/DiagnosticsTree.cjs.map +1 -1
  474. package/dist/data/diagnostics/DiagnosticsTree.js +1 -1
  475. package/dist/data/diagnostics/DiagnosticsTree.js.map +1 -1
  476. package/dist/data/diagnostics/FrameSourceWindow.cjs +9 -2
  477. package/dist/data/diagnostics/FrameSourceWindow.cjs.map +1 -1
  478. package/dist/data/diagnostics/FrameSourceWindow.d.ts +1 -1
  479. package/dist/data/diagnostics/FrameSourceWindow.d.ts.map +1 -1
  480. package/dist/data/diagnostics/FrameSourceWindow.js +9 -2
  481. package/dist/data/diagnostics/FrameSourceWindow.js.map +1 -1
  482. package/dist/data/diagnostics/ProblemActions.cjs +37 -0
  483. package/dist/data/diagnostics/ProblemActions.cjs.map +1 -0
  484. package/dist/data/diagnostics/ProblemActions.d.ts +6 -0
  485. package/dist/data/diagnostics/ProblemActions.d.ts.map +1 -0
  486. package/dist/data/diagnostics/ProblemActions.js +37 -0
  487. package/dist/data/diagnostics/ProblemActions.js.map +1 -0
  488. package/dist/data/diagnostics/ProblemFacet.cjs +33 -0
  489. package/dist/data/diagnostics/ProblemFacet.cjs.map +1 -0
  490. package/dist/data/diagnostics/ProblemFacet.d.ts +9 -0
  491. package/dist/data/diagnostics/ProblemFacet.d.ts.map +1 -0
  492. package/dist/data/diagnostics/ProblemFacet.js +33 -0
  493. package/dist/data/diagnostics/ProblemFacet.js.map +1 -0
  494. package/dist/data/diagnostics/ProblemRow.cjs +62 -0
  495. package/dist/data/diagnostics/ProblemRow.cjs.map +1 -0
  496. package/dist/data/diagnostics/ProblemRow.d.ts +14 -0
  497. package/dist/data/diagnostics/ProblemRow.d.ts.map +1 -0
  498. package/dist/data/diagnostics/ProblemRow.js +62 -0
  499. package/dist/data/diagnostics/ProblemRow.js.map +1 -0
  500. package/dist/data/diagnostics/ProblemViewOptions.cjs +18 -0
  501. package/dist/data/diagnostics/ProblemViewOptions.cjs.map +1 -0
  502. package/dist/data/diagnostics/ProblemViewOptions.d.ts +6 -0
  503. package/dist/data/diagnostics/ProblemViewOptions.d.ts.map +1 -0
  504. package/dist/data/diagnostics/ProblemViewOptions.js +18 -0
  505. package/dist/data/diagnostics/ProblemViewOptions.js.map +1 -0
  506. package/dist/data/diagnostics/StackFrameRow.cjs +1 -1
  507. package/dist/data/diagnostics/StackFrameRow.cjs.map +1 -1
  508. package/dist/data/diagnostics/StackFrameRow.js +1 -1
  509. package/dist/data/diagnostics/StackFrameRow.js.map +1 -1
  510. package/dist/data/diagnostics/diagnostic-identity.cjs +14 -0
  511. package/dist/data/diagnostics/diagnostic-identity.cjs.map +1 -0
  512. package/dist/data/diagnostics/diagnostic-identity.d.ts +3 -0
  513. package/dist/data/diagnostics/diagnostic-identity.d.ts.map +1 -0
  514. package/dist/data/diagnostics/diagnostic-identity.js +14 -0
  515. package/dist/data/diagnostics/diagnostic-identity.js.map +1 -0
  516. package/dist/data/diagnostics/use-problem-expansion.cjs +16 -0
  517. package/dist/data/diagnostics/use-problem-expansion.cjs.map +1 -0
  518. package/dist/data/diagnostics/use-problem-expansion.d.ts +3 -0
  519. package/dist/data/diagnostics/use-problem-expansion.d.ts.map +1 -0
  520. package/dist/data/diagnostics/use-problem-expansion.js +16 -0
  521. package/dist/data/diagnostics/use-problem-expansion.js.map +1 -0
  522. package/dist/data/git/GitChangeList.cjs +9 -6
  523. package/dist/data/git/GitChangeList.cjs.map +1 -1
  524. package/dist/data/git/GitChangeList.d.ts +6 -0
  525. package/dist/data/git/GitChangeList.d.ts.map +1 -1
  526. package/dist/data/git/GitChangeList.js +9 -6
  527. package/dist/data/git/GitChangeList.js.map +1 -1
  528. package/dist/data/git/pickers/GitPickersDemo.d.ts.map +1 -1
  529. package/dist/data/git/pickers/ReferencePicker.cjs +1 -0
  530. package/dist/data/git/pickers/ReferencePicker.cjs.map +1 -1
  531. package/dist/data/git/pickers/ReferencePicker.js +1 -0
  532. package/dist/data/git/pickers/ReferencePicker.js.map +1 -1
  533. package/dist/data/lint/LintDetail.cjs +230 -189
  534. package/dist/data/lint/LintDetail.cjs.map +1 -1
  535. package/dist/data/lint/LintDetail.d.ts +25 -3
  536. package/dist/data/lint/LintDetail.d.ts.map +1 -1
  537. package/dist/data/lint/LintDetail.js +231 -192
  538. package/dist/data/lint/LintDetail.js.map +1 -1
  539. package/dist/data/lint/LintFilterBar.cjs +78 -83
  540. package/dist/data/lint/LintFilterBar.cjs.map +1 -1
  541. package/dist/data/lint/LintFilterBar.d.ts +23 -6
  542. package/dist/data/lint/LintFilterBar.d.ts.map +1 -1
  543. package/dist/data/lint/LintFilterBar.js +78 -85
  544. package/dist/data/lint/LintFilterBar.js.map +1 -1
  545. package/dist/data/lint/LintIgnoreMenu.cjs +59 -0
  546. package/dist/data/lint/LintIgnoreMenu.cjs.map +1 -0
  547. package/dist/data/lint/LintIgnoreMenu.d.ts +20 -0
  548. package/dist/data/lint/LintIgnoreMenu.d.ts.map +1 -0
  549. package/dist/data/lint/LintIgnoreMenu.js +58 -0
  550. package/dist/data/lint/LintIgnoreMenu.js.map +1 -0
  551. package/dist/data/lint/LintResults.cjs +59 -14
  552. package/dist/data/lint/LintResults.cjs.map +1 -1
  553. package/dist/data/lint/LintResults.d.ts +25 -1
  554. package/dist/data/lint/LintResults.d.ts.map +1 -1
  555. package/dist/data/lint/LintResults.fixtures.d.ts +19 -0
  556. package/dist/data/lint/LintResults.fixtures.d.ts.map +1 -1
  557. package/dist/data/lint/LintResults.js +60 -15
  558. package/dist/data/lint/LintResults.js.map +1 -1
  559. package/dist/data/lint/LintTable.cjs +156 -0
  560. package/dist/data/lint/LintTable.cjs.map +1 -0
  561. package/dist/data/lint/LintTable.d.ts +13 -0
  562. package/dist/data/lint/LintTable.d.ts.map +1 -0
  563. package/dist/data/lint/LintTable.js +156 -0
  564. package/dist/data/lint/LintTable.js.map +1 -0
  565. package/dist/data/lint/LintTreeNode.cjs +42 -19
  566. package/dist/data/lint/LintTreeNode.cjs.map +1 -1
  567. package/dist/data/lint/LintTreeNode.d.ts +7 -2
  568. package/dist/data/lint/LintTreeNode.d.ts.map +1 -1
  569. package/dist/data/lint/LintTreeNode.js +44 -21
  570. package/dist/data/lint/LintTreeNode.js.map +1 -1
  571. package/dist/data/lint/ViolationSnippet.cjs +113 -0
  572. package/dist/data/lint/ViolationSnippet.cjs.map +1 -0
  573. package/dist/data/lint/ViolationSnippet.d.ts +20 -0
  574. package/dist/data/lint/ViolationSnippet.d.ts.map +1 -0
  575. package/dist/data/lint/ViolationSnippet.js +112 -0
  576. package/dist/data/lint/ViolationSnippet.js.map +1 -0
  577. package/dist/data/lint/actions.cjs +44 -16
  578. package/dist/data/lint/actions.cjs.map +1 -1
  579. package/dist/data/lint/actions.d.ts +7 -3
  580. package/dist/data/lint/actions.d.ts.map +1 -1
  581. package/dist/data/lint/actions.js +44 -16
  582. package/dist/data/lint/actions.js.map +1 -1
  583. package/dist/data/lint/grouping.cjs +105 -8
  584. package/dist/data/lint/grouping.cjs.map +1 -1
  585. package/dist/data/lint/grouping.d.ts +21 -1
  586. package/dist/data/lint/grouping.d.ts.map +1 -1
  587. package/dist/data/lint/grouping.js +105 -10
  588. package/dist/data/lint/grouping.js.map +1 -1
  589. package/dist/data/lint/ignore-menu-items.cjs +18 -0
  590. package/dist/data/lint/ignore-menu-items.cjs.map +1 -0
  591. package/dist/data/lint/ignore-menu-items.d.ts +6 -0
  592. package/dist/data/lint/ignore-menu-items.d.ts.map +1 -0
  593. package/dist/data/lint/ignore-menu-items.js +17 -0
  594. package/dist/data/lint/ignore-menu-items.js.map +1 -0
  595. package/dist/data/lint/index.d.ts +7 -5
  596. package/dist/data/lint/index.d.ts.map +1 -1
  597. package/dist/data/lint/stats.cjs +19 -4
  598. package/dist/data/lint/stats.cjs.map +1 -1
  599. package/dist/data/lint/stats.d.ts +13 -3
  600. package/dist/data/lint/stats.d.ts.map +1 -1
  601. package/dist/data/lint/stats.js +17 -5
  602. package/dist/data/lint/stats.js.map +1 -1
  603. package/dist/data/lint/types.cjs +8 -0
  604. package/dist/data/lint/types.cjs.map +1 -1
  605. package/dist/data/lint/types.d.ts +47 -0
  606. package/dist/data/lint/types.d.ts.map +1 -1
  607. package/dist/data/lint/types.js +8 -1
  608. package/dist/data/lint/types.js.map +1 -1
  609. package/dist/data/lint/violation-menu-items.cjs +31 -0
  610. package/dist/data/lint/violation-menu-items.cjs.map +1 -0
  611. package/dist/data/lint/violation-menu-items.d.ts +12 -0
  612. package/dist/data/lint/violation-menu-items.d.ts.map +1 -0
  613. package/dist/data/lint/violation-menu-items.js +31 -0
  614. package/dist/data/lint/violation-menu-items.js.map +1 -0
  615. package/dist/data/markdown-source-blocks.cjs +38 -0
  616. package/dist/data/markdown-source-blocks.cjs.map +1 -0
  617. package/dist/data/markdown-source-blocks.d.ts +32 -0
  618. package/dist/data/markdown-source-blocks.d.ts.map +1 -0
  619. package/dist/data/markdown-source-blocks.js +35 -0
  620. package/dist/data/markdown-source-blocks.js.map +1 -0
  621. package/dist/data/test-runner/FilterFacet.cjs +52 -0
  622. package/dist/data/test-runner/FilterFacet.cjs.map +1 -0
  623. package/dist/data/test-runner/FilterFacet.d.ts +13 -0
  624. package/dist/data/test-runner/FilterFacet.d.ts.map +1 -0
  625. package/dist/data/test-runner/FilterFacet.js +52 -0
  626. package/dist/data/test-runner/FilterFacet.js.map +1 -0
  627. package/dist/data/test-runner/MatrixMarks.cjs +42 -40
  628. package/dist/data/test-runner/MatrixMarks.cjs.map +1 -1
  629. package/dist/data/test-runner/MatrixMarks.d.ts +20 -4
  630. package/dist/data/test-runner/MatrixMarks.d.ts.map +1 -1
  631. package/dist/data/test-runner/MatrixMarks.js +43 -42
  632. package/dist/data/test-runner/MatrixMarks.js.map +1 -1
  633. package/dist/data/test-runner/TestAttemptDetail.cjs +1 -1
  634. package/dist/data/test-runner/TestAttemptDetail.js +1 -1
  635. package/dist/data/test-runner/TestDetailPanel.cjs +11 -0
  636. package/dist/data/test-runner/TestDetailPanel.cjs.map +1 -1
  637. package/dist/data/test-runner/TestDetailPanel.d.ts.map +1 -1
  638. package/dist/data/test-runner/TestDetailPanel.js +11 -0
  639. package/dist/data/test-runner/TestDetailPanel.js.map +1 -1
  640. package/dist/data/test-runner/TestFilterBar.cjs +3 -44
  641. package/dist/data/test-runner/TestFilterBar.cjs.map +1 -1
  642. package/dist/data/test-runner/TestFilterBar.d.ts.map +1 -1
  643. package/dist/data/test-runner/TestFilterBar.js +3 -44
  644. package/dist/data/test-runner/TestFilterBar.js.map +1 -1
  645. package/dist/data/test-runner/TestRunner.cjs +3 -1
  646. package/dist/data/test-runner/TestRunner.cjs.map +1 -1
  647. package/dist/data/test-runner/TestRunner.d.ts +7 -1
  648. package/dist/data/test-runner/TestRunner.d.ts.map +1 -1
  649. package/dist/data/test-runner/TestRunner.js +3 -1
  650. package/dist/data/test-runner/TestRunner.js.map +1 -1
  651. package/dist/data/test-runner/context.cjs.map +1 -1
  652. package/dist/data/test-runner/context.d.ts +3 -0
  653. package/dist/data/test-runner/context.d.ts.map +1 -1
  654. package/dist/data/test-runner/context.js.map +1 -1
  655. package/dist/data/test-runner/index.d.ts +2 -2
  656. package/dist/data/test-runner/index.d.ts.map +1 -1
  657. package/dist/data/test-runner/matrix-marks.cjs +2 -11
  658. package/dist/data/test-runner/matrix-marks.cjs.map +1 -1
  659. package/dist/data/test-runner/matrix-marks.d.ts +2 -4
  660. package/dist/data/test-runner/matrix-marks.d.ts.map +1 -1
  661. package/dist/data/test-runner/matrix-marks.js +3 -11
  662. package/dist/data/test-runner/matrix-marks.js.map +1 -1
  663. package/dist/data/test-runner/types.d.ts +2 -0
  664. package/dist/data/test-runner/types.d.ts.map +1 -1
  665. package/dist/data/timeseries-query.cjs +98 -2
  666. package/dist/data/timeseries-query.cjs.map +1 -1
  667. package/dist/data/timeseries-query.d.ts +31 -5
  668. package/dist/data/timeseries-query.d.ts.map +1 -1
  669. package/dist/data/timeseries-query.js +98 -3
  670. package/dist/data/timeseries-query.js.map +1 -1
  671. package/dist/data/timeseries-stream-provider.cjs +38 -0
  672. package/dist/data/timeseries-stream-provider.cjs.map +1 -0
  673. package/dist/data/timeseries-stream-provider.d.ts +26 -0
  674. package/dist/data/timeseries-stream-provider.d.ts.map +1 -0
  675. package/dist/data/timeseries-stream-provider.js +38 -0
  676. package/dist/data/timeseries-stream-provider.js.map +1 -0
  677. package/dist/data/timeseries-stream.cjs +304 -0
  678. package/dist/data/timeseries-stream.cjs.map +1 -0
  679. package/dist/data/timeseries-stream.d.ts +81 -0
  680. package/dist/data/timeseries-stream.d.ts.map +1 -0
  681. package/dist/data/timeseries-stream.fixtures.d.ts +36 -0
  682. package/dist/data/timeseries-stream.fixtures.d.ts.map +1 -0
  683. package/dist/data/timeseries-stream.js +296 -0
  684. package/dist/data/timeseries-stream.js.map +1 -0
  685. package/dist/data/token-style.cjs +13 -0
  686. package/dist/data/token-style.cjs.map +1 -0
  687. package/dist/data/token-style.d.ts +4 -0
  688. package/dist/data/token-style.d.ts.map +1 -0
  689. package/dist/data/token-style.js +13 -0
  690. package/dist/data/token-style.js.map +1 -0
  691. package/dist/data/traces/ProcessTraceDetail.cjs +1 -1
  692. package/dist/data/traces/ProcessTraceDetail.js +1 -1
  693. package/dist/data/traces/index.d.ts +1 -1
  694. package/dist/data/traces/index.d.ts.map +1 -1
  695. package/dist/data/use-data-table-virtual.d.ts +1 -1
  696. package/dist/data/version-info.cjs +3 -3
  697. package/dist/data/version-info.js +3 -3
  698. package/dist/data/workload-panel/MemoryStack.cjs +49 -0
  699. package/dist/data/workload-panel/MemoryStack.cjs.map +1 -0
  700. package/dist/data/workload-panel/MemoryStack.d.ts +11 -0
  701. package/dist/data/workload-panel/MemoryStack.d.ts.map +1 -0
  702. package/dist/data/workload-panel/MemoryStack.js +48 -0
  703. package/dist/data/workload-panel/MemoryStack.js.map +1 -0
  704. package/dist/data/workload-panel/Metrics.cjs +197 -0
  705. package/dist/data/workload-panel/Metrics.cjs.map +1 -0
  706. package/dist/data/workload-panel/Metrics.d.ts +11 -0
  707. package/dist/data/workload-panel/Metrics.d.ts.map +1 -0
  708. package/dist/data/workload-panel/Metrics.js +196 -0
  709. package/dist/data/workload-panel/Metrics.js.map +1 -0
  710. package/dist/data/workload-panel/WorkloadPanel.cjs +66 -0
  711. package/dist/data/workload-panel/WorkloadPanel.cjs.map +1 -0
  712. package/dist/data/workload-panel/WorkloadPanel.d.ts +3 -0
  713. package/dist/data/workload-panel/WorkloadPanel.d.ts.map +1 -0
  714. package/dist/data/workload-panel/WorkloadPanel.js +66 -0
  715. package/dist/data/workload-panel/WorkloadPanel.js.map +1 -0
  716. package/dist/data/workload-panel/fixtures.d.ts +60 -0
  717. package/dist/data/workload-panel/fixtures.d.ts.map +1 -0
  718. package/dist/data/workload-panel/model.cjs +137 -0
  719. package/dist/data/workload-panel/model.cjs.map +1 -0
  720. package/dist/data/workload-panel/model.d.ts +53 -0
  721. package/dist/data/workload-panel/model.d.ts.map +1 -0
  722. package/dist/data/workload-panel/model.js +133 -0
  723. package/dist/data/workload-panel/model.js.map +1 -0
  724. package/dist/data/workload-panel/types.d.ts +56 -0
  725. package/dist/data/workload-panel/types.d.ts.map +1 -0
  726. package/dist/data.cjs +58 -7
  727. package/dist/data.d.ts +9 -1
  728. package/dist/data.d.ts.map +1 -1
  729. package/dist/data.js +29 -12
  730. package/dist/file-findings/AnnotatedCode.cjs +243 -0
  731. package/dist/file-findings/AnnotatedCode.cjs.map +1 -0
  732. package/dist/file-findings/AnnotatedCode.d.ts +30 -0
  733. package/dist/file-findings/AnnotatedCode.d.ts.map +1 -0
  734. package/dist/file-findings/AnnotatedCode.js +243 -0
  735. package/dist/file-findings/AnnotatedCode.js.map +1 -0
  736. package/dist/file-findings/FileFindingsView.cjs +213 -0
  737. package/dist/file-findings/FileFindingsView.cjs.map +1 -0
  738. package/dist/file-findings/FileFindingsView.d.ts +35 -0
  739. package/dist/file-findings/FileFindingsView.d.ts.map +1 -0
  740. package/dist/file-findings/FileFindingsView.js +213 -0
  741. package/dist/file-findings/FileFindingsView.js.map +1 -0
  742. package/dist/file-findings/LazyAnnotatedCode.cjs +22 -0
  743. package/dist/file-findings/LazyAnnotatedCode.cjs.map +1 -0
  744. package/dist/file-findings/LazyAnnotatedCode.d.ts +5 -0
  745. package/dist/file-findings/LazyAnnotatedCode.d.ts.map +1 -0
  746. package/dist/file-findings/LazyAnnotatedCode.js +22 -0
  747. package/dist/file-findings/LazyAnnotatedCode.js.map +1 -0
  748. package/dist/file-findings/adapters.cjs +155 -0
  749. package/dist/file-findings/adapters.cjs.map +1 -0
  750. package/dist/file-findings/adapters.d.ts +24 -0
  751. package/dist/file-findings/adapters.d.ts.map +1 -0
  752. package/dist/file-findings/adapters.js +153 -0
  753. package/dist/file-findings/adapters.js.map +1 -0
  754. package/dist/file-findings/file-review/CommentDraft.cjs +97 -0
  755. package/dist/file-findings/file-review/CommentDraft.cjs.map +1 -0
  756. package/dist/file-findings/file-review/CommentDraft.d.ts +25 -0
  757. package/dist/file-findings/file-review/CommentDraft.d.ts.map +1 -0
  758. package/dist/file-findings/file-review/CommentDraft.js +97 -0
  759. package/dist/file-findings/file-review/CommentDraft.js.map +1 -0
  760. package/dist/file-findings/file-review/FileReview.cjs +863 -0
  761. package/dist/file-findings/file-review/FileReview.cjs.map +1 -0
  762. package/dist/file-findings/file-review/FileReview.d.ts +79 -0
  763. package/dist/file-findings/file-review/FileReview.d.ts.map +1 -0
  764. package/dist/file-findings/file-review/FileReview.fixtures.d.ts +25 -0
  765. package/dist/file-findings/file-review/FileReview.fixtures.d.ts.map +1 -0
  766. package/dist/file-findings/file-review/FileReview.js +863 -0
  767. package/dist/file-findings/file-review/FileReview.js.map +1 -0
  768. package/dist/file-findings/file-review/InlineAuthors.cjs +77 -0
  769. package/dist/file-findings/file-review/InlineAuthors.cjs.map +1 -0
  770. package/dist/file-findings/file-review/InlineAuthors.d.ts +9 -0
  771. package/dist/file-findings/file-review/InlineAuthors.d.ts.map +1 -0
  772. package/dist/file-findings/file-review/InlineAuthors.js +77 -0
  773. package/dist/file-findings/file-review/InlineAuthors.js.map +1 -0
  774. package/dist/file-findings/file-review/InlineThread.cjs +77 -0
  775. package/dist/file-findings/file-review/InlineThread.cjs.map +1 -0
  776. package/dist/file-findings/file-review/InlineThread.d.ts +27 -0
  777. package/dist/file-findings/file-review/InlineThread.d.ts.map +1 -0
  778. package/dist/file-findings/file-review/InlineThread.js +77 -0
  779. package/dist/file-findings/file-review/InlineThread.js.map +1 -0
  780. package/dist/file-findings/file-review/ProblemsList.cjs +164 -0
  781. package/dist/file-findings/file-review/ProblemsList.cjs.map +1 -0
  782. package/dist/file-findings/file-review/ProblemsList.d.ts +15 -0
  783. package/dist/file-findings/file-review/ProblemsList.d.ts.map +1 -0
  784. package/dist/file-findings/file-review/ProblemsList.js +164 -0
  785. package/dist/file-findings/file-review/ProblemsList.js.map +1 -0
  786. package/dist/file-findings/file-review/SourceView.cjs +179 -0
  787. package/dist/file-findings/file-review/SourceView.cjs.map +1 -0
  788. package/dist/file-findings/file-review/SourceView.d.ts +29 -0
  789. package/dist/file-findings/file-review/SourceView.d.ts.map +1 -0
  790. package/dist/file-findings/file-review/SourceView.js +179 -0
  791. package/dist/file-findings/file-review/SourceView.js.map +1 -0
  792. package/dist/file-findings/file-review/blame.cjs +35 -0
  793. package/dist/file-findings/file-review/blame.cjs.map +1 -0
  794. package/dist/file-findings/file-review/blame.d.ts +28 -0
  795. package/dist/file-findings/file-review/blame.d.ts.map +1 -0
  796. package/dist/file-findings/file-review/blame.js +33 -0
  797. package/dist/file-findings/file-review/blame.js.map +1 -0
  798. package/dist/file-findings/file-review/geometry.cjs +101 -0
  799. package/dist/file-findings/file-review/geometry.cjs.map +1 -0
  800. package/dist/file-findings/file-review/geometry.d.ts +45 -0
  801. package/dist/file-findings/file-review/geometry.d.ts.map +1 -0
  802. package/dist/file-findings/file-review/geometry.js +98 -0
  803. package/dist/file-findings/file-review/geometry.js.map +1 -0
  804. package/dist/file-findings/file-review/hooks.cjs +101 -0
  805. package/dist/file-findings/file-review/hooks.cjs.map +1 -0
  806. package/dist/file-findings/file-review/hooks.d.ts +22 -0
  807. package/dist/file-findings/file-review/hooks.d.ts.map +1 -0
  808. package/dist/file-findings/file-review/hooks.js +99 -0
  809. package/dist/file-findings/file-review/hooks.js.map +1 -0
  810. package/dist/file-findings/file-review/marks.cjs +52 -0
  811. package/dist/file-findings/file-review/marks.cjs.map +1 -0
  812. package/dist/file-findings/file-review/marks.d.ts +23 -0
  813. package/dist/file-findings/file-review/marks.d.ts.map +1 -0
  814. package/dist/file-findings/file-review/marks.js +47 -0
  815. package/dist/file-findings/file-review/marks.js.map +1 -0
  816. package/dist/file-findings/file-review/problem-filters.cjs +14 -0
  817. package/dist/file-findings/file-review/problem-filters.cjs.map +1 -0
  818. package/dist/file-findings/file-review/problem-filters.d.ts +10 -0
  819. package/dist/file-findings/file-review/problem-filters.d.ts.map +1 -0
  820. package/dist/file-findings/file-review/problem-filters.js +13 -0
  821. package/dist/file-findings/file-review/problem-filters.js.map +1 -0
  822. package/dist/file-findings/file-review/quote-anchor.cjs +234 -0
  823. package/dist/file-findings/file-review/quote-anchor.cjs.map +1 -0
  824. package/dist/file-findings/file-review/quote-anchor.d.ts +54 -0
  825. package/dist/file-findings/file-review/quote-anchor.d.ts.map +1 -0
  826. package/dist/file-findings/file-review/quote-anchor.js +226 -0
  827. package/dist/file-findings/file-review/quote-anchor.js.map +1 -0
  828. package/dist/file-findings/file-review/source-anchor.cjs +104 -0
  829. package/dist/file-findings/file-review/source-anchor.cjs.map +1 -0
  830. package/dist/file-findings/file-review/source-anchor.d.ts +27 -0
  831. package/dist/file-findings/file-review/source-anchor.d.ts.map +1 -0
  832. package/dist/file-findings/file-review/source-anchor.js +99 -0
  833. package/dist/file-findings/file-review/source-anchor.js.map +1 -0
  834. package/dist/file-findings/file-review/source-marks.cjs +71 -0
  835. package/dist/file-findings/file-review/source-marks.cjs.map +1 -0
  836. package/dist/file-findings/file-review/source-marks.d.ts +27 -0
  837. package/dist/file-findings/file-review/source-marks.d.ts.map +1 -0
  838. package/dist/file-findings/file-review/source-marks.js +68 -0
  839. package/dist/file-findings/file-review/source-marks.js.map +1 -0
  840. package/dist/file-findings/findings-comments.cjs +136 -0
  841. package/dist/file-findings/findings-comments.cjs.map +1 -0
  842. package/dist/file-findings/findings-comments.d.ts +28 -0
  843. package/dist/file-findings/findings-comments.d.ts.map +1 -0
  844. package/dist/file-findings/findings-comments.js +131 -0
  845. package/dist/file-findings/findings-comments.js.map +1 -0
  846. package/dist/file-findings/findings-languages.cjs +53 -0
  847. package/dist/file-findings/findings-languages.cjs.map +1 -0
  848. package/dist/file-findings/findings-languages.d.ts +11 -0
  849. package/dist/file-findings/findings-languages.d.ts.map +1 -0
  850. package/dist/file-findings/findings-languages.js +53 -0
  851. package/dist/file-findings/findings-languages.js.map +1 -0
  852. package/dist/file-findings/mdx-source.cjs +48 -0
  853. package/dist/file-findings/mdx-source.cjs.map +1 -0
  854. package/dist/file-findings/mdx-source.d.ts +7 -0
  855. package/dist/file-findings/mdx-source.d.ts.map +1 -0
  856. package/dist/file-findings/mdx-source.js +48 -0
  857. package/dist/file-findings/mdx-source.js.map +1 -0
  858. package/dist/file-findings/monaco-language.cjs +73 -0
  859. package/dist/file-findings/monaco-language.cjs.map +1 -0
  860. package/dist/file-findings/monaco-language.d.ts +11 -0
  861. package/dist/file-findings/monaco-language.d.ts.map +1 -0
  862. package/dist/file-findings/monaco-language.js +72 -0
  863. package/dist/file-findings/monaco-language.js.map +1 -0
  864. package/dist/file-findings/severity-counts.cjs +20 -0
  865. package/dist/file-findings/severity-counts.cjs.map +1 -0
  866. package/dist/file-findings/severity-counts.d.ts +5 -0
  867. package/dist/file-findings/severity-counts.d.ts.map +1 -0
  868. package/dist/file-findings/severity-counts.js +19 -0
  869. package/dist/file-findings/severity-counts.js.map +1 -0
  870. package/dist/file-findings/types.cjs +12 -0
  871. package/dist/file-findings/types.cjs.map +1 -0
  872. package/dist/file-findings/types.d.ts +43 -0
  873. package/dist/file-findings/types.d.ts.map +1 -0
  874. package/dist/file-findings/types.js +11 -0
  875. package/dist/file-findings/types.js.map +1 -0
  876. package/dist/file-findings.cjs +47 -0
  877. package/dist/file-findings.d.ts +15 -0
  878. package/dist/file-findings.d.ts.map +1 -0
  879. package/dist/file-findings.js +15 -0
  880. package/dist/hooks/event-hub.cjs +22 -8
  881. package/dist/hooks/event-hub.cjs.map +1 -1
  882. package/dist/hooks/event-hub.d.ts.map +1 -1
  883. package/dist/hooks/event-hub.js +22 -8
  884. package/dist/hooks/event-hub.js.map +1 -1
  885. package/dist/icons/components/UiBrowser.cjs +51 -0
  886. package/dist/icons/components/UiBrowser.cjs.map +1 -0
  887. package/dist/icons/components/UiBrowser.d.ts +15 -0
  888. package/dist/icons/components/UiBrowser.d.ts.map +1 -0
  889. package/dist/icons/components/UiBrowser.js +48 -0
  890. package/dist/icons/components/UiBrowser.js.map +1 -0
  891. package/dist/icons/components/UiCreditCard.cjs +51 -0
  892. package/dist/icons/components/UiCreditCard.cjs.map +1 -0
  893. package/dist/icons/components/UiCreditCard.d.ts +15 -0
  894. package/dist/icons/components/UiCreditCard.d.ts.map +1 -0
  895. package/dist/icons/components/UiCreditCard.js +48 -0
  896. package/dist/icons/components/UiCreditCard.js.map +1 -0
  897. package/dist/icons/components/UiShoppingCart.cjs +51 -0
  898. package/dist/icons/components/UiShoppingCart.cjs.map +1 -0
  899. package/dist/icons/components/UiShoppingCart.d.ts +15 -0
  900. package/dist/icons/components/UiShoppingCart.d.ts.map +1 -0
  901. package/dist/icons/components/UiShoppingCart.js +48 -0
  902. package/dist/icons/components/UiShoppingCart.js.map +1 -0
  903. package/dist/icons/index.d.ts +6 -0
  904. package/dist/icons/index.d.ts.map +1 -1
  905. package/dist/icons/registry.cjs +6 -0
  906. package/dist/icons/registry.cjs.map +1 -1
  907. package/dist/icons/registry.d.ts.map +1 -1
  908. package/dist/icons/registry.js +6 -0
  909. package/dist/icons/registry.js.map +1 -1
  910. package/dist/icons.cjs +9 -0
  911. package/dist/icons.js +4 -1
  912. package/dist/index.cjs +76 -8
  913. package/dist/index.d.ts +1 -0
  914. package/dist/index.d.ts.map +1 -1
  915. package/dist/index.js +37 -14
  916. package/dist/layout/AppShell.cjs +37 -21
  917. package/dist/layout/AppShell.cjs.map +1 -1
  918. package/dist/layout/AppShell.d.ts +13 -2
  919. package/dist/layout/AppShell.d.ts.map +1 -1
  920. package/dist/layout/AppShell.js +37 -21
  921. package/dist/layout/AppShell.js.map +1 -1
  922. package/dist/layout/AppShell.nav.cjs +7 -6
  923. package/dist/layout/AppShell.nav.cjs.map +1 -1
  924. package/dist/layout/AppShell.nav.d.ts.map +1 -1
  925. package/dist/layout/AppShell.nav.js +7 -6
  926. package/dist/layout/AppShell.nav.js.map +1 -1
  927. package/dist/layout/SplitPane.cjs +16 -6
  928. package/dist/layout/SplitPane.cjs.map +1 -1
  929. package/dist/layout/SplitPane.d.ts +12 -2
  930. package/dist/layout/SplitPane.d.ts.map +1 -1
  931. package/dist/layout/SplitPane.js +16 -6
  932. package/dist/layout/SplitPane.js.map +1 -1
  933. package/dist/layout/Workspace.cjs +37 -33
  934. package/dist/layout/Workspace.cjs.map +1 -1
  935. package/dist/layout/Workspace.d.ts.map +1 -1
  936. package/dist/layout/Workspace.js +37 -33
  937. package/dist/layout/Workspace.js.map +1 -1
  938. package/dist/layout/Workspace.regions.cjs +3 -3
  939. package/dist/layout/Workspace.regions.cjs.map +1 -1
  940. package/dist/layout/Workspace.regions.js +3 -3
  941. package/dist/layout/Workspace.regions.js.map +1 -1
  942. package/dist/lib/breakpoints.cjs +102 -0
  943. package/dist/lib/breakpoints.cjs.map +1 -0
  944. package/dist/lib/breakpoints.d.ts +36 -0
  945. package/dist/lib/breakpoints.d.ts.map +1 -0
  946. package/dist/lib/breakpoints.js +99 -0
  947. package/dist/lib/breakpoints.js.map +1 -0
  948. package/dist/lib/combobox.cjs +2 -1
  949. package/dist/lib/combobox.cjs.map +1 -1
  950. package/dist/lib/combobox.d.ts +1 -1
  951. package/dist/lib/combobox.d.ts.map +1 -1
  952. package/dist/lib/combobox.js +2 -1
  953. package/dist/lib/combobox.js.map +1 -1
  954. package/dist/lib/path-tree.cjs +21 -0
  955. package/dist/lib/path-tree.cjs.map +1 -1
  956. package/dist/lib/path-tree.d.ts +15 -0
  957. package/dist/lib/path-tree.d.ts.map +1 -1
  958. package/dist/lib/path-tree.js +21 -1
  959. package/dist/lib/path-tree.js.map +1 -1
  960. package/dist/overlay/Modal.cjs +2 -1
  961. package/dist/overlay/Modal.cjs.map +1 -1
  962. package/dist/overlay/Modal.d.ts.map +1 -1
  963. package/dist/overlay/Modal.js +2 -1
  964. package/dist/overlay/Modal.js.map +1 -1
  965. package/dist/overlay/dropdownMenuContext.d.ts +1 -1
  966. package/dist/profiles/editor/profileEditor.cjs +1 -1
  967. package/dist/profiles/editor/profileEditor.cjs.map +1 -1
  968. package/dist/profiles/editor/profileEditor.js +1 -1
  969. package/dist/profiles/editor/profileEditor.js.map +1 -1
  970. package/dist/profiles/editor/profileEditorSections.cjs +2 -2
  971. package/dist/profiles/editor/profileEditorSections.cjs.map +1 -1
  972. package/dist/profiles/editor/profileEditorSections.js +2 -2
  973. package/dist/profiles/editor/profileEditorSections.js.map +1 -1
  974. package/dist/profiles/query/prometheusResults.cjs +24 -36
  975. package/dist/profiles/query/prometheusResults.cjs.map +1 -1
  976. package/dist/profiles/query/prometheusResults.d.ts.map +1 -1
  977. package/dist/profiles/query/prometheusResults.js +24 -36
  978. package/dist/profiles/query/prometheusResults.js.map +1 -1
  979. package/dist/rpc/CommandForm.cjs +1 -1
  980. package/dist/rpc/CommandForm.cjs.map +1 -1
  981. package/dist/rpc/CommandForm.js +1 -1
  982. package/dist/rpc/CommandForm.js.map +1 -1
  983. package/dist/rpc/classify.cjs +1 -1
  984. package/dist/rpc/classify.cjs.map +1 -1
  985. package/dist/rpc/classify.d.ts.map +1 -1
  986. package/dist/rpc/classify.js +1 -1
  987. package/dist/rpc/classify.js.map +1 -1
  988. package/dist/rpc/useOperations.d.ts +24 -24
  989. package/dist/rpc.cjs +0 -2
  990. package/dist/rpc.d.ts +0 -1
  991. package/dist/rpc.d.ts.map +1 -1
  992. package/dist/rpc.js +1 -2
  993. package/dist/styles.css +1 -1
  994. package/dist/utils.cjs +6 -0
  995. package/dist/utils.d.ts +2 -1
  996. package/dist/utils.d.ts.map +1 -1
  997. package/dist/utils.js +3 -2
  998. package/package.json +9 -3
  999. package/schemas/json-schema-form.schema.json +9 -1
@@ -0,0 +1,112 @@
1
+ import { CHART_INK } from "./chart-palette.js";
2
+ import { ChartLegend } from "./ChartLegend.js";
3
+ import { px } from "./chart-scale.js";
4
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
5
+ // src/data/charts/chart-marks.tsx
6
+ var FRAME_STYLE = {
7
+ display: "block",
8
+ maxWidth: "100%",
9
+ height: "auto",
10
+ overflow: "visible",
11
+ fontVariantNumeric: "tabular-nums"
12
+ };
13
+ function ChartFrame({ width, height, label, title, className, children }) {
14
+ return /* @__PURE__ */ jsxs("svg", {
15
+ "aria-label": label,
16
+ className,
17
+ fontSize: 11,
18
+ height,
19
+ role: "img",
20
+ style: FRAME_STYLE,
21
+ viewBox: `0 0 ${width} ${height}`,
22
+ width,
23
+ xmlns: "http://www.w3.org/2000/svg",
24
+ children: [title !== void 0 && /* @__PURE__ */ jsx("title", { children: title }), children]
25
+ });
26
+ }
27
+ /** An empty chart says so, at the size the chart would have had. */
28
+ function ChartEmpty({ width, height, className }) {
29
+ return /* @__PURE__ */ jsxs(ChartFrame, {
30
+ className,
31
+ height,
32
+ label: "No data",
33
+ width,
34
+ children: [/* @__PURE__ */ jsx("rect", {
35
+ fill: "none",
36
+ height: Math.max(0, height - 2),
37
+ rx: 4,
38
+ stroke: CHART_INK.grid,
39
+ strokeDasharray: "4 3",
40
+ width: Math.max(0, width - 2),
41
+ x: 1,
42
+ y: 1
43
+ }), /* @__PURE__ */ jsx("text", {
44
+ dominantBaseline: "central",
45
+ fill: CHART_INK.axis,
46
+ fontSize: Math.min(11, height * .6),
47
+ textAnchor: "middle",
48
+ x: width / 2,
49
+ y: height / 2,
50
+ children: "No data"
51
+ })]
52
+ });
53
+ }
54
+ /**
55
+ * One bar. `base` is where the bar is anchored (x for horizontal, the baseline
56
+ * y for vertical), `cross` the start of its thickness, and `length` grows away
57
+ * from the base (rightward, or upward).
58
+ */
59
+ function BarMark({ orientation, base, cross, length, thickness, fill, rounded }) {
60
+ if (length <= 0) return null;
61
+ const radius = rounded ? px(Math.min(4, thickness / 2)) : 0;
62
+ const square = px(Math.min(radius, length));
63
+ const horizontal = orientation === "horizontal";
64
+ const body = horizontal ? {
65
+ x: px(base),
66
+ y: px(cross),
67
+ width: px(length),
68
+ height: px(thickness)
69
+ } : {
70
+ x: px(cross),
71
+ y: px(base - length),
72
+ width: px(thickness),
73
+ height: px(length)
74
+ };
75
+ return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("rect", {
76
+ "data-mark": "bar",
77
+ fill,
78
+ rx: radius || void 0,
79
+ ...body
80
+ }), square > 0 && /* @__PURE__ */ jsx("rect", {
81
+ fill,
82
+ ...horizontal ? {
83
+ x: body.x,
84
+ y: body.y,
85
+ width: square,
86
+ height: body.height
87
+ } : {
88
+ x: body.x,
89
+ y: px(base - square),
90
+ width: body.width,
91
+ height: square
92
+ }
93
+ })] });
94
+ }
95
+ /** Wraps a chart with its legend below it when `show` is set. */
96
+ function WithLegend({ show, items, width, className, children }) {
97
+ if (!show) return /* @__PURE__ */ jsx(Fragment, { children: children(className) });
98
+ return /* @__PURE__ */ jsxs("div", {
99
+ className,
100
+ style: {
101
+ width,
102
+ maxWidth: "100%"
103
+ },
104
+ children: [children(void 0), /* @__PURE__ */ jsx(ChartLegend, {
105
+ items,
106
+ style: { marginTop: 6 }
107
+ })]
108
+ });
109
+ }
110
+ export { BarMark, ChartEmpty, ChartFrame, WithLegend };
111
+
112
+ //# sourceMappingURL=chart-marks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chart-marks.js","names":["_Fragment"],"sources":["../../../src/data/charts/chart-marks.tsx"],"sourcesContent":["/**\n * The marks every static chart is drawn from, ported from the playground's\n * design-system specimens (`dataviz-marks.tsx`):\n *\n * - 2px strokes; thinner disappears on a dense page, thicker reads as decoration.\n * - Rounded data ends, square at the baseline. `rx` rounds all four corners,\n * so the baseline end is squared off by overdrawing it — rounding both ends\n * makes a bar look like it floats above its own axis.\n * - Adjacent fills are separated by a 2px gap in the SURFACE colour, so they\n * read as separated rather than outlined.\n * - A recessive grid; one that competes with the data is drawn too dark.\n *\n * Everything is plain SVG with explicit geometry: no measurement, no effects,\n * no state, so `renderToStaticMarkup` produces the finished chart.\n */\nimport type { CSSProperties, ReactNode } from \"react\";\nimport { CHART_FONT_SIZE, CHART_INK } from \"./chart-palette\";\nimport { ChartLegend, type ChartLegendItem } from \"./ChartLegend\";\nimport { px } from \"./chart-scale\";\n\nconst FRAME_STYLE: CSSProperties = {\n display: \"block\",\n maxWidth: \"100%\",\n height: \"auto\",\n overflow: \"visible\",\n fontVariantNumeric: \"tabular-nums\",\n};\n\nexport function ChartFrame({\n width,\n height,\n label,\n title,\n className,\n children,\n}: {\n width: number;\n height: number;\n label: string;\n title?: string;\n className?: string | undefined;\n children: ReactNode;\n}) {\n return (\n <svg\n aria-label={label}\n className={className}\n fontSize={CHART_FONT_SIZE}\n height={height}\n role=\"img\"\n style={FRAME_STYLE}\n viewBox={`0 0 ${width} ${height}`}\n width={width}\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n {title !== undefined && <title>{title}</title>}\n {children}\n </svg>\n );\n}\n\n/** An empty chart says so, at the size the chart would have had. */\nexport function ChartEmpty({ width, height, className }: { width: number; height: number; className?: string | undefined }) {\n return (\n <ChartFrame className={className} height={height} label=\"No data\" width={width}>\n <rect\n fill=\"none\"\n height={Math.max(0, height - 2)}\n rx={4}\n stroke={CHART_INK.grid}\n strokeDasharray=\"4 3\"\n width={Math.max(0, width - 2)}\n x={1}\n y={1}\n />\n <text\n dominantBaseline=\"central\"\n fill={CHART_INK.axis}\n fontSize={Math.min(CHART_FONT_SIZE, height * 0.6)}\n textAnchor=\"middle\"\n x={width / 2}\n y={height / 2}\n >\n No data\n </text>\n </ChartFrame>\n );\n}\n\n/**\n * One bar. `base` is where the bar is anchored (x for horizontal, the baseline\n * y for vertical), `cross` the start of its thickness, and `length` grows away\n * from the base (rightward, or upward).\n */\nexport function BarMark({\n orientation,\n base,\n cross,\n length,\n thickness,\n fill,\n rounded,\n}: {\n orientation: \"horizontal\" | \"vertical\";\n base: number;\n cross: number;\n length: number;\n thickness: number;\n fill: string;\n rounded: boolean;\n}) {\n if (length <= 0) return null;\n const radius = rounded ? px(Math.min(4, thickness / 2)) : 0;\n const square = px(Math.min(radius, length));\n const horizontal = orientation === \"horizontal\";\n const body = horizontal\n ? { x: px(base), y: px(cross), width: px(length), height: px(thickness) }\n : { x: px(cross), y: px(base - length), width: px(thickness), height: px(length) };\n return (\n <>\n <rect data-mark=\"bar\" fill={fill} rx={radius || undefined} {...body} />\n {square > 0 && (\n <rect\n fill={fill}\n {...(horizontal\n ? { x: body.x, y: body.y, width: square, height: body.height }\n : { x: body.x, y: px(base - square), width: body.width, height: square })}\n />\n )}\n </>\n );\n}\n\n/** Wraps a chart with its legend below it when `show` is set. */\nexport function WithLegend({\n show,\n items,\n width,\n className,\n children,\n}: {\n show: boolean;\n items: ChartLegendItem[];\n width: number;\n className?: string | undefined;\n children: (svgClassName: string | undefined) => ReactNode;\n}) {\n if (!show) return <>{children(className)}</>;\n return (\n <div className={className} style={{ width, maxWidth: \"100%\" }}>\n {children(undefined)}\n <ChartLegend items={items} style={{ marginTop: 6 }} />\n </div>\n );\n}\n"],"mappings":";;;;;AAoBA,IAAM,cAA6B;CACjC,SAAS;CACT,UAAU;CACV,QAAQ;CACR,UAAU;CACV,oBAAoB;AACtB;AAEA,SAAgB,WAAW,EACzB,OACA,QACA,OACA,OACA,WACA,YAQC;CACD,OACE,qBAAC,OAAD;EACE,cAAY;EACD;EACX,UAAA;EACQ;EACR,MAAK;EACL,OAAO;EACP,SAAS,OAAO,MAAM,GAAG;EAClB;EACP,OAAM;EATR,UAAA,CAWG,UAAU,KAAA,KAAa,oBAAC,SAAD,EAAA,UAAQ,MAAa,CAAA,GAC5C,QACE;;AAET;;AAGA,SAAgB,WAAW,EAAE,OAAO,QAAQ,aAAgF;CAC1H,OACE,qBAAC,YAAD;EAAuB;EAAmB;EAAQ,OAAM;EAAiB;EAAzE,UAAA,CACE,oBAAC,QAAD;GACE,MAAK;GACL,QAAQ,KAAK,IAAI,GAAG,SAAS,CAAC;GAC9B,IAAI;GACJ,QAAQ,UAAU;GAClB,iBAAgB;GAChB,OAAO,KAAK,IAAI,GAAG,QAAQ,CAAC;GAC5B,GAAG;GACH,GAAG;EACJ,CAAA,GACD,oBAAC,QAAD;GACE,kBAAiB;GACjB,MAAM,UAAU;GAChB,UAAU,KAAK,IAAA,IAAqB,SAAS,EAAG;GAChD,YAAW;GACX,GAAG,QAAQ;GACX,GAAG,SAAS;GACb,UAAA;EAEK,CAAA,CACI;;AAEhB;;;;;;AAOA,SAAgB,QAAQ,EACtB,aACA,MACA,OACA,QACA,WACA,MACA,WASC;CACD,IAAI,UAAU,GAAG,OAAO;CACxB,MAAM,SAAS,UAAU,GAAG,KAAK,IAAI,GAAG,YAAY,CAAC,CAAC,IAAI;CAC1D,MAAM,SAAS,GAAG,KAAK,IAAI,QAAQ,MAAM,CAAC;CAC1C,MAAM,aAAa,gBAAgB;CACnC,MAAM,OAAO,aACT;EAAE,GAAG,GAAG,IAAI;EAAG,GAAG,GAAG,KAAK;EAAG,OAAO,GAAG,MAAM;EAAG,QAAQ,GAAG,SAAS;CAAE,IACtE;EAAE,GAAG,GAAG,KAAK;EAAG,GAAG,GAAG,OAAO,MAAM;EAAG,OAAO,GAAG,SAAS;EAAG,QAAQ,GAAG,MAAM;CAAE;CACnF,OACE,qBAAAA,UAAA,EAAA,UAAA,CACE,oBAAC,QAAD;EAAM,aAAU;EAAY;EAAM,IAAI,UAAU,KAAA;EAAW,GAAI;CAAO,CAAA,GACrE,SAAS,KACR,oBAAC,QAAD;EACQ;EACN,GAAK,aACD;GAAE,GAAG,KAAK;GAAG,GAAG,KAAK;GAAG,OAAO;GAAQ,QAAQ,KAAK;EAAO,IAC3D;GAAE,GAAG,KAAK;GAAG,GAAG,GAAG,OAAO,MAAM;GAAG,OAAO,KAAK;GAAO,QAAQ;EAAO;CAC1E,CAAA,CAEH,EAAA,CAAA;AAEN;;AAGA,SAAgB,WAAW,EACzB,MACA,OACA,OACA,WACA,YAOC;CACD,IAAI,CAAC,MAAM,OAAO,oBAAAA,UAAA,EAAA,UAAG,SAAS,SAAS,EAAI,CAAA;CAC3C,OACE,qBAAC,OAAD;EAAgB;EAAW,OAAO;GAAE;GAAO,UAAU;EAAO;EAA5D,UAAA,CACG,SAAS,KAAA,CAAS,GACnB,oBAAC,aAAD;GAAoB;GAAO,OAAO,EAAE,WAAW,EAAE;EAAI,CAAA,CAClD;;AAET"}
@@ -0,0 +1,74 @@
1
+ // src/data/charts/chart-palette.ts
2
+ /**
3
+ * The Flanksource categorical chart palette, promoted from the playground's
4
+ * design-system page (`apps/playground/src/design-system/patterns/dataviz-palette.ts`,
5
+ * which holds the validator provenance: worst adjacent CVD ΔE 9.4, every slot
6
+ * ≥ 3:1 on both #ffffff and #030712).
7
+ *
8
+ * The order is load-bearing: emerald and rose are kept three slots apart
9
+ * because adjacent they fail deuteranopia (ΔE 5.8).
10
+ */
11
+ var CHART_PALETTE = [
12
+ {
13
+ index: 1,
14
+ hue: "sky",
15
+ hex: "#0284c7"
16
+ },
17
+ {
18
+ index: 2,
19
+ hue: "amber",
20
+ hex: "#d97706"
21
+ },
22
+ {
23
+ index: 3,
24
+ hue: "rose",
25
+ hex: "#e11d48"
26
+ },
27
+ {
28
+ index: 4,
29
+ hue: "violet",
30
+ hex: "#7c3aed"
31
+ },
32
+ {
33
+ index: 5,
34
+ hue: "emerald",
35
+ hex: "#059669"
36
+ },
37
+ {
38
+ index: 6,
39
+ hue: "indigo",
40
+ hex: "#6366f1"
41
+ },
42
+ {
43
+ index: 7,
44
+ hue: "teal",
45
+ hex: "#0d9488"
46
+ }
47
+ ];
48
+ /**
49
+ * The `--chart-N` token for a 0-based series index, with the validated hex as
50
+ * the fallback so a render without the theme CSS (a PDF, an email) still has
51
+ * colour. Cycles past the seventh slot.
52
+ */
53
+ function chartColor(index) {
54
+ if (!Number.isInteger(index) || index < 0) throw new Error(`chartColor: index must be a non-negative integer, got ${index}`);
55
+ const slot = CHART_PALETTE[index % CHART_PALETTE.length];
56
+ return `var(--chart-${slot.index}, ${slot.hex})`;
57
+ }
58
+ /**
59
+ * Non-data ink. Each reads the playground's chart token first, then the
60
+ * clicky-ui theme token, then a literal, so it resolves with or without CSS.
61
+ */
62
+ var CHART_INK = {
63
+ text: "var(--foreground, #111827)",
64
+ axis: "var(--chart-axis, var(--muted-foreground, #6b7280))",
65
+ grid: "var(--chart-grid, var(--border, #e5e7eb))",
66
+ surface: "var(--background, #ffffff)",
67
+ /** The folded "Other" bar: neutral, because it is not one of the series. */
68
+ other: "var(--muted-foreground, #6b7280)"
69
+ };
70
+ exports.CHART_INK = CHART_INK;
71
+ exports.CHART_PALETTE = CHART_PALETTE;
72
+ exports.chartColor = chartColor;
73
+
74
+ //# sourceMappingURL=chart-palette.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chart-palette.cjs","names":[],"sources":["../../../src/data/charts/chart-palette.ts"],"sourcesContent":["/**\n * The Flanksource categorical chart palette, promoted from the playground's\n * design-system page (`apps/playground/src/design-system/patterns/dataviz-palette.ts`,\n * which holds the validator provenance: worst adjacent CVD ΔE 9.4, every slot\n * ≥ 3:1 on both #ffffff and #030712).\n *\n * The order is load-bearing: emerald and rose are kept three slots apart\n * because adjacent they fail deuteranopia (ΔE 5.8).\n */\nexport const CHART_PALETTE = [\n { index: 1, hue: \"sky\", hex: \"#0284c7\" },\n { index: 2, hue: \"amber\", hex: \"#d97706\" },\n { index: 3, hue: \"rose\", hex: \"#e11d48\" },\n { index: 4, hue: \"violet\", hex: \"#7c3aed\" },\n { index: 5, hue: \"emerald\", hex: \"#059669\" },\n { index: 6, hue: \"indigo\", hex: \"#6366f1\" },\n { index: 7, hue: \"teal\", hex: \"#0d9488\" },\n] as const;\n\n/**\n * The `--chart-N` token for a 0-based series index, with the validated hex as\n * the fallback so a render without the theme CSS (a PDF, an email) still has\n * colour. Cycles past the seventh slot.\n */\nexport function chartColor(index: number): string {\n if (!Number.isInteger(index) || index < 0) {\n throw new Error(`chartColor: index must be a non-negative integer, got ${index}`);\n }\n const slot = CHART_PALETTE[index % CHART_PALETTE.length]!;\n return `var(--chart-${slot.index}, ${slot.hex})`;\n}\n\n/**\n * Non-data ink. Each reads the playground's chart token first, then the\n * clicky-ui theme token, then a literal, so it resolves with or without CSS.\n */\nexport const CHART_INK = {\n text: \"var(--foreground, #111827)\",\n axis: \"var(--chart-axis, var(--muted-foreground, #6b7280))\",\n grid: \"var(--chart-grid, var(--border, #e5e7eb))\",\n surface: \"var(--background, #ffffff)\",\n /** The folded \"Other\" bar: neutral, because it is not one of the series. */\n other: \"var(--muted-foreground, #6b7280)\",\n} as const;\n\nexport const CHART_FONT_SIZE = 11;\n"],"mappings":";;;;;;;;;;AASA,IAAa,gBAAgB;CAC3B;EAAE,OAAO;EAAG,KAAK;EAAO,KAAK;CAAU;CACvC;EAAE,OAAO;EAAG,KAAK;EAAS,KAAK;CAAU;CACzC;EAAE,OAAO;EAAG,KAAK;EAAQ,KAAK;CAAU;CACxC;EAAE,OAAO;EAAG,KAAK;EAAU,KAAK;CAAU;CAC1C;EAAE,OAAO;EAAG,KAAK;EAAW,KAAK;CAAU;CAC3C;EAAE,OAAO;EAAG,KAAK;EAAU,KAAK;CAAU;CAC1C;EAAE,OAAO;EAAG,KAAK;EAAQ,KAAK;CAAU;AAC1C;;;;;;AAOA,SAAgB,WAAW,OAAuB;CAChD,IAAI,CAAC,OAAO,UAAU,KAAK,KAAK,QAAQ,GACtC,MAAM,IAAI,MAAM,yDAAyD,OAAO;CAElF,MAAM,OAAO,cAAc,QAAQ,cAAc;CACjD,OAAO,eAAe,KAAK,MAAM,IAAI,KAAK,IAAI;AAChD;;;;;AAMA,IAAa,YAAY;CACvB,MAAM;CACN,MAAM;CACN,MAAM;CACN,SAAS;;CAET,OAAO;AACT"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * The Flanksource categorical chart palette, promoted from the playground's
3
+ * design-system page (`apps/playground/src/design-system/patterns/dataviz-palette.ts`,
4
+ * which holds the validator provenance: worst adjacent CVD ΔE 9.4, every slot
5
+ * ≥ 3:1 on both #ffffff and #030712).
6
+ *
7
+ * The order is load-bearing: emerald and rose are kept three slots apart
8
+ * because adjacent they fail deuteranopia (ΔE 5.8).
9
+ */
10
+ export declare const CHART_PALETTE: readonly [{
11
+ readonly index: 1;
12
+ readonly hue: "sky";
13
+ readonly hex: "#0284c7";
14
+ }, {
15
+ readonly index: 2;
16
+ readonly hue: "amber";
17
+ readonly hex: "#d97706";
18
+ }, {
19
+ readonly index: 3;
20
+ readonly hue: "rose";
21
+ readonly hex: "#e11d48";
22
+ }, {
23
+ readonly index: 4;
24
+ readonly hue: "violet";
25
+ readonly hex: "#7c3aed";
26
+ }, {
27
+ readonly index: 5;
28
+ readonly hue: "emerald";
29
+ readonly hex: "#059669";
30
+ }, {
31
+ readonly index: 6;
32
+ readonly hue: "indigo";
33
+ readonly hex: "#6366f1";
34
+ }, {
35
+ readonly index: 7;
36
+ readonly hue: "teal";
37
+ readonly hex: "#0d9488";
38
+ }];
39
+ /**
40
+ * The `--chart-N` token for a 0-based series index, with the validated hex as
41
+ * the fallback so a render without the theme CSS (a PDF, an email) still has
42
+ * colour. Cycles past the seventh slot.
43
+ */
44
+ export declare function chartColor(index: number): string;
45
+ /**
46
+ * Non-data ink. Each reads the playground's chart token first, then the
47
+ * clicky-ui theme token, then a literal, so it resolves with or without CSS.
48
+ */
49
+ export declare const CHART_INK: {
50
+ readonly text: "var(--foreground, #111827)";
51
+ readonly axis: "var(--chart-axis, var(--muted-foreground, #6b7280))";
52
+ readonly grid: "var(--chart-grid, var(--border, #e5e7eb))";
53
+ readonly surface: "var(--background, #ffffff)";
54
+ /** The folded "Other" bar: neutral, because it is not one of the series. */
55
+ readonly other: "var(--muted-foreground, #6b7280)";
56
+ };
57
+ export declare const CHART_FONT_SIZE = 11;
58
+ //# sourceMappingURL=chart-palette.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chart-palette.d.ts","sourceRoot":"","sources":["../../../src/data/charts/chart-palette.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQhB,CAAC;AAEX;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMhD;AAED;;;GAGG;AACH,eAAO,MAAM,SAAS;;;;;IAKpB,4EAA4E;;CAEpE,CAAC;AAEX,eAAO,MAAM,eAAe,KAAK,CAAC"}
@@ -0,0 +1,72 @@
1
+ // src/data/charts/chart-palette.ts
2
+ /**
3
+ * The Flanksource categorical chart palette, promoted from the playground's
4
+ * design-system page (`apps/playground/src/design-system/patterns/dataviz-palette.ts`,
5
+ * which holds the validator provenance: worst adjacent CVD ΔE 9.4, every slot
6
+ * ≥ 3:1 on both #ffffff and #030712).
7
+ *
8
+ * The order is load-bearing: emerald and rose are kept three slots apart
9
+ * because adjacent they fail deuteranopia (ΔE 5.8).
10
+ */
11
+ var CHART_PALETTE = [
12
+ {
13
+ index: 1,
14
+ hue: "sky",
15
+ hex: "#0284c7"
16
+ },
17
+ {
18
+ index: 2,
19
+ hue: "amber",
20
+ hex: "#d97706"
21
+ },
22
+ {
23
+ index: 3,
24
+ hue: "rose",
25
+ hex: "#e11d48"
26
+ },
27
+ {
28
+ index: 4,
29
+ hue: "violet",
30
+ hex: "#7c3aed"
31
+ },
32
+ {
33
+ index: 5,
34
+ hue: "emerald",
35
+ hex: "#059669"
36
+ },
37
+ {
38
+ index: 6,
39
+ hue: "indigo",
40
+ hex: "#6366f1"
41
+ },
42
+ {
43
+ index: 7,
44
+ hue: "teal",
45
+ hex: "#0d9488"
46
+ }
47
+ ];
48
+ /**
49
+ * The `--chart-N` token for a 0-based series index, with the validated hex as
50
+ * the fallback so a render without the theme CSS (a PDF, an email) still has
51
+ * colour. Cycles past the seventh slot.
52
+ */
53
+ function chartColor(index) {
54
+ if (!Number.isInteger(index) || index < 0) throw new Error(`chartColor: index must be a non-negative integer, got ${index}`);
55
+ const slot = CHART_PALETTE[index % CHART_PALETTE.length];
56
+ return `var(--chart-${slot.index}, ${slot.hex})`;
57
+ }
58
+ /**
59
+ * Non-data ink. Each reads the playground's chart token first, then the
60
+ * clicky-ui theme token, then a literal, so it resolves with or without CSS.
61
+ */
62
+ var CHART_INK = {
63
+ text: "var(--foreground, #111827)",
64
+ axis: "var(--chart-axis, var(--muted-foreground, #6b7280))",
65
+ grid: "var(--chart-grid, var(--border, #e5e7eb))",
66
+ surface: "var(--background, #ffffff)",
67
+ /** The folded "Other" bar: neutral, because it is not one of the series. */
68
+ other: "var(--muted-foreground, #6b7280)"
69
+ };
70
+ export { CHART_INK, CHART_PALETTE, chartColor };
71
+
72
+ //# sourceMappingURL=chart-palette.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chart-palette.js","names":[],"sources":["../../../src/data/charts/chart-palette.ts"],"sourcesContent":["/**\n * The Flanksource categorical chart palette, promoted from the playground's\n * design-system page (`apps/playground/src/design-system/patterns/dataviz-palette.ts`,\n * which holds the validator provenance: worst adjacent CVD ΔE 9.4, every slot\n * ≥ 3:1 on both #ffffff and #030712).\n *\n * The order is load-bearing: emerald and rose are kept three slots apart\n * because adjacent they fail deuteranopia (ΔE 5.8).\n */\nexport const CHART_PALETTE = [\n { index: 1, hue: \"sky\", hex: \"#0284c7\" },\n { index: 2, hue: \"amber\", hex: \"#d97706\" },\n { index: 3, hue: \"rose\", hex: \"#e11d48\" },\n { index: 4, hue: \"violet\", hex: \"#7c3aed\" },\n { index: 5, hue: \"emerald\", hex: \"#059669\" },\n { index: 6, hue: \"indigo\", hex: \"#6366f1\" },\n { index: 7, hue: \"teal\", hex: \"#0d9488\" },\n] as const;\n\n/**\n * The `--chart-N` token for a 0-based series index, with the validated hex as\n * the fallback so a render without the theme CSS (a PDF, an email) still has\n * colour. Cycles past the seventh slot.\n */\nexport function chartColor(index: number): string {\n if (!Number.isInteger(index) || index < 0) {\n throw new Error(`chartColor: index must be a non-negative integer, got ${index}`);\n }\n const slot = CHART_PALETTE[index % CHART_PALETTE.length]!;\n return `var(--chart-${slot.index}, ${slot.hex})`;\n}\n\n/**\n * Non-data ink. Each reads the playground's chart token first, then the\n * clicky-ui theme token, then a literal, so it resolves with or without CSS.\n */\nexport const CHART_INK = {\n text: \"var(--foreground, #111827)\",\n axis: \"var(--chart-axis, var(--muted-foreground, #6b7280))\",\n grid: \"var(--chart-grid, var(--border, #e5e7eb))\",\n surface: \"var(--background, #ffffff)\",\n /** The folded \"Other\" bar: neutral, because it is not one of the series. */\n other: \"var(--muted-foreground, #6b7280)\",\n} as const;\n\nexport const CHART_FONT_SIZE = 11;\n"],"mappings":";;;;;;;;;;AASA,IAAa,gBAAgB;CAC3B;EAAE,OAAO;EAAG,KAAK;EAAO,KAAK;CAAU;CACvC;EAAE,OAAO;EAAG,KAAK;EAAS,KAAK;CAAU;CACzC;EAAE,OAAO;EAAG,KAAK;EAAQ,KAAK;CAAU;CACxC;EAAE,OAAO;EAAG,KAAK;EAAU,KAAK;CAAU;CAC1C;EAAE,OAAO;EAAG,KAAK;EAAW,KAAK;CAAU;CAC3C;EAAE,OAAO;EAAG,KAAK;EAAU,KAAK;CAAU;CAC1C;EAAE,OAAO;EAAG,KAAK;EAAQ,KAAK;CAAU;AAC1C;;;;;;AAOA,SAAgB,WAAW,OAAuB;CAChD,IAAI,CAAC,OAAO,UAAU,KAAK,KAAK,QAAQ,GACtC,MAAM,IAAI,MAAM,yDAAyD,OAAO;CAElF,MAAM,OAAO,cAAc,QAAQ,cAAc;CACjD,OAAO,eAAe,KAAK,MAAM,IAAI,KAAK,IAAI;AAChD;;;;;AAMA,IAAa,YAAY;CACvB,MAAM;CACN,MAAM;CACN,MAAM;CACN,SAAS;;CAET,OAAO;AACT"}
@@ -0,0 +1,115 @@
1
+ // src/data/charts/chart-scale.ts
2
+ /**
3
+ * Average glyph advance at the chart font size. There is no layout engine in a
4
+ * static render, so text is measured by estimate; 0.6em over-estimates typical
5
+ * sans-serif digits and letters, which errs toward thinning rather than overlap.
6
+ */
7
+ var CHAR_WIDTH = 6.6;
8
+ var LABEL_GAP = 6;
9
+ function textWidth(text) {
10
+ return text.length * CHAR_WIDTH;
11
+ }
12
+ /** Rounds geometry to 2dp so the emitted markup is short and deterministic. */
13
+ function px(value) {
14
+ return Math.round(value * 100) / 100;
15
+ }
16
+ function niceNumber(value, round) {
17
+ const exponent = Math.floor(Math.log10(value));
18
+ const fraction = value / 10 ** exponent;
19
+ let nice;
20
+ if (round) nice = fraction < 1.5 ? 1 : fraction < 3 ? 2 : fraction < 7 ? 5 : 10;
21
+ else nice = fraction <= 1 ? 1 : fraction <= 2 ? 2 : fraction <= 5 ? 5 : 10;
22
+ return nice * 10 ** exponent;
23
+ }
24
+ /** Heckbert's nice axis ticks covering [min, max], about five of them. */
25
+ function niceTicks(min, max) {
26
+ if (!Number.isFinite(min) || !Number.isFinite(max) || min > max) throw new Error(`niceTicks: invalid range ${min}..${max}`);
27
+ const top = max === min ? min + 1 : max;
28
+ const step = niceNumber(niceNumber(top - min, false) / 4, true);
29
+ const decimals = Math.max(0, -Math.floor(Math.log10(step)));
30
+ const first = Math.floor(min / step) * step;
31
+ const last = Math.ceil(top / step) * step;
32
+ const ticks = [];
33
+ for (let i = 0; first + i * step <= last + step / 2; i++) ticks.push(Number((first + i * step).toFixed(decimals)) + 0);
34
+ return ticks;
35
+ }
36
+ /** Keeps the first `maxBars - 1` rows and sums the tail into one "Other" row. */
37
+ function foldTail(rows, maxBars) {
38
+ if (maxBars === void 0) return [...rows];
39
+ if (!Number.isInteger(maxBars) || maxBars < 2) throw new Error(`maxBars must be an integer ≥ 2, got ${maxBars}`);
40
+ if (rows.length <= maxBars) return [...rows];
41
+ const tail = rows.slice(maxBars - 1);
42
+ return [...rows.slice(0, maxBars - 1), {
43
+ label: "Other",
44
+ value: tail.reduce((sum, row) => sum + row.value, 0),
45
+ folded: tail.length
46
+ }];
47
+ }
48
+ /** Every how many slots a label can be drawn without colliding with the next shown one. */
49
+ function labelStep(labels, slotWidth) {
50
+ const widest = Math.max(0, ...labels.map(textWidth)) + LABEL_GAP;
51
+ return Math.max(1, Math.ceil(widest / slotWidth));
52
+ }
53
+ /** The x for a middle-anchored label that keeps the whole label inside [0, width]. */
54
+ function clampLabelX(center, label, width) {
55
+ const half = textWidth(label) / 2;
56
+ return px(Math.min(Math.max(center, half), width - half));
57
+ }
58
+ function truncateLabel(label, maxWidth) {
59
+ if (textWidth(label) <= maxWidth) return label;
60
+ const keep = Math.max(1, Math.floor(maxWidth / CHAR_WIDTH) - 1);
61
+ return `${label.slice(0, keep)}…`;
62
+ }
63
+ var MONTHS = [
64
+ "Jan",
65
+ "Feb",
66
+ "Mar",
67
+ "Apr",
68
+ "May",
69
+ "Jun",
70
+ "Jul",
71
+ "Aug",
72
+ "Sep",
73
+ "Oct",
74
+ "Nov",
75
+ "Dec"
76
+ ];
77
+ var ISO_DATE = /^(\d{4})-(\d{2})-(\d{2})(?:$|T)/;
78
+ /**
79
+ * Default x label: an ISO date becomes "Aug 16" (read from the string, not via
80
+ * Date, so the output does not depend on the render's timezone); anything else
81
+ * is shown as given.
82
+ */
83
+ function formatChartX(x) {
84
+ const match = ISO_DATE.exec(x);
85
+ if (!match) return x;
86
+ const month = MONTHS[Number(match[2]) - 1];
87
+ if (!month) throw new Error(`formatChartX: invalid month in ${x}`);
88
+ return `${month} ${Number(match[3])}`;
89
+ }
90
+ var VALUE_FORMAT = new Intl.NumberFormat("en-US", { maximumFractionDigits: 2 });
91
+ /** Default value label: grouped, up to 2 decimals, locale-independent. */
92
+ function formatChartValue(value) {
93
+ return VALUE_FORMAT.format(value);
94
+ }
95
+ function assertChartSize(component, width, height) {
96
+ if (!Number.isFinite(width) || width <= 0) throw new Error(`${component}: width must be a positive number, got ${width}`);
97
+ if (height !== void 0 && (!Number.isFinite(height) || height <= 0)) throw new Error(`${component}: height must be a positive number, got ${height}`);
98
+ }
99
+ function assertFinite(component, label, value) {
100
+ if (!Number.isFinite(value)) throw new Error(`${component}: value for "${label}" must be finite, got ${value}`);
101
+ }
102
+ exports.CHAR_WIDTH = CHAR_WIDTH;
103
+ exports.assertChartSize = assertChartSize;
104
+ exports.assertFinite = assertFinite;
105
+ exports.clampLabelX = clampLabelX;
106
+ exports.foldTail = foldTail;
107
+ exports.formatChartValue = formatChartValue;
108
+ exports.formatChartX = formatChartX;
109
+ exports.labelStep = labelStep;
110
+ exports.niceTicks = niceTicks;
111
+ exports.px = px;
112
+ exports.textWidth = textWidth;
113
+ exports.truncateLabel = truncateLabel;
114
+
115
+ //# sourceMappingURL=chart-scale.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chart-scale.cjs","names":[],"sources":["../../../src/data/charts/chart-scale.ts"],"sourcesContent":["import { CHART_FONT_SIZE } from \"./chart-palette\";\n\n/**\n * Average glyph advance at the chart font size. There is no layout engine in a\n * static render, so text is measured by estimate; 0.6em over-estimates typical\n * sans-serif digits and letters, which errs toward thinning rather than overlap.\n */\nexport const CHAR_WIDTH = CHART_FONT_SIZE * 0.6;\nconst LABEL_GAP = 6;\n\nexport function textWidth(text: string): number {\n return text.length * CHAR_WIDTH;\n}\n\n/** Rounds geometry to 2dp so the emitted markup is short and deterministic. */\nexport function px(value: number): number {\n return Math.round(value * 100) / 100;\n}\n\nfunction niceNumber(value: number, round: boolean): number {\n const exponent = Math.floor(Math.log10(value));\n const fraction = value / 10 ** exponent;\n let nice: number;\n if (round) nice = fraction < 1.5 ? 1 : fraction < 3 ? 2 : fraction < 7 ? 5 : 10;\n else nice = fraction <= 1 ? 1 : fraction <= 2 ? 2 : fraction <= 5 ? 5 : 10;\n return nice * 10 ** exponent;\n}\n\n/** Heckbert's nice axis ticks covering [min, max], about five of them. */\nexport function niceTicks(min: number, max: number): number[] {\n if (!Number.isFinite(min) || !Number.isFinite(max) || min > max) {\n throw new Error(`niceTicks: invalid range ${min}..${max}`);\n }\n const top = max === min ? min + 1 : max;\n const step = niceNumber(niceNumber(top - min, false) / 4, true);\n const decimals = Math.max(0, -Math.floor(Math.log10(step)));\n const first = Math.floor(min / step) * step;\n const last = Math.ceil(top / step) * step;\n const ticks: number[] = [];\n for (let i = 0; first + i * step <= last + step / 2; i++) {\n ticks.push(Number((first + i * step).toFixed(decimals)) + 0);\n }\n return ticks;\n}\n\nexport type FoldedRow<T> = T | { label: string; value: number; folded: number };\n\n/** Keeps the first `maxBars - 1` rows and sums the tail into one \"Other\" row. */\nexport function foldTail<T extends { label: string; value: number }>(\n rows: readonly T[],\n maxBars: number | undefined,\n): FoldedRow<T>[] {\n if (maxBars === undefined) return [...rows];\n if (!Number.isInteger(maxBars) || maxBars < 2) {\n throw new Error(`maxBars must be an integer ≥ 2, got ${maxBars}`);\n }\n if (rows.length <= maxBars) return [...rows];\n const tail = rows.slice(maxBars - 1);\n return [\n ...rows.slice(0, maxBars - 1),\n { label: \"Other\", value: tail.reduce((sum, row) => sum + row.value, 0), folded: tail.length },\n ];\n}\n\n/** Every how many slots a label can be drawn without colliding with the next shown one. */\nexport function labelStep(labels: readonly string[], slotWidth: number): number {\n const widest = Math.max(0, ...labels.map(textWidth)) + LABEL_GAP;\n return Math.max(1, Math.ceil(widest / slotWidth));\n}\n\n/** Height below the plot reserved for x labels, so they clear the 0 tick label. */\nexport const X_AXIS_BAND = 22;\n/** Distance from the chart's bottom edge to the x label baseline. */\nexport const X_LABEL_INSET = 6;\n\n/** The x for a middle-anchored label that keeps the whole label inside [0, width]. */\nexport function clampLabelX(center: number, label: string, width: number): number {\n const half = textWidth(label) / 2;\n return px(Math.min(Math.max(center, half), width - half));\n}\n\nexport function truncateLabel(label: string, maxWidth: number): string {\n if (textWidth(label) <= maxWidth) return label;\n const keep = Math.max(1, Math.floor(maxWidth / CHAR_WIDTH) - 1);\n return `${label.slice(0, keep)}…`;\n}\n\nconst MONTHS = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\nconst ISO_DATE = /^(\\d{4})-(\\d{2})-(\\d{2})(?:$|T)/;\n\n/**\n * Default x label: an ISO date becomes \"Aug 16\" (read from the string, not via\n * Date, so the output does not depend on the render's timezone); anything else\n * is shown as given.\n */\nexport function formatChartX(x: string): string {\n const match = ISO_DATE.exec(x);\n if (!match) return x;\n const month = MONTHS[Number(match[2]) - 1];\n if (!month) throw new Error(`formatChartX: invalid month in ${x}`);\n return `${month} ${Number(match[3])}`;\n}\n\nconst VALUE_FORMAT = new Intl.NumberFormat(\"en-US\", { maximumFractionDigits: 2 });\n\n/** Default value label: grouped, up to 2 decimals, locale-independent. */\nexport function formatChartValue(value: number): string {\n return VALUE_FORMAT.format(value);\n}\n\nexport function assertChartSize(component: string, width: number, height?: number): void {\n if (!Number.isFinite(width) || width <= 0) throw new Error(`${component}: width must be a positive number, got ${width}`);\n if (height !== undefined && (!Number.isFinite(height) || height <= 0)) {\n throw new Error(`${component}: height must be a positive number, got ${height}`);\n }\n}\n\nexport function assertFinite(component: string, label: string, value: number): void {\n if (!Number.isFinite(value)) throw new Error(`${component}: value for \"${label}\" must be finite, got ${value}`);\n}\n"],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Average glyph advance at the chart font size. There is no layout engine in a
3
+ * static render, so text is measured by estimate; 0.6em over-estimates typical
4
+ * sans-serif digits and letters, which errs toward thinning rather than overlap.
5
+ */
6
+ export declare const CHAR_WIDTH: number;
7
+ export declare function textWidth(text: string): number;
8
+ /** Rounds geometry to 2dp so the emitted markup is short and deterministic. */
9
+ export declare function px(value: number): number;
10
+ /** Heckbert's nice axis ticks covering [min, max], about five of them. */
11
+ export declare function niceTicks(min: number, max: number): number[];
12
+ export type FoldedRow<T> = T | {
13
+ label: string;
14
+ value: number;
15
+ folded: number;
16
+ };
17
+ /** Keeps the first `maxBars - 1` rows and sums the tail into one "Other" row. */
18
+ export declare function foldTail<T extends {
19
+ label: string;
20
+ value: number;
21
+ }>(rows: readonly T[], maxBars: number | undefined): FoldedRow<T>[];
22
+ /** Every how many slots a label can be drawn without colliding with the next shown one. */
23
+ export declare function labelStep(labels: readonly string[], slotWidth: number): number;
24
+ /** Height below the plot reserved for x labels, so they clear the 0 tick label. */
25
+ export declare const X_AXIS_BAND = 22;
26
+ /** Distance from the chart's bottom edge to the x label baseline. */
27
+ export declare const X_LABEL_INSET = 6;
28
+ /** The x for a middle-anchored label that keeps the whole label inside [0, width]. */
29
+ export declare function clampLabelX(center: number, label: string, width: number): number;
30
+ export declare function truncateLabel(label: string, maxWidth: number): string;
31
+ /**
32
+ * Default x label: an ISO date becomes "Aug 16" (read from the string, not via
33
+ * Date, so the output does not depend on the render's timezone); anything else
34
+ * is shown as given.
35
+ */
36
+ export declare function formatChartX(x: string): string;
37
+ /** Default value label: grouped, up to 2 decimals, locale-independent. */
38
+ export declare function formatChartValue(value: number): string;
39
+ export declare function assertChartSize(component: string, width: number, height?: number): void;
40
+ export declare function assertFinite(component: string, label: string, value: number): void;
41
+ //# sourceMappingURL=chart-scale.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chart-scale.d.ts","sourceRoot":"","sources":["../../../src/data/charts/chart-scale.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,eAAO,MAAM,UAAU,QAAwB,CAAC;AAGhD,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED,+EAA+E;AAC/E,wBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAExC;AAWD,0EAA0E;AAC1E,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAc5D;AAED,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhF,iFAAiF;AACjF,wBAAgB,QAAQ,CAAC,CAAC,SAAS;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EACjE,IAAI,EAAE,SAAS,CAAC,EAAE,EAClB,OAAO,EAAE,MAAM,GAAG,SAAS,GAC1B,SAAS,CAAC,CAAC,CAAC,EAAE,CAWhB;AAED,2FAA2F;AAC3F,wBAAgB,SAAS,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAG9E;AAED,mFAAmF;AACnF,eAAO,MAAM,WAAW,KAAK,CAAC;AAC9B,qEAAqE;AACrE,eAAO,MAAM,aAAa,IAAI,CAAC;AAE/B,sFAAsF;AACtF,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAGhF;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAIrE;AAKD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAM9C;AAID,0EAA0E;AAC1E,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAKvF;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAElF"}
@@ -0,0 +1,104 @@
1
+ // src/data/charts/chart-scale.ts
2
+ /**
3
+ * Average glyph advance at the chart font size. There is no layout engine in a
4
+ * static render, so text is measured by estimate; 0.6em over-estimates typical
5
+ * sans-serif digits and letters, which errs toward thinning rather than overlap.
6
+ */
7
+ var CHAR_WIDTH = 6.6;
8
+ var LABEL_GAP = 6;
9
+ function textWidth(text) {
10
+ return text.length * CHAR_WIDTH;
11
+ }
12
+ /** Rounds geometry to 2dp so the emitted markup is short and deterministic. */
13
+ function px(value) {
14
+ return Math.round(value * 100) / 100;
15
+ }
16
+ function niceNumber(value, round) {
17
+ const exponent = Math.floor(Math.log10(value));
18
+ const fraction = value / 10 ** exponent;
19
+ let nice;
20
+ if (round) nice = fraction < 1.5 ? 1 : fraction < 3 ? 2 : fraction < 7 ? 5 : 10;
21
+ else nice = fraction <= 1 ? 1 : fraction <= 2 ? 2 : fraction <= 5 ? 5 : 10;
22
+ return nice * 10 ** exponent;
23
+ }
24
+ /** Heckbert's nice axis ticks covering [min, max], about five of them. */
25
+ function niceTicks(min, max) {
26
+ if (!Number.isFinite(min) || !Number.isFinite(max) || min > max) throw new Error(`niceTicks: invalid range ${min}..${max}`);
27
+ const top = max === min ? min + 1 : max;
28
+ const step = niceNumber(niceNumber(top - min, false) / 4, true);
29
+ const decimals = Math.max(0, -Math.floor(Math.log10(step)));
30
+ const first = Math.floor(min / step) * step;
31
+ const last = Math.ceil(top / step) * step;
32
+ const ticks = [];
33
+ for (let i = 0; first + i * step <= last + step / 2; i++) ticks.push(Number((first + i * step).toFixed(decimals)) + 0);
34
+ return ticks;
35
+ }
36
+ /** Keeps the first `maxBars - 1` rows and sums the tail into one "Other" row. */
37
+ function foldTail(rows, maxBars) {
38
+ if (maxBars === void 0) return [...rows];
39
+ if (!Number.isInteger(maxBars) || maxBars < 2) throw new Error(`maxBars must be an integer ≥ 2, got ${maxBars}`);
40
+ if (rows.length <= maxBars) return [...rows];
41
+ const tail = rows.slice(maxBars - 1);
42
+ return [...rows.slice(0, maxBars - 1), {
43
+ label: "Other",
44
+ value: tail.reduce((sum, row) => sum + row.value, 0),
45
+ folded: tail.length
46
+ }];
47
+ }
48
+ /** Every how many slots a label can be drawn without colliding with the next shown one. */
49
+ function labelStep(labels, slotWidth) {
50
+ const widest = Math.max(0, ...labels.map(textWidth)) + LABEL_GAP;
51
+ return Math.max(1, Math.ceil(widest / slotWidth));
52
+ }
53
+ /** The x for a middle-anchored label that keeps the whole label inside [0, width]. */
54
+ function clampLabelX(center, label, width) {
55
+ const half = textWidth(label) / 2;
56
+ return px(Math.min(Math.max(center, half), width - half));
57
+ }
58
+ function truncateLabel(label, maxWidth) {
59
+ if (textWidth(label) <= maxWidth) return label;
60
+ const keep = Math.max(1, Math.floor(maxWidth / CHAR_WIDTH) - 1);
61
+ return `${label.slice(0, keep)}…`;
62
+ }
63
+ var MONTHS = [
64
+ "Jan",
65
+ "Feb",
66
+ "Mar",
67
+ "Apr",
68
+ "May",
69
+ "Jun",
70
+ "Jul",
71
+ "Aug",
72
+ "Sep",
73
+ "Oct",
74
+ "Nov",
75
+ "Dec"
76
+ ];
77
+ var ISO_DATE = /^(\d{4})-(\d{2})-(\d{2})(?:$|T)/;
78
+ /**
79
+ * Default x label: an ISO date becomes "Aug 16" (read from the string, not via
80
+ * Date, so the output does not depend on the render's timezone); anything else
81
+ * is shown as given.
82
+ */
83
+ function formatChartX(x) {
84
+ const match = ISO_DATE.exec(x);
85
+ if (!match) return x;
86
+ const month = MONTHS[Number(match[2]) - 1];
87
+ if (!month) throw new Error(`formatChartX: invalid month in ${x}`);
88
+ return `${month} ${Number(match[3])}`;
89
+ }
90
+ var VALUE_FORMAT = new Intl.NumberFormat("en-US", { maximumFractionDigits: 2 });
91
+ /** Default value label: grouped, up to 2 decimals, locale-independent. */
92
+ function formatChartValue(value) {
93
+ return VALUE_FORMAT.format(value);
94
+ }
95
+ function assertChartSize(component, width, height) {
96
+ if (!Number.isFinite(width) || width <= 0) throw new Error(`${component}: width must be a positive number, got ${width}`);
97
+ if (height !== void 0 && (!Number.isFinite(height) || height <= 0)) throw new Error(`${component}: height must be a positive number, got ${height}`);
98
+ }
99
+ function assertFinite(component, label, value) {
100
+ if (!Number.isFinite(value)) throw new Error(`${component}: value for "${label}" must be finite, got ${value}`);
101
+ }
102
+ export { CHAR_WIDTH, assertChartSize, assertFinite, clampLabelX, foldTail, formatChartValue, formatChartX, labelStep, niceTicks, px, textWidth, truncateLabel };
103
+
104
+ //# sourceMappingURL=chart-scale.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chart-scale.js","names":[],"sources":["../../../src/data/charts/chart-scale.ts"],"sourcesContent":["import { CHART_FONT_SIZE } from \"./chart-palette\";\n\n/**\n * Average glyph advance at the chart font size. There is no layout engine in a\n * static render, so text is measured by estimate; 0.6em over-estimates typical\n * sans-serif digits and letters, which errs toward thinning rather than overlap.\n */\nexport const CHAR_WIDTH = CHART_FONT_SIZE * 0.6;\nconst LABEL_GAP = 6;\n\nexport function textWidth(text: string): number {\n return text.length * CHAR_WIDTH;\n}\n\n/** Rounds geometry to 2dp so the emitted markup is short and deterministic. */\nexport function px(value: number): number {\n return Math.round(value * 100) / 100;\n}\n\nfunction niceNumber(value: number, round: boolean): number {\n const exponent = Math.floor(Math.log10(value));\n const fraction = value / 10 ** exponent;\n let nice: number;\n if (round) nice = fraction < 1.5 ? 1 : fraction < 3 ? 2 : fraction < 7 ? 5 : 10;\n else nice = fraction <= 1 ? 1 : fraction <= 2 ? 2 : fraction <= 5 ? 5 : 10;\n return nice * 10 ** exponent;\n}\n\n/** Heckbert's nice axis ticks covering [min, max], about five of them. */\nexport function niceTicks(min: number, max: number): number[] {\n if (!Number.isFinite(min) || !Number.isFinite(max) || min > max) {\n throw new Error(`niceTicks: invalid range ${min}..${max}`);\n }\n const top = max === min ? min + 1 : max;\n const step = niceNumber(niceNumber(top - min, false) / 4, true);\n const decimals = Math.max(0, -Math.floor(Math.log10(step)));\n const first = Math.floor(min / step) * step;\n const last = Math.ceil(top / step) * step;\n const ticks: number[] = [];\n for (let i = 0; first + i * step <= last + step / 2; i++) {\n ticks.push(Number((first + i * step).toFixed(decimals)) + 0);\n }\n return ticks;\n}\n\nexport type FoldedRow<T> = T | { label: string; value: number; folded: number };\n\n/** Keeps the first `maxBars - 1` rows and sums the tail into one \"Other\" row. */\nexport function foldTail<T extends { label: string; value: number }>(\n rows: readonly T[],\n maxBars: number | undefined,\n): FoldedRow<T>[] {\n if (maxBars === undefined) return [...rows];\n if (!Number.isInteger(maxBars) || maxBars < 2) {\n throw new Error(`maxBars must be an integer ≥ 2, got ${maxBars}`);\n }\n if (rows.length <= maxBars) return [...rows];\n const tail = rows.slice(maxBars - 1);\n return [\n ...rows.slice(0, maxBars - 1),\n { label: \"Other\", value: tail.reduce((sum, row) => sum + row.value, 0), folded: tail.length },\n ];\n}\n\n/** Every how many slots a label can be drawn without colliding with the next shown one. */\nexport function labelStep(labels: readonly string[], slotWidth: number): number {\n const widest = Math.max(0, ...labels.map(textWidth)) + LABEL_GAP;\n return Math.max(1, Math.ceil(widest / slotWidth));\n}\n\n/** Height below the plot reserved for x labels, so they clear the 0 tick label. */\nexport const X_AXIS_BAND = 22;\n/** Distance from the chart's bottom edge to the x label baseline. */\nexport const X_LABEL_INSET = 6;\n\n/** The x for a middle-anchored label that keeps the whole label inside [0, width]. */\nexport function clampLabelX(center: number, label: string, width: number): number {\n const half = textWidth(label) / 2;\n return px(Math.min(Math.max(center, half), width - half));\n}\n\nexport function truncateLabel(label: string, maxWidth: number): string {\n if (textWidth(label) <= maxWidth) return label;\n const keep = Math.max(1, Math.floor(maxWidth / CHAR_WIDTH) - 1);\n return `${label.slice(0, keep)}…`;\n}\n\nconst MONTHS = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\nconst ISO_DATE = /^(\\d{4})-(\\d{2})-(\\d{2})(?:$|T)/;\n\n/**\n * Default x label: an ISO date becomes \"Aug 16\" (read from the string, not via\n * Date, so the output does not depend on the render's timezone); anything else\n * is shown as given.\n */\nexport function formatChartX(x: string): string {\n const match = ISO_DATE.exec(x);\n if (!match) return x;\n const month = MONTHS[Number(match[2]) - 1];\n if (!month) throw new Error(`formatChartX: invalid month in ${x}`);\n return `${month} ${Number(match[3])}`;\n}\n\nconst VALUE_FORMAT = new Intl.NumberFormat(\"en-US\", { maximumFractionDigits: 2 });\n\n/** Default value label: grouped, up to 2 decimals, locale-independent. */\nexport function formatChartValue(value: number): string {\n return VALUE_FORMAT.format(value);\n}\n\nexport function assertChartSize(component: string, width: number, height?: number): void {\n if (!Number.isFinite(width) || width <= 0) throw new Error(`${component}: width must be a positive number, got ${width}`);\n if (height !== undefined && (!Number.isFinite(height) || height <= 0)) {\n throw new Error(`${component}: height must be a positive number, got ${height}`);\n }\n}\n\nexport function assertFinite(component: string, label: string, value: number): void {\n if (!Number.isFinite(value)) throw new Error(`${component}: value for \"${label}\" must be finite, got ${value}`);\n}\n"],"mappings":"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"}