@carto/ps-react-ui 4.7.1 → 4.8.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 (574) 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/merge-options-DCkkHZIf.js +34 -0
  16. package/dist/merge-options-DCkkHZIf.js.map +1 -0
  17. package/dist/{styles-BYTyKQFP.js → option-builders-F-c9ELi1.js} +25 -45
  18. package/dist/option-builders-F-c9ELi1.js.map +1 -0
  19. package/dist/png-item-CS4z1iSH.js +45 -0
  20. package/dist/png-item-CS4z1iSH.js.map +1 -0
  21. package/dist/range-DsqTjSpg.js +186 -0
  22. package/dist/range-DsqTjSpg.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-HIpXuq4G.js +390 -0
  30. package/dist/table-HIpXuq4G.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 +41 -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 +49 -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 +40 -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 +47 -0
  143. package/dist/types/widgets-v2/index.d.ts +107 -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 +50 -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 +19 -0
  166. package/dist/types/widgets-v2/range/range.d.ts +19 -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 +50 -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 +44 -0
  216. package/dist/types/widgets-v2/table/table-ui.d.ts +38 -0
  217. package/dist/types/widgets-v2/table/table.d.ts +50 -0
  218. package/dist/types/widgets-v2/table/types.d.ts +37 -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 +56 -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/utils/data-zoom-layout.d.ts +11 -0
  231. package/dist/types/widgets-v2/utils/index.d.ts +2 -0
  232. package/dist/types/widgets-v2/utils/merge-options.d.ts +12 -0
  233. package/dist/types/widgets-v2/utils/merge-options.test.d.ts +1 -0
  234. package/dist/types/widgets-v2/wrapper/index.d.ts +4 -0
  235. package/dist/types/widgets-v2/wrapper/labels.d.ts +6 -0
  236. package/dist/types/widgets-v2/wrapper/style.d.ts +111 -0
  237. package/dist/types/widgets-v2/wrapper/widget-actions.d.ts +22 -0
  238. package/dist/types/widgets-v2/wrapper/widget-content.d.ts +12 -0
  239. package/dist/types/widgets-v2/wrapper/widget-wrapper.d.ts +51 -0
  240. package/dist/use-transform-DXPN3nY7.js +110 -0
  241. package/dist/use-transform-DXPN3nY7.js.map +1 -0
  242. package/dist/widget-context-DTGO0Yta.js +13 -0
  243. package/dist/widget-context-DTGO0Yta.js.map +1 -0
  244. package/dist/widget-store-registry-_W4Z4xp-.js +178 -0
  245. package/dist/widget-store-registry-_W4Z4xp-.js.map +1 -0
  246. package/dist/widgets/bar.js +14 -13
  247. package/dist/widgets/bar.js.map +1 -1
  248. package/dist/widgets/histogram.js +8 -7
  249. package/dist/widgets/histogram.js.map +1 -1
  250. package/dist/widgets/pie.js +19 -18
  251. package/dist/widgets/pie.js.map +1 -1
  252. package/dist/widgets/scatterplot.js +8 -7
  253. package/dist/widgets/scatterplot.js.map +1 -1
  254. package/dist/widgets/timeseries.js +11 -10
  255. package/dist/widgets/timeseries.js.map +1 -1
  256. package/dist/widgets/utils.js +8 -7
  257. package/dist/widgets/utils.js.map +1 -1
  258. package/dist/widgets-v2/actions.js +43 -0
  259. package/dist/widgets-v2/actions.js.map +1 -0
  260. package/dist/widgets-v2/bar.js +327 -0
  261. package/dist/widgets-v2/bar.js.map +1 -0
  262. package/dist/widgets-v2/category.js +104 -0
  263. package/dist/widgets-v2/category.js.map +1 -0
  264. package/dist/widgets-v2/echart.js +57 -0
  265. package/dist/widgets-v2/echart.js.map +1 -0
  266. package/dist/widgets-v2/formula.js +74 -0
  267. package/dist/widgets-v2/formula.js.map +1 -0
  268. package/dist/widgets-v2/histogram.js +350 -0
  269. package/dist/widgets-v2/histogram.js.map +1 -0
  270. package/dist/widgets-v2/markdown.js +68 -0
  271. package/dist/widgets-v2/markdown.js.map +1 -0
  272. package/dist/widgets-v2/pie.js +381 -0
  273. package/dist/widgets-v2/pie.js.map +1 -0
  274. package/dist/widgets-v2/range.js +52 -0
  275. package/dist/widgets-v2/range.js.map +1 -0
  276. package/dist/widgets-v2/scatterplot.js +405 -0
  277. package/dist/widgets-v2/scatterplot.js.map +1 -0
  278. package/dist/widgets-v2/spread.js +72 -0
  279. package/dist/widgets-v2/spread.js.map +1 -0
  280. package/dist/widgets-v2/stores.js +42 -0
  281. package/dist/widgets-v2/stores.js.map +1 -0
  282. package/dist/widgets-v2/table.js +78 -0
  283. package/dist/widgets-v2/table.js.map +1 -0
  284. package/dist/widgets-v2/timeseries.js +352 -0
  285. package/dist/widgets-v2/timeseries.js.map +1 -0
  286. package/dist/widgets-v2/utils.js +7 -0
  287. package/dist/widgets-v2/utils.js.map +1 -0
  288. package/dist/widgets-v2.js +953 -0
  289. package/dist/widgets-v2.js.map +1 -0
  290. package/package.json +73 -5
  291. package/src/components/lasso-tool/chip.test.tsx +176 -0
  292. package/src/components/lasso-tool/lasso-tool-inline.test.tsx +171 -0
  293. package/src/components/lasso-tool/lasso-tool.test.tsx +198 -0
  294. package/src/components/list-data/list-data.test.tsx +73 -0
  295. package/src/components/no-data-alert/no-data-alert.test.tsx +38 -0
  296. package/src/components/responsive-drawer/responsive-drawer.test.tsx +68 -0
  297. package/src/widgets/actions/brush-toggle/brush-overlay.test.tsx +465 -0
  298. package/src/widgets/actions/brush-toggle/brush-toggle.test.tsx +208 -0
  299. package/src/widgets/actions/change-column/change-column-dnd.test.tsx +193 -0
  300. package/src/widgets/actions/change-column/sortable-column-item.test.tsx +124 -0
  301. package/src/widgets/actions/zoom-toggle/zoom-toggle.test.tsx +322 -0
  302. package/src/widgets/category/components/category-rows.test.tsx +213 -0
  303. package/src/widgets/echart/utils.test.ts +277 -0
  304. package/src/widgets/formula/config.test.ts +37 -0
  305. package/src/widgets/range/components/range-item.test.tsx +243 -0
  306. package/src/widgets/stores/widget-store-branches.test.ts +275 -0
  307. package/src/widgets/table/config.test.ts +65 -0
  308. package/src/widgets/utils/chart-config/option-builders.test.ts +188 -0
  309. package/src/widgets-v2/PERFORMANCE.md +189 -0
  310. package/src/widgets-v2/actions/brush-toggle/brush-toggle.test.tsx +180 -0
  311. package/src/widgets-v2/actions/brush-toggle/brush-toggle.tsx +154 -0
  312. package/src/widgets-v2/actions/brush-toggle/index.ts +3 -0
  313. package/src/widgets-v2/actions/brush-toggle/labels.ts +9 -0
  314. package/src/widgets-v2/actions/brush-toggle/style.ts +11 -0
  315. package/src/widgets-v2/actions/brush-toggle/transforms.test.ts +47 -0
  316. package/src/widgets-v2/actions/brush-toggle/transforms.ts +31 -0
  317. package/src/widgets-v2/actions/change-column/change-column-icon.tsx +14 -0
  318. package/src/widgets-v2/actions/change-column/change-column.test.tsx +59 -0
  319. package/src/widgets-v2/actions/change-column/change-column.tsx +180 -0
  320. package/src/widgets-v2/actions/change-column/index.ts +7 -0
  321. package/src/widgets-v2/actions/change-column/labels.ts +9 -0
  322. package/src/widgets-v2/actions/change-column/sortable-column-item.tsx +56 -0
  323. package/src/widgets-v2/actions/change-column/style.ts +32 -0
  324. package/src/widgets-v2/actions/change-column/types.ts +11 -0
  325. package/src/widgets-v2/actions/download/download.test.tsx +327 -0
  326. package/src/widgets-v2/actions/download/download.tsx +144 -0
  327. package/src/widgets-v2/actions/download/exports.test.tsx +198 -0
  328. package/src/widgets-v2/actions/download/exports.ts +115 -0
  329. package/src/widgets-v2/actions/download/icons.tsx +26 -0
  330. package/src/widgets-v2/actions/download/index.ts +13 -0
  331. package/src/widgets-v2/actions/download/labels.ts +16 -0
  332. package/src/widgets-v2/actions/download/png-item.test.tsx +72 -0
  333. package/src/widgets-v2/actions/download/png-item.tsx +52 -0
  334. package/src/widgets-v2/actions/download/style.ts +3 -0
  335. package/src/widgets-v2/actions/download/types.ts +32 -0
  336. package/src/widgets-v2/actions/fullscreen/fullscreen.test.tsx +150 -0
  337. package/src/widgets-v2/actions/fullscreen/fullscreen.tsx +230 -0
  338. package/src/widgets-v2/actions/fullscreen/index.ts +7 -0
  339. package/src/widgets-v2/actions/fullscreen/labels.ts +9 -0
  340. package/src/widgets-v2/actions/fullscreen/style.ts +59 -0
  341. package/src/widgets-v2/actions/fullscreen/types.ts +15 -0
  342. package/src/widgets-v2/actions/index.ts +82 -0
  343. package/src/widgets-v2/actions/lock-selection/index.ts +10 -0
  344. package/src/widgets-v2/actions/lock-selection/labels.ts +11 -0
  345. package/src/widgets-v2/actions/lock-selection/lock-selection.test.tsx +187 -0
  346. package/src/widgets-v2/actions/lock-selection/lock-selection.tsx +130 -0
  347. package/src/widgets-v2/actions/lock-selection/style.ts +11 -0
  348. package/src/widgets-v2/actions/lock-selection/transforms.ts +27 -0
  349. package/src/widgets-v2/actions/relative-data/index.ts +3 -0
  350. package/src/widgets-v2/actions/relative-data/labels.ts +9 -0
  351. package/src/widgets-v2/actions/relative-data/relative-data.test.tsx +71 -0
  352. package/src/widgets-v2/actions/relative-data/relative-data.tsx +107 -0
  353. package/src/widgets-v2/actions/relative-data/style.ts +11 -0
  354. package/src/widgets-v2/actions/relative-data/transforms.test.ts +151 -0
  355. package/src/widgets-v2/actions/relative-data/transforms.ts +70 -0
  356. package/src/widgets-v2/actions/searcher/filter.ts +28 -0
  357. package/src/widgets-v2/actions/searcher/index.ts +8 -0
  358. package/src/widgets-v2/actions/searcher/labels.ts +13 -0
  359. package/src/widgets-v2/actions/searcher/searcher-toggle.tsx +91 -0
  360. package/src/widgets-v2/actions/searcher/searcher.test.tsx +92 -0
  361. package/src/widgets-v2/actions/searcher/searcher.tsx +112 -0
  362. package/src/widgets-v2/actions/searcher/style.ts +15 -0
  363. package/src/widgets-v2/actions/stack-toggle/index.ts +3 -0
  364. package/src/widgets-v2/actions/stack-toggle/labels.ts +9 -0
  365. package/src/widgets-v2/actions/stack-toggle/stack-toggle.test.tsx +61 -0
  366. package/src/widgets-v2/actions/stack-toggle/stack-toggle.tsx +54 -0
  367. package/src/widgets-v2/actions/stack-toggle/style.ts +11 -0
  368. package/src/widgets-v2/actions/stack-toggle/transforms.test.ts +43 -0
  369. package/src/widgets-v2/actions/stack-toggle/transforms.ts +25 -0
  370. package/src/widgets-v2/actions/zoom-toggle/index.ts +9 -0
  371. package/src/widgets-v2/actions/zoom-toggle/labels.ts +9 -0
  372. package/src/widgets-v2/actions/zoom-toggle/style.ts +11 -0
  373. package/src/widgets-v2/actions/zoom-toggle/transforms.test.ts +148 -0
  374. package/src/widgets-v2/actions/zoom-toggle/transforms.ts +171 -0
  375. package/src/widgets-v2/actions/zoom-toggle/zoom-toggle.test.tsx +107 -0
  376. package/src/widgets-v2/actions/zoom-toggle/zoom-toggle.tsx +106 -0
  377. package/src/widgets-v2/bar/download.test.tsx +91 -0
  378. package/src/widgets-v2/bar/download.tsx +66 -0
  379. package/src/widgets-v2/bar/index.ts +10 -0
  380. package/src/widgets-v2/bar/options.test.ts +317 -0
  381. package/src/widgets-v2/bar/options.ts +326 -0
  382. package/src/widgets-v2/bar/skeleton.test.tsx +19 -0
  383. package/src/widgets-v2/bar/skeleton.tsx +69 -0
  384. package/src/widgets-v2/bar/types.ts +46 -0
  385. package/src/widgets-v2/category/category-ui.test.tsx +746 -0
  386. package/src/widgets-v2/category/category-ui.tsx +389 -0
  387. package/src/widgets-v2/category/category.relative-data.test.tsx +107 -0
  388. package/src/widgets-v2/category/category.stack-toggle.test.tsx +85 -0
  389. package/src/widgets-v2/category/category.test.tsx +305 -0
  390. package/src/widgets-v2/category/category.tsx +121 -0
  391. package/src/widgets-v2/category/components/category-bar-stacked.test.tsx +121 -0
  392. package/src/widgets-v2/category/components/category-bar-stacked.tsx +73 -0
  393. package/src/widgets-v2/category/components/category-bar.test.tsx +64 -0
  394. package/src/widgets-v2/category/components/category-bar.tsx +49 -0
  395. package/src/widgets-v2/category/components/category-legend.test.tsx +51 -0
  396. package/src/widgets-v2/category/components/category-legend.tsx +39 -0
  397. package/src/widgets-v2/category/components/category-row-multi.tsx +86 -0
  398. package/src/widgets-v2/category/components/category-row-other.test.tsx +28 -0
  399. package/src/widgets-v2/category/components/category-row-other.tsx +33 -0
  400. package/src/widgets-v2/category/components/category-row-single.tsx +76 -0
  401. package/src/widgets-v2/category/components/category-row-stacked.test.tsx +244 -0
  402. package/src/widgets-v2/category/components/category-row-stacked.tsx +99 -0
  403. package/src/widgets-v2/category/download.test.ts +71 -0
  404. package/src/widgets-v2/category/download.ts +54 -0
  405. package/src/widgets-v2/category/index.ts +32 -0
  406. package/src/widgets-v2/category/skeleton.test.tsx +26 -0
  407. package/src/widgets-v2/category/skeleton.tsx +74 -0
  408. package/src/widgets-v2/category/style.ts +290 -0
  409. package/src/widgets-v2/category/types.ts +54 -0
  410. package/src/widgets-v2/echart/echart-ui.test.tsx +232 -0
  411. package/src/widgets-v2/echart/echart-ui.tsx +184 -0
  412. package/src/widgets-v2/echart/echart.test.tsx +229 -0
  413. package/src/widgets-v2/echart/echart.tsx +199 -0
  414. package/src/widgets-v2/echart/index.ts +22 -0
  415. package/src/widgets-v2/echart/shared-resize-observer.test.ts +91 -0
  416. package/src/widgets-v2/echart/shared-resize-observer.ts +56 -0
  417. package/src/widgets-v2/echart/style.ts +8 -0
  418. package/src/widgets-v2/echart/use-chart-selection.test.tsx +118 -0
  419. package/src/widgets-v2/echart/use-chart-selection.ts +115 -0
  420. package/src/widgets-v2/formula/delta.tsx +61 -0
  421. package/src/widgets-v2/formula/download.test.tsx +65 -0
  422. package/src/widgets-v2/formula/download.tsx +69 -0
  423. package/src/widgets-v2/formula/formula-ui.test.tsx +91 -0
  424. package/src/widgets-v2/formula/formula-ui.tsx +66 -0
  425. package/src/widgets-v2/formula/formula.test.tsx +50 -0
  426. package/src/widgets-v2/formula/formula.tsx +34 -0
  427. package/src/widgets-v2/formula/index.ts +17 -0
  428. package/src/widgets-v2/formula/note.tsx +25 -0
  429. package/src/widgets-v2/formula/prefix.tsx +25 -0
  430. package/src/widgets-v2/formula/series.tsx +67 -0
  431. package/src/widgets-v2/formula/skeleton.test.tsx +21 -0
  432. package/src/widgets-v2/formula/skeleton.tsx +27 -0
  433. package/src/widgets-v2/formula/style.ts +31 -0
  434. package/src/widgets-v2/formula/subcomponents.test.tsx +107 -0
  435. package/src/widgets-v2/formula/suffix.tsx +25 -0
  436. package/src/widgets-v2/formula/types.ts +44 -0
  437. package/src/widgets-v2/formula/value.tsx +31 -0
  438. package/src/widgets-v2/histogram/download.test.ts +94 -0
  439. package/src/widgets-v2/histogram/download.ts +60 -0
  440. package/src/widgets-v2/histogram/index.ts +10 -0
  441. package/src/widgets-v2/histogram/options.test.ts +304 -0
  442. package/src/widgets-v2/histogram/options.ts +337 -0
  443. package/src/widgets-v2/histogram/skeleton.test.tsx +16 -0
  444. package/src/widgets-v2/histogram/skeleton.tsx +70 -0
  445. package/src/widgets-v2/histogram/transforms.test.ts +46 -0
  446. package/src/widgets-v2/histogram/transforms.ts +30 -0
  447. package/src/widgets-v2/histogram/types.ts +51 -0
  448. package/src/widgets-v2/index.ts +201 -0
  449. package/src/widgets-v2/markdown/download.test.ts +66 -0
  450. package/src/widgets-v2/markdown/download.ts +53 -0
  451. package/src/widgets-v2/markdown/index.ts +6 -0
  452. package/src/widgets-v2/markdown/markdown-content.test.tsx +155 -0
  453. package/src/widgets-v2/markdown/markdown-content.tsx +72 -0
  454. package/src/widgets-v2/markdown/markdown-ui.test.tsx +75 -0
  455. package/src/widgets-v2/markdown/markdown-ui.tsx +55 -0
  456. package/src/widgets-v2/markdown/markdown.test.tsx +39 -0
  457. package/src/widgets-v2/markdown/markdown.tsx +17 -0
  458. package/src/widgets-v2/markdown/skeleton.test.tsx +15 -0
  459. package/src/widgets-v2/markdown/skeleton.tsx +32 -0
  460. package/src/widgets-v2/markdown/style.ts +53 -0
  461. package/src/widgets-v2/markdown/types.ts +4 -0
  462. package/src/widgets-v2/note/labels.ts +9 -0
  463. package/src/widgets-v2/note/style.ts +26 -0
  464. package/src/widgets-v2/note/widget-note.test.tsx +158 -0
  465. package/src/widgets-v2/note/widget-note.tsx +172 -0
  466. package/src/widgets-v2/pie/download.test.ts +78 -0
  467. package/src/widgets-v2/pie/download.ts +55 -0
  468. package/src/widgets-v2/pie/index.ts +10 -0
  469. package/src/widgets-v2/pie/options.test.ts +585 -0
  470. package/src/widgets-v2/pie/options.ts +509 -0
  471. package/src/widgets-v2/pie/skeleton.test.tsx +17 -0
  472. package/src/widgets-v2/pie/skeleton.tsx +32 -0
  473. package/src/widgets-v2/pie/types.ts +55 -0
  474. package/src/widgets-v2/provider/widget-provider.test.tsx +119 -0
  475. package/src/widgets-v2/provider/widget-provider.tsx +111 -0
  476. package/src/widgets-v2/range/index.ts +4 -0
  477. package/src/widgets-v2/range/range-ui.test.tsx +130 -0
  478. package/src/widgets-v2/range/range-ui.tsx +211 -0
  479. package/src/widgets-v2/range/range.test.tsx +68 -0
  480. package/src/widgets-v2/range/range.tsx +46 -0
  481. package/src/widgets-v2/range/skeleton.test.tsx +17 -0
  482. package/src/widgets-v2/range/skeleton.tsx +47 -0
  483. package/src/widgets-v2/range/style.ts +41 -0
  484. package/src/widgets-v2/range/types.ts +37 -0
  485. package/src/widgets-v2/scatterplot/download.test.ts +71 -0
  486. package/src/widgets-v2/scatterplot/download.ts +54 -0
  487. package/src/widgets-v2/scatterplot/index.ts +11 -0
  488. package/src/widgets-v2/scatterplot/options.test.ts +399 -0
  489. package/src/widgets-v2/scatterplot/options.ts +421 -0
  490. package/src/widgets-v2/scatterplot/skeleton.test.tsx +17 -0
  491. package/src/widgets-v2/scatterplot/skeleton.tsx +84 -0
  492. package/src/widgets-v2/scatterplot/transforms.test.ts +97 -0
  493. package/src/widgets-v2/scatterplot/transforms.ts +38 -0
  494. package/src/widgets-v2/scatterplot/types.ts +55 -0
  495. package/src/widgets-v2/selection-summary/labels.ts +11 -0
  496. package/src/widgets-v2/selection-summary/selection-summary.test.tsx +53 -0
  497. package/src/widgets-v2/selection-summary/selection-summary.tsx +62 -0
  498. package/src/widgets-v2/selection-summary/style.ts +23 -0
  499. package/src/widgets-v2/spread/download.test.ts +64 -0
  500. package/src/widgets-v2/spread/download.ts +59 -0
  501. package/src/widgets-v2/spread/index.ts +6 -0
  502. package/src/widgets-v2/spread/separator.tsx +11 -0
  503. package/src/widgets-v2/spread/skeleton.test.tsx +17 -0
  504. package/src/widgets-v2/spread/skeleton.tsx +38 -0
  505. package/src/widgets-v2/spread/spread-ui.test.tsx +108 -0
  506. package/src/widgets-v2/spread/spread-ui.tsx +52 -0
  507. package/src/widgets-v2/spread/spread.test.tsx +50 -0
  508. package/src/widgets-v2/spread/spread.tsx +31 -0
  509. package/src/widgets-v2/spread/types.ts +27 -0
  510. package/src/widgets-v2/state/labels.test.ts +33 -0
  511. package/src/widgets-v2/state/labels.ts +20 -0
  512. package/src/widgets-v2/state/style.ts +25 -0
  513. package/src/widgets-v2/state/widget-state.test.tsx +294 -0
  514. package/src/widgets-v2/state/widget-state.tsx +184 -0
  515. package/src/widgets-v2/stores/index.ts +49 -0
  516. package/src/widgets-v2/stores/pipeline-middleware.test.ts +187 -0
  517. package/src/widgets-v2/stores/pipeline-middleware.ts +91 -0
  518. package/src/widgets-v2/stores/transforms.test.ts +162 -0
  519. package/src/widgets-v2/stores/transforms.ts +70 -0
  520. package/src/widgets-v2/stores/types.ts +64 -0
  521. package/src/widgets-v2/stores/use-echart-instance.test.tsx +91 -0
  522. package/src/widgets-v2/stores/use-echart-instance.ts +29 -0
  523. package/src/widgets-v2/stores/use-transform-enabled.test.tsx +127 -0
  524. package/src/widgets-v2/stores/use-transform-enabled.ts +25 -0
  525. package/src/widgets-v2/stores/use-transform.test.tsx +262 -0
  526. package/src/widgets-v2/stores/use-transform.ts +158 -0
  527. package/src/widgets-v2/stores/widget-context.test.tsx +58 -0
  528. package/src/widgets-v2/stores/widget-context.ts +15 -0
  529. package/src/widgets-v2/stores/widget-store-registry.test.ts +292 -0
  530. package/src/widgets-v2/stores/widget-store-registry.ts +248 -0
  531. package/src/widgets-v2/subheader/style.ts +12 -0
  532. package/src/widgets-v2/subheader/subheader.test.tsx +30 -0
  533. package/src/widgets-v2/subheader/subheader.tsx +16 -0
  534. package/src/widgets-v2/table/download.test.ts +75 -0
  535. package/src/widgets-v2/table/download.ts +47 -0
  536. package/src/widgets-v2/table/helpers.test.ts +214 -0
  537. package/src/widgets-v2/table/helpers.ts +136 -0
  538. package/src/widgets-v2/table/index.ts +23 -0
  539. package/src/widgets-v2/table/labels.tsx +41 -0
  540. package/src/widgets-v2/table/skeleton.test.tsx +26 -0
  541. package/src/widgets-v2/table/skeleton.tsx +65 -0
  542. package/src/widgets-v2/table/style.ts +46 -0
  543. package/src/widgets-v2/table/table-ui.test.tsx +200 -0
  544. package/src/widgets-v2/table/table-ui.tsx +331 -0
  545. package/src/widgets-v2/table/table.test.tsx +119 -0
  546. package/src/widgets-v2/table/table.tsx +174 -0
  547. package/src/widgets-v2/table/types.ts +44 -0
  548. package/src/widgets-v2/test-utils.ts +107 -0
  549. package/src/widgets-v2/timeseries/download.test.ts +95 -0
  550. package/src/widgets-v2/timeseries/download.ts +86 -0
  551. package/src/widgets-v2/timeseries/index.ts +10 -0
  552. package/src/widgets-v2/timeseries/options.test.ts +379 -0
  553. package/src/widgets-v2/timeseries/options.ts +341 -0
  554. package/src/widgets-v2/timeseries/skeleton.test.tsx +13 -0
  555. package/src/widgets-v2/timeseries/skeleton.tsx +76 -0
  556. package/src/widgets-v2/timeseries/types.ts +61 -0
  557. package/src/widgets-v2/toolbox/labels.ts +9 -0
  558. package/src/widgets-v2/toolbox/style.ts +33 -0
  559. package/src/widgets-v2/toolbox/toolbox.test.tsx +200 -0
  560. package/src/widgets-v2/toolbox/toolbox.tsx +309 -0
  561. package/src/widgets-v2/utils/data-zoom-layout.ts +26 -0
  562. package/src/widgets-v2/utils/index.ts +2 -0
  563. package/src/widgets-v2/utils/merge-options.test.ts +52 -0
  564. package/src/widgets-v2/utils/merge-options.ts +50 -0
  565. package/src/widgets-v2/wrapper/index.ts +14 -0
  566. package/src/widgets-v2/wrapper/labels.ts +11 -0
  567. package/src/widgets-v2/wrapper/style.ts +134 -0
  568. package/src/widgets-v2/wrapper/widget-actions.test.tsx +52 -0
  569. package/src/widgets-v2/wrapper/widget-actions.tsx +43 -0
  570. package/src/widgets-v2/wrapper/widget-content.test.tsx +27 -0
  571. package/src/widgets-v2/wrapper/widget-content.tsx +29 -0
  572. package/src/widgets-v2/wrapper/widget-wrapper.test.tsx +159 -0
  573. package/src/widgets-v2/wrapper/widget-wrapper.tsx +178 -0
  574. package/dist/styles-BYTyKQFP.js.map +0 -1
@@ -0,0 +1,107 @@
1
+ import { Provider } from './provider/widget-provider';
2
+ import { Wrapper, Actions, Options, Content, Footer, DEFAULT_WRAPPER_LABELS } from './wrapper';
3
+ import { Subheader } from './subheader/subheader';
4
+ import { State } from './state/widget-state';
5
+ import { DEFAULT_STATE_LABELS } from './state/labels';
6
+ import { SelectionSummary } from './selection-summary/selection-summary';
7
+ import { DEFAULT_SELECTION_SUMMARY_LABELS } from './selection-summary/labels';
8
+ import { Toolbox } from './toolbox/toolbox';
9
+ import { DEFAULT_TOOLBOX_LABELS } from './toolbox/labels';
10
+ import { Echart, EchartUI, DEFAULT_INIT_OPTS } from './echart';
11
+ import { DEFAULT_NOTE_LABELS } from './note/labels';
12
+ import { Searcher, SearcherToggle, StackToggle, ZoomToggle, BrushToggle, RelativeData, Download, LockSelection, ChangeColumn } from './actions';
13
+ import { Formula, FormulaUI } from './formula';
14
+ import { Markdown, MarkdownUI } from './markdown';
15
+ import { Spread, SpreadUI } from './spread';
16
+ import { Range, RangeUI } from './range';
17
+ import { Category, CategoryUI } from './category';
18
+ import { Table, TableUI } from './table';
19
+ /**
20
+ * Curated namespace export — the only way to reach v2 widget components.
21
+ * Consumers import the const and access components via property access:
22
+ *
23
+ * ```tsx
24
+ * import { Widget } from '@carto/ps-react-ui/widgets-v2'
25
+ *
26
+ * <Widget.Provider id={id} data={data}>
27
+ * <Widget.Wrapper title='Sales'>
28
+ * <Widget.Content>
29
+ * <Widget.State skeleton={<BarSkeleton />}>
30
+ * <Widget.Echart optionFactory={optionFactory} />
31
+ * </Widget.State>
32
+ * </Widget.Content>
33
+ * </Widget.Wrapper>
34
+ * </Widget.Provider>
35
+ * ```
36
+ *
37
+ * Component identifiers are not surfaced as separate named exports — Types
38
+ * (props, data shapes, label types, default-label consts) and per-widget
39
+ * subpath entries (`@carto/ps-react-ui/widgets-v2/bar`, `…/category`,
40
+ * `…/table`, `…/actions`, `…/stores`, `…/utils`, etc.) remain available for
41
+ * direct import where needed.
42
+ */
43
+ export declare const Widget: {
44
+ readonly Provider: typeof Provider;
45
+ readonly Wrapper: typeof Wrapper;
46
+ readonly Actions: typeof Actions;
47
+ readonly Options: typeof Options;
48
+ readonly Content: typeof Content;
49
+ readonly Footer: typeof Footer;
50
+ readonly Subheader: typeof Subheader;
51
+ readonly State: typeof State;
52
+ readonly SelectionSummary: typeof SelectionSummary;
53
+ readonly Toolbox: typeof Toolbox;
54
+ readonly Note: (({ lineClamp, labels, children }: import('.').NoteProps) => import("react/jsx-runtime").JSX.Element) & {
55
+ Markdown: ({ content, lineClamp, labels }: import('.').NoteMarkdownProps) => import("react/jsx-runtime").JSX.Element;
56
+ };
57
+ readonly Echart: typeof Echart;
58
+ readonly EchartUI: typeof EchartUI;
59
+ readonly Searcher: typeof Searcher;
60
+ readonly SearcherToggle: typeof SearcherToggle;
61
+ readonly StackToggle: typeof StackToggle;
62
+ readonly ZoomToggle: typeof ZoomToggle;
63
+ readonly BrushToggle: typeof BrushToggle;
64
+ readonly RelativeData: typeof RelativeData;
65
+ readonly Download: typeof Download;
66
+ readonly FullScreen: {
67
+ Trigger: ({ labels, enterIcon: EnterIcon, exitIcon: ExitIcon, iconProps, }: import('./actions').FullScreenTriggerProps) => import("react/jsx-runtime").JSX.Element;
68
+ Slot: ({ children, title, labels, closeIcon: CloseSvg, iconProps, }: import('./actions').FullScreenSlotProps) => import("react/jsx-runtime").JSX.Element;
69
+ };
70
+ readonly LockSelection: typeof LockSelection;
71
+ readonly ChangeColumn: typeof ChangeColumn;
72
+ readonly Formula: typeof Formula;
73
+ readonly FormulaUI: typeof FormulaUI;
74
+ readonly Markdown: typeof Markdown;
75
+ readonly MarkdownUI: typeof MarkdownUI;
76
+ readonly Spread: typeof Spread;
77
+ readonly SpreadUI: typeof SpreadUI;
78
+ readonly Range: typeof Range;
79
+ readonly RangeUI: typeof RangeUI;
80
+ readonly Category: typeof Category;
81
+ readonly CategoryUI: typeof CategoryUI;
82
+ readonly Table: typeof Table;
83
+ readonly TableUI: typeof TableUI;
84
+ };
85
+ export { DEFAULT_WRAPPER_LABELS, DEFAULT_STATE_LABELS, DEFAULT_SELECTION_SUMMARY_LABELS, DEFAULT_TOOLBOX_LABELS, DEFAULT_NOTE_LABELS, DEFAULT_INIT_OPTS, };
86
+ export type { ProviderProps } from './provider/widget-provider';
87
+ export type { WrapperProps, ActionsProps, OptionsProps, ContentProps, FooterProps, WrapperLabels, } from './wrapper';
88
+ export type { SubheaderProps } from './subheader/subheader';
89
+ export type { StateProps } from './state/widget-state';
90
+ export type { StateLabels } from './state/labels';
91
+ export type { SelectionSummaryProps } from './selection-summary/selection-summary';
92
+ export type { SelectionSummaryLabels } from './selection-summary/labels';
93
+ export type { ToolboxProps } from './toolbox/toolbox';
94
+ export type { ToolboxLabels } from './toolbox/labels';
95
+ export type { EchartProps, EchartUIProps, EchartsEventHandler } from './echart';
96
+ export type { NoteProps, NoteMarkdownProps } from './note/widget-note';
97
+ export type { NoteLabels } from './note/labels';
98
+ export type { SearcherProps, SearcherToggleProps, StackToggleProps, ZoomToggleProps, BrushToggleProps, RelativeDataProps, DownloadProps, DownloadItem, FullScreenTriggerProps, FullScreenSlotProps, LockSelectionProps, LockSelectionKey, ChangeColumnProps, ChangeColumnItem, } from './actions';
99
+ export type { FormulaUIProps, FormulaDataItem, FormulaWidgetData, } from './formula';
100
+ export type { MarkdownUIProps, MarkdownWidgetData } from './markdown';
101
+ export type { PieDatum, PieWidgetData } from './pie';
102
+ export type { TimeseriesDatum, TimeseriesWidgetData } from './timeseries';
103
+ export type { ScatterplotDatum, ScatterplotWidgetData } from './scatterplot';
104
+ export type { SpreadUIProps, SpreadDataItem, SpreadWidgetData } from './spread';
105
+ export type { RangeProps, RangeUIProps, RangeDataItem, RangeWidgetData, RangeItemValue, } from './range';
106
+ export type { CategoryProps, CategoryUIProps, CategoryDataItem, CategoryWidgetData, CategoryKey, CategorySeriesConfig, CategoryLabels, } from './category';
107
+ export type { TableProps, TableUIProps, TableColumn, TableRow, TableWidgetData, TableWidgetState, TableSortDirection, TableSortState, } from './table';
@@ -0,0 +1,16 @@
1
+ import { toCsvString, triggerLinkDownload, DownloadItem } from '../actions/download';
2
+ import { MarkdownWidgetData } from './types';
3
+ /**
4
+ * Download menu items for the Markdown widget. Always includes a `.md`
5
+ * item that saves the markdown source verbatim. When `getCaptureEl` is
6
+ * supplied, prepends a PNG item that rasterises the captured element via
7
+ * `html2canvas`.
8
+ */
9
+ export declare function createMarkdownDownloadConfig(args: {
10
+ filename: string;
11
+ getData: () => MarkdownWidgetData;
12
+ getCaptureEl?: () => HTMLElement | null;
13
+ pngPixelRatio?: number;
14
+ pngBackgroundColor?: string | null;
15
+ }): DownloadItem[];
16
+ export { toCsvString, triggerLinkDownload };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,6 @@
1
+ export { Markdown } from './markdown';
2
+ export { MarkdownUI, type MarkdownUIProps } from './markdown-ui';
3
+ export { MarkdownContent, type MarkdownContentProps } from './markdown-content';
4
+ export { MarkdownSkeleton, type MarkdownSkeletonProps } from './skeleton';
5
+ export { createMarkdownDownloadConfig } from './download';
6
+ export type { MarkdownWidgetData } from './types';
@@ -0,0 +1,34 @@
1
+ import { Components } from 'react-markdown';
2
+ export interface MarkdownContentProps {
3
+ /** Markdown source. */
4
+ content: string;
5
+ /**
6
+ * Element overrides. Consumers (`MarkdownUI`, `Note`, …) supply their own
7
+ * typography / link styling here; the engine itself stays opinion-free.
8
+ */
9
+ components?: Components;
10
+ /**
11
+ * When `true`, raw HTML in the source is rendered. Defaults to `false` so
12
+ * caption slots like `Note` stay safe-by-default; the document-style
13
+ * Markdown widget opts in.
14
+ */
15
+ allowHtml?: boolean;
16
+ /**
17
+ * When `true`, `<img>` / `![alt](url)` markdown produces an `<img>` tag.
18
+ * Defaults to `false` so caption slots stay text-only by default.
19
+ */
20
+ allowImages?: boolean;
21
+ }
22
+ /**
23
+ * Low-level Markdown rendering primitive. Wraps `react-markdown` with two
24
+ * opt-in capabilities (`allowHtml`, `allowImages`) and a consumer-supplied
25
+ * component map for typography. Both default OFF — Note-style consumers
26
+ * are safe-by-default; MarkdownUI opts both ON to render rich content.
27
+ *
28
+ * `allowHtml` plugs in `rehype-raw` so raw HTML nodes in the source are
29
+ * actually parsed, then `rehype-sanitize` with the default schema strips
30
+ * `<script>`, event handlers, and dangerous URL schemes from the parsed
31
+ * tree. `safeUrlTransform` is always applied as a second layer for markdown
32
+ * links/images on the `allowHtml=false` path.
33
+ */
34
+ export declare function MarkdownContent({ content, components, allowHtml, allowImages, }: MarkdownContentProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,12 @@
1
+ export interface MarkdownUIProps {
2
+ content: string;
3
+ }
4
+ /**
5
+ * Pure presentational component for the Markdown widget. Delegates the
6
+ * `react-markdown` engine to {@link MarkdownContent} and supplies a
7
+ * document-style MUI element mapping (body2 paragraphs, real heading
8
+ * typography). Opts INTO raw HTML and inline images — the Markdown widget is
9
+ * the one slot in the library where authors can ship rich content. Caption
10
+ * slots like `Note` keep the conservative defaults.
11
+ */
12
+ export declare function MarkdownUI({ content }: MarkdownUIProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Stateful Markdown bridge — reads `data.content` (post-pipeline) from the
3
+ * per-widget store and forwards it to the pure {@link MarkdownUI}. Sits
4
+ * inside `<Widget.Provider>`.
5
+ */
6
+ export declare function Markdown(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,4 @@
1
+ export interface MarkdownSkeletonProps {
2
+ lines?: number;
3
+ }
4
+ export declare function MarkdownSkeleton({ lines }: MarkdownSkeletonProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,61 @@
1
+ export declare const styles: {
2
+ root: {
3
+ color: "text.primary";
4
+ '& a': {
5
+ color: "primary.main";
6
+ };
7
+ '& code': {
8
+ bgcolor: "action.hover";
9
+ px: number;
10
+ borderRadius: number;
11
+ fontFamily: "monospace";
12
+ fontSize: string;
13
+ };
14
+ '& pre': {
15
+ bgcolor: "action.hover";
16
+ p: number;
17
+ borderRadius: number;
18
+ overflowX: "auto";
19
+ };
20
+ '& blockquote': {
21
+ borderLeft: string;
22
+ borderColor: "divider";
23
+ pl: number;
24
+ ml: number;
25
+ color: "text.secondary";
26
+ fontStyle: "italic";
27
+ };
28
+ '& ul, & ol': {
29
+ pl: number;
30
+ my: number;
31
+ };
32
+ '& li': {
33
+ my: number;
34
+ };
35
+ '& hr': {
36
+ border: "none";
37
+ borderTop: string;
38
+ borderColor: "divider";
39
+ my: number;
40
+ };
41
+ '& table': {
42
+ borderCollapse: "collapse";
43
+ width: string;
44
+ };
45
+ '& th, & td': {
46
+ border: "1px solid";
47
+ borderColor: "divider";
48
+ px: number;
49
+ py: number;
50
+ textAlign: "left";
51
+ };
52
+ };
53
+ paragraph: {
54
+ my: number;
55
+ };
56
+ heading: {
57
+ mt: number;
58
+ mb: number;
59
+ fontWeight: number;
60
+ };
61
+ };
@@ -0,0 +1,4 @@
1
+ /** Markdown widget data — a single markdown source string. */
2
+ export interface MarkdownWidgetData {
3
+ content: string;
4
+ }
@@ -0,0 +1,5 @@
1
+ export interface NoteLabels {
2
+ showMore: string;
3
+ showLess: string;
4
+ }
5
+ export declare const DEFAULT_NOTE_LABELS: NoteLabels;
@@ -0,0 +1,26 @@
1
+ export declare const styles: {
2
+ root: {
3
+ display: "flex";
4
+ flexDirection: "column";
5
+ gap: number;
6
+ };
7
+ text: {
8
+ color: "text.secondary";
9
+ overflow: "hidden";
10
+ overflowWrap: "anywhere";
11
+ };
12
+ clamped: {
13
+ display: "-webkit-box";
14
+ WebkitBoxOrient: "vertical";
15
+ WebkitLineClamp: number;
16
+ };
17
+ toggle: {
18
+ alignSelf: "flex-start";
19
+ color: "primary.main";
20
+ fontWeight: number;
21
+ cursor: "pointer";
22
+ '&:hover': {
23
+ textDecoration: string;
24
+ };
25
+ };
26
+ };
@@ -0,0 +1,46 @@
1
+ import { ReactNode } from 'react';
2
+ import { NoteLabels } from './labels';
3
+ export interface NoteProps {
4
+ /**
5
+ * Maximum visible lines before clamping. Defaults to 3. Set to `0` to
6
+ * disable clamping entirely — full content renders and the Show More/Less
7
+ * toggle is never shown.
8
+ */
9
+ lineClamp?: number;
10
+ labels?: Partial<NoteLabels>;
11
+ /**
12
+ * Renders verbatim inside the caption shell. For markdown source (a
13
+ * string with `**bold**`, lists, links, etc.) reach for the
14
+ * `<Note.Markdown>` subcomponent instead — it pipes the string through
15
+ * the shared {@link MarkdownContent} engine with caption-safe element
16
+ * mapping.
17
+ */
18
+ children: ReactNode;
19
+ }
20
+ export interface NoteMarkdownProps {
21
+ /** Markdown source. Rendered with caption typography via {@link MarkdownContent}. */
22
+ content: string;
23
+ /** Maximum visible lines before clamping. Defaults to 3. */
24
+ lineClamp?: number;
25
+ labels?: Partial<NoteLabels>;
26
+ }
27
+ /**
28
+ * Auxiliary slot for an optional explanatory note below a widget. Clamps to
29
+ * `lineClamp` lines (default 3) and reveals a Show More/Less toggle when the
30
+ * content overflows. Overflow detection re-runs on container resize via the
31
+ * shared singleton ResizeObserver.
32
+ *
33
+ * Renders `children` verbatim through caption typography. For markdown
34
+ * source, use the {@link NoteMarkdown} (`Note.Markdown`) subcomponent.
35
+ */
36
+ declare function NoteBase({ lineClamp, labels, children }: NoteProps): import("react/jsx-runtime").JSX.Element;
37
+ /**
38
+ * Markdown variant of {@link Note}. Pipes the `content` string through the
39
+ * shared {@link MarkdownContent} engine with caption-safe element mapping
40
+ * (headings demoted, links open in new tabs, images/HTML stripped).
41
+ */
42
+ declare function NoteMarkdown({ content, lineClamp, labels }: NoteMarkdownProps): import("react/jsx-runtime").JSX.Element;
43
+ export declare const Note: typeof NoteBase & {
44
+ Markdown: typeof NoteMarkdown;
45
+ };
46
+ export {};
@@ -0,0 +1,17 @@
1
+ import { DownloadItem } from '../actions/download';
2
+ import { PieWidgetData } from './types';
3
+ /**
4
+ * Download menu items for the Pie widget. Always includes a CSV item with
5
+ * `series, name, value` columns (one row per slice; series labels come from
6
+ * `seriesNames` if provided, else `series_<n>`). When `getCaptureEl` is
7
+ * supplied, prepends a PNG item that rasterises the captured element via
8
+ * `html2canvas`.
9
+ */
10
+ export declare function createPieDownloadConfig(args: {
11
+ filename: string;
12
+ getData: () => PieWidgetData;
13
+ seriesNames?: readonly string[];
14
+ getCaptureEl?: () => HTMLElement | null;
15
+ pngPixelRatio?: number;
16
+ pngBackgroundColor?: string | null;
17
+ }): DownloadItem[];
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,4 @@
1
+ export { pieOptions, createPieOptionFactory } from './options';
2
+ export { PieSkeleton, type PieSkeletonProps } from './skeleton';
3
+ export { createPieDownloadConfig } from './download';
4
+ export type { PieDatum, PieWidgetData, PieOptionsInput, PieOptionFactoryInput, PieEChartsOption, } from './types';
@@ -0,0 +1,35 @@
1
+ import { OptionFactory } from '../echart';
2
+ import { PieEChartsOption, PieOptionFactoryInput, PieOptionsInput } from './types';
3
+ /**
4
+ * Builds the **structural** ECharts option for a pie / donut widget.
5
+ * Mirrors v1's pie look-and-feel: themed legend (`buildLegendConfig`),
6
+ * themed tooltip via `createTooltipPositioner` / `createTooltipFormatter`,
7
+ * `qualitative.bold` color palette, slice borders against the paper
8
+ * background, hover-emphasis disabled, and a centered rich-text label.
9
+ *
10
+ * Layered like Bar / Histogram:
11
+ * - **Theme-aware bits** live here on a series template (slice border,
12
+ * center-label rich style sizes, emphasis-disabled).
13
+ * - **Reactive bits** (tooltip value formatter, center-label text,
14
+ * selection-driven dim) are re-emitted by
15
+ * {@link createPieOptionFactory} at fusion time so RelativeData's
16
+ * percent override flows through.
17
+ */
18
+ export declare function pieOptions({ theme, formatter, labelFormatter, }: PieOptionsInput): PieEChartsOption;
19
+ /**
20
+ * Returns the pie widget's {@link OptionFactory} — one closure that owns
21
+ * BOTH phases of option construction:
22
+ *
23
+ * - **Structural phase** (`option == null`) — builds the theme-aware
24
+ * structural option via {@link pieOptions}, optionally merging the
25
+ * consumer-supplied `optionsOverride` on top. Called once by Provider
26
+ * to seed `rawOptions` in the store.
27
+ * - **Merge phase** (`option != null`) — fuses post-pipeline `state.data`
28
+ * (`PieWidgetData`) into the option via the dataset API. Single-series
29
+ * → donut (one dataset, `series[i].encode = { itemName: 'name', value: 'value' }`).
30
+ * Multi-series → horizontal-bar fallback (mirrors v1 pie). Reactive
31
+ * formatters from `ctx` drive the tooltip + center label at fusion
32
+ * time so RelativeData's percent formatter flows through without a
33
+ * structural rebuild.
34
+ */
35
+ export declare function createPieOptionFactory(options: PieOptionFactoryInput): OptionFactory;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,4 @@
1
+ export interface PieSkeletonProps {
2
+ count?: number;
3
+ }
4
+ export declare function PieSkeleton({ count }: PieSkeletonProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,50 @@
1
+ import { Theme } from '@mui/material';
2
+ import { EChartsOption } from 'echarts';
3
+ /** A single slice of a pie series. */
4
+ export interface PieDatum {
5
+ name: string | number;
6
+ value: number;
7
+ }
8
+ /** Pie widget data — one slice array per series (rendered as side-by-side donuts). */
9
+ export type PieWidgetData = readonly (readonly PieDatum[])[];
10
+ /** Inputs to the structural-only {@link pieOptions} builder. */
11
+ export interface PieOptionsInput {
12
+ theme: Theme;
13
+ /** Numeric value formatter — drives the tooltip value and center label. */
14
+ formatter?: (value: number) => string;
15
+ /** Optional slice-name formatter — also forwarded to the legend. */
16
+ labelFormatter?: (value: string | number) => string | number;
17
+ }
18
+ /**
19
+ * Combined inputs for the pie option factory creator. Carries everything
20
+ * the widget needs across BOTH phases — the structural-build (`theme`,
21
+ * `formatter`, `labelFormatter`, `optionsOverride`) AND the data merge
22
+ * (`seriesNames`, `radius`, `selection`). The merger emits different
23
+ * chart shapes by series count: single → donut, multi → horizontal-bar
24
+ * fallback (mirrors v1 pie); both branches read `theme` for styling.
25
+ */
26
+ export interface PieOptionFactoryInput {
27
+ theme: Theme;
28
+ formatter?: (value: number) => string;
29
+ labelFormatter?: (value: string | number) => string | number;
30
+ /** Series names — drives the legend and series.name. */
31
+ seriesNames?: readonly string[];
32
+ /**
33
+ * Inner/outer radius (percent). Default `['58%', '74%']` produces a
34
+ * donut sized to leave room for the wrappable bottom legend. Set
35
+ * inner to `'0%'` for a solid pie.
36
+ */
37
+ radius?: readonly [string, string];
38
+ /**
39
+ * Selected slice names. Slices not in this list render dimmed
40
+ * (`itemStyle.opacity: 0.15`). `null`/empty means no selection.
41
+ */
42
+ selection?: readonly (string | number)[] | null;
43
+ /**
44
+ * Consumer-supplied partial option merged into the structural option at
45
+ * structural-build time. Lets stories override pieces of the theme-aware
46
+ * base without forking the structural builder.
47
+ */
48
+ optionsOverride?: Partial<EChartsOption>;
49
+ }
50
+ export type PieEChartsOption = EChartsOption;
@@ -0,0 +1,32 @@
1
+ import { ReactNode } from 'react';
2
+ export interface ProviderProps {
3
+ id: string;
4
+ data: unknown;
5
+ isLoading?: boolean;
6
+ isFetching?: boolean;
7
+ error?: unknown;
8
+ formatter?: (value: number) => string;
9
+ labelFormatter?: (value: string | number) => string | number;
10
+ /**
11
+ * When `true`, the per-widget store survives unmount so transformStates,
12
+ * search text, fullscreen state, etc. are preserved across remounts.
13
+ * Consumers using keepAlive must call `deleteWidgetStore(id)` themselves
14
+ * when the widget is permanently removed — there is no automatic GC.
15
+ */
16
+ keepAlive?: boolean;
17
+ children: ReactNode;
18
+ }
19
+ /**
20
+ * Renderer-agnostic widget shell. Creates a per-widget Zustand store
21
+ * keyed by `id`, syncs the consumer props (`data`, `isLoading`, `error`,
22
+ * `formatter`, …) onto it, and exposes the `id` via `WidgetContext` so
23
+ * descendants can resolve their store with `useWidgetId()`.
24
+ *
25
+ * The Provider deliberately doesn't know about ECharts — there's no
26
+ * `optionFactory` prop here. ECharts-backed widgets pass their factory
27
+ * to `<Widget.Echart optionFactory={…}>`, which owns the structural
28
+ * seed + the data-fusion render step entirely. Non-Echart widgets
29
+ * (Formula, Spread, Range, Table, Category, Markdown) just don't pass
30
+ * anything ECharts-shaped.
31
+ */
32
+ export declare function Provider({ id, data, isLoading, isFetching, error, formatter, labelFormatter, keepAlive, children, }: ProviderProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,4 @@
1
+ export { Range, type RangeProps } from './range';
2
+ export { RangeUI, type RangeUIProps } from './range-ui';
3
+ export { RangeSkeleton, type RangeSkeletonProps } from './skeleton';
4
+ export type { RangeDataItem, RangeWidgetData, RangeItemValue } from './types';
@@ -0,0 +1,19 @@
1
+ import { RangeDataItem, RangeItemValue } from './types';
2
+ export interface RangeUIProps {
3
+ items: readonly RangeDataItem[];
4
+ /**
5
+ * Fires when the user drags a thumb or commits a new value via the text
6
+ * inputs. Per the destination-owned principle, the consumer owns the
7
+ * value — this widget surfaces changes but does not store them.
8
+ */
9
+ onChange?: (index: number, value: RangeItemValue) => void;
10
+ /** Number formatter for the slider tooltip and the text input display. */
11
+ formatter?: (value: number) => string;
12
+ }
13
+ /**
14
+ * Pure presentational component for the Range widget. Renders one MUI Slider
15
+ * per item with editable min/max text inputs below — matching the Range v1
16
+ * UX. Each item is always a two-thumb range; supply `value` to seed the
17
+ * starting selection, otherwise it defaults to `[min, max]`.
18
+ */
19
+ export declare function RangeUI({ items, onChange, formatter }: RangeUIProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,19 @@
1
+ import { RangeItemValue } from './types';
2
+ export interface RangeProps {
3
+ /**
4
+ * Fires when the user moves a slider thumb or commits a new value via the
5
+ * text inputs. Receives the item index in `state.data` and the new
6
+ * `[low, high]` tuple. The consumer owns the data state — the widget
7
+ * surfaces changes but does not persist them.
8
+ */
9
+ onChange?: (index: number, value: RangeItemValue) => void;
10
+ }
11
+ /**
12
+ * Stateful Range bridge — reads `data` (post-pipeline) and `formatter` from
13
+ * the per-widget store and forwards them to the pure {@link RangeUI}. Per
14
+ * the destination-owned principle, value changes flow back through
15
+ * `onChange` — the consumer is expected to update the data prop on
16
+ * `<Provider>`. Use `disabled` on individual `RangeDataItem`s to disable
17
+ * specific rows.
18
+ */
19
+ export declare function Range({ onChange }: RangeProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,9 @@
1
+ export interface RangeSkeletonProps {
2
+ count?: number;
3
+ }
4
+ /**
5
+ * Loading placeholder for the Range widget. Renders `count` rows, each
6
+ * matching the slider-then-inputs layout of {@link RangeUI} so the layout
7
+ * doesn't jump when data resolves.
8
+ */
9
+ export declare function RangeSkeleton({ count }: RangeSkeletonProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,40 @@
1
+ import { Theme } from '@mui/material';
2
+ export declare const styles: {
3
+ root: {
4
+ display: "flex";
5
+ flexDirection: "column";
6
+ gap: number;
7
+ py: number;
8
+ };
9
+ item: {
10
+ display: "flex";
11
+ flexDirection: "column";
12
+ gap: number;
13
+ };
14
+ sliderContainer: {
15
+ display: "flex";
16
+ flexDirection: "column";
17
+ gap: number;
18
+ px: number;
19
+ };
20
+ slider: {
21
+ width: string;
22
+ '&.Mui-disabled': {
23
+ color: (theme: Theme) => string;
24
+ };
25
+ };
26
+ inputsRow: {
27
+ display: "flex";
28
+ gap: number;
29
+ alignItems: "center";
30
+ };
31
+ input: {
32
+ flex: number;
33
+ '& .MuiInputBase-input': {
34
+ textAlign: "center";
35
+ };
36
+ };
37
+ note: {
38
+ color: "text.secondary";
39
+ };
40
+ };
@@ -0,0 +1,37 @@
1
+ import { ReactNode } from 'react';
2
+ /**
3
+ * A single two-thumb range entry. Renders as an MUI `<Slider>` with editable
4
+ * `min` / `max` text inputs below, mirroring the Range v1 widget UX.
5
+ */
6
+ export interface RangeDataItem {
7
+ /** Lower bound of the slider track. */
8
+ min: number;
9
+ /** Upper bound of the slider track. */
10
+ max: number;
11
+ /**
12
+ * Current selected range `[low, high]`. When omitted, defaults to
13
+ * `[min, max]` — i.e. the full track. The consumer owns this value and
14
+ * updates it in response to `onChange`.
15
+ */
16
+ value?: readonly [number, number];
17
+ /** Step granularity (default `1`). */
18
+ step?: number;
19
+ /**
20
+ * Tick marks. Pass `true` to enable MUI's auto-marks (one per `step`); pass
21
+ * an array for explicit marks; omit for no marks.
22
+ */
23
+ marks?: boolean | readonly {
24
+ value: number;
25
+ label?: string;
26
+ }[];
27
+ /** Disable user interaction for this row (slider + inputs). */
28
+ disabled?: boolean;
29
+ /** Override the slider's track / thumb colour (any CSS / MUI palette path). */
30
+ color?: string;
31
+ /** Optional caption rendered below the inputs row. */
32
+ note?: ReactNode;
33
+ }
34
+ /** Range widget data — one or more two-thumb entries rendered stacked. */
35
+ export type RangeWidgetData = readonly RangeDataItem[];
36
+ /** The shape `onChange` reports — always a `[low, high]` tuple. */
37
+ export type RangeItemValue = readonly [number, number];