@k2b/ui 0.50.0 → 0.52.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (420) hide show
  1. package/dist/base.css +35 -1
  2. package/dist/browser/actions/Button.js.map +1 -1
  3. package/dist/browser/actions/CommandList.js +861 -0
  4. package/dist/browser/actions/CommandList.js.map +1 -0
  5. package/dist/browser/actions/CommandMenu.js +237 -0
  6. package/dist/browser/actions/CommandMenu.js.map +1 -0
  7. package/dist/browser/actions/Dropdown.js +43 -10
  8. package/dist/browser/actions/Dropdown.js.map +1 -1
  9. package/dist/browser/actions/Toolbar.js +8 -2
  10. package/dist/browser/actions/Toolbar.js.map +1 -1
  11. package/dist/browser/actions/command-dock.js +47 -0
  12. package/dist/browser/actions/command-dock.js.map +1 -0
  13. package/dist/browser/actions/command-items.js +84 -0
  14. package/dist/browser/actions/command-items.js.map +1 -0
  15. package/dist/browser/actions/command-messages.js +42 -0
  16. package/dist/browser/actions/command-messages.js.map +1 -0
  17. package/dist/browser/actions/index.js +1 -0
  18. package/dist/browser/actions/index.js.map +1 -1
  19. package/dist/browser/charts/core/area.js +3 -5
  20. package/dist/browser/charts/core/area.js.map +1 -1
  21. package/dist/browser/charts/core/bar-labels.js +5 -0
  22. package/dist/browser/charts/core/bar-labels.js.map +1 -0
  23. package/dist/browser/charts/core/bubble.js +166 -0
  24. package/dist/browser/charts/core/bubble.js.map +1 -0
  25. package/dist/browser/charts/core/calendar.js +1 -1
  26. package/dist/browser/charts/core/calendar.js.map +1 -1
  27. package/dist/browser/charts/core/chart-messages.js +17 -0
  28. package/dist/browser/charts/core/chart-messages.js.map +1 -0
  29. package/dist/browser/charts/core/default-styles.js +83 -0
  30. package/dist/browser/charts/core/default-styles.js.map +1 -0
  31. package/dist/browser/charts/core/funnel-layout.js +79 -0
  32. package/dist/browser/charts/core/funnel-layout.js.map +1 -0
  33. package/dist/browser/charts/core/funnel.js +27 -0
  34. package/dist/browser/charts/core/funnel.js.map +1 -0
  35. package/dist/browser/charts/core/hbar-layout.js +118 -0
  36. package/dist/browser/charts/core/hbar-layout.js.map +1 -0
  37. package/dist/browser/charts/core/hbar.js +39 -0
  38. package/dist/browser/charts/core/hbar.js.map +1 -0
  39. package/dist/browser/charts/core/index.js +12 -2
  40. package/dist/browser/charts/core/index.js.map +1 -1
  41. package/dist/browser/charts/core/map.js +116 -0
  42. package/dist/browser/charts/core/map.js.map +1 -0
  43. package/dist/browser/charts/core/pareto.js +120 -0
  44. package/dist/browser/charts/core/pareto.js.map +1 -0
  45. package/dist/browser/charts/core/radar.js +101 -0
  46. package/dist/browser/charts/core/radar.js.map +1 -0
  47. package/dist/browser/charts/core/registry.js +33 -16
  48. package/dist/browser/charts/core/registry.js.map +1 -1
  49. package/dist/browser/charts/core/render-size.js +15 -0
  50. package/dist/browser/charts/core/render-size.js.map +1 -0
  51. package/dist/browser/charts/core/render.js +39 -10
  52. package/dist/browser/charts/core/render.js.map +1 -1
  53. package/dist/browser/charts/core/snapshot.js +4 -4
  54. package/dist/browser/charts/core/snapshot.js.map +1 -1
  55. package/dist/browser/charts/core/svg-barGauge.js +67 -0
  56. package/dist/browser/charts/core/svg-barGauge.js.map +1 -0
  57. package/dist/browser/charts/core/svg-boxplot.js +127 -0
  58. package/dist/browser/charts/core/svg-boxplot.js.map +1 -0
  59. package/dist/browser/charts/core/svg-common.js +1065 -0
  60. package/dist/browser/charts/core/svg-common.js.map +1 -0
  61. package/dist/browser/charts/core/svg-gauge.js +185 -0
  62. package/dist/browser/charts/core/svg-gauge.js.map +1 -0
  63. package/dist/browser/charts/core/svg-heatmap.js +80 -0
  64. package/dist/browser/charts/core/svg-heatmap.js.map +1 -0
  65. package/dist/browser/charts/core/svg-histogram.js +73 -0
  66. package/dist/browser/charts/core/svg-histogram.js.map +1 -0
  67. package/dist/browser/charts/core/svg-renderers.js +638 -0
  68. package/dist/browser/charts/core/svg-renderers.js.map +1 -0
  69. package/dist/browser/charts/core/svg-scatter.js +114 -0
  70. package/dist/browser/charts/core/svg-scatter.js.map +1 -0
  71. package/dist/browser/charts/core/svg.js +4 -2525
  72. package/dist/browser/charts/core/svg.js.map +1 -1
  73. package/dist/browser/charts/core/treemap.js +138 -0
  74. package/dist/browser/charts/core/treemap.js.map +1 -0
  75. package/dist/browser/charts/core/types.js +0 -2
  76. package/dist/browser/charts/core/types.js.map +1 -1
  77. package/dist/browser/charts/core/waterfall.js +162 -0
  78. package/dist/browser/charts/core/waterfall.js.map +1 -0
  79. package/dist/browser/charts/description.js +2 -0
  80. package/dist/browser/charts/description.js.map +1 -0
  81. package/dist/browser/charts.js.map +1 -1
  82. package/dist/browser/content/Chart.js +14 -628
  83. package/dist/browser/content/Chart.js.map +1 -1
  84. package/dist/browser/content/ChartRoot.js +646 -0
  85. package/dist/browser/content/ChartRoot.js.map +1 -0
  86. package/dist/browser/content/ChartSnapshotView.js +4 -1
  87. package/dist/browser/content/ChartSnapshotView.js.map +1 -1
  88. package/dist/browser/content/ChartSparkline.js +24 -0
  89. package/dist/browser/content/ChartSparkline.js.map +1 -0
  90. package/dist/browser/content/DataTable.js +186 -193
  91. package/dist/browser/content/DataTable.js.map +1 -1
  92. package/dist/browser/content/FileView.js +111 -61
  93. package/dist/browser/content/FileView.js.map +1 -1
  94. package/dist/browser/content/Lightbox.js +62 -30
  95. package/dist/browser/content/Lightbox.js.map +1 -1
  96. package/dist/browser/content/MapView.js +30 -28
  97. package/dist/browser/content/MapView.js.map +1 -1
  98. package/dist/browser/content/PdfPreview.js +84 -52
  99. package/dist/browser/content/PdfPreview.js.map +1 -1
  100. package/dist/browser/content/PdfViewer.js +588 -0
  101. package/dist/browser/content/PdfViewer.js.map +1 -0
  102. package/dist/browser/content/ThumbnailStrip.js +174 -0
  103. package/dist/browser/content/ThumbnailStrip.js.map +1 -0
  104. package/dist/browser/content/chart-bar.js +344 -16
  105. package/dist/browser/content/chart-bar.js.map +1 -1
  106. package/dist/browser/content/chart-inspection-core.js +50 -29
  107. package/dist/browser/content/chart-inspection-core.js.map +1 -1
  108. package/dist/browser/content/chart-line-gaps.js +1 -1
  109. package/dist/browser/content/chart-line-gaps.js.map +1 -1
  110. package/dist/browser/content/chart-message-catalog.js +28 -0
  111. package/dist/browser/content/chart-message-catalog.js.map +1 -1
  112. package/dist/browser/content/chart-state-timeline.js +1 -1
  113. package/dist/browser/content/chart-state-timeline.js.map +1 -1
  114. package/dist/browser/content/chart-svg.js +2 -1
  115. package/dist/browser/content/chart-svg.js.map +1 -1
  116. package/dist/browser/content/index.js +2 -0
  117. package/dist/browser/content/index.js.map +1 -1
  118. package/dist/browser/content/pdf-document.js +29 -0
  119. package/dist/browser/content/pdf-document.js.map +1 -0
  120. package/dist/browser/content/pdf-limits.js +31 -0
  121. package/dist/browser/content/pdf-limits.js.map +1 -0
  122. package/dist/browser/content/pdf-messages.js +34 -2
  123. package/dist/browser/content/pdf-messages.js.map +1 -1
  124. package/dist/browser/content/pdf-viewer-engine.js +57 -0
  125. package/dist/browser/content/pdf-viewer-worker.js +28 -0
  126. package/dist/browser/content/thumbnail-strip-messages.js +24 -0
  127. package/dist/browser/content/thumbnail-strip-messages.js.map +1 -0
  128. package/dist/browser/inputs/ChoiceInputs.js +150 -76
  129. package/dist/browser/inputs/ChoiceInputs.js.map +1 -1
  130. package/dist/browser/inputs/ChoiceSlider.js +75 -58
  131. package/dist/browser/inputs/ChoiceSlider.js.map +1 -1
  132. package/dist/browser/inputs/DatePicker.js +113 -98
  133. package/dist/browser/inputs/DatePicker.js.map +1 -1
  134. package/dist/browser/inputs/PeriodPicker.js +874 -0
  135. package/dist/browser/inputs/PeriodPicker.js.map +1 -0
  136. package/dist/browser/inputs/index.js +5 -1
  137. package/dist/browser/inputs/index.js.map +1 -1
  138. package/dist/browser/inputs/input-messages.js +8 -2
  139. package/dist/browser/inputs/input-messages.js.map +1 -1
  140. package/dist/browser/inputs/markdown/MarkdownEditor.js +14 -10
  141. package/dist/browser/inputs/markdown/MarkdownEditor.js.map +1 -1
  142. package/dist/browser/inputs/markdown/MarkdownSelectionToolbar.js +330 -0
  143. package/dist/browser/inputs/markdown/MarkdownSelectionToolbar.js.map +1 -0
  144. package/dist/browser/inputs/markdown/SlashCommands.js +402 -0
  145. package/dist/browser/inputs/markdown/SlashCommands.js.map +1 -0
  146. package/dist/browser/inputs/period-picker-messages.js +71 -0
  147. package/dist/browser/inputs/period-picker-messages.js.map +1 -0
  148. package/dist/browser/inputs/period.js +263 -0
  149. package/dist/browser/inputs/period.js.map +1 -0
  150. package/dist/browser/internal/field.js +96 -77
  151. package/dist/browser/internal/field.js.map +1 -1
  152. package/dist/browser/layout/AppWorkspace.js +7 -5
  153. package/dist/browser/layout/AppWorkspace.js.map +1 -1
  154. package/dist/browser/layout/DetailPanel.js +147 -120
  155. package/dist/browser/layout/DetailPanel.js.map +1 -1
  156. package/dist/browser/layout/Discussion.js +101 -108
  157. package/dist/browser/layout/Discussion.js.map +1 -1
  158. package/dist/browser/layout/PanelDialog.js +92 -68
  159. package/dist/browser/layout/PanelDialog.js.map +1 -1
  160. package/dist/browser/layout/index.js.map +1 -1
  161. package/dist/browser/surfaces/DescriptionList.js +5 -2
  162. package/dist/browser/surfaces/DescriptionList.js.map +1 -1
  163. package/dist/browser/surfaces/StatCell.js +95 -78
  164. package/dist/browser/surfaces/StatCell.js.map +1 -1
  165. package/dist/browser/surfaces/delta-badge.js +16 -2
  166. package/dist/browser/surfaces/delta-badge.js.map +1 -1
  167. package/dist/browser/surfaces/stat-cell-messages.js +4 -2
  168. package/dist/browser/surfaces/stat-cell-messages.js.map +1 -1
  169. package/dist/browser/widgets/DashboardFrame.js +315 -0
  170. package/dist/browser/widgets/DashboardFrame.js.map +1 -0
  171. package/dist/browser/widgets/index.js +1 -0
  172. package/dist/browser/widgets/index.js.map +1 -1
  173. package/dist/licenses/pdfjs-dist.txt +177 -0
  174. package/dist/ssr/actions/Button.js.map +1 -1
  175. package/dist/ssr/actions/CommandList.js +638 -0
  176. package/dist/ssr/actions/CommandList.js.map +1 -0
  177. package/dist/ssr/actions/CommandMenu.js +197 -0
  178. package/dist/ssr/actions/CommandMenu.js.map +1 -0
  179. package/dist/ssr/actions/Dropdown.js +43 -10
  180. package/dist/ssr/actions/Dropdown.js.map +1 -1
  181. package/dist/ssr/actions/Toolbar.js +8 -2
  182. package/dist/ssr/actions/Toolbar.js.map +1 -1
  183. package/dist/ssr/actions/command-dock.js +47 -0
  184. package/dist/ssr/actions/command-dock.js.map +1 -0
  185. package/dist/ssr/actions/command-items.js +84 -0
  186. package/dist/ssr/actions/command-items.js.map +1 -0
  187. package/dist/ssr/actions/command-messages.js +42 -0
  188. package/dist/ssr/actions/command-messages.js.map +1 -0
  189. package/dist/ssr/actions/index.js +1 -0
  190. package/dist/ssr/actions/index.js.map +1 -1
  191. package/dist/ssr/charts/core/area.js +3 -5
  192. package/dist/ssr/charts/core/area.js.map +1 -1
  193. package/dist/ssr/charts/core/bar-labels.js +5 -0
  194. package/dist/ssr/charts/core/bar-labels.js.map +1 -0
  195. package/dist/ssr/charts/core/bubble.js +166 -0
  196. package/dist/ssr/charts/core/bubble.js.map +1 -0
  197. package/dist/ssr/charts/core/calendar.js +1 -1
  198. package/dist/ssr/charts/core/calendar.js.map +1 -1
  199. package/dist/ssr/charts/core/chart-messages.js +17 -0
  200. package/dist/ssr/charts/core/chart-messages.js.map +1 -0
  201. package/dist/ssr/charts/core/default-styles.js +83 -0
  202. package/dist/ssr/charts/core/default-styles.js.map +1 -0
  203. package/dist/ssr/charts/core/funnel-layout.js +79 -0
  204. package/dist/ssr/charts/core/funnel-layout.js.map +1 -0
  205. package/dist/ssr/charts/core/funnel.js +27 -0
  206. package/dist/ssr/charts/core/funnel.js.map +1 -0
  207. package/dist/ssr/charts/core/hbar-layout.js +118 -0
  208. package/dist/ssr/charts/core/hbar-layout.js.map +1 -0
  209. package/dist/ssr/charts/core/hbar.js +39 -0
  210. package/dist/ssr/charts/core/hbar.js.map +1 -0
  211. package/dist/ssr/charts/core/index.js +12 -2
  212. package/dist/ssr/charts/core/index.js.map +1 -1
  213. package/dist/ssr/charts/core/map.js +116 -0
  214. package/dist/ssr/charts/core/map.js.map +1 -0
  215. package/dist/ssr/charts/core/pareto.js +120 -0
  216. package/dist/ssr/charts/core/pareto.js.map +1 -0
  217. package/dist/ssr/charts/core/radar.js +101 -0
  218. package/dist/ssr/charts/core/radar.js.map +1 -0
  219. package/dist/ssr/charts/core/registry.js +33 -16
  220. package/dist/ssr/charts/core/registry.js.map +1 -1
  221. package/dist/ssr/charts/core/render-size.js +15 -0
  222. package/dist/ssr/charts/core/render-size.js.map +1 -0
  223. package/dist/ssr/charts/core/render.js +39 -10
  224. package/dist/ssr/charts/core/render.js.map +1 -1
  225. package/dist/ssr/charts/core/snapshot.js +4 -4
  226. package/dist/ssr/charts/core/snapshot.js.map +1 -1
  227. package/dist/ssr/charts/core/svg-barGauge.js +67 -0
  228. package/dist/ssr/charts/core/svg-barGauge.js.map +1 -0
  229. package/dist/ssr/charts/core/svg-boxplot.js +127 -0
  230. package/dist/ssr/charts/core/svg-boxplot.js.map +1 -0
  231. package/dist/ssr/charts/core/svg-common.js +1065 -0
  232. package/dist/ssr/charts/core/svg-common.js.map +1 -0
  233. package/dist/ssr/charts/core/svg-gauge.js +185 -0
  234. package/dist/ssr/charts/core/svg-gauge.js.map +1 -0
  235. package/dist/ssr/charts/core/svg-heatmap.js +80 -0
  236. package/dist/ssr/charts/core/svg-heatmap.js.map +1 -0
  237. package/dist/ssr/charts/core/svg-histogram.js +73 -0
  238. package/dist/ssr/charts/core/svg-histogram.js.map +1 -0
  239. package/dist/ssr/charts/core/svg-renderers.js +638 -0
  240. package/dist/ssr/charts/core/svg-renderers.js.map +1 -0
  241. package/dist/ssr/charts/core/svg-scatter.js +114 -0
  242. package/dist/ssr/charts/core/svg-scatter.js.map +1 -0
  243. package/dist/ssr/charts/core/svg.js +4 -2525
  244. package/dist/ssr/charts/core/svg.js.map +1 -1
  245. package/dist/ssr/charts/core/treemap.js +138 -0
  246. package/dist/ssr/charts/core/treemap.js.map +1 -0
  247. package/dist/ssr/charts/core/types.js +0 -2
  248. package/dist/ssr/charts/core/types.js.map +1 -1
  249. package/dist/ssr/charts/core/waterfall.js +162 -0
  250. package/dist/ssr/charts/core/waterfall.js.map +1 -0
  251. package/dist/ssr/charts/description.js +2 -0
  252. package/dist/ssr/charts/description.js.map +1 -0
  253. package/dist/ssr/charts.js.map +1 -1
  254. package/dist/ssr/content/Chart.js +14 -471
  255. package/dist/ssr/content/Chart.js.map +1 -1
  256. package/dist/ssr/content/ChartRoot.js +489 -0
  257. package/dist/ssr/content/ChartRoot.js.map +1 -0
  258. package/dist/ssr/content/ChartSnapshotView.js +1 -0
  259. package/dist/ssr/content/ChartSnapshotView.js.map +1 -1
  260. package/dist/ssr/content/ChartSparkline.js +24 -0
  261. package/dist/ssr/content/ChartSparkline.js.map +1 -0
  262. package/dist/ssr/content/DataTable.js +12 -16
  263. package/dist/ssr/content/DataTable.js.map +1 -1
  264. package/dist/ssr/content/FileView.js +56 -7
  265. package/dist/ssr/content/FileView.js.map +1 -1
  266. package/dist/ssr/content/Lightbox.js +39 -10
  267. package/dist/ssr/content/Lightbox.js.map +1 -1
  268. package/dist/ssr/content/MapView.js +9 -9
  269. package/dist/ssr/content/MapView.js.map +1 -1
  270. package/dist/ssr/content/PdfPreview.js +49 -20
  271. package/dist/ssr/content/PdfPreview.js.map +1 -1
  272. package/dist/ssr/content/PdfViewer.js +484 -0
  273. package/dist/ssr/content/PdfViewer.js.map +1 -0
  274. package/dist/ssr/content/ThumbnailStrip.js +103 -0
  275. package/dist/ssr/content/ThumbnailStrip.js.map +1 -0
  276. package/dist/ssr/content/chart-bar.js +344 -16
  277. package/dist/ssr/content/chart-bar.js.map +1 -1
  278. package/dist/ssr/content/chart-inspection-core.js +50 -29
  279. package/dist/ssr/content/chart-inspection-core.js.map +1 -1
  280. package/dist/ssr/content/chart-line-gaps.js +1 -1
  281. package/dist/ssr/content/chart-line-gaps.js.map +1 -1
  282. package/dist/ssr/content/chart-message-catalog.js +28 -0
  283. package/dist/ssr/content/chart-message-catalog.js.map +1 -1
  284. package/dist/ssr/content/chart-state-timeline.js +1 -1
  285. package/dist/ssr/content/chart-state-timeline.js.map +1 -1
  286. package/dist/ssr/content/chart-svg.js +2 -1
  287. package/dist/ssr/content/chart-svg.js.map +1 -1
  288. package/dist/ssr/content/index.js +2 -0
  289. package/dist/ssr/content/index.js.map +1 -1
  290. package/dist/ssr/content/pdf-document.js +29 -0
  291. package/dist/ssr/content/pdf-document.js.map +1 -0
  292. package/dist/ssr/content/pdf-limits.js +31 -0
  293. package/dist/ssr/content/pdf-limits.js.map +1 -0
  294. package/dist/ssr/content/pdf-messages.js +34 -2
  295. package/dist/ssr/content/pdf-messages.js.map +1 -1
  296. package/dist/ssr/content/thumbnail-strip-messages.js +24 -0
  297. package/dist/ssr/content/thumbnail-strip-messages.js.map +1 -0
  298. package/dist/ssr/inputs/ChoiceInputs.js +69 -17
  299. package/dist/ssr/inputs/ChoiceInputs.js.map +1 -1
  300. package/dist/ssr/inputs/ChoiceSlider.js +17 -12
  301. package/dist/ssr/inputs/ChoiceSlider.js.map +1 -1
  302. package/dist/ssr/inputs/DatePicker.js +14 -9
  303. package/dist/ssr/inputs/DatePicker.js.map +1 -1
  304. package/dist/ssr/inputs/PeriodPicker.js +598 -0
  305. package/dist/ssr/inputs/PeriodPicker.js.map +1 -0
  306. package/dist/ssr/inputs/index.js +5 -1
  307. package/dist/ssr/inputs/index.js.map +1 -1
  308. package/dist/ssr/inputs/input-messages.js +8 -2
  309. package/dist/ssr/inputs/input-messages.js.map +1 -1
  310. package/dist/ssr/inputs/markdown/MarkdownEditor.js +3 -2
  311. package/dist/ssr/inputs/markdown/MarkdownEditor.js.map +1 -1
  312. package/dist/ssr/inputs/markdown/MarkdownSelectionToolbar.js +293 -0
  313. package/dist/ssr/inputs/markdown/MarkdownSelectionToolbar.js.map +1 -0
  314. package/dist/ssr/inputs/markdown/SlashCommands.js +339 -0
  315. package/dist/ssr/inputs/markdown/SlashCommands.js.map +1 -0
  316. package/dist/ssr/inputs/period-picker-messages.js +71 -0
  317. package/dist/ssr/inputs/period-picker-messages.js.map +1 -0
  318. package/dist/ssr/inputs/period.js +263 -0
  319. package/dist/ssr/inputs/period.js.map +1 -0
  320. package/dist/ssr/internal/field.js +36 -24
  321. package/dist/ssr/internal/field.js.map +1 -1
  322. package/dist/ssr/layout/AppWorkspace.js +5 -1
  323. package/dist/ssr/layout/AppWorkspace.js.map +1 -1
  324. package/dist/ssr/layout/DetailPanel.js +27 -4
  325. package/dist/ssr/layout/DetailPanel.js.map +1 -1
  326. package/dist/ssr/layout/Discussion.js +16 -2
  327. package/dist/ssr/layout/Discussion.js.map +1 -1
  328. package/dist/ssr/layout/PanelDialog.js +40 -26
  329. package/dist/ssr/layout/PanelDialog.js.map +1 -1
  330. package/dist/ssr/layout/index.js.map +1 -1
  331. package/dist/ssr/surfaces/DescriptionList.js +1 -1
  332. package/dist/ssr/surfaces/DescriptionList.js.map +1 -1
  333. package/dist/ssr/surfaces/StatCell.js +31 -21
  334. package/dist/ssr/surfaces/StatCell.js.map +1 -1
  335. package/dist/ssr/surfaces/delta-badge.js +16 -2
  336. package/dist/ssr/surfaces/delta-badge.js.map +1 -1
  337. package/dist/ssr/surfaces/stat-cell-messages.js +4 -2
  338. package/dist/ssr/surfaces/stat-cell-messages.js.map +1 -1
  339. package/dist/ssr/widgets/DashboardFrame.js +195 -0
  340. package/dist/ssr/widgets/DashboardFrame.js.map +1 -0
  341. package/dist/ssr/widgets/index.js +1 -0
  342. package/dist/ssr/widgets/index.js.map +1 -1
  343. package/dist/styles.css +1 -1
  344. package/dist/types/actions/Button.d.ts +1 -1
  345. package/dist/types/actions/CommandList.d.ts +120 -0
  346. package/dist/types/actions/CommandMenu.d.ts +39 -0
  347. package/dist/types/actions/Dropdown.d.ts +17 -0
  348. package/dist/types/actions/Toolbar.d.ts +2 -0
  349. package/dist/types/actions/command-dock.d.ts +8 -0
  350. package/dist/types/actions/command-items.d.ts +134 -0
  351. package/dist/types/actions/command-messages.d.ts +19 -0
  352. package/dist/types/actions/index.d.ts +3 -0
  353. package/dist/types/charts/core/bar-labels.d.ts +1 -0
  354. package/dist/types/charts/core/bubble.d.ts +66 -0
  355. package/dist/types/charts/core/calendar.d.ts +1 -1
  356. package/dist/types/charts/core/chart-messages.d.ts +5 -0
  357. package/dist/types/charts/core/default-styles.d.ts +1 -0
  358. package/dist/types/charts/core/funnel-layout.d.ts +43 -0
  359. package/dist/types/charts/core/funnel.d.ts +13 -0
  360. package/dist/types/charts/core/hbar-layout.d.ts +74 -0
  361. package/dist/types/charts/core/hbar.d.ts +13 -0
  362. package/dist/types/charts/core/index.d.ts +12 -2
  363. package/dist/types/charts/core/map.d.ts +3 -0
  364. package/dist/types/charts/core/pareto.d.ts +40 -0
  365. package/dist/types/charts/core/radar.d.ts +47 -0
  366. package/dist/types/charts/core/registry.d.ts +27 -11
  367. package/dist/types/charts/core/render-size.d.ts +7 -0
  368. package/dist/types/charts/core/render.d.ts +1 -4
  369. package/dist/types/charts/core/snapshot.d.ts +2 -2
  370. package/dist/types/charts/core/svg-barGauge.d.ts +3 -0
  371. package/dist/types/charts/core/svg-boxplot.d.ts +18 -0
  372. package/dist/types/charts/core/svg-common.d.ts +612 -0
  373. package/dist/types/charts/core/svg-gauge.d.ts +6 -0
  374. package/dist/types/charts/core/svg-heatmap.d.ts +6 -0
  375. package/dist/types/charts/core/svg-histogram.d.ts +16 -0
  376. package/dist/types/charts/core/svg-renderers.d.ts +118 -0
  377. package/dist/types/charts/core/svg-scatter.d.ts +23 -0
  378. package/dist/types/charts/core/svg.d.ts +4 -698
  379. package/dist/types/charts/core/treemap.d.ts +45 -0
  380. package/dist/types/charts/core/types.d.ts +1 -12
  381. package/dist/types/charts/core/waterfall.d.ts +68 -0
  382. package/dist/types/charts/description.d.ts +289 -0
  383. package/dist/types/charts.d.ts +1 -0
  384. package/dist/types/content/Chart.d.ts +3 -91
  385. package/dist/types/content/ChartRoot.d.ts +92 -0
  386. package/dist/types/content/ChartSparkline.d.ts +5 -0
  387. package/dist/types/content/Lightbox.d.ts +2 -0
  388. package/dist/types/content/PdfViewer.d.ts +32 -0
  389. package/dist/types/content/ThumbnailStrip.d.ts +29 -0
  390. package/dist/types/content/chart-bar.d.ts +131 -2
  391. package/dist/types/content/chart-inspection-core.d.ts +7 -0
  392. package/dist/types/content/chart-inspection.d.ts +1 -0
  393. package/dist/types/content/chart-message-catalog.d.ts +8 -0
  394. package/dist/types/content/index.d.ts +3 -0
  395. package/dist/types/content/pdf-document.d.ts +5 -0
  396. package/dist/types/content/pdf-engine.d.ts +9 -0
  397. package/dist/types/content/pdf-limits.d.ts +43 -0
  398. package/dist/types/content/pdf-messages.d.ts +16 -0
  399. package/dist/types/content/thumbnail-strip-messages.d.ts +10 -0
  400. package/dist/types/inputs/ChoiceInputs.d.ts +6 -0
  401. package/dist/types/inputs/ChoiceSlider.d.ts +12 -0
  402. package/dist/types/inputs/DatePicker.d.ts +22 -0
  403. package/dist/types/inputs/PeriodPicker.d.ts +24 -0
  404. package/dist/types/inputs/index.d.ts +10 -2
  405. package/dist/types/inputs/input-messages.d.ts +3 -0
  406. package/dist/types/inputs/markdown/MarkdownEditor.d.ts +5 -0
  407. package/dist/types/inputs/markdown/MarkdownSelectionToolbar.d.ts +19 -0
  408. package/dist/types/inputs/markdown/SlashCommands.d.ts +20 -0
  409. package/dist/types/inputs/period-picker-messages.d.ts +34 -0
  410. package/dist/types/inputs/period.d.ts +134 -0
  411. package/dist/types/internal/field.d.ts +2 -0
  412. package/dist/types/layout/DetailPanel.d.ts +12 -0
  413. package/dist/types/layout/PanelDialog.d.ts +5 -0
  414. package/dist/types/layout/index.d.ts +1 -1
  415. package/dist/types/surfaces/DescriptionList.d.ts +5 -0
  416. package/dist/types/surfaces/StatCell.d.ts +6 -1
  417. package/dist/types/surfaces/stat-cell-messages.d.ts +1 -0
  418. package/dist/types/widgets/DashboardFrame.d.ts +61 -0
  419. package/dist/types/widgets/index.d.ts +1 -0
  420. package/package.json +3 -2
@@ -1,625 +1,9 @@
1
- import { template as _$template } from "solid-js/web";
2
- import { delegateEvents as _$delegateEvents } from "solid-js/web";
3
- import { memo as _$memo } from "solid-js/web";
4
- import { setProperty as _$setProperty } from "solid-js/web";
5
- import { setStyleProperty as _$setStyleProperty } from "solid-js/web";
6
- import { style as _$style } from "solid-js/web";
7
- import { runHydrationEvents as _$runHydrationEvents } from "solid-js/web";
8
- import { getNextMarker as _$getNextMarker } from "solid-js/web";
9
- import { setAttribute as _$setAttribute } from "solid-js/web";
10
- import { effect as _$effect } from "solid-js/web";
11
- import { insert as _$insert } from "solid-js/web";
12
- import { addEventListener as _$addEventListener } from "solid-js/web";
13
- import { use as _$use } from "solid-js/web";
14
- import { createComponent as _$createComponent } from "solid-js/web";
15
- import { getNextElement as _$getNextElement } from "solid-js/web";
16
- import { className as _$className } from "solid-js/web";
17
- var _tmpl$ = /*#__PURE__*/_$template(`<i aria-hidden=true>`),
18
- _tmpl$2 = /*#__PURE__*/_$template(`<div class=k2b-chart__legend role=group tabindex=0>`),
19
- _tmpl$3 = /*#__PURE__*/_$template(`<div class=k2b-chart__controls><!$><!/><!$><!/><!$><!/>`),
20
- _tmpl$4 = /*#__PURE__*/_$template(`<div data-interactive=true role=group tabindex=0><!$><!/><div class=k2b-chart__svg></div><span class=k2b-chart__anchor aria-hidden=true></span><span role=tooltip popover=manual data-instant=true class="k2b-tooltip k2b-chart__tooltip"></span><!$><!/>`),
21
- _tmpl$5 = /*#__PURE__*/_$template(`<div>`),
22
- _tmpl$6 = /*#__PURE__*/_$template(`<b data-chart-legend-value>`),
23
- _tmpl$7 = /*#__PURE__*/_$template(`<span class=k2b-chart__legend-item><svg viewBox="0 0 10 10"width=10 height=10 aria-hidden=true><rect x=1 y=1 width=8 height=8 rx=2 stroke=none></rect></svg><span></span><!$><!/>`);
24
- import { createEffect, createMemo, createSignal, createUniqueId, For, mergeProps, onCleanup, onMount, Show, splitProps, untrack } from "solid-js";
25
- import { isServer } from "solid-js/web";
26
- import { IconButton } from "../actions/Button";
27
- import { calendarLayout } from "../charts/core/calendar";
1
+ import { mergeProps } from "solid-js";
28
2
  import { chartKinds } from "../charts/core/registry";
29
- import { chartRenderHeight, preservesAspectRatio, renderChartSvg } from "../charts/core/render";
30
- import { suppressTextSelection } from "../internal/text-selection";
31
- import { useLocale } from "../intl/locale";
32
- import { useUiMessages } from "../intl/messages";
33
- import { calendarInspectionNavigation, mountCalendarScroll } from "./chart-calendar";
34
- import { createChartInspection } from "./chart-inspection";
35
- import { closeChartInspectionOnOutside } from "./chart-inspection-core";
36
- import { DEFAULT_MAP_VIEWPORT, normalizeMapViewport, panMapViewport, zoomMapViewport } from "./chart-map-viewport";
37
- import { resolveChartMessages, useChartMessages } from "./chart-messages";
38
- import { panStateTimelineViewport, stateTimelineDomain, stateTimelineHeight, zoomStateTimelineViewport } from "./chart-state-timeline";
39
- import { selectedChartSvg } from "./chart-svg";
40
- import { useViewportMessages } from "./viewport-messages";
41
-
42
- /**
43
- * Chart — Solid interaction and sizing around the portable UI chart core.
44
- *
45
- * **Live-update story.** `charts.<kind>(opts)` returns an SVG string;
46
- * Solid's `innerHTML` is reactive, so any time a prop (signal, store
47
- * slice, derived value) changes, the SVG re-renders. No manual
48
- * subscription, no imperative DOM patching. Trade-off: every change
49
- * is a full SVG re-build, not a diff — fine for dashboard cadences
50
- * (poll, websocket, store updates). Don't use this for 60fps streaming.
51
- *
52
- * **Sizing.** The server and browser render the same logical viewBox. CSS
53
- * fits Cartesian plots to the container and preserves text/marker sizes;
54
- * maps fit the whole world and zoom uniformly across the full plot; pies, donuts and gauges retain
55
- * their aspect ratio. No measurement
56
- * or hydration redraw is needed. The caller sizes the wrapper, for example
57
- * `style={{ height: "14rem" }}`. State timelines derive their default height
58
- * from the row count and legend via `stateTimelineHeight()`.
59
- *
60
- * **Why so thin.** The props are a discriminated union over each
61
- * registered core chart renderer — `kind: "line"` brings in exactly the params
62
- * `charts.line` expects, `kind: "bar"` brings in `charts.bar`'s, etc.
63
- * Options stay aligned with the core renderer without renaming. Every chart provides
64
- * renderer-owned inspection, tooltips and optional selection by default.
65
- * `interactive` adds bounded pan / zoom and reset controls to maps and state timelines.
66
- * When a core renderer gains an option, it is automatically available at every
67
- * callsite.
68
- *
69
- * **Theming.** The core renderers use `currentColor` for axes / ticks /
70
- * tick labels — set the wrapping element's `color` and everything
71
- * inherits. Series colors come from `--stdlib-chart-c1..c8` CSS
72
- * custom properties; override on the parent for per-chart palettes.
73
- *
74
- * ```tsx
75
- * <Chart kind="line" style={{ height: "12rem" }}
76
- * series={[{ data: points() }]}
77
- * yAxis={{ format: v => `€${v}k` }} />
78
- *
79
- * <Chart kind="donut" style={{ height: "12rem" }} data={slices()} />
80
- *
81
- * <Chart kind="sparkline" style={{ width: "6rem", height: "1.5rem" }} data={trend()} />
82
- *
83
- * <Chart kind="map" style={{ height: "16rem" }} series={locations()} interactive />
84
- * ```
85
- */
86
-
87
- /** All registered chart kinds. */
88
-
89
- /**
90
- * Per-kind props: `kind` discriminator + the exact options that
91
- * `charts.<kind>` accepts, **minus** `width` / `height` (the wrapper
92
- * owns those — CSS fits a stable coordinate space to the box). Solid's
93
- * component model handles discriminated unions natively, so callsites
94
- * get full type safety.
95
- */
96
-
3
+ import { renderChartSvg } from "../charts/core/render";
4
+ import { renderChartRoot } from "./ChartRoot";
97
5
  export { chartRenderHeight, renderChartSvg } from "../charts/core/render";
98
-
99
- /** Empty-data short-circuit. Kept per-kind because each renderer's payload
100
- * key differs (series vs data vs groups). We're conservative: only
101
- * block on truly empty inputs; partially-filled series get rendered
102
- * as-is and the core handles the gaps. */
103
- const isEmpty = props => {
104
- if (props.kind === "area") return !props.x.length || !props.series.length || props.x.every((_, i) => props.series.some(s => s.data[i] === null) || props.normalize && props.series.every(s => s.data[i] === 0));
105
- if (props.kind === "line" || props.kind === "scatter") {
106
- return !props.series?.length || props.series.every(s => !s.data.length);
107
- }
108
- if (props.kind === "bar" || props.kind === "donut" || props.kind === "pie") {
109
- return !props.data?.length;
110
- }
111
- if (props.kind === "histogram" || props.kind === "sparkline") {
112
- return !props.data?.length;
113
- }
114
- if (props.kind === "boxplot") {
115
- return !props.groups?.length;
116
- }
117
- if (props.kind === "stateTimeline") {
118
- return !props.rows?.length || props.rows.every(row => !row.intervals.length);
119
- }
120
- return false;
121
- };
122
- const ChartRoot = props => {
123
- const [, drawingProps] = splitProps(props, ["class", "style", "labels", "interactive", "selected", "onSelect", "tooltip", "cursor"]);
124
- const messages = useUiMessages();
125
- const chartMessages = useChartMessages();
126
- const viewportMessages = useViewportMessages();
127
- const locale = useLocale();
128
- let containerRef;
129
- let chartTooltipRef;
130
- let lineAnchorRef;
131
- // One deterministic coordinate space on the server and client. CSS fits the
132
- // SVG to its box; hydration must never replace it with measured geometry.
133
- const calendar = () => props.kind === "heatmap" && props.layout === "calendar" ? calendarLayout({
134
- ...props,
135
- locale: props.locale ?? locale()
136
- }) : undefined;
137
- const size = () => ({
138
- width: calendar()?.width ?? 480,
139
- height: chartRenderHeight(props)
140
- });
141
- const topLegend = () => props.kind === "area" ? props.legend !== false : props.kind === "line" && props.legend === true && props.legendPlacement === "top-start";
142
- const legendSeries = () => props.kind === "line" || props.kind === "area" ? props.series : [];
143
- const legendValue = index => {
144
- if (props.kind !== "area") return "";
145
- const last = props.x.length - 1;
146
- const amount = props.series[index]?.data[last];
147
- const values = props.series.map(s => s.data[last]);
148
- const total = values.reduce((sum, value) => sum + (value ?? 0), 0);
149
- if (amount == null || values.some(v => v == null) || props.normalize && total === 0) return "—";
150
- return props.normalize ? new Intl.NumberFormat(locale(), {
151
- style: "percent",
152
- minimumFractionDigits: 1,
153
- maximumFractionDigits: 1
154
- }).format(amount / total) : props.format?.(amount) ?? new Intl.NumberFormat(locale(), {
155
- maximumFractionDigits: 2
156
- }).format(amount);
157
- };
158
- const dimensions = () => containerRef?.getBoundingClientRect() ?? size();
159
- const initialMapViewport = props.kind === "map" ? normalizeMapViewport(props.viewport) : DEFAULT_MAP_VIEWPORT;
160
- const [mapViewport, setMapViewport] = createSignal(initialMapViewport);
161
- const initialTimelineViewport = props.kind === "stateTimeline" ? stateTimelineDomain(props.rows, props.domain) : [0, 1];
162
- const [timelineViewport, setTimelineViewport] = createSignal(initialTimelineViewport);
163
- const [dragging, setDragging] = createSignal(false);
164
- const chartTooltipId = `k2b-chart-tooltip-${createUniqueId()}`;
165
- let timelineViewportLocallyChanged = false;
166
- let drag;
167
- let timelineDrag;
168
- let pointerFrame;
169
- let pendingPointer;
170
- const interactiveMap = () => props.kind === "map" && props.interactive === true;
171
- const interactiveTimeline = () => props.kind === "stateTimeline" && props.interactive === true;
172
- const draggable = () => interactiveMap() || interactiveTimeline();
173
- const labels = () => props.labels ?? {};
174
- const accessibleName = () => {
175
- const override = props.kind === "map" ? labels().interactiveMap : props.kind === "stateTimeline" ? labels().interactiveTimeline : props.kind === "line" ? labels().interactiveLine : labels().interactiveChart;
176
- const title = "title" in props && typeof props.title === "string" && props.title.trim() ? props.title : undefined;
177
- const valueLabel = (props.kind === "stat" || props.kind === "gauge") && props.label?.trim() ? props.label : undefined;
178
- const fallback = props.kind === "map" ? chartMessages().interactiveMap : props.kind === "stateTimeline" ? chartMessages().interactiveTimeline : props.kind === "line" ? chartMessages().interactiveLineChart : chartMessages().interactiveChart;
179
- return override ?? title ?? valueLabel ?? fallback;
180
- };
181
- const timelineFullDomain = () => props.kind === "stateTimeline" ? stateTimelineDomain(props.rows, props.domain) : [0, 1];
182
- createEffect(() => {
183
- if (props.kind === "map") {
184
- setMapViewport(normalizeMapViewport(props.viewport));
185
- }
186
- });
187
- createEffect(() => {
188
- if (props.kind === "stateTimeline" && !timelineViewportLocallyChanged) {
189
- setTimelineViewport(timelineFullDomain());
190
- }
191
- });
192
- const updateTimelineViewport = update => {
193
- timelineViewportLocallyChanged = true;
194
- setTimelineViewport(update);
195
- };
196
- const mapDimensions = () => {
197
- const viewportElement = containerRef?.querySelector(".stdlib-chart-map-viewport");
198
- const matrix = viewportElement?.getScreenCTM?.();
199
- const box = viewportElement?.viewBox?.baseVal;
200
- if (matrix && box?.width && box.height) {
201
- return {
202
- width: box.width * Math.hypot(matrix.a, matrix.b),
203
- height: box.height * Math.hypot(matrix.c, matrix.d)
204
- };
205
- }
206
- const rect = viewportElement?.getBoundingClientRect();
207
- if (rect && rect.width > 0 && rect.height > 0) {
208
- return {
209
- width: rect.width,
210
- height: rect.height
211
- };
212
- }
213
- return dimensions();
214
- };
215
- const zoom = delta => {
216
- closeChartTooltip();
217
- if (interactiveMap()) {
218
- setMapViewport(current => zoomMapViewport(current, delta, props.kind === "map" ? props.zoomFocus : undefined));
219
- } else if (interactiveTimeline()) {
220
- updateTimelineViewport(current => zoomStateTimelineViewport(current, timelineFullDomain(), delta));
221
- }
222
- };
223
- const reset = () => {
224
- closeChartTooltip();
225
- if (interactiveMap() && props.kind === "map") {
226
- setMapViewport(normalizeMapViewport(props.viewport));
227
- }
228
- if (interactiveTimeline()) {
229
- timelineViewportLocallyChanged = false;
230
- setTimelineViewport(timelineFullDomain());
231
- }
232
- };
233
- const handlePointerDown = event => {
234
- inspection.down(event);
235
- if (!draggable() || event.button !== 0 || event.target.closest("button, a")) {
236
- return;
237
- }
238
- closeChartTooltip();
239
- // The pointer's own pointerup or pointercancel ends the hold.
240
- suppressTextSelection(event.pointerId);
241
- if (interactiveTimeline()) {
242
- timelineDrag = {
243
- pointerId: event.pointerId,
244
- x: event.clientX,
245
- width: Math.max(1, event.currentTarget.getBoundingClientRect().width),
246
- viewport: timelineViewport()
247
- };
248
- event.currentTarget.setPointerCapture(event.pointerId);
249
- setDragging(true);
250
- return;
251
- }
252
- const dimensions = mapDimensions();
253
- drag = {
254
- pointerId: event.pointerId,
255
- x: event.clientX,
256
- y: event.clientY,
257
- width: dimensions.width,
258
- height: dimensions.height,
259
- viewport: mapViewport()
260
- };
261
- event.currentTarget.setPointerCapture(event.pointerId);
262
- setDragging(true);
263
- };
264
- const flushPointerMove = () => {
265
- if (pointerFrame !== undefined) {
266
- cancelAnimationFrame(pointerFrame);
267
- pointerFrame = undefined;
268
- }
269
- const sample = pendingPointer;
270
- pendingPointer = undefined;
271
- if (!sample) return;
272
- const start = timelineDrag ?? drag;
273
- if (start && Math.hypot(sample.clientX - start.x, sample.clientY - ("y" in start ? start.y : sample.clientY)) <= 6) return;
274
- const activeTimelineDrag = timelineDrag;
275
- if (activeTimelineDrag?.pointerId === sample.pointerId) {
276
- updateTimelineViewport(() => panStateTimelineViewport(activeTimelineDrag.viewport, timelineFullDomain(), sample.clientX - activeTimelineDrag.x, activeTimelineDrag.width));
277
- return;
278
- }
279
- if (!drag || drag.pointerId !== sample.pointerId) return;
280
- setMapViewport(panMapViewport(drag.viewport, sample.clientX - drag.x, sample.clientY - drag.y, drag.width, drag.height));
281
- };
282
- const handlePointerMove = event => {
283
- inspection.move(event);
284
- if (timelineDrag?.pointerId !== event.pointerId && drag?.pointerId !== event.pointerId) return;
285
- pendingPointer = {
286
- pointerId: event.pointerId,
287
- clientX: event.clientX,
288
- clientY: event.clientY
289
- };
290
- if (pointerFrame !== undefined) return;
291
- pointerFrame = requestAnimationFrame(flushPointerMove);
292
- };
293
- const stopDragging = event => {
294
- inspection.up();
295
- if (pendingPointer?.pointerId === event.pointerId) flushPointerMove();
296
- if (timelineDrag?.pointerId === event.pointerId) {
297
- if (event.currentTarget.hasPointerCapture(event.pointerId)) {
298
- event.currentTarget.releasePointerCapture(event.pointerId);
299
- }
300
- timelineDrag = undefined;
301
- setDragging(false);
302
- return;
303
- }
304
- if (!drag || drag.pointerId !== event.pointerId) return;
305
- if (event.currentTarget.hasPointerCapture(event.pointerId)) {
306
- event.currentTarget.releasePointerCapture(event.pointerId);
307
- }
308
- drag = undefined;
309
- setDragging(false);
310
- };
311
- const handleWheel = event => {
312
- if (interactiveMap() && (event.ctrlKey || event.metaKey)) {
313
- event.preventDefault();
314
- zoom(event.deltaY < 0 ? 1 : -1);
315
- return;
316
- }
317
- if (!interactiveTimeline()) return;
318
- if (event.ctrlKey || event.metaKey) {
319
- event.preventDefault();
320
- const rect = event.currentTarget.getBoundingClientRect();
321
- const anchor = rect.width > 0 ? (event.clientX - rect.left) / rect.width : 0.5;
322
- updateTimelineViewport(current => zoomStateTimelineViewport(current, timelineFullDomain(), event.deltaY < 0 ? 1 : -1, anchor));
323
- } else if (event.shiftKey) {
324
- event.preventDefault();
325
- updateTimelineViewport(current => panStateTimelineViewport(current, timelineFullDomain(), -event.deltaY, event.currentTarget.getBoundingClientRect().width));
326
- }
327
- };
328
- const handleKeyDown = event => {
329
- if (inspection.key(event)) return;
330
- if (!draggable() || event.target !== containerRef) return;
331
- if (event.key === "+" || event.key === "=") {
332
- event.preventDefault();
333
- zoom(1);
334
- return;
335
- }
336
- if (event.key === "-" || event.key === "_") {
337
- event.preventDefault();
338
- zoom(-1);
339
- return;
340
- }
341
- if (event.key === "0" || event.key === "Home") {
342
- event.preventDefault();
343
- reset();
344
- return;
345
- }
346
- if (interactiveTimeline() && (event.key === "ArrowLeft" || event.key === "ArrowRight")) {
347
- event.preventDefault();
348
- updateTimelineViewport(current => panStateTimelineViewport(current, timelineFullDomain(), event.key === "ArrowLeft" ? 80 : -80, event.currentTarget.getBoundingClientRect().width));
349
- return;
350
- }
351
- const delta = {
352
- ArrowLeft: [40, 0],
353
- ArrowRight: [-40, 0],
354
- ArrowUp: [0, 40],
355
- ArrowDown: [0, -40]
356
- }[event.key];
357
- if (!delta) return;
358
- event.preventDefault();
359
- const dimensions = mapDimensions();
360
- setMapViewport(current => panMapViewport(current, delta[0], delta[1], dimensions.width, dimensions.height));
361
- };
362
- const inspection = createChartInspection({
363
- container: () => containerRef,
364
- locale,
365
- cursor: () => props.cursor,
366
- tooltip: () => chartTooltipRef,
367
- anchor: () => lineAnchorRef,
368
- kind: () => props.kind,
369
- nav: () => props.kind === "heatmap" && props.layout === "calendar" ? calendarInspectionNavigation : undefined,
370
- enabled: () => !isEmpty(props),
371
- select: selection => props.onSelect?.(selection),
372
- format: selection => {
373
- if (props.tooltip) return props.tooltip(selection);
374
- const fields = props.kind === "heatmap" && props.layout === "calendar" ? resolveChartMessages(props.locale ?? locale()).chartFields : chartMessages().chartFields;
375
- if (selection.kind === "area" && props.kind === "area") {
376
- const amount = selection.datum.values.find(f => f.key === "value");
377
- const share = selection.datum.values.find(f => f.key === "percent");
378
- return {
379
- title: selection.datum.values.find(f => f.key === "x")?.formatted ?? "",
380
- rows: [{
381
- label: selection.datum.label ?? chartMessages().series,
382
- value: `${share ? `${share.formatted} · ` : ""}${amount.formatted}`
383
- }]
384
- };
385
- }
386
- const format = new Intl.NumberFormat(locale(), {
387
- maximumFractionDigits: 6
388
- });
389
- return {
390
- title: selection.datum.label ?? (selection.datum.seriesIndex !== undefined ? `${labels().series ?? chartMessages().series} ${selection.datum.seriesIndex + 1}` : undefined),
391
- rows: selection.datum.values.map(field => ({
392
- label: props.kind === "heatmap" && props.layout === "calendar" && field.key === "value" && props.label ? props.label : selection.kind === "line" && field.key === "y" ? selection.datum.label ?? labels().series ?? chartMessages().series : fields({
393
- key: field.key
394
- }),
395
- value: field.formatted ?? (field.key === "upperInclusive" ? field.value === "true" ? messages().yes : messages().no : typeof field.value === "number" ? `${format.format(field.value)}${field.key === "percent" ? "%" : ""}` : field.value)
396
- }))
397
- };
398
- }
399
- });
400
- const closeChartTooltip = () => inspection.close();
401
- const svgMarkup = createMemo(() => renderChartSvg(props.kind === "heatmap" && props.layout === "calendar" ? {
402
- ...props,
403
- locale: props.locale ?? locale()
404
- } : drawingProps, size().width, size().height, interactiveMap() ? mapViewport() : undefined, interactiveTimeline() ? timelineViewport() : undefined, locale()));
405
- createEffect(() => {
406
- svgMarkup();
407
- inspection.invalidate();
408
- untrack(() => inspection.selectDatum(props.selected));
409
- });
410
- createEffect(() => inspection.selectDatum(props.selected));
411
- onCleanup(() => {
412
- inspection.close();
413
- if (pointerFrame !== undefined) cancelAnimationFrame(pointerFrame);
414
- pointerFrame = undefined;
415
- pendingPointer = undefined;
416
- });
417
- onMount(() => {
418
- if (!containerRef) return;
419
- if (props.kind === "heatmap" && props.layout === "calendar") onCleanup(mountCalendarScroll(containerRef));
420
- onCleanup(closeChartInspectionOnOutside({
421
- container: () => containerRef,
422
- tooltip: () => chartTooltipRef,
423
- close: closeChartTooltip,
424
- keepScroll: () => props.kind === "heatmap" && props.layout === "calendar"
425
- }));
426
- });
427
- const chartStyle = () => props.style ?? (props.kind === "stateTimeline" ? {
428
- height: `${stateTimelineHeight(props.rows.length, props.legend !== false)}px`
429
- } : undefined);
430
- const control = (label, shortcut, icon, action) => _$createComponent(IconButton, {
431
- variant: "secondary",
432
- label: label,
433
- tooltip: `${label} (${shortcut})`,
434
- onClick: action,
435
- get children() {
436
- var _el$ = _$getNextElement(_tmpl$);
437
- _$className(_el$, `ti ${icon}`);
438
- return _el$;
439
- }
440
- });
441
- return _$createComponent(Show, {
442
- get when() {
443
- return !isEmpty(props);
444
- },
445
- get fallback() {
446
- return (() => {
447
- var _el$16 = _$getNextElement(_tmpl$5);
448
- var _ref$4 = containerRef;
449
- typeof _ref$4 === "function" ? _$use(_ref$4, _el$16) : containerRef = _el$16;
450
- _$insert(_el$16, () => labels().empty ?? messages().noData);
451
- _$effect(_p$ => {
452
- var _v$13 = `k2b-chart k2b-chart__empty ${props.class ?? ""}`,
453
- _v$14 = chartStyle();
454
- _v$13 !== _p$.e && _$className(_el$16, _p$.e = _v$13);
455
- _p$.t = _$style(_el$16, _v$14, _p$.t);
456
- return _p$;
457
- }, {
458
- e: undefined,
459
- t: undefined
460
- });
461
- return _el$16;
462
- })();
463
- },
464
- get children() {
465
- var _el$2 = _$getNextElement(_tmpl$4),
466
- _el$12 = _el$2.firstChild,
467
- [_el$13, _co$4] = _$getNextMarker(_el$12.nextSibling),
468
- _el$4 = _el$13.nextSibling,
469
- _el$5 = _el$4.nextSibling,
470
- _el$6 = _el$5.nextSibling,
471
- _el$14 = _el$6.nextSibling,
472
- [_el$15, _co$5] = _$getNextMarker(_el$14.nextSibling);
473
- _el$2.$$keydown = handleKeyDown;
474
- _el$2.addEventListener("wheel", handleWheel);
475
- _el$2.$$focusout = closeChartTooltip;
476
- _$addEventListener(_el$2, "focusin", inspection.focus, true);
477
- _$addEventListener(_el$2, "pointerleave", inspection.leave);
478
- _$addEventListener(_el$2, "click", inspection.click, true);
479
- _el$2.addEventListener("pointercancel", stopDragging);
480
- _el$2.$$pointerup = stopDragging;
481
- _el$2.$$pointermove = handlePointerMove;
482
- _el$2.$$pointerdown = handlePointerDown;
483
- var _ref$ = containerRef;
484
- typeof _ref$ === "function" ? _$use(_ref$, _el$2) : containerRef = _el$2;
485
- _$insert(_el$2, _$createComponent(Show, {
486
- get when() {
487
- return topLegend();
488
- },
489
- get children() {
490
- var _el$3 = _$getNextElement(_tmpl$2);
491
- _$insert(_el$3, _$createComponent(For, {
492
- get each() {
493
- return legendSeries();
494
- },
495
- children: (series, index) => (() => {
496
- var _el$17 = _$getNextElement(_tmpl$7),
497
- _el$18 = _el$17.firstChild,
498
- _el$19 = _el$18.firstChild,
499
- _el$20 = _el$18.nextSibling,
500
- _el$22 = _el$20.nextSibling,
501
- [_el$23, _co$6] = _$getNextMarker(_el$22.nextSibling);
502
- _$insert(_el$20, (() => {
503
- var _c$ = _$memo(() => !!(series.label && series.label.length > 0));
504
- return () => _c$() ? series.label : `${chartMessages().series} ${index() + 1}`;
505
- })());
506
- _$insert(_el$17, _$createComponent(Show, {
507
- get when() {
508
- return props.kind === "area";
509
- },
510
- get children() {
511
- var _el$21 = _$getNextElement(_tmpl$6);
512
- _$insert(_el$21, () => legendValue(index()));
513
- _$effect(_p$ => {
514
- var _v$15 = index(),
515
- _v$16 = props.kind === "area" && props.normalize ? "percent" : "value",
516
- _v$17 = legendValue(index());
517
- _v$15 !== _p$.e && _$setAttribute(_el$21, "data-series-index", _p$.e = _v$15);
518
- _v$16 !== _p$.t && _$setAttribute(_el$21, "data-field", _p$.t = _v$16);
519
- _v$17 !== _p$.a && _$setAttribute(_el$21, "data-default", _p$.a = _v$17);
520
- return _p$;
521
- }, {
522
- e: undefined,
523
- t: undefined,
524
- a: undefined
525
- });
526
- return _el$21;
527
- }
528
- }), _el$23, _co$6);
529
- _$effect(_p$ => {
530
- var _v$18 = `stdlib-chart k2b-chart__legend-swatch ${props.kind === "line" ? props.className ?? "" : ""}`,
531
- _v$19 = `stdlib-chart-series-${index() % 8}`,
532
- _v$20 = `var(--stdlib-chart-c${index() % 8 + 1}, ${["#2563eb", "#16a34a", "#d97706", "#dc2626", "#a855f7", "#0891b2", "#db2777", "#65a30d"][index() % 8]})`;
533
- _v$18 !== _p$.e && _$setAttribute(_el$18, "class", _p$.e = _v$18);
534
- _v$19 !== _p$.t && _$setAttribute(_el$19, "class", _p$.t = _v$19);
535
- _v$20 !== _p$.a && _$setAttribute(_el$19, "fill", _p$.a = _v$20);
536
- return _p$;
537
- }, {
538
- e: undefined,
539
- t: undefined,
540
- a: undefined
541
- });
542
- return _el$17;
543
- })()
544
- }));
545
- _$effect(() => _$setAttribute(_el$3, "aria-label", chartMessages().chartLegend));
546
- return _el$3;
547
- }
548
- }), _el$13, _co$4);
549
- var _ref$2 = lineAnchorRef;
550
- typeof _ref$2 === "function" ? _$use(_ref$2, _el$5) : lineAnchorRef = _el$5;
551
- var _ref$3 = chartTooltipRef;
552
- typeof _ref$3 === "function" ? _$use(_ref$3, _el$6) : chartTooltipRef = _el$6;
553
- _$setAttribute(_el$6, "id", chartTooltipId);
554
- _$insert(_el$2, _$createComponent(Show, {
555
- get when() {
556
- return draggable();
557
- },
558
- get children() {
559
- var _el$7 = _$getNextElement(_tmpl$3),
560
- _el$8 = _el$7.firstChild,
561
- [_el$9, _co$] = _$getNextMarker(_el$8.nextSibling),
562
- _el$0 = _el$9.nextSibling,
563
- [_el$1, _co$2] = _$getNextMarker(_el$0.nextSibling),
564
- _el$10 = _el$1.nextSibling,
565
- [_el$11, _co$3] = _$getNextMarker(_el$10.nextSibling);
566
- _$insert(_el$7, () => control(labels().zoomIn ?? viewportMessages().zoomIn, "+", "ti-plus", () => zoom(1)), _el$9, _co$);
567
- _$insert(_el$7, () => control(labels().zoomOut ?? viewportMessages().zoomOut, "-", "ti-minus", () => zoom(-1)), _el$1, _co$2);
568
- _$insert(_el$7, () => control(interactiveMap() ? labels().resetMap ?? chartMessages().resetMapView : labels().resetTimeline ?? chartMessages().resetTimelineView, "0", "ti-focus-centered", reset), _el$11, _co$3);
569
- return _el$7;
570
- }
571
- }), _el$15, _co$5);
572
- _$effect(_p$ => {
573
- var _v$ = `k2b-chart ${props.class ?? ""}`,
574
- _v$2 = props.kind,
575
- _v$3 = topLegend() ? "top-start" : undefined,
576
- _v$4 = draggable() ? dragging() ? "active" : "idle" : undefined,
577
- _v$5 = !draggable() && props.kind === "line" ? "true" : undefined,
578
- _v$6 = chartStyle(),
579
- _v$7 = accessibleName(),
580
- _v$8 = accessibleName() !== chartMessages().interactiveChart ? chartMessages().interactiveChart : undefined,
581
- _v$9 = !calendar() && !preservesAspectRatio(props.kind) ? "true" : undefined,
582
- _v$0 = calendar() ? `${calendar().minWidth}px` : undefined,
583
- _v$1 = `${size().width}px`,
584
- _v$10 = `${size().height}px`,
585
- _v$11 = `${size().width} / ${size().height}`,
586
- _v$12 = isServer ? selectedChartSvg(svgMarkup(), props.selected) : svgMarkup();
587
- _v$ !== _p$.e && _$className(_el$2, _p$.e = _v$);
588
- _v$2 !== _p$.t && _$setAttribute(_el$2, "data-chart-kind", _p$.t = _v$2);
589
- _v$3 !== _p$.a && _$setAttribute(_el$2, "data-legend-placement", _p$.a = _v$3);
590
- _v$4 !== _p$.o && _$setAttribute(_el$2, "data-drag", _p$.o = _v$4);
591
- _v$5 !== _p$.i && _$setAttribute(_el$2, "data-crosshair", _p$.i = _v$5);
592
- _p$.n = _$style(_el$2, _v$6, _p$.n);
593
- _v$7 !== _p$.s && _$setAttribute(_el$2, "aria-label", _p$.s = _v$7);
594
- _v$8 !== _p$.h && _$setAttribute(_el$2, "aria-description", _p$.h = _v$8);
595
- _v$9 !== _p$.r && _$setAttribute(_el$4, "data-stretch", _p$.r = _v$9);
596
- _v$0 !== _p$.d && _$setStyleProperty(_el$4, "min-width", _p$.d = _v$0);
597
- _v$1 !== _p$.l && _$setStyleProperty(_el$4, "--k2b-chart-width", _p$.l = _v$1);
598
- _v$10 !== _p$.u && _$setStyleProperty(_el$4, "--k2b-chart-height", _p$.u = _v$10);
599
- _v$11 !== _p$.c && _$setStyleProperty(_el$4, "aspect-ratio", _p$.c = _v$11);
600
- _v$12 !== _p$.w && _$setProperty(_el$4, "innerHTML", _p$.w = _v$12);
601
- return _p$;
602
- }, {
603
- e: undefined,
604
- t: undefined,
605
- a: undefined,
606
- o: undefined,
607
- i: undefined,
608
- n: undefined,
609
- s: undefined,
610
- h: undefined,
611
- r: undefined,
612
- d: undefined,
613
- l: undefined,
614
- u: undefined,
615
- c: undefined,
616
- w: undefined
617
- });
618
- _$runHydrationEvents();
619
- return _el$2;
620
- }
621
- });
622
- };
6
+ const ChartRoot = props => renderChartRoot(props, renderChartSvg);
623
7
  // Add a renderer to charts/core/registry.ts; its key defines the namespace member and discriminator.
624
8
  // Both entry styles share ChartRoot, preserving the same owner, markup and reactive props.
625
9
  const chartComponent = kind => props =>
@@ -627,13 +11,15 @@ const chartComponent = kind => props =>
627
11
  ChartRoot(mergeProps(props, {
628
12
  kind
629
13
  }));
630
- const components = Object.fromEntries(Object.entries(chartKinds).map(([name, kind]) => [name, chartComponent(kind)]));
631
- const Chart = Object.assign(ChartRoot, components, {
632
- Calendar: props => ChartRoot(mergeProps(props, {
633
- kind: "heatmap",
634
- layout: "calendar"
635
- }))
636
- });
14
+ const createChart = () => {
15
+ const components = Object.fromEntries(Object.entries(chartKinds).map(([name, kind]) => [name, chartComponent(kind)]));
16
+ return Object.assign(ChartRoot, components, {
17
+ Calendar: props => ChartRoot(mergeProps(props, {
18
+ kind: "heatmap",
19
+ layout: "calendar"
20
+ }))
21
+ });
22
+ };
23
+ const Chart = /* @__PURE__ */createChart();
637
24
  export default Chart;
638
- _$delegateEvents(["pointerdown", "pointermove", "pointerup", "click", "focusin", "focusout", "keydown"]);
639
25
  //# sourceMappingURL=Chart.js.map