@carto/ps-react-ui 4.7.1 → 4.9.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 (580) hide show
  1. package/dist/category-DwaeYjpX.js +656 -0
  2. package/dist/category-DwaeYjpX.js.map +1 -0
  3. package/dist/change-column-Cidl_M-4.js +1110 -0
  4. package/dist/change-column-Cidl_M-4.js.map +1 -0
  5. package/dist/data-zoom-layout-BH0LPwSy.js +28 -0
  6. package/dist/data-zoom-layout-BH0LPwSy.js.map +1 -0
  7. package/dist/echart-CU0KmClP.js +176 -0
  8. package/dist/echart-CU0KmClP.js.map +1 -0
  9. package/dist/exports-Cx-f6m6U.js +63 -0
  10. package/dist/exports-Cx-f6m6U.js.map +1 -0
  11. package/dist/formula-DuC0NQLH.js +79 -0
  12. package/dist/formula-DuC0NQLH.js.map +1 -0
  13. package/dist/markdown-BD1jcknS.js +8326 -0
  14. package/dist/markdown-BD1jcknS.js.map +1 -0
  15. package/dist/{styles-BYTyKQFP.js → option-builders-F-c9ELi1.js} +25 -45
  16. package/dist/option-builders-F-c9ELi1.js.map +1 -0
  17. package/dist/png-item-CS4z1iSH.js +45 -0
  18. package/dist/png-item-CS4z1iSH.js.map +1 -0
  19. package/dist/range-l4fNHLEg.js +213 -0
  20. package/dist/range-l4fNHLEg.js.map +1 -0
  21. package/dist/resolve-theme-color-BdojIw0K.js +47 -0
  22. package/dist/resolve-theme-color-BdojIw0K.js.map +1 -0
  23. package/dist/spread-CTuIXZSM.js +67 -0
  24. package/dist/spread-CTuIXZSM.js.map +1 -0
  25. package/dist/style-DVnT6HC1.js +131 -0
  26. package/dist/style-DVnT6HC1.js.map +1 -0
  27. package/dist/styles-cohnxh9F.js +23 -0
  28. package/dist/styles-cohnxh9F.js.map +1 -0
  29. package/dist/table-CQCAnDLb.js +388 -0
  30. package/dist/table-CQCAnDLb.js.map +1 -0
  31. package/dist/transforms-Cdx4fkU5.js +106 -0
  32. package/dist/transforms-Cdx4fkU5.js.map +1 -0
  33. package/dist/types/widgets/echart/utils.test.d.ts +1 -0
  34. package/dist/types/widgets/formula/config.test.d.ts +1 -0
  35. package/dist/types/widgets/stores/widget-store-branches.test.d.ts +1 -0
  36. package/dist/types/widgets/table/config.test.d.ts +1 -0
  37. package/dist/types/widgets-v2/actions/brush-toggle/brush-toggle.d.ts +56 -0
  38. package/dist/types/widgets-v2/actions/brush-toggle/index.d.ts +3 -0
  39. package/dist/types/widgets-v2/actions/brush-toggle/labels.d.ts +5 -0
  40. package/dist/types/widgets-v2/actions/brush-toggle/style.d.ts +12 -0
  41. package/dist/types/widgets-v2/actions/brush-toggle/transforms.d.ts +11 -0
  42. package/dist/types/widgets-v2/actions/brush-toggle/transforms.test.d.ts +1 -0
  43. package/dist/types/widgets-v2/actions/change-column/change-column-icon.d.ts +2 -0
  44. package/dist/types/widgets-v2/actions/change-column/change-column.d.ts +29 -0
  45. package/dist/types/widgets-v2/actions/change-column/index.d.ts +3 -0
  46. package/dist/types/widgets-v2/actions/change-column/labels.d.ts +5 -0
  47. package/dist/types/widgets-v2/actions/change-column/sortable-column-item.d.ts +14 -0
  48. package/dist/types/widgets-v2/actions/change-column/style.d.ts +33 -0
  49. package/dist/types/widgets-v2/actions/change-column/types.d.ts +10 -0
  50. package/dist/types/widgets-v2/actions/download/download.d.ts +18 -0
  51. package/dist/types/widgets-v2/actions/download/exports.d.ts +37 -0
  52. package/dist/types/widgets-v2/actions/download/icons.d.ts +12 -0
  53. package/dist/types/widgets-v2/actions/download/index.d.ts +6 -0
  54. package/dist/types/widgets-v2/actions/download/labels.d.ts +11 -0
  55. package/dist/types/widgets-v2/actions/download/png-item.d.ts +24 -0
  56. package/dist/types/widgets-v2/actions/download/style.d.ts +1 -0
  57. package/dist/types/widgets-v2/actions/download/types.d.ts +35 -0
  58. package/dist/types/widgets-v2/actions/fullscreen/fullscreen.d.ts +59 -0
  59. package/dist/types/widgets-v2/actions/fullscreen/index.d.ts +3 -0
  60. package/dist/types/widgets-v2/actions/fullscreen/labels.d.ts +5 -0
  61. package/dist/types/widgets-v2/actions/fullscreen/style.d.ts +48 -0
  62. package/dist/types/widgets-v2/actions/fullscreen/types.d.ts +14 -0
  63. package/dist/types/widgets-v2/actions/index.d.ts +9 -0
  64. package/dist/types/widgets-v2/actions/lock-selection/index.d.ts +3 -0
  65. package/dist/types/widgets-v2/actions/lock-selection/labels.d.ts +6 -0
  66. package/dist/types/widgets-v2/actions/lock-selection/lock-selection.d.ts +36 -0
  67. package/dist/types/widgets-v2/actions/lock-selection/style.d.ts +12 -0
  68. package/dist/types/widgets-v2/actions/lock-selection/transforms.d.ts +6 -0
  69. package/dist/types/widgets-v2/actions/relative-data/index.d.ts +3 -0
  70. package/dist/types/widgets-v2/actions/relative-data/labels.d.ts +5 -0
  71. package/dist/types/widgets-v2/actions/relative-data/relative-data.d.ts +39 -0
  72. package/dist/types/widgets-v2/actions/relative-data/style.d.ts +12 -0
  73. package/dist/types/widgets-v2/actions/relative-data/transforms.d.ts +30 -0
  74. package/dist/types/widgets-v2/actions/relative-data/transforms.test.d.ts +1 -0
  75. package/dist/types/widgets-v2/actions/searcher/filter.d.ts +6 -0
  76. package/dist/types/widgets-v2/actions/searcher/index.d.ts +4 -0
  77. package/dist/types/widgets-v2/actions/searcher/labels.d.ts +7 -0
  78. package/dist/types/widgets-v2/actions/searcher/searcher-toggle.d.ts +23 -0
  79. package/dist/types/widgets-v2/actions/searcher/searcher.d.ts +11 -0
  80. package/dist/types/widgets-v2/actions/searcher/style.d.ts +16 -0
  81. package/dist/types/widgets-v2/actions/stack-toggle/index.d.ts +3 -0
  82. package/dist/types/widgets-v2/actions/stack-toggle/labels.d.ts +5 -0
  83. package/dist/types/widgets-v2/actions/stack-toggle/stack-toggle.d.ts +10 -0
  84. package/dist/types/widgets-v2/actions/stack-toggle/style.d.ts +12 -0
  85. package/dist/types/widgets-v2/actions/stack-toggle/transforms.d.ts +13 -0
  86. package/dist/types/widgets-v2/actions/stack-toggle/transforms.test.d.ts +1 -0
  87. package/dist/types/widgets-v2/actions/zoom-toggle/index.d.ts +3 -0
  88. package/dist/types/widgets-v2/actions/zoom-toggle/labels.d.ts +5 -0
  89. package/dist/types/widgets-v2/actions/zoom-toggle/style.d.ts +12 -0
  90. package/dist/types/widgets-v2/actions/zoom-toggle/transforms.d.ts +51 -0
  91. package/dist/types/widgets-v2/actions/zoom-toggle/transforms.test.d.ts +1 -0
  92. package/dist/types/widgets-v2/actions/zoom-toggle/zoom-toggle.d.ts +35 -0
  93. package/dist/types/widgets-v2/bar/download.d.ts +24 -0
  94. package/dist/types/widgets-v2/bar/index.d.ts +4 -0
  95. package/dist/types/widgets-v2/bar/options.d.ts +43 -0
  96. package/dist/types/widgets-v2/bar/options.test.d.ts +1 -0
  97. package/dist/types/widgets-v2/bar/skeleton.d.ts +6 -0
  98. package/dist/types/widgets-v2/bar/types.d.ts +46 -0
  99. package/dist/types/widgets-v2/category/category-ui.d.ts +81 -0
  100. package/dist/types/widgets-v2/category/category.d.ts +48 -0
  101. package/dist/types/widgets-v2/category/components/category-bar-stacked.d.ts +28 -0
  102. package/dist/types/widgets-v2/category/components/category-bar.d.ts +23 -0
  103. package/dist/types/widgets-v2/category/components/category-legend.d.ts +18 -0
  104. package/dist/types/widgets-v2/category/components/category-row-multi.d.ts +31 -0
  105. package/dist/types/widgets-v2/category/components/category-row-other.d.ts +13 -0
  106. package/dist/types/widgets-v2/category/components/category-row-single.d.ts +28 -0
  107. package/dist/types/widgets-v2/category/components/category-row-stacked.d.ts +38 -0
  108. package/dist/types/widgets-v2/category/download.d.ts +16 -0
  109. package/dist/types/widgets-v2/category/download.test.d.ts +1 -0
  110. package/dist/types/widgets-v2/category/index.d.ts +10 -0
  111. package/dist/types/widgets-v2/category/skeleton.d.ts +11 -0
  112. package/dist/types/widgets-v2/category/style.d.ts +166 -0
  113. package/dist/types/widgets-v2/category/types.d.ts +53 -0
  114. package/dist/types/widgets-v2/echart/echart-ui.d.ts +44 -0
  115. package/dist/types/widgets-v2/echart/echart.d.ts +75 -0
  116. package/dist/types/widgets-v2/echart/index.d.ts +4 -0
  117. package/dist/types/widgets-v2/echart/shared-resize-observer.d.ts +5 -0
  118. package/dist/types/widgets-v2/echart/shared-resize-observer.test.d.ts +1 -0
  119. package/dist/types/widgets-v2/echart/style.d.ts +6 -0
  120. package/dist/types/widgets-v2/echart/use-chart-selection.d.ts +51 -0
  121. package/dist/types/widgets-v2/formula/delta.d.ts +22 -0
  122. package/dist/types/widgets-v2/formula/download.d.ts +20 -0
  123. package/dist/types/widgets-v2/formula/formula-ui.d.ts +20 -0
  124. package/dist/types/widgets-v2/formula/formula.d.ts +8 -0
  125. package/dist/types/widgets-v2/formula/index.d.ts +11 -0
  126. package/dist/types/widgets-v2/formula/note.d.ts +11 -0
  127. package/dist/types/widgets-v2/formula/prefix.d.ts +12 -0
  128. package/dist/types/widgets-v2/formula/series.d.ts +16 -0
  129. package/dist/types/widgets-v2/formula/skeleton.d.ts +4 -0
  130. package/dist/types/widgets-v2/formula/style.d.ts +29 -0
  131. package/dist/types/widgets-v2/formula/suffix.d.ts +12 -0
  132. package/dist/types/widgets-v2/formula/types.d.ts +43 -0
  133. package/dist/types/widgets-v2/formula/value.d.ts +14 -0
  134. package/dist/types/widgets-v2/histogram/download.d.ts +17 -0
  135. package/dist/types/widgets-v2/histogram/download.test.d.ts +1 -0
  136. package/dist/types/widgets-v2/histogram/index.d.ts +5 -0
  137. package/dist/types/widgets-v2/histogram/options.d.ts +42 -0
  138. package/dist/types/widgets-v2/histogram/options.test.d.ts +1 -0
  139. package/dist/types/widgets-v2/histogram/skeleton.d.ts +9 -0
  140. package/dist/types/widgets-v2/histogram/transforms.d.ts +17 -0
  141. package/dist/types/widgets-v2/histogram/transforms.test.d.ts +1 -0
  142. package/dist/types/widgets-v2/histogram/types.d.ts +51 -0
  143. package/dist/types/widgets-v2/index.d.ts +108 -0
  144. package/dist/types/widgets-v2/markdown/download.d.ts +16 -0
  145. package/dist/types/widgets-v2/markdown/download.test.d.ts +1 -0
  146. package/dist/types/widgets-v2/markdown/index.d.ts +6 -0
  147. package/dist/types/widgets-v2/markdown/markdown-content.d.ts +34 -0
  148. package/dist/types/widgets-v2/markdown/markdown-ui.d.ts +12 -0
  149. package/dist/types/widgets-v2/markdown/markdown.d.ts +6 -0
  150. package/dist/types/widgets-v2/markdown/skeleton.d.ts +4 -0
  151. package/dist/types/widgets-v2/markdown/style.d.ts +61 -0
  152. package/dist/types/widgets-v2/markdown/types.d.ts +4 -0
  153. package/dist/types/widgets-v2/note/labels.d.ts +5 -0
  154. package/dist/types/widgets-v2/note/style.d.ts +26 -0
  155. package/dist/types/widgets-v2/note/widget-note.d.ts +46 -0
  156. package/dist/types/widgets-v2/pie/download.d.ts +17 -0
  157. package/dist/types/widgets-v2/pie/download.test.d.ts +1 -0
  158. package/dist/types/widgets-v2/pie/index.d.ts +4 -0
  159. package/dist/types/widgets-v2/pie/options.d.ts +35 -0
  160. package/dist/types/widgets-v2/pie/options.test.d.ts +1 -0
  161. package/dist/types/widgets-v2/pie/skeleton.d.ts +4 -0
  162. package/dist/types/widgets-v2/pie/types.d.ts +57 -0
  163. package/dist/types/widgets-v2/provider/widget-provider.d.ts +32 -0
  164. package/dist/types/widgets-v2/range/index.d.ts +4 -0
  165. package/dist/types/widgets-v2/range/range-ui.d.ts +27 -0
  166. package/dist/types/widgets-v2/range/range.d.ts +24 -0
  167. package/dist/types/widgets-v2/range/skeleton.d.ts +9 -0
  168. package/dist/types/widgets-v2/range/style.d.ts +40 -0
  169. package/dist/types/widgets-v2/range/types.d.ts +37 -0
  170. package/dist/types/widgets-v2/scatterplot/download.d.ts +16 -0
  171. package/dist/types/widgets-v2/scatterplot/download.test.d.ts +1 -0
  172. package/dist/types/widgets-v2/scatterplot/index.d.ts +5 -0
  173. package/dist/types/widgets-v2/scatterplot/options.d.ts +42 -0
  174. package/dist/types/widgets-v2/scatterplot/options.test.d.ts +1 -0
  175. package/dist/types/widgets-v2/scatterplot/skeleton.d.ts +12 -0
  176. package/dist/types/widgets-v2/scatterplot/transforms.d.ts +17 -0
  177. package/dist/types/widgets-v2/scatterplot/transforms.test.d.ts +1 -0
  178. package/dist/types/widgets-v2/scatterplot/types.d.ts +54 -0
  179. package/dist/types/widgets-v2/selection-summary/labels.d.ts +6 -0
  180. package/dist/types/widgets-v2/selection-summary/selection-summary.d.ts +22 -0
  181. package/dist/types/widgets-v2/selection-summary/style.d.ts +23 -0
  182. package/dist/types/widgets-v2/spread/download.d.ts +15 -0
  183. package/dist/types/widgets-v2/spread/download.test.d.ts +1 -0
  184. package/dist/types/widgets-v2/spread/index.d.ts +6 -0
  185. package/dist/types/widgets-v2/spread/separator.d.ts +7 -0
  186. package/dist/types/widgets-v2/spread/skeleton.d.ts +9 -0
  187. package/dist/types/widgets-v2/spread/spread-ui.d.ts +18 -0
  188. package/dist/types/widgets-v2/spread/spread.d.ts +5 -0
  189. package/dist/types/widgets-v2/spread/types.d.ts +25 -0
  190. package/dist/types/widgets-v2/state/labels.d.ts +7 -0
  191. package/dist/types/widgets-v2/state/labels.test.d.ts +1 -0
  192. package/dist/types/widgets-v2/state/style.d.ts +19 -0
  193. package/dist/types/widgets-v2/state/widget-state.d.ts +19 -0
  194. package/dist/types/widgets-v2/stores/index.d.ts +8 -0
  195. package/dist/types/widgets-v2/stores/pipeline-middleware.d.ts +5 -0
  196. package/dist/types/widgets-v2/stores/pipeline-middleware.test.d.ts +1 -0
  197. package/dist/types/widgets-v2/stores/transforms.d.ts +4 -0
  198. package/dist/types/widgets-v2/stores/transforms.test.d.ts +1 -0
  199. package/dist/types/widgets-v2/stores/types.d.ts +55 -0
  200. package/dist/types/widgets-v2/stores/use-echart-instance.d.ts +15 -0
  201. package/dist/types/widgets-v2/stores/use-transform-enabled.d.ts +17 -0
  202. package/dist/types/widgets-v2/stores/use-transform.d.ts +12 -0
  203. package/dist/types/widgets-v2/stores/widget-context.d.ts +2 -0
  204. package/dist/types/widgets-v2/stores/widget-store-registry.d.ts +74 -0
  205. package/dist/types/widgets-v2/stores/widget-store-registry.test.d.ts +1 -0
  206. package/dist/types/widgets-v2/subheader/style.d.ts +10 -0
  207. package/dist/types/widgets-v2/subheader/subheader.d.ts +11 -0
  208. package/dist/types/widgets-v2/table/download.d.ts +18 -0
  209. package/dist/types/widgets-v2/table/download.test.d.ts +1 -0
  210. package/dist/types/widgets-v2/table/helpers.d.ts +32 -0
  211. package/dist/types/widgets-v2/table/helpers.test.d.ts +1 -0
  212. package/dist/types/widgets-v2/table/index.d.ts +7 -0
  213. package/dist/types/widgets-v2/table/labels.d.ts +22 -0
  214. package/dist/types/widgets-v2/table/skeleton.d.ts +22 -0
  215. package/dist/types/widgets-v2/table/style.d.ts +40 -0
  216. package/dist/types/widgets-v2/table/table-ui.d.ts +44 -0
  217. package/dist/types/widgets-v2/table/table.d.ts +50 -0
  218. package/dist/types/widgets-v2/table/types.d.ts +48 -0
  219. package/dist/types/widgets-v2/test-utils.d.ts +52 -0
  220. package/dist/types/widgets-v2/timeseries/download.d.ts +17 -0
  221. package/dist/types/widgets-v2/timeseries/download.test.d.ts +1 -0
  222. package/dist/types/widgets-v2/timeseries/index.d.ts +4 -0
  223. package/dist/types/widgets-v2/timeseries/options.d.ts +39 -0
  224. package/dist/types/widgets-v2/timeseries/options.test.d.ts +1 -0
  225. package/dist/types/widgets-v2/timeseries/skeleton.d.ts +8 -0
  226. package/dist/types/widgets-v2/timeseries/types.d.ts +60 -0
  227. package/dist/types/widgets-v2/toolbox/labels.d.ts +5 -0
  228. package/dist/types/widgets-v2/toolbox/style.d.ts +30 -0
  229. package/dist/types/widgets-v2/toolbox/toolbox.d.ts +49 -0
  230. package/dist/types/widgets-v2/types.d.ts +25 -0
  231. package/dist/types/widgets-v2/utils/data-zoom-layout.d.ts +11 -0
  232. package/dist/types/widgets-v2/utils/index.d.ts +3 -0
  233. package/dist/types/widgets-v2/utils/merge-options.d.ts +12 -0
  234. package/dist/types/widgets-v2/utils/merge-options.test.d.ts +1 -0
  235. package/dist/types/widgets-v2/utils/resolve-theme-color.d.ts +18 -0
  236. package/dist/types/widgets-v2/utils/resolve-theme-color.test.d.ts +1 -0
  237. package/dist/types/widgets-v2/wrapper/index.d.ts +4 -0
  238. package/dist/types/widgets-v2/wrapper/labels.d.ts +6 -0
  239. package/dist/types/widgets-v2/wrapper/style.d.ts +111 -0
  240. package/dist/types/widgets-v2/wrapper/widget-actions.d.ts +22 -0
  241. package/dist/types/widgets-v2/wrapper/widget-content.d.ts +12 -0
  242. package/dist/types/widgets-v2/wrapper/widget-wrapper.d.ts +51 -0
  243. package/dist/use-transform-DXPN3nY7.js +110 -0
  244. package/dist/use-transform-DXPN3nY7.js.map +1 -0
  245. package/dist/widget-context-DTGO0Yta.js +13 -0
  246. package/dist/widget-context-DTGO0Yta.js.map +1 -0
  247. package/dist/widget-store-registry-_W4Z4xp-.js +178 -0
  248. package/dist/widget-store-registry-_W4Z4xp-.js.map +1 -0
  249. package/dist/widgets/bar.js +14 -13
  250. package/dist/widgets/bar.js.map +1 -1
  251. package/dist/widgets/histogram.js +8 -7
  252. package/dist/widgets/histogram.js.map +1 -1
  253. package/dist/widgets/pie.js +19 -18
  254. package/dist/widgets/pie.js.map +1 -1
  255. package/dist/widgets/scatterplot.js +8 -7
  256. package/dist/widgets/scatterplot.js.map +1 -1
  257. package/dist/widgets/timeseries.js +11 -10
  258. package/dist/widgets/timeseries.js.map +1 -1
  259. package/dist/widgets/utils.js +8 -7
  260. package/dist/widgets/utils.js.map +1 -1
  261. package/dist/widgets-v2/actions.js +43 -0
  262. package/dist/widgets-v2/actions.js.map +1 -0
  263. package/dist/widgets-v2/bar.js +330 -0
  264. package/dist/widgets-v2/bar.js.map +1 -0
  265. package/dist/widgets-v2/category.js +104 -0
  266. package/dist/widgets-v2/category.js.map +1 -0
  267. package/dist/widgets-v2/echart.js +57 -0
  268. package/dist/widgets-v2/echart.js.map +1 -0
  269. package/dist/widgets-v2/formula.js +74 -0
  270. package/dist/widgets-v2/formula.js.map +1 -0
  271. package/dist/widgets-v2/histogram.js +353 -0
  272. package/dist/widgets-v2/histogram.js.map +1 -0
  273. package/dist/widgets-v2/markdown.js +68 -0
  274. package/dist/widgets-v2/markdown.js.map +1 -0
  275. package/dist/widgets-v2/pie.js +387 -0
  276. package/dist/widgets-v2/pie.js.map +1 -0
  277. package/dist/widgets-v2/range.js +52 -0
  278. package/dist/widgets-v2/range.js.map +1 -0
  279. package/dist/widgets-v2/scatterplot.js +411 -0
  280. package/dist/widgets-v2/scatterplot.js.map +1 -0
  281. package/dist/widgets-v2/spread.js +72 -0
  282. package/dist/widgets-v2/spread.js.map +1 -0
  283. package/dist/widgets-v2/stores.js +42 -0
  284. package/dist/widgets-v2/stores.js.map +1 -0
  285. package/dist/widgets-v2/table.js +78 -0
  286. package/dist/widgets-v2/table.js.map +1 -0
  287. package/dist/widgets-v2/timeseries.js +358 -0
  288. package/dist/widgets-v2/timeseries.js.map +1 -0
  289. package/dist/widgets-v2/utils.js +8 -0
  290. package/dist/widgets-v2/utils.js.map +1 -0
  291. package/dist/widgets-v2.js +953 -0
  292. package/dist/widgets-v2.js.map +1 -0
  293. package/package.json +71 -3
  294. package/src/components/lasso-tool/chip.test.tsx +176 -0
  295. package/src/components/lasso-tool/lasso-tool-inline.test.tsx +171 -0
  296. package/src/components/lasso-tool/lasso-tool.test.tsx +198 -0
  297. package/src/components/list-data/list-data.test.tsx +73 -0
  298. package/src/components/no-data-alert/no-data-alert.test.tsx +38 -0
  299. package/src/components/responsive-drawer/responsive-drawer.test.tsx +68 -0
  300. package/src/widgets/actions/brush-toggle/brush-overlay.test.tsx +465 -0
  301. package/src/widgets/actions/brush-toggle/brush-toggle.test.tsx +208 -0
  302. package/src/widgets/actions/change-column/change-column-dnd.test.tsx +193 -0
  303. package/src/widgets/actions/change-column/sortable-column-item.test.tsx +124 -0
  304. package/src/widgets/actions/zoom-toggle/zoom-toggle.test.tsx +322 -0
  305. package/src/widgets/category/components/category-rows.test.tsx +213 -0
  306. package/src/widgets/echart/utils.test.ts +277 -0
  307. package/src/widgets/formula/config.test.ts +37 -0
  308. package/src/widgets/range/components/range-item.test.tsx +243 -0
  309. package/src/widgets/stores/widget-store-branches.test.ts +275 -0
  310. package/src/widgets/table/config.test.ts +65 -0
  311. package/src/widgets/utils/chart-config/option-builders.test.ts +188 -0
  312. package/src/widgets-v2/PERFORMANCE.md +189 -0
  313. package/src/widgets-v2/actions/brush-toggle/brush-toggle.test.tsx +180 -0
  314. package/src/widgets-v2/actions/brush-toggle/brush-toggle.tsx +154 -0
  315. package/src/widgets-v2/actions/brush-toggle/index.ts +3 -0
  316. package/src/widgets-v2/actions/brush-toggle/labels.ts +9 -0
  317. package/src/widgets-v2/actions/brush-toggle/style.ts +11 -0
  318. package/src/widgets-v2/actions/brush-toggle/transforms.test.ts +47 -0
  319. package/src/widgets-v2/actions/brush-toggle/transforms.ts +31 -0
  320. package/src/widgets-v2/actions/change-column/change-column-icon.tsx +14 -0
  321. package/src/widgets-v2/actions/change-column/change-column.test.tsx +59 -0
  322. package/src/widgets-v2/actions/change-column/change-column.tsx +180 -0
  323. package/src/widgets-v2/actions/change-column/index.ts +7 -0
  324. package/src/widgets-v2/actions/change-column/labels.ts +9 -0
  325. package/src/widgets-v2/actions/change-column/sortable-column-item.tsx +56 -0
  326. package/src/widgets-v2/actions/change-column/style.ts +32 -0
  327. package/src/widgets-v2/actions/change-column/types.ts +11 -0
  328. package/src/widgets-v2/actions/download/download.test.tsx +327 -0
  329. package/src/widgets-v2/actions/download/download.tsx +144 -0
  330. package/src/widgets-v2/actions/download/exports.test.tsx +198 -0
  331. package/src/widgets-v2/actions/download/exports.ts +115 -0
  332. package/src/widgets-v2/actions/download/icons.tsx +26 -0
  333. package/src/widgets-v2/actions/download/index.ts +13 -0
  334. package/src/widgets-v2/actions/download/labels.ts +16 -0
  335. package/src/widgets-v2/actions/download/png-item.test.tsx +72 -0
  336. package/src/widgets-v2/actions/download/png-item.tsx +52 -0
  337. package/src/widgets-v2/actions/download/style.ts +3 -0
  338. package/src/widgets-v2/actions/download/types.ts +32 -0
  339. package/src/widgets-v2/actions/fullscreen/fullscreen.test.tsx +150 -0
  340. package/src/widgets-v2/actions/fullscreen/fullscreen.tsx +230 -0
  341. package/src/widgets-v2/actions/fullscreen/index.ts +7 -0
  342. package/src/widgets-v2/actions/fullscreen/labels.ts +9 -0
  343. package/src/widgets-v2/actions/fullscreen/style.ts +59 -0
  344. package/src/widgets-v2/actions/fullscreen/types.ts +15 -0
  345. package/src/widgets-v2/actions/index.ts +82 -0
  346. package/src/widgets-v2/actions/lock-selection/index.ts +10 -0
  347. package/src/widgets-v2/actions/lock-selection/labels.ts +11 -0
  348. package/src/widgets-v2/actions/lock-selection/lock-selection.test.tsx +187 -0
  349. package/src/widgets-v2/actions/lock-selection/lock-selection.tsx +130 -0
  350. package/src/widgets-v2/actions/lock-selection/style.ts +11 -0
  351. package/src/widgets-v2/actions/lock-selection/transforms.ts +27 -0
  352. package/src/widgets-v2/actions/relative-data/index.ts +3 -0
  353. package/src/widgets-v2/actions/relative-data/labels.ts +9 -0
  354. package/src/widgets-v2/actions/relative-data/relative-data.test.tsx +71 -0
  355. package/src/widgets-v2/actions/relative-data/relative-data.tsx +107 -0
  356. package/src/widgets-v2/actions/relative-data/style.ts +11 -0
  357. package/src/widgets-v2/actions/relative-data/transforms.test.ts +151 -0
  358. package/src/widgets-v2/actions/relative-data/transforms.ts +70 -0
  359. package/src/widgets-v2/actions/searcher/filter.ts +28 -0
  360. package/src/widgets-v2/actions/searcher/index.ts +8 -0
  361. package/src/widgets-v2/actions/searcher/labels.ts +13 -0
  362. package/src/widgets-v2/actions/searcher/searcher-toggle.tsx +91 -0
  363. package/src/widgets-v2/actions/searcher/searcher.test.tsx +92 -0
  364. package/src/widgets-v2/actions/searcher/searcher.tsx +112 -0
  365. package/src/widgets-v2/actions/searcher/style.ts +15 -0
  366. package/src/widgets-v2/actions/stack-toggle/index.ts +3 -0
  367. package/src/widgets-v2/actions/stack-toggle/labels.ts +9 -0
  368. package/src/widgets-v2/actions/stack-toggle/stack-toggle.test.tsx +61 -0
  369. package/src/widgets-v2/actions/stack-toggle/stack-toggle.tsx +54 -0
  370. package/src/widgets-v2/actions/stack-toggle/style.ts +11 -0
  371. package/src/widgets-v2/actions/stack-toggle/transforms.test.ts +43 -0
  372. package/src/widgets-v2/actions/stack-toggle/transforms.ts +25 -0
  373. package/src/widgets-v2/actions/zoom-toggle/index.ts +9 -0
  374. package/src/widgets-v2/actions/zoom-toggle/labels.ts +9 -0
  375. package/src/widgets-v2/actions/zoom-toggle/style.ts +11 -0
  376. package/src/widgets-v2/actions/zoom-toggle/transforms.test.ts +148 -0
  377. package/src/widgets-v2/actions/zoom-toggle/transforms.ts +171 -0
  378. package/src/widgets-v2/actions/zoom-toggle/zoom-toggle.test.tsx +107 -0
  379. package/src/widgets-v2/actions/zoom-toggle/zoom-toggle.tsx +106 -0
  380. package/src/widgets-v2/bar/download.test.tsx +91 -0
  381. package/src/widgets-v2/bar/download.tsx +66 -0
  382. package/src/widgets-v2/bar/index.ts +10 -0
  383. package/src/widgets-v2/bar/options.test.ts +334 -0
  384. package/src/widgets-v2/bar/options.ts +332 -0
  385. package/src/widgets-v2/bar/skeleton.test.tsx +19 -0
  386. package/src/widgets-v2/bar/skeleton.tsx +69 -0
  387. package/src/widgets-v2/bar/types.ts +51 -0
  388. package/src/widgets-v2/category/category-ui.test.tsx +746 -0
  389. package/src/widgets-v2/category/category-ui.tsx +389 -0
  390. package/src/widgets-v2/category/category.relative-data.test.tsx +107 -0
  391. package/src/widgets-v2/category/category.stack-toggle.test.tsx +85 -0
  392. package/src/widgets-v2/category/category.test.tsx +305 -0
  393. package/src/widgets-v2/category/category.tsx +121 -0
  394. package/src/widgets-v2/category/components/category-bar-stacked.test.tsx +121 -0
  395. package/src/widgets-v2/category/components/category-bar-stacked.tsx +73 -0
  396. package/src/widgets-v2/category/components/category-bar.test.tsx +64 -0
  397. package/src/widgets-v2/category/components/category-bar.tsx +49 -0
  398. package/src/widgets-v2/category/components/category-legend.test.tsx +51 -0
  399. package/src/widgets-v2/category/components/category-legend.tsx +39 -0
  400. package/src/widgets-v2/category/components/category-row-multi.tsx +86 -0
  401. package/src/widgets-v2/category/components/category-row-other.test.tsx +28 -0
  402. package/src/widgets-v2/category/components/category-row-other.tsx +33 -0
  403. package/src/widgets-v2/category/components/category-row-single.tsx +76 -0
  404. package/src/widgets-v2/category/components/category-row-stacked.test.tsx +244 -0
  405. package/src/widgets-v2/category/components/category-row-stacked.tsx +99 -0
  406. package/src/widgets-v2/category/download.test.ts +71 -0
  407. package/src/widgets-v2/category/download.ts +54 -0
  408. package/src/widgets-v2/category/index.ts +32 -0
  409. package/src/widgets-v2/category/skeleton.test.tsx +26 -0
  410. package/src/widgets-v2/category/skeleton.tsx +74 -0
  411. package/src/widgets-v2/category/style.ts +290 -0
  412. package/src/widgets-v2/category/types.ts +59 -0
  413. package/src/widgets-v2/echart/echart-ui.test.tsx +232 -0
  414. package/src/widgets-v2/echart/echart-ui.tsx +184 -0
  415. package/src/widgets-v2/echart/echart.test.tsx +229 -0
  416. package/src/widgets-v2/echart/echart.tsx +199 -0
  417. package/src/widgets-v2/echart/index.ts +22 -0
  418. package/src/widgets-v2/echart/shared-resize-observer.test.ts +91 -0
  419. package/src/widgets-v2/echart/shared-resize-observer.ts +56 -0
  420. package/src/widgets-v2/echart/style.ts +8 -0
  421. package/src/widgets-v2/echart/use-chart-selection.test.tsx +118 -0
  422. package/src/widgets-v2/echart/use-chart-selection.ts +115 -0
  423. package/src/widgets-v2/formula/delta.tsx +61 -0
  424. package/src/widgets-v2/formula/download.test.tsx +65 -0
  425. package/src/widgets-v2/formula/download.tsx +69 -0
  426. package/src/widgets-v2/formula/formula-ui.test.tsx +91 -0
  427. package/src/widgets-v2/formula/formula-ui.tsx +66 -0
  428. package/src/widgets-v2/formula/formula.test.tsx +50 -0
  429. package/src/widgets-v2/formula/formula.tsx +34 -0
  430. package/src/widgets-v2/formula/index.ts +17 -0
  431. package/src/widgets-v2/formula/note.tsx +25 -0
  432. package/src/widgets-v2/formula/prefix.tsx +25 -0
  433. package/src/widgets-v2/formula/series.tsx +67 -0
  434. package/src/widgets-v2/formula/skeleton.test.tsx +21 -0
  435. package/src/widgets-v2/formula/skeleton.tsx +27 -0
  436. package/src/widgets-v2/formula/style.ts +31 -0
  437. package/src/widgets-v2/formula/subcomponents.test.tsx +107 -0
  438. package/src/widgets-v2/formula/suffix.tsx +25 -0
  439. package/src/widgets-v2/formula/types.ts +48 -0
  440. package/src/widgets-v2/formula/value.tsx +31 -0
  441. package/src/widgets-v2/histogram/download.test.ts +94 -0
  442. package/src/widgets-v2/histogram/download.ts +60 -0
  443. package/src/widgets-v2/histogram/index.ts +10 -0
  444. package/src/widgets-v2/histogram/options.test.ts +318 -0
  445. package/src/widgets-v2/histogram/options.ts +338 -0
  446. package/src/widgets-v2/histogram/skeleton.test.tsx +16 -0
  447. package/src/widgets-v2/histogram/skeleton.tsx +70 -0
  448. package/src/widgets-v2/histogram/transforms.test.ts +46 -0
  449. package/src/widgets-v2/histogram/transforms.ts +30 -0
  450. package/src/widgets-v2/histogram/types.ts +55 -0
  451. package/src/widgets-v2/index.ts +204 -0
  452. package/src/widgets-v2/markdown/download.test.ts +66 -0
  453. package/src/widgets-v2/markdown/download.ts +53 -0
  454. package/src/widgets-v2/markdown/index.ts +6 -0
  455. package/src/widgets-v2/markdown/markdown-content.test.tsx +155 -0
  456. package/src/widgets-v2/markdown/markdown-content.tsx +72 -0
  457. package/src/widgets-v2/markdown/markdown-ui.test.tsx +75 -0
  458. package/src/widgets-v2/markdown/markdown-ui.tsx +55 -0
  459. package/src/widgets-v2/markdown/markdown.test.tsx +39 -0
  460. package/src/widgets-v2/markdown/markdown.tsx +17 -0
  461. package/src/widgets-v2/markdown/skeleton.test.tsx +15 -0
  462. package/src/widgets-v2/markdown/skeleton.tsx +32 -0
  463. package/src/widgets-v2/markdown/style.ts +53 -0
  464. package/src/widgets-v2/markdown/types.ts +4 -0
  465. package/src/widgets-v2/note/labels.ts +9 -0
  466. package/src/widgets-v2/note/style.ts +26 -0
  467. package/src/widgets-v2/note/widget-note.test.tsx +158 -0
  468. package/src/widgets-v2/note/widget-note.tsx +172 -0
  469. package/src/widgets-v2/pie/download.test.ts +78 -0
  470. package/src/widgets-v2/pie/download.ts +55 -0
  471. package/src/widgets-v2/pie/index.ts +10 -0
  472. package/src/widgets-v2/pie/options.test.ts +601 -0
  473. package/src/widgets-v2/pie/options.ts +513 -0
  474. package/src/widgets-v2/pie/skeleton.test.tsx +17 -0
  475. package/src/widgets-v2/pie/skeleton.tsx +32 -0
  476. package/src/widgets-v2/pie/types.ts +62 -0
  477. package/src/widgets-v2/provider/widget-provider.test.tsx +119 -0
  478. package/src/widgets-v2/provider/widget-provider.tsx +111 -0
  479. package/src/widgets-v2/range/index.ts +4 -0
  480. package/src/widgets-v2/range/range-ui.test.tsx +136 -0
  481. package/src/widgets-v2/range/range-ui.tsx +278 -0
  482. package/src/widgets-v2/range/range.test.tsx +68 -0
  483. package/src/widgets-v2/range/range.tsx +52 -0
  484. package/src/widgets-v2/range/skeleton.test.tsx +17 -0
  485. package/src/widgets-v2/range/skeleton.tsx +47 -0
  486. package/src/widgets-v2/range/style.ts +41 -0
  487. package/src/widgets-v2/range/types.ts +37 -0
  488. package/src/widgets-v2/scatterplot/download.test.ts +71 -0
  489. package/src/widgets-v2/scatterplot/download.ts +54 -0
  490. package/src/widgets-v2/scatterplot/index.ts +11 -0
  491. package/src/widgets-v2/scatterplot/options.test.ts +411 -0
  492. package/src/widgets-v2/scatterplot/options.ts +425 -0
  493. package/src/widgets-v2/scatterplot/skeleton.test.tsx +17 -0
  494. package/src/widgets-v2/scatterplot/skeleton.tsx +84 -0
  495. package/src/widgets-v2/scatterplot/transforms.test.ts +97 -0
  496. package/src/widgets-v2/scatterplot/transforms.ts +38 -0
  497. package/src/widgets-v2/scatterplot/types.ts +59 -0
  498. package/src/widgets-v2/selection-summary/labels.ts +11 -0
  499. package/src/widgets-v2/selection-summary/selection-summary.test.tsx +53 -0
  500. package/src/widgets-v2/selection-summary/selection-summary.tsx +62 -0
  501. package/src/widgets-v2/selection-summary/style.ts +23 -0
  502. package/src/widgets-v2/spread/download.test.ts +64 -0
  503. package/src/widgets-v2/spread/download.ts +59 -0
  504. package/src/widgets-v2/spread/index.ts +6 -0
  505. package/src/widgets-v2/spread/separator.tsx +11 -0
  506. package/src/widgets-v2/spread/skeleton.test.tsx +17 -0
  507. package/src/widgets-v2/spread/skeleton.tsx +38 -0
  508. package/src/widgets-v2/spread/spread-ui.test.tsx +108 -0
  509. package/src/widgets-v2/spread/spread-ui.tsx +52 -0
  510. package/src/widgets-v2/spread/spread.test.tsx +50 -0
  511. package/src/widgets-v2/spread/spread.tsx +31 -0
  512. package/src/widgets-v2/spread/types.ts +27 -0
  513. package/src/widgets-v2/state/labels.test.ts +33 -0
  514. package/src/widgets-v2/state/labels.ts +20 -0
  515. package/src/widgets-v2/state/style.ts +25 -0
  516. package/src/widgets-v2/state/widget-state.test.tsx +294 -0
  517. package/src/widgets-v2/state/widget-state.tsx +184 -0
  518. package/src/widgets-v2/stores/index.ts +49 -0
  519. package/src/widgets-v2/stores/pipeline-middleware.test.ts +187 -0
  520. package/src/widgets-v2/stores/pipeline-middleware.ts +91 -0
  521. package/src/widgets-v2/stores/transforms.test.ts +162 -0
  522. package/src/widgets-v2/stores/transforms.ts +70 -0
  523. package/src/widgets-v2/stores/types.ts +64 -0
  524. package/src/widgets-v2/stores/use-echart-instance.test.tsx +91 -0
  525. package/src/widgets-v2/stores/use-echart-instance.ts +29 -0
  526. package/src/widgets-v2/stores/use-transform-enabled.test.tsx +127 -0
  527. package/src/widgets-v2/stores/use-transform-enabled.ts +25 -0
  528. package/src/widgets-v2/stores/use-transform.test.tsx +262 -0
  529. package/src/widgets-v2/stores/use-transform.ts +158 -0
  530. package/src/widgets-v2/stores/widget-context.test.tsx +58 -0
  531. package/src/widgets-v2/stores/widget-context.ts +15 -0
  532. package/src/widgets-v2/stores/widget-store-registry.test.ts +292 -0
  533. package/src/widgets-v2/stores/widget-store-registry.ts +248 -0
  534. package/src/widgets-v2/subheader/style.ts +12 -0
  535. package/src/widgets-v2/subheader/subheader.test.tsx +30 -0
  536. package/src/widgets-v2/subheader/subheader.tsx +16 -0
  537. package/src/widgets-v2/table/download.test.ts +75 -0
  538. package/src/widgets-v2/table/download.ts +47 -0
  539. package/src/widgets-v2/table/helpers.test.ts +214 -0
  540. package/src/widgets-v2/table/helpers.ts +136 -0
  541. package/src/widgets-v2/table/index.ts +23 -0
  542. package/src/widgets-v2/table/labels.tsx +41 -0
  543. package/src/widgets-v2/table/skeleton.test.tsx +26 -0
  544. package/src/widgets-v2/table/skeleton.tsx +65 -0
  545. package/src/widgets-v2/table/style.ts +43 -0
  546. package/src/widgets-v2/table/table-ui.test.tsx +200 -0
  547. package/src/widgets-v2/table/table-ui.tsx +364 -0
  548. package/src/widgets-v2/table/table.test.tsx +119 -0
  549. package/src/widgets-v2/table/table.tsx +179 -0
  550. package/src/widgets-v2/table/types.ts +55 -0
  551. package/src/widgets-v2/test-utils.ts +107 -0
  552. package/src/widgets-v2/timeseries/download.test.ts +95 -0
  553. package/src/widgets-v2/timeseries/download.ts +86 -0
  554. package/src/widgets-v2/timeseries/index.ts +10 -0
  555. package/src/widgets-v2/timeseries/options.test.ts +394 -0
  556. package/src/widgets-v2/timeseries/options.ts +348 -0
  557. package/src/widgets-v2/timeseries/skeleton.test.tsx +13 -0
  558. package/src/widgets-v2/timeseries/skeleton.tsx +76 -0
  559. package/src/widgets-v2/timeseries/types.ts +65 -0
  560. package/src/widgets-v2/toolbox/labels.ts +9 -0
  561. package/src/widgets-v2/toolbox/style.ts +33 -0
  562. package/src/widgets-v2/toolbox/toolbox.test.tsx +200 -0
  563. package/src/widgets-v2/toolbox/toolbox.tsx +309 -0
  564. package/src/widgets-v2/types.ts +25 -0
  565. package/src/widgets-v2/utils/data-zoom-layout.ts +26 -0
  566. package/src/widgets-v2/utils/index.ts +3 -0
  567. package/src/widgets-v2/utils/merge-options.test.ts +52 -0
  568. package/src/widgets-v2/utils/merge-options.ts +50 -0
  569. package/src/widgets-v2/utils/resolve-theme-color.test.ts +43 -0
  570. package/src/widgets-v2/utils/resolve-theme-color.ts +34 -0
  571. package/src/widgets-v2/wrapper/index.ts +14 -0
  572. package/src/widgets-v2/wrapper/labels.ts +11 -0
  573. package/src/widgets-v2/wrapper/style.ts +134 -0
  574. package/src/widgets-v2/wrapper/widget-actions.test.tsx +52 -0
  575. package/src/widgets-v2/wrapper/widget-actions.tsx +43 -0
  576. package/src/widgets-v2/wrapper/widget-content.test.tsx +27 -0
  577. package/src/widgets-v2/wrapper/widget-content.tsx +29 -0
  578. package/src/widgets-v2/wrapper/widget-wrapper.test.tsx +159 -0
  579. package/src/widgets-v2/wrapper/widget-wrapper.tsx +178 -0
  580. package/dist/styles-BYTyKQFP.js.map +0 -1
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Loading state for the Bar widget. Mirrors a bar chart's silhouette — five
3
+ * vertical bars at staggered heights anchored to the bottom, plus a legend
4
+ * stub — so the skeleton reads as "a bar chart" rather than a generic list.
5
+ */
6
+ export declare function BarSkeleton(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,46 @@
1
+ import { Theme } from '@mui/material';
2
+ import { EChartsOption } from 'echarts';
3
+ import { WidgetSeries } from '../types';
4
+ /** A single category entry in a bar series. */
5
+ export interface BarDatum {
6
+ name: string | number;
7
+ value: number;
8
+ }
9
+ /** v2 bar widget data shape: array of series, each a flat list of `{name, value}`. */
10
+ export type BarWidgetData = readonly (readonly BarDatum[])[];
11
+ /** Inputs to the structural-only {@link barOptions} builder. */
12
+ export interface BarOptionsInput {
13
+ theme: Theme;
14
+ formatter?: (value: number) => string;
15
+ labelFormatter?: (value: string | number) => string | number;
16
+ }
17
+ /**
18
+ * Combined inputs for the option factory creator. Carries everything the
19
+ * widget needs across BOTH phases — the structural-build (`theme`,
20
+ * `formatter`, `labelFormatter`, `optionsOverride`) AND the data merge
21
+ * (`series`, `selection`).
22
+ */
23
+ export interface BarOptionFactoryInput {
24
+ theme: Theme;
25
+ formatter?: (value: number) => string;
26
+ labelFormatter?: (value: string | number) => string | number;
27
+ /**
28
+ * Per-series metadata — drives the legend, `series[i].name`, and
29
+ * (when `color` is set) per-series `itemStyle.color`. Paired with the
30
+ * data series by index.
31
+ */
32
+ series?: readonly WidgetSeries[];
33
+ /**
34
+ * When set, every datum whose `name` is **not** in this list renders dimmed
35
+ * (`itemStyle.opacity: 0.15`, matching `outOfBrush` styling). `null`/empty
36
+ * means "no selection active" — every bar is fully opaque.
37
+ */
38
+ selection?: readonly (string | number)[] | null;
39
+ /**
40
+ * Consumer-supplied partial option merged into the structural option at
41
+ * structural-build time (via `mergeOptions`). Lets stories override pieces
42
+ * of the theme-aware base without forking the structural builder.
43
+ */
44
+ optionsOverride?: Partial<EChartsOption>;
45
+ }
46
+ export type BarEChartsOption = EChartsOption;
@@ -0,0 +1,81 @@
1
+ import { CategoryKey, CategoryLabels, CategorySeriesConfig, CategorySize, CategoryWidgetData } from './types';
2
+ export interface CategoryUIProps {
3
+ data: CategoryWidgetData;
4
+ /** Currently-selected category names (destination-owned). */
5
+ selection?: readonly CategoryKey[];
6
+ /** Fires with the next selection set when a row is clicked. */
7
+ onSelectionChange?: (next: readonly CategoryKey[]) => void;
8
+ /** Number formatter applied to each row's value. */
9
+ formatter?: (value: number) => string;
10
+ /**
11
+ * Display-only transform for category names. Selection callbacks always
12
+ * receive the raw `item.name` regardless of this formatter.
13
+ */
14
+ labelFormatter?: (value: string | number) => string | number;
15
+ /**
16
+ * Per-series metadata. Enables the legend (for multi-series) and
17
+ * overrides palette colors per series index. Length need not match
18
+ * `data.length`; mismatches degrade gracefully (extras ignored, gaps
19
+ * fall back to palette).
20
+ */
21
+ series?: readonly CategorySeriesConfig[];
22
+ /**
23
+ * Caps the number of visible category rows.
24
+ *
25
+ * - `undefined` (omitted) — caps at {@link DEFAULT_MAX_ITEMS} (20).
26
+ * Surplus rows fold into a single italic "Other (X more)" footer.
27
+ * `undefined` cannot mean "no cap" because it's consumed by the
28
+ * default-parameter syntax — pass `null` instead.
29
+ * - positive finite N — same as the default but with a custom cap.
30
+ * - `0` — **no cap WITH scroll**: every row renders inside a
31
+ * fixed-height viewport that scrolls internally. The viewport's
32
+ * max-height is the list's natural `clientHeight` measured on the
33
+ * first render where the list was NOT in scroll mode (i.e., the
34
+ * capped view) — frozen for the component's lifetime. If the
35
+ * consumer mounts directly into scroll mode and we never see a
36
+ * capped render, the viewport falls back to `8 × ROW_HEIGHT_PX`.
37
+ * Composers flip into this mode while the user is searching
38
+ * (`maxItems = searcherOpen ? 0 : userMaxItems`) so the widget
39
+ * card height stays stable.
40
+ * - `null` / `Infinity` / negative — **no cap, no scroll**: render
41
+ * every row; the list grows with content. Matches v1's "undefined"
42
+ * behavior. Use `null` as the canonical explicit form.
43
+ */
44
+ maxItems?: number | null;
45
+ /** Labels for the "Other" overflow row. `{count}` placeholder is replaced. */
46
+ labels?: CategoryLabels;
47
+ /** Manual override for the bar-width denominator. */
48
+ maxOverride?: number;
49
+ /**
50
+ * Visual density of the bar primitive. `'small'` (default) keeps the
51
+ * historical 4px-tall pill; `'medium'` switches to a 12px-tall track
52
+ * with a 2px corner radius. Only the bar track + fill change.
53
+ */
54
+ size?: CategorySize;
55
+ /**
56
+ * Multi-series stacked mode. When `true` and `data.length > 1`, each
57
+ * category renders as a single segmented bar (one segment per series)
58
+ * with a `formatter(sum)` total in the header and a per-series
59
+ * breakdown line below. Composers typically thread this from
60
+ * `useTransformEnabled(id, 'stack-toggle')`.
61
+ *
62
+ * No-op for single-series data — same convention as the legend.
63
+ */
64
+ stacked?: boolean;
65
+ }
66
+ /**
67
+ * Pure presentational component for the Category widget. Renders
68
+ * single-series rows (`data.length === 1`) as a compact grid or
69
+ * multi-series rows (`data.length > 1`) as stacked-bar groups, capped at
70
+ * `maxItems` with an overflow summary, and an optional sticky color
71
+ * legend when `series` metadata is supplied.
72
+ *
73
+ * Selection is destination-owned: clicking a row fires
74
+ * `onSelectionChange(next)` with the toggled set; the consumer keeps the
75
+ * list in their own store. `aria-pressed` + Enter/Space keyboard
76
+ * activation give full a11y parity with the mouse path.
77
+ *
78
+ * Returns `null` when there's nothing to render — `Widget.State` is the
79
+ * empty-state authority in the canonical compositor.
80
+ */
81
+ export declare function CategoryUI({ data, selection, onSelectionChange, formatter, labelFormatter, series, maxItems, labels, maxOverride, size, stacked, }: CategoryUIProps): import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,48 @@
1
+ import { CategoryKey, CategoryLabels, CategorySeriesConfig, CategorySize } from './types';
2
+ export interface CategoryProps {
3
+ /** Currently-selected category names. Destination-owned. */
4
+ selection?: readonly CategoryKey[];
5
+ /** Fires when a row is clicked. Consumer updates the destination's store. */
6
+ onSelectionChange?: (next: readonly CategoryKey[]) => void;
7
+ /** Per-series metadata. Enables the legend + overrides palette per index. */
8
+ series?: readonly CategorySeriesConfig[];
9
+ /**
10
+ * Cap visible rows; overflow folds into "Other (X more)". Default 20
11
+ * (when omitted). Pass `0` to swap the cap for a scrollable viewport
12
+ * (composers use this when the user opens the SearcherToggle —
13
+ * `maxItems = searcherOpen ? 0 : userMaxItems`). Pass `null` to disable
14
+ * the cap entirely without adding a scroll viewport.
15
+ */
16
+ maxItems?: number | null;
17
+ /** Labels for the "Other" overflow row. */
18
+ labels?: CategoryLabels;
19
+ /**
20
+ * Manual override for the bar-width denominator. When omitted, the
21
+ * bridge auto-fills from the widget store's `rawData` so bar widths
22
+ * stay coherent across data transforms (e.g., the Searcher filtering
23
+ * rows in and out — bars don't rescale just because the larger rows
24
+ * got hidden). Pass an explicit number to fix the denominator
25
+ * regardless of the data.
26
+ */
27
+ maxOverride?: number;
28
+ /**
29
+ * Visual density of the bar primitive. `'small'` (default) keeps the
30
+ * historical 4px-tall pill; `'medium'` switches to a 12px-tall track
31
+ * with a 2px corner radius. Forwarded as-is to {@link CategoryUI}.
32
+ */
33
+ size?: CategorySize;
34
+ /**
35
+ * Multi-series stacked mode. Forwarded as-is to {@link CategoryUI}.
36
+ * Composers typically wire this from
37
+ * `useTransformEnabled(id, 'stack-toggle')`. No-op for single-series.
38
+ */
39
+ stacked?: boolean;
40
+ }
41
+ /**
42
+ * Stateful Category bridge — reads `data`, `formatter`, and
43
+ * `labelFormatter` (post-pipeline) from the per-widget store and
44
+ * forwards them to the pure {@link CategoryUI}. `selection` and
45
+ * `onSelectionChange` follow the destination-owned principle: the
46
+ * consumer keeps the list in their own store and passes it through.
47
+ */
48
+ export declare function Category({ selection, onSelectionChange, series, maxItems, labels, maxOverride, size, stacked, }: CategoryProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,28 @@
1
+ import { CategorySize } from '../types';
2
+ export interface CategoryBarStackedProps {
3
+ /** One value per series. Zero values render no segment (visually + in the DOM). */
4
+ values: readonly number[];
5
+ /** One color per series. Resolved upstream by `CategoryUI.colorAt`. */
6
+ colors: readonly string[];
7
+ /**
8
+ * Shared denominator across all rows + series (or `maxOverride`). Same
9
+ * value `CategoryBar` uses — segments scale identically to single-bar rows
10
+ * so cross-row comparison is preserved.
11
+ */
12
+ maxValue: number;
13
+ /** Visual density. Forwarded to the track styling; segments inherit height. */
14
+ size?: CategorySize;
15
+ }
16
+ /**
17
+ * Stacked horizontal bar: one rounded track containing N square segments
18
+ * placed side-by-side. Each segment's width is `value_i / maxValue * 100%`
19
+ * and its left offset is the cumulative sum of preceding values. Square
20
+ * interior edges + the parent track's `overflow: hidden` + rounded radius
21
+ * mean the outer ends of the stacked bar match a single `CategoryBar` while
22
+ * interior segment boundaries meet cleanly.
23
+ *
24
+ * Pure presentation — selection / dimming is resolved upstream by the row
25
+ * via the `colors` prop. Each segment carries `data-bar-fill='true'` so the
26
+ * existing row-hover brightening selector still fires on every segment.
27
+ */
28
+ export declare function CategoryBarStacked({ values, colors, maxValue, size, }: CategoryBarStackedProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,23 @@
1
+ import { CategorySize } from '../types';
2
+ export interface CategoryBarProps {
3
+ /** Numeric value driving the fill width. */
4
+ value: number;
5
+ /** Denominator for the percentage fill. `0` → empty bar (no division by zero). */
6
+ maxValue: number;
7
+ /** Fill color. Honors any CSS color or MUI theme token. */
8
+ color: string;
9
+ /**
10
+ * Visual density. `'small'` (default) keeps the historical 4px pill;
11
+ * `'medium'` renders a 12px-tall track with a 2px corner radius. Only
12
+ * the bar track + fill change — every other token in the parent row is
13
+ * size-invariant.
14
+ */
15
+ size?: CategorySize;
16
+ }
17
+ /**
18
+ * Single horizontal bar (track + proportional fill). Pure presentation.
19
+ * Selection / dimming live at the row level; this component is unaware of
20
+ * both — bars stay vivid regardless of selection state (per the v2
21
+ * "row-bg + row-dim, never muted bar" rule).
22
+ */
23
+ export declare function CategoryBar({ value, maxValue, color, size, }: CategoryBarProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,18 @@
1
+ import { CategorySeriesConfig } from '../types';
2
+ export interface CategoryLegendProps {
3
+ /** Series metadata. Empty array → renders nothing. */
4
+ series: readonly CategorySeriesConfig[];
5
+ /**
6
+ * Per-series colour resolver. Receives the series index and returns the
7
+ * palette colour (or `undefined` to fall back to the MUI default). The
8
+ * legend derives its dot colour from this on the fly — the caller does
9
+ * NOT pre-compute a `colors` array (avoids passing two views of the
10
+ * same source).
11
+ */
12
+ colorAt: (index: number) => string | undefined;
13
+ }
14
+ /**
15
+ * Sticky color legend rendered below a multi-series Category list.
16
+ * Per-series `color` overrides the matching `colorAt(i)` result.
17
+ */
18
+ export declare function CategoryLegend({ series, colorAt }: CategoryLegendProps): import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,31 @@
1
+ import { CategoryKey, CategorySize } from '../types';
2
+ export interface CategoryRowMultiProps {
3
+ /** Raw category key — what gets emitted to `onToggle`. */
4
+ name: CategoryKey;
5
+ /** Display label (post-`labelFormatter`). Falls back to `name`. */
6
+ displayName?: string | number;
7
+ /** One value per series. `0` is rendered as an empty bar (track only). */
8
+ values: readonly number[];
9
+ /** One color per series (palette + per-series overrides resolved upstream). */
10
+ colors: readonly string[];
11
+ /** Shared max across all series + rows (or `maxOverride`). */
12
+ maxValue: number;
13
+ formatter: (n: number) => string;
14
+ selected: boolean;
15
+ onToggle: (name: CategoryKey) => void;
16
+ /** Bar visual density. Forwarded to every {@link CategoryBar} in the row. */
17
+ size?: CategorySize;
18
+ }
19
+ /**
20
+ * Multi-series category row: label spans the top; bar+value pairs stack
21
+ * vertically below, one per series. Each bar uses the full row width
22
+ * track (no shared grid) for legibility at N>=2 series. Click anywhere
23
+ * in the row (label OR any bar/value) toggles selection by `name`.
24
+ *
25
+ * Visual selection / dim signal lives ENTIRELY in the bar colors
26
+ * (`colors` prop) — every series in a dimmed row receives
27
+ * `theme.palette.action.disabled`; selected / unselected-no-selection
28
+ * rows receive their real palette colors. Computed upstream by
29
+ * `CategoryUI`. The row itself has no bg tint, no opacity rule.
30
+ */
31
+ export declare function CategoryRowMulti({ name, displayName, values, colors, maxValue, formatter, selected, onToggle, size, }: CategoryRowMultiProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,13 @@
1
+ export interface CategoryRowOtherProps {
2
+ hiddenCount: number;
3
+ /** Label for the overflow row. Defaults to `'Other'`. */
4
+ otherLabel?: string;
5
+ /** Count text with `{count}` placeholder. Defaults to `'{count} more'`. */
6
+ otherCountLabel?: string;
7
+ }
8
+ /**
9
+ * Static "Other (X more)" overflow summary row. Rendered after the last
10
+ * visible category row when `data.length > maxItems`. Non-interactive —
11
+ * no selection, no keyboard target.
12
+ */
13
+ export declare function CategoryRowOther({ hiddenCount, otherLabel, otherCountLabel, }: CategoryRowOtherProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,28 @@
1
+ import { CategoryKey, CategorySize } from '../types';
2
+ export interface CategoryRowSingleProps {
3
+ /** Raw category key — what gets emitted to `onToggle` regardless of formatter. */
4
+ name: CategoryKey;
5
+ /** Display label (post-`labelFormatter`). Falls back to `name` when omitted. */
6
+ displayName?: string | number;
7
+ value: number;
8
+ maxValue: number;
9
+ color: string;
10
+ formatter: (n: number) => string;
11
+ selected: boolean;
12
+ onToggle: (name: CategoryKey) => void;
13
+ /** Bar visual density. Forwarded to {@link CategoryBar}. */
14
+ size?: CategorySize;
15
+ }
16
+ /**
17
+ * Single-series category row: `[label] [bar] [value]` grid. Click /
18
+ * Enter / Space toggles `name` in/out of the selection set via
19
+ * `onToggle`. Selection key is always the raw `name` — `displayName` is
20
+ * presentation only.
21
+ *
22
+ * Visual selection / dim signal lives ENTIRELY in the bar color
23
+ * (`color` prop) — computed upstream by `CategoryUI` (real palette
24
+ * color when selected or no-selection; `theme.palette.action.disabled`
25
+ * when a selection exists and this row isn't in it). The row itself
26
+ * has no bg tint, no opacity rule.
27
+ */
28
+ export declare function CategoryRowSingle({ name, displayName, value, maxValue, color, formatter, selected, onToggle, size, }: CategoryRowSingleProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,38 @@
1
+ import { CategoryKey, CategorySize } from '../types';
2
+ export interface CategoryRowStackedProps {
3
+ /** Raw category key — what gets emitted to `onToggle`. */
4
+ name: CategoryKey;
5
+ /** Display label (post-`labelFormatter`). Falls back to `name`. */
6
+ displayName?: string | number;
7
+ /** One value per series. Zero values still appear in the breakdown row. */
8
+ values: readonly number[];
9
+ /** One color per series (palette + per-series overrides resolved upstream). */
10
+ colors: readonly string[];
11
+ /** Series names for the breakdown row. Missing entries fall back to `Series N`. */
12
+ seriesNames: readonly string[];
13
+ formatter: (n: number) => string;
14
+ selected: boolean;
15
+ onToggle: (name: CategoryKey) => void;
16
+ /** Bar visual density. Forwarded to the inner {@link CategoryBarStacked}. */
17
+ size?: CategorySize;
18
+ }
19
+ /**
20
+ * Stacked-mode category row: label + total share a header line; a single
21
+ * segmented bar sits below; an inline breakdown lists each series with its
22
+ * formatted value. Click anywhere in the row toggles selection by `name`.
23
+ *
24
+ * Per-row normalization: the stacked bar always fills 100% of the track,
25
+ * with each segment sized as `value_i / sum(values)`. This is intentionally
26
+ * different from `CategoryRowMulti` (which scales bars against the global
27
+ * `maxValue` for cross-row comparison) — in stacked mode the comparable
28
+ * axis is the proportion of each series within the row, not the row's
29
+ * total relative to other rows. The total numeric value is still shown in
30
+ * the header so the per-row magnitude isn't lost.
31
+ *
32
+ * Visual selection / dim signal lives entirely in the segment colors
33
+ * (`colors` prop) — every series in a dimmed row receives
34
+ * `theme.palette.action.disabled`. The bar visually collapses to a single
35
+ * grey shape when dimmed, but the breakdown text stays at full color so the
36
+ * per-series values remain legible.
37
+ */
38
+ export declare function CategoryRowStacked({ name, displayName, values, colors, seriesNames, formatter, selected, onToggle, size, }: CategoryRowStackedProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,16 @@
1
+ import { DownloadItem } from '../actions/download';
2
+ import { CategoryWidgetData } from './types';
3
+ /**
4
+ * Download menu items for the Category widget. Always includes a CSV item
5
+ * with `series, name, value` columns (one row per item). When
6
+ * `getCaptureEl` is supplied, prepends a PNG item that rasterises the
7
+ * captured element via `html2canvas`.
8
+ */
9
+ export declare function createCategoryDownloadConfig(args: {
10
+ filename: string;
11
+ getData: () => CategoryWidgetData;
12
+ seriesNames?: readonly string[];
13
+ getCaptureEl?: () => HTMLElement | null;
14
+ pngPixelRatio?: number;
15
+ pngBackgroundColor?: string | null;
16
+ }): DownloadItem[];
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,10 @@
1
+ export { Category, type CategoryProps } from './category';
2
+ export { CategoryUI, type CategoryUIProps } from './category-ui';
3
+ export { CategorySkeleton, type CategorySkeletonProps } from './skeleton';
4
+ export { createCategoryDownloadConfig } from './download';
5
+ export { CategoryBar, type CategoryBarProps } from './components/category-bar';
6
+ export { CategoryRowSingle, type CategoryRowSingleProps, } from './components/category-row-single';
7
+ export { CategoryRowMulti, type CategoryRowMultiProps, } from './components/category-row-multi';
8
+ export { CategoryRowOther, type CategoryRowOtherProps, } from './components/category-row-other';
9
+ export { CategoryLegend, type CategoryLegendProps, } from './components/category-legend';
10
+ export type { CategoryDataItem, CategoryWidgetData, CategoryKey, CategorySeriesConfig, CategoryLabels, CategorySize, } from './types';
@@ -0,0 +1,11 @@
1
+ import { CategorySize } from './types';
2
+ export interface CategorySkeletonProps {
3
+ rows?: number;
4
+ /**
5
+ * Visual density. Mirrors the live widget's `size` prop so the loading
6
+ * shimmer's bar height matches what's about to render — no row jump
7
+ * on data settle.
8
+ */
9
+ size?: CategorySize;
10
+ }
11
+ export declare function CategorySkeleton({ rows, size, }: CategorySkeletonProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,166 @@
1
+ import { SxProps, Theme } from '@mui/material';
2
+ import { CategorySize } from './types';
3
+ export declare const styles: {
4
+ root: {
5
+ display: string;
6
+ flexDirection: string;
7
+ position: string;
8
+ width: string;
9
+ };
10
+ list: {
11
+ display: string;
12
+ flexDirection: string;
13
+ gap: number;
14
+ py: number;
15
+ };
16
+ rowSingle: {
17
+ display: string;
18
+ flexDirection: string;
19
+ gap: number;
20
+ cursor: string;
21
+ userSelect: string;
22
+ transition: string;
23
+ '&:hover [data-bar-fill="true"]': {
24
+ filter: string;
25
+ };
26
+ '&:focus-visible': {
27
+ outline: string;
28
+ outlineColor: string;
29
+ outlineOffset: number;
30
+ };
31
+ };
32
+ rowHeader: {
33
+ display: string;
34
+ justifyContent: string;
35
+ alignItems: string;
36
+ gap: number;
37
+ };
38
+ rowMulti: {
39
+ display: string;
40
+ flexDirection: string;
41
+ gap: number;
42
+ cursor: string;
43
+ userSelect: string;
44
+ transition: string;
45
+ '&:hover [data-bar-fill="true"]': {
46
+ filter: string;
47
+ };
48
+ '&:focus-visible': {
49
+ outline: string;
50
+ outlineColor: string;
51
+ outlineOffset: number;
52
+ };
53
+ };
54
+ name: {
55
+ overflow: string;
56
+ whiteSpace: string;
57
+ textOverflow: string;
58
+ color: string;
59
+ fontWeight: string;
60
+ };
61
+ multiName: {
62
+ overflow: string;
63
+ whiteSpace: string;
64
+ textOverflow: string;
65
+ color: string;
66
+ fontWeight: string;
67
+ };
68
+ value: {
69
+ color: string;
70
+ fontVariantNumeric: string;
71
+ minWidth: number;
72
+ textAlign: string;
73
+ };
74
+ bar: Record<CategorySize, SxProps<Theme>>;
75
+ barFill: Record<CategorySize, SxProps<Theme>>;
76
+ stackedSegment: Record<CategorySize, SxProps<Theme>>;
77
+ multiBarRow: {
78
+ display: string;
79
+ alignItems: string;
80
+ gap: number;
81
+ };
82
+ multiBarContainer: {
83
+ flex: number;
84
+ };
85
+ rowStacked: {
86
+ display: string;
87
+ flexDirection: string;
88
+ gap: number;
89
+ cursor: string;
90
+ userSelect: string;
91
+ transition: string;
92
+ '&:hover [data-bar-fill="true"]': {
93
+ filter: string;
94
+ };
95
+ '&:focus-visible': {
96
+ outline: string;
97
+ outlineColor: string;
98
+ outlineOffset: number;
99
+ };
100
+ };
101
+ stackedHeader: {
102
+ display: string;
103
+ justifyContent: string;
104
+ alignItems: string;
105
+ gap: number;
106
+ };
107
+ stackedTotal: {
108
+ color: string;
109
+ fontWeight: string;
110
+ fontVariantNumeric: string;
111
+ minWidth: number;
112
+ textAlign: string;
113
+ };
114
+ stackedBreakdown: {
115
+ display: string;
116
+ flexWrap: string;
117
+ columnGap: number;
118
+ rowGap: number;
119
+ };
120
+ stackedBreakdownItem: {
121
+ color: string;
122
+ fontVariantNumeric: string;
123
+ };
124
+ legend: {
125
+ display: string;
126
+ alignItems: string;
127
+ gap: number;
128
+ flexWrap: string;
129
+ pt: number;
130
+ mt: number;
131
+ position: string;
132
+ bottom: number;
133
+ bgcolor: string;
134
+ borderTop: (theme: Theme) => string;
135
+ };
136
+ legendItem: {
137
+ display: string;
138
+ alignItems: string;
139
+ gap: number;
140
+ };
141
+ legendDot: {
142
+ width: number;
143
+ height: number;
144
+ borderRadius: string;
145
+ };
146
+ legendLabel: {
147
+ color: string;
148
+ textTransform: string;
149
+ fontWeight: string;
150
+ };
151
+ otherRow: {
152
+ display: string;
153
+ justifyContent: string;
154
+ alignItems: string;
155
+ py: number;
156
+ px: number;
157
+ };
158
+ otherLabel: {
159
+ fontStyle: string;
160
+ color: string;
161
+ fontWeight: string;
162
+ };
163
+ otherCount: {
164
+ color: string;
165
+ };
166
+ };
@@ -0,0 +1,53 @@
1
+ import { WidgetSeries } from '../types';
2
+ /** A single row in a Category widget. `name` is the category key. */
3
+ export interface CategoryDataItem {
4
+ name: string | number;
5
+ value: number;
6
+ /** Optional per-row color override (wins over series + palette). */
7
+ color?: string;
8
+ }
9
+ /**
10
+ * Category widget data — array of series, each a flat list of `{name, value}`.
11
+ *
12
+ * Single-series (`data.length === 1`) renders one bar per row.
13
+ * Multi-series (`data.length > 1`) groups items by `name` across series and
14
+ * renders N vertically-stacked bars per row, with a sticky legend at the
15
+ * bottom when `series` metadata is supplied.
16
+ */
17
+ export type CategoryWidgetData = readonly (readonly CategoryDataItem[])[];
18
+ /**
19
+ * The keyspace of selectable items. Per the destination-owned selection
20
+ * principle, the consumer keeps this in their own store.
21
+ */
22
+ export type CategoryKey = string | number;
23
+ /**
24
+ * Per-series metadata. Supplied to enable the legend and override the
25
+ * auto-assigned palette color for a given series index. Length should
26
+ * mirror `data.length` for a full legend; shorter/longer arrays degrade
27
+ * gracefully (extra entries ignored; missing entries get palette
28
+ * defaults and are absent from the legend).
29
+ */
30
+ /**
31
+ * Per-series metadata. Type alias of the cross-widget
32
+ * {@link WidgetSeries} shape (`{ name, color? }`) so Category, Formula,
33
+ * Spread, and the echart-based widgets all consume the same input
34
+ * shape. Kept as a named export for backwards compatibility.
35
+ */
36
+ export type CategorySeriesConfig = WidgetSeries;
37
+ /**
38
+ * Labels for the "Other" overflow row (rendered when `data.length`
39
+ * exceeds `maxItems`). `{count}` in `otherCount` is replaced with the
40
+ * number of hidden categories.
41
+ */
42
+ export interface CategoryLabels {
43
+ other?: string;
44
+ otherCount?: string;
45
+ }
46
+ /**
47
+ * Visual density of the bar primitive. `'small'` (default) keeps the
48
+ * original 4px-tall, fully-rounded track. `'medium'` renders a 12px-tall
49
+ * track with a 2px corner radius (squarer affordance for denser layouts).
50
+ * Only the bar track + fill are affected — row layout, label typography,
51
+ * value column, legend, and hover affordance are unchanged.
52
+ */
53
+ export type CategorySize = 'small' | 'medium';