@carto/ps-react-ui 5.0.0 → 6.0.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 (1137) hide show
  1. package/dist/{actions-yPZwFxSZ.js → actions-KsX1xdDM.js} +388 -368
  2. package/dist/actions-KsX1xdDM.js.map +1 -0
  3. package/dist/category-CsdDqDzo.js +833 -0
  4. package/dist/category-CsdDqDzo.js.map +1 -0
  5. package/dist/chat.js +548 -526
  6. package/dist/chat.js.map +1 -1
  7. package/dist/{components-FED-ArwH.js → components-CTUpdQuj.js} +1526 -1782
  8. package/dist/components-CTUpdQuj.js.map +1 -0
  9. package/dist/components.js +4 -5
  10. package/dist/{download-DdaK3qgC.js → download-Vlzn2jzb.js} +12 -12
  11. package/dist/download-Vlzn2jzb.js.map +1 -0
  12. package/dist/{echart-DeBgdOtX.js → echart-DjcbtKgi.js} +34 -35
  13. package/dist/echart-DjcbtKgi.js.map +1 -0
  14. package/dist/formula-CdHWtepq.js +282 -0
  15. package/dist/formula-CdHWtepq.js.map +1 -0
  16. package/dist/legend.js +261 -256
  17. package/dist/legend.js.map +1 -1
  18. package/dist/{markdown-2dfL6Cmb.js → markdown-CY-67NRE.js} +8 -8
  19. package/dist/markdown-CY-67NRE.js.map +1 -0
  20. package/dist/{markdown-content-BWUqwx9F.js → markdown-content-kYNLOX0T.js} +2 -2
  21. package/dist/markdown-content-kYNLOX0T.js.map +1 -0
  22. package/dist/{chart-config-B_fdIcD3.js → option-builders-DQivvvbb.js} +10 -56
  23. package/dist/option-builders-DQivvvbb.js.map +1 -0
  24. package/dist/{range-BCMAl5xf.js → range-DHQSsl2_.js} +8 -8
  25. package/dist/range-DHQSsl2_.js.map +1 -0
  26. package/dist/smart-tooltip-Dc_rHhyI.js +51 -0
  27. package/dist/smart-tooltip-Dc_rHhyI.js.map +1 -0
  28. package/dist/{spread-Ccpg9fi0.js → spread-DuM5oTI1.js} +10 -10
  29. package/dist/spread-DuM5oTI1.js.map +1 -0
  30. package/dist/{stores-tiFePP0A.js → stores-B8CHbgw-.js} +11 -11
  31. package/dist/stores-B8CHbgw-.js.map +1 -0
  32. package/dist/stores-mad-9yFn.js.map +1 -1
  33. package/dist/styles-BCEBm7xh.js +146 -0
  34. package/dist/styles-BCEBm7xh.js.map +1 -0
  35. package/dist/{table-Bx9Uj3U0.js → table-BE4uO9pp.js} +14 -14
  36. package/dist/table-BE4uO9pp.js.map +1 -0
  37. package/dist/types/chat/bubbles/chat-suggestion-button.d.ts +1 -1
  38. package/dist/types/chat/types.d.ts +5 -2
  39. package/dist/types/components/index.d.ts +1 -3
  40. package/dist/types/components/lasso-tool/geometry-toolbar.d.ts +1 -1
  41. package/dist/types/components/lasso-tool/toolbar/context.d.ts +1 -1
  42. package/dist/types/components/types.d.ts +15 -0
  43. package/dist/types/legend/components/legend-actions/legend-actions.d.ts +2 -2
  44. package/dist/types/legend/components/legend-swatch/legend-swatch.d.ts +2 -1
  45. package/dist/types/legend/index.d.ts +1 -1
  46. package/dist/types/legend/provider/legend-provider.d.ts +2 -2
  47. package/dist/types/migration/v4/classes.d.ts +16 -0
  48. package/dist/types/migration/v4/icons.d.ts +31 -0
  49. package/dist/types/migration/v4/index.d.ts +17 -0
  50. package/dist/types/migration/v4/rules.d.ts +42 -0
  51. package/dist/types/migration/v4/transform.d.ts +4 -0
  52. package/dist/types/migration/v4/transforms/helpers.d.ts +97 -0
  53. package/dist/types/migration/v4/transforms/meridian-5.d.ts +22 -0
  54. package/dist/types/migration/v4/transforms/ps-react-ui.d.ts +20 -0
  55. package/dist/types/migration/v4/transforms/v5-v6.d.ts +27 -0
  56. package/dist/types/migration/v4/transforms/v6-v7.d.ts +54 -0
  57. package/dist/types/migration/v4/transforms/v7-v9-dom.d.ts +63 -0
  58. package/dist/types/migration/v4/transforms/v7-v9-props.d.ts +64 -0
  59. package/dist/types/migration/v4/widgets-v1.d.ts +12 -0
  60. package/dist/types/widgets/actions/brush-toggle/brush-toggle.d.ts +51 -24
  61. package/dist/types/widgets/actions/brush-toggle/style.d.ts +7 -16
  62. package/dist/types/widgets/actions/change-column/change-column-icon.d.ts +2 -1
  63. package/dist/types/widgets/actions/change-column/change-column.d.ts +26 -17
  64. package/dist/types/widgets/actions/change-column/sortable-column-item.d.ts +10 -5
  65. package/dist/types/widgets/actions/change-column/types.d.ts +9 -18
  66. package/dist/types/widgets/actions/download/download.d.ts +18 -13
  67. package/dist/types/widgets/actions/download/exports.d.ts +33 -17
  68. package/dist/types/{widgets-v2 → widgets}/actions/download/png-item.d.ts +1 -1
  69. package/dist/types/widgets/actions/download/types.d.ts +30 -16
  70. package/dist/types/widgets/actions/fullscreen/fullscreen.d.ts +73 -10
  71. package/dist/types/{widgets-v2 → widgets}/actions/fullscreen/style.d.ts +9 -0
  72. package/dist/types/widgets/actions/fullscreen/types.d.ts +13 -20
  73. package/dist/types/widgets/actions/index.d.ts +10 -20
  74. package/dist/types/widgets/actions/lock-selection/lock-selection.d.ts +54 -16
  75. package/dist/types/widgets/actions/relative-data/relative-data.d.ts +36 -21
  76. package/dist/types/{widgets-v2 → widgets}/actions/relative-data/transforms.d.ts +2 -2
  77. package/dist/types/widgets/actions/searcher/searcher-toggle.d.ts +21 -16
  78. package/dist/types/widgets/actions/searcher/searcher.d.ts +9 -19
  79. package/dist/types/widgets/actions/stack-toggle/stack-toggle.d.ts +10 -17
  80. package/dist/types/widgets/actions/zoom-toggle/style.d.ts +7 -8
  81. package/dist/types/widgets/actions/zoom-toggle/zoom-toggle.d.ts +31 -22
  82. package/dist/types/widgets/bar/index.d.ts +3 -2
  83. package/dist/types/widgets/bar/skeleton.d.ts +5 -0
  84. package/dist/types/widgets/bar/types.d.ts +46 -9
  85. package/dist/types/widgets/category/category-ui.d.ts +86 -3
  86. package/dist/types/{widgets-v2 → widgets}/category/components/category-bar-stacked.d.ts +2 -1
  87. package/dist/types/widgets/category/components/category-bar.d.ts +18 -4
  88. package/dist/types/widgets/category/components/category-legend.d.ts +30 -4
  89. package/dist/types/widgets/category/components/category-row-multi.d.ts +27 -10
  90. package/dist/types/widgets/category/components/category-row-other.d.ts +19 -2
  91. package/dist/types/widgets/category/components/category-row-single.d.ts +23 -9
  92. package/dist/types/{widgets-v2 → widgets}/category/components/category-row-stacked.d.ts +2 -1
  93. package/dist/types/widgets/category/index.d.ts +10 -14
  94. package/dist/types/widgets/category/skeleton.d.ts +11 -1
  95. package/dist/types/widgets/category/style.d.ts +155 -83
  96. package/dist/types/widgets/category/types.d.ts +49 -29
  97. package/dist/types/widgets/echart/echart-ui.d.ts +44 -9
  98. package/dist/types/widgets/echart/echart.d.ts +80 -5
  99. package/dist/types/widgets/echart/index.d.ts +4 -5
  100. package/dist/types/widgets/echart/shared-resize-observer.d.ts +2 -9
  101. package/dist/types/{widgets-v2 → widgets}/echart/style.d.ts +1 -0
  102. package/dist/types/widgets/formula/formula-ui.d.ts +18 -3
  103. package/dist/types/widgets/formula/index.d.ts +11 -11
  104. package/dist/types/{widgets-v2 → widgets}/formula/series.d.ts +2 -1
  105. package/dist/types/widgets/formula/skeleton.d.ts +4 -1
  106. package/dist/types/widgets/formula/style.d.ts +20 -12
  107. package/dist/types/widgets/formula/types.d.ts +41 -39
  108. package/dist/types/{widgets-v2 → widgets}/formula/value.d.ts +2 -1
  109. package/dist/types/widgets/histogram/index.d.ts +5 -4
  110. package/dist/types/widgets/histogram/skeleton.d.ts +9 -1
  111. package/dist/types/widgets/histogram/types.d.ts +60 -12
  112. package/dist/types/{widgets-v2 → widgets}/index.d.ts +3 -3
  113. package/dist/types/widgets/markdown/index.d.ts +5 -4
  114. package/dist/types/widgets/markdown/markdown-ui.d.ts +10 -7
  115. package/dist/types/widgets/markdown/markdown.d.ts +4 -3
  116. package/dist/types/widgets/markdown/skeleton.d.ts +4 -1
  117. package/dist/types/widgets/markdown/style.d.ts +61 -2
  118. package/dist/types/widgets/markdown/types.d.ts +2 -16
  119. package/dist/types/widgets/note/style.d.ts +14 -16
  120. package/dist/types/widgets/pie/index.d.ts +4 -3
  121. package/dist/types/widgets/pie/skeleton.d.ts +13 -1
  122. package/dist/types/widgets/pie/types.d.ts +57 -9
  123. package/dist/types/widgets/range/index.d.ts +4 -6
  124. package/dist/types/widgets/range/range-ui.d.ts +25 -3
  125. package/dist/types/widgets/range/skeleton.d.ts +9 -1
  126. package/dist/types/widgets/range/style.d.ts +40 -2
  127. package/dist/types/widgets/range/types.d.ts +26 -22
  128. package/dist/types/widgets/scatterplot/index.d.ts +5 -3
  129. package/dist/types/widgets/scatterplot/skeleton.d.ts +12 -1
  130. package/dist/types/widgets/scatterplot/types.d.ts +54 -9
  131. package/dist/types/widgets/selection-summary/selection-summary.d.ts +26 -10
  132. package/dist/types/widgets/selection-summary/style.d.ts +32 -3
  133. package/dist/types/widgets/spread/index.d.ts +7 -9
  134. package/dist/types/widgets/spread/skeleton.d.ts +9 -1
  135. package/dist/types/widgets/spread/spread-ui.d.ts +16 -3
  136. package/dist/types/widgets/spread/types.d.ts +20 -35
  137. package/dist/types/widgets/stores/index.d.ts +8 -3
  138. package/dist/types/widgets/stores/types.d.ts +45 -172
  139. package/dist/types/widgets/subheader/style.d.ts +5 -14
  140. package/dist/types/widgets/subheader/subheader.d.ts +9 -11
  141. package/dist/types/widgets/table/helpers.d.ts +28 -34
  142. package/dist/types/widgets/table/index.d.ts +8 -17
  143. package/dist/types/widgets/table/skeleton.d.ts +17 -5
  144. package/dist/types/widgets/table/style.d.ts +21 -14
  145. package/dist/types/widgets/table/table-ui.d.ts +41 -29
  146. package/dist/types/widgets/table/types.d.ts +34 -182
  147. package/dist/types/widgets/timeseries/index.d.ts +4 -2
  148. package/dist/types/widgets/timeseries/skeleton.d.ts +7 -0
  149. package/dist/types/widgets/timeseries/types.d.ts +60 -9
  150. package/dist/types/{widgets-v2 → widgets}/types.d.ts +7 -6
  151. package/dist/types/widgets/utils/index.d.ts +3 -7
  152. package/dist/types/widgets/wrapper/index.d.ts +4 -6
  153. package/dist/{utils-Dr6gf3vD.js → utils-BStJWhZN.js} +5 -5
  154. package/dist/utils-BStJWhZN.js.map +1 -0
  155. package/dist/widgets/actions.js +4 -2
  156. package/dist/widgets/bar.js +202 -132
  157. package/dist/widgets/bar.js.map +1 -1
  158. package/dist/widgets/category.js +2 -450
  159. package/dist/widgets/echart.js +2 -3
  160. package/dist/widgets/formula.js +2 -3
  161. package/dist/widgets/histogram.js +263 -160
  162. package/dist/widgets/histogram.js.map +1 -1
  163. package/dist/widgets/markdown.js +3 -148
  164. package/dist/widgets/pie.js +317 -197
  165. package/dist/widgets/pie.js.map +1 -1
  166. package/dist/widgets/range.js +2 -233
  167. package/dist/widgets/scatterplot.js +300 -196
  168. package/dist/widgets/scatterplot.js.map +1 -1
  169. package/dist/widgets/spread.js +2 -158
  170. package/dist/widgets/stores.js +2 -3
  171. package/dist/widgets/table.js +2 -599
  172. package/dist/widgets/timeseries.js +250 -136
  173. package/dist/widgets/timeseries.js.map +1 -1
  174. package/dist/widgets/utils.js +2 -18
  175. package/dist/{widgets-v2.js → widgets.js} +63 -57
  176. package/dist/widgets.js.map +1 -0
  177. package/dist/{zoom-toggle-IsF8BnAp.js → zoom-toggle-D_VuA01l.js} +5 -5
  178. package/dist/zoom-toggle-D_VuA01l.js.map +1 -0
  179. package/package.json +43 -129
  180. package/src/chat/bubbles/chat-agent-message-markdown.tsx +1 -1
  181. package/src/chat/bubbles/chat-error-message.tsx +9 -3
  182. package/src/chat/bubbles/chat-suggestion-button.tsx +8 -3
  183. package/src/chat/containers/chat-footer.tsx +6 -2
  184. package/src/chat/containers/chat-starter.tsx +6 -4
  185. package/src/chat/feedback/chat-tool-full-view-dialog.tsx +3 -1
  186. package/src/chat/feedback/chat-tool-group.test.tsx +1 -1
  187. package/src/chat/feedback/chat-tool-group.tsx +40 -9
  188. package/src/chat/feedback/chat-tool-trace.tsx +55 -19
  189. package/src/chat/types.ts +5 -2
  190. package/src/components/basemaps/header.tsx +6 -1
  191. package/src/components/index.ts +2 -3
  192. package/src/components/lasso-tool/geometry-toolbar.tsx +1 -1
  193. package/src/components/lasso-tool/lasso-tool-inline.tsx +12 -4
  194. package/src/components/lasso-tool/lasso-tool.tsx +26 -15
  195. package/src/components/lasso-tool/layer-filters.tsx +36 -11
  196. package/src/components/lasso-tool/options-sections.test.tsx +13 -2
  197. package/src/components/lasso-tool/options-sections.tsx +17 -7
  198. package/src/components/lasso-tool/toolbar/connected.tsx +1 -1
  199. package/src/components/lasso-tool/toolbar/context.tsx +1 -1
  200. package/src/components/measurement-tools/measurement-tools.tsx +28 -13
  201. package/src/components/no-data-alert/no-data-alert.tsx +12 -2
  202. package/src/components/responsive-drawer/responsive-drawer.tsx +0 -1
  203. package/src/components/types.ts +17 -0
  204. package/src/components/zoom-controls/zoom-controls.tsx +3 -1
  205. package/src/legend/components/legend-actions/legend-actions.tsx +2 -2
  206. package/src/legend/components/legend-category/legend-category-ui.tsx +7 -3
  207. package/src/legend/components/legend-config-select/legend-config-select.tsx +6 -2
  208. package/src/legend/components/legend-group/legend-group.tsx +6 -2
  209. package/src/legend/components/legend-group/styles.ts +1 -1
  210. package/src/legend/components/legend-icon/legend-icon-ui.tsx +7 -3
  211. package/src/legend/components/legend-opacity/legend-opacity.tsx +9 -3
  212. package/src/legend/components/legend-proportion/legend-proportion-ui.tsx +19 -3
  213. package/src/legend/components/legend-ramp/legend-ramp-ui.tsx +31 -7
  214. package/src/legend/components/legend-row/legend-row.tsx +2 -2
  215. package/src/legend/components/legend-row/styles.ts +1 -1
  216. package/src/legend/components/legend-sortable/legend-sortable.tsx +7 -3
  217. package/src/legend/components/legend-swatch/legend-swatch.tsx +2 -1
  218. package/src/legend/components/legend-visible-layers/legend-visible-layers.tsx +18 -9
  219. package/src/legend/index.ts +1 -1
  220. package/src/legend/provider/legend-provider.tsx +2 -2
  221. package/src/legend/stores/legend-store-registry.ts +1 -1
  222. package/src/migration/v4/classes.ts +56 -0
  223. package/src/migration/v4/icons.ts +56 -0
  224. package/src/migration/v4/index.ts +17 -0
  225. package/src/migration/v4/migration.test.ts +772 -0
  226. package/src/migration/v4/rules.ts +444 -0
  227. package/src/migration/v4/transform.ts +92 -0
  228. package/src/migration/v4/transforms/helpers.ts +369 -0
  229. package/src/migration/v4/transforms/meridian-5.ts +163 -0
  230. package/src/migration/v4/transforms/ps-react-ui.ts +99 -0
  231. package/src/migration/v4/transforms/v5-v6.ts +161 -0
  232. package/src/migration/v4/transforms/v6-v7.ts +342 -0
  233. package/src/migration/v4/transforms/v7-v9-dom.ts +403 -0
  234. package/src/migration/v4/transforms/v7-v9-props.ts +529 -0
  235. package/src/migration/v4/widgets-v1.ts +199 -0
  236. package/src/{widgets-v2 → widgets}/PERFORMANCE.md +5 -5
  237. package/src/widgets/actions/brush-toggle/brush-toggle.test.tsx +144 -172
  238. package/src/widgets/actions/brush-toggle/brush-toggle.tsx +129 -108
  239. package/src/widgets/actions/brush-toggle/style.ts +5 -40
  240. package/src/widgets/actions/change-column/change-column-icon.tsx +14 -10
  241. package/src/widgets/actions/change-column/change-column.test.tsx +57 -288
  242. package/src/widgets/actions/change-column/change-column.tsx +116 -145
  243. package/src/widgets/actions/change-column/sortable-column-item.tsx +29 -17
  244. package/src/widgets/actions/change-column/types.ts +9 -18
  245. package/src/widgets/actions/download/download.test.tsx +290 -289
  246. package/src/widgets/actions/download/download.tsx +101 -89
  247. package/src/widgets/actions/download/exports.test.tsx +157 -247
  248. package/src/{widgets-v2 → widgets}/actions/download/exports.ts +1 -1
  249. package/src/{widgets-v2 → widgets}/actions/download/png-item.tsx +2 -2
  250. package/src/widgets/actions/download/types.ts +26 -15
  251. package/src/widgets/actions/fullscreen/fullscreen.test.tsx +164 -221
  252. package/src/widgets/actions/fullscreen/fullscreen.tsx +277 -72
  253. package/src/{widgets-v2 → widgets}/actions/fullscreen/style.ts +31 -4
  254. package/src/widgets/actions/fullscreen/types.ts +14 -31
  255. package/src/widgets/actions/index.ts +90 -68
  256. package/src/widgets/actions/lock-selection/lock-selection.test.tsx +259 -156
  257. package/src/widgets/actions/lock-selection/lock-selection.tsx +162 -102
  258. package/src/widgets/actions/relative-data/relative-data.test.tsx +65 -536
  259. package/src/widgets/actions/relative-data/relative-data.tsx +82 -163
  260. package/src/{widgets-v2 → widgets}/actions/relative-data/transforms.ts +2 -2
  261. package/src/widgets/actions/searcher/searcher-toggle.tsx +75 -56
  262. package/src/widgets/actions/searcher/searcher.tsx +85 -168
  263. package/src/widgets/actions/stack-toggle/stack-toggle.test.tsx +49 -402
  264. package/src/widgets/actions/stack-toggle/stack-toggle.tsx +39 -114
  265. package/src/widgets/actions/zoom-toggle/style.ts +5 -8
  266. package/src/widgets/actions/zoom-toggle/zoom-toggle.test.tsx +88 -303
  267. package/src/widgets/actions/zoom-toggle/zoom-toggle.tsx +87 -199
  268. package/src/widgets/bar/index.ts +6 -5
  269. package/src/{widgets-v2 → widgets}/bar/options.ts +1 -1
  270. package/src/widgets/bar/skeleton.tsx +61 -52
  271. package/src/widgets/bar/types.ts +46 -11
  272. package/src/widgets/category/category-ui.test.tsx +846 -317
  273. package/src/widgets/category/category-ui.tsx +444 -127
  274. package/src/{widgets-v2 → widgets}/category/components/category-bar-stacked.tsx +2 -1
  275. package/src/widgets/category/components/category-bar.tsx +31 -12
  276. package/src/{widgets-v2 → widgets}/category/components/category-legend.test.tsx +7 -3
  277. package/src/widgets/category/components/category-legend.tsx +68 -18
  278. package/src/widgets/category/components/category-row-multi.tsx +66 -36
  279. package/src/widgets/category/components/category-row-other.tsx +63 -5
  280. package/src/widgets/category/components/category-row-single.tsx +48 -25
  281. package/src/{widgets-v2 → widgets}/category/components/category-row-stacked.tsx +2 -1
  282. package/src/widgets/category/index.ts +25 -22
  283. package/src/widgets/category/skeleton.tsx +60 -10
  284. package/src/widgets/category/style.ts +267 -72
  285. package/src/widgets/category/types.ts +52 -32
  286. package/src/widgets/echart/echart-ui.test.tsx +250 -446
  287. package/src/widgets/echart/echart-ui.tsx +210 -52
  288. package/src/widgets/echart/echart.test.tsx +203 -518
  289. package/src/widgets/echart/echart.tsx +195 -52
  290. package/src/widgets/echart/index.ts +21 -15
  291. package/src/widgets/echart/shared-resize-observer.ts +30 -19
  292. package/src/widgets/echart/style.ts +17 -0
  293. package/src/widgets/formula/formula-ui.test.tsx +68 -376
  294. package/src/widgets/formula/formula-ui.tsx +58 -22
  295. package/src/widgets/formula/index.ts +14 -21
  296. package/src/{widgets-v2 → widgets}/formula/note.tsx +8 -2
  297. package/src/{widgets-v2 → widgets}/formula/series.tsx +8 -25
  298. package/src/widgets/formula/skeleton.tsx +21 -4
  299. package/src/widgets/formula/style.ts +20 -12
  300. package/src/widgets/formula/types.ts +44 -45
  301. package/src/{widgets-v2 → widgets}/formula/value.tsx +2 -1
  302. package/src/widgets/histogram/index.ts +10 -10
  303. package/src/{widgets-v2 → widgets}/histogram/options.ts +1 -1
  304. package/src/widgets/histogram/skeleton.tsx +63 -45
  305. package/src/widgets/histogram/types.ts +59 -18
  306. package/src/{widgets-v2 → widgets}/index.ts +3 -3
  307. package/src/widgets/markdown/index.ts +5 -13
  308. package/src/widgets/markdown/markdown-ui.test.tsx +53 -319
  309. package/src/widgets/markdown/markdown-ui.tsx +43 -47
  310. package/src/widgets/markdown/markdown.tsx +12 -15
  311. package/src/widgets/markdown/skeleton.tsx +26 -6
  312. package/src/widgets/markdown/style.ts +48 -23
  313. package/src/widgets/markdown/types.ts +2 -26
  314. package/src/widgets/note/style.ts +14 -17
  315. package/src/{widgets-v2 → widgets}/note/widget-note.tsx +15 -2
  316. package/src/widgets/pie/index.ts +7 -5
  317. package/src/{widgets-v2 → widgets}/pie/options.test.ts +8 -0
  318. package/src/{widgets-v2 → widgets}/pie/options.ts +4 -9
  319. package/src/widgets/pie/skeleton.tsx +84 -60
  320. package/src/widgets/pie/types.ts +57 -11
  321. package/src/widgets/range/index.ts +4 -16
  322. package/src/widgets/range/range-ui.test.tsx +115 -182
  323. package/src/widgets/range/range-ui.tsx +274 -8
  324. package/src/widgets/range/skeleton.tsx +41 -8
  325. package/src/widgets/range/style.ts +16 -12
  326. package/src/widgets/range/types.ts +26 -28
  327. package/src/widgets/scatterplot/index.ts +11 -5
  328. package/src/{widgets-v2 → widgets}/scatterplot/options.ts +1 -1
  329. package/src/widgets/scatterplot/skeleton.tsx +76 -51
  330. package/src/widgets/scatterplot/types.ts +54 -12
  331. package/src/widgets/selection-summary/selection-summary.tsx +64 -39
  332. package/src/widgets/selection-summary/style.ts +30 -2
  333. package/src/widgets/spread/index.ts +11 -23
  334. package/src/widgets/spread/skeleton.tsx +32 -4
  335. package/src/widgets/spread/spread-ui.test.tsx +98 -358
  336. package/src/widgets/spread/spread-ui.tsx +44 -24
  337. package/src/widgets/spread/types.ts +21 -41
  338. package/src/{widgets-v2 → widgets}/state/widget-state.tsx +13 -3
  339. package/src/widgets/stores/index.ts +46 -10
  340. package/src/{widgets-v2 → widgets}/stores/transforms.ts +1 -1
  341. package/src/widgets/stores/types.ts +42 -181
  342. package/src/{widgets-v2 → widgets}/stores/use-transform.ts +1 -1
  343. package/src/{widgets-v2 → widgets}/stores/widget-store-registry.ts +2 -2
  344. package/src/widgets/subheader/style.ts +5 -13
  345. package/src/widgets/subheader/subheader.test.tsx +22 -37
  346. package/src/widgets/subheader/subheader.tsx +11 -30
  347. package/src/widgets/table/helpers.test.ts +197 -208
  348. package/src/widgets/table/helpers.ts +108 -84
  349. package/src/widgets/table/index.ts +23 -54
  350. package/src/widgets/table/skeleton.tsx +38 -21
  351. package/src/widgets/table/style.ts +23 -14
  352. package/src/widgets/table/table-ui.tsx +348 -44
  353. package/src/widgets/table/types.ts +37 -205
  354. package/src/{widgets-v2 → widgets}/test-utils.ts +1 -1
  355. package/src/widgets/timeseries/index.ts +8 -5
  356. package/src/{widgets-v2 → widgets}/timeseries/options.ts +1 -1
  357. package/src/widgets/timeseries/skeleton.tsx +67 -46
  358. package/src/widgets/timeseries/types.ts +60 -12
  359. package/src/{widgets-v2 → widgets}/types.ts +8 -6
  360. package/src/widgets/utils/index.ts +3 -26
  361. package/src/widgets/wrapper/index.ts +14 -16
  362. package/src/{widgets-v2 → widgets}/wrapper/widget-wrapper.tsx +6 -2
  363. package/dist/actions-CGJD6q0t.js +0 -1318
  364. package/dist/actions-CGJD6q0t.js.map +0 -1
  365. package/dist/actions-yPZwFxSZ.js.map +0 -1
  366. package/dist/category-DGUDabsi.js +0 -829
  367. package/dist/category-DGUDabsi.js.map +0 -1
  368. package/dist/chart-config-B_fdIcD3.js.map +0 -1
  369. package/dist/cjs-CBrZjPCj.js +0 -75
  370. package/dist/cjs-CBrZjPCj.js.map +0 -1
  371. package/dist/components-FED-ArwH.js.map +0 -1
  372. package/dist/copy-button-TTlZONkX.js +0 -34
  373. package/dist/copy-button-TTlZONkX.js.map +0 -1
  374. package/dist/csv-modifiers-D6HGC24b.js +0 -26
  375. package/dist/csv-modifiers-D6HGC24b.js.map +0 -1
  376. package/dist/download-DdaK3qgC.js.map +0 -1
  377. package/dist/echart-BkaV3V5G.js +0 -133
  378. package/dist/echart-BkaV3V5G.js.map +0 -1
  379. package/dist/echart-DeBgdOtX.js.map +0 -1
  380. package/dist/formatter-wVO81tYk.js +0 -6
  381. package/dist/formatter-wVO81tYk.js.map +0 -1
  382. package/dist/formula-YfZmmuYX.js +0 -190
  383. package/dist/formula-YfZmmuYX.js.map +0 -1
  384. package/dist/formula-noJzQwKo.js +0 -285
  385. package/dist/formula-noJzQwKo.js.map +0 -1
  386. package/dist/hooks-zf5gKZYq.js +0 -22
  387. package/dist/hooks-zf5gKZYq.js.map +0 -1
  388. package/dist/markdown-2dfL6Cmb.js.map +0 -1
  389. package/dist/markdown-content-BWUqwx9F.js.map +0 -1
  390. package/dist/range-BCMAl5xf.js.map +0 -1
  391. package/dist/row-CvVGBuy_.js +0 -35
  392. package/dist/row-CvVGBuy_.js.map +0 -1
  393. package/dist/shared-resize-observer-BEiP2rQt.js +0 -157
  394. package/dist/shared-resize-observer-BEiP2rQt.js.map +0 -1
  395. package/dist/smart-tooltip-CwGHCqab.js +0 -34
  396. package/dist/smart-tooltip-CwGHCqab.js.map +0 -1
  397. package/dist/spread-Ccpg9fi0.js.map +0 -1
  398. package/dist/stores-tiFePP0A.js.map +0 -1
  399. package/dist/styles-Y-qGBELO.js +0 -13
  400. package/dist/styles-Y-qGBELO.js.map +0 -1
  401. package/dist/table-Bx9Uj3U0.js.map +0 -1
  402. package/dist/tooltip-DJUGNZxY.js +0 -23
  403. package/dist/tooltip-DJUGNZxY.js.map +0 -1
  404. package/dist/types/components/list-data/list-data-skeleton.d.ts +0 -5
  405. package/dist/types/components/list-data/list-data.d.ts +0 -19
  406. package/dist/types/components/list-data/styles.d.ts +0 -34
  407. package/dist/types/components/list-data/types.d.ts +0 -23
  408. package/dist/types/hooks/index.d.ts +0 -1
  409. package/dist/types/hooks/use-skeleton.d.ts +0 -1
  410. package/dist/types/hooks/use-widget-ref.d.ts +0 -21
  411. package/dist/types/widgets/actions/brush-toggle/brush-overlay.d.ts +0 -24
  412. package/dist/types/widgets/actions/brush-toggle/hit-test.d.ts +0 -19
  413. package/dist/types/widgets/actions/brush-toggle/types.d.ts +0 -73
  414. package/dist/types/widgets/actions/fullscreen/styles.d.ts +0 -16
  415. package/dist/types/widgets/actions/lock-selection/types.d.ts +0 -38
  416. package/dist/types/widgets/actions/relative-data/types.d.ts +0 -29
  417. package/dist/types/widgets/actions/relative-data/utils.d.ts +0 -9
  418. package/dist/types/widgets/actions/searcher/types.d.ts +0 -64
  419. package/dist/types/widgets/actions/shared/styles.d.ts +0 -11
  420. package/dist/types/widgets/actions/stack-toggle/grouped-bar-chart-icon.d.ts +0 -1
  421. package/dist/types/widgets/actions/stack-toggle/types.d.ts +0 -25
  422. package/dist/types/widgets/actions/zoom-toggle/types.d.ts +0 -41
  423. package/dist/types/widgets/bar/config.d.ts +0 -9
  424. package/dist/types/widgets/bar/style.d.ts +0 -37
  425. package/dist/types/widgets/category/config.d.ts +0 -20
  426. package/dist/types/widgets/echart/const.d.ts +0 -1
  427. package/dist/types/widgets/echart/options.d.ts +0 -9
  428. package/dist/types/widgets/echart/types.d.ts +0 -38
  429. package/dist/types/widgets/echart/utils.d.ts +0 -128
  430. package/dist/types/widgets/error/error.d.ts +0 -12
  431. package/dist/types/widgets/error/index.d.ts +0 -2
  432. package/dist/types/widgets/error/types.d.ts +0 -20
  433. package/dist/types/widgets/formula/components/item.d.ts +0 -5
  434. package/dist/types/widgets/formula/components/prefix.d.ts +0 -5
  435. package/dist/types/widgets/formula/components/row.d.ts +0 -5
  436. package/dist/types/widgets/formula/components/series.d.ts +0 -5
  437. package/dist/types/widgets/formula/components/suffix.d.ts +0 -5
  438. package/dist/types/widgets/formula/components/value.d.ts +0 -5
  439. package/dist/types/widgets/formula/config.d.ts +0 -15
  440. package/dist/types/widgets/formula/serializer.d.ts +0 -16
  441. package/dist/types/widgets/histogram/config.d.ts +0 -21
  442. package/dist/types/widgets/histogram/style.d.ts +0 -15
  443. package/dist/types/widgets/loader/index.d.ts +0 -3
  444. package/dist/types/widgets/loader/loader.d.ts +0 -24
  445. package/dist/types/widgets/loader/types.d.ts +0 -9
  446. package/dist/types/widgets/loader/utils.d.ts +0 -35
  447. package/dist/types/widgets/markdown/config.d.ts +0 -14
  448. package/dist/types/widgets/no-data/index.d.ts +0 -2
  449. package/dist/types/widgets/no-data/no-data.d.ts +0 -36
  450. package/dist/types/widgets/no-data/style.d.ts +0 -6
  451. package/dist/types/widgets/no-data/types.d.ts +0 -71
  452. package/dist/types/widgets/note/index.d.ts +0 -2
  453. package/dist/types/widgets/note/note.d.ts +0 -12
  454. package/dist/types/widgets/note/types.d.ts +0 -8
  455. package/dist/types/widgets/pie/config.d.ts +0 -9
  456. package/dist/types/widgets/pie/style.d.ts +0 -15
  457. package/dist/types/widgets/range/components/range-item.d.ts +0 -5
  458. package/dist/types/widgets/range/config.d.ts +0 -7
  459. package/dist/types/widgets/range/serializer.d.ts +0 -16
  460. package/dist/types/widgets/scatterplot/config.d.ts +0 -9
  461. package/dist/types/widgets/scatterplot/style.d.ts +0 -24
  462. package/dist/types/widgets/selection-summary/index.d.ts +0 -2
  463. package/dist/types/widgets/selection-summary/types.d.ts +0 -13
  464. package/dist/types/widgets/skeleton-loader/index.d.ts +0 -2
  465. package/dist/types/widgets/skeleton-loader/skeleton-loader.d.ts +0 -12
  466. package/dist/types/widgets/skeleton-loader/types.d.ts +0 -7
  467. package/dist/types/widgets/spread/components/max-value.d.ts +0 -5
  468. package/dist/types/widgets/spread/components/min-value.d.ts +0 -5
  469. package/dist/types/widgets/spread/components/separator.d.ts +0 -5
  470. package/dist/types/widgets/spread/config.d.ts +0 -16
  471. package/dist/types/widgets/spread/style.d.ts +0 -21
  472. package/dist/types/widgets/stores/use-widget-selector.d.ts +0 -35
  473. package/dist/types/widgets/stores/widget-store.d.ts +0 -60
  474. package/dist/types/widgets/subheader/index.d.ts +0 -2
  475. package/dist/types/widgets/subheader/types.d.ts +0 -10
  476. package/dist/types/widgets/table/components/cell-header.d.ts +0 -5
  477. package/dist/types/widgets/table/components/cell.d.ts +0 -18
  478. package/dist/types/widgets/table/components/pagination-actions.d.ts +0 -5
  479. package/dist/types/widgets/table/components/pagination.d.ts +0 -5
  480. package/dist/types/widgets/table/components/row.d.ts +0 -5
  481. package/dist/types/widgets/table/config.d.ts +0 -21
  482. package/dist/types/widgets/table/hooks/use-pagination.d.ts +0 -41
  483. package/dist/types/widgets/table/hooks/use-selection.d.ts +0 -39
  484. package/dist/types/widgets/table/hooks/use-sort.d.ts +0 -30
  485. package/dist/types/widgets/table/serializer.d.ts +0 -16
  486. package/dist/types/widgets/timeseries/config.d.ts +0 -9
  487. package/dist/types/widgets/timeseries/style.d.ts +0 -38
  488. package/dist/types/widgets/toolbar-actions/index.d.ts +0 -2
  489. package/dist/types/widgets/toolbar-actions/styles.d.ts +0 -37
  490. package/dist/types/widgets/toolbar-actions/toolbar-actions.d.ts +0 -17
  491. package/dist/types/widgets/toolbar-actions/types.d.ts +0 -52
  492. package/dist/types/widgets/utils/chart-config/config-factory.d.ts +0 -38
  493. package/dist/types/widgets/utils/chart-config/csv-modifiers.d.ts +0 -19
  494. package/dist/types/widgets/utils/chart-config/download-config.d.ts +0 -3
  495. package/dist/types/widgets/utils/chart-config/index.d.ts +0 -9
  496. package/dist/types/widgets/utils/formatter.d.ts +0 -2
  497. package/dist/types/widgets/utils/skeleton/index.d.ts +0 -4
  498. package/dist/types/widgets/utils/skeleton/styles.d.ts +0 -19
  499. package/dist/types/widgets/wrapper/components/actions.d.ts +0 -5
  500. package/dist/types/widgets/wrapper/components/options.d.ts +0 -5
  501. package/dist/types/widgets/wrapper/components/title.d.ts +0 -9
  502. package/dist/types/widgets/wrapper/styles.d.ts +0 -89
  503. package/dist/types/widgets/wrapper/types.d.ts +0 -37
  504. package/dist/types/widgets/wrapper/wrapper-ui.d.ts +0 -16
  505. package/dist/types/widgets/wrapper/wrapper.d.ts +0 -16
  506. package/dist/types/widgets-v2/actions/brush-toggle/brush-toggle.d.ts +0 -56
  507. package/dist/types/widgets-v2/actions/change-column/change-column-icon.d.ts +0 -2
  508. package/dist/types/widgets-v2/actions/change-column/change-column.d.ts +0 -29
  509. package/dist/types/widgets-v2/actions/change-column/sortable-column-item.d.ts +0 -14
  510. package/dist/types/widgets-v2/actions/change-column/types.d.ts +0 -10
  511. package/dist/types/widgets-v2/actions/download/download.d.ts +0 -18
  512. package/dist/types/widgets-v2/actions/download/exports.d.ts +0 -37
  513. package/dist/types/widgets-v2/actions/download/types.d.ts +0 -35
  514. package/dist/types/widgets-v2/actions/fullscreen/fullscreen.d.ts +0 -59
  515. package/dist/types/widgets-v2/actions/fullscreen/types.d.ts +0 -14
  516. package/dist/types/widgets-v2/actions/index.d.ts +0 -10
  517. package/dist/types/widgets-v2/actions/lock-selection/lock-selection.d.ts +0 -57
  518. package/dist/types/widgets-v2/actions/relative-data/relative-data.d.ts +0 -39
  519. package/dist/types/widgets-v2/actions/searcher/searcher-toggle.d.ts +0 -23
  520. package/dist/types/widgets-v2/actions/searcher/searcher.d.ts +0 -11
  521. package/dist/types/widgets-v2/actions/stack-toggle/stack-toggle.d.ts +0 -10
  522. package/dist/types/widgets-v2/actions/stack-toggle/style.d.ts +0 -12
  523. package/dist/types/widgets-v2/actions/zoom-toggle/style.d.ts +0 -12
  524. package/dist/types/widgets-v2/actions/zoom-toggle/zoom-toggle.d.ts +0 -35
  525. package/dist/types/widgets-v2/bar/index.d.ts +0 -4
  526. package/dist/types/widgets-v2/bar/skeleton.d.ts +0 -6
  527. package/dist/types/widgets-v2/bar/types.d.ts +0 -46
  528. package/dist/types/widgets-v2/category/category-ui.d.ts +0 -88
  529. package/dist/types/widgets-v2/category/components/category-bar.d.ts +0 -23
  530. package/dist/types/widgets-v2/category/components/category-legend.d.ts +0 -34
  531. package/dist/types/widgets-v2/category/components/category-row-multi.d.ts +0 -31
  532. package/dist/types/widgets-v2/category/components/category-row-other.d.ts +0 -26
  533. package/dist/types/widgets-v2/category/components/category-row-single.d.ts +0 -28
  534. package/dist/types/widgets-v2/category/index.d.ts +0 -10
  535. package/dist/types/widgets-v2/category/skeleton.d.ts +0 -11
  536. package/dist/types/widgets-v2/category/style.d.ts +0 -193
  537. package/dist/types/widgets-v2/category/types.d.ts +0 -55
  538. package/dist/types/widgets-v2/echart/echart-ui.d.ts +0 -44
  539. package/dist/types/widgets-v2/echart/echart.d.ts +0 -75
  540. package/dist/types/widgets-v2/echart/index.d.ts +0 -4
  541. package/dist/types/widgets-v2/echart/shared-resize-observer.d.ts +0 -5
  542. package/dist/types/widgets-v2/formula/formula-ui.d.ts +0 -20
  543. package/dist/types/widgets-v2/formula/index.d.ts +0 -11
  544. package/dist/types/widgets-v2/formula/skeleton.d.ts +0 -4
  545. package/dist/types/widgets-v2/formula/style.d.ts +0 -29
  546. package/dist/types/widgets-v2/formula/types.d.ts +0 -43
  547. package/dist/types/widgets-v2/histogram/index.d.ts +0 -5
  548. package/dist/types/widgets-v2/histogram/skeleton.d.ts +0 -9
  549. package/dist/types/widgets-v2/histogram/types.d.ts +0 -60
  550. package/dist/types/widgets-v2/markdown/index.d.ts +0 -6
  551. package/dist/types/widgets-v2/markdown/markdown-ui.d.ts +0 -12
  552. package/dist/types/widgets-v2/markdown/markdown.d.ts +0 -6
  553. package/dist/types/widgets-v2/markdown/skeleton.d.ts +0 -4
  554. package/dist/types/widgets-v2/markdown/style.d.ts +0 -61
  555. package/dist/types/widgets-v2/markdown/types.d.ts +0 -4
  556. package/dist/types/widgets-v2/note/style.d.ts +0 -26
  557. package/dist/types/widgets-v2/pie/index.d.ts +0 -4
  558. package/dist/types/widgets-v2/pie/skeleton.d.ts +0 -13
  559. package/dist/types/widgets-v2/pie/types.d.ts +0 -57
  560. package/dist/types/widgets-v2/range/index.d.ts +0 -4
  561. package/dist/types/widgets-v2/range/range-ui.d.ts +0 -27
  562. package/dist/types/widgets-v2/range/skeleton.d.ts +0 -9
  563. package/dist/types/widgets-v2/range/style.d.ts +0 -40
  564. package/dist/types/widgets-v2/range/types.d.ts +0 -37
  565. package/dist/types/widgets-v2/scatterplot/index.d.ts +0 -5
  566. package/dist/types/widgets-v2/scatterplot/skeleton.d.ts +0 -12
  567. package/dist/types/widgets-v2/scatterplot/types.d.ts +0 -54
  568. package/dist/types/widgets-v2/selection-summary/selection-summary.d.ts +0 -29
  569. package/dist/types/widgets-v2/selection-summary/style.d.ts +0 -38
  570. package/dist/types/widgets-v2/spread/index.d.ts +0 -7
  571. package/dist/types/widgets-v2/spread/skeleton.d.ts +0 -9
  572. package/dist/types/widgets-v2/spread/spread-ui.d.ts +0 -18
  573. package/dist/types/widgets-v2/spread/types.d.ts +0 -25
  574. package/dist/types/widgets-v2/stores/index.d.ts +0 -8
  575. package/dist/types/widgets-v2/stores/types.d.ts +0 -55
  576. package/dist/types/widgets-v2/subheader/style.d.ts +0 -10
  577. package/dist/types/widgets-v2/subheader/subheader.d.ts +0 -11
  578. package/dist/types/widgets-v2/table/helpers.d.ts +0 -32
  579. package/dist/types/widgets-v2/table/index.d.ts +0 -8
  580. package/dist/types/widgets-v2/table/skeleton.d.ts +0 -22
  581. package/dist/types/widgets-v2/table/style.d.ts +0 -40
  582. package/dist/types/widgets-v2/table/table-ui.d.ts +0 -44
  583. package/dist/types/widgets-v2/table/types.d.ts +0 -48
  584. package/dist/types/widgets-v2/timeseries/index.d.ts +0 -5
  585. package/dist/types/widgets-v2/timeseries/skeleton.d.ts +0 -8
  586. package/dist/types/widgets-v2/timeseries/types.d.ts +0 -60
  587. package/dist/types/widgets-v2/utils/index.d.ts +0 -3
  588. package/dist/types/widgets-v2/wrapper/index.d.ts +0 -4
  589. package/dist/use-widget-selector-VSPhfhNm.js +0 -12
  590. package/dist/use-widget-selector-VSPhfhNm.js.map +0 -1
  591. package/dist/utils-Dr6gf3vD.js.map +0 -1
  592. package/dist/widget-store-BFPKYm4R.js +0 -187
  593. package/dist/widget-store-BFPKYm4R.js.map +0 -1
  594. package/dist/widgets/category.js.map +0 -1
  595. package/dist/widgets/error.js +0 -30
  596. package/dist/widgets/error.js.map +0 -1
  597. package/dist/widgets/loader.js +0 -66
  598. package/dist/widgets/loader.js.map +0 -1
  599. package/dist/widgets/markdown.js.map +0 -1
  600. package/dist/widgets/no-data.js +0 -55
  601. package/dist/widgets/no-data.js.map +0 -1
  602. package/dist/widgets/note.js +0 -127
  603. package/dist/widgets/note.js.map +0 -1
  604. package/dist/widgets/range.js.map +0 -1
  605. package/dist/widgets/selection-summary.js +0 -41
  606. package/dist/widgets/selection-summary.js.map +0 -1
  607. package/dist/widgets/skeleton-loader.js +0 -24
  608. package/dist/widgets/skeleton-loader.js.map +0 -1
  609. package/dist/widgets/spread.js.map +0 -1
  610. package/dist/widgets/subheader.js +0 -51
  611. package/dist/widgets/subheader.js.map +0 -1
  612. package/dist/widgets/table.js.map +0 -1
  613. package/dist/widgets/toolbar-actions.js +0 -145
  614. package/dist/widgets/toolbar-actions.js.map +0 -1
  615. package/dist/widgets/utils.js.map +0 -1
  616. package/dist/widgets/wrapper.js +0 -273
  617. package/dist/widgets/wrapper.js.map +0 -1
  618. package/dist/widgets-v2/actions.js +0 -4
  619. package/dist/widgets-v2/bar.js +0 -260
  620. package/dist/widgets-v2/bar.js.map +0 -1
  621. package/dist/widgets-v2/category.js +0 -2
  622. package/dist/widgets-v2/echart.js +0 -2
  623. package/dist/widgets-v2/formula.js +0 -2
  624. package/dist/widgets-v2/histogram.js +0 -297
  625. package/dist/widgets-v2/histogram.js.map +0 -1
  626. package/dist/widgets-v2/markdown.js +0 -3
  627. package/dist/widgets-v2/pie.js +0 -374
  628. package/dist/widgets-v2/pie.js.map +0 -1
  629. package/dist/widgets-v2/range.js +0 -2
  630. package/dist/widgets-v2/scatterplot.js +0 -330
  631. package/dist/widgets-v2/scatterplot.js.map +0 -1
  632. package/dist/widgets-v2/spread.js +0 -2
  633. package/dist/widgets-v2/stores.js +0 -2
  634. package/dist/widgets-v2/table.js +0 -2
  635. package/dist/widgets-v2/timeseries.js +0 -294
  636. package/dist/widgets-v2/timeseries.js.map +0 -1
  637. package/dist/widgets-v2/utils.js +0 -2
  638. package/dist/widgets-v2.js.map +0 -1
  639. package/dist/zoom-toggle-IsF8BnAp.js.map +0 -1
  640. package/src/components/list-data/list-data-skeleton.test.tsx +0 -10
  641. package/src/components/list-data/list-data-skeleton.tsx +0 -40
  642. package/src/components/list-data/list-data.test.tsx +0 -167
  643. package/src/components/list-data/list-data.tsx +0 -124
  644. package/src/components/list-data/styles.ts +0 -37
  645. package/src/components/list-data/types.ts +0 -25
  646. package/src/hooks/index.ts +0 -1
  647. package/src/hooks/use-skeleton.test.tsx +0 -32
  648. package/src/hooks/use-skeleton.ts +0 -19
  649. package/src/hooks/use-widget-ref.ts +0 -34
  650. package/src/widgets/README.md +0 -277
  651. package/src/widgets/actions/brush-toggle/brush-overlay.test.tsx +0 -465
  652. package/src/widgets/actions/brush-toggle/brush-overlay.tsx +0 -408
  653. package/src/widgets/actions/brush-toggle/hit-test.test.ts +0 -65
  654. package/src/widgets/actions/brush-toggle/hit-test.ts +0 -45
  655. package/src/widgets/actions/brush-toggle/types.ts +0 -78
  656. package/src/widgets/actions/change-column/change-column-dnd.test.tsx +0 -193
  657. package/src/widgets/actions/change-column/sortable-column-item.test.tsx +0 -124
  658. package/src/widgets/actions/download/exports.tsx +0 -118
  659. package/src/widgets/actions/fullscreen/styles.ts +0 -17
  660. package/src/widgets/actions/lock-selection/types.ts +0 -43
  661. package/src/widgets/actions/relative-data/types.ts +0 -33
  662. package/src/widgets/actions/relative-data/utils.test.ts +0 -223
  663. package/src/widgets/actions/relative-data/utils.ts +0 -58
  664. package/src/widgets/actions/searcher/searcher-toggle.test.tsx +0 -354
  665. package/src/widgets/actions/searcher/types.ts +0 -72
  666. package/src/widgets/actions/shared/styles.ts +0 -12
  667. package/src/widgets/actions/stack-toggle/grouped-bar-chart-icon.tsx +0 -14
  668. package/src/widgets/actions/stack-toggle/types.ts +0 -29
  669. package/src/widgets/actions/zoom-toggle/types.ts +0 -44
  670. package/src/widgets/bar/config.ts +0 -140
  671. package/src/widgets/bar/style.ts +0 -33
  672. package/src/widgets/category/components/category-rows.test.tsx +0 -213
  673. package/src/widgets/category/config.ts +0 -86
  674. package/src/widgets/echart/const.ts +0 -1
  675. package/src/widgets/echart/options.ts +0 -57
  676. package/src/widgets/echart/types.ts +0 -45
  677. package/src/widgets/echart/utils.test.ts +0 -277
  678. package/src/widgets/echart/utils.ts +0 -244
  679. package/src/widgets/error/error.test.tsx +0 -331
  680. package/src/widgets/error/error.tsx +0 -51
  681. package/src/widgets/error/index.ts +0 -2
  682. package/src/widgets/error/types.ts +0 -24
  683. package/src/widgets/formula/components/item.test.tsx +0 -249
  684. package/src/widgets/formula/components/item.tsx +0 -21
  685. package/src/widgets/formula/components/prefix.test.tsx +0 -341
  686. package/src/widgets/formula/components/prefix.tsx +0 -19
  687. package/src/widgets/formula/components/row.test.tsx +0 -364
  688. package/src/widgets/formula/components/row.tsx +0 -24
  689. package/src/widgets/formula/components/series.tsx +0 -35
  690. package/src/widgets/formula/components/suffix.test.tsx +0 -383
  691. package/src/widgets/formula/components/suffix.tsx +0 -29
  692. package/src/widgets/formula/components/value.test.tsx +0 -329
  693. package/src/widgets/formula/components/value.tsx +0 -24
  694. package/src/widgets/formula/config.test.ts +0 -37
  695. package/src/widgets/formula/config.ts +0 -38
  696. package/src/widgets/formula/serializer.test.tsx +0 -144
  697. package/src/widgets/formula/serializer.ts +0 -28
  698. package/src/widgets/histogram/config.ts +0 -230
  699. package/src/widgets/histogram/style.ts +0 -8
  700. package/src/widgets/loader/index.ts +0 -4
  701. package/src/widgets/loader/loader.tsx +0 -92
  702. package/src/widgets/loader/types.ts +0 -13
  703. package/src/widgets/loader/utils.test.ts +0 -112
  704. package/src/widgets/loader/utils.ts +0 -57
  705. package/src/widgets/markdown/config.ts +0 -28
  706. package/src/widgets/no-data/index.ts +0 -2
  707. package/src/widgets/no-data/no-data.test.tsx +0 -497
  708. package/src/widgets/no-data/no-data.tsx +0 -112
  709. package/src/widgets/no-data/style.ts +0 -18
  710. package/src/widgets/no-data/types.ts +0 -76
  711. package/src/widgets/note/index.ts +0 -2
  712. package/src/widgets/note/note.test.tsx +0 -391
  713. package/src/widgets/note/note.tsx +0 -124
  714. package/src/widgets/note/types.ts +0 -9
  715. package/src/widgets/pie/config.ts +0 -245
  716. package/src/widgets/pie/style.ts +0 -8
  717. package/src/widgets/range/components/range-item.test.tsx +0 -243
  718. package/src/widgets/range/components/range-item.tsx +0 -214
  719. package/src/widgets/range/config.ts +0 -10
  720. package/src/widgets/range/serializer.test.ts +0 -70
  721. package/src/widgets/range/serializer.ts +0 -27
  722. package/src/widgets/scatterplot/config.ts +0 -136
  723. package/src/widgets/scatterplot/style.ts +0 -21
  724. package/src/widgets/selection-summary/index.ts +0 -6
  725. package/src/widgets/selection-summary/types.ts +0 -14
  726. package/src/widgets/skeleton-loader/index.ts +0 -2
  727. package/src/widgets/skeleton-loader/skeleton-loader.test.tsx +0 -139
  728. package/src/widgets/skeleton-loader/skeleton-loader.tsx +0 -35
  729. package/src/widgets/skeleton-loader/types.ts +0 -8
  730. package/src/widgets/spread/components/max-value.tsx +0 -29
  731. package/src/widgets/spread/components/min-value.tsx +0 -29
  732. package/src/widgets/spread/components/separator.tsx +0 -9
  733. package/src/widgets/spread/config.ts +0 -39
  734. package/src/widgets/spread/style.ts +0 -22
  735. package/src/widgets/stores/use-widget-selector.ts +0 -47
  736. package/src/widgets/stores/widget-store-branches.test.ts +0 -275
  737. package/src/widgets/stores/widget-store-performance.test.ts +0 -750
  738. package/src/widgets/stores/widget-store.test.ts +0 -942
  739. package/src/widgets/stores/widget-store.ts +0 -484
  740. package/src/widgets/subheader/index.ts +0 -3
  741. package/src/widgets/subheader/types.ts +0 -11
  742. package/src/widgets/table/components/cell-header.tsx +0 -58
  743. package/src/widgets/table/components/cell.tsx +0 -82
  744. package/src/widgets/table/components/pagination-actions.tsx +0 -67
  745. package/src/widgets/table/components/pagination.tsx +0 -41
  746. package/src/widgets/table/components/row.tsx +0 -65
  747. package/src/widgets/table/config.test.ts +0 -65
  748. package/src/widgets/table/config.ts +0 -75
  749. package/src/widgets/table/hooks/use-pagination.test.ts +0 -294
  750. package/src/widgets/table/hooks/use-pagination.ts +0 -148
  751. package/src/widgets/table/hooks/use-selection.test.ts +0 -504
  752. package/src/widgets/table/hooks/use-selection.ts +0 -194
  753. package/src/widgets/table/hooks/use-sort.test.ts +0 -296
  754. package/src/widgets/table/hooks/use-sort.ts +0 -131
  755. package/src/widgets/table/serializer.ts +0 -54
  756. package/src/widgets/timeseries/config.ts +0 -136
  757. package/src/widgets/timeseries/style.ts +0 -36
  758. package/src/widgets/toolbar-actions/index.ts +0 -6
  759. package/src/widgets/toolbar-actions/styles.ts +0 -38
  760. package/src/widgets/toolbar-actions/toolbar-actions.test.tsx +0 -691
  761. package/src/widgets/toolbar-actions/toolbar-actions.tsx +0 -145
  762. package/src/widgets/toolbar-actions/types.ts +0 -60
  763. package/src/widgets/utils/chart-config/config-factory.ts +0 -67
  764. package/src/widgets/utils/chart-config/csv-modifiers.ts +0 -56
  765. package/src/widgets/utils/chart-config/download-config.ts +0 -22
  766. package/src/widgets/utils/chart-config/index.ts +0 -29
  767. package/src/widgets/utils/formatter.ts +0 -2
  768. package/src/widgets/utils/skeleton/index.ts +0 -5
  769. package/src/widgets/utils/skeleton/styles.ts +0 -20
  770. package/src/widgets/wrapper/components/actions.test.tsx +0 -105
  771. package/src/widgets/wrapper/components/actions.tsx +0 -35
  772. package/src/widgets/wrapper/components/options.test.tsx +0 -331
  773. package/src/widgets/wrapper/components/options.tsx +0 -81
  774. package/src/widgets/wrapper/components/title.test.tsx +0 -126
  775. package/src/widgets/wrapper/components/title.tsx +0 -35
  776. package/src/widgets/wrapper/styles.ts +0 -98
  777. package/src/widgets/wrapper/types.ts +0 -55
  778. package/src/widgets/wrapper/wrapper-ui.test.tsx +0 -232
  779. package/src/widgets/wrapper/wrapper-ui.tsx +0 -72
  780. package/src/widgets/wrapper/wrapper.test.tsx +0 -365
  781. package/src/widgets/wrapper/wrapper.tsx +0 -60
  782. package/src/widgets-v2/actions/brush-toggle/brush-toggle.test.tsx +0 -180
  783. package/src/widgets-v2/actions/brush-toggle/brush-toggle.tsx +0 -154
  784. package/src/widgets-v2/actions/change-column/change-column-icon.tsx +0 -14
  785. package/src/widgets-v2/actions/change-column/change-column.test.tsx +0 -59
  786. package/src/widgets-v2/actions/change-column/change-column.tsx +0 -189
  787. package/src/widgets-v2/actions/change-column/sortable-column-item.tsx +0 -63
  788. package/src/widgets-v2/actions/change-column/types.ts +0 -11
  789. package/src/widgets-v2/actions/download/download.test.tsx +0 -327
  790. package/src/widgets-v2/actions/download/download.tsx +0 -144
  791. package/src/widgets-v2/actions/download/exports.test.tsx +0 -198
  792. package/src/widgets-v2/actions/download/types.ts +0 -32
  793. package/src/widgets-v2/actions/fullscreen/fullscreen.test.tsx +0 -150
  794. package/src/widgets-v2/actions/fullscreen/fullscreen.tsx +0 -230
  795. package/src/widgets-v2/actions/fullscreen/types.ts +0 -15
  796. package/src/widgets-v2/actions/index.ts +0 -95
  797. package/src/widgets-v2/actions/lock-selection/lock-selection.test.tsx +0 -301
  798. package/src/widgets-v2/actions/lock-selection/lock-selection.tsx +0 -188
  799. package/src/widgets-v2/actions/relative-data/relative-data.test.tsx +0 -71
  800. package/src/widgets-v2/actions/relative-data/relative-data.tsx +0 -107
  801. package/src/widgets-v2/actions/searcher/searcher-toggle.tsx +0 -91
  802. package/src/widgets-v2/actions/searcher/searcher.tsx +0 -111
  803. package/src/widgets-v2/actions/stack-toggle/stack-toggle.test.tsx +0 -61
  804. package/src/widgets-v2/actions/stack-toggle/stack-toggle.tsx +0 -54
  805. package/src/widgets-v2/actions/stack-toggle/style.ts +0 -11
  806. package/src/widgets-v2/actions/zoom-toggle/style.ts +0 -11
  807. package/src/widgets-v2/actions/zoom-toggle/zoom-toggle.test.tsx +0 -107
  808. package/src/widgets-v2/actions/zoom-toggle/zoom-toggle.tsx +0 -106
  809. package/src/widgets-v2/bar/index.ts +0 -10
  810. package/src/widgets-v2/bar/skeleton.tsx +0 -69
  811. package/src/widgets-v2/bar/types.ts +0 -51
  812. package/src/widgets-v2/category/category-ui.test.tsx +0 -909
  813. package/src/widgets-v2/category/category-ui.tsx +0 -479
  814. package/src/widgets-v2/category/components/category-bar.tsx +0 -49
  815. package/src/widgets-v2/category/components/category-legend.tsx +0 -82
  816. package/src/widgets-v2/category/components/category-row-multi.tsx +0 -86
  817. package/src/widgets-v2/category/components/category-row-other.tsx +0 -84
  818. package/src/widgets-v2/category/components/category-row-single.tsx +0 -76
  819. package/src/widgets-v2/category/index.ts +0 -32
  820. package/src/widgets-v2/category/skeleton.tsx +0 -74
  821. package/src/widgets-v2/category/style.ts +0 -329
  822. package/src/widgets-v2/category/types.ts +0 -61
  823. package/src/widgets-v2/echart/echart-ui.test.tsx +0 -327
  824. package/src/widgets-v2/echart/echart-ui.tsx +0 -232
  825. package/src/widgets-v2/echart/echart.test.tsx +0 -229
  826. package/src/widgets-v2/echart/echart.tsx +0 -199
  827. package/src/widgets-v2/echart/index.ts +0 -22
  828. package/src/widgets-v2/echart/shared-resize-observer.ts +0 -56
  829. package/src/widgets-v2/echart/style.ts +0 -8
  830. package/src/widgets-v2/formula/formula-ui.test.tsx +0 -91
  831. package/src/widgets-v2/formula/formula-ui.tsx +0 -66
  832. package/src/widgets-v2/formula/index.ts +0 -17
  833. package/src/widgets-v2/formula/skeleton.tsx +0 -27
  834. package/src/widgets-v2/formula/style.ts +0 -31
  835. package/src/widgets-v2/formula/types.ts +0 -48
  836. package/src/widgets-v2/histogram/index.ts +0 -13
  837. package/src/widgets-v2/histogram/skeleton.tsx +0 -70
  838. package/src/widgets-v2/histogram/types.ts +0 -64
  839. package/src/widgets-v2/markdown/index.ts +0 -6
  840. package/src/widgets-v2/markdown/markdown-ui.test.tsx +0 -75
  841. package/src/widgets-v2/markdown/markdown-ui.tsx +0 -55
  842. package/src/widgets-v2/markdown/markdown.tsx +0 -17
  843. package/src/widgets-v2/markdown/skeleton.tsx +0 -32
  844. package/src/widgets-v2/markdown/style.ts +0 -53
  845. package/src/widgets-v2/markdown/types.ts +0 -4
  846. package/src/widgets-v2/note/style.ts +0 -26
  847. package/src/widgets-v2/pie/index.ts +0 -10
  848. package/src/widgets-v2/pie/skeleton.tsx +0 -94
  849. package/src/widgets-v2/pie/types.ts +0 -62
  850. package/src/widgets-v2/range/index.ts +0 -4
  851. package/src/widgets-v2/range/range-ui.test.tsx +0 -136
  852. package/src/widgets-v2/range/range-ui.tsx +0 -278
  853. package/src/widgets-v2/range/skeleton.tsx +0 -47
  854. package/src/widgets-v2/range/style.ts +0 -41
  855. package/src/widgets-v2/range/types.ts +0 -37
  856. package/src/widgets-v2/scatterplot/index.ts +0 -14
  857. package/src/widgets-v2/scatterplot/skeleton.tsx +0 -84
  858. package/src/widgets-v2/scatterplot/types.ts +0 -59
  859. package/src/widgets-v2/selection-summary/selection-summary.tsx +0 -82
  860. package/src/widgets-v2/selection-summary/style.ts +0 -38
  861. package/src/widgets-v2/spread/index.ts +0 -11
  862. package/src/widgets-v2/spread/skeleton.tsx +0 -38
  863. package/src/widgets-v2/spread/spread-ui.test.tsx +0 -108
  864. package/src/widgets-v2/spread/spread-ui.tsx +0 -52
  865. package/src/widgets-v2/spread/types.ts +0 -27
  866. package/src/widgets-v2/stores/index.ts +0 -49
  867. package/src/widgets-v2/stores/types.ts +0 -64
  868. package/src/widgets-v2/subheader/style.ts +0 -12
  869. package/src/widgets-v2/subheader/subheader.test.tsx +0 -30
  870. package/src/widgets-v2/subheader/subheader.tsx +0 -16
  871. package/src/widgets-v2/table/helpers.test.ts +0 -233
  872. package/src/widgets-v2/table/helpers.ts +0 -131
  873. package/src/widgets-v2/table/index.ts +0 -24
  874. package/src/widgets-v2/table/skeleton.tsx +0 -65
  875. package/src/widgets-v2/table/style.ts +0 -43
  876. package/src/widgets-v2/table/table-ui.tsx +0 -364
  877. package/src/widgets-v2/table/types.ts +0 -55
  878. package/src/widgets-v2/timeseries/index.ts +0 -11
  879. package/src/widgets-v2/timeseries/skeleton.tsx +0 -76
  880. package/src/widgets-v2/timeseries/types.ts +0 -65
  881. package/src/widgets-v2/utils/index.ts +0 -3
  882. package/src/widgets-v2/wrapper/index.ts +0 -14
  883. /package/dist/types/{widgets-v2 → widgets}/actions/brush-toggle/index.d.ts +0 -0
  884. /package/dist/types/{widgets-v2 → widgets}/actions/brush-toggle/labels.d.ts +0 -0
  885. /package/dist/types/{widgets-v2 → widgets}/actions/brush-toggle/transforms.d.ts +0 -0
  886. /package/dist/types/{widgets-v2 → widgets}/actions/change-column/index.d.ts +0 -0
  887. /package/dist/types/{widgets-v2 → widgets}/actions/change-column/labels.d.ts +0 -0
  888. /package/dist/types/{widgets-v2 → widgets}/actions/change-column/style.d.ts +0 -0
  889. /package/dist/types/{widgets-v2 → widgets}/actions/download/constants.d.ts +0 -0
  890. /package/dist/types/{widgets-v2 → widgets}/actions/download/csv-item.d.ts +0 -0
  891. /package/dist/types/{widgets-v2 → widgets}/actions/download/icons.d.ts +0 -0
  892. /package/dist/types/{widgets-v2 → widgets}/actions/download/index.d.ts +0 -0
  893. /package/dist/types/{widgets-v2 → widgets}/actions/download/labels.d.ts +0 -0
  894. /package/dist/types/{widgets-v2 → widgets}/actions/download/style.d.ts +0 -0
  895. /package/dist/types/{widgets-v2 → widgets}/actions/fullscreen/index.d.ts +0 -0
  896. /package/dist/types/{widgets-v2 → widgets}/actions/fullscreen/labels.d.ts +0 -0
  897. /package/dist/types/{widgets-v2 → widgets}/actions/lock-selection/index.d.ts +0 -0
  898. /package/dist/types/{widgets-v2 → widgets}/actions/lock-selection/labels.d.ts +0 -0
  899. /package/dist/types/{widgets-v2/actions/brush-toggle → widgets/actions/lock-selection}/style.d.ts +0 -0
  900. /package/dist/types/{widgets-v2 → widgets}/actions/lock-selection/transforms.d.ts +0 -0
  901. /package/dist/types/{widgets-v2 → widgets}/actions/relative-data/index.d.ts +0 -0
  902. /package/dist/types/{widgets-v2 → widgets}/actions/relative-data/labels.d.ts +0 -0
  903. /package/dist/types/{widgets-v2/actions/lock-selection → widgets/actions/relative-data}/style.d.ts +0 -0
  904. /package/dist/types/{widgets-v2 → widgets}/actions/searcher/filter.d.ts +0 -0
  905. /package/dist/types/{widgets-v2 → widgets}/actions/searcher/index.d.ts +0 -0
  906. /package/dist/types/{widgets-v2 → widgets}/actions/searcher/labels.d.ts +0 -0
  907. /package/dist/types/{widgets-v2 → widgets}/actions/searcher/style.d.ts +0 -0
  908. /package/dist/types/{widgets-v2 → widgets}/actions/show-all/index.d.ts +0 -0
  909. /package/dist/types/{widgets-v2 → widgets}/actions/show-all/labels.d.ts +0 -0
  910. /package/dist/types/{widgets-v2 → widgets}/actions/show-all/show-all.d.ts +0 -0
  911. /package/dist/types/{widgets-v2 → widgets}/actions/show-all/style.d.ts +0 -0
  912. /package/dist/types/{widgets-v2 → widgets}/actions/stack-toggle/index.d.ts +0 -0
  913. /package/dist/types/{widgets-v2 → widgets}/actions/stack-toggle/labels.d.ts +0 -0
  914. /package/dist/types/{widgets-v2/actions/relative-data → widgets/actions/stack-toggle}/style.d.ts +0 -0
  915. /package/dist/types/{widgets-v2 → widgets}/actions/stack-toggle/transforms.d.ts +0 -0
  916. /package/dist/types/{widgets-v2 → widgets}/actions/zoom-toggle/index.d.ts +0 -0
  917. /package/dist/types/{widgets-v2 → widgets}/actions/zoom-toggle/labels.d.ts +0 -0
  918. /package/dist/types/{widgets-v2 → widgets}/actions/zoom-toggle/transforms.d.ts +0 -0
  919. /package/dist/types/{widgets-v2 → widgets}/bar/download.d.ts +0 -0
  920. /package/dist/types/{widgets-v2 → widgets}/bar/options.d.ts +0 -0
  921. /package/dist/types/{widgets-v2 → widgets}/category/category.d.ts +0 -0
  922. /package/dist/types/{widgets-v2 → widgets}/category/download.d.ts +0 -0
  923. /package/dist/types/{widgets-v2 → widgets}/echart/edge-label-clamp.d.ts +0 -0
  924. /package/dist/types/{widgets-v2 → widgets}/echart/use-chart-selection.d.ts +0 -0
  925. /package/dist/types/{widgets-v2 → widgets}/formula/delta.d.ts +0 -0
  926. /package/dist/types/{widgets-v2 → widgets}/formula/download.d.ts +0 -0
  927. /package/dist/types/{widgets-v2 → widgets}/formula/formula.d.ts +0 -0
  928. /package/dist/types/{widgets-v2 → widgets}/formula/note.d.ts +0 -0
  929. /package/dist/types/{widgets-v2 → widgets}/formula/prefix.d.ts +0 -0
  930. /package/dist/types/{widgets-v2 → widgets}/formula/suffix.d.ts +0 -0
  931. /package/dist/types/{widgets-v2 → widgets}/histogram/download.d.ts +0 -0
  932. /package/dist/types/{widgets-v2 → widgets}/histogram/options.d.ts +0 -0
  933. /package/dist/types/{widgets-v2 → widgets}/histogram/transforms.d.ts +0 -0
  934. /package/dist/types/{widgets-v2 → widgets}/markdown/download.d.ts +0 -0
  935. /package/dist/types/{widgets-v2 → widgets}/markdown/markdown-content.d.ts +0 -0
  936. /package/dist/types/{widgets-v2 → widgets}/note/labels.d.ts +0 -0
  937. /package/dist/types/{widgets-v2 → widgets}/note/widget-note.d.ts +0 -0
  938. /package/dist/types/{widgets-v2 → widgets}/pie/download.d.ts +0 -0
  939. /package/dist/types/{widgets-v2 → widgets}/pie/options.d.ts +0 -0
  940. /package/dist/types/{widgets-v2 → widgets}/provider/widget-provider.d.ts +0 -0
  941. /package/dist/types/{widgets-v2 → widgets}/range/range.d.ts +0 -0
  942. /package/dist/types/{widgets-v2 → widgets}/scatterplot/download.d.ts +0 -0
  943. /package/dist/types/{widgets-v2 → widgets}/scatterplot/options.d.ts +0 -0
  944. /package/dist/types/{widgets-v2 → widgets}/scatterplot/transforms.d.ts +0 -0
  945. /package/dist/types/{widgets-v2 → widgets}/selection-summary/labels.d.ts +0 -0
  946. /package/dist/types/{widgets-v2 → widgets}/spread/band.d.ts +0 -0
  947. /package/dist/types/{widgets-v2 → widgets}/spread/download.d.ts +0 -0
  948. /package/dist/types/{widgets-v2 → widgets}/spread/separator.d.ts +0 -0
  949. /package/dist/types/{widgets-v2 → widgets}/spread/spread.d.ts +0 -0
  950. /package/dist/types/{widgets-v2 → widgets}/state/labels.d.ts +0 -0
  951. /package/dist/types/{widgets-v2 → widgets}/state/style.d.ts +0 -0
  952. /package/dist/types/{widgets-v2 → widgets}/state/widget-state.d.ts +0 -0
  953. /package/dist/types/{widgets-v2 → widgets}/stores/pipeline-middleware.d.ts +0 -0
  954. /package/dist/types/{widgets-v2 → widgets}/stores/transforms.d.ts +0 -0
  955. /package/dist/types/{widgets-v2 → widgets}/stores/use-echart-instance.d.ts +0 -0
  956. /package/dist/types/{widgets-v2 → widgets}/stores/use-transform-enabled.d.ts +0 -0
  957. /package/dist/types/{widgets-v2 → widgets}/stores/use-transform.d.ts +0 -0
  958. /package/dist/types/{widgets-v2 → widgets}/stores/widget-context.d.ts +0 -0
  959. /package/dist/types/{widgets-v2 → widgets}/stores/widget-store-registry.d.ts +0 -0
  960. /package/dist/types/{widgets-v2 → widgets}/table/download.d.ts +0 -0
  961. /package/dist/types/{widgets-v2 → widgets}/table/labels.d.ts +0 -0
  962. /package/dist/types/{widgets-v2 → widgets}/table/table.d.ts +0 -0
  963. /package/dist/types/{widgets-v2 → widgets}/table/transforms.d.ts +0 -0
  964. /package/dist/types/{widgets-v2 → widgets}/timeseries/download.d.ts +0 -0
  965. /package/dist/types/{widgets-v2 → widgets}/timeseries/options.d.ts +0 -0
  966. /package/dist/types/{widgets-v2 → widgets}/timeseries/transforms.d.ts +0 -0
  967. /package/dist/types/{widgets-v2 → widgets}/toolbox/labels.d.ts +0 -0
  968. /package/dist/types/{widgets-v2 → widgets}/toolbox/style.d.ts +0 -0
  969. /package/dist/types/{widgets-v2 → widgets}/toolbox/toolbox.d.ts +0 -0
  970. /package/dist/types/{widgets-v2 → widgets}/utils/data-zoom-layout.d.ts +0 -0
  971. /package/dist/types/{widgets-v2 → widgets}/utils/merge-options.d.ts +0 -0
  972. /package/dist/types/widgets/utils/{chart-config/option-builders.d.ts → option-builders.d.ts} +0 -0
  973. /package/dist/types/{widgets-v2 → widgets}/utils/resolve-theme-color.d.ts +0 -0
  974. /package/dist/types/{widgets-v2 → widgets}/wrapper/labels.d.ts +0 -0
  975. /package/dist/types/{widgets-v2 → widgets}/wrapper/style.d.ts +0 -0
  976. /package/dist/types/{widgets-v2 → widgets}/wrapper/widget-actions.d.ts +0 -0
  977. /package/dist/types/{widgets-v2 → widgets}/wrapper/widget-content.d.ts +0 -0
  978. /package/dist/types/{widgets-v2 → widgets}/wrapper/widget-wrapper.d.ts +0 -0
  979. /package/src/{widgets-v2 → widgets}/actions/brush-toggle/index.ts +0 -0
  980. /package/src/{widgets-v2 → widgets}/actions/brush-toggle/labels.ts +0 -0
  981. /package/src/{widgets-v2 → widgets}/actions/brush-toggle/transforms.test.ts +0 -0
  982. /package/src/{widgets-v2 → widgets}/actions/brush-toggle/transforms.ts +0 -0
  983. /package/src/{widgets-v2 → widgets}/actions/change-column/index.ts +0 -0
  984. /package/src/{widgets-v2 → widgets}/actions/change-column/labels.ts +0 -0
  985. /package/src/{widgets-v2 → widgets}/actions/change-column/style.ts +0 -0
  986. /package/src/{widgets-v2 → widgets}/actions/download/constants.ts +0 -0
  987. /package/src/{widgets-v2 → widgets}/actions/download/csv-item.test.tsx +0 -0
  988. /package/src/{widgets-v2 → widgets}/actions/download/csv-item.tsx +0 -0
  989. /package/src/{widgets-v2 → widgets}/actions/download/icons.tsx +0 -0
  990. /package/src/{widgets-v2 → widgets}/actions/download/index.ts +0 -0
  991. /package/src/{widgets-v2 → widgets}/actions/download/labels.ts +0 -0
  992. /package/src/{widgets-v2 → widgets}/actions/download/png-item.test.tsx +0 -0
  993. /package/src/{widgets-v2 → widgets}/actions/download/style.ts +0 -0
  994. /package/src/{widgets-v2 → widgets}/actions/fullscreen/index.ts +0 -0
  995. /package/src/{widgets-v2 → widgets}/actions/fullscreen/labels.ts +0 -0
  996. /package/src/{widgets-v2 → widgets}/actions/lock-selection/index.ts +0 -0
  997. /package/src/{widgets-v2 → widgets}/actions/lock-selection/labels.ts +0 -0
  998. /package/src/{widgets-v2/actions/brush-toggle → widgets/actions/lock-selection}/style.ts +0 -0
  999. /package/src/{widgets-v2 → widgets}/actions/lock-selection/transforms.ts +0 -0
  1000. /package/src/{widgets-v2 → widgets}/actions/relative-data/index.ts +0 -0
  1001. /package/src/{widgets-v2 → widgets}/actions/relative-data/labels.ts +0 -0
  1002. /package/src/{widgets-v2/actions/lock-selection → widgets/actions/relative-data}/style.ts +0 -0
  1003. /package/src/{widgets-v2 → widgets}/actions/relative-data/transforms.test.ts +0 -0
  1004. /package/src/{widgets-v2 → widgets}/actions/searcher/filter.ts +0 -0
  1005. /package/src/{widgets-v2 → widgets}/actions/searcher/index.ts +0 -0
  1006. /package/src/{widgets-v2 → widgets}/actions/searcher/labels.ts +0 -0
  1007. /package/src/{widgets-v2 → widgets}/actions/searcher/searcher.test.tsx +0 -0
  1008. /package/src/{widgets-v2 → widgets}/actions/searcher/style.ts +0 -0
  1009. /package/src/{widgets-v2 → widgets}/actions/show-all/index.ts +0 -0
  1010. /package/src/{widgets-v2 → widgets}/actions/show-all/labels.ts +0 -0
  1011. /package/src/{widgets-v2 → widgets}/actions/show-all/show-all.test.tsx +0 -0
  1012. /package/src/{widgets-v2 → widgets}/actions/show-all/show-all.tsx +0 -0
  1013. /package/src/{widgets-v2 → widgets}/actions/show-all/style.ts +0 -0
  1014. /package/src/{widgets-v2 → widgets}/actions/stack-toggle/index.ts +0 -0
  1015. /package/src/{widgets-v2 → widgets}/actions/stack-toggle/labels.ts +0 -0
  1016. /package/src/{widgets-v2/actions/relative-data → widgets/actions/stack-toggle}/style.ts +0 -0
  1017. /package/src/{widgets-v2 → widgets}/actions/stack-toggle/transforms.test.ts +0 -0
  1018. /package/src/{widgets-v2 → widgets}/actions/stack-toggle/transforms.ts +0 -0
  1019. /package/src/{widgets-v2 → widgets}/actions/zoom-toggle/index.ts +0 -0
  1020. /package/src/{widgets-v2 → widgets}/actions/zoom-toggle/labels.ts +0 -0
  1021. /package/src/{widgets-v2 → widgets}/actions/zoom-toggle/transforms.test.ts +0 -0
  1022. /package/src/{widgets-v2 → widgets}/actions/zoom-toggle/transforms.ts +0 -0
  1023. /package/src/{widgets-v2 → widgets}/bar/download.test.tsx +0 -0
  1024. /package/src/{widgets-v2 → widgets}/bar/download.tsx +0 -0
  1025. /package/src/{widgets-v2 → widgets}/bar/options.test.ts +0 -0
  1026. /package/src/{widgets-v2 → widgets}/bar/skeleton.test.tsx +0 -0
  1027. /package/src/{widgets-v2 → widgets}/category/category.relative-data.test.tsx +0 -0
  1028. /package/src/{widgets-v2 → widgets}/category/category.stack-toggle.test.tsx +0 -0
  1029. /package/src/{widgets-v2 → widgets}/category/category.test.tsx +0 -0
  1030. /package/src/{widgets-v2 → widgets}/category/category.tsx +0 -0
  1031. /package/src/{widgets-v2 → widgets}/category/components/category-bar-stacked.test.tsx +0 -0
  1032. /package/src/{widgets-v2 → widgets}/category/components/category-bar.test.tsx +0 -0
  1033. /package/src/{widgets-v2 → widgets}/category/components/category-row-other.test.tsx +0 -0
  1034. /package/src/{widgets-v2 → widgets}/category/components/category-row-stacked.test.tsx +0 -0
  1035. /package/src/{widgets-v2 → widgets}/category/download.test.ts +0 -0
  1036. /package/src/{widgets-v2 → widgets}/category/download.ts +0 -0
  1037. /package/src/{widgets-v2 → widgets}/category/skeleton.test.tsx +0 -0
  1038. /package/src/{widgets-v2 → widgets}/echart/edge-label-clamp.test.ts +0 -0
  1039. /package/src/{widgets-v2 → widgets}/echart/edge-label-clamp.ts +0 -0
  1040. /package/src/{widgets-v2 → widgets}/echart/shared-resize-observer.test.ts +0 -0
  1041. /package/src/{widgets-v2 → widgets}/echart/use-chart-selection.test.tsx +0 -0
  1042. /package/src/{widgets-v2 → widgets}/echart/use-chart-selection.ts +0 -0
  1043. /package/src/{widgets-v2 → widgets}/formula/delta.tsx +0 -0
  1044. /package/src/{widgets-v2 → widgets}/formula/download.test.tsx +0 -0
  1045. /package/src/{widgets-v2 → widgets}/formula/download.tsx +0 -0
  1046. /package/src/{widgets-v2 → widgets}/formula/formula.test.tsx +0 -0
  1047. /package/src/{widgets-v2 → widgets}/formula/formula.tsx +0 -0
  1048. /package/src/{widgets-v2 → widgets}/formula/prefix.tsx +0 -0
  1049. /package/src/{widgets-v2 → widgets}/formula/skeleton.test.tsx +0 -0
  1050. /package/src/{widgets-v2 → widgets}/formula/subcomponents.test.tsx +0 -0
  1051. /package/src/{widgets-v2 → widgets}/formula/suffix.tsx +0 -0
  1052. /package/src/{widgets-v2 → widgets}/histogram/download.test.ts +0 -0
  1053. /package/src/{widgets-v2 → widgets}/histogram/download.ts +0 -0
  1054. /package/src/{widgets-v2 → widgets}/histogram/options.test.ts +0 -0
  1055. /package/src/{widgets-v2 → widgets}/histogram/skeleton.test.tsx +0 -0
  1056. /package/src/{widgets-v2 → widgets}/histogram/transforms.test.ts +0 -0
  1057. /package/src/{widgets-v2 → widgets}/histogram/transforms.ts +0 -0
  1058. /package/src/{widgets-v2 → widgets}/markdown/download.test.ts +0 -0
  1059. /package/src/{widgets-v2 → widgets}/markdown/download.tsx +0 -0
  1060. /package/src/{widgets-v2 → widgets}/markdown/markdown-content.test.tsx +0 -0
  1061. /package/src/{widgets-v2 → widgets}/markdown/markdown-content.tsx +0 -0
  1062. /package/src/{widgets-v2 → widgets}/markdown/markdown.test.tsx +0 -0
  1063. /package/src/{widgets-v2 → widgets}/markdown/skeleton.test.tsx +0 -0
  1064. /package/src/{widgets-v2 → widgets}/note/labels.ts +0 -0
  1065. /package/src/{widgets-v2 → widgets}/note/widget-note.test.tsx +0 -0
  1066. /package/src/{widgets-v2 → widgets}/pie/download.test.ts +0 -0
  1067. /package/src/{widgets-v2 → widgets}/pie/download.ts +0 -0
  1068. /package/src/{widgets-v2 → widgets}/pie/skeleton.test.tsx +0 -0
  1069. /package/src/{widgets-v2 → widgets}/provider/widget-provider.test.tsx +0 -0
  1070. /package/src/{widgets-v2 → widgets}/provider/widget-provider.tsx +0 -0
  1071. /package/src/{widgets-v2 → widgets}/range/range.test.tsx +0 -0
  1072. /package/src/{widgets-v2 → widgets}/range/range.tsx +0 -0
  1073. /package/src/{widgets-v2 → widgets}/range/skeleton.test.tsx +0 -0
  1074. /package/src/{widgets-v2 → widgets}/scatterplot/download.test.ts +0 -0
  1075. /package/src/{widgets-v2 → widgets}/scatterplot/download.ts +0 -0
  1076. /package/src/{widgets-v2 → widgets}/scatterplot/options.test.ts +0 -0
  1077. /package/src/{widgets-v2 → widgets}/scatterplot/skeleton.test.tsx +0 -0
  1078. /package/src/{widgets-v2 → widgets}/scatterplot/transforms.test.ts +0 -0
  1079. /package/src/{widgets-v2 → widgets}/scatterplot/transforms.ts +0 -0
  1080. /package/src/{widgets-v2 → widgets}/selection-summary/labels.ts +0 -0
  1081. /package/src/{widgets-v2 → widgets}/selection-summary/selection-summary.test.tsx +0 -0
  1082. /package/src/{widgets-v2 → widgets}/spread/band.test.ts +0 -0
  1083. /package/src/{widgets-v2 → widgets}/spread/band.ts +0 -0
  1084. /package/src/{widgets-v2 → widgets}/spread/download.test.ts +0 -0
  1085. /package/src/{widgets-v2 → widgets}/spread/download.ts +0 -0
  1086. /package/src/{widgets-v2 → widgets}/spread/separator.tsx +0 -0
  1087. /package/src/{widgets-v2 → widgets}/spread/skeleton.test.tsx +0 -0
  1088. /package/src/{widgets-v2 → widgets}/spread/spread.test.tsx +0 -0
  1089. /package/src/{widgets-v2 → widgets}/spread/spread.tsx +0 -0
  1090. /package/src/{widgets-v2 → widgets}/state/labels.test.ts +0 -0
  1091. /package/src/{widgets-v2 → widgets}/state/labels.ts +0 -0
  1092. /package/src/{widgets-v2 → widgets}/state/style.ts +0 -0
  1093. /package/src/{widgets-v2 → widgets}/state/widget-state.test.tsx +0 -0
  1094. /package/src/{widgets-v2 → widgets}/stores/pipeline-middleware.test.ts +0 -0
  1095. /package/src/{widgets-v2 → widgets}/stores/pipeline-middleware.ts +0 -0
  1096. /package/src/{widgets-v2 → widgets}/stores/transforms.test.ts +0 -0
  1097. /package/src/{widgets-v2 → widgets}/stores/use-echart-instance.test.tsx +0 -0
  1098. /package/src/{widgets-v2 → widgets}/stores/use-echart-instance.ts +0 -0
  1099. /package/src/{widgets-v2 → widgets}/stores/use-transform-enabled.test.tsx +0 -0
  1100. /package/src/{widgets-v2 → widgets}/stores/use-transform-enabled.ts +0 -0
  1101. /package/src/{widgets-v2 → widgets}/stores/use-transform.test.tsx +0 -0
  1102. /package/src/{widgets-v2 → widgets}/stores/widget-context.test.tsx +0 -0
  1103. /package/src/{widgets-v2 → widgets}/stores/widget-context.ts +0 -0
  1104. /package/src/{widgets-v2 → widgets}/stores/widget-store-registry.test.ts +0 -0
  1105. /package/src/{widgets-v2 → widgets}/table/download.test.ts +0 -0
  1106. /package/src/{widgets-v2 → widgets}/table/download.ts +0 -0
  1107. /package/src/{widgets-v2 → widgets}/table/labels.tsx +0 -0
  1108. /package/src/{widgets-v2 → widgets}/table/skeleton.test.tsx +0 -0
  1109. /package/src/{widgets-v2 → widgets}/table/table-ui.test.tsx +0 -0
  1110. /package/src/{widgets-v2 → widgets}/table/table.test.tsx +0 -0
  1111. /package/src/{widgets-v2 → widgets}/table/table.tsx +0 -0
  1112. /package/src/{widgets-v2 → widgets}/table/transforms.test.ts +0 -0
  1113. /package/src/{widgets-v2 → widgets}/table/transforms.ts +0 -0
  1114. /package/src/{widgets-v2 → widgets}/timeseries/download.test.ts +0 -0
  1115. /package/src/{widgets-v2 → widgets}/timeseries/download.ts +0 -0
  1116. /package/src/{widgets-v2 → widgets}/timeseries/options.test.ts +0 -0
  1117. /package/src/{widgets-v2 → widgets}/timeseries/skeleton.test.tsx +0 -0
  1118. /package/src/{widgets-v2 → widgets}/timeseries/transforms.test.ts +0 -0
  1119. /package/src/{widgets-v2 → widgets}/timeseries/transforms.ts +0 -0
  1120. /package/src/{widgets-v2 → widgets}/toolbox/labels.ts +0 -0
  1121. /package/src/{widgets-v2 → widgets}/toolbox/style.ts +0 -0
  1122. /package/src/{widgets-v2 → widgets}/toolbox/toolbox.test.tsx +0 -0
  1123. /package/src/{widgets-v2 → widgets}/toolbox/toolbox.tsx +0 -0
  1124. /package/src/{widgets-v2 → widgets}/utils/data-zoom-layout.ts +0 -0
  1125. /package/src/{widgets-v2 → widgets}/utils/merge-options.test.ts +0 -0
  1126. /package/src/{widgets-v2 → widgets}/utils/merge-options.ts +0 -0
  1127. /package/src/widgets/utils/{chart-config/option-builders.test.ts → option-builders.test.ts} +0 -0
  1128. /package/src/widgets/utils/{chart-config/option-builders.ts → option-builders.ts} +0 -0
  1129. /package/src/{widgets-v2 → widgets}/utils/resolve-theme-color.test.ts +0 -0
  1130. /package/src/{widgets-v2 → widgets}/utils/resolve-theme-color.ts +0 -0
  1131. /package/src/{widgets-v2 → widgets}/wrapper/labels.ts +0 -0
  1132. /package/src/{widgets-v2 → widgets}/wrapper/style.ts +0 -0
  1133. /package/src/{widgets-v2 → widgets}/wrapper/widget-actions.test.tsx +0 -0
  1134. /package/src/{widgets-v2 → widgets}/wrapper/widget-actions.tsx +0 -0
  1135. /package/src/{widgets-v2 → widgets}/wrapper/widget-content.test.tsx +0 -0
  1136. /package/src/{widgets-v2 → widgets}/wrapper/widget-content.tsx +0 -0
  1137. /package/src/{widgets-v2 → widgets}/wrapper/widget-wrapper.test.tsx +0 -0
@@ -1,11 +1,10 @@
1
- import { _ as e, v as t } from "./actions-CGJD6q0t.js";
2
- //#region src/widgets/utils/chart-config/option-builders.ts
3
- function n(e) {
1
+ //#region src/widgets/utils/option-builders.ts
2
+ function e(e) {
4
3
  if (e === 0) return 0;
5
4
  let t = Math.abs(e), n = 10 ** Math.floor(Math.log10(t)), r = Math.ceil(t / n) * n;
6
5
  return e < 0 ? -r : r;
7
6
  }
8
- function r({ hasLegend: e, labelFormatter: t }) {
7
+ function t({ hasLegend: e, labelFormatter: t }) {
9
8
  return {
10
9
  show: e,
11
10
  icon: "circle",
@@ -16,49 +15,26 @@ function r({ hasLegend: e, labelFormatter: t }) {
16
15
  ...t && { formatter: (e) => String(t(e)) }
17
16
  };
18
17
  }
19
- function i(e, t) {
18
+ function n(e, t) {
20
19
  return {
21
20
  ...!e && { bottom: parseInt(t.spacing(3)) },
22
21
  ...e && { bottom: parseInt(t.spacing(7)) }
23
22
  };
24
23
  }
25
- function a(e) {
24
+ function r(e) {
26
25
  return {
27
26
  fontSize: e.typography.overlineDelicate?.fontSize,
28
27
  fontFamily: e.typography.overlineDelicate?.fontFamily,
29
28
  color: e.palette.black?.[60] ?? e.palette.text.secondary
30
29
  };
31
30
  }
32
- function o(e) {
31
+ function i(e) {
33
32
  return function(t, n, r, i, a) {
34
33
  let o = { top: parseInt(e.spacing(.5)) };
35
34
  return a.contentSize[0] < a.viewSize[0] - t[0] ? o.left = t[0] : o.right = a.viewSize[0] - t[0], o;
36
35
  };
37
36
  }
38
- function s(e) {
39
- if (e) return (t) => e(t);
40
- }
41
- function c(e, t) {
42
- let n = e && !Array.isArray(e), r = e, i = t && n ? (e) => String(t(e)) : void 0;
43
- return {
44
- ...r,
45
- axisLabel: {
46
- ...typeof r.axisLabel == "object" && r.axisLabel ? r.axisLabel : {},
47
- formatter: i
48
- }
49
- };
50
- }
51
- function l(e, t) {
52
- let n = s(t), r = e && !Array.isArray(e), i = e;
53
- return (!r || i.type !== "value") && (n = void 0), {
54
- ...i,
55
- axisLabel: {
56
- ...typeof i.axisLabel == "object" && i.axisLabel ? i.axisLabel : {},
57
- formatter: n
58
- }
59
- };
60
- }
61
- function u(e) {
37
+ function a(e) {
62
38
  return (t) => {
63
39
  let n = Array.isArray(t) ? t : [t], r = (e, t) => `<div style="margin: 0px 0 0;line-height:1;">${e ? `<div style="font-size:11px;color:#FFFFFF;font-weight:400;line-height:1; margin-bottom: 10px">${e}</div>` : ""}<div style="margin: 0;line-height:1;">${t}</div><div style="clear:both"></div></div>`, i = n.map((t) => {
64
40
  let { name: r, seriesName: i, marker: a, value: o } = e(t, n);
@@ -72,7 +48,7 @@ function u(e) {
72
48
  return r(a, i.map(({ seriesName: e, marker: t, value: n }) => `<div style="${o}"><div style="margin: 0px 0 0;line-height:1;">${t}${e ? `<span style="font-size:11px;color:#FFFFFF;font-weight:400;margin-left:2px;margin-right:10px">${e}</span>` : ""}<span style="float:right;margin-left:10px;font-size:11px;color:#FFFFFF;font-weight:900">${n}</span></div></div>`).join(""));
73
49
  };
74
50
  }
75
- function d(e, t = "y") {
51
+ function o(e, t = "y") {
76
52
  return e ? { label: { formatter: (n) => {
77
53
  let r = n.encode?.[t]?.[0];
78
54
  if (r === void 0) return "";
@@ -80,29 +56,7 @@ function d(e, t = "y") {
80
56
  return typeof o == "number" ? e(o) : String(o ?? "");
81
57
  } } } : {};
82
58
  }
83
- function f(e) {
84
- return e ? { label: { formatter: (t) => {
85
- let n = t.value;
86
- return typeof n == "number" ? e(n) : String(n ?? "");
87
- } } } : {};
88
- }
89
- //#endregion
90
- //#region src/widgets/utils/chart-config/download-config.ts
91
- function p(n) {
92
- return function({ refUI: r }) {
93
- return [{
94
- ...t,
95
- modifier: () => t.modifier(r)
96
- }, {
97
- ...e,
98
- modifier: async (t) => {
99
- let r = n(t);
100
- return e.modifier(r);
101
- }
102
- }];
103
- };
104
- }
105
59
  //#endregion
106
- export { i as a, d as c, o as d, n as f, a as i, s as l, c as n, f as o, l as r, r as s, p as t, u };
60
+ export { a, o as i, n, i as o, t as r, e as s, r as t };
107
61
 
108
- //# sourceMappingURL=chart-config-B_fdIcD3.js.map
62
+ //# sourceMappingURL=option-builders-DQivvvbb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"option-builders-DQivvvbb.js","names":[],"sources":["../src/widgets/utils/option-builders.ts"],"sourcesContent":["import type { Theme } from '@mui/material'\nimport type { LegendComponentOption } from 'echarts'\nimport type {\n CallbackDataParams,\n TopLevelFormatterParams,\n} from 'echarts/types/dist/shared'\n\n/**\n * Shared EChart configuration builders for chart widgets\n */\n\n/**\n * Rounds a value up to the nearest \"nice\" number.\n * A nice number is a multiple of 10^floor(log10(value)).\n *\n * Examples: 547 → 600, 200 → 200, 1200 → 2000, 18 → 20, 5 → 5, -547 → -500\n */\nexport function niceNum(value: number): number {\n if (value === 0) return 0\n const absValue = Math.abs(value)\n const base = Math.pow(10, Math.floor(Math.log10(absValue)))\n const rounded = Math.ceil(absValue / base) * base\n return value < 0 ? -rounded : rounded\n}\n\n/**\n * Builds standard legend configuration for chart widgets\n *\n * @param params - Legend configuration parameters\n * @param params.hasLegend - Whether to show the legend\n * @param params.labelFormatter - Optional formatter for legend item names\n * @returns Legend configuration object\n */\nexport function buildLegendConfig({\n hasLegend,\n labelFormatter,\n}: {\n hasLegend: boolean\n labelFormatter?: (value: string | number) => string | number\n}): LegendComponentOption {\n return {\n show: hasLegend,\n icon: 'circle' as const,\n left: 0,\n bottom: 0,\n orient: 'horizontal',\n type: 'scroll',\n ...(labelFormatter && {\n formatter: (name: string) => String(labelFormatter(name)),\n }),\n }\n}\n\n/**\n * Builds standard grid configuration with legend-aware spacing\n *\n * @param hasLegend - Whether the chart has a legend\n * @param theme - MUI theme for spacing\n * @param additionalConfig - Additional grid configuration to merge\n * @returns Grid configuration object\n */\nexport function buildGridConfig(hasLegend: boolean, theme: Theme) {\n return {\n ...(!hasLegend && { bottom: parseInt(theme.spacing(3)) }),\n ...(hasLegend && { bottom: parseInt(theme.spacing(7)) }),\n }\n}\n\n/**\n * Builds the shared axis-label text style for chart widgets, matching the\n * design's \"Overline (Delicate)\" token (Inter, 10px) in the secondary text\n * colour (`rgba(44,48,50,0.6)`). Spread into an ECharts `axisLabel` for both\n * x and y axes so every chart's labels stay consistent.\n *\n * Note: the token's `letterSpacing` and `textTransform: uppercase` are not\n * representable in ECharts canvas text, so only font size/family/colour are\n * applied.\n *\n * @param theme - MUI theme providing the typography token and palette\n * @returns `{ fontSize, fontFamily, color }` for an ECharts `axisLabel`\n */\nexport function buildAxisLabelStyle(theme: Theme): {\n fontSize: string | number | undefined\n fontFamily: string | undefined\n color: string\n} {\n return {\n fontSize: theme.typography.overlineDelicate?.fontSize,\n fontFamily: theme.typography.overlineDelicate?.fontFamily,\n color: theme.palette.black?.[60] ?? theme.palette.text.secondary,\n }\n}\n\n/**\n * Creates a tooltip position calculator that handles overflow\n * Used by bar, histogram, and scatterplot widgets\n *\n * @param theme - MUI theme for spacing\n * @returns Tooltip position function\n */\nexport function createTooltipPositioner(theme: Theme) {\n return function (\n point: [number, number],\n _params: unknown,\n _dom: unknown,\n _rect: unknown,\n size: { contentSize: [number, number]; viewSize: [number, number] },\n ) {\n const position = { top: parseInt(theme.spacing(0.5)) } as Record<\n string,\n number\n >\n\n // Position tooltip left or right based on available space\n if (size.contentSize[0] < size.viewSize[0] - point[0]) {\n position.left = point[0]\n } else {\n position.right = size.viewSize[0] - point[0]\n }\n\n return position\n }\n}\n\n/**\n * Creates an axis label formatter for ECharts\n * Used to format numeric axis labels with a widget formatter\n *\n * @param formatter - Optional formatter function from widget config\n * @returns Axis label formatter function or undefined\n */\nexport function createAxisLabelFormatter(\n formatter?: (value: number) => string,\n) {\n if (!formatter) return undefined\n return (value: number) => formatter(value)\n}\n\n/**\n * Applies labelFormatter to xAxis configuration\n * Applies to any xAxis regardless of axis type (category, value, etc.)\n *\n * @param xAxis - Existing xAxis configuration\n * @param labelFormatter - Optional labelFormatter function from widget config\n * @returns Updated xAxis configuration\n */\nexport function applyXAxisFormatter(\n xAxis: unknown,\n formatter?: (value: string | number) => string | number,\n) {\n const xAxisIsObject = xAxis && !Array.isArray(xAxis)\n const xAxisTyped = xAxis as { type?: string; axisLabel?: unknown }\n\n const axisFormatter =\n formatter && xAxisIsObject\n ? (value: string | number) => String(formatter(value))\n : undefined\n\n return {\n ...xAxisTyped,\n axisLabel: {\n ...(typeof xAxisTyped.axisLabel === 'object' && xAxisTyped.axisLabel\n ? xAxisTyped.axisLabel\n : {}),\n formatter: axisFormatter,\n },\n }\n}\n\n/**\n * Applies formatter to yAxis configuration\n * Only applies to single axis objects (not arrays) with type 'value'\n *\n * @param yAxis - Existing yAxis configuration\n * @param formatter - Optional formatter function from widget config\n * @returns Updated yAxis configuration or undefined if no changes needed\n */\nexport function applyYAxisFormatter(\n yAxis: unknown,\n formatter?: (value: number) => string,\n) {\n let axisFormatter = createAxisLabelFormatter(formatter)\n\n const yAxisIsObject = yAxis && !Array.isArray(yAxis)\n const yAxisTyped = yAxis as { type?: string; axisLabel?: unknown }\n\n if (!yAxisIsObject || yAxisTyped.type !== 'value') {\n axisFormatter = undefined\n }\n\n return {\n ...yAxisTyped,\n axisLabel: {\n ...(typeof yAxisTyped.axisLabel === 'object' && yAxisTyped.axisLabel\n ? yAxisTyped.axisLabel\n : {}),\n formatter: axisFormatter,\n },\n }\n}\n\n/**\n * Creates a tooltip formatter for ECharts\n * Formats numeric values in tooltip using widget formatter\n * Handles both axis trigger (array) and item trigger (object) modes\n *\n * @param formatter - Optional formatter function from widget config\n * @returns Tooltip formatter function or undefined\n */\nexport function createTooltipFormatter(\n callback: (\n item: CallbackDataParams,\n items: CallbackDataParams[],\n ) => {\n name: string\n seriesName: string\n marker: string\n value: string | number\n },\n) {\n return (params: TopLevelFormatterParams) => {\n // Handle both array (axis trigger) and object (item trigger)\n const items = Array.isArray(params) ? params : [params]\n\n const tooltip = (name: string, callback: string) =>\n `<div style=\"margin: 0px 0 0;line-height:1;\">${name ? `<div style=\"font-size:11px;color:#FFFFFF;font-weight:400;line-height:1; margin-bottom: 10px\">${name}</div>` : ''}<div style=\"margin: 0;line-height:1;\">${callback}</div><div style=\"clear:both\"></div></div>`\n\n const values = items.map((item) => {\n const { name, seriesName, marker, value } = callback(item, items)\n return {\n name,\n seriesName,\n marker,\n value,\n }\n })\n\n const name = values[0]?.name ?? ''\n // Show margin if name exists or there are multiple items\n const showMargin = name || items.length > 1\n const marginStyle = showMargin\n ? 'margin: 10px 0 0;line-height:1;'\n : 'margin: 0;line-height:1;'\n\n const formattedValues = values.map(\n ({ seriesName, marker, value }) =>\n `<div style=\"${marginStyle}\"><div style=\"margin: 0px 0 0;line-height:1;\">${marker}${seriesName ? `<span style=\"font-size:11px;color:#FFFFFF;font-weight:400;margin-left:2px;margin-right:10px\">${seriesName}</span>` : ''}<span style=\"float:right;margin-left:10px;font-size:11px;color:#FFFFFF;font-weight:900\">${value}</span></div></div>`,\n )\n\n return tooltip(name, formattedValues.join(''))\n }\n}\n\n/**\n * Builds a series `label` config that applies formatter to the data value\n * extracted from a dataset row using ECharts encode/dimensionNames.\n *\n * Does not set `show` — labels remain hidden by default per ECharts defaults.\n *\n * @param formatter - Optional numeric value formatter\n * @param encodeKey - The encode dimension key to extract ('y' for vertical charts, 'x' for horizontal)\n */\nexport function buildSeriesLabelConfig(\n formatter?: (value: number) => string,\n encodeKey = 'y',\n): { label: { formatter: (params: CallbackDataParams) => string } } | object {\n if (!formatter) return {}\n\n return {\n label: {\n formatter: (params: CallbackDataParams) => {\n const encodeIndex = params.encode?.[encodeKey]?.[0]\n if (encodeIndex === undefined) return ''\n const dimName = params.dimensionNames?.[encodeIndex]\n const row = params.value as Record<string, string | number>\n const value = dimName ? row[dimName] : undefined\n return typeof value === 'number'\n ? formatter(value)\n : String(value ?? '')\n },\n },\n }\n}\n\n/**\n * Builds a series `label` config that applies formatter to a raw numeric value.\n * Used by histogram where series data is number[] (not datasets).\n *\n * Does not set `show` — labels remain hidden by default per ECharts defaults.\n *\n * @param formatter - Optional numeric value formatter\n */\nexport function buildHistogramSeriesLabelConfig(\n formatter?: (value: number) => string,\n): { label: { formatter: (params: CallbackDataParams) => string } } | object {\n if (!formatter) return {}\n\n return {\n label: {\n formatter: (params: CallbackDataParams) => {\n const value = params.value as number\n return typeof value === 'number'\n ? formatter(value)\n : String(value ?? '')\n },\n },\n }\n}\n"],"mappings":";AAiBA,SAAgB,EAAQ,GAAuB;CAC7C,IAAI,MAAU,GAAG,OAAO;CACxB,IAAM,IAAW,KAAK,IAAI,CAAK,GACzB,IAAgB,MAAI,KAAK,MAAM,KAAK,MAAM,CAAQ,CAAC,GACnD,IAAU,KAAK,KAAK,IAAW,CAAI,IAAI;CAC7C,OAAO,IAAQ,IAAI,CAAC,IAAU;AAChC;AAUA,SAAgB,EAAkB,EAChC,cACA,qBAIwB;CACxB,OAAO;EACL,MAAM;EACN,MAAM;EACN,MAAM;EACN,QAAQ;EACR,QAAQ;EACR,MAAM;EACN,GAAI,KAAkB,EACpB,YAAY,MAAiB,OAAO,EAAe,CAAI,CAAC,EAC1D;CACF;AACF;AAUA,SAAgB,EAAgB,GAAoB,GAAc;CAChE,OAAO;EACL,GAAI,CAAC,KAAa,EAAE,QAAQ,SAAS,EAAM,QAAQ,CAAC,CAAC,EAAE;EACvD,GAAI,KAAa,EAAE,QAAQ,SAAS,EAAM,QAAQ,CAAC,CAAC,EAAE;CACxD;AACF;AAeA,SAAgB,EAAoB,GAIlC;CACA,OAAO;EACL,UAAU,EAAM,WAAW,kBAAkB;EAC7C,YAAY,EAAM,WAAW,kBAAkB;EAC/C,OAAO,EAAM,QAAQ,QAAQ,OAAO,EAAM,QAAQ,KAAK;CACzD;AACF;AASA,SAAgB,EAAwB,GAAc;CACpD,OAAO,SACL,GACA,GACA,GACA,GACA,GACA;EACA,IAAM,IAAW,EAAE,KAAK,SAAS,EAAM,QAAQ,EAAG,CAAC,EAAE;EAYrD,OANI,EAAK,YAAY,KAAK,EAAK,SAAS,KAAK,EAAM,KACjD,EAAS,OAAO,EAAM,KAEtB,EAAS,QAAQ,EAAK,SAAS,KAAK,EAAM,IAGrC;CACT;AACF;AAuFA,SAAgB,EACd,GASA;CACA,QAAQ,MAAoC;EAE1C,IAAM,IAAQ,MAAM,QAAQ,CAAM,IAAI,IAAS,CAAC,CAAM,GAEhD,KAAW,GAAc,MAC7B,+CAA+C,IAAO,gGAAgG,EAAK,UAAU,GAAG,wCAAwC,EAAS,6CAErN,IAAS,EAAM,KAAK,MAAS;GACjC,IAAM,EAAE,SAAM,eAAY,WAAQ,aAAU,EAAS,GAAM,CAAK;GAChE,OAAO;IACL;IACA;IACA;IACA;GACF;EACF,CAAC,GAEK,IAAO,EAAO,EAAE,EAAE,QAAQ,IAG1B,IADa,KAAQ,EAAM,SAAS,IAEtC,oCACA;EAOJ,OAAO,EAAQ,GALS,EAAO,KAC5B,EAAE,eAAY,WAAQ,eACrB,eAAe,EAAY,gDAAgD,IAAS,IAAa,gGAAgG,EAAW,WAAW,GAAG,0FAA0F,EAAM,oBAGzS,CAAA,CAAgB,KAAK,EAAE,CAAC;CAC/C;AACF;AAWA,SAAgB,EACd,GACA,IAAY,KAC+D;CAG3E,OAFK,IAEE,EACL,OAAO,EACL,YAAY,MAA+B;EACzC,IAAM,IAAc,EAAO,SAAS,EAAU,GAAG;EACjD,IAAI,MAAgB,KAAA,GAAW,OAAO;EACtC,IAAM,IAAU,EAAO,iBAAiB,IAClC,IAAM,EAAO,OACb,IAAQ,IAAU,EAAI,KAAW,KAAA;EACvC,OAAO,OAAO,KAAU,WACpB,EAAU,CAAK,IACf,OAAO,KAAS,EAAE;CACxB,EACF,EACF,IAfuB,CAAC;AAgB1B"}
@@ -1,9 +1,9 @@
1
- import { C as e, T as t } from "./stores-tiFePP0A.js";
1
+ import { C as e, T as t } from "./stores-B8CHbgw-.js";
2
2
  import { c as n } from "react/compiler-runtime";
3
3
  import { useState as r } from "react";
4
4
  import { Box as i, Skeleton as a, Slider as o, TextField as s, Typography as c } from "@mui/material";
5
5
  import { jsx as l, jsxs as u } from "react/jsx-runtime";
6
- //#region src/widgets-v2/range/style.ts
6
+ //#region src/widgets/range/style.ts
7
7
  var d = {
8
8
  root: {
9
9
  display: "flex",
@@ -38,7 +38,7 @@ var d = {
38
38
  note: { color: "text.secondary" }
39
39
  };
40
40
  //#endregion
41
- //#region src/widgets-v2/range/range-ui.tsx
41
+ //#region src/widgets/range/range-ui.tsx
42
42
  function f(e) {
43
43
  let t = n(11), { items: r, onChange: a, onChangeCommitted: o, formatter: s } = e, c = s ?? p, u;
44
44
  if (t[0] !== c || t[1] !== r || t[2] !== a || t[3] !== o) {
@@ -189,7 +189,7 @@ function h(e) {
189
189
  let C = S, w;
190
190
  t[15] === Symbol.for("react.memo_cache_sentinel") ? (w = (e) => _(e.target.value), t[15] = w) : w = t[15];
191
191
  let T;
192
- t[16] === h ? T = t[17] : (T = { "aria-label": h }, t[16] = h, t[17] = T);
192
+ t[16] === h ? T = t[17] : (T = { htmlInput: { "aria-label": h } }, t[16] = h, t[17] = T);
193
193
  let E;
194
194
  return t[18] !== y || t[19] !== b || t[20] !== C || t[21] !== x || t[22] !== o.disabled || t[23] !== i || t[24] !== T ? (E = /* @__PURE__ */ l(s, {
195
195
  name: i,
@@ -201,14 +201,14 @@ function h(e) {
201
201
  disabled: o.disabled,
202
202
  size: "small",
203
203
  sx: d.input,
204
- inputProps: T
204
+ slotProps: T
205
205
  }), t[18] = y, t[19] = b, t[20] = C, t[21] = x, t[22] = o.disabled, t[23] = i, t[24] = T, t[25] = E) : E = t[25], E;
206
206
  }
207
207
  function g(e) {
208
208
  if (e != null) return typeof e == "boolean" ? e : [...e];
209
209
  }
210
210
  //#endregion
211
- //#region src/widgets-v2/range/range.tsx
211
+ //#region src/widgets/range/range.tsx
212
212
  var _ = (e) => ({
213
213
  data: e.data ?? [],
214
214
  formatter: e.formatter
@@ -223,7 +223,7 @@ function v(r) {
223
223
  }), i[0] = a, i[1] = o, i[2] = c.data, i[3] = c.formatter, i[4] = u) : u = i[4], u;
224
224
  }
225
225
  //#endregion
226
- //#region src/widgets-v2/range/skeleton.tsx
226
+ //#region src/widgets/range/skeleton.tsx
227
227
  var y = {
228
228
  root: {
229
229
  display: "flex",
@@ -274,4 +274,4 @@ function x(e, t) {
274
274
  //#endregion
275
275
  export { v as n, f as r, b as t };
276
276
 
277
- //# sourceMappingURL=range-BCMAl5xf.js.map
277
+ //# sourceMappingURL=range-DHQSsl2_.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"range-DHQSsl2_.js","names":["{\n items,\n onChange,\n onChangeCommitted,\n formatter,\n}: RangeUIProps","(n: number) => String(n)","items.map((item, i) => (\n // Composite of the row's track bounds — stable across reorders for\n // any realistic widget configuration. Falls back to a literal +\n // index when bounds collide (degenerate same-min-same-max rows).\n <RangeRow\n key={`range-${item.min}-${item.max}-${i}`}\n index={i}\n item={item}\n fmt={fmt}\n onChange={onChange}\n onChangeCommitted={onChangeCommitted}\n />\n ))","(item, i) => (\n // Composite of the row's track bounds — stable across reorders for\n // any realistic widget configuration. Falls back to a literal +\n // index when bounds collide (degenerate same-min-same-max rows).\n <RangeRow\n key={`range-${item.min}-${item.max}-${i}`}\n index={i}\n item={item}\n fmt={fmt}\n onChange={onChange}\n onChangeCommitted={onChangeCommitted}\n />\n )","<Box sx={styles.root}>\n {items.map((item, i) => (\n // Composite of the row's track bounds — stable across reorders for\n // any realistic widget configuration. Falls back to a literal +\n // index when bounds collide (degenerate same-min-same-max rows).\n <RangeRow\n key={`range-${item.min}-${item.max}-${i}`}\n index={i}\n item={item}\n fmt={fmt}\n onChange={onChange}\n onChangeCommitted={onChangeCommitted}\n />\n ))}\n </Box>","{\n index,\n item,\n fmt,\n onChange,\n onChangeCommitted,\n}: RangeRowProps","item.value ?? [item.min, item.max]","max","min","value","(next: readonly [number, number]): readonly [number, number] => {\n const [lowRaw, highRaw] = next\n const low = Math.min(Math.max(lowRaw, item.min), item.max)\n const high = Math.min(Math.max(highRaw, item.min), item.max)\n return low <= high ? [low, high] : [high, low]\n }","useCallback(\n (next: readonly [number, number]): readonly [number, number] => {\n const [lowRaw, highRaw] = next\n const low = Math.min(Math.max(lowRaw, item.min), item.max)\n const high = Math.min(Math.max(highRaw, item.min), item.max)\n return low <= high ? [low, high] : [high, low]\n },\n [item.min, item.max],\n )","(next: readonly [number, number]) => {\n onChange?.(index, normalize(next))\n }","next","useCallback(\n (next: readonly [number, number]) => {\n onChange?.(index, normalize(next))\n },\n [index, normalize, onChange],\n )","(next: readonly [number, number]) => {\n onChangeCommitted?.(index, normalize(next))\n }","useCallback(\n (next: readonly [number, number]) => {\n onChangeCommitted?.(index, normalize(next))\n },\n [index, normalize, onChangeCommitted],\n )","(next: readonly [number, number]) => {\n const value = normalize(next)\n onChange?.(index, value)\n onChangeCommitted?.(index, value)\n }","useCallback(\n (next: readonly [number, number]) => {\n const value = normalize(next)\n onChange?.(index, value)\n onChangeCommitted?.(index, value)\n },\n [index, normalize, onChange, onChangeCommitted],\n )","(_: Event, raw: number | number[]) => {\n if (!Array.isArray(raw)) return\n // Hoist defaults out of the destructure: react-compiler can't safely\n // reorder MemberExpression defaults inside an array pattern.\n const low = raw[0] ?? item.min\n const high = raw[1] ?? item.max\n commit([low, high])\n }","low","high","(\n _: Event | React.SyntheticEvent,\n raw: number | number[],\n ) => {\n if (!Array.isArray(raw)) return\n const low = raw[0] ?? item.min\n const high = raw[1] ?? item.max\n commitFinal([low, high])\n }","raw","item.color ? { color: item.color } : null","color","{\n ...styles.slider,\n ...(item.color ? { color: item.color } : null),\n }","[...current]","resolveMarks(item.marks)","marks","<Box sx={styles.sliderContainer}>\n <Slider\n sx={{\n ...styles.slider,\n ...(item.color ? { color: item.color } : null),\n }}\n value={[...current]}\n min={item.min}\n max={item.max}\n step={item.step ?? 1}\n marks={resolveMarks(item.marks)}\n disabled={item.disabled}\n valueLabelDisplay='auto'\n valueLabelFormat={fmt}\n onChange={handleSlider}\n onChangeCommitted={handleSliderCommitted}\n />\n </Box>","disabled","item.step ?? 1","item.min","item.max","<BoundInput\n // Bumping the key on a fresh external value resets the local\n // editing state — matches v1's RangeItem behaviour.\n key={`min-${current[0]}`}\n name='min'\n value={current[0]}\n item={item}\n fmt={fmt}\n editing={editing}\n setEditing={setEditing}\n commit={commitText}\n current={current}\n ariaLabel='Minimum value'\n />","current[0]","`min-${current[0]}`","<BoundInput\n key={`max-${current[1]}`}\n name='max'\n value={current[1]}\n item={item}\n fmt={fmt}\n editing={editing}\n setEditing={setEditing}\n commit={commitText}\n current={current}\n ariaLabel='Maximum value'\n />","current[1]","`max-${current[1]}`","<Box sx={styles.inputsRow}>\n {/* Text-input commits (blur / Enter) are final, but also notify\n `onChange` — see `commitText` — so consumers that only wired\n `onChange` still update on a typed value. */}\n <BoundInput\n // Bumping the key on a fresh external value resets the local\n // editing state — matches v1's RangeItem behaviour.\n key={`min-${current[0]}`}\n name='min'\n value={current[0]}\n item={item}\n fmt={fmt}\n editing={editing}\n setEditing={setEditing}\n commit={commitText}\n current={current}\n ariaLabel='Minimum value'\n />\n <BoundInput\n key={`max-${current[1]}`}\n name='max'\n value={current[1]}\n item={item}\n fmt={fmt}\n editing={editing}\n setEditing={setEditing}\n commit={commitText}\n current={current}\n ariaLabel='Maximum value'\n />\n </Box>","item.note ? (\n <Typography variant='caption' sx={styles.note}>\n {item.note}\n </Typography>\n ) : null","note","<Box sx={styles.item}>\n <Box sx={styles.sliderContainer}>\n <Slider\n sx={{\n ...styles.slider,\n ...(item.color ? { color: item.color } : null),\n }}\n value={[...current]}\n min={item.min}\n max={item.max}\n step={item.step ?? 1}\n marks={resolveMarks(item.marks)}\n disabled={item.disabled}\n valueLabelDisplay='auto'\n valueLabelFormat={fmt}\n onChange={handleSlider}\n onChangeCommitted={handleSliderCommitted}\n />\n </Box>\n <Box sx={styles.inputsRow}>\n {/* Text-input commits (blur / Enter) are final, but also notify\n `onChange` — see `commitText` — so consumers that only wired\n `onChange` still update on a typed value. */}\n <BoundInput\n // Bumping the key on a fresh external value resets the local\n // editing state — matches v1's RangeItem behaviour.\n key={`min-${current[0]}`}\n name='min'\n value={current[0]}\n item={item}\n fmt={fmt}\n editing={editing}\n setEditing={setEditing}\n commit={commitText}\n current={current}\n ariaLabel='Minimum value'\n />\n <BoundInput\n key={`max-${current[1]}`}\n name='max'\n value={current[1]}\n item={item}\n fmt={fmt}\n editing={editing}\n setEditing={setEditing}\n commit={commitText}\n current={current}\n ariaLabel='Maximum value'\n />\n </Box>\n {item.note ? (\n <Typography variant='caption' sx={styles.note}>\n {item.note}\n </Typography>\n ) : null}\n </Box>","{\n name,\n value,\n item,\n fmt,\n editing,\n setEditing,\n commit,\n current,\n ariaLabel,\n}: BoundInputProps","() => {\n setEditing(name)\n }","e","editing === name ? raw : fmt(Number(raw))","(e) => setRaw(e.target.value)","{\n htmlInput: { 'aria-label': ariaLabel },\n }","<TextField\n name={name}\n value={display}\n onChange={(e) => setRaw(e.target.value)}\n onFocus={beginEditing}\n onBlur={finishEditingAndCommit}\n onKeyDown={commitOnEnter}\n disabled={item.disabled}\n size='small'\n sx={styles.input}\n slotProps={{\n htmlInput: { 'aria-label': ariaLabel },\n }}\n />","{ onChange, onChangeCommitted }: RangeProps","<RangeUI\n items={slice.data}\n formatter={slice.formatter}\n onChange={onChange}\n onChangeCommitted={onChangeCommitted}\n />","data","formatter","{ count = 1 }: RangeSkeletonProps","count = 1","<Box sx={styles.root}>\n {Array.from({ length: count }).map((_, i) => (\n <Box key={`item-${i}`} sx={styles.item}>\n <Skeleton variant='rectangular' sx={styles.track} />\n <Box sx={styles.inputsRow}>\n <Skeleton variant='rectangular' sx={styles.input} />\n <Skeleton variant='rectangular' sx={styles.input} />\n </Box>\n </Box>\n ))}\n </Box>","(_, i) => (\n <Box key={`item-${i}`} sx={styles.item}>\n <Skeleton variant='rectangular' sx={styles.track} />\n <Box sx={styles.inputsRow}>\n <Skeleton variant='rectangular' sx={styles.input} />\n <Skeleton variant='rectangular' sx={styles.input} />\n </Box>\n </Box>\n )"],"sources":["../src/widgets/range/style.ts","../src/widgets/range/range-ui.tsx","../src/widgets/range/range.tsx","../src/widgets/range/skeleton.tsx"],"sourcesContent":["import type { SxProps, Theme } from '@mui/material'\n\nexport const styles = {\n root: {\n display: 'flex',\n flexDirection: 'column',\n gap: 3,\n py: 1,\n },\n item: {\n display: 'flex',\n flexDirection: 'column',\n gap: 1.5,\n },\n sliderContainer: {\n display: 'flex',\n flexDirection: 'column',\n gap: 1,\n px: 1,\n },\n slider: {\n width: '100%',\n '&.Mui-disabled': {\n color: (theme: Theme) => theme.palette.text.disabled,\n },\n },\n inputsRow: {\n display: 'flex',\n gap: 2,\n alignItems: 'center',\n },\n input: {\n flex: 1,\n '& .MuiInputBase-input': {\n textAlign: 'center',\n },\n },\n note: {\n color: 'text.secondary',\n },\n} satisfies Record<string, SxProps<Theme>>\n","import {\n useCallback,\n useState,\n type FocusEvent,\n type KeyboardEvent,\n} from 'react'\nimport { Box, Slider, TextField, Typography } from '@mui/material'\nimport type { RangeDataItem, RangeItemValue } from './types'\nimport { styles } from './style'\n\nexport interface RangeUIProps {\n items: readonly RangeDataItem[]\n /**\n * Fires on every pointer tick while a thumb is being dragged (mirrors\n * MUI `<Slider>`'s `onChange`). Use this to update local UI state —\n * not to persist expensive operations like remote queries.\n */\n onChange?: (index: number, value: RangeItemValue) => void\n /**\n * Fires once when the user *releases* a slider thumb after dragging,\n * after an arrow-key adjustment commits, or when the text inputs\n * blur / Enter. Mirrors MUI `<Slider>`'s `onChangeCommitted`. Use\n * this for side-effects you want to throttle to \"drag end\" — e.g.\n * writing the value to a source filter that triggers refetches.\n */\n onChangeCommitted?: (index: number, value: RangeItemValue) => void\n /** Number formatter for the slider tooltip and the text input display. */\n formatter?: (value: number) => string\n}\n\ntype Bound = 'min' | 'max'\n\n/**\n * Pure presentational component for the Range widget. Renders one MUI Slider\n * per item with editable min/max text inputs below — matching the Range v1\n * UX. Each item is always a two-thumb range; supply `value` to seed the\n * starting selection, otherwise it defaults to `[min, max]`.\n */\nexport function RangeUI({\n items,\n onChange,\n onChangeCommitted,\n formatter,\n}: RangeUIProps) {\n const fmt = formatter ?? ((n: number) => String(n))\n return (\n <Box sx={styles.root}>\n {items.map((item, i) => (\n // Composite of the row's track bounds — stable across reorders for\n // any realistic widget configuration. Falls back to a literal +\n // index when bounds collide (degenerate same-min-same-max rows).\n <RangeRow\n key={`range-${item.min}-${item.max}-${i}`}\n index={i}\n item={item}\n fmt={fmt}\n onChange={onChange}\n onChangeCommitted={onChangeCommitted}\n />\n ))}\n </Box>\n )\n}\n\ninterface RangeRowProps {\n index: number\n item: RangeDataItem\n fmt: (n: number) => string\n onChange?: (index: number, value: RangeItemValue) => void\n onChangeCommitted?: (index: number, value: RangeItemValue) => void\n}\n\nfunction RangeRow({\n index,\n item,\n fmt,\n onChange,\n onChangeCommitted,\n}: RangeRowProps) {\n const current: readonly [number, number] = item.value ?? [item.min, item.max]\n const [editing, setEditing] = useState<'' | Bound>('')\n\n // Clamp inside [min, max] and keep `low <= high`. Pulled out so both the\n // live `onChange` path and the commit path share the same normalization.\n const normalize = useCallback(\n (next: readonly [number, number]): readonly [number, number] => {\n const [lowRaw, highRaw] = next\n const low = Math.min(Math.max(lowRaw, item.min), item.max)\n const high = Math.min(Math.max(highRaw, item.min), item.max)\n return low <= high ? [low, high] : [high, low]\n },\n [item.min, item.max],\n )\n\n const commit = useCallback(\n (next: readonly [number, number]) => {\n onChange?.(index, normalize(next))\n },\n [index, normalize, onChange],\n )\n\n const commitFinal = useCallback(\n (next: readonly [number, number]) => {\n onChangeCommitted?.(index, normalize(next))\n },\n [index, normalize, onChangeCommitted],\n )\n\n // A text-input commit (blur / Enter) is both a value change AND a final\n // commit, so it fires `onChange` *and* `onChangeCommitted`. Firing both\n // keeps the widget responsive for consumers that only wired `onChange`\n // (the pre-`onChangeCommitted` API) — without it, typing a value and\n // pressing Enter would silently no-op for them.\n const commitText = useCallback(\n (next: readonly [number, number]) => {\n const value = normalize(next)\n onChange?.(index, value)\n onChangeCommitted?.(index, value)\n },\n [index, normalize, onChange, onChangeCommitted],\n )\n\n const handleSlider = (_: Event, raw: number | number[]) => {\n if (!Array.isArray(raw)) return\n // Hoist defaults out of the destructure: react-compiler can't safely\n // reorder MemberExpression defaults inside an array pattern.\n const low = raw[0] ?? item.min\n const high = raw[1] ?? item.max\n commit([low, high])\n }\n\n const handleSliderCommitted = (\n _: Event | React.SyntheticEvent,\n raw: number | number[],\n ) => {\n if (!Array.isArray(raw)) return\n const low = raw[0] ?? item.min\n const high = raw[1] ?? item.max\n commitFinal([low, high])\n }\n\n return (\n <Box sx={styles.item}>\n <Box sx={styles.sliderContainer}>\n <Slider\n sx={{\n ...styles.slider,\n ...(item.color ? { color: item.color } : null),\n }}\n value={[...current]}\n min={item.min}\n max={item.max}\n step={item.step ?? 1}\n marks={resolveMarks(item.marks)}\n disabled={item.disabled}\n valueLabelDisplay='auto'\n valueLabelFormat={fmt}\n onChange={handleSlider}\n onChangeCommitted={handleSliderCommitted}\n />\n </Box>\n <Box sx={styles.inputsRow}>\n {/* Text-input commits (blur / Enter) are final, but also notify\n `onChange` — see `commitText` — so consumers that only wired\n `onChange` still update on a typed value. */}\n <BoundInput\n // Bumping the key on a fresh external value resets the local\n // editing state — matches v1's RangeItem behaviour.\n key={`min-${current[0]}`}\n name='min'\n value={current[0]}\n item={item}\n fmt={fmt}\n editing={editing}\n setEditing={setEditing}\n commit={commitText}\n current={current}\n ariaLabel='Minimum value'\n />\n <BoundInput\n key={`max-${current[1]}`}\n name='max'\n value={current[1]}\n item={item}\n fmt={fmt}\n editing={editing}\n setEditing={setEditing}\n commit={commitText}\n current={current}\n ariaLabel='Maximum value'\n />\n </Box>\n {item.note ? (\n <Typography variant='caption' sx={styles.note}>\n {item.note}\n </Typography>\n ) : null}\n </Box>\n )\n}\n\ninterface BoundInputProps {\n name: Bound\n value: number\n item: RangeDataItem\n fmt: (n: number) => string\n editing: '' | Bound\n setEditing: (next: '' | Bound) => void\n /**\n * Called when the user commits a new value (blur / Enter). Text input\n * edits never produce intermediate \"live\" values, so the consumer\n * only needs one callback — the row wires this to `commitFinal`.\n */\n commit: (next: readonly [number, number]) => void\n current: readonly [number, number]\n ariaLabel: string\n}\n\nfunction BoundInput({\n name,\n value,\n item,\n fmt,\n editing,\n setEditing,\n commit,\n current,\n ariaLabel,\n}: BoundInputProps) {\n const [raw, setRaw] = useState<string>(String(value))\n\n const beginEditing = () => {\n setEditing(name)\n }\n const finishEditingAndCommit = (e: FocusEvent<HTMLInputElement>) => {\n setEditing('')\n commitFromText(e.target.value)\n }\n const commitOnEnter = (e: KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Enter') {\n commitFromText((e.target as HTMLInputElement).value)\n ;(e.target as HTMLInputElement).blur()\n }\n }\n\n function commitFromText(input: string) {\n const parsed = parseFloat(input)\n const safe = Number.isFinite(parsed) ? parsed : value\n const next: readonly [number, number] =\n name === 'min' ? [safe, current[1]] : [current[0], safe]\n commit(next)\n }\n\n const display = editing === name ? raw : fmt(Number(raw))\n\n return (\n <TextField\n name={name}\n value={display}\n onChange={(e) => setRaw(e.target.value)}\n onFocus={beginEditing}\n onBlur={finishEditingAndCommit}\n onKeyDown={commitOnEnter}\n disabled={item.disabled}\n size='small'\n sx={styles.input}\n slotProps={{\n htmlInput: { 'aria-label': ariaLabel },\n }}\n />\n )\n}\n\nfunction resolveMarks(\n marks: RangeDataItem['marks'],\n): boolean | { value: number; label?: string }[] | undefined {\n if (marks == null) return undefined\n if (typeof marks === 'boolean') return marks\n return [...marks]\n}\n","import { useWidgetId, useWidgetShallow } from '../stores'\nimport { RangeUI } from './range-ui'\nimport type { RangeItemValue, RangeWidgetData } from './types'\n\ninterface RangeSlice {\n data: RangeWidgetData\n formatter?: (value: number) => string\n}\n\nconst rangeSelector = (s: {\n data: unknown\n formatter?: (value: number) => string\n}): RangeSlice => ({\n data: (s.data ?? []) as RangeWidgetData,\n formatter: s.formatter,\n})\n\nexport interface RangeProps {\n /**\n * Fires on every pointer tick while a thumb is being dragged. Use this\n * for cheap UI updates (local state, optimistic display).\n */\n onChange?: (index: number, value: RangeItemValue) => void\n /**\n * Fires once when the user *releases* a slider thumb (or when the text\n * inputs blur / Enter, or when an arrow-key adjustment settles). Use\n * this for expensive side-effects you want throttled to drag end —\n * e.g. writing the value to a source filter that refetches widgets.\n */\n onChangeCommitted?: (index: number, value: RangeItemValue) => void\n}\n\n/**\n * Stateful Range bridge — reads `data` (post-pipeline) and `formatter` from\n * the per-widget store and forwards them to the pure {@link RangeUI}. Per\n * the destination-owned principle, value changes flow back through\n * `onChange` (per-tick) and `onChangeCommitted` (drag end) — the consumer\n * is expected to update the data prop on `<Provider>`. Use `disabled` on\n * individual `RangeDataItem`s to disable specific rows.\n */\nexport function Range({ onChange, onChangeCommitted }: RangeProps) {\n const id = useWidgetId()\n const slice = useWidgetShallow(id, rangeSelector)\n return (\n <RangeUI\n items={slice.data}\n formatter={slice.formatter}\n onChange={onChange}\n onChangeCommitted={onChangeCommitted}\n />\n )\n}\n","import { Box, Skeleton } from '@mui/material'\nimport type { SxProps, Theme } from '@mui/material'\n\nconst styles = {\n root: {\n display: 'flex',\n flexDirection: 'column',\n gap: 3,\n py: 1,\n },\n item: {\n display: 'flex',\n flexDirection: 'column',\n gap: 1.5,\n },\n track: { height: 32 },\n inputsRow: {\n display: 'flex',\n gap: 2,\n },\n input: { flex: 1, height: 40 },\n} satisfies Record<string, SxProps<Theme>>\n\nexport interface RangeSkeletonProps {\n count?: number\n}\n\n/**\n * Loading placeholder for the Range widget. Renders `count` rows, each\n * matching the slider-then-inputs layout of {@link RangeUI} so the layout\n * doesn't jump when data resolves.\n */\nexport function RangeSkeleton({ count = 1 }: RangeSkeletonProps) {\n return (\n <Box sx={styles.root}>\n {Array.from({ length: count }).map((_, i) => (\n <Box key={`item-${i}`} sx={styles.item}>\n <Skeleton variant='rectangular' sx={styles.track} />\n <Box sx={styles.inputsRow}>\n <Skeleton variant='rectangular' sx={styles.input} />\n <Skeleton variant='rectangular' sx={styles.input} />\n </Box>\n </Box>\n ))}\n </Box>\n )\n}\n"],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ import { c as e } from "react/compiler-runtime";
2
+ import { useLayoutEffect as t, useRef as n, useState as r } from "react";
3
+ import { Tooltip as i } from "@mui/material";
4
+ import { jsx as a } from "react/jsx-runtime";
5
+ //#region src/components/tooltip/tooltip.tsx
6
+ var o = 500;
7
+ function s(t) {
8
+ let n = e(10), r, s, c, l;
9
+ n[0] === t ? (r = n[1], s = n[2], c = n[3], l = n[4]) : ({children: r, title: l, enterNextDelay: c, ...s} = t, n[0] = t, n[1] = r, n[2] = s, n[3] = c, n[4] = l);
10
+ let u = c === void 0 ? o : c, d;
11
+ return n[5] !== r || n[6] !== u || n[7] !== s || n[8] !== l ? (d = /* @__PURE__ */ a(i, {
12
+ title: l,
13
+ enterNextDelay: u,
14
+ ...s,
15
+ children: r
16
+ }), n[5] = r, n[6] = u, n[7] = s, n[8] = l, n[9] = d) : d = n[9], d;
17
+ }
18
+ function c(e) {
19
+ o = e;
20
+ }
21
+ //#endregion
22
+ //#region src/components/smart-tooltip/smart-tooltip.tsx
23
+ var l = [];
24
+ function u(i) {
25
+ let o = e(13), { title: c, dependencies: u, timeout: d, TooltipProps: f, children: p } = i, m = u === void 0 ? l : u, h = d === void 0 ? 500 : d, g = n(null), [_, v] = r(!1), y;
26
+ o[0] === m ? y = o[1] : (y = JSON.stringify(m), o[0] = m, o[1] = y);
27
+ let b = y, x;
28
+ o[2] === h ? x = o[3] : (x = () => {
29
+ let e = () => {
30
+ let e = g.current;
31
+ e && v(e.scrollWidth > e.clientWidth || e.scrollHeight > e.clientHeight);
32
+ }, t = setTimeout(e, h), n = g.current, r = n && typeof ResizeObserver < "u" ? new ResizeObserver(e) : null;
33
+ return n && r?.observe(n), () => {
34
+ clearTimeout(t), r?.disconnect();
35
+ };
36
+ }, o[2] = h, o[3] = x);
37
+ let S;
38
+ o[4] !== b || o[5] !== h ? (S = [b, h], o[4] = b, o[5] = h, o[6] = S) : S = o[6], t(x, S);
39
+ let C = _ && c, w;
40
+ o[7] === p ? w = o[8] : (w = p({ ref: g }), o[7] = p, o[8] = w);
41
+ let T;
42
+ return o[9] !== f || o[10] !== C || o[11] !== w ? (T = /* @__PURE__ */ a(s, {
43
+ title: C,
44
+ ...f,
45
+ children: w
46
+ }), o[9] = f, o[10] = C, o[11] = w, o[12] = T) : T = o[12], T;
47
+ }
48
+ //#endregion
49
+ export { s as n, c as r, u as t };
50
+
51
+ //# sourceMappingURL=smart-tooltip-Dc_rHhyI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"smart-tooltip-Dc_rHhyI.js","names":["enterNextDelay = tooltipEnterDelay","{\n children,\n title,\n enterNextDelay = tooltipEnterDelay,\n ...props\n}: TooltipProps","<MuiTooltip title={title} enterNextDelay={enterNextDelay} {...props}>\n {children}\n </MuiTooltip>","{\n title,\n dependencies = EMPTY_DEPENDENCIES,\n timeout = 500,\n TooltipProps,\n children,\n}: {\n title: string | undefined\n dependencies?: unknown[]\n timeout?: number\n children: (props: { ref: Ref<T> }) => JSX.Element\n TooltipProps?: Partial<TooltipProps>\n}","dependencies = EMPTY_DEPENDENCIES","timeout = 500","JSON.stringify(dependencies)","() => {\n const checkOverflow = () => {\n const el = ref.current\n if (!el) return\n setIsOverflowing(\n el.scrollWidth > el.clientWidth || el.scrollHeight > el.clientHeight,\n )\n }\n\n // Initial measure after layout settles (fonts, flex collapse, …).\n const timerId = setTimeout(checkOverflow, timeout)\n // Re-measure when the element is resized (e.g. legend title reflows as\n // hover-faded actions collapse/expand).\n const el = ref.current\n const resizeObserver =\n el && typeof ResizeObserver !== 'undefined'\n ? new ResizeObserver(checkOverflow)\n : null\n if (el) resizeObserver?.observe(el)\n\n return () => {\n clearTimeout(timerId)\n resizeObserver?.disconnect()\n }\n }","el","[dependenciesKey, timeout]","children({ ref })","<Tooltip title={isOverflowing && title} {...TooltipProps}>\n {children({ ref })}\n </Tooltip>","isOverflowing && title"],"sources":["../src/components/tooltip/tooltip.tsx","../src/components/smart-tooltip/smart-tooltip.tsx"],"sourcesContent":["import { Tooltip as MuiTooltip, type TooltipProps } from '@mui/material'\n\nlet tooltipEnterDelay = 500\n\n/**\n * A wrapper around MUI's Tooltip component with enterNextDelay set to 1000ms by default.\n *\n * This component ensures consistent tooltip behavior across the application.\n *\n * @example\n * <Tooltip title=\"This is a tooltip\">\n * <Button>Hover me</Button>\n * </Tooltip>\n */\nexport function Tooltip({\n children,\n title,\n enterNextDelay = tooltipEnterDelay,\n ...props\n}: TooltipProps) {\n return (\n <MuiTooltip title={title} enterNextDelay={enterNextDelay} {...props}>\n {children}\n </MuiTooltip>\n )\n}\n\n/**\n * Sets the global default `enterNextDelay` for all Tooltip components in the application.\n *\n * @param delay - Delay in milliseconds before showing tooltips on subsequent hovers.\n *\n * @example\n * ```tsx\n * import { setTooltipEnterDelay } from '@carto/ps-react-ui/components';\n *\n * // Set global delay to 300ms at app initialization\n * setTooltipEnterDelay(300);\n * ```\n */\nexport function setTooltipEnterDelay(delay: number) {\n tooltipEnterDelay = delay\n}\n","import type { TooltipProps } from '@mui/material'\nimport { useLayoutEffect, useRef, useState, type JSX, type Ref } from 'react'\nimport { Tooltip } from '../tooltip/tooltip'\n\nconst EMPTY_DEPENDENCIES: unknown[] = []\n\n/**\n * An intelligent tooltip wrapper that automatically detects text overflow and displays a tooltip only when content is truncated.\n *\n * @remarks\n * Uses a render prop pattern. The child function receives a `ref` that must be attached to the element being monitored for overflow. Use the `dependencies` array to trigger re-evaluation when content or container size changes.\n *\n * @example\n * ```tsx\n * <SmartTooltip title=\"This is a long text that might get truncated\">\n * {({ ref }) => (\n * <Typography ref={ref} noWrap sx={{ overflow: 'hidden', textOverflow: 'ellipsis' }}>\n * This is a long text that might get truncated\n * </Typography>\n * )}\n * </SmartTooltip>\n * ```\n */\nexport function SmartTooltip<T extends HTMLElement>({\n title,\n dependencies = EMPTY_DEPENDENCIES,\n timeout = 500,\n TooltipProps,\n children,\n}: {\n title: string | undefined\n dependencies?: unknown[]\n timeout?: number\n children: (props: { ref: Ref<T> }) => JSX.Element\n TooltipProps?: Partial<TooltipProps>\n}) {\n const ref = useRef<T>(null)\n const [isOverflowing, setIsOverflowing] = useState(false)\n // Call sites pass a fresh `dependencies={[…]}` literal each render; key by\n // value so the effect does not churn ResizeObserver on referential churn.\n const dependenciesKey = JSON.stringify(dependencies)\n\n useLayoutEffect(() => {\n const checkOverflow = () => {\n const el = ref.current\n if (!el) return\n setIsOverflowing(\n el.scrollWidth > el.clientWidth || el.scrollHeight > el.clientHeight,\n )\n }\n\n // Initial measure after layout settles (fonts, flex collapse, …).\n const timerId = setTimeout(checkOverflow, timeout)\n // Re-measure when the element is resized (e.g. legend title reflows as\n // hover-faded actions collapse/expand).\n const el = ref.current\n const resizeObserver =\n el && typeof ResizeObserver !== 'undefined'\n ? new ResizeObserver(checkOverflow)\n : null\n if (el) resizeObserver?.observe(el)\n\n return () => {\n clearTimeout(timerId)\n resizeObserver?.disconnect()\n }\n }, [dependenciesKey, timeout])\n\n return (\n <Tooltip title={isOverflowing && title} {...TooltipProps}>\n {children({ ref })}\n </Tooltip>\n )\n}\n"],"mappings":";;;;;AAEA,IAAI,IAAoB;AAYxB,SAAgB,EAAA,GAKC;gBAJf,GAGG,GADHA,GADA;CAFsBC,AAAAA,EAAAA,OAAAA,gDACtB,wBAEA,gBAAA,GACA,GAAA,KAJsBA;CAGtB,IAAA,IAAA,MAAA,KAAA,IAAiB,IAAjBD,GAIEE;CADF,OAEK,EAAA,OAAA,KAAA,EAAA,OADuC,KAAA,EAAA,OAAoB,KAAA,EAAA,OAA3C,KAAnB,IAAA,kBAAC,GAAD;EAAmB;EAAuB;EAAgB,GAAI;EAC3D;CACS,CAAA,GADT,EAAA,KAAA,GADuC,EAAA,KAAA,GAAoB,EAAA,KAAA,GAA3C,EAAA,KAAA,yBAAnBA;AAIJ;AAeA,SAAgB,EAAqB,GAAe;CAClD,IAAoB;AACtB;;;ACtCA,IAAM,IAAgC,CAAC;AAmBvC,SAAgB,EAAA,GAYb;gBAZiD,EAClD,UACA,cAAA,GACA,SAAA,GACA,iBACA,gBALkDC,GAElD,IAAA,MAAA,KAAA,IAAe,IAAfC,GACA,IAAA,MAAA,KAAA,IAAU,MAAVC,GAUM,IAAM,EAAU,IAAI,GACpB,CAAC,GAAe,KAAoB,EAAS,EAAK,GAGhCC;CAAe,AAAA,EAAA,OAAA,gBAAf,IAAA,KAAK,UAAU,CAAY,GAAZ,EAAA,KAAA;CAAvC,IAAM,IAAkBA,GAERC;CAU4B,AAAA,EAAA,OAAA,gBAV5B,UAAM;EACpB,IAAM,UAAsB;GAC1B,IAAM,IAAK,EAAI;GACV,KACL,EACE,EAAG,cAAc,EAAG,eAAe,EAAG,eAAe,EAAG,YAC1D;EACF,GAGM,IAAU,WAAW,GAAe,CAAO,GAG3CC,IAAK,EAAI,SACT,IACJA,KAAM,OAAO,iBAAmB,MAC5B,IAAI,eAAe,CAAa,IAChC;EAGN,OAFIA,KAAI,GAAgB,QAAQA,CAAE,SAErB;GAEX,AADA,aAAa,CAAO,GACpB,GAAgB,WAAW;EAC7B;CACF,GAd4C,EAAA,KAAA;CAczCC,IAAAA;CAxBH,AAwBI,EAAA,OAAA,KAAA,EAAA,OAAiB,KAAlB,IAAA,CAAC,GAAiB,CAAO,GAAxB,EAAA,KAAA,GAAiB,EAAA,KAAA,yBAxBrB,EAAgBF,GAwBbE,CAA0B;CAGX,IAAA,IAAA,KAAiB,GAC9BC;0BAAS,IAAA,EAAA,EAAE,OAAI,CAAC,GAAhB,EAAA,KAAA;CADHC,IAAAA;CADF,OAC8C,EAAA,OAAA,KAAA,EAAA,QAA5BC,KAAAA,EAAAA,QACbF,KADH,IAAA,kBAAC,GAAD;EAAS,OAAOE;EAAwB,GAAI;EACzCF,UAAAA;CACM,CAAA,GAFmC,EAAA,KAAA,GAA5BE,EAAAA,MAAAA,GACbF,EAAAA,MAAAA,2BADHC;AAIJ"}
@@ -1,10 +1,10 @@
1
- import { C as e, T as t } from "./stores-tiFePP0A.js";
2
- import { n, t as r } from "./download-DdaK3qgC.js";
3
- import { a as i, c as a, l as o, o as s, s as c, u as l } from "./formula-noJzQwKo.js";
1
+ import { C as e, T as t } from "./stores-B8CHbgw-.js";
2
+ import { n, t as r } from "./download-Vlzn2jzb.js";
3
+ import { a as i, c as a, l as o, o as s, s as c, u as l } from "./formula-CdHWtepq.js";
4
4
  import { c as u } from "react/compiler-runtime";
5
5
  import { Box as d, Skeleton as f } from "@mui/material";
6
6
  import { jsx as p, jsxs as m } from "react/jsx-runtime";
7
- //#region src/widgets-v2/spread/separator.tsx
7
+ //#region src/widgets/spread/separator.tsx
8
8
  function h() {
9
9
  let e = u(1), t;
10
10
  return e[0] === Symbol.for("react.memo_cache_sentinel") ? (t = /* @__PURE__ */ p(s, {
@@ -13,7 +13,7 @@ function h() {
13
13
  }), e[0] = t) : t = e[0], t;
14
14
  }
15
15
  //#endregion
16
- //#region src/widgets-v2/spread/spread-ui.tsx
16
+ //#region src/widgets/spread/spread-ui.tsx
17
17
  function g(e) {
18
18
  let t = u(8), { items: n, formatter: r, ref: f } = e, g = r ?? _, v;
19
19
  if (t[0] !== g || t[1] !== n) {
@@ -55,7 +55,7 @@ function _(e) {
55
55
  return String(e);
56
56
  }
57
57
  //#endregion
58
- //#region src/widgets-v2/spread/spread.tsx
58
+ //#region src/widgets/spread/spread.tsx
59
59
  var v = Object.freeze([]), y = (e) => ({
60
60
  data: e.data ?? v,
61
61
  formatter: e.formatter
@@ -68,7 +68,7 @@ function b() {
68
68
  }), n[0] = i.data, n[1] = i.formatter, n[2] = a) : a = n[2], a;
69
69
  }
70
70
  //#endregion
71
- //#region src/widgets-v2/spread/skeleton.tsx
71
+ //#region src/widgets/spread/skeleton.tsx
72
72
  var x = {
73
73
  root: {
74
74
  display: "flex",
@@ -103,7 +103,7 @@ function C(e, t) {
103
103
  }, `row-${t}`);
104
104
  }
105
105
  //#endregion
106
- //#region src/widgets-v2/spread/download.ts
106
+ //#region src/widgets/spread/download.ts
107
107
  function w(e) {
108
108
  let t = [];
109
109
  return e.getCaptureEl && t.push(n({
@@ -135,7 +135,7 @@ function w(e) {
135
135
  })), t;
136
136
  }
137
137
  //#endregion
138
- //#region src/widgets-v2/spread/band.ts
138
+ //#region src/widgets/spread/band.ts
139
139
  function T({ value: e, spread: t, variant: n = "percentage" }) {
140
140
  let r = n === "absolute" ? t : t / 100 * e, i = Math.abs(r);
141
141
  return {
@@ -146,4 +146,4 @@ function T({ value: e, spread: t, variant: n = "percentage" }) {
146
146
  //#endregion
147
147
  export { g as a, b as i, w as n, h as o, S as r, T as t };
148
148
 
149
- //# sourceMappingURL=spread-Ccpg9fi0.js.map
149
+ //# sourceMappingURL=spread-DuM5oTI1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spread-DuM5oTI1.js","names":["<Value color='inherit'>-</Value>","{ items, formatter, ref }: SpreadUIProps","(n: number) => String(n)","items.map((item, i) => (\n // Composite of series name + min/max bounds for stability across\n // reorders; falls back to the index when bounds happen to collide.\n <Box\n key={`spread-${item.series?.name ?? ''}-${item.min}-${item.max}-${i}`}\n sx={styles.row}\n >\n {item.series ? (\n <Series name={item.series.name} color={item.series.color} />\n ) : null}\n <Box sx={styles.body}>\n <Box sx={styles.valueRow}>\n {item.prefix ? <Prefix>{item.prefix}</Prefix> : null}\n <Value color={item.color}>{fmt(item.min)}</Value>\n <Separator />\n <Value color={item.color}>{fmt(item.max)}</Value>\n {item.suffix ? <Suffix>{item.suffix}</Suffix> : null}\n </Box>\n {item.note ? <Note>{item.note}</Note> : null}\n </Box>\n </Box>\n ))","(item, i) => (\n // Composite of series name + min/max bounds for stability across\n // reorders; falls back to the index when bounds happen to collide.\n <Box\n key={`spread-${item.series?.name ?? ''}-${item.min}-${item.max}-${i}`}\n sx={styles.row}\n >\n {item.series ? (\n <Series name={item.series.name} color={item.series.color} />\n ) : null}\n <Box sx={styles.body}>\n <Box sx={styles.valueRow}>\n {item.prefix ? <Prefix>{item.prefix}</Prefix> : null}\n <Value color={item.color}>{fmt(item.min)}</Value>\n <Separator />\n <Value color={item.color}>{fmt(item.max)}</Value>\n {item.suffix ? <Suffix>{item.suffix}</Suffix> : null}\n </Box>\n {item.note ? <Note>{item.note}</Note> : null}\n </Box>\n </Box>\n )","<Box ref={ref} sx={styles.root}>\n {items.map((item, i) => (\n // Composite of series name + min/max bounds for stability across\n // reorders; falls back to the index when bounds happen to collide.\n <Box\n key={`spread-${item.series?.name ?? ''}-${item.min}-${item.max}-${i}`}\n sx={styles.row}\n >\n {item.series ? (\n <Series name={item.series.name} color={item.series.color} />\n ) : null}\n <Box sx={styles.body}>\n <Box sx={styles.valueRow}>\n {item.prefix ? <Prefix>{item.prefix}</Prefix> : null}\n <Value color={item.color}>{fmt(item.min)}</Value>\n <Separator />\n <Value color={item.color}>{fmt(item.max)}</Value>\n {item.suffix ? <Suffix>{item.suffix}</Suffix> : null}\n </Box>\n {item.note ? <Note>{item.note}</Note> : null}\n </Box>\n </Box>\n ))}\n </Box>","<SpreadUI items={slice.data} formatter={slice.formatter} />","data","formatter","{ count = 1 }: SpreadSkeletonProps","count = 1","<Box sx={styles.root}>\n {Array.from({ length: count }).map((_, i) => (\n <Box key={`row-${i}`} sx={styles.row}>\n <Skeleton variant='rectangular' sx={styles.block} />\n </Box>\n ))}\n </Box>","(_, i) => (\n <Box key={`row-${i}`} sx={styles.row}>\n <Skeleton variant='rectangular' sx={styles.block} />\n </Box>\n )"],"sources":["../src/widgets/spread/separator.tsx","../src/widgets/spread/spread-ui.tsx","../src/widgets/spread/spread.tsx","../src/widgets/spread/skeleton.tsx","../src/widgets/spread/download.ts","../src/widgets/spread/band.ts"],"sourcesContent":["import { Value } from '../formula'\n\n/**\n * Em-dash separator placed between a Spread row's `min` and `max` values.\n * Built from the Formula {@link Value} primitive so typography (h5/600,\n * baseline alignment) matches the numbers around it. Renders with\n * `text.secondary` so it visually recedes between the two bounds.\n */\nexport function Separator() {\n return <Value color='inherit'>-</Value>\n}\n","import { Box } from '@mui/material'\nimport type { Ref } from 'react'\nimport { Note, Prefix, Series, Suffix, Value } from '../formula'\nimport { styles } from '../formula/style'\nimport { Separator } from './separator'\nimport type { SpreadDataItem } from './types'\n\nexport interface SpreadUIProps {\n items: readonly SpreadDataItem[]\n /** Number formatter — applied to each item's `min` and `max`. */\n formatter?: (value: number) => string\n /** Forwarded to the root `<Box>` so consumers can capture the DOM (PNG export). */\n ref?: Ref<HTMLDivElement>\n}\n\n/**\n * Pure presentational component for the Spread widget. Each item renders as\n * a row containing (in order): optional `Series` avatar, a body with\n * `[prefix] min — max [suffix]` plus optional `Note`. Reuses the Formula\n * primitives ({@link Series}, {@link Prefix}, {@link Value}, {@link Suffix},\n * {@link Note}) and the Formula row styles so Spread and Formula stay\n * visually aligned when used together.\n */\nexport function SpreadUI({ items, formatter, ref }: SpreadUIProps) {\n const fmt = formatter ?? ((n: number) => String(n))\n return (\n <Box ref={ref} sx={styles.root}>\n {items.map((item, i) => (\n // Composite of series name + min/max bounds for stability across\n // reorders; falls back to the index when bounds happen to collide.\n <Box\n key={`spread-${item.series?.name ?? ''}-${item.min}-${item.max}-${i}`}\n sx={styles.row}\n >\n {item.series ? (\n <Series name={item.series.name} color={item.series.color} />\n ) : null}\n <Box sx={styles.body}>\n <Box sx={styles.valueRow}>\n {item.prefix ? <Prefix>{item.prefix}</Prefix> : null}\n <Value color={item.color}>{fmt(item.min)}</Value>\n <Separator />\n <Value color={item.color}>{fmt(item.max)}</Value>\n {item.suffix ? <Suffix>{item.suffix}</Suffix> : null}\n </Box>\n {item.note ? <Note>{item.note}</Note> : null}\n </Box>\n </Box>\n ))}\n </Box>\n )\n}\n","import { useWidgetId, useWidgetShallow } from '../stores'\nimport { SpreadUI } from './spread-ui'\nimport type { SpreadWidgetData } from './types'\n\ninterface SpreadSlice {\n data: SpreadWidgetData\n formatter?: (value: number) => string\n}\n\n// Stable empty-data sentinel — keeps the slice's `data` reference stable\n// when the underlying store value is null/undefined so the shallow-equality\n// gate in `useWidgetShallow` doesn't re-render every commit.\nconst EMPTY_DATA: SpreadWidgetData = Object.freeze([]) as SpreadWidgetData\n\nconst spreadSelector = (s: {\n data: unknown\n formatter?: (value: number) => string\n}): SpreadSlice => ({\n data: (s.data ?? EMPTY_DATA) as SpreadWidgetData,\n formatter: s.formatter,\n})\n\n/**\n * Stateful Spread bridge — reads `data` (post-pipeline) and `formatter` from\n * the per-widget store and forwards them to the pure {@link SpreadUI}.\n */\nexport function Spread() {\n const id = useWidgetId()\n const slice = useWidgetShallow(id, spreadSelector)\n return <SpreadUI items={slice.data} formatter={slice.formatter} />\n}\n","import { Box, Skeleton } from '@mui/material'\nimport type { SxProps, Theme } from '@mui/material'\n\nconst styles = {\n root: {\n display: 'flex',\n flexDirection: 'column',\n gap: 2,\n py: 1,\n },\n row: {\n display: 'flex',\n alignItems: 'center',\n gap: 1.5,\n },\n block: { width: 200, height: 32 },\n} satisfies Record<string, SxProps<Theme>>\n\nexport interface SpreadSkeletonProps {\n count?: number\n}\n\n/**\n * Loading placeholder for the Spread widget. Renders `count` rows, each\n * sized for the `min — max` pair so the layout doesn't jump once data\n * resolves. Mirrors the row-per-item structure of {@link SpreadUI}.\n */\nexport function SpreadSkeleton({ count = 1 }: SpreadSkeletonProps) {\n return (\n <Box sx={styles.root}>\n {Array.from({ length: count }).map((_, i) => (\n <Box key={`row-${i}`} sx={styles.row}>\n <Skeleton variant='rectangular' sx={styles.block} />\n </Box>\n ))}\n </Box>\n )\n}\n","import {\n buildCsvDownloadItem,\n buildPngDownloadItem,\n type DownloadItem,\n} from '../actions/download'\nimport type { SpreadWidgetData } from './types'\n\n/**\n * Download menu items for the Spread widget. Always includes a CSV item\n * with `series, prefix, min, max, suffix, note` columns (one row per\n * entry). When `getCaptureEl` is supplied, prepends a PNG item that\n * rasterises the captured element via `html2canvas`.\n */\nexport function createSpreadDownloadConfig(args: {\n filename: string\n getData: () => SpreadWidgetData\n getCaptureEl?: () => HTMLElement | null\n pngPixelRatio?: number\n pngBackgroundColor?: string | null\n}): DownloadItem[] {\n const items: DownloadItem[] = []\n if (args.getCaptureEl) {\n items.push(\n buildPngDownloadItem({\n filename: args.filename,\n getCaptureEl: args.getCaptureEl,\n pixelRatio: args.pngPixelRatio,\n backgroundColor: args.pngBackgroundColor,\n }),\n )\n }\n items.push(\n buildCsvDownloadItem({\n filename: args.filename,\n getRows: () => {\n const data = args.getData()\n const rows: unknown[][] = [\n ['series', 'prefix', 'min', 'max', 'suffix', 'note'],\n ]\n for (const item of data) {\n rows.push([\n item.series?.name ?? '',\n item.prefix ?? '',\n item.min,\n item.max,\n item.suffix ?? '',\n item.note ?? '',\n ])\n }\n return rows\n },\n }),\n )\n return items\n}\n","/**\n * How a `spread` amount is applied to a centre value.\n *\n * - `percentage` — `spread` is a whole-number percentage of the centre\n * value, so `5` means +/-5%.\n * - `absolute` — `spread` is a raw offset in the value's own units.\n */\nexport type SpreadVariant = 'percentage' | 'absolute'\n\nexport interface GetSpreadBandOptions {\n /** The centre value the band is drawn around. */\n value: number\n /** Half-width of the band, read according to `variant`. */\n spread: number\n /** Defaults to `percentage`. */\n variant?: SpreadVariant\n}\n\n/**\n * Derives the `min` / `max` band around a centre value, for feeding a\n * {@link SpreadDataItem} from a single aggregated number (a prediction, a\n * target) plus a tolerance — rather than from a real column range.\n *\n * `spread` is read as a percentage by default, which is what a tolerance\n * almost always is: an absolute offset is meaningless without knowing the\n * value's magnitude, and gets visually lost on large values (+/-5 on a\n * prediction of 204,113 renders as a range indistinguishable from a single\n * number).\n *\n * @example\n * getSpreadBand({ value: 1000, spread: 5 })\n * // -> { min: 950, max: 1050 }\n * getSpreadBand({ value: 1000, spread: 5, variant: 'absolute' })\n * // -> { min: 995, max: 1005 }\n */\nexport function getSpreadBand({\n value,\n spread,\n variant = 'percentage',\n}: GetSpreadBandOptions): { min: number; max: number } {\n const offset = variant === 'absolute' ? spread : (spread / 100) * value\n // Keep `min <= max`: a percentage of a negative centre value (or a negative\n // `spread`) yields a negative offset, which would invert the band.\n const width = Math.abs(offset)\n\n return { min: value - width, max: value + width }\n}\n"],"mappings":"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"}
@@ -5,7 +5,7 @@ import { useStore as s } from "zustand";
5
5
  import { createStore as c } from "zustand/vanilla";
6
6
  import { devtools as l } from "zustand/middleware";
7
7
  import { useShallow as u } from "zustand/react/shallow";
8
- //#region src/widgets-v2/stores/transforms.ts
8
+ //#region src/widgets/stores/transforms.ts
9
9
  function d(e, t, n) {
10
10
  let r = /* @__PURE__ */ new Set();
11
11
  for (let e of t) if (e.enabled && e.disables?.length) for (let t of e.disables) r.add(t);
@@ -14,7 +14,7 @@ function d(e, t, n) {
14
14
  i = e.fn(i);
15
15
  } catch (t) {
16
16
  let r = t instanceof Error ? t : Error(String(t));
17
- console.warn(`[widgets-v2] Transform "${e.id}" failed:`, r), n?.(e.id, r);
17
+ console.warn(`[widgets] Transform "${e.id}" failed:`, r), n?.(e.id, r);
18
18
  }
19
19
  return i;
20
20
  }
@@ -36,7 +36,7 @@ function m(e, t) {
36
36
  return !0;
37
37
  }
38
38
  //#endregion
39
- //#region src/widgets-v2/stores/pipeline-middleware.ts
39
+ //#region src/widgets/stores/pipeline-middleware.ts
40
40
  var h = /* @__PURE__ */ new WeakSet(), g = ((e) => (t, n, r) => {
41
41
  let i = r.setState, a = r, o = (e) => ((t, n) => {
42
42
  let i = r.getState(), o = typeof t == "function" ? t(i) : t, s = (e) => Object.prototype.hasOwnProperty.call(o, e), c = s("rawData") && !Object.is(o.rawData, i.rawData), l = s("dataTransforms") && o.dataTransforms !== i.dataTransforms;
@@ -54,11 +54,11 @@ function v() {
54
54
  return e;
55
55
  }
56
56
  //#endregion
57
- //#region src/widgets-v2/stores/widget-store-registry.ts
57
+ //#region src/widgets/stores/widget-store-registry.ts
58
58
  var y = /* @__PURE__ */ new Map(), b = /* @__PURE__ */ new Map(), x = /* @__PURE__ */ new Set(), S = /* @__PURE__ */ new Map(), C = /* @__PURE__ */ new Map(), w = /* @__PURE__ */ new Map();
59
59
  function T(e) {
60
60
  let t = y.get(e);
61
- if (!t) throw Error(`[widgets-v2] Widget store "${e}" not found.`);
61
+ if (!t) throw Error(`[widgets] Widget store "${e}" not found.`);
62
62
  return t;
63
63
  }
64
64
  function E(e) {
@@ -127,7 +127,7 @@ function z(e, t) {
127
127
  function B(e, t) {
128
128
  y.set(e, t);
129
129
  let n = (b.get(e) ?? 0) + 1;
130
- b.set(e, n), n > 1 && o() && !x.has(e) && (console.warn(`[widgets-v2] Duplicate <Widget.Provider id="${e}"> detected. Multiple providers sharing an id will race on prop sync and corrupt the store. Use unique ids per widget instance.`), x.add(e));
130
+ b.set(e, n), n > 1 && o() && !x.has(e) && (console.warn(`[widgets] Duplicate <Widget.Provider id="${e}"> detected. Multiple providers sharing an id will race on prop sync and corrupt the store. Use unique ids per widget instance.`), x.add(e));
131
131
  }
132
132
  function V(e, t) {
133
133
  let n = (b.get(e) ?? 1) - 1;
@@ -142,17 +142,17 @@ function U(t, n) {
142
142
  return r[0] === t ? i = r[1] : (i = T(t), r[0] = t, r[1] = i), s(i, u(n));
143
143
  }
144
144
  //#endregion
145
- //#region src/widgets-v2/stores/use-echart-instance.ts
145
+ //#region src/widgets/stores/use-echart-instance.ts
146
146
  var W = () => null;
147
147
  function G(t) {
148
148
  let n = e(3), r, i;
149
149
  return n[0] === t ? (r = n[1], i = n[2]) : (r = (e) => F(t, e), i = () => P(t), n[0] = t, n[1] = r, n[2] = i), a(r, i, W);
150
150
  }
151
151
  //#endregion
152
- //#region src/widgets-v2/stores/use-transform.ts
152
+ //#region src/widgets/stores/use-transform.ts
153
153
  function K(t, n, a) {
154
154
  let o = e(29);
155
- if (n.length === 0) throw Error("[widgets-v2] useTransform requires at least one pair.");
155
+ if (n.length === 0) throw Error("[widgets] useTransform requires at least one pair.");
156
156
  let c;
157
157
  o[0] === t ? c = o[1] : (c = T(t), o[0] = t, o[1] = c);
158
158
  let l = c, u = n[0].descriptor.id, d = a?.initialEnabled ?? !0, m;
@@ -232,7 +232,7 @@ function J(t, n, r, i) {
232
232
  }], a[0] = n, a[1] = r, a[2] = o) : o = a[2], K(t, o, i);
233
233
  }
234
234
  //#endregion
235
- //#region src/widgets-v2/stores/use-transform-enabled.ts
235
+ //#region src/widgets/stores/use-transform-enabled.ts
236
236
  function Y(t, n) {
237
237
  let r = e(2), i;
238
238
  return r[0] === n ? i = r[1] : (i = (e) => e.transformStates?.[n]?.enabled === !0, r[0] = n, r[1] = i), U(t, i);
@@ -240,4 +240,4 @@ function Y(t, n) {
240
240
  //#endregion
241
241
  export { U as C, d as D, g as E, p as O, H as S, v as T, A as _, L as a, F as b, k as c, j as d, P as f, O as g, B as h, G as i, f as k, z as l, E as m, J as n, M as o, T as p, K as r, I as s, Y as t, D as u, N as v, _ as w, V as x, R as y };
242
242
 
243
- //# sourceMappingURL=stores-tiFePP0A.js.map
243
+ //# sourceMappingURL=stores-B8CHbgw-.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stores-B8CHbgw-.js","names":["getWidgetStore(id)","(cb) => subscribeEchartInstance(id, cb)","() => getEchartInstance(id)","getWidgetStore(id)","(s) => s.transformStates[primaryId]?.enabled","() => {\n if (typeof persisted === 'boolean') return\n store.setState((s: WidgetState) => ({\n transformStates: {\n ...s.transformStates,\n [primaryId]: {\n ...s.transformStates[primaryId],\n enabled: initialEnabled,\n },\n },\n }))\n }","[store, primaryId, persisted, initialEnabled]","s","(next) => {\n store.setState((s: WidgetState) => {\n const current = s.transformStates[primaryId]?.enabled ?? initialEnabled\n const value =\n typeof next === 'function'\n ? (next as (v: boolean) => boolean)(current)\n : next\n if (value === current) return {}\n return {\n transformStates: {\n ...s.transformStates,\n [primaryId]: {\n ...s.transformStates[primaryId],\n enabled: value,\n },\n },\n }\n })\n }","useCallback<Dispatch<SetStateAction<boolean>>>(\n (next) => {\n store.setState((s: WidgetState) => {\n const current = s.transformStates[primaryId]?.enabled ?? initialEnabled\n const value =\n typeof next === 'function'\n ? (next as (v: boolean) => boolean)(current)\n : next\n if (value === current) return {}\n return {\n transformStates: {\n ...s.transformStates,\n [primaryId]: {\n ...s.transformStates[primaryId],\n enabled: value,\n },\n },\n }\n })\n },\n [store, primaryId, initialEnabled],\n )","[]","() => {\n const next: Registration[] = []\n for (const { descriptor, fn } of pairs) {\n const key: RegistrationKey =\n descriptor.type === 'data' ? 'dataTransforms' : 'configTransforms'\n const transform: Transform = { ...descriptor, fn, enabled }\n store.setState(\n (s: WidgetState) =>\n ({\n [key]: upsertTransform(s[key], transform),\n }) as Partial<WidgetState>,\n )\n next.push({ key, id: descriptor.id })\n }\n registeredRef.current = next\n }","[store, pairs, enabled]","next","() => {\n return () => {\n for (const { key, id: descriptorId } of registeredRef.current) {\n store.setState(\n (s: WidgetState) =>\n ({\n [key]: removeTransform(s[key], descriptorId),\n }) as Partial<WidgetState>,\n )\n }\n registeredRef.current = []\n }\n }","[store]","key","() => setEnabled((v) => !v)","(v) => !v","useCallback(() => setEnabled((v) => !v), [setEnabled])","{ enabled, setEnabled, toggle }","[{ descriptor, fn }]","useMemo<readonly TransformPair[]>(\n () => [{ descriptor, fn }],\n [descriptor, fn],\n )","(s: WidgetState) => s.transformStates?.[transformId]?.enabled === true"],"sources":["../src/widgets/stores/transforms.ts","../src/widgets/stores/pipeline-middleware.ts","../src/widgets/stores/widget-context.ts","../src/widgets/stores/widget-store-registry.ts","../src/widgets/stores/use-echart-instance.ts","../src/widgets/stores/use-transform.ts","../src/widgets/stores/use-transform-enabled.ts"],"sourcesContent":["import type { Transform } from './types'\n\nexport function applyTransforms(\n input: unknown,\n transforms: readonly Transform[],\n onError?: (id: string, error: Error) => void,\n): unknown {\n const disabledIds = new Set<string>()\n for (const t of transforms) {\n if (t.enabled && t.disables?.length) {\n for (const id of t.disables) disabledIds.add(id)\n }\n }\n let acc: unknown = input\n for (const t of transforms) {\n if (!t.enabled) continue\n if (disabledIds.has(t.id)) continue\n try {\n acc = t.fn(acc)\n } catch (e) {\n const err = e instanceof Error ? e : new Error(String(e))\n // eslint-disable-next-line no-console\n console.warn(`[widgets] Transform \"${t.id}\" failed:`, err)\n onError?.(t.id, err)\n }\n }\n return acc\n}\n\nexport function upsertTransform(\n transforms: readonly Transform[],\n next: Transform,\n): readonly Transform[] {\n const existing = transforms.find((t) => t.id === next.id)\n if (\n existing?.order === next.order &&\n existing?.enabled === next.enabled &&\n existing?.fn === next.fn &&\n existing?.type === next.type &&\n sameStringArray(existing?.disables, next.disables) &&\n sameStringArray(existing?.replaceMergeKeys, next.replaceMergeKeys)\n ) {\n return transforms\n }\n const filtered = transforms.filter((t) => t.id !== next.id)\n const idx = filtered.findIndex((t) => t.order > next.order)\n const out = filtered.slice()\n out.splice(idx === -1 ? out.length : idx, 0, next)\n return out\n}\n\nexport function removeTransform(\n transforms: readonly Transform[],\n id: string,\n): readonly Transform[] {\n if (!transforms.some((t) => t.id === id)) return transforms\n return transforms.filter((t) => t.id !== id)\n}\n\nfunction sameStringArray(\n a?: readonly string[],\n b?: readonly string[],\n): boolean {\n if (a === b) return true\n if (!a) return !b?.length\n if (!b) return !a.length\n if (a.length !== b.length) return false\n for (let i = 0; i < a.length; i++) if (a[i] !== b[i]) return false\n return true\n}\n","import type { StateCreator, StoreApi, StoreMutatorIdentifier } from 'zustand'\nimport type { Transform, WidgetState } from './types'\nimport { applyTransforms } from './transforms'\n\ntype PipelineMiddleware = <\n T extends WidgetState,\n Mps extends [StoreMutatorIdentifier, unknown][] = [],\n Mcs extends [StoreMutatorIdentifier, unknown][] = [],\n>(\n config: StateCreator<T, Mps, Mcs>,\n) => StateCreator<T, Mps, Mcs>\n\ntype SetFn<T> = StoreApi<T>['setState']\n\n// Per-store flag: true iff the current `state.error` was authored by the\n// pipeline (a transform threw) rather than by the consumer (Provider's\n// `error` prop or a direct setState). Lets the middleware clear stale\n// pipeline errors on a subsequent clean run without clobbering errors a\n// consumer set out-of-band.\nconst pipelineOwnedError = new WeakSet<StoreApi<WidgetState>>()\n\nexport const pipelineMiddleware: PipelineMiddleware = ((config) =>\n (set, get, api) => {\n const origSetState = api.setState as SetFn<WidgetState>\n const typedApi = api as StoreApi<WidgetState>\n\n const wrap = (delegate: SetFn<WidgetState>): SetFn<WidgetState> =>\n ((partial, replace) => {\n const current = (api.getState as () => WidgetState)()\n const incoming =\n typeof partial === 'function'\n ? (partial as (s: WidgetState) => Partial<WidgetState>)(current)\n : (partial as Partial<WidgetState>)\n\n const has = (key: keyof WidgetState) =>\n Object.prototype.hasOwnProperty.call(incoming, key)\n\n const rawDataChanged =\n has('rawData') && !Object.is(incoming.rawData, current.rawData)\n const dataXfChanged =\n has('dataTransforms') &&\n incoming.dataTransforms !== current.dataTransforms\n\n if (!rawDataChanged && !dataXfChanged) {\n // Consumer-authored writes that don't trigger the pipeline. If the\n // consumer is explicitly touching `error`, the next pipeline run is\n // no longer responsible for it — drop the pipeline-owned marker.\n if (has('error')) pipelineOwnedError.delete(typedApi)\n return delegate(incoming, replace as false)\n }\n\n const augmented: Partial<WidgetState> = { ...incoming }\n let firstError: unknown = undefined\n const onError = (_id: string, err: Error) => {\n if (firstError === undefined) firstError = err\n }\n\n const nextRaw = rawDataChanged ? incoming.rawData : current.rawData\n const nextXf: readonly Transform[] = dataXfChanged\n ? incoming.dataTransforms!\n : current.dataTransforms\n augmented.data = applyTransforms(nextRaw, nextXf, onError)\n\n // Reconcile `error` based on who authored the previous value:\n // - pipeline throw → stamp the new error, mark pipeline-owned.\n // - clean run AND previous error was pipeline-owned → clear it.\n // - clean run AND previous error was consumer-set → leave it.\n // Consumer-authored `error` in `incoming` also wins over the marker\n // (and resets the marker via the early-return branch above).\n if (firstError !== undefined) {\n augmented.error = firstError\n pipelineOwnedError.add(typedApi)\n } else if (pipelineOwnedError.has(typedApi) && !has('error')) {\n augmented.error = undefined\n pipelineOwnedError.delete(typedApi)\n } else if (has('error')) {\n // Consumer set error in the same call that ran the pipeline — honor\n // their write and surrender ownership.\n pipelineOwnedError.delete(typedApi)\n }\n\n return delegate(augmented, replace as false)\n }) as SetFn<WidgetState>\n\n // Wrap both the public setState (used by store.setState() callers) and\n // the inner set passed into the state creator (used by actions inside config).\n api.setState = wrap(origSetState) as typeof api.setState\n const wrappedInnerSet = wrap(set as SetFn<WidgetState>)\n\n return config(wrappedInnerSet as typeof set, get, api)\n }) as PipelineMiddleware\n","import { createContext, useContext } from 'react'\n\nexport const WidgetContext = createContext<string | null>(null)\n\nexport function useWidgetId(): string {\n const id = useContext(WidgetContext)\n if (id == null) {\n throw new Error(\n 'useWidgetId() must be called inside <Widget.Provider>. ' +\n 'If you are calling from outside the Provider tree, use the hooks ' +\n '(useWidget, useWidgetShallow, useTransform) directly with an explicit id.',\n )\n }\n return id\n}\n","import type { ECharts } from 'echarts'\nimport { useStore, type StoreApi } from 'zustand'\nimport { createStore } from 'zustand/vanilla'\nimport { devtools } from 'zustand/middleware'\nimport { useShallow } from 'zustand/react/shallow'\nimport { isDev } from '@carto/ps-utils'\nimport { pipelineMiddleware } from './pipeline-middleware'\nimport type { WidgetInit, WidgetState, WidgetStoreApi } from './types'\n\nconst widgetStores = new Map<string, WidgetStoreApi>()\n\nconst widgetMountCounts = new Map<string, number>()\nconst warnedDuplicates = new Set<string>()\n\n// Per-widget capture-element registry. Held outside the reactive store so\n// publishing the element doesn't trigger any consumer re-renders — these\n// handles are read imperatively by per-widget download configs at click time\n// only. `Widget.State` writes its success-path content wrapper here on mount\n// (auto-cleared on unmount via callback ref), and `create*DownloadConfig`\n// looks it up to feed `html2canvas` for PNG export.\nconst captureEls = new Map<string, HTMLElement>()\n\n// Per-widget live ECharts instance registry. Same imperative-only contract\n// as `captureEls`: published by the `Widget.Echart` bridge on mount /\n// dispose, read at click time by actions that need to dispatch on the live\n// chart (e.g. `ZoomToggle`'s disable handler issuing\n// `setOption({}, { replaceMerge: ['dataZoom'] })` to clear the slider).\n// Held outside the reactive store so publishing never triggers consumer\n// re-renders.\nconst echartInstances = new Map<string, ECharts>()\n\n// Per-id subscribers notified whenever `setEchartInstance` writes a new\n// value. Powers `useEchartInstance(id)` (a `useSyncExternalStore` wrapper)\n// so actions like `BrushToggle` can react when the chart becomes available\n// — required for lifecycle effects that need the instance on mount but\n// arrive in the tree before the `Widget.Echart` bridge has run its init\n// `useEffect`.\ntype EchartInstanceListener = (chart: ECharts | null) => void\nconst echartInstanceSubscribers = new Map<string, Set<EchartInstanceListener>>()\n\nexport function getWidgetStore(id: string): WidgetStoreApi {\n const store = widgetStores.get(id)\n if (!store) throw new Error(`[widgets] Widget store \"${id}\" not found.`)\n return store\n}\n\nexport function hasWidgetStore(id: string): boolean {\n return widgetStores.has(id)\n}\n\nexport function deleteWidgetStore(id: string): void {\n widgetStores.delete(id)\n}\n\nexport function resetWidgetStore(id: string): void {\n const store = widgetStores.get(id)\n if (store) store.setState({ transformStates: {} })\n}\n\nexport function clearAllWidgetStores(): void {\n widgetStores.clear()\n widgetMountCounts.clear()\n warnedDuplicates.clear()\n captureEls.clear()\n echartInstances.clear()\n echartInstanceSubscribers.clear()\n}\n\n/**\n * Register or clear the capture element for a widget. Pass `null` to clear.\n * Called by `Widget.State` via a callback ref on its success-path content\n * wrapper. The element is read by per-widget download configs at click time\n * to feed `html2canvas` for PNG export.\n */\nexport function setCaptureEl(id: string, el: HTMLElement | null): void {\n if (el == null) captureEls.delete(id)\n else captureEls.set(id, el)\n}\n\n/**\n * Read the currently registered capture element for a widget. Returns `null`\n * when no `Widget.State` is on its success path (loading / error / empty)\n * or when the widget hasn't mounted.\n */\nexport function getCaptureEl(id: string): HTMLElement | null {\n return captureEls.get(id) ?? null\n}\n\n/** @internal — exposed for tests and debugging only. */\nexport function clearAllCaptureEls(): void {\n captureEls.clear()\n}\n\n/**\n * Register or clear the live ECharts instance for a widget. Pass `null`\n * to clear. Called by the `Widget.Echart` bridge on mount / dispose.\n * Read by actions (e.g. `ZoomToggle`'s disable handler) that need to\n * dispatch on the live chart without going through the pipeline.\n *\n * Notifies subscribers registered via {@link subscribeEchartInstance}\n * after the map mutation, so reactive consumers (the\n * `useEchartInstance` hook) re-render with the new value.\n */\nexport function setEchartInstance(id: string, chart: ECharts | null): void {\n if (chart == null) echartInstances.delete(id)\n else echartInstances.set(id, chart)\n echartInstanceSubscribers.get(id)?.forEach((fn) => fn(chart))\n}\n\n/**\n * Read the currently registered ECharts instance for a widget. Returns\n * `null` when no `Widget.Echart` is mounted, or before the bridge has\n * created the instance.\n */\nexport function getEchartInstance(id: string): ECharts | null {\n return echartInstances.get(id) ?? null\n}\n\n/**\n * Subscribe to changes of the registered ECharts instance for a widget.\n * The listener is called *after* every {@link setEchartInstance} (with\n * the new chart, or `null` when cleared). Returns an unsubscribe\n * function. Used by the `useEchartInstance` hook to drive React effects\n * that need to react to instance arrival / departure (e.g.\n * `BrushToggle`'s `'finished'` re-dispatch loop).\n */\nexport function subscribeEchartInstance(\n id: string,\n listener: EchartInstanceListener,\n): () => void {\n let listeners = echartInstanceSubscribers.get(id)\n if (!listeners) {\n listeners = new Set()\n echartInstanceSubscribers.set(id, listeners)\n }\n listeners.add(listener)\n return () => {\n const set = echartInstanceSubscribers.get(id)\n if (!set) return\n set.delete(listener)\n if (set.size === 0) echartInstanceSubscribers.delete(id)\n }\n}\n\n/** @internal — exposed for tests and debugging only. */\nexport function clearAllEchartInstances(): void {\n echartInstances.clear()\n echartInstanceSubscribers.clear()\n}\n\n/** @internal — exposed for tests and debugging only. */\nexport function __debugListWidgetStores(): string[] {\n return Array.from(widgetStores.keys())\n}\n\n/**\n * Insert or replace a store entry in the registry without refcounting or\n * duplicate-id detection. Used by Provider's lazy `useState` init so the\n * store is reachable from `useWidget(id)` calls in children that render\n * before the Provider's mount effect runs. Refcounting and dev warns happen\n * in {@link registerWidgetStore} during the mount effect.\n *\n * @internal\n */\nexport function setWidgetStoreEntry(id: string, store: WidgetStoreApi): void {\n widgetStores.set(id, store)\n}\n\n/** @internal — used by Provider; not part of the public API. */\nexport function createWidgetStore(\n id: string,\n init: WidgetInit,\n): WidgetStoreApi {\n const builder = pipelineMiddleware<WidgetState>(() => ({\n rawData: init.data,\n data: init.data,\n dataTransforms: [],\n configTransforms: [],\n transformStates: {},\n isLoading: init.isLoading ?? false,\n isFetching: init.isFetching ?? false,\n error: init.error,\n rawFormatter: init.formatter,\n formatter: init.formatter,\n labelFormatter: init.labelFormatter,\n }))\n\n const store = createStore<WidgetState>()(\n devtools(builder, { name: `widget-${id}`, enabled: isDev() }),\n ) as unknown as WidgetStoreApi\n\n return store\n}\n\n/** @internal — registers a Provider mount and tracks/warns on duplicate ids in dev. */\nexport function registerWidgetStore(id: string, store: WidgetStoreApi): void {\n widgetStores.set(id, store)\n const count = (widgetMountCounts.get(id) ?? 0) + 1\n widgetMountCounts.set(id, count)\n if (count > 1 && isDev() && !warnedDuplicates.has(id)) {\n // eslint-disable-next-line no-console\n console.warn(\n `[widgets] Duplicate <Widget.Provider id=\"${id}\"> detected. ` +\n `Multiple providers sharing an id will race on prop sync and corrupt the store. ` +\n `Use unique ids per widget instance.`,\n )\n warnedDuplicates.add(id)\n }\n}\n\n/** @internal — Provider unmount counterpart; on last unmount removes the refcount entry. */\nexport function unregisterWidgetStore(\n id: string,\n options: { keepAlive: boolean },\n): void {\n const count = (widgetMountCounts.get(id) ?? 1) - 1\n if (count <= 0) {\n widgetMountCounts.delete(id)\n if (!options.keepAlive) widgetStores.delete(id)\n } else {\n widgetMountCounts.set(id, count)\n }\n}\n\nexport function useWidget<T, S extends WidgetState = WidgetState>(\n id: string,\n selector: (state: S) => T,\n): T {\n const store = getWidgetStore(id) as unknown as StoreApi<S>\n return useStore(store, selector)\n}\n\nexport function useWidgetShallow<T, S extends WidgetState = WidgetState>(\n id: string,\n selector: (state: S) => T,\n): T {\n const store = getWidgetStore(id) as unknown as StoreApi<S>\n return useStore(store, useShallow(selector))\n}\n","import { useSyncExternalStore } from 'react'\nimport type { ECharts } from 'echarts'\nimport {\n getEchartInstance,\n subscribeEchartInstance,\n} from './widget-store-registry'\n\nconst SSR_SNAPSHOT = (): ECharts | null => null\n\n/**\n * Reactive read of the live ECharts instance for a widget. Returns\n * `null` before the `Widget.Echart` bridge has mounted (or after it's\n * disposed); the consumer re-renders when the instance arrives /\n * departs / changes.\n *\n * Wraps {@link subscribeEchartInstance} via `useSyncExternalStore`, so\n * actions can use it inside an effect's deps array to react to chart\n * lifecycle events without polling. Required for actions like\n * `BrushToggle` whose effect needs to dispatch `takeGlobalCursor` the\n * moment the chart exists, then re-dispatch on every `'finished'`\n * event.\n */\nexport function useEchartInstance(id: string): ECharts | null {\n return useSyncExternalStore(\n (cb) => subscribeEchartInstance(id, cb),\n () => getEchartInstance(id),\n SSR_SNAPSHOT,\n )\n}\n","import {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n type Dispatch,\n type SetStateAction,\n} from 'react'\nimport { useStore } from 'zustand'\nimport { getWidgetStore } from './widget-store-registry'\nimport { removeTransform, upsertTransform } from './transforms'\nimport type {\n Transform,\n TransformDescriptor,\n TransformFn,\n TransformPair,\n WidgetState,\n} from './types'\n\nexport interface UseTransformOptions {\n initialEnabled?: boolean\n}\n\nexport interface TransformControls {\n enabled: boolean\n setEnabled: Dispatch<SetStateAction<boolean>>\n toggle: () => void\n}\n\ntype RegistrationKey = 'dataTransforms' | 'configTransforms'\n\ninterface Registration {\n key: RegistrationKey\n id: string\n}\n\nexport function useTransform(\n id: string,\n pairs: readonly TransformPair[],\n options?: UseTransformOptions,\n): TransformControls {\n if (pairs.length === 0) {\n throw new Error('[widgets] useTransform requires at least one pair.')\n }\n\n const store = getWidgetStore(id)\n const primaryId = pairs[0]!.descriptor.id\n const initialEnabled = options?.initialEnabled ?? true\n\n // Read `enabled` reactively from the store. Multiple mounts of the same\n // descriptor (e.g., Toolbox renders ZoomToggle both in the inline preview\n // and inside its overflow Paper) stay in sync because they share the\n // `transformStates[primaryId].enabled` slot.\n const persisted = useStore(\n store,\n (s) => s.transformStates[primaryId]?.enabled,\n )\n const enabled = typeof persisted === 'boolean' ? persisted : initialEnabled\n\n // Seed the store's `transformStates[primaryId].enabled` on first mount so\n // subsequent reads (and a rehydration after `keepAlive` remounts) have a\n // canonical value to read from. Idempotent: skip when already set.\n useEffect(() => {\n if (typeof persisted === 'boolean') return\n store.setState((s: WidgetState) => ({\n transformStates: {\n ...s.transformStates,\n [primaryId]: {\n ...s.transformStates[primaryId],\n enabled: initialEnabled,\n },\n },\n }))\n }, [store, primaryId, persisted, initialEnabled])\n\n const setEnabled = useCallback<Dispatch<SetStateAction<boolean>>>(\n (next) => {\n store.setState((s: WidgetState) => {\n const current = s.transformStates[primaryId]?.enabled ?? initialEnabled\n const value =\n typeof next === 'function'\n ? (next as (v: boolean) => boolean)(current)\n : next\n if (value === current) return {}\n return {\n transformStates: {\n ...s.transformStates,\n [primaryId]: {\n ...s.transformStates[primaryId],\n enabled: value,\n },\n },\n }\n })\n },\n [store, primaryId, initialEnabled],\n )\n\n // Track the latest registrations so the unmount cleanup knows what to remove.\n // Updated inside the register effect (post-render), never during render.\n const registeredRef = useRef<Registration[]>([])\n\n // Register / re-register when `pairs` reference or `enabled` changes.\n // upsertTransform is identity-stable: re-registering with an unchanged\n // descriptor + fn returns the same array reference, and the middleware\n // bypasses the pipeline for unchanged refs. Consumers should memoize\n // `pairs` (useSingleTransform does this internally; multi-pair consumers\n // should wrap the pairs array in useMemo).\n useEffect(() => {\n const next: Registration[] = []\n for (const { descriptor, fn } of pairs) {\n const key: RegistrationKey =\n descriptor.type === 'data' ? 'dataTransforms' : 'configTransforms'\n const transform: Transform = { ...descriptor, fn, enabled }\n store.setState(\n (s: WidgetState) =>\n ({\n [key]: upsertTransform(s[key], transform),\n }) as Partial<WidgetState>,\n )\n next.push({ key, id: descriptor.id })\n }\n registeredRef.current = next\n }, [store, pairs, enabled])\n\n // Unmount cleanup — remove every currently-registered descriptor. Reads from\n // the ref so we always remove the latest registrations, not a stale snapshot.\n useEffect(() => {\n return () => {\n for (const { key, id: descriptorId } of registeredRef.current) {\n store.setState(\n (s: WidgetState) =>\n ({\n [key]: removeTransform(s[key], descriptorId),\n }) as Partial<WidgetState>,\n )\n }\n registeredRef.current = []\n }\n }, [store])\n\n const toggle = useCallback(() => setEnabled((v) => !v), [setEnabled])\n\n return { enabled, setEnabled, toggle }\n}\n\nexport function useSingleTransform(\n id: string,\n descriptor: TransformDescriptor,\n fn: TransformFn,\n options?: UseTransformOptions,\n): TransformControls {\n const pairs = useMemo<readonly TransformPair[]>(\n () => [{ descriptor, fn }],\n [descriptor, fn],\n )\n return useTransform(id, pairs, options)\n}\n","import { useWidgetShallow } from './widget-store-registry'\nimport type { WidgetState } from './types'\n\n/**\n * Reactive read of a single transform's `enabled` flag from the\n * per-widget store. Returns `false` if the transform hasn't been\n * registered yet (i.e., the action component hasn't mounted) — safe\n * default for \"the feature is off\".\n *\n * Used by widget composers that want to react to an action's on/off\n * cycle without having the widget primitive import the action. For\n * example, the `CategoryWidget` storybook composer wires the\n * SearcherToggle's open state into `<Widget.Category searcherOpen=…>`\n * so the library primitive stays renderer-agnostic.\n *\n * Magic-string `transformId` is intentional — it lives at the composer\n * layer where the action is already imported by JSX, so the string\n * appears alongside the same name in the toolbox.\n */\nexport function useTransformEnabled(id: string, transformId: string): boolean {\n return useWidgetShallow(\n id,\n (s: WidgetState) => s.transformStates?.[transformId]?.enabled === true,\n )\n}\n"],"mappings":"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"}