@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,11 @@
1
+ import { SxProps, Theme } from '@mui/material';
2
+ import { ReactNode } from 'react';
3
+ export interface SubheaderProps {
4
+ sx?: SxProps<Theme>;
5
+ children: ReactNode;
6
+ }
7
+ /**
8
+ * Stateless layout: CSS grid `1fr auto`. Children self-place — typically
9
+ * `<Widget.SelectionSummary />` (left) and `<Widget.Toolbox>` (right).
10
+ */
11
+ export declare function Subheader({ sx, children }: SubheaderProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,18 @@
1
+ import { DownloadItem } from '../actions/download';
2
+ import { TableColumn, TableWidgetData } from './types';
3
+ /**
4
+ * Download menu items for the Table widget. Always includes a CSV item
5
+ * that pulls the latest data from the widget store via `getData()` (so
6
+ * locked / sorted / filtered state is honored); headers come from
7
+ * `column.label`, cells from `row[column.id]`. When `getCaptureEl` is
8
+ * supplied, prepends a PNG item that rasterises the captured element via
9
+ * `html2canvas`.
10
+ */
11
+ export declare function createTableDownloadConfig(opts: {
12
+ filename: string;
13
+ getData: () => TableWidgetData;
14
+ columns: readonly TableColumn[];
15
+ getCaptureEl?: () => HTMLElement | null;
16
+ pngPixelRatio?: number;
17
+ pngBackgroundColor?: string | null;
18
+ }): DownloadItem[];
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,32 @@
1
+ import { TableColumn, TableRow, TableSortDirection, TableWidgetData } from './types';
2
+ /**
3
+ * Compares two values with a consistent ordering across primitive types.
4
+ * Strings use locale comparison; numbers subtract; booleans rank false < true;
5
+ * objects/arrays compare by JSON serialization. Null/undefined sort to the end
6
+ * regardless of direction.
7
+ */
8
+ export declare function compareValues(a: unknown, b: unknown, direction: TableSortDirection): number;
9
+ /** Returns a new array sorted by the named column. Does not mutate the input. */
10
+ export declare function sortRows<T extends TableRow>(rows: readonly T[], columnId: string, direction: TableSortDirection): T[];
11
+ /** Returns the slice for the requested page. Out-of-range pages return []. */
12
+ export declare function paginateRows<T>(rows: readonly T[], page: number, pageSize: number): T[];
13
+ /**
14
+ * Resolves the effective column list. When the widget store has a
15
+ * `columnOrder` set (e.g. ChangeColumn was used), the column array is
16
+ * reordered to match. Unknown ids in the order are skipped; columns not
17
+ * present in the order keep their original relative position at the end.
18
+ */
19
+ export declare function resolveColumns(columns: readonly TableColumn[], columnOrder: readonly string[] | undefined): readonly TableColumn[];
20
+ /** Applies sort and pagination to the input data. Pure. */
21
+ export declare function deriveVisibleRows<T extends TableRow>(rows: readonly T[], options: {
22
+ sort?: {
23
+ columnId: string | null;
24
+ direction: TableSortDirection;
25
+ };
26
+ page: number;
27
+ pageSize: number;
28
+ }): {
29
+ sorted: readonly T[];
30
+ visible: T[];
31
+ };
32
+ export declare function tableDataToCsv(data: TableWidgetData, columns: readonly TableColumn[]): string;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,7 @@
1
+ export { Table, type TableProps } from './table';
2
+ export { TableUI, type TableUIProps } from './table-ui';
3
+ export { TableSkeleton, type TableSkeletonProps } from './skeleton';
4
+ export { createTableDownloadConfig } from './download';
5
+ export { compareValues, sortRows, paginateRows, resolveColumns, deriveVisibleRows, tableDataToCsv, } from './helpers';
6
+ export { DEFAULT_TABLE_LABELS, type TableLabels } from './labels';
7
+ export { DEFAULT_TABLE_PAGE_SIZE, DEFAULT_TABLE_PAGE_SIZE_OPTIONS, type TableColumn, type TableRow, type TableWidgetData, type TableWidgetState, type TableSortDirection, type TableSortState, } from './types';
@@ -0,0 +1,22 @@
1
+ import { ReactNode } from 'react';
2
+ export interface TableLabels {
3
+ selectAll: string;
4
+ selectRow: (rowId: string | number) => string;
5
+ rowsPerPage: string;
6
+ /**
7
+ * Renders the displayed-rows summary in the pagination footer. Returns
8
+ * a `ReactNode` so the default can emphasise the active range
9
+ * (`from-to`) with a bolder weight while keeping the trailing
10
+ * ` of total` muted. Override to localise wording or restyle.
11
+ */
12
+ paginationOf: (from: number, to: number, total: number) => ReactNode;
13
+ /** aria-label for the first-page pagination button. */
14
+ firstPage: string;
15
+ /** aria-label for the previous-page pagination button. */
16
+ previousPage: string;
17
+ /** aria-label for the next-page pagination button. */
18
+ nextPage: string;
19
+ /** aria-label for the last-page pagination button. */
20
+ lastPage: string;
21
+ }
22
+ export declare const DEFAULT_TABLE_LABELS: TableLabels;
@@ -0,0 +1,22 @@
1
+ import { TableProps as MuiTableProps } from '@mui/material';
2
+ export interface TableSkeletonProps {
3
+ /** Number of body rows to render. Defaults to `5` (matches v1). */
4
+ rows?: number;
5
+ /** Number of columns to render. Defaults to `4` (matches v1). */
6
+ columns?: number;
7
+ /**
8
+ * Forwarded to MUI's `<Table size>` so the loading layout matches the
9
+ * size you'll render in {@link TableUI}. Leave `undefined` (the
10
+ * default) to use MUI's own default density.
11
+ */
12
+ size?: MuiTableProps['size'];
13
+ }
14
+ /**
15
+ * Loading placeholder for the Table widget. Renders the same MUI table
16
+ * primitives that {@link TableUI} uses so the loading layout (column
17
+ * widths, header band, row density) doesn't shift when data resolves.
18
+ *
19
+ * Mirrors the v1 widget's `<TableSkeleton>` structure with v2's themed
20
+ * `styles.headerCell`.
21
+ */
22
+ export declare function TableSkeleton({ rows, columns, size, }: TableSkeletonProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,40 @@
1
+ export declare const styles: {
2
+ container: {
3
+ width: string;
4
+ overflowX: "auto";
5
+ };
6
+ table: {
7
+ minWidth: number;
8
+ };
9
+ headerCell: {
10
+ fontWeight: number;
11
+ backgroundColor: "background.paper";
12
+ };
13
+ /**
14
+ * Strip the bottom border from the last body row so the body flushes
15
+ * against the pagination border instead of doubling it up. Mirrors v1.
16
+ */
17
+ row: {
18
+ '&:last-child td, &:last-child th': {
19
+ border: number;
20
+ };
21
+ };
22
+ rowClickable: {
23
+ cursor: "pointer";
24
+ };
25
+ pagination: {
26
+ borderTop: string;
27
+ borderColor: "divider";
28
+ };
29
+ paginationActions: {
30
+ display: "flex";
31
+ alignItems: "center";
32
+ gap: number;
33
+ ml: number;
34
+ };
35
+ empty: {
36
+ textAlign: "center";
37
+ color: "text.secondary";
38
+ py: number;
39
+ };
40
+ };
@@ -0,0 +1,44 @@
1
+ import { TableProps as MuiTableProps } from '@mui/material';
2
+ import { TableLabels } from './labels';
3
+ import { TableColumn, TableRow, TableSortState } from './types';
4
+ export interface TableUIProps<T extends TableRow = TableRow> {
5
+ columns: readonly TableColumn[];
6
+ /** Already-paginated, already-sorted rows for the current view. */
7
+ rows: readonly T[];
8
+ /** Total row count (across all pages). Required for pagination footer. */
9
+ total: number;
10
+ page: number;
11
+ pageSize: number;
12
+ pageSizeOptions?: readonly number[];
13
+ sort?: TableSortState;
14
+ /**
15
+ * Column name to use as the row identity. Drives selection lookup,
16
+ * React keys, and aria labels. Defaults to `'id'` — point it at
17
+ * another column when your rows don't carry an `id` field.
18
+ */
19
+ keyColumn?: string;
20
+ /** Selected row ids. Destination-owned. */
21
+ selection?: readonly (string | number)[];
22
+ selectable?: boolean;
23
+ onSortChange?: (next: TableSortState) => void;
24
+ onPageChange?: (page: number) => void;
25
+ onPageSizeChange?: (pageSize: number) => void;
26
+ onSelectionChange?: (next: readonly (string | number)[]) => void;
27
+ onRowClick?: (row: T) => void;
28
+ onRowHover?: (row: T | null) => void;
29
+ labels?: Partial<TableLabels>;
30
+ /** Row rendered when `rows` is empty for the current page. */
31
+ emptyContent?: React.ReactNode;
32
+ /**
33
+ * Forwarded to MUI's `<Table size>` — `'small'` for compact rows,
34
+ * `'medium'` for the default density. Leave `undefined` (the default)
35
+ * to let MUI's own default kick in.
36
+ */
37
+ size?: MuiTableProps['size'];
38
+ }
39
+ /**
40
+ * Pure renderer for a paginated, sortable, optionally-selectable table.
41
+ * Has no widget-store coupling — `<Table>` (the bridge) reads from the store
42
+ * and feeds this UI with already-projected data.
43
+ */
44
+ export declare function TableUI<T extends TableRow = TableRow>({ columns, rows, total, page, pageSize, pageSizeOptions, sort, keyColumn, selection, selectable, onSortChange, onPageChange, onPageSizeChange, onSelectionChange, onRowClick, onRowHover, labels, emptyContent, size, }: TableUIProps<T>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,50 @@
1
+ import { TableUIProps } from './table-ui';
2
+ import { TableColumn, TableRow, TableSortState } from './types';
3
+ export interface TableProps<T extends TableRow = TableRow> extends Pick<TableUIProps<T>, 'pageSizeOptions' | 'selectable' | 'labels' | 'emptyContent' | 'size' | 'keyColumn'> {
4
+ /**
5
+ * Column definitions. Order can be overridden by ChangeColumn via the
6
+ * `columnOrder` field on the extended widget state.
7
+ */
8
+ columns: readonly TableColumn[];
9
+ /**
10
+ * When set, render only the first `visibleColumns` entries **after**
11
+ * applying the user's `columnOrder` from the store. Useful for showing
12
+ * a compact projection while letting consumers (e.g. `Widget.ChangeColumn`)
13
+ * see the full column list. When omitted, every column renders.
14
+ */
15
+ visibleColumns?: number;
16
+ /** Initial page size (only on first mount; afterwards lives on the store). */
17
+ initialPageSize?: number;
18
+ /** Selected row ids (destination-owned). */
19
+ selection?: readonly (string | number)[];
20
+ onSelectionChange?: (next: readonly (string | number)[]) => void;
21
+ onRowClick?: (row: T) => void;
22
+ onRowHover?: (row: T | null) => void;
23
+ /**
24
+ * When `true`, the bridge stops sorting and paginating locally and
25
+ * renders `data` as-is — the consumer is then responsible for
26
+ * refetching the slice that matches the active `page` / `pageSize` /
27
+ * `sort` from the outbound callbacks below. `total` is required in
28
+ * this mode (the server already knows the full row count; the
29
+ * widget can't infer it from a partial page).
30
+ */
31
+ remote?: boolean;
32
+ /**
33
+ * Server-reported total row count. Required when `remote === true`;
34
+ * ignored in local mode (where the bridge derives total from the
35
+ * sorted result of `deriveVisibleRows`).
36
+ */
37
+ total?: number;
38
+ /** Fires after the store-level sort write so the consumer can refetch. */
39
+ onSortChange?: (next: TableSortState) => void;
40
+ /** Fires after the store-level page write so the consumer can refetch. */
41
+ onPageChange?: (page: number) => void;
42
+ /** Fires after the store-level pageSize write so the consumer can refetch. */
43
+ onPageSizeChange?: (pageSize: number) => void;
44
+ }
45
+ /**
46
+ * Bridge component — reads the widget store's `data`, applies sort + pagination
47
+ * locally, and feeds `<TableUI />`. Sort, page, and pageSize live on the
48
+ * extended widget state ({@link TableWidgetState}).
49
+ */
50
+ export declare function Table<T extends TableRow = TableRow>({ columns, visibleColumns, initialPageSize, selection, onSelectionChange, onRowClick, onRowHover, remote, total: remoteTotal, onSortChange, onPageChange, onPageSizeChange, ...uiProps }: TableProps<T>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,48 @@
1
+ import { ReactNode } from 'react';
2
+ import { WidgetState } from '../stores';
3
+ /**
4
+ * Single row of tabular data.
5
+ *
6
+ * The default row-identity column is `id`. Consumers that don't have a
7
+ * literal `id` field can point `<Table>` / `<TableUI>` at a different
8
+ * column via the `keyColumn` prop; the library reads `row[keyColumn]`
9
+ * for selection lookup, React keys, and aria labels.
10
+ */
11
+ export interface TableRow extends Record<string, unknown> {
12
+ /**
13
+ * Default row identity. Required when no `keyColumn` is configured.
14
+ * Omit when wiring `keyColumn` to a different column.
15
+ */
16
+ id?: string | number;
17
+ }
18
+ export type TableWidgetData = readonly TableRow[];
19
+ export type TableSortDirection = 'asc' | 'desc';
20
+ export interface TableSortState {
21
+ columnId: string | null;
22
+ direction: TableSortDirection;
23
+ }
24
+ export interface TableColumn {
25
+ /** Unique column identifier; matches the field name on each row. */
26
+ id: string;
27
+ /** Header label. */
28
+ label: ReactNode;
29
+ align?: 'left' | 'center' | 'right';
30
+ width?: number | string;
31
+ sortable?: boolean;
32
+ /** Custom cell renderer. Falls back to a string-cast of the raw value. */
33
+ formatter?: (value: unknown, row: TableRow) => ReactNode;
34
+ }
35
+ /**
36
+ * State extension carrying Table-specific UI state on the per-widget store.
37
+ * Per R12: widget-specific UI state lives in widget-specific extensions of
38
+ * `WidgetState`, not on the base type.
39
+ */
40
+ export interface TableWidgetState extends WidgetState {
41
+ /** Optional reordered column list driven by ChangeColumn. Falls back to props. */
42
+ columnOrder?: readonly string[];
43
+ sort?: TableSortState;
44
+ page: number;
45
+ pageSize: number;
46
+ }
47
+ export declare const DEFAULT_TABLE_PAGE_SIZE = 10;
48
+ export declare const DEFAULT_TABLE_PAGE_SIZE_OPTIONS: readonly [10, 25, 50, 100];
@@ -0,0 +1,52 @@
1
+ import { vi } from 'vitest';
2
+ import { ECharts, EChartsOption } from 'echarts';
3
+ import { WidgetState, WidgetStoreApi } from './stores';
4
+ export interface MockChartHandlers {
5
+ finished?: () => void;
6
+ rendered?: () => void;
7
+ click?: (params: unknown) => void;
8
+ globalcursortaken?: (params: unknown) => void;
9
+ datazoom?: (params: unknown) => void;
10
+ brushselected?: (params: unknown) => void;
11
+ brushend?: (params: unknown) => void;
12
+ [key: string]: ((params?: unknown) => void) | undefined;
13
+ }
14
+ export interface MockChart {
15
+ dispatchAction: ReturnType<typeof vi.fn>;
16
+ setOption: ReturnType<typeof vi.fn>;
17
+ getOption: ReturnType<typeof vi.fn>;
18
+ resize: ReturnType<typeof vi.fn>;
19
+ clear: ReturnType<typeof vi.fn>;
20
+ dispose: ReturnType<typeof vi.fn>;
21
+ isDisposed: ReturnType<typeof vi.fn>;
22
+ getWidth: ReturnType<typeof vi.fn>;
23
+ getHeight: ReturnType<typeof vi.fn>;
24
+ getDom: ReturnType<typeof vi.fn>;
25
+ on: (event: string, callback: (params?: unknown) => void) => void;
26
+ off: (event: string, callback?: (params?: unknown) => void) => void;
27
+ __handlers: MockChartHandlers;
28
+ __emit: (event: keyof MockChartHandlers, params?: unknown) => void;
29
+ }
30
+ /**
31
+ * Returns a duck-typed `ECharts` instance suitable for tests. The instance
32
+ * captures `on()` handlers in `__handlers` so tests can `__emit('finished')`
33
+ * directly, and all imperative methods (`dispatchAction`, `setOption`,
34
+ * `resize`, …) are `vi.fn()` spies.
35
+ */
36
+ export declare function createMockChart(): MockChart;
37
+ /** Convenience cast for tests that need an `ECharts`-typed reference. */
38
+ export declare const asEcharts: (chart: MockChart) => ECharts;
39
+ /**
40
+ * Returns a `vi.fn()` option factory. The factory takes the standard
41
+ * `(option, data, ctx)` signature and returns the supplied `output` unchanged.
42
+ * Useful when the test only cares about how the bridge wires the factory in.
43
+ */
44
+ export declare function createMockOptionFactory(output?: EChartsOption): import('vitest').Mock<() => EChartsOption>;
45
+ /**
46
+ * Typed re-export of `getWidgetStore(id).getState()` — the verbose form
47
+ * shows up dozens of times across the suite. Tests that need the store
48
+ * api itself (`setState`, `subscribe`) still call `getWidgetStore(id)`.
49
+ */
50
+ export declare function getState(id: string): WidgetState;
51
+ /** Typed re-export of `getWidgetStore(id)` for tests that need the api. */
52
+ export declare function getStore(id: string): WidgetStoreApi;
@@ -0,0 +1,17 @@
1
+ import { DownloadItem } from '../actions/download';
2
+ import { TimeseriesWidgetData } from './types';
3
+ /**
4
+ * Download menu items for the Timeseries widget. Always includes a CSV
5
+ * item with `time, series_1, series_2, …` columns (one row per unique time
6
+ * across all series; ISO-8601 strings for `Date`/numeric times). When
7
+ * `getCaptureEl` is supplied, prepends a PNG item that rasterises the
8
+ * captured element via `html2canvas`.
9
+ */
10
+ export declare function createTimeseriesDownloadConfig(args: {
11
+ filename: string;
12
+ getData: () => TimeseriesWidgetData;
13
+ seriesNames?: readonly string[];
14
+ getCaptureEl?: () => HTMLElement | null;
15
+ pngPixelRatio?: number;
16
+ pngBackgroundColor?: string | null;
17
+ }): DownloadItem[];
@@ -0,0 +1,4 @@
1
+ export { timeseriesOptions, createTimeseriesOptionFactory } from './options';
2
+ export { TimeseriesSkeleton } from './skeleton';
3
+ export { createTimeseriesDownloadConfig } from './download';
4
+ export type { TimeseriesDatum, TimeseriesWidgetData, TimeseriesOptionsInput, TimeseriesOptionFactoryInput, TimeseriesEChartsOption, } from './types';
@@ -0,0 +1,39 @@
1
+ import { OptionFactory } from '../echart';
2
+ import { TimeseriesEChartsOption, TimeseriesOptionFactoryInput, TimeseriesOptionsInput } from './types';
3
+ /**
4
+ * Builds the **structural** ECharts option for a timeseries widget —
5
+ * time x-axis, value y-axis, themed tooltip, themed legend, CARTO color
6
+ * palette. Mirrors {@link import('../bar/options').barOptions} so all
7
+ * four ECharts widgets share v1 look-and-feel.
8
+ *
9
+ * Intentional deviations from bar (timeseries-specific):
10
+ * - **X-axis is `type: 'time'`** (not 'category'). ECharts handles
11
+ * uneven sample spacing and zoom-level-aware label formatting.
12
+ * `labelFormatter` is wrapped so the consumer sees a `Date`, not
13
+ * a numeric timestamp.
14
+ * - **Tooltip body reads `{ name, value }` rows**, same as bar, but
15
+ * the `name` may arrive as `Date | number | string`. The
16
+ * `labelFormatter` receives a `Date` regardless.
17
+ *
18
+ * Intentionally data-agnostic: no series, no dataset, no `legend.show`
19
+ * (those depend on data and are added by the option factory's merge
20
+ * phase via {@link createTimeseriesOptionFactory}).
21
+ */
22
+ export declare function timeseriesOptions({ theme, formatter, labelFormatter, }: TimeseriesOptionsInput): TimeseriesEChartsOption;
23
+ /**
24
+ * Returns the timeseries widget's {@link OptionFactory} — one closure
25
+ * that owns BOTH phases of option construction:
26
+ *
27
+ * - **Structural phase** (`option == null`) — builds the theme-aware
28
+ * structural option via {@link timeseriesOptions}, optionally merging
29
+ * the consumer-supplied `optionsOverride`. Called once by Provider to
30
+ * seed `rawOptions` in the store.
31
+ * - **Merge phase** (`option != null`) — fuses post-pipeline `state.data`
32
+ * (`TimeseriesWidgetData`) into the option via the dataset API: one
33
+ * dataset per series, each series referencing its dataset by index,
34
+ * encoded by `name` (x — time) and `value` (y). Mirrors {@link import('../bar/options').createBarOptionFactory}:
35
+ * series-template merge for `addStack`, reactive formatters from
36
+ * `ctx`, `niceNum`-rounded y-axis bounds at fusion time, and
37
+ * `positionDataZoomForLegend` layout for ZoomToggle sliders.
38
+ */
39
+ export declare function createTimeseriesOptionFactory(options: TimeseriesOptionFactoryInput): OptionFactory;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Loading state for the Timeseries widget. Mirrors a line chart's
3
+ * silhouette — three thin horizontal segments at staggered offsets to
4
+ * suggest a moving line, plus a 2-dot legend stub. Sibling-consistent
5
+ * with Bar / Histogram / Scatter skeletons (column-flex container with
6
+ * legend strip below).
7
+ */
8
+ export declare function TimeseriesSkeleton(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,60 @@
1
+ import { Theme } from '@mui/material';
2
+ import { EChartsOption } from 'echarts';
3
+ import { WidgetSeries } from '../types';
4
+ /**
5
+ * A single point on a time series. `name` is the time coordinate — accepts a
6
+ * Date object, a number (ms-since-epoch), or an ISO-8601 string. ECharts'
7
+ * time axis parses any of these.
8
+ */
9
+ export interface TimeseriesDatum {
10
+ name: Date | number | string;
11
+ value: number;
12
+ }
13
+ /** Timeseries widget data — one array of points per series. */
14
+ export type TimeseriesWidgetData = readonly (readonly TimeseriesDatum[])[];
15
+ /** Inputs to the structural-only {@link timeseriesOptions} builder. */
16
+ export interface TimeseriesOptionsInput {
17
+ theme: Theme;
18
+ formatter?: (value: number) => string;
19
+ /** Optional formatter for the time-axis tick labels. Receives a JS Date. */
20
+ labelFormatter?: (value: Date) => string;
21
+ }
22
+ /**
23
+ * Combined inputs for the timeseries option factory creator. Carries
24
+ * everything the widget needs across BOTH phases — the structural-build
25
+ * (`theme`, `formatter`, `labelFormatter`, `optionsOverride`) AND the
26
+ * data merge (`series`, `smooth`, `area`, `selection`).
27
+ */
28
+ export interface TimeseriesOptionFactoryInput {
29
+ theme: Theme;
30
+ formatter?: (value: number) => string;
31
+ /**
32
+ * Time-axis label formatter (also used in the tooltip name). Receives
33
+ * a JS Date — applied both at structural-build time (x-axis ticks) and
34
+ * at fusion time (tooltip name) so the date-aware labeling survives
35
+ * RelativeData's reactive formatter swaps.
36
+ */
37
+ labelFormatter?: (value: Date) => string;
38
+ /**
39
+ * Per-series metadata — drives the legend, `series[i].name`, and
40
+ * (when `color` is set) per-series line + marker colour overrides.
41
+ */
42
+ series?: readonly WidgetSeries[];
43
+ /** Smooth lines (default `true`). */
44
+ smooth?: boolean;
45
+ /** Filled area below each line (default `false`). */
46
+ area?: boolean;
47
+ /**
48
+ * Selected point keys (matched against `TimeseriesDatum.name`; `Date`
49
+ * names are normalized to ms-since-epoch). Points not in this list render
50
+ * dimmed (`itemStyle.opacity: 0.15`). `null`/empty means no selection.
51
+ */
52
+ selection?: readonly (string | number)[] | null;
53
+ /**
54
+ * Consumer-supplied partial option merged into the structural option at
55
+ * structural-build time. Lets stories override pieces of the theme-aware
56
+ * base without forking the structural builder.
57
+ */
58
+ optionsOverride?: Partial<EChartsOption>;
59
+ }
60
+ export type TimeseriesEChartsOption = EChartsOption;
@@ -0,0 +1,5 @@
1
+ export interface ToolboxLabels {
2
+ trigger: string;
3
+ close: string;
4
+ }
5
+ export declare const DEFAULT_TOOLBOX_LABELS: ToolboxLabels;
@@ -0,0 +1,30 @@
1
+ export declare const styles: {
2
+ root: {
3
+ display: "flex";
4
+ alignItems: "center";
5
+ gap: number;
6
+ width: string;
7
+ borderRadius: number;
8
+ gridColumn: number;
9
+ height: string;
10
+ };
11
+ preview: {
12
+ display: "flex";
13
+ alignItems: "center";
14
+ gap: number;
15
+ };
16
+ triggerActive: {
17
+ bgcolor: "primary.relatedLight";
18
+ };
19
+ paper: {
20
+ display: "flex";
21
+ alignItems: "center";
22
+ gap: number;
23
+ px: number;
24
+ py: number;
25
+ mx: number;
26
+ mt: string;
27
+ bgcolor: "background.paper";
28
+ borderRadius: number;
29
+ };
30
+ };
@@ -0,0 +1,49 @@
1
+ import { ComponentType, ReactNode } from 'react';
2
+ import { SvgIconProps, SxProps, Theme } from '@mui/material';
3
+ import { ToolboxLabels } from './labels';
4
+ export interface ToolboxProps {
5
+ /**
6
+ * Maximum number of (non-`data-toolbar-hidden`) children rendered inline
7
+ * when collapsed. Excess children are revealed via the overflow trigger
8
+ * inside a floating Paper. When omitted, all children render inline.
9
+ */
10
+ visibleCount?: number;
11
+ labels?: Partial<ToolboxLabels>;
12
+ /**
13
+ * Glyph used for the closed-state trigger. Defaults to the meridian-ds
14
+ * `WidgetOptions` icon (matches v1's `ToolbarActions`).
15
+ */
16
+ icon?: ComponentType<SvgIconProps>;
17
+ iconProps?: SvgIconProps;
18
+ /**
19
+ * Side the overflow Paper opens toward. `'right'` (default) places the
20
+ * trigger on the left and the Paper covers the row to the right;
21
+ * `'left'` is the mirror.
22
+ */
23
+ direction?: 'left' | 'right';
24
+ sx?: SxProps<Theme>;
25
+ children: ReactNode;
26
+ }
27
+ /**
28
+ * Smart overflow toolbar with **single-mount** items. Children mount once
29
+ * into a stable, hidden host element and are *physically reparented* via
30
+ * `appendChild` between the inline preview area and the overflow `<Paper>`
31
+ * as the popper opens / closes — same pattern as `Widget.FullScreen.Slot`.
32
+ * Items with no inline space when closed are kept mounted but visually
33
+ * hidden via `display: none`.
34
+ *
35
+ * Why this matters: every toggle's `useTransform` registers a config /
36
+ * data transform on mount and removes it on unmount. If items remounted
37
+ * on each open / close, the brief setup → cleanup window would re-emit
38
+ * the pipeline (transform missing → transform present), causing a visible
39
+ * flicker on state-bearing transforms (Stack, Zoom, RelativeData). With
40
+ * stable mounts the transform stays registered across the whole popover
41
+ * lifecycle.
42
+ *
43
+ * Children flagged with `data-toolbar-hidden` (e.g. dividers) skip the
44
+ * visibility budget but still render in their natural position. Trailing
45
+ * hidden items past the budget are excluded from the inline preview so
46
+ * they don't appear as orphan separators in the inline row; they're still
47
+ * there in the popover.
48
+ */
49
+ export declare function Toolbox({ visibleCount, labels, icon: Icon, iconProps, direction, sx, children, }: ToolboxProps): import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Canonical cross-widget series metadata.
3
+ *
4
+ * Every widget that can carry multiple series (Bar, Pie, Histogram,
5
+ * Scatterplot, Timeseries, Category, Formula, Spread) accepts a
6
+ * `series: readonly WidgetSeries[]` prop. The `name` drives legends,
7
+ * tooltips, and category-row avatars; the optional `color` overrides
8
+ * the default palette assignment.
9
+ *
10
+ * For backward compatibility, the widget-specific names
11
+ * (`FormulaSeries`, `CategorySeriesConfig`) are kept as type aliases of
12
+ * `WidgetSeries` — see `formula/types.ts` and `category/types.ts`.
13
+ *
14
+ * Colours accept MUI theme paths (e.g. `'primary.main'`) as well as raw
15
+ * CSS strings (`'#ff0000'`, `'rgb(…)'`). The echart-based widgets
16
+ * resolve them through `resolveThemeColor` (see
17
+ * `widgets-v2/utils/resolve-theme-color.ts`); Category and Formula/Spread
18
+ * resolve them implicitly via MUI's `sx` prop.
19
+ */
20
+ export interface WidgetSeries {
21
+ /** Display name — drives legend, tooltip, and avatar glyphs. */
22
+ name: string;
23
+ /** Optional colour override. MUI theme path or raw CSS string. */
24
+ color?: string;
25
+ }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * If the option includes a `dataZoom` array (from ZoomToggle's transform),
3
+ * lift any slider entries above the legend row so they don't overlap.
4
+ * Returns `null` when there is no `dataZoom` — caller skips the layout
5
+ * adjustment entirely.
6
+ *
7
+ * Shared between bar, histogram, and timeseries — every widget with a
8
+ * horizontal x-axis dataZoom slider needs the same offset when a legend
9
+ * is rendered below the plot.
10
+ */
11
+ export declare function positionDataZoomForLegend(dataZoom: unknown, hasLegend: boolean): unknown[] | null;
@@ -0,0 +1,3 @@
1
+ export { mergeOptions } from './merge-options';
2
+ export { positionDataZoomForLegend } from './data-zoom-layout';
3
+ export { resolveThemeColor } from './resolve-theme-color';
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Shallow-merges two ECharts option objects:
3
+ * - Top-level keys from both are combined.
4
+ * - Arrays are merged by index (element-wise shallow merge, primitive override).
5
+ * - Plain objects are shallow-merged.
6
+ * - Primitives are overridden by the override value.
7
+ *
8
+ * Designed for the two-stage memoization pattern: first build a base option
9
+ * object from data + theme + formatters, then call `mergeOptions(base, override)`
10
+ * inside a second `useMemo` keyed on `[base, override]`.
11
+ */
12
+ export declare function mergeOptions<T extends Record<string, unknown>>(base: T, override?: Partial<T>): T;