@carto/ps-react-ui 5.1.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 (1136) hide show
  1. package/dist/{actions-BjPfCLG9.js → actions-KsX1xdDM.js} +28 -28
  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-CRihbmRv.js → echart-DjcbtKgi.js} +7 -7
  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/actions/fullscreen/types.d.ts +13 -20
  72. package/dist/types/widgets/actions/index.d.ts +10 -20
  73. package/dist/types/widgets/actions/lock-selection/lock-selection.d.ts +54 -16
  74. package/dist/types/widgets/actions/relative-data/relative-data.d.ts +36 -21
  75. package/dist/types/{widgets-v2 → widgets}/actions/relative-data/transforms.d.ts +2 -2
  76. package/dist/types/widgets/actions/searcher/searcher-toggle.d.ts +21 -16
  77. package/dist/types/widgets/actions/searcher/searcher.d.ts +9 -19
  78. package/dist/types/widgets/actions/stack-toggle/stack-toggle.d.ts +10 -17
  79. package/dist/types/widgets/actions/zoom-toggle/style.d.ts +7 -8
  80. package/dist/types/widgets/actions/zoom-toggle/zoom-toggle.d.ts +31 -22
  81. package/dist/types/widgets/bar/index.d.ts +3 -2
  82. package/dist/types/widgets/bar/skeleton.d.ts +5 -0
  83. package/dist/types/widgets/bar/types.d.ts +46 -9
  84. package/dist/types/widgets/category/category-ui.d.ts +86 -3
  85. package/dist/types/{widgets-v2 → widgets}/category/components/category-bar-stacked.d.ts +2 -1
  86. package/dist/types/widgets/category/components/category-bar.d.ts +18 -4
  87. package/dist/types/widgets/category/components/category-legend.d.ts +30 -4
  88. package/dist/types/widgets/category/components/category-row-multi.d.ts +27 -10
  89. package/dist/types/widgets/category/components/category-row-other.d.ts +19 -2
  90. package/dist/types/widgets/category/components/category-row-single.d.ts +23 -9
  91. package/dist/types/{widgets-v2 → widgets}/category/components/category-row-stacked.d.ts +2 -1
  92. package/dist/types/widgets/category/index.d.ts +10 -14
  93. package/dist/types/widgets/category/skeleton.d.ts +11 -1
  94. package/dist/types/widgets/category/style.d.ts +155 -83
  95. package/dist/types/widgets/category/types.d.ts +49 -29
  96. package/dist/types/widgets/echart/echart-ui.d.ts +44 -9
  97. package/dist/types/widgets/echart/echart.d.ts +80 -5
  98. package/dist/types/widgets/echart/index.d.ts +4 -5
  99. package/dist/types/widgets/echart/shared-resize-observer.d.ts +2 -9
  100. package/dist/types/widgets/formula/formula-ui.d.ts +18 -3
  101. package/dist/types/widgets/formula/index.d.ts +11 -11
  102. package/dist/types/{widgets-v2 → widgets}/formula/series.d.ts +2 -1
  103. package/dist/types/widgets/formula/skeleton.d.ts +4 -1
  104. package/dist/types/widgets/formula/style.d.ts +20 -12
  105. package/dist/types/widgets/formula/types.d.ts +41 -39
  106. package/dist/types/{widgets-v2 → widgets}/formula/value.d.ts +2 -1
  107. package/dist/types/widgets/histogram/index.d.ts +5 -4
  108. package/dist/types/widgets/histogram/skeleton.d.ts +9 -1
  109. package/dist/types/widgets/histogram/types.d.ts +60 -12
  110. package/dist/types/{widgets-v2 → widgets}/index.d.ts +2 -2
  111. package/dist/types/widgets/markdown/index.d.ts +5 -4
  112. package/dist/types/widgets/markdown/markdown-ui.d.ts +10 -7
  113. package/dist/types/widgets/markdown/markdown.d.ts +4 -3
  114. package/dist/types/widgets/markdown/skeleton.d.ts +4 -1
  115. package/dist/types/widgets/markdown/style.d.ts +61 -2
  116. package/dist/types/widgets/markdown/types.d.ts +2 -16
  117. package/dist/types/widgets/note/style.d.ts +14 -16
  118. package/dist/types/widgets/pie/index.d.ts +4 -3
  119. package/dist/types/widgets/pie/skeleton.d.ts +13 -1
  120. package/dist/types/widgets/pie/types.d.ts +57 -9
  121. package/dist/types/widgets/range/index.d.ts +4 -6
  122. package/dist/types/widgets/range/range-ui.d.ts +25 -3
  123. package/dist/types/widgets/range/skeleton.d.ts +9 -1
  124. package/dist/types/widgets/range/style.d.ts +40 -2
  125. package/dist/types/widgets/range/types.d.ts +26 -22
  126. package/dist/types/widgets/scatterplot/index.d.ts +5 -3
  127. package/dist/types/widgets/scatterplot/skeleton.d.ts +12 -1
  128. package/dist/types/widgets/scatterplot/types.d.ts +54 -9
  129. package/dist/types/widgets/selection-summary/selection-summary.d.ts +26 -10
  130. package/dist/types/widgets/selection-summary/style.d.ts +32 -3
  131. package/dist/types/widgets/spread/index.d.ts +7 -9
  132. package/dist/types/widgets/spread/skeleton.d.ts +9 -1
  133. package/dist/types/widgets/spread/spread-ui.d.ts +16 -3
  134. package/dist/types/widgets/spread/types.d.ts +20 -35
  135. package/dist/types/widgets/stores/index.d.ts +8 -3
  136. package/dist/types/widgets/stores/types.d.ts +45 -172
  137. package/dist/types/widgets/subheader/style.d.ts +5 -14
  138. package/dist/types/widgets/subheader/subheader.d.ts +9 -11
  139. package/dist/types/widgets/table/helpers.d.ts +28 -34
  140. package/dist/types/widgets/table/index.d.ts +8 -17
  141. package/dist/types/widgets/table/skeleton.d.ts +17 -5
  142. package/dist/types/widgets/table/style.d.ts +21 -14
  143. package/dist/types/widgets/table/table-ui.d.ts +41 -29
  144. package/dist/types/widgets/table/types.d.ts +34 -182
  145. package/dist/types/widgets/timeseries/index.d.ts +4 -2
  146. package/dist/types/widgets/timeseries/skeleton.d.ts +7 -0
  147. package/dist/types/widgets/timeseries/types.d.ts +60 -9
  148. package/dist/types/{widgets-v2 → widgets}/types.d.ts +7 -6
  149. package/dist/types/widgets/utils/index.d.ts +3 -7
  150. package/dist/types/widgets/wrapper/index.d.ts +4 -6
  151. package/dist/{utils-Dr6gf3vD.js → utils-BStJWhZN.js} +5 -5
  152. package/dist/utils-BStJWhZN.js.map +1 -0
  153. package/dist/widgets/actions.js +4 -2
  154. package/dist/widgets/bar.js +202 -132
  155. package/dist/widgets/bar.js.map +1 -1
  156. package/dist/widgets/category.js +2 -450
  157. package/dist/widgets/echart.js +2 -3
  158. package/dist/widgets/formula.js +2 -3
  159. package/dist/widgets/histogram.js +263 -160
  160. package/dist/widgets/histogram.js.map +1 -1
  161. package/dist/widgets/markdown.js +3 -148
  162. package/dist/widgets/pie.js +317 -197
  163. package/dist/widgets/pie.js.map +1 -1
  164. package/dist/widgets/range.js +2 -233
  165. package/dist/widgets/scatterplot.js +300 -196
  166. package/dist/widgets/scatterplot.js.map +1 -1
  167. package/dist/widgets/spread.js +2 -158
  168. package/dist/widgets/stores.js +2 -3
  169. package/dist/widgets/table.js +2 -599
  170. package/dist/widgets/timeseries.js +250 -136
  171. package/dist/widgets/timeseries.js.map +1 -1
  172. package/dist/widgets/utils.js +2 -18
  173. package/dist/{widgets-v2.js → widgets.js} +63 -57
  174. package/dist/widgets.js.map +1 -0
  175. package/dist/{zoom-toggle-IsF8BnAp.js → zoom-toggle-D_VuA01l.js} +5 -5
  176. package/dist/zoom-toggle-D_VuA01l.js.map +1 -0
  177. package/package.json +45 -131
  178. package/src/chat/bubbles/chat-agent-message-markdown.tsx +1 -1
  179. package/src/chat/bubbles/chat-error-message.tsx +9 -3
  180. package/src/chat/bubbles/chat-suggestion-button.tsx +8 -3
  181. package/src/chat/containers/chat-footer.tsx +6 -2
  182. package/src/chat/containers/chat-starter.tsx +6 -4
  183. package/src/chat/feedback/chat-tool-full-view-dialog.tsx +3 -1
  184. package/src/chat/feedback/chat-tool-group.test.tsx +1 -1
  185. package/src/chat/feedback/chat-tool-group.tsx +40 -9
  186. package/src/chat/feedback/chat-tool-trace.tsx +55 -19
  187. package/src/chat/types.ts +5 -2
  188. package/src/components/basemaps/header.tsx +6 -1
  189. package/src/components/index.ts +2 -3
  190. package/src/components/lasso-tool/geometry-toolbar.tsx +1 -1
  191. package/src/components/lasso-tool/lasso-tool-inline.tsx +12 -4
  192. package/src/components/lasso-tool/lasso-tool.tsx +26 -15
  193. package/src/components/lasso-tool/layer-filters.tsx +36 -11
  194. package/src/components/lasso-tool/options-sections.test.tsx +13 -2
  195. package/src/components/lasso-tool/options-sections.tsx +17 -7
  196. package/src/components/lasso-tool/toolbar/connected.tsx +1 -1
  197. package/src/components/lasso-tool/toolbar/context.tsx +1 -1
  198. package/src/components/measurement-tools/measurement-tools.tsx +28 -13
  199. package/src/components/no-data-alert/no-data-alert.tsx +12 -2
  200. package/src/components/responsive-drawer/responsive-drawer.tsx +0 -1
  201. package/src/components/types.ts +17 -0
  202. package/src/components/zoom-controls/zoom-controls.tsx +3 -1
  203. package/src/legend/components/legend-actions/legend-actions.tsx +2 -2
  204. package/src/legend/components/legend-category/legend-category-ui.tsx +7 -3
  205. package/src/legend/components/legend-config-select/legend-config-select.tsx +6 -2
  206. package/src/legend/components/legend-group/legend-group.tsx +6 -2
  207. package/src/legend/components/legend-group/styles.ts +1 -1
  208. package/src/legend/components/legend-icon/legend-icon-ui.tsx +7 -3
  209. package/src/legend/components/legend-opacity/legend-opacity.tsx +9 -3
  210. package/src/legend/components/legend-proportion/legend-proportion-ui.tsx +19 -3
  211. package/src/legend/components/legend-ramp/legend-ramp-ui.tsx +31 -7
  212. package/src/legend/components/legend-row/legend-row.tsx +2 -2
  213. package/src/legend/components/legend-row/styles.ts +1 -1
  214. package/src/legend/components/legend-sortable/legend-sortable.tsx +7 -3
  215. package/src/legend/components/legend-swatch/legend-swatch.tsx +2 -1
  216. package/src/legend/components/legend-visible-layers/legend-visible-layers.tsx +18 -9
  217. package/src/legend/index.ts +1 -1
  218. package/src/legend/provider/legend-provider.tsx +2 -2
  219. package/src/legend/stores/legend-store-registry.ts +1 -1
  220. package/src/migration/v4/classes.ts +56 -0
  221. package/src/migration/v4/icons.ts +56 -0
  222. package/src/migration/v4/index.ts +17 -0
  223. package/src/migration/v4/migration.test.ts +772 -0
  224. package/src/migration/v4/rules.ts +444 -0
  225. package/src/migration/v4/transform.ts +92 -0
  226. package/src/migration/v4/transforms/helpers.ts +369 -0
  227. package/src/migration/v4/transforms/meridian-5.ts +163 -0
  228. package/src/migration/v4/transforms/ps-react-ui.ts +99 -0
  229. package/src/migration/v4/transforms/v5-v6.ts +161 -0
  230. package/src/migration/v4/transforms/v6-v7.ts +342 -0
  231. package/src/migration/v4/transforms/v7-v9-dom.ts +403 -0
  232. package/src/migration/v4/transforms/v7-v9-props.ts +529 -0
  233. package/src/migration/v4/widgets-v1.ts +199 -0
  234. package/src/{widgets-v2 → widgets}/PERFORMANCE.md +5 -5
  235. package/src/widgets/actions/brush-toggle/brush-toggle.test.tsx +144 -172
  236. package/src/widgets/actions/brush-toggle/brush-toggle.tsx +129 -108
  237. package/src/widgets/actions/brush-toggle/style.ts +5 -40
  238. package/src/widgets/actions/change-column/change-column-icon.tsx +14 -10
  239. package/src/widgets/actions/change-column/change-column.test.tsx +57 -288
  240. package/src/widgets/actions/change-column/change-column.tsx +116 -145
  241. package/src/widgets/actions/change-column/sortable-column-item.tsx +29 -17
  242. package/src/widgets/actions/change-column/types.ts +9 -18
  243. package/src/widgets/actions/download/download.test.tsx +290 -289
  244. package/src/widgets/actions/download/download.tsx +101 -89
  245. package/src/widgets/actions/download/exports.test.tsx +157 -247
  246. package/src/{widgets-v2 → widgets}/actions/download/exports.ts +1 -1
  247. package/src/{widgets-v2 → widgets}/actions/download/png-item.tsx +2 -2
  248. package/src/widgets/actions/download/types.ts +26 -15
  249. package/src/widgets/actions/fullscreen/fullscreen.test.tsx +164 -221
  250. package/src/widgets/actions/fullscreen/fullscreen.tsx +277 -72
  251. package/src/widgets/actions/fullscreen/types.ts +14 -31
  252. package/src/widgets/actions/index.ts +90 -68
  253. package/src/widgets/actions/lock-selection/lock-selection.test.tsx +259 -156
  254. package/src/widgets/actions/lock-selection/lock-selection.tsx +162 -102
  255. package/src/widgets/actions/relative-data/relative-data.test.tsx +65 -536
  256. package/src/widgets/actions/relative-data/relative-data.tsx +82 -163
  257. package/src/{widgets-v2 → widgets}/actions/relative-data/transforms.ts +2 -2
  258. package/src/widgets/actions/searcher/searcher-toggle.tsx +75 -56
  259. package/src/widgets/actions/searcher/searcher.tsx +85 -168
  260. package/src/widgets/actions/stack-toggle/stack-toggle.test.tsx +49 -402
  261. package/src/widgets/actions/stack-toggle/stack-toggle.tsx +39 -114
  262. package/src/widgets/actions/zoom-toggle/style.ts +5 -8
  263. package/src/widgets/actions/zoom-toggle/zoom-toggle.test.tsx +88 -303
  264. package/src/widgets/actions/zoom-toggle/zoom-toggle.tsx +87 -199
  265. package/src/widgets/bar/index.ts +6 -5
  266. package/src/{widgets-v2 → widgets}/bar/options.ts +1 -1
  267. package/src/widgets/bar/skeleton.tsx +61 -52
  268. package/src/widgets/bar/types.ts +46 -11
  269. package/src/widgets/category/category-ui.test.tsx +846 -317
  270. package/src/widgets/category/category-ui.tsx +444 -127
  271. package/src/{widgets-v2 → widgets}/category/components/category-bar-stacked.tsx +2 -1
  272. package/src/widgets/category/components/category-bar.tsx +31 -12
  273. package/src/{widgets-v2 → widgets}/category/components/category-legend.test.tsx +7 -3
  274. package/src/widgets/category/components/category-legend.tsx +68 -18
  275. package/src/widgets/category/components/category-row-multi.tsx +66 -36
  276. package/src/widgets/category/components/category-row-other.tsx +63 -5
  277. package/src/widgets/category/components/category-row-single.tsx +48 -25
  278. package/src/{widgets-v2 → widgets}/category/components/category-row-stacked.tsx +2 -1
  279. package/src/widgets/category/index.ts +25 -22
  280. package/src/widgets/category/skeleton.tsx +60 -10
  281. package/src/widgets/category/style.ts +267 -72
  282. package/src/widgets/category/types.ts +52 -32
  283. package/src/widgets/echart/echart-ui.test.tsx +250 -446
  284. package/src/widgets/echart/echart-ui.tsx +210 -52
  285. package/src/widgets/echart/echart.test.tsx +203 -518
  286. package/src/widgets/echart/echart.tsx +195 -52
  287. package/src/widgets/echart/index.ts +21 -15
  288. package/src/widgets/echart/shared-resize-observer.ts +30 -19
  289. package/src/widgets/formula/formula-ui.test.tsx +68 -376
  290. package/src/widgets/formula/formula-ui.tsx +58 -22
  291. package/src/widgets/formula/index.ts +14 -21
  292. package/src/{widgets-v2 → widgets}/formula/note.tsx +8 -2
  293. package/src/{widgets-v2 → widgets}/formula/series.tsx +8 -25
  294. package/src/widgets/formula/skeleton.tsx +21 -4
  295. package/src/widgets/formula/style.ts +20 -12
  296. package/src/widgets/formula/types.ts +44 -45
  297. package/src/{widgets-v2 → widgets}/formula/value.tsx +2 -1
  298. package/src/widgets/histogram/index.ts +10 -10
  299. package/src/{widgets-v2 → widgets}/histogram/options.ts +1 -1
  300. package/src/widgets/histogram/skeleton.tsx +63 -45
  301. package/src/widgets/histogram/types.ts +59 -18
  302. package/src/{widgets-v2 → widgets}/index.ts +3 -3
  303. package/src/widgets/markdown/index.ts +5 -13
  304. package/src/widgets/markdown/markdown-ui.test.tsx +53 -319
  305. package/src/widgets/markdown/markdown-ui.tsx +43 -47
  306. package/src/widgets/markdown/markdown.tsx +12 -15
  307. package/src/widgets/markdown/skeleton.tsx +26 -6
  308. package/src/widgets/markdown/style.ts +48 -23
  309. package/src/widgets/markdown/types.ts +2 -26
  310. package/src/widgets/note/style.ts +14 -17
  311. package/src/{widgets-v2 → widgets}/note/widget-note.tsx +15 -2
  312. package/src/widgets/pie/index.ts +7 -5
  313. package/src/{widgets-v2 → widgets}/pie/options.ts +1 -1
  314. package/src/widgets/pie/skeleton.tsx +84 -60
  315. package/src/widgets/pie/types.ts +57 -11
  316. package/src/widgets/range/index.ts +4 -16
  317. package/src/widgets/range/range-ui.test.tsx +115 -182
  318. package/src/widgets/range/range-ui.tsx +274 -8
  319. package/src/widgets/range/skeleton.tsx +41 -8
  320. package/src/widgets/range/style.ts +16 -12
  321. package/src/widgets/range/types.ts +26 -28
  322. package/src/widgets/scatterplot/index.ts +11 -5
  323. package/src/{widgets-v2 → widgets}/scatterplot/options.ts +1 -1
  324. package/src/widgets/scatterplot/skeleton.tsx +76 -51
  325. package/src/widgets/scatterplot/types.ts +54 -12
  326. package/src/widgets/selection-summary/selection-summary.tsx +64 -39
  327. package/src/widgets/selection-summary/style.ts +30 -2
  328. package/src/widgets/spread/index.ts +11 -23
  329. package/src/widgets/spread/skeleton.tsx +32 -4
  330. package/src/widgets/spread/spread-ui.test.tsx +98 -358
  331. package/src/widgets/spread/spread-ui.tsx +44 -24
  332. package/src/widgets/spread/types.ts +21 -41
  333. package/src/{widgets-v2 → widgets}/state/widget-state.tsx +13 -3
  334. package/src/widgets/stores/index.ts +46 -10
  335. package/src/{widgets-v2 → widgets}/stores/transforms.ts +1 -1
  336. package/src/widgets/stores/types.ts +42 -181
  337. package/src/{widgets-v2 → widgets}/stores/use-transform.ts +1 -1
  338. package/src/{widgets-v2 → widgets}/stores/widget-store-registry.ts +2 -2
  339. package/src/widgets/subheader/style.ts +5 -13
  340. package/src/widgets/subheader/subheader.test.tsx +22 -37
  341. package/src/widgets/subheader/subheader.tsx +11 -30
  342. package/src/widgets/table/helpers.test.ts +197 -208
  343. package/src/widgets/table/helpers.ts +108 -84
  344. package/src/widgets/table/index.ts +23 -54
  345. package/src/widgets/table/skeleton.tsx +38 -21
  346. package/src/widgets/table/style.ts +23 -14
  347. package/src/widgets/table/table-ui.tsx +348 -44
  348. package/src/widgets/table/types.ts +37 -205
  349. package/src/{widgets-v2 → widgets}/test-utils.ts +1 -1
  350. package/src/widgets/timeseries/index.ts +8 -5
  351. package/src/{widgets-v2 → widgets}/timeseries/options.ts +1 -1
  352. package/src/widgets/timeseries/skeleton.tsx +67 -46
  353. package/src/widgets/timeseries/types.ts +60 -12
  354. package/src/{widgets-v2 → widgets}/types.ts +8 -6
  355. package/src/widgets/utils/index.ts +3 -26
  356. package/src/widgets/wrapper/index.ts +14 -16
  357. package/src/{widgets-v2 → widgets}/wrapper/widget-wrapper.tsx +6 -2
  358. package/dist/actions-BjPfCLG9.js.map +0 -1
  359. package/dist/actions-CGJD6q0t.js +0 -1318
  360. package/dist/actions-CGJD6q0t.js.map +0 -1
  361. package/dist/category-DGUDabsi.js +0 -829
  362. package/dist/category-DGUDabsi.js.map +0 -1
  363. package/dist/chart-config-B_fdIcD3.js.map +0 -1
  364. package/dist/cjs-CBrZjPCj.js +0 -75
  365. package/dist/cjs-CBrZjPCj.js.map +0 -1
  366. package/dist/components-FED-ArwH.js.map +0 -1
  367. package/dist/copy-button-TTlZONkX.js +0 -34
  368. package/dist/copy-button-TTlZONkX.js.map +0 -1
  369. package/dist/csv-modifiers-D6HGC24b.js +0 -26
  370. package/dist/csv-modifiers-D6HGC24b.js.map +0 -1
  371. package/dist/download-DdaK3qgC.js.map +0 -1
  372. package/dist/echart-BkaV3V5G.js +0 -133
  373. package/dist/echart-BkaV3V5G.js.map +0 -1
  374. package/dist/echart-CRihbmRv.js.map +0 -1
  375. package/dist/formatter-wVO81tYk.js +0 -6
  376. package/dist/formatter-wVO81tYk.js.map +0 -1
  377. package/dist/formula-YfZmmuYX.js +0 -190
  378. package/dist/formula-YfZmmuYX.js.map +0 -1
  379. package/dist/formula-noJzQwKo.js +0 -285
  380. package/dist/formula-noJzQwKo.js.map +0 -1
  381. package/dist/hooks-zf5gKZYq.js +0 -22
  382. package/dist/hooks-zf5gKZYq.js.map +0 -1
  383. package/dist/markdown-2dfL6Cmb.js.map +0 -1
  384. package/dist/markdown-content-BWUqwx9F.js.map +0 -1
  385. package/dist/range-BCMAl5xf.js.map +0 -1
  386. package/dist/row-CvVGBuy_.js +0 -35
  387. package/dist/row-CvVGBuy_.js.map +0 -1
  388. package/dist/shared-resize-observer-BEiP2rQt.js +0 -157
  389. package/dist/shared-resize-observer-BEiP2rQt.js.map +0 -1
  390. package/dist/smart-tooltip-CwGHCqab.js +0 -34
  391. package/dist/smart-tooltip-CwGHCqab.js.map +0 -1
  392. package/dist/spread-Ccpg9fi0.js.map +0 -1
  393. package/dist/stores-tiFePP0A.js.map +0 -1
  394. package/dist/styles-Y-qGBELO.js +0 -13
  395. package/dist/styles-Y-qGBELO.js.map +0 -1
  396. package/dist/table-Bx9Uj3U0.js.map +0 -1
  397. package/dist/tooltip-DJUGNZxY.js +0 -23
  398. package/dist/tooltip-DJUGNZxY.js.map +0 -1
  399. package/dist/types/components/list-data/list-data-skeleton.d.ts +0 -5
  400. package/dist/types/components/list-data/list-data.d.ts +0 -19
  401. package/dist/types/components/list-data/styles.d.ts +0 -34
  402. package/dist/types/components/list-data/types.d.ts +0 -23
  403. package/dist/types/hooks/index.d.ts +0 -1
  404. package/dist/types/hooks/use-skeleton.d.ts +0 -1
  405. package/dist/types/hooks/use-widget-ref.d.ts +0 -21
  406. package/dist/types/widgets/actions/brush-toggle/brush-overlay.d.ts +0 -24
  407. package/dist/types/widgets/actions/brush-toggle/hit-test.d.ts +0 -19
  408. package/dist/types/widgets/actions/brush-toggle/types.d.ts +0 -73
  409. package/dist/types/widgets/actions/fullscreen/styles.d.ts +0 -16
  410. package/dist/types/widgets/actions/lock-selection/types.d.ts +0 -38
  411. package/dist/types/widgets/actions/relative-data/types.d.ts +0 -29
  412. package/dist/types/widgets/actions/relative-data/utils.d.ts +0 -9
  413. package/dist/types/widgets/actions/searcher/types.d.ts +0 -64
  414. package/dist/types/widgets/actions/shared/styles.d.ts +0 -11
  415. package/dist/types/widgets/actions/stack-toggle/grouped-bar-chart-icon.d.ts +0 -1
  416. package/dist/types/widgets/actions/stack-toggle/types.d.ts +0 -25
  417. package/dist/types/widgets/actions/zoom-toggle/types.d.ts +0 -41
  418. package/dist/types/widgets/bar/config.d.ts +0 -9
  419. package/dist/types/widgets/bar/style.d.ts +0 -37
  420. package/dist/types/widgets/category/config.d.ts +0 -20
  421. package/dist/types/widgets/echart/const.d.ts +0 -1
  422. package/dist/types/widgets/echart/options.d.ts +0 -9
  423. package/dist/types/widgets/echart/types.d.ts +0 -38
  424. package/dist/types/widgets/echart/utils.d.ts +0 -128
  425. package/dist/types/widgets/error/error.d.ts +0 -12
  426. package/dist/types/widgets/error/index.d.ts +0 -2
  427. package/dist/types/widgets/error/types.d.ts +0 -20
  428. package/dist/types/widgets/formula/components/item.d.ts +0 -5
  429. package/dist/types/widgets/formula/components/prefix.d.ts +0 -5
  430. package/dist/types/widgets/formula/components/row.d.ts +0 -5
  431. package/dist/types/widgets/formula/components/series.d.ts +0 -5
  432. package/dist/types/widgets/formula/components/suffix.d.ts +0 -5
  433. package/dist/types/widgets/formula/components/value.d.ts +0 -5
  434. package/dist/types/widgets/formula/config.d.ts +0 -15
  435. package/dist/types/widgets/formula/serializer.d.ts +0 -16
  436. package/dist/types/widgets/histogram/config.d.ts +0 -21
  437. package/dist/types/widgets/histogram/style.d.ts +0 -15
  438. package/dist/types/widgets/loader/index.d.ts +0 -3
  439. package/dist/types/widgets/loader/loader.d.ts +0 -24
  440. package/dist/types/widgets/loader/types.d.ts +0 -9
  441. package/dist/types/widgets/loader/utils.d.ts +0 -35
  442. package/dist/types/widgets/markdown/config.d.ts +0 -14
  443. package/dist/types/widgets/no-data/index.d.ts +0 -2
  444. package/dist/types/widgets/no-data/no-data.d.ts +0 -36
  445. package/dist/types/widgets/no-data/style.d.ts +0 -6
  446. package/dist/types/widgets/no-data/types.d.ts +0 -71
  447. package/dist/types/widgets/note/index.d.ts +0 -2
  448. package/dist/types/widgets/note/note.d.ts +0 -12
  449. package/dist/types/widgets/note/types.d.ts +0 -8
  450. package/dist/types/widgets/pie/config.d.ts +0 -9
  451. package/dist/types/widgets/pie/style.d.ts +0 -15
  452. package/dist/types/widgets/range/components/range-item.d.ts +0 -5
  453. package/dist/types/widgets/range/config.d.ts +0 -7
  454. package/dist/types/widgets/range/serializer.d.ts +0 -16
  455. package/dist/types/widgets/scatterplot/config.d.ts +0 -9
  456. package/dist/types/widgets/scatterplot/style.d.ts +0 -24
  457. package/dist/types/widgets/selection-summary/index.d.ts +0 -2
  458. package/dist/types/widgets/selection-summary/types.d.ts +0 -13
  459. package/dist/types/widgets/skeleton-loader/index.d.ts +0 -2
  460. package/dist/types/widgets/skeleton-loader/skeleton-loader.d.ts +0 -12
  461. package/dist/types/widgets/skeleton-loader/types.d.ts +0 -7
  462. package/dist/types/widgets/spread/components/max-value.d.ts +0 -5
  463. package/dist/types/widgets/spread/components/min-value.d.ts +0 -5
  464. package/dist/types/widgets/spread/components/separator.d.ts +0 -5
  465. package/dist/types/widgets/spread/config.d.ts +0 -16
  466. package/dist/types/widgets/spread/style.d.ts +0 -21
  467. package/dist/types/widgets/stores/use-widget-selector.d.ts +0 -35
  468. package/dist/types/widgets/stores/widget-store.d.ts +0 -60
  469. package/dist/types/widgets/subheader/index.d.ts +0 -2
  470. package/dist/types/widgets/subheader/types.d.ts +0 -10
  471. package/dist/types/widgets/table/components/cell-header.d.ts +0 -5
  472. package/dist/types/widgets/table/components/cell.d.ts +0 -18
  473. package/dist/types/widgets/table/components/pagination-actions.d.ts +0 -5
  474. package/dist/types/widgets/table/components/pagination.d.ts +0 -5
  475. package/dist/types/widgets/table/components/row.d.ts +0 -5
  476. package/dist/types/widgets/table/config.d.ts +0 -21
  477. package/dist/types/widgets/table/hooks/use-pagination.d.ts +0 -41
  478. package/dist/types/widgets/table/hooks/use-selection.d.ts +0 -39
  479. package/dist/types/widgets/table/hooks/use-sort.d.ts +0 -30
  480. package/dist/types/widgets/table/serializer.d.ts +0 -16
  481. package/dist/types/widgets/timeseries/config.d.ts +0 -9
  482. package/dist/types/widgets/timeseries/style.d.ts +0 -38
  483. package/dist/types/widgets/toolbar-actions/index.d.ts +0 -2
  484. package/dist/types/widgets/toolbar-actions/styles.d.ts +0 -37
  485. package/dist/types/widgets/toolbar-actions/toolbar-actions.d.ts +0 -17
  486. package/dist/types/widgets/toolbar-actions/types.d.ts +0 -52
  487. package/dist/types/widgets/utils/chart-config/config-factory.d.ts +0 -38
  488. package/dist/types/widgets/utils/chart-config/csv-modifiers.d.ts +0 -19
  489. package/dist/types/widgets/utils/chart-config/download-config.d.ts +0 -3
  490. package/dist/types/widgets/utils/chart-config/index.d.ts +0 -9
  491. package/dist/types/widgets/utils/formatter.d.ts +0 -2
  492. package/dist/types/widgets/utils/skeleton/index.d.ts +0 -4
  493. package/dist/types/widgets/utils/skeleton/styles.d.ts +0 -19
  494. package/dist/types/widgets/wrapper/components/actions.d.ts +0 -5
  495. package/dist/types/widgets/wrapper/components/options.d.ts +0 -5
  496. package/dist/types/widgets/wrapper/components/title.d.ts +0 -9
  497. package/dist/types/widgets/wrapper/styles.d.ts +0 -89
  498. package/dist/types/widgets/wrapper/types.d.ts +0 -37
  499. package/dist/types/widgets/wrapper/wrapper-ui.d.ts +0 -16
  500. package/dist/types/widgets/wrapper/wrapper.d.ts +0 -16
  501. package/dist/types/widgets-v2/actions/brush-toggle/brush-toggle.d.ts +0 -56
  502. package/dist/types/widgets-v2/actions/change-column/change-column-icon.d.ts +0 -2
  503. package/dist/types/widgets-v2/actions/change-column/change-column.d.ts +0 -29
  504. package/dist/types/widgets-v2/actions/change-column/sortable-column-item.d.ts +0 -14
  505. package/dist/types/widgets-v2/actions/change-column/types.d.ts +0 -10
  506. package/dist/types/widgets-v2/actions/download/download.d.ts +0 -18
  507. package/dist/types/widgets-v2/actions/download/exports.d.ts +0 -37
  508. package/dist/types/widgets-v2/actions/download/types.d.ts +0 -35
  509. package/dist/types/widgets-v2/actions/fullscreen/fullscreen.d.ts +0 -78
  510. package/dist/types/widgets-v2/actions/fullscreen/types.d.ts +0 -14
  511. package/dist/types/widgets-v2/actions/index.d.ts +0 -10
  512. package/dist/types/widgets-v2/actions/lock-selection/lock-selection.d.ts +0 -57
  513. package/dist/types/widgets-v2/actions/relative-data/relative-data.d.ts +0 -39
  514. package/dist/types/widgets-v2/actions/searcher/searcher-toggle.d.ts +0 -23
  515. package/dist/types/widgets-v2/actions/searcher/searcher.d.ts +0 -11
  516. package/dist/types/widgets-v2/actions/stack-toggle/stack-toggle.d.ts +0 -10
  517. package/dist/types/widgets-v2/actions/stack-toggle/style.d.ts +0 -12
  518. package/dist/types/widgets-v2/actions/zoom-toggle/style.d.ts +0 -12
  519. package/dist/types/widgets-v2/actions/zoom-toggle/zoom-toggle.d.ts +0 -35
  520. package/dist/types/widgets-v2/bar/index.d.ts +0 -4
  521. package/dist/types/widgets-v2/bar/skeleton.d.ts +0 -6
  522. package/dist/types/widgets-v2/bar/types.d.ts +0 -46
  523. package/dist/types/widgets-v2/category/category-ui.d.ts +0 -88
  524. package/dist/types/widgets-v2/category/components/category-bar.d.ts +0 -23
  525. package/dist/types/widgets-v2/category/components/category-legend.d.ts +0 -34
  526. package/dist/types/widgets-v2/category/components/category-row-multi.d.ts +0 -31
  527. package/dist/types/widgets-v2/category/components/category-row-other.d.ts +0 -26
  528. package/dist/types/widgets-v2/category/components/category-row-single.d.ts +0 -28
  529. package/dist/types/widgets-v2/category/index.d.ts +0 -10
  530. package/dist/types/widgets-v2/category/skeleton.d.ts +0 -11
  531. package/dist/types/widgets-v2/category/style.d.ts +0 -193
  532. package/dist/types/widgets-v2/category/types.d.ts +0 -55
  533. package/dist/types/widgets-v2/echart/echart-ui.d.ts +0 -44
  534. package/dist/types/widgets-v2/echart/echart.d.ts +0 -83
  535. package/dist/types/widgets-v2/echart/index.d.ts +0 -4
  536. package/dist/types/widgets-v2/echart/shared-resize-observer.d.ts +0 -5
  537. package/dist/types/widgets-v2/formula/formula-ui.d.ts +0 -20
  538. package/dist/types/widgets-v2/formula/index.d.ts +0 -11
  539. package/dist/types/widgets-v2/formula/skeleton.d.ts +0 -4
  540. package/dist/types/widgets-v2/formula/style.d.ts +0 -29
  541. package/dist/types/widgets-v2/formula/types.d.ts +0 -43
  542. package/dist/types/widgets-v2/histogram/index.d.ts +0 -5
  543. package/dist/types/widgets-v2/histogram/skeleton.d.ts +0 -9
  544. package/dist/types/widgets-v2/histogram/types.d.ts +0 -60
  545. package/dist/types/widgets-v2/markdown/index.d.ts +0 -6
  546. package/dist/types/widgets-v2/markdown/markdown-ui.d.ts +0 -12
  547. package/dist/types/widgets-v2/markdown/markdown.d.ts +0 -6
  548. package/dist/types/widgets-v2/markdown/skeleton.d.ts +0 -4
  549. package/dist/types/widgets-v2/markdown/style.d.ts +0 -61
  550. package/dist/types/widgets-v2/markdown/types.d.ts +0 -4
  551. package/dist/types/widgets-v2/note/style.d.ts +0 -26
  552. package/dist/types/widgets-v2/pie/index.d.ts +0 -4
  553. package/dist/types/widgets-v2/pie/skeleton.d.ts +0 -13
  554. package/dist/types/widgets-v2/pie/types.d.ts +0 -57
  555. package/dist/types/widgets-v2/range/index.d.ts +0 -4
  556. package/dist/types/widgets-v2/range/range-ui.d.ts +0 -27
  557. package/dist/types/widgets-v2/range/skeleton.d.ts +0 -9
  558. package/dist/types/widgets-v2/range/style.d.ts +0 -40
  559. package/dist/types/widgets-v2/range/types.d.ts +0 -37
  560. package/dist/types/widgets-v2/scatterplot/index.d.ts +0 -5
  561. package/dist/types/widgets-v2/scatterplot/skeleton.d.ts +0 -12
  562. package/dist/types/widgets-v2/scatterplot/types.d.ts +0 -54
  563. package/dist/types/widgets-v2/selection-summary/selection-summary.d.ts +0 -29
  564. package/dist/types/widgets-v2/selection-summary/style.d.ts +0 -38
  565. package/dist/types/widgets-v2/spread/index.d.ts +0 -7
  566. package/dist/types/widgets-v2/spread/skeleton.d.ts +0 -9
  567. package/dist/types/widgets-v2/spread/spread-ui.d.ts +0 -18
  568. package/dist/types/widgets-v2/spread/types.d.ts +0 -25
  569. package/dist/types/widgets-v2/stores/index.d.ts +0 -8
  570. package/dist/types/widgets-v2/stores/types.d.ts +0 -55
  571. package/dist/types/widgets-v2/subheader/style.d.ts +0 -10
  572. package/dist/types/widgets-v2/subheader/subheader.d.ts +0 -11
  573. package/dist/types/widgets-v2/table/helpers.d.ts +0 -32
  574. package/dist/types/widgets-v2/table/index.d.ts +0 -8
  575. package/dist/types/widgets-v2/table/skeleton.d.ts +0 -22
  576. package/dist/types/widgets-v2/table/style.d.ts +0 -40
  577. package/dist/types/widgets-v2/table/table-ui.d.ts +0 -44
  578. package/dist/types/widgets-v2/table/types.d.ts +0 -48
  579. package/dist/types/widgets-v2/timeseries/index.d.ts +0 -5
  580. package/dist/types/widgets-v2/timeseries/skeleton.d.ts +0 -8
  581. package/dist/types/widgets-v2/timeseries/types.d.ts +0 -60
  582. package/dist/types/widgets-v2/utils/index.d.ts +0 -3
  583. package/dist/types/widgets-v2/wrapper/index.d.ts +0 -4
  584. package/dist/use-widget-selector-VSPhfhNm.js +0 -12
  585. package/dist/use-widget-selector-VSPhfhNm.js.map +0 -1
  586. package/dist/utils-Dr6gf3vD.js.map +0 -1
  587. package/dist/widget-store-BFPKYm4R.js +0 -187
  588. package/dist/widget-store-BFPKYm4R.js.map +0 -1
  589. package/dist/widgets/category.js.map +0 -1
  590. package/dist/widgets/error.js +0 -30
  591. package/dist/widgets/error.js.map +0 -1
  592. package/dist/widgets/loader.js +0 -66
  593. package/dist/widgets/loader.js.map +0 -1
  594. package/dist/widgets/markdown.js.map +0 -1
  595. package/dist/widgets/no-data.js +0 -55
  596. package/dist/widgets/no-data.js.map +0 -1
  597. package/dist/widgets/note.js +0 -127
  598. package/dist/widgets/note.js.map +0 -1
  599. package/dist/widgets/range.js.map +0 -1
  600. package/dist/widgets/selection-summary.js +0 -41
  601. package/dist/widgets/selection-summary.js.map +0 -1
  602. package/dist/widgets/skeleton-loader.js +0 -24
  603. package/dist/widgets/skeleton-loader.js.map +0 -1
  604. package/dist/widgets/spread.js.map +0 -1
  605. package/dist/widgets/subheader.js +0 -51
  606. package/dist/widgets/subheader.js.map +0 -1
  607. package/dist/widgets/table.js.map +0 -1
  608. package/dist/widgets/toolbar-actions.js +0 -145
  609. package/dist/widgets/toolbar-actions.js.map +0 -1
  610. package/dist/widgets/utils.js.map +0 -1
  611. package/dist/widgets/wrapper.js +0 -273
  612. package/dist/widgets/wrapper.js.map +0 -1
  613. package/dist/widgets-v2/actions.js +0 -4
  614. package/dist/widgets-v2/bar.js +0 -260
  615. package/dist/widgets-v2/bar.js.map +0 -1
  616. package/dist/widgets-v2/category.js +0 -2
  617. package/dist/widgets-v2/echart.js +0 -2
  618. package/dist/widgets-v2/formula.js +0 -2
  619. package/dist/widgets-v2/histogram.js +0 -297
  620. package/dist/widgets-v2/histogram.js.map +0 -1
  621. package/dist/widgets-v2/markdown.js +0 -3
  622. package/dist/widgets-v2/pie.js +0 -373
  623. package/dist/widgets-v2/pie.js.map +0 -1
  624. package/dist/widgets-v2/range.js +0 -2
  625. package/dist/widgets-v2/scatterplot.js +0 -330
  626. package/dist/widgets-v2/scatterplot.js.map +0 -1
  627. package/dist/widgets-v2/spread.js +0 -2
  628. package/dist/widgets-v2/stores.js +0 -2
  629. package/dist/widgets-v2/table.js +0 -2
  630. package/dist/widgets-v2/timeseries.js +0 -294
  631. package/dist/widgets-v2/timeseries.js.map +0 -1
  632. package/dist/widgets-v2/utils.js +0 -2
  633. package/dist/widgets-v2.js.map +0 -1
  634. package/dist/zoom-toggle-IsF8BnAp.js.map +0 -1
  635. package/src/components/list-data/list-data-skeleton.test.tsx +0 -10
  636. package/src/components/list-data/list-data-skeleton.tsx +0 -40
  637. package/src/components/list-data/list-data.test.tsx +0 -167
  638. package/src/components/list-data/list-data.tsx +0 -124
  639. package/src/components/list-data/styles.ts +0 -37
  640. package/src/components/list-data/types.ts +0 -25
  641. package/src/hooks/index.ts +0 -1
  642. package/src/hooks/use-skeleton.test.tsx +0 -32
  643. package/src/hooks/use-skeleton.ts +0 -19
  644. package/src/hooks/use-widget-ref.ts +0 -34
  645. package/src/widgets/README.md +0 -277
  646. package/src/widgets/actions/brush-toggle/brush-overlay.test.tsx +0 -465
  647. package/src/widgets/actions/brush-toggle/brush-overlay.tsx +0 -408
  648. package/src/widgets/actions/brush-toggle/hit-test.test.ts +0 -65
  649. package/src/widgets/actions/brush-toggle/hit-test.ts +0 -45
  650. package/src/widgets/actions/brush-toggle/types.ts +0 -78
  651. package/src/widgets/actions/change-column/change-column-dnd.test.tsx +0 -193
  652. package/src/widgets/actions/change-column/sortable-column-item.test.tsx +0 -124
  653. package/src/widgets/actions/download/exports.tsx +0 -118
  654. package/src/widgets/actions/fullscreen/styles.ts +0 -17
  655. package/src/widgets/actions/lock-selection/types.ts +0 -43
  656. package/src/widgets/actions/relative-data/types.ts +0 -33
  657. package/src/widgets/actions/relative-data/utils.test.ts +0 -223
  658. package/src/widgets/actions/relative-data/utils.ts +0 -58
  659. package/src/widgets/actions/searcher/searcher-toggle.test.tsx +0 -354
  660. package/src/widgets/actions/searcher/types.ts +0 -72
  661. package/src/widgets/actions/shared/styles.ts +0 -12
  662. package/src/widgets/actions/stack-toggle/grouped-bar-chart-icon.tsx +0 -14
  663. package/src/widgets/actions/stack-toggle/types.ts +0 -29
  664. package/src/widgets/actions/zoom-toggle/types.ts +0 -44
  665. package/src/widgets/bar/config.ts +0 -140
  666. package/src/widgets/bar/style.ts +0 -33
  667. package/src/widgets/category/components/category-rows.test.tsx +0 -213
  668. package/src/widgets/category/config.ts +0 -86
  669. package/src/widgets/echart/const.ts +0 -1
  670. package/src/widgets/echart/options.ts +0 -57
  671. package/src/widgets/echart/types.ts +0 -45
  672. package/src/widgets/echart/utils.test.ts +0 -277
  673. package/src/widgets/echart/utils.ts +0 -244
  674. package/src/widgets/error/error.test.tsx +0 -331
  675. package/src/widgets/error/error.tsx +0 -51
  676. package/src/widgets/error/index.ts +0 -2
  677. package/src/widgets/error/types.ts +0 -24
  678. package/src/widgets/formula/components/item.test.tsx +0 -249
  679. package/src/widgets/formula/components/item.tsx +0 -21
  680. package/src/widgets/formula/components/prefix.test.tsx +0 -341
  681. package/src/widgets/formula/components/prefix.tsx +0 -19
  682. package/src/widgets/formula/components/row.test.tsx +0 -364
  683. package/src/widgets/formula/components/row.tsx +0 -24
  684. package/src/widgets/formula/components/series.tsx +0 -35
  685. package/src/widgets/formula/components/suffix.test.tsx +0 -383
  686. package/src/widgets/formula/components/suffix.tsx +0 -29
  687. package/src/widgets/formula/components/value.test.tsx +0 -329
  688. package/src/widgets/formula/components/value.tsx +0 -24
  689. package/src/widgets/formula/config.test.ts +0 -37
  690. package/src/widgets/formula/config.ts +0 -38
  691. package/src/widgets/formula/serializer.test.tsx +0 -144
  692. package/src/widgets/formula/serializer.ts +0 -28
  693. package/src/widgets/histogram/config.ts +0 -230
  694. package/src/widgets/histogram/style.ts +0 -8
  695. package/src/widgets/loader/index.ts +0 -4
  696. package/src/widgets/loader/loader.tsx +0 -92
  697. package/src/widgets/loader/types.ts +0 -13
  698. package/src/widgets/loader/utils.test.ts +0 -112
  699. package/src/widgets/loader/utils.ts +0 -57
  700. package/src/widgets/markdown/config.ts +0 -28
  701. package/src/widgets/no-data/index.ts +0 -2
  702. package/src/widgets/no-data/no-data.test.tsx +0 -497
  703. package/src/widgets/no-data/no-data.tsx +0 -112
  704. package/src/widgets/no-data/style.ts +0 -18
  705. package/src/widgets/no-data/types.ts +0 -76
  706. package/src/widgets/note/index.ts +0 -2
  707. package/src/widgets/note/note.test.tsx +0 -391
  708. package/src/widgets/note/note.tsx +0 -124
  709. package/src/widgets/note/types.ts +0 -9
  710. package/src/widgets/pie/config.ts +0 -245
  711. package/src/widgets/pie/style.ts +0 -8
  712. package/src/widgets/range/components/range-item.test.tsx +0 -243
  713. package/src/widgets/range/components/range-item.tsx +0 -214
  714. package/src/widgets/range/config.ts +0 -10
  715. package/src/widgets/range/serializer.test.ts +0 -70
  716. package/src/widgets/range/serializer.ts +0 -27
  717. package/src/widgets/scatterplot/config.ts +0 -136
  718. package/src/widgets/scatterplot/style.ts +0 -21
  719. package/src/widgets/selection-summary/index.ts +0 -6
  720. package/src/widgets/selection-summary/types.ts +0 -14
  721. package/src/widgets/skeleton-loader/index.ts +0 -2
  722. package/src/widgets/skeleton-loader/skeleton-loader.test.tsx +0 -139
  723. package/src/widgets/skeleton-loader/skeleton-loader.tsx +0 -35
  724. package/src/widgets/skeleton-loader/types.ts +0 -8
  725. package/src/widgets/spread/components/max-value.tsx +0 -29
  726. package/src/widgets/spread/components/min-value.tsx +0 -29
  727. package/src/widgets/spread/components/separator.tsx +0 -9
  728. package/src/widgets/spread/config.ts +0 -39
  729. package/src/widgets/spread/style.ts +0 -22
  730. package/src/widgets/stores/use-widget-selector.ts +0 -47
  731. package/src/widgets/stores/widget-store-branches.test.ts +0 -275
  732. package/src/widgets/stores/widget-store-performance.test.ts +0 -750
  733. package/src/widgets/stores/widget-store.test.ts +0 -942
  734. package/src/widgets/stores/widget-store.ts +0 -484
  735. package/src/widgets/subheader/index.ts +0 -3
  736. package/src/widgets/subheader/types.ts +0 -11
  737. package/src/widgets/table/components/cell-header.tsx +0 -58
  738. package/src/widgets/table/components/cell.tsx +0 -82
  739. package/src/widgets/table/components/pagination-actions.tsx +0 -67
  740. package/src/widgets/table/components/pagination.tsx +0 -41
  741. package/src/widgets/table/components/row.tsx +0 -65
  742. package/src/widgets/table/config.test.ts +0 -65
  743. package/src/widgets/table/config.ts +0 -75
  744. package/src/widgets/table/hooks/use-pagination.test.ts +0 -294
  745. package/src/widgets/table/hooks/use-pagination.ts +0 -148
  746. package/src/widgets/table/hooks/use-selection.test.ts +0 -504
  747. package/src/widgets/table/hooks/use-selection.ts +0 -194
  748. package/src/widgets/table/hooks/use-sort.test.ts +0 -296
  749. package/src/widgets/table/hooks/use-sort.ts +0 -131
  750. package/src/widgets/table/serializer.ts +0 -54
  751. package/src/widgets/timeseries/config.ts +0 -136
  752. package/src/widgets/timeseries/style.ts +0 -36
  753. package/src/widgets/toolbar-actions/index.ts +0 -6
  754. package/src/widgets/toolbar-actions/styles.ts +0 -38
  755. package/src/widgets/toolbar-actions/toolbar-actions.test.tsx +0 -691
  756. package/src/widgets/toolbar-actions/toolbar-actions.tsx +0 -145
  757. package/src/widgets/toolbar-actions/types.ts +0 -60
  758. package/src/widgets/utils/chart-config/config-factory.ts +0 -67
  759. package/src/widgets/utils/chart-config/csv-modifiers.ts +0 -56
  760. package/src/widgets/utils/chart-config/download-config.ts +0 -22
  761. package/src/widgets/utils/chart-config/index.ts +0 -29
  762. package/src/widgets/utils/formatter.ts +0 -2
  763. package/src/widgets/utils/skeleton/index.ts +0 -5
  764. package/src/widgets/utils/skeleton/styles.ts +0 -20
  765. package/src/widgets/wrapper/components/actions.test.tsx +0 -105
  766. package/src/widgets/wrapper/components/actions.tsx +0 -35
  767. package/src/widgets/wrapper/components/options.test.tsx +0 -331
  768. package/src/widgets/wrapper/components/options.tsx +0 -81
  769. package/src/widgets/wrapper/components/title.test.tsx +0 -126
  770. package/src/widgets/wrapper/components/title.tsx +0 -35
  771. package/src/widgets/wrapper/styles.ts +0 -98
  772. package/src/widgets/wrapper/types.ts +0 -55
  773. package/src/widgets/wrapper/wrapper-ui.test.tsx +0 -232
  774. package/src/widgets/wrapper/wrapper-ui.tsx +0 -72
  775. package/src/widgets/wrapper/wrapper.test.tsx +0 -365
  776. package/src/widgets/wrapper/wrapper.tsx +0 -60
  777. package/src/widgets-v2/actions/brush-toggle/brush-toggle.test.tsx +0 -180
  778. package/src/widgets-v2/actions/brush-toggle/brush-toggle.tsx +0 -154
  779. package/src/widgets-v2/actions/change-column/change-column-icon.tsx +0 -14
  780. package/src/widgets-v2/actions/change-column/change-column.test.tsx +0 -59
  781. package/src/widgets-v2/actions/change-column/change-column.tsx +0 -189
  782. package/src/widgets-v2/actions/change-column/sortable-column-item.tsx +0 -63
  783. package/src/widgets-v2/actions/change-column/types.ts +0 -11
  784. package/src/widgets-v2/actions/download/download.test.tsx +0 -327
  785. package/src/widgets-v2/actions/download/download.tsx +0 -144
  786. package/src/widgets-v2/actions/download/exports.test.tsx +0 -198
  787. package/src/widgets-v2/actions/download/types.ts +0 -32
  788. package/src/widgets-v2/actions/fullscreen/fullscreen.test.tsx +0 -212
  789. package/src/widgets-v2/actions/fullscreen/fullscreen.tsx +0 -301
  790. package/src/widgets-v2/actions/fullscreen/types.ts +0 -15
  791. package/src/widgets-v2/actions/index.ts +0 -95
  792. package/src/widgets-v2/actions/lock-selection/lock-selection.test.tsx +0 -301
  793. package/src/widgets-v2/actions/lock-selection/lock-selection.tsx +0 -188
  794. package/src/widgets-v2/actions/relative-data/relative-data.test.tsx +0 -71
  795. package/src/widgets-v2/actions/relative-data/relative-data.tsx +0 -107
  796. package/src/widgets-v2/actions/searcher/searcher-toggle.tsx +0 -91
  797. package/src/widgets-v2/actions/searcher/searcher.tsx +0 -111
  798. package/src/widgets-v2/actions/stack-toggle/stack-toggle.test.tsx +0 -61
  799. package/src/widgets-v2/actions/stack-toggle/stack-toggle.tsx +0 -54
  800. package/src/widgets-v2/actions/stack-toggle/style.ts +0 -11
  801. package/src/widgets-v2/actions/zoom-toggle/style.ts +0 -11
  802. package/src/widgets-v2/actions/zoom-toggle/zoom-toggle.test.tsx +0 -107
  803. package/src/widgets-v2/actions/zoom-toggle/zoom-toggle.tsx +0 -106
  804. package/src/widgets-v2/bar/index.ts +0 -10
  805. package/src/widgets-v2/bar/skeleton.tsx +0 -69
  806. package/src/widgets-v2/bar/types.ts +0 -51
  807. package/src/widgets-v2/category/category-ui.test.tsx +0 -909
  808. package/src/widgets-v2/category/category-ui.tsx +0 -479
  809. package/src/widgets-v2/category/components/category-bar.tsx +0 -49
  810. package/src/widgets-v2/category/components/category-legend.tsx +0 -82
  811. package/src/widgets-v2/category/components/category-row-multi.tsx +0 -86
  812. package/src/widgets-v2/category/components/category-row-other.tsx +0 -84
  813. package/src/widgets-v2/category/components/category-row-single.tsx +0 -76
  814. package/src/widgets-v2/category/index.ts +0 -32
  815. package/src/widgets-v2/category/skeleton.tsx +0 -74
  816. package/src/widgets-v2/category/style.ts +0 -329
  817. package/src/widgets-v2/category/types.ts +0 -61
  818. package/src/widgets-v2/echart/echart-ui.test.tsx +0 -330
  819. package/src/widgets-v2/echart/echart-ui.tsx +0 -236
  820. package/src/widgets-v2/echart/echart.test.tsx +0 -229
  821. package/src/widgets-v2/echart/echart.tsx +0 -209
  822. package/src/widgets-v2/echart/index.ts +0 -22
  823. package/src/widgets-v2/echart/shared-resize-observer.ts +0 -56
  824. package/src/widgets-v2/formula/formula-ui.test.tsx +0 -91
  825. package/src/widgets-v2/formula/formula-ui.tsx +0 -66
  826. package/src/widgets-v2/formula/index.ts +0 -17
  827. package/src/widgets-v2/formula/skeleton.tsx +0 -27
  828. package/src/widgets-v2/formula/style.ts +0 -31
  829. package/src/widgets-v2/formula/types.ts +0 -48
  830. package/src/widgets-v2/histogram/index.ts +0 -13
  831. package/src/widgets-v2/histogram/skeleton.tsx +0 -70
  832. package/src/widgets-v2/histogram/types.ts +0 -64
  833. package/src/widgets-v2/markdown/index.ts +0 -6
  834. package/src/widgets-v2/markdown/markdown-ui.test.tsx +0 -75
  835. package/src/widgets-v2/markdown/markdown-ui.tsx +0 -55
  836. package/src/widgets-v2/markdown/markdown.tsx +0 -17
  837. package/src/widgets-v2/markdown/skeleton.tsx +0 -32
  838. package/src/widgets-v2/markdown/style.ts +0 -53
  839. package/src/widgets-v2/markdown/types.ts +0 -4
  840. package/src/widgets-v2/note/style.ts +0 -26
  841. package/src/widgets-v2/pie/index.ts +0 -10
  842. package/src/widgets-v2/pie/skeleton.tsx +0 -94
  843. package/src/widgets-v2/pie/types.ts +0 -62
  844. package/src/widgets-v2/range/index.ts +0 -4
  845. package/src/widgets-v2/range/range-ui.test.tsx +0 -136
  846. package/src/widgets-v2/range/range-ui.tsx +0 -278
  847. package/src/widgets-v2/range/skeleton.tsx +0 -47
  848. package/src/widgets-v2/range/style.ts +0 -41
  849. package/src/widgets-v2/range/types.ts +0 -37
  850. package/src/widgets-v2/scatterplot/index.ts +0 -14
  851. package/src/widgets-v2/scatterplot/skeleton.tsx +0 -84
  852. package/src/widgets-v2/scatterplot/types.ts +0 -59
  853. package/src/widgets-v2/selection-summary/selection-summary.tsx +0 -82
  854. package/src/widgets-v2/selection-summary/style.ts +0 -38
  855. package/src/widgets-v2/spread/index.ts +0 -11
  856. package/src/widgets-v2/spread/skeleton.tsx +0 -38
  857. package/src/widgets-v2/spread/spread-ui.test.tsx +0 -108
  858. package/src/widgets-v2/spread/spread-ui.tsx +0 -52
  859. package/src/widgets-v2/spread/types.ts +0 -27
  860. package/src/widgets-v2/stores/index.ts +0 -49
  861. package/src/widgets-v2/stores/types.ts +0 -64
  862. package/src/widgets-v2/subheader/style.ts +0 -12
  863. package/src/widgets-v2/subheader/subheader.test.tsx +0 -30
  864. package/src/widgets-v2/subheader/subheader.tsx +0 -16
  865. package/src/widgets-v2/table/helpers.test.ts +0 -233
  866. package/src/widgets-v2/table/helpers.ts +0 -131
  867. package/src/widgets-v2/table/index.ts +0 -24
  868. package/src/widgets-v2/table/skeleton.tsx +0 -65
  869. package/src/widgets-v2/table/style.ts +0 -43
  870. package/src/widgets-v2/table/table-ui.tsx +0 -364
  871. package/src/widgets-v2/table/types.ts +0 -55
  872. package/src/widgets-v2/timeseries/index.ts +0 -11
  873. package/src/widgets-v2/timeseries/skeleton.tsx +0 -76
  874. package/src/widgets-v2/timeseries/types.ts +0 -65
  875. package/src/widgets-v2/utils/index.ts +0 -3
  876. package/src/widgets-v2/wrapper/index.ts +0 -14
  877. /package/dist/types/{widgets-v2 → widgets}/actions/brush-toggle/index.d.ts +0 -0
  878. /package/dist/types/{widgets-v2 → widgets}/actions/brush-toggle/labels.d.ts +0 -0
  879. /package/dist/types/{widgets-v2 → widgets}/actions/brush-toggle/transforms.d.ts +0 -0
  880. /package/dist/types/{widgets-v2 → widgets}/actions/change-column/index.d.ts +0 -0
  881. /package/dist/types/{widgets-v2 → widgets}/actions/change-column/labels.d.ts +0 -0
  882. /package/dist/types/{widgets-v2 → widgets}/actions/change-column/style.d.ts +0 -0
  883. /package/dist/types/{widgets-v2 → widgets}/actions/download/constants.d.ts +0 -0
  884. /package/dist/types/{widgets-v2 → widgets}/actions/download/csv-item.d.ts +0 -0
  885. /package/dist/types/{widgets-v2 → widgets}/actions/download/icons.d.ts +0 -0
  886. /package/dist/types/{widgets-v2 → widgets}/actions/download/index.d.ts +0 -0
  887. /package/dist/types/{widgets-v2 → widgets}/actions/download/labels.d.ts +0 -0
  888. /package/dist/types/{widgets-v2 → widgets}/actions/download/style.d.ts +0 -0
  889. /package/dist/types/{widgets-v2 → widgets}/actions/fullscreen/index.d.ts +0 -0
  890. /package/dist/types/{widgets-v2 → widgets}/actions/fullscreen/labels.d.ts +0 -0
  891. /package/dist/types/{widgets-v2 → widgets}/actions/fullscreen/style.d.ts +0 -0
  892. /package/dist/types/{widgets-v2 → widgets}/actions/lock-selection/index.d.ts +0 -0
  893. /package/dist/types/{widgets-v2 → widgets}/actions/lock-selection/labels.d.ts +0 -0
  894. /package/dist/types/{widgets-v2/actions/brush-toggle → widgets/actions/lock-selection}/style.d.ts +0 -0
  895. /package/dist/types/{widgets-v2 → widgets}/actions/lock-selection/transforms.d.ts +0 -0
  896. /package/dist/types/{widgets-v2 → widgets}/actions/relative-data/index.d.ts +0 -0
  897. /package/dist/types/{widgets-v2 → widgets}/actions/relative-data/labels.d.ts +0 -0
  898. /package/dist/types/{widgets-v2/actions/lock-selection → widgets/actions/relative-data}/style.d.ts +0 -0
  899. /package/dist/types/{widgets-v2 → widgets}/actions/searcher/filter.d.ts +0 -0
  900. /package/dist/types/{widgets-v2 → widgets}/actions/searcher/index.d.ts +0 -0
  901. /package/dist/types/{widgets-v2 → widgets}/actions/searcher/labels.d.ts +0 -0
  902. /package/dist/types/{widgets-v2 → widgets}/actions/searcher/style.d.ts +0 -0
  903. /package/dist/types/{widgets-v2 → widgets}/actions/show-all/index.d.ts +0 -0
  904. /package/dist/types/{widgets-v2 → widgets}/actions/show-all/labels.d.ts +0 -0
  905. /package/dist/types/{widgets-v2 → widgets}/actions/show-all/show-all.d.ts +0 -0
  906. /package/dist/types/{widgets-v2 → widgets}/actions/show-all/style.d.ts +0 -0
  907. /package/dist/types/{widgets-v2 → widgets}/actions/stack-toggle/index.d.ts +0 -0
  908. /package/dist/types/{widgets-v2 → widgets}/actions/stack-toggle/labels.d.ts +0 -0
  909. /package/dist/types/{widgets-v2/actions/relative-data → widgets/actions/stack-toggle}/style.d.ts +0 -0
  910. /package/dist/types/{widgets-v2 → widgets}/actions/stack-toggle/transforms.d.ts +0 -0
  911. /package/dist/types/{widgets-v2 → widgets}/actions/zoom-toggle/index.d.ts +0 -0
  912. /package/dist/types/{widgets-v2 → widgets}/actions/zoom-toggle/labels.d.ts +0 -0
  913. /package/dist/types/{widgets-v2 → widgets}/actions/zoom-toggle/transforms.d.ts +0 -0
  914. /package/dist/types/{widgets-v2 → widgets}/bar/download.d.ts +0 -0
  915. /package/dist/types/{widgets-v2 → widgets}/bar/options.d.ts +0 -0
  916. /package/dist/types/{widgets-v2 → widgets}/category/category.d.ts +0 -0
  917. /package/dist/types/{widgets-v2 → widgets}/category/download.d.ts +0 -0
  918. /package/dist/types/{widgets-v2 → widgets}/echart/edge-label-clamp.d.ts +0 -0
  919. /package/dist/types/{widgets-v2 → widgets}/echart/style.d.ts +0 -0
  920. /package/dist/types/{widgets-v2 → widgets}/echart/use-chart-selection.d.ts +0 -0
  921. /package/dist/types/{widgets-v2 → widgets}/formula/delta.d.ts +0 -0
  922. /package/dist/types/{widgets-v2 → widgets}/formula/download.d.ts +0 -0
  923. /package/dist/types/{widgets-v2 → widgets}/formula/formula.d.ts +0 -0
  924. /package/dist/types/{widgets-v2 → widgets}/formula/note.d.ts +0 -0
  925. /package/dist/types/{widgets-v2 → widgets}/formula/prefix.d.ts +0 -0
  926. /package/dist/types/{widgets-v2 → widgets}/formula/suffix.d.ts +0 -0
  927. /package/dist/types/{widgets-v2 → widgets}/histogram/download.d.ts +0 -0
  928. /package/dist/types/{widgets-v2 → widgets}/histogram/options.d.ts +0 -0
  929. /package/dist/types/{widgets-v2 → widgets}/histogram/transforms.d.ts +0 -0
  930. /package/dist/types/{widgets-v2 → widgets}/markdown/download.d.ts +0 -0
  931. /package/dist/types/{widgets-v2 → widgets}/markdown/markdown-content.d.ts +0 -0
  932. /package/dist/types/{widgets-v2 → widgets}/note/labels.d.ts +0 -0
  933. /package/dist/types/{widgets-v2 → widgets}/note/widget-note.d.ts +0 -0
  934. /package/dist/types/{widgets-v2 → widgets}/pie/download.d.ts +0 -0
  935. /package/dist/types/{widgets-v2 → widgets}/pie/options.d.ts +0 -0
  936. /package/dist/types/{widgets-v2 → widgets}/provider/widget-provider.d.ts +0 -0
  937. /package/dist/types/{widgets-v2 → widgets}/range/range.d.ts +0 -0
  938. /package/dist/types/{widgets-v2 → widgets}/scatterplot/download.d.ts +0 -0
  939. /package/dist/types/{widgets-v2 → widgets}/scatterplot/options.d.ts +0 -0
  940. /package/dist/types/{widgets-v2 → widgets}/scatterplot/transforms.d.ts +0 -0
  941. /package/dist/types/{widgets-v2 → widgets}/selection-summary/labels.d.ts +0 -0
  942. /package/dist/types/{widgets-v2 → widgets}/spread/band.d.ts +0 -0
  943. /package/dist/types/{widgets-v2 → widgets}/spread/download.d.ts +0 -0
  944. /package/dist/types/{widgets-v2 → widgets}/spread/separator.d.ts +0 -0
  945. /package/dist/types/{widgets-v2 → widgets}/spread/spread.d.ts +0 -0
  946. /package/dist/types/{widgets-v2 → widgets}/state/labels.d.ts +0 -0
  947. /package/dist/types/{widgets-v2 → widgets}/state/style.d.ts +0 -0
  948. /package/dist/types/{widgets-v2 → widgets}/state/widget-state.d.ts +0 -0
  949. /package/dist/types/{widgets-v2 → widgets}/stores/pipeline-middleware.d.ts +0 -0
  950. /package/dist/types/{widgets-v2 → widgets}/stores/transforms.d.ts +0 -0
  951. /package/dist/types/{widgets-v2 → widgets}/stores/use-echart-instance.d.ts +0 -0
  952. /package/dist/types/{widgets-v2 → widgets}/stores/use-transform-enabled.d.ts +0 -0
  953. /package/dist/types/{widgets-v2 → widgets}/stores/use-transform.d.ts +0 -0
  954. /package/dist/types/{widgets-v2 → widgets}/stores/widget-context.d.ts +0 -0
  955. /package/dist/types/{widgets-v2 → widgets}/stores/widget-store-registry.d.ts +0 -0
  956. /package/dist/types/{widgets-v2 → widgets}/table/download.d.ts +0 -0
  957. /package/dist/types/{widgets-v2 → widgets}/table/labels.d.ts +0 -0
  958. /package/dist/types/{widgets-v2 → widgets}/table/table.d.ts +0 -0
  959. /package/dist/types/{widgets-v2 → widgets}/table/transforms.d.ts +0 -0
  960. /package/dist/types/{widgets-v2 → widgets}/timeseries/download.d.ts +0 -0
  961. /package/dist/types/{widgets-v2 → widgets}/timeseries/options.d.ts +0 -0
  962. /package/dist/types/{widgets-v2 → widgets}/timeseries/transforms.d.ts +0 -0
  963. /package/dist/types/{widgets-v2 → widgets}/toolbox/labels.d.ts +0 -0
  964. /package/dist/types/{widgets-v2 → widgets}/toolbox/style.d.ts +0 -0
  965. /package/dist/types/{widgets-v2 → widgets}/toolbox/toolbox.d.ts +0 -0
  966. /package/dist/types/{widgets-v2 → widgets}/utils/data-zoom-layout.d.ts +0 -0
  967. /package/dist/types/{widgets-v2 → widgets}/utils/merge-options.d.ts +0 -0
  968. /package/dist/types/widgets/utils/{chart-config/option-builders.d.ts → option-builders.d.ts} +0 -0
  969. /package/dist/types/{widgets-v2 → widgets}/utils/resolve-theme-color.d.ts +0 -0
  970. /package/dist/types/{widgets-v2 → widgets}/wrapper/labels.d.ts +0 -0
  971. /package/dist/types/{widgets-v2 → widgets}/wrapper/style.d.ts +0 -0
  972. /package/dist/types/{widgets-v2 → widgets}/wrapper/widget-actions.d.ts +0 -0
  973. /package/dist/types/{widgets-v2 → widgets}/wrapper/widget-content.d.ts +0 -0
  974. /package/dist/types/{widgets-v2 → widgets}/wrapper/widget-wrapper.d.ts +0 -0
  975. /package/src/{widgets-v2 → widgets}/actions/brush-toggle/index.ts +0 -0
  976. /package/src/{widgets-v2 → widgets}/actions/brush-toggle/labels.ts +0 -0
  977. /package/src/{widgets-v2 → widgets}/actions/brush-toggle/transforms.test.ts +0 -0
  978. /package/src/{widgets-v2 → widgets}/actions/brush-toggle/transforms.ts +0 -0
  979. /package/src/{widgets-v2 → widgets}/actions/change-column/index.ts +0 -0
  980. /package/src/{widgets-v2 → widgets}/actions/change-column/labels.ts +0 -0
  981. /package/src/{widgets-v2 → widgets}/actions/change-column/style.ts +0 -0
  982. /package/src/{widgets-v2 → widgets}/actions/download/constants.ts +0 -0
  983. /package/src/{widgets-v2 → widgets}/actions/download/csv-item.test.tsx +0 -0
  984. /package/src/{widgets-v2 → widgets}/actions/download/csv-item.tsx +0 -0
  985. /package/src/{widgets-v2 → widgets}/actions/download/icons.tsx +0 -0
  986. /package/src/{widgets-v2 → widgets}/actions/download/index.ts +0 -0
  987. /package/src/{widgets-v2 → widgets}/actions/download/labels.ts +0 -0
  988. /package/src/{widgets-v2 → widgets}/actions/download/png-item.test.tsx +0 -0
  989. /package/src/{widgets-v2 → widgets}/actions/download/style.ts +0 -0
  990. /package/src/{widgets-v2 → widgets}/actions/fullscreen/index.ts +0 -0
  991. /package/src/{widgets-v2 → widgets}/actions/fullscreen/labels.ts +0 -0
  992. /package/src/{widgets-v2 → widgets}/actions/fullscreen/style.ts +0 -0
  993. /package/src/{widgets-v2 → widgets}/actions/lock-selection/index.ts +0 -0
  994. /package/src/{widgets-v2 → widgets}/actions/lock-selection/labels.ts +0 -0
  995. /package/src/{widgets-v2/actions/brush-toggle → widgets/actions/lock-selection}/style.ts +0 -0
  996. /package/src/{widgets-v2 → widgets}/actions/lock-selection/transforms.ts +0 -0
  997. /package/src/{widgets-v2 → widgets}/actions/relative-data/index.ts +0 -0
  998. /package/src/{widgets-v2 → widgets}/actions/relative-data/labels.ts +0 -0
  999. /package/src/{widgets-v2/actions/lock-selection → widgets/actions/relative-data}/style.ts +0 -0
  1000. /package/src/{widgets-v2 → widgets}/actions/relative-data/transforms.test.ts +0 -0
  1001. /package/src/{widgets-v2 → widgets}/actions/searcher/filter.ts +0 -0
  1002. /package/src/{widgets-v2 → widgets}/actions/searcher/index.ts +0 -0
  1003. /package/src/{widgets-v2 → widgets}/actions/searcher/labels.ts +0 -0
  1004. /package/src/{widgets-v2 → widgets}/actions/searcher/searcher.test.tsx +0 -0
  1005. /package/src/{widgets-v2 → widgets}/actions/searcher/style.ts +0 -0
  1006. /package/src/{widgets-v2 → widgets}/actions/show-all/index.ts +0 -0
  1007. /package/src/{widgets-v2 → widgets}/actions/show-all/labels.ts +0 -0
  1008. /package/src/{widgets-v2 → widgets}/actions/show-all/show-all.test.tsx +0 -0
  1009. /package/src/{widgets-v2 → widgets}/actions/show-all/show-all.tsx +0 -0
  1010. /package/src/{widgets-v2 → widgets}/actions/show-all/style.ts +0 -0
  1011. /package/src/{widgets-v2 → widgets}/actions/stack-toggle/index.ts +0 -0
  1012. /package/src/{widgets-v2 → widgets}/actions/stack-toggle/labels.ts +0 -0
  1013. /package/src/{widgets-v2/actions/relative-data → widgets/actions/stack-toggle}/style.ts +0 -0
  1014. /package/src/{widgets-v2 → widgets}/actions/stack-toggle/transforms.test.ts +0 -0
  1015. /package/src/{widgets-v2 → widgets}/actions/stack-toggle/transforms.ts +0 -0
  1016. /package/src/{widgets-v2 → widgets}/actions/zoom-toggle/index.ts +0 -0
  1017. /package/src/{widgets-v2 → widgets}/actions/zoom-toggle/labels.ts +0 -0
  1018. /package/src/{widgets-v2 → widgets}/actions/zoom-toggle/transforms.test.ts +0 -0
  1019. /package/src/{widgets-v2 → widgets}/actions/zoom-toggle/transforms.ts +0 -0
  1020. /package/src/{widgets-v2 → widgets}/bar/download.test.tsx +0 -0
  1021. /package/src/{widgets-v2 → widgets}/bar/download.tsx +0 -0
  1022. /package/src/{widgets-v2 → widgets}/bar/options.test.ts +0 -0
  1023. /package/src/{widgets-v2 → widgets}/bar/skeleton.test.tsx +0 -0
  1024. /package/src/{widgets-v2 → widgets}/category/category.relative-data.test.tsx +0 -0
  1025. /package/src/{widgets-v2 → widgets}/category/category.stack-toggle.test.tsx +0 -0
  1026. /package/src/{widgets-v2 → widgets}/category/category.test.tsx +0 -0
  1027. /package/src/{widgets-v2 → widgets}/category/category.tsx +0 -0
  1028. /package/src/{widgets-v2 → widgets}/category/components/category-bar-stacked.test.tsx +0 -0
  1029. /package/src/{widgets-v2 → widgets}/category/components/category-bar.test.tsx +0 -0
  1030. /package/src/{widgets-v2 → widgets}/category/components/category-row-other.test.tsx +0 -0
  1031. /package/src/{widgets-v2 → widgets}/category/components/category-row-stacked.test.tsx +0 -0
  1032. /package/src/{widgets-v2 → widgets}/category/download.test.ts +0 -0
  1033. /package/src/{widgets-v2 → widgets}/category/download.ts +0 -0
  1034. /package/src/{widgets-v2 → widgets}/category/skeleton.test.tsx +0 -0
  1035. /package/src/{widgets-v2 → widgets}/echart/edge-label-clamp.test.ts +0 -0
  1036. /package/src/{widgets-v2 → widgets}/echart/edge-label-clamp.ts +0 -0
  1037. /package/src/{widgets-v2 → widgets}/echart/shared-resize-observer.test.ts +0 -0
  1038. /package/src/{widgets-v2 → widgets}/echart/style.ts +0 -0
  1039. /package/src/{widgets-v2 → widgets}/echart/use-chart-selection.test.tsx +0 -0
  1040. /package/src/{widgets-v2 → widgets}/echart/use-chart-selection.ts +0 -0
  1041. /package/src/{widgets-v2 → widgets}/formula/delta.tsx +0 -0
  1042. /package/src/{widgets-v2 → widgets}/formula/download.test.tsx +0 -0
  1043. /package/src/{widgets-v2 → widgets}/formula/download.tsx +0 -0
  1044. /package/src/{widgets-v2 → widgets}/formula/formula.test.tsx +0 -0
  1045. /package/src/{widgets-v2 → widgets}/formula/formula.tsx +0 -0
  1046. /package/src/{widgets-v2 → widgets}/formula/prefix.tsx +0 -0
  1047. /package/src/{widgets-v2 → widgets}/formula/skeleton.test.tsx +0 -0
  1048. /package/src/{widgets-v2 → widgets}/formula/subcomponents.test.tsx +0 -0
  1049. /package/src/{widgets-v2 → widgets}/formula/suffix.tsx +0 -0
  1050. /package/src/{widgets-v2 → widgets}/histogram/download.test.ts +0 -0
  1051. /package/src/{widgets-v2 → widgets}/histogram/download.ts +0 -0
  1052. /package/src/{widgets-v2 → widgets}/histogram/options.test.ts +0 -0
  1053. /package/src/{widgets-v2 → widgets}/histogram/skeleton.test.tsx +0 -0
  1054. /package/src/{widgets-v2 → widgets}/histogram/transforms.test.ts +0 -0
  1055. /package/src/{widgets-v2 → widgets}/histogram/transforms.ts +0 -0
  1056. /package/src/{widgets-v2 → widgets}/markdown/download.test.ts +0 -0
  1057. /package/src/{widgets-v2 → widgets}/markdown/download.tsx +0 -0
  1058. /package/src/{widgets-v2 → widgets}/markdown/markdown-content.test.tsx +0 -0
  1059. /package/src/{widgets-v2 → widgets}/markdown/markdown-content.tsx +0 -0
  1060. /package/src/{widgets-v2 → widgets}/markdown/markdown.test.tsx +0 -0
  1061. /package/src/{widgets-v2 → widgets}/markdown/skeleton.test.tsx +0 -0
  1062. /package/src/{widgets-v2 → widgets}/note/labels.ts +0 -0
  1063. /package/src/{widgets-v2 → widgets}/note/widget-note.test.tsx +0 -0
  1064. /package/src/{widgets-v2 → widgets}/pie/download.test.ts +0 -0
  1065. /package/src/{widgets-v2 → widgets}/pie/download.ts +0 -0
  1066. /package/src/{widgets-v2 → widgets}/pie/options.test.ts +0 -0
  1067. /package/src/{widgets-v2 → widgets}/pie/skeleton.test.tsx +0 -0
  1068. /package/src/{widgets-v2 → widgets}/provider/widget-provider.test.tsx +0 -0
  1069. /package/src/{widgets-v2 → widgets}/provider/widget-provider.tsx +0 -0
  1070. /package/src/{widgets-v2 → widgets}/range/range.test.tsx +0 -0
  1071. /package/src/{widgets-v2 → widgets}/range/range.tsx +0 -0
  1072. /package/src/{widgets-v2 → widgets}/range/skeleton.test.tsx +0 -0
  1073. /package/src/{widgets-v2 → widgets}/scatterplot/download.test.ts +0 -0
  1074. /package/src/{widgets-v2 → widgets}/scatterplot/download.ts +0 -0
  1075. /package/src/{widgets-v2 → widgets}/scatterplot/options.test.ts +0 -0
  1076. /package/src/{widgets-v2 → widgets}/scatterplot/skeleton.test.tsx +0 -0
  1077. /package/src/{widgets-v2 → widgets}/scatterplot/transforms.test.ts +0 -0
  1078. /package/src/{widgets-v2 → widgets}/scatterplot/transforms.ts +0 -0
  1079. /package/src/{widgets-v2 → widgets}/selection-summary/labels.ts +0 -0
  1080. /package/src/{widgets-v2 → widgets}/selection-summary/selection-summary.test.tsx +0 -0
  1081. /package/src/{widgets-v2 → widgets}/spread/band.test.ts +0 -0
  1082. /package/src/{widgets-v2 → widgets}/spread/band.ts +0 -0
  1083. /package/src/{widgets-v2 → widgets}/spread/download.test.ts +0 -0
  1084. /package/src/{widgets-v2 → widgets}/spread/download.ts +0 -0
  1085. /package/src/{widgets-v2 → widgets}/spread/separator.tsx +0 -0
  1086. /package/src/{widgets-v2 → widgets}/spread/skeleton.test.tsx +0 -0
  1087. /package/src/{widgets-v2 → widgets}/spread/spread.test.tsx +0 -0
  1088. /package/src/{widgets-v2 → widgets}/spread/spread.tsx +0 -0
  1089. /package/src/{widgets-v2 → widgets}/state/labels.test.ts +0 -0
  1090. /package/src/{widgets-v2 → widgets}/state/labels.ts +0 -0
  1091. /package/src/{widgets-v2 → widgets}/state/style.ts +0 -0
  1092. /package/src/{widgets-v2 → widgets}/state/widget-state.test.tsx +0 -0
  1093. /package/src/{widgets-v2 → widgets}/stores/pipeline-middleware.test.ts +0 -0
  1094. /package/src/{widgets-v2 → widgets}/stores/pipeline-middleware.ts +0 -0
  1095. /package/src/{widgets-v2 → widgets}/stores/transforms.test.ts +0 -0
  1096. /package/src/{widgets-v2 → widgets}/stores/use-echart-instance.test.tsx +0 -0
  1097. /package/src/{widgets-v2 → widgets}/stores/use-echart-instance.ts +0 -0
  1098. /package/src/{widgets-v2 → widgets}/stores/use-transform-enabled.test.tsx +0 -0
  1099. /package/src/{widgets-v2 → widgets}/stores/use-transform-enabled.ts +0 -0
  1100. /package/src/{widgets-v2 → widgets}/stores/use-transform.test.tsx +0 -0
  1101. /package/src/{widgets-v2 → widgets}/stores/widget-context.test.tsx +0 -0
  1102. /package/src/{widgets-v2 → widgets}/stores/widget-context.ts +0 -0
  1103. /package/src/{widgets-v2 → widgets}/stores/widget-store-registry.test.ts +0 -0
  1104. /package/src/{widgets-v2 → widgets}/table/download.test.ts +0 -0
  1105. /package/src/{widgets-v2 → widgets}/table/download.ts +0 -0
  1106. /package/src/{widgets-v2 → widgets}/table/labels.tsx +0 -0
  1107. /package/src/{widgets-v2 → widgets}/table/skeleton.test.tsx +0 -0
  1108. /package/src/{widgets-v2 → widgets}/table/table-ui.test.tsx +0 -0
  1109. /package/src/{widgets-v2 → widgets}/table/table.test.tsx +0 -0
  1110. /package/src/{widgets-v2 → widgets}/table/table.tsx +0 -0
  1111. /package/src/{widgets-v2 → widgets}/table/transforms.test.ts +0 -0
  1112. /package/src/{widgets-v2 → widgets}/table/transforms.ts +0 -0
  1113. /package/src/{widgets-v2 → widgets}/timeseries/download.test.ts +0 -0
  1114. /package/src/{widgets-v2 → widgets}/timeseries/download.ts +0 -0
  1115. /package/src/{widgets-v2 → widgets}/timeseries/options.test.ts +0 -0
  1116. /package/src/{widgets-v2 → widgets}/timeseries/skeleton.test.tsx +0 -0
  1117. /package/src/{widgets-v2 → widgets}/timeseries/transforms.test.ts +0 -0
  1118. /package/src/{widgets-v2 → widgets}/timeseries/transforms.ts +0 -0
  1119. /package/src/{widgets-v2 → widgets}/toolbox/labels.ts +0 -0
  1120. /package/src/{widgets-v2 → widgets}/toolbox/style.ts +0 -0
  1121. /package/src/{widgets-v2 → widgets}/toolbox/toolbox.test.tsx +0 -0
  1122. /package/src/{widgets-v2 → widgets}/toolbox/toolbox.tsx +0 -0
  1123. /package/src/{widgets-v2 → widgets}/utils/data-zoom-layout.ts +0 -0
  1124. /package/src/{widgets-v2 → widgets}/utils/merge-options.test.ts +0 -0
  1125. /package/src/{widgets-v2 → widgets}/utils/merge-options.ts +0 -0
  1126. /package/src/widgets/utils/{chart-config/option-builders.test.ts → option-builders.test.ts} +0 -0
  1127. /package/src/widgets/utils/{chart-config/option-builders.ts → option-builders.ts} +0 -0
  1128. /package/src/{widgets-v2 → widgets}/utils/resolve-theme-color.test.ts +0 -0
  1129. /package/src/{widgets-v2 → widgets}/utils/resolve-theme-color.ts +0 -0
  1130. /package/src/{widgets-v2 → widgets}/wrapper/labels.ts +0 -0
  1131. /package/src/{widgets-v2 → widgets}/wrapper/style.ts +0 -0
  1132. /package/src/{widgets-v2 → widgets}/wrapper/widget-actions.test.tsx +0 -0
  1133. /package/src/{widgets-v2 → widgets}/wrapper/widget-actions.tsx +0 -0
  1134. /package/src/{widgets-v2 → widgets}/wrapper/widget-content.test.tsx +0 -0
  1135. /package/src/{widgets-v2 → widgets}/wrapper/widget-content.tsx +0 -0
  1136. /package/src/{widgets-v2 → widgets}/wrapper/widget-wrapper.test.tsx +0 -0
@@ -1,8 +1,8 @@
1
- import "./components-FED-ArwH.js";
2
- import { t as e } from "./tooltip-DJUGNZxY.js";
3
- import { S as t, T as n, i as r, n as i, p as a, r as o } from "./stores-tiFePP0A.js";
4
- import "./zoom-toggle-IsF8BnAp.js";
5
- import "./download-DdaK3qgC.js";
1
+ import "./components-CTUpdQuj.js";
2
+ import { n as e } from "./smart-tooltip-Dc_rHhyI.js";
3
+ import { S as t, T as n, i as r, n as i, p as a, r as o } from "./stores-B8CHbgw-.js";
4
+ import "./zoom-toggle-D_VuA01l.js";
5
+ import "./download-Vlzn2jzb.js";
6
6
  import { c as s } from "react/compiler-runtime";
7
7
  import { useEffect as c, useLayoutEffect as l, useRef as u, useState as d } from "react";
8
8
  import { Box as f, Dialog as p, DialogContent as m, DialogTitle as h, IconButton as g, InputAdornment as _, ListItemText as v, ListSubheader as y, Menu as b, MenuItem as x, SvgIcon as S, TextField as C, Typography as w, useMediaQuery as T, useTheme as E } from "@mui/material";
@@ -13,7 +13,7 @@ import { SortableContext as H, arrayMove as U, sortableKeyboardCoordinates as ee
13
13
  import { CSS as K } from "@dnd-kit/utilities";
14
14
  import { DndContext as te, KeyboardSensor as ne, PointerSensor as re, closestCenter as ie, useSensor as q, useSensors as ae } from "@dnd-kit/core";
15
15
  import { createPortal as oe } from "react-dom";
16
- //#region src/widgets-v2/actions/searcher/filter.ts
16
+ //#region src/widgets/actions/searcher/filter.ts
17
17
  function J(e, t) {
18
18
  if (!t) return e;
19
19
  let n = t.toLowerCase();
@@ -30,7 +30,7 @@ function Y(e) {
30
30
  return typeof e == "string" ? e : typeof e == "number" || typeof e == "boolean" ? String(e) : "";
31
31
  }
32
32
  //#endregion
33
- //#region src/widgets-v2/actions/searcher/labels.ts
33
+ //#region src/widgets/actions/searcher/labels.ts
34
34
  var X = {
35
35
  toggle: "Search",
36
36
  placeholder: "Search…",
@@ -101,7 +101,7 @@ function Q(e, t) {
101
101
  } }));
102
102
  }
103
103
  //#endregion
104
- //#region src/widgets-v2/actions/searcher/searcher.tsx
104
+ //#region src/widgets/actions/searcher/searcher.tsx
105
105
  var ue = 300;
106
106
  function de(e) {
107
107
  let r = s(26), { labels: i, debounceMs: o } = e, c = o === void 0 ? ue : o, l = n(), f;
@@ -143,10 +143,10 @@ function de(e) {
143
143
  })
144
144
  }) : null, r[15] = k, r[16] = y, r[17] = p.clearAriaLabel, r[18] = M) : M = r[18];
145
145
  let N;
146
- r[19] === M ? N = r[20] : (N = {
146
+ r[19] === M ? N = r[20] : (N = { input: {
147
147
  startAdornment: j,
148
148
  endAdornment: M
149
- }, r[19] = M, r[20] = N);
149
+ } }, r[19] = M, r[20] = N);
150
150
  let P;
151
151
  return r[21] !== E || r[22] !== y || r[23] !== p.placeholder || r[24] !== N ? (P = /* @__PURE__ */ O(C, {
152
152
  inputRef: h,
@@ -159,14 +159,14 @@ function de(e) {
159
159
  autoFocus: !0,
160
160
  "aria-label": p.placeholder,
161
161
  sx: Z.input,
162
- InputProps: N
162
+ slotProps: N
163
163
  }), r[21] = E, r[22] = y, r[23] = p.placeholder, r[24] = N, r[25] = P) : P = r[25], P;
164
164
  }
165
165
  function fe(e) {
166
166
  return e.transformStates.searcher?.enabled ?? !1;
167
167
  }
168
168
  //#endregion
169
- //#region src/widgets-v2/actions/stack-toggle/transforms.ts
169
+ //#region src/widgets/actions/stack-toggle/transforms.ts
170
170
  var $ = (e) => {
171
171
  if (typeof e != "object" || !e) return e;
172
172
  let t = e, n = Array.isArray(t.series) ? t.series : [], r = n.length === 0 ? [{ stack: "total" }] : n.map((e) => typeof e != "object" || !e ? e : {
@@ -225,7 +225,7 @@ function ge(t) {
225
225
  }), r[15] = C, r[16] = y, r[17] = w) : w = r[17], w;
226
226
  }
227
227
  //#endregion
228
- //#region src/widgets-v2/actions/show-all/labels.ts
228
+ //#region src/widgets/actions/show-all/labels.ts
229
229
  var _e = { toggle: "Show less" }, ve = { toggle: {
230
230
  p: .5,
231
231
  "& .MuiSvgIcon-root": { fontSize: 20 }
@@ -268,7 +268,7 @@ function xe(e, t) {
268
268
  } }));
269
269
  }
270
270
  //#endregion
271
- //#region src/widgets-v2/actions/brush-toggle/transforms.ts
271
+ //#region src/widgets/actions/brush-toggle/transforms.ts
272
272
  var Se = (e) => {
273
273
  if (typeof e != "object" || !e) return e;
274
274
  let t = e;
@@ -380,7 +380,7 @@ function Ee(t) {
380
380
  }), a[30] = R, a[31] = M, a[32] = z) : z = a[32], z;
381
381
  }
382
382
  //#endregion
383
- //#region src/widgets-v2/actions/relative-data/transforms.ts
383
+ //#region src/widgets/actions/relative-data/transforms.ts
384
384
  function De(e) {
385
385
  return Array.isArray(e) ? e.every((e) => typeof e == "object" && !!e && "value" in e && typeof e.value == "number") : !1;
386
386
  }
@@ -401,7 +401,7 @@ function ke(e) {
401
401
  return (e) => typeof e != "number" || !Number.isFinite(e) ? String(e) : t.format(e / 100);
402
402
  }
403
403
  //#endregion
404
- //#region src/widgets-v2/actions/relative-data/labels.ts
404
+ //#region src/widgets/actions/relative-data/labels.ts
405
405
  var Ae = {
406
406
  on: "Show absolute values",
407
407
  off: "Show relative values"
@@ -464,7 +464,7 @@ function Pe(e) {
464
464
  return e.rawFormatter;
465
465
  }
466
466
  //#endregion
467
- //#region src/widgets-v2/actions/fullscreen/labels.ts
467
+ //#region src/widgets/actions/fullscreen/labels.ts
468
468
  var Fe = {
469
469
  open: "Open in full screen",
470
470
  close: "Exit full screen"
@@ -521,7 +521,7 @@ var Fe = {
521
521
  }
522
522
  };
523
523
  //#endregion
524
- //#region src/widgets-v2/actions/fullscreen/fullscreen.tsx
524
+ //#region src/widgets/actions/fullscreen/fullscreen.tsx
525
525
  function Le(r) {
526
526
  let i = s(20), { labels: o, enterIcon: c, exitIcon: l, iconProps: u } = r, d = c === void 0 ? N : c, f = l === void 0 ? P : l, p = n(), m;
527
527
  i[0] === o ? m = i[1] : (m = {
@@ -593,7 +593,7 @@ function ze(r) {
593
593
  }), i[17] = G) : G = i[17], K = B ? oe(e, B) : null, i[12] = o, i[13] = M, i[14] = B, i[15] = G, i[16] = K;
594
594
  } else G = i[15], K = i[16];
595
595
  let te;
596
- i[18] !== F || i[19] !== _ ? (te = F ? void 0 : { sx: He(_) }, i[18] = F, i[19] = _, i[20] = te) : te = i[20];
596
+ i[18] !== F || i[19] !== _ ? (te = F ? void 0 : { paper: { sx: He(_) } }, i[18] = F, i[19] = _, i[20] = te) : te = i[20];
597
597
  let ne;
598
598
  i[21] === c ? ne = i[22] : (ne = /* @__PURE__ */ O(w, {
599
599
  variant: "subtitle1",
@@ -608,7 +608,7 @@ function ze(r) {
608
608
  }), i[23] = x, i[24] = b, i[25] = re) : re = i[25];
609
609
  let ie;
610
610
  i[26] !== A.close || i[27] !== H || i[28] !== re ? (ie = /* @__PURE__ */ O(g, {
611
- size: "medium",
611
+ size: "small",
612
612
  "aria-label": A.close,
613
613
  onClick: H,
614
614
  children: re
@@ -640,7 +640,7 @@ function ze(r) {
640
640
  open: M,
641
641
  onClose: H,
642
642
  fullScreen: F,
643
- PaperProps: te,
643
+ slotProps: te,
644
644
  "aria-labelledby": W,
645
645
  children: [J, Y]
646
646
  }), i[41] = F, i[42] = H, i[43] = M, i[44] = J, i[45] = te, i[46] = W, i[47] = X) : X = i[47];
@@ -678,7 +678,7 @@ var We = {
678
678
  Slot: ze
679
679
  };
680
680
  //#endregion
681
- //#region src/widgets-v2/actions/lock-selection/transforms.ts
681
+ //#region src/widgets/actions/lock-selection/transforms.ts
682
682
  function Ge(e, t) {
683
683
  if (t.length === 0 || !Array.isArray(e)) return e;
684
684
  let n = new Set(t);
@@ -692,7 +692,7 @@ function Ge(e, t) {
692
692
  }) : e);
693
693
  }
694
694
  //#endregion
695
- //#region src/widgets-v2/actions/lock-selection/labels.ts
695
+ //#region src/widgets/actions/lock-selection/labels.ts
696
696
  var Ke = {
697
697
  lock: "Lock selection",
698
698
  unlock: "Unlock selection",
@@ -768,7 +768,7 @@ function Xe(e, t, n) {
768
768
  }], r[5] = l, r[6] = d), d;
769
769
  }
770
770
  //#endregion
771
- //#region src/widgets-v2/actions/change-column/change-column-icon.tsx
771
+ //#region src/widgets/actions/change-column/change-column-icon.tsx
772
772
  function Ze(e) {
773
773
  let t = s(3), n;
774
774
  t[0] === Symbol.for("react.memo_cache_sentinel") ? (n = /* @__PURE__ */ O("path", {
@@ -785,7 +785,7 @@ function Ze(e) {
785
785
  }), t[1] = e, t[2] = r), r;
786
786
  }
787
787
  //#endregion
788
- //#region src/widgets-v2/actions/change-column/labels.ts
788
+ //#region src/widgets/actions/change-column/labels.ts
789
789
  var Qe = {
790
790
  trigger: "Change column order",
791
791
  title: "Column reorder",
@@ -835,7 +835,7 @@ var Qe = {
835
835
  dragHandleVisible: { opacity: 1 }
836
836
  };
837
837
  //#endregion
838
- //#region src/widgets-v2/actions/change-column/sortable-column-item.tsx
838
+ //#region src/widgets/actions/change-column/sortable-column-item.tsx
839
839
  function et(e) {
840
840
  let t = s(24), { id: n, label: r, dragHandleIcon: i } = e, a = i === void 0 ? M : i, o;
841
841
  t[0] === n ? o = t[1] : (o = { id: n }, t[0] = n, t[1] = o);
@@ -880,7 +880,7 @@ function et(e) {
880
880
  }), t[16] = c, t[17] = l, t[18] = u, t[19] = w, t[20] = y, t[21] = C, t[22] = g, t[23] = T) : T = t[23], T;
881
881
  }
882
882
  //#endregion
883
- //#region src/widgets-v2/actions/change-column/change-column.tsx
883
+ //#region src/widgets/actions/change-column/change-column.tsx
884
884
  function tt(r) {
885
885
  let i = s(55), { columns: o, labels: c, icon: l, iconProps: u, dragHandleIcon: f } = r, p = l === void 0 ? Ze : l, m = n(), h;
886
886
  i[0] === c ? h = i[1] : (h = {
@@ -1021,4 +1021,4 @@ function it(e) {
1021
1021
  //#endregion
1022
1022
  export { ce as C, J as E, de as S, X as T, xe as _, Ge as a, pe as b, Ne as c, Oe as d, Ee as f, be as g, ye as h, Ke as i, Ae as l, Se as m, Qe as n, We as o, Ce as p, Ye as r, Fe as s, tt as t, ke as u, _e as v, Q as w, $ as x, ge as y };
1023
1023
 
1024
- //# sourceMappingURL=actions-BjPfCLG9.js.map
1024
+ //# sourceMappingURL=actions-KsX1xdDM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions-KsX1xdDM.js","names":["Icon = SearchIcon","{\n labels,\n icon: Icon = SearchIcon,\n iconProps,\n initialEnabled = false,\n}: SearcherToggleProps","initialEnabled = false","{ ...DEFAULT_SEARCHER_LABELS, ...labels }","(s) => (s.transformStates.searcher?.searchText as string | undefined) ?? ''","(data: unknown) => filterBySearchText(data, text)","useCallback(\n (data: unknown) => filterBySearchText(data, text),\n [text],\n )","{\n initialEnabled,\n }","{ ...styles.toggle, ...(enabled && styles.toggleActive) }","enabled && styles.toggleActive","<Icon fontSize='small' {...iconProps} />","<IconButton\n size='small'\n aria-label={resolved.toggle}\n aria-pressed={enabled}\n onClick={toggle}\n sx={{ ...styles.toggle, ...(enabled && styles.toggleActive) }}\n >\n <Icon fontSize='small' {...iconProps} />\n </IconButton>","toggle","<Tooltip title={resolved.toggle}>\n <IconButton\n size='small'\n aria-label={resolved.toggle}\n aria-pressed={enabled}\n onClick={toggle}\n sx={{ ...styles.toggle, ...(enabled && styles.toggleActive) }}\n >\n <Icon fontSize='small' {...iconProps} />\n </IconButton>\n </Tooltip>","{\n labels,\n debounceMs = DEFAULT_DEBOUNCE,\n}: SearcherProps","debounceMs = DEFAULT_DEBOUNCE","{ ...DEFAULT_SEARCHER_LABELS, ...labels }","(s) => s.transformStates.searcher?.enabled ?? false","() =>\n (getWidgetStore(id).getState().transformStates.searcher?.searchText as\n string | undefined) ?? ''","(value: unknown) => setSearcherText(id, value as string)","debounce(\n (value: unknown) => setSearcherText(id, value as string),\n debounceMs,\n )","useMemo(\n () =>\n debounce(\n (value: unknown) => setSearcherText(id, value as string),\n debounceMs,\n ),\n [id, debounceMs],\n )","(e: React.ChangeEvent<HTMLInputElement>) => {\n const value = e.target.value\n setLocal(value)\n debouncedWrite(value)\n }","value","useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const value = e.target.value\n setLocal(value)\n debouncedWrite(value)\n },\n [debouncedWrite],\n )","() => {\n setLocal('')\n setSearcherText(id, '')\n // Re-arm the debounced timer with '' so any pending stale write resolves\n // to the cleared value rather than re-applying the previous text.\n debouncedWrite('')\n inputRef.current?.focus()\n }","useCallback(() => {\n setLocal('')\n setSearcherText(id, '')\n // Re-arm the debounced timer with '' so any pending stale write resolves\n // to the cleared value rather than re-applying the previous text.\n debouncedWrite('')\n inputRef.current?.focus()\n }, [id, debouncedWrite])","<InputAdornment position='start'>\n <SearchIcon fontSize='small' />\n </InputAdornment>","local ? (\n <InputAdornment position='end'>\n <IconButton\n size='small'\n edge='end'\n aria-label={resolved.clearAriaLabel}\n onClick={handleClear}\n >\n <ClearIcon fontSize='small' />\n </IconButton>\n </InputAdornment>\n ) : null","clearAriaLabel","{\n input: {\n startAdornment: (\n <InputAdornment position='start'>\n <SearchIcon fontSize='small' />\n </InputAdornment>\n ),\n endAdornment: local ? (\n <InputAdornment position='end'>\n <IconButton\n size='small'\n edge='end'\n aria-label={resolved.clearAriaLabel}\n onClick={handleClear}\n >\n <ClearIcon fontSize='small' />\n </IconButton>\n </InputAdornment>\n ) : null,\n },\n }","<TextField\n inputRef={inputRef}\n size='small'\n fullWidth\n variant='filled'\n placeholder={resolved.placeholder}\n value={local}\n onChange={handleSearchTextChange}\n // The Searcher only mounts when the user explicitly toggles the\n // SearcherToggle action — focusing the input on mount matches user\n // intent, so the jsx-a11y/no-autofocus warning is the false-positive\n // case (the rule targets unsolicited autofocus that disorients\n // screen readers).\n // eslint-disable-next-line\n autoFocus\n aria-label={resolved.placeholder}\n sx={styles.input}\n slotProps={{\n input: {\n startAdornment: (\n <InputAdornment position='start'>\n <SearchIcon fontSize='small' />\n </InputAdornment>\n ),\n endAdornment: local ? (\n <InputAdornment position='end'>\n <IconButton\n size='small'\n edge='end'\n aria-label={resolved.clearAriaLabel}\n onClick={handleClear}\n >\n <ClearIcon fontSize='small' />\n </IconButton>\n </InputAdornment>\n ) : null,\n },\n }}\n />","placeholder","Icon = StackedBarChartIcon","{\n initialEnabled = false,\n labels,\n icon: Icon = StackedBarChartIcon,\n iconProps,\n}: StackToggleProps","initialEnabled = false","{ ...DEFAULT_STACK_TOGGLE_LABELS, ...labels }","{\n initialEnabled,\n }","{ ...styles.toggle, ...(enabled && styles.toggleActive) }","enabled && styles.toggleActive","<Icon fontSize='small' {...iconProps} />","<IconButton\n size='small'\n aria-label={tooltip}\n aria-pressed={enabled}\n onClick={toggle}\n sx={{ ...styles.toggle, ...(enabled && styles.toggleActive) }}\n >\n <Icon fontSize='small' {...iconProps} />\n </IconButton>","<Tooltip title={tooltip}>\n <IconButton\n size='small'\n aria-label={tooltip}\n aria-pressed={enabled}\n onClick={toggle}\n sx={{ ...styles.toggle, ...(enabled && styles.toggleActive) }}\n >\n <Icon fontSize='small' {...iconProps} />\n </IconButton>\n </Tooltip>","Icon = CloseIcon","{\n labels,\n icon: Icon = CloseIcon,\n iconProps,\n}: ShowAllToggleProps","{ ...DEFAULT_SHOW_ALL_LABELS, ...labels }","() => setShowAll(id, false)","<Icon fontSize='small' {...iconProps} />","<IconButton\n size='small'\n aria-label={_labels.toggle}\n aria-pressed\n onClick={() => setShowAll(id, false)}\n sx={styles.toggle}\n >\n <Icon fontSize='small' {...iconProps} />\n </IconButton>","toggle","<Tooltip title={_labels.toggle}>\n <IconButton\n size='small'\n aria-label={_labels.toggle}\n aria-pressed\n onClick={() => setShowAll(id, false)}\n sx={styles.toggle}\n >\n <Icon fontSize='small' {...iconProps} />\n </IconButton>\n </Tooltip>","Icon = HighlightAltIcon","{\n initialEnabled = false,\n brushType = 'lineX',\n brushMode = 'multiple',\n selection,\n labels,\n icon: Icon = HighlightAltIcon,\n iconProps,\n}: BrushToggleProps","initialEnabled = false","brushType = 'lineX'","brushMode = 'multiple'","{ ...DEFAULT_BRUSH_TOGGLE_LABELS, ...labels }","{ initialEnabled }","() => {\n if (!chart) return undefined\n if (!enabled) {\n // Disabled: exit brush cursor and wipe any drawn rectangles.\n chart.dispatchAction({ type: 'takeGlobalCursor' })\n chart.dispatchAction({ type: 'brush', areas: [] })\n return undefined\n }\n\n const enterBrush = (): void => {\n chart.dispatchAction({\n type: 'takeGlobalCursor',\n key: 'brush',\n brushOption: { brushType, brushMode },\n })\n }\n\n // Every `setOption` clears the global cursor. Re-dispatch after\n // each chart render so `brushMode: 'multiple'` stays usable across\n // selection-driven re-renders, RelativeData toggles, etc.\n const onFinished = (): void => enterBrush()\n chart.on('finished', onFinished)\n enterBrush()\n\n return () => {\n chart.off('finished', onFinished)\n }\n }","[chart, enabled, brushType, brushMode]","() => {\n if (!chart || !enabled) return\n if (selection?.length === 0) {\n chart.dispatchAction({ type: 'brush', areas: [] })\n }\n }","length","[chart, enabled, selection]","{ ...styles.toggle, ...(enabled && styles.toggleActive) }","enabled && styles.toggleActive","<Icon fontSize='small' {...iconProps} />","<IconButton\n size='small'\n aria-label={tooltip}\n aria-pressed={enabled}\n onClick={toggle}\n className={enabled ? 'active' : undefined}\n sx={{ ...styles.toggle, ...(enabled && styles.toggleActive) }}\n >\n <Icon fontSize='small' {...iconProps} />\n </IconButton>","enabled ? 'active' : undefined","<Tooltip title={tooltip}>\n <IconButton\n size='small'\n aria-label={tooltip}\n aria-pressed={enabled}\n onClick={toggle}\n className={enabled ? 'active' : undefined}\n sx={{ ...styles.toggle, ...(enabled && styles.toggleActive) }}\n >\n <Icon fontSize='small' {...iconProps} />\n </IconButton>\n </Tooltip>","Icon = PercentIcon","{\n initialEnabled = false,\n locale,\n labels,\n icon: Icon = PercentIcon,\n iconProps,\n transform,\n}: RelativeDataProps","initialEnabled = false","{ ...DEFAULT_RELATIVE_DATA_LABELS, ...labels }","{ initialEnabled }","createPercentFormatter(locale)","useMemo(\n () => createPercentFormatter(locale),\n [locale],\n )","(s) => s.rawFormatter","() => {\n getWidgetStore(id).setState({\n formatter: enabled ? percentFormatter : rawFormatter,\n })\n }","[id, enabled, percentFormatter, rawFormatter]","{ ...styles.toggle, ...(enabled && styles.toggleActive) }","enabled && styles.toggleActive","<Icon fontSize='small' {...iconProps} />","<IconButton\n size='small'\n aria-label={tooltip}\n aria-pressed={enabled}\n onClick={toggle}\n sx={{ ...styles.toggle, ...(enabled && styles.toggleActive) }}\n >\n <Icon fontSize='small' {...iconProps} />\n </IconButton>","<Tooltip title={tooltip}>\n <IconButton\n size='small'\n aria-label={tooltip}\n aria-pressed={enabled}\n onClick={toggle}\n sx={{ ...styles.toggle, ...(enabled && styles.toggleActive) }}\n >\n <Icon fontSize='small' {...iconProps} />\n </IconButton>\n </Tooltip>","EnterIcon = FullscreenIcon","ExitIcon = FullscreenExitIcon","{\n labels,\n enterIcon: EnterIcon = FullscreenIcon,\n exitIcon: ExitIcon = FullscreenExitIcon,\n iconProps,\n}: FullScreenTriggerProps","{ ...DEFAULT_FULLSCREEN_LABELS, ...labels }","(s) => s.isFullScreen ?? false","() => {\n getWidgetStore(id).setState({\n isFullScreen: !open,\n } as Partial<FullScreenWidgetState>)\n }","useCallback(() => {\n getWidgetStore(id).setState({\n isFullScreen: !open,\n } as Partial<FullScreenWidgetState>)\n }, [id, open])","{ ...styles.trigger, ...(open && styles.triggerActive) }","open && styles.triggerActive","<TriggerIcon fontSize='small' {...iconProps} />","<IconButton\n size='small'\n aria-label={triggerLabel}\n aria-pressed={open}\n onClick={handleToggle}\n className={open ? 'active' : undefined}\n sx={{ ...styles.trigger, ...(open && styles.triggerActive) }}\n >\n <TriggerIcon fontSize='small' {...iconProps} />\n </IconButton>","open ? 'active' : undefined","<Tooltip title={triggerLabel}>\n <IconButton\n size='small'\n aria-label={triggerLabel}\n aria-pressed={open}\n onClick={handleToggle}\n className={open ? 'active' : undefined}\n sx={{ ...styles.trigger, ...(open && styles.triggerActive) }}\n >\n <TriggerIcon fontSize='small' {...iconProps} />\n </IconButton>\n </Tooltip>","CloseSvg = CloseIcon","{\n children,\n title,\n actions,\n paperSx,\n labels,\n closeIcon: CloseSvg = CloseIcon,\n iconProps,\n}: FullScreenSlotProps","theme.breakpoints.down('sm')","breakpoints","() => {\n if (typeof document === 'undefined') return null\n const div = document.createElement('div')\n // `display: contents` keeps the wrapper transparent in flow so it\n // doesn't introduce a stray block when nested inside the inline slot.\n div.style.display = 'contents'\n return div\n }","() => {\n getWidgetStore(id).setState({\n isFullScreen: false,\n } as Partial<FullScreenWidgetState>)\n }","useCallback(() => {\n getWidgetStore(id).setState({\n isFullScreen: false,\n } as Partial<FullScreenWidgetState>)\n }, [id])","() => {\n if (!portalDiv || !inlineEl) return\n const host = open ? dialogEl : inlineEl\n if (host && portalDiv.parentNode !== host) {\n host.appendChild(portalDiv)\n }\n if (!open) refreshInlineHeightLock(inlineEl)\n }","[open, inlineEl, dialogEl, portalDiv]","<Box ref={setInlineEl} sx={styles.inlineSlot} />","portalDiv ? createPortal(rendered, portalDiv) : null","fullBleed ? undefined : { paper: { sx: resolvePaperSx(paperSx) } }","<Typography\n variant='subtitle1'\n component='span'\n sx={styles.titleText}\n >\n {title}\n </Typography>","<CloseSvg fontSize='small' {...iconProps} />","<IconButton\n size='small'\n aria-label={_labels.close}\n onClick={handleClose}\n >\n <CloseSvg fontSize='small' {...iconProps} />\n </IconButton>","close","<Tooltip title={_labels.close}>\n <IconButton\n size='small'\n aria-label={_labels.close}\n onClick={handleClose}\n >\n <CloseSvg fontSize='small' {...iconProps} />\n </IconButton>\n </Tooltip>","<Box sx={styles.dialogActions}>\n {actions}\n <Tooltip title={_labels.close}>\n <IconButton\n size='small'\n aria-label={_labels.close}\n onClick={handleClose}\n >\n <CloseSvg fontSize='small' {...iconProps} />\n </IconButton>\n </Tooltip>\n </Box>","<DialogTitle id={titleId} component='div' sx={styles.dialogTitle}>\n <Typography\n variant='subtitle1'\n component='span'\n sx={styles.titleText}\n >\n {title}\n </Typography>\n <Box sx={styles.dialogActions}>\n {actions}\n <Tooltip title={_labels.close}>\n <IconButton\n size='small'\n aria-label={_labels.close}\n onClick={handleClose}\n >\n <CloseSvg fontSize='small' {...iconProps} />\n </IconButton>\n </Tooltip>\n </Box>\n </DialogTitle>","<DialogContent ref={setDialogEl} sx={styles.dialogContent} />","<Dialog\n open={open}\n onClose={handleClose}\n fullScreen={fullBleed}\n // Edge-to-edge owns the sizing; the floor and cap would fight it.\n slotProps={\n fullBleed ? undefined : { paper: { sx: resolvePaperSx(paperSx) } }\n }\n aria-labelledby={titleId}\n // Deliberately no z-index override. Raising the dialog above the\n // tooltip layer also raises it above everything its own body opens —\n // MUI portals menus and tooltips to `document.body`, so a Download\n // menu (`zIndex.modal`, 1300) or a Tooltip (1500) ends up painted\n // under a dialog at 1501 and its items can't be clicked. At the\n // default modal layer the menu portals after the dialog and wins on\n // DOM order, and the tooltip wins on z-index.\n //\n // This used to sit at `tooltip + 1` to cover a Toolbox popper left\n // open when fullscreen opened. That's the Toolbox's own job and it\n // already does it: `visibleCount` flips to `undefined` in fullscreen,\n // overflow disappears and the popper unmounts. A consumer who keeps a\n // numeric `visibleCount` in fullscreen keeps its popper above the\n // dialog — which is the correct layer for a popover opened from\n // inside it anyway.\n >\n <DialogTitle id={titleId} component='div' sx={styles.dialogTitle}>\n <Typography\n variant='subtitle1'\n component='span'\n sx={styles.titleText}\n >\n {title}\n </Typography>\n <Box sx={styles.dialogActions}>\n {actions}\n <Tooltip title={_labels.close}>\n <IconButton\n size='small'\n aria-label={_labels.close}\n onClick={handleClose}\n >\n <CloseSvg fontSize='small' {...iconProps} />\n </IconButton>\n </Tooltip>\n </Box>\n </DialogTitle>\n <DialogContent ref={setDialogEl} sx={styles.dialogContent} />\n </Dialog>","<>\n <Box ref={setInlineEl} sx={styles.inlineSlot} />\n {portalDiv ? createPortal(rendered, portalDiv) : null}\n <Dialog\n open={open}\n onClose={handleClose}\n fullScreen={fullBleed}\n // Edge-to-edge owns the sizing; the floor and cap would fight it.\n slotProps={\n fullBleed ? undefined : { paper: { sx: resolvePaperSx(paperSx) } }\n }\n aria-labelledby={titleId}\n // Deliberately no z-index override. Raising the dialog above the\n // tooltip layer also raises it above everything its own body opens —\n // MUI portals menus and tooltips to `document.body`, so a Download\n // menu (`zIndex.modal`, 1300) or a Tooltip (1500) ends up painted\n // under a dialog at 1501 and its items can't be clicked. At the\n // default modal layer the menu portals after the dialog and wins on\n // DOM order, and the tooltip wins on z-index.\n //\n // This used to sit at `tooltip + 1` to cover a Toolbox popper left\n // open when fullscreen opened. That's the Toolbox's own job and it\n // already does it: `visibleCount` flips to `undefined` in fullscreen,\n // overflow disappears and the popper unmounts. A consumer who keeps a\n // numeric `visibleCount` in fullscreen keeps its popper above the\n // dialog — which is the correct layer for a popover opened from\n // inside it anyway.\n >\n <DialogTitle id={titleId} component='div' sx={styles.dialogTitle}>\n <Typography\n variant='subtitle1'\n component='span'\n sx={styles.titleText}\n >\n {title}\n </Typography>\n <Box sx={styles.dialogActions}>\n {actions}\n <Tooltip title={_labels.close}>\n <IconButton\n size='small'\n aria-label={_labels.close}\n onClick={handleClose}\n >\n <CloseSvg fontSize='small' {...iconProps} />\n </IconButton>\n </Tooltip>\n </Box>\n </DialogTitle>\n <DialogContent ref={setDialogEl} sx={styles.dialogContent} />\n </Dialog>\n </>","LockSvg = LockIcon","UnlockSvg = LockOpenIcon","{\n selection,\n lockedItems,\n onLockChange,\n labels,\n lockIcon: LockSvg = LockIcon,\n unlockIcon: UnlockSvg = LockOpenIcon,\n iconProps,\n filterFn = filterByLockedItems,\n filterKey,\n}: LockSelectionProps<K>","filterFn = filterByLockedItems","{ ...DEFAULT_LOCK_SELECTION_LABELS, ...labels }","{\n initialEnabled: isLocked,\n }","() => {\n if (enabled !== isLocked) setEnabled(isLocked)\n }","[enabled, isLocked, setEnabled]","() => {\n if (isLocked) {\n onLockChange([])\n } else {\n onLockChange([...selection])\n }\n }","useCallback(() => {\n if (isLocked) {\n onLockChange([])\n } else {\n onLockChange([...selection])\n }\n }, [isLocked, onLockChange, selection])","{ ...styles.toggle, ...(isLocked && styles.toggleActive) }","isLocked && styles.toggleActive","<Icon fontSize='small' {...iconProps} />","<span>\n <IconButton\n size='small'\n aria-label={tooltip}\n aria-pressed={isLocked}\n disabled={!canToggle}\n onClick={handleToggle}\n sx={{ ...styles.toggle, ...(isLocked && styles.toggleActive) }}\n >\n <Icon fontSize='small' {...iconProps} />\n </IconButton>\n </span>","!canToggle","<Tooltip title={tooltip}>\n <span>\n <IconButton\n size='small'\n aria-label={tooltip}\n aria-pressed={isLocked}\n disabled={!canToggle}\n onClick={handleToggle}\n sx={{ ...styles.toggle, ...(isLocked && styles.toggleActive) }}\n >\n <Icon fontSize='small' {...iconProps} />\n </IconButton>\n </span>\n </Tooltip>","() => {\n filterFnRef.current = filterFn\n }","(data: unknown) => filterFnRef.current(data, lockedItems, filterKey)","useCallback(\n (data: unknown) => filterFnRef.current(data, lockedItems, filterKey),\n [lockedItems, filterKey],\n )","[{ descriptor: LOCK_SELECTION_DESCRIPTOR, fn }]","useMemo(() => [{ descriptor: LOCK_SELECTION_DESCRIPTOR, fn }], [fn])","<path\n fill='currentColor'\n fillRule='evenodd'\n d='M14.25 2.25H3.75c-.825 0-1.5.675-1.5 1.5v10.5c0 .825.675 1.5 1.5 1.5h10.5c.825 0 1.5-.675 1.5-1.5V3.75c0-.825-.675-1.5-1.5-1.5m-3.75 12h-3V3.75h3zM3.75 3.75H6v10.5H3.75zM12 14.25V3.75h2.25v10.5z'\n clipRule='evenodd'\n />","<SvgIcon viewBox='0 0 18 18' {...props}>\n <path\n fill='currentColor'\n fillRule='evenodd'\n d='M14.25 2.25H3.75c-.825 0-1.5.675-1.5 1.5v10.5c0 .825.675 1.5 1.5 1.5h10.5c.825 0 1.5-.675 1.5-1.5V3.75c0-.825-.675-1.5-1.5-1.5m-3.75 12h-3V3.75h3zM3.75 3.75H6v10.5H3.75zM12 14.25V3.75h2.25v10.5z'\n clipRule='evenodd'\n />\n </SvgIcon>","HandleIcon = DragIndicatorIcon","{\n id,\n label,\n dragHandleIcon: HandleIcon = DragIndicatorIcon,\n}: SortableColumnItemProps","{ id }","CSS.Transform.toString(\n transform ? { ...transform, x: 0 } : null,\n )","{\n transform: CSS.Transform.toString(\n transform ? { ...transform, x: 0 } : null,\n ),\n transition,\n }","{ ...styles.item, ...(isDragging && styles.itemDragging) }","isDragging && styles.itemDragging","{\n ...styles.dragHandle,\n ...(isDragging && styles.dragHandleVisible),\n }","isDragging && styles.dragHandleVisible","<HandleIcon\n className='change-column-drag-handle'\n sx={{\n ...styles.dragHandle,\n ...(isDragging && styles.dragHandleVisible),\n }}\n />","<ListItemText>{label}</ListItemText>","<MenuItem\n ref={setNodeRef}\n style={transformStyle}\n {...attributes}\n {...listeners}\n disableGutters\n role='menuitem'\n tabIndex={0}\n sx={{ ...styles.item, ...(isDragging && styles.itemDragging) }}\n >\n <HandleIcon\n className='change-column-drag-handle'\n sx={{\n ...styles.dragHandle,\n ...(isDragging && styles.dragHandleVisible),\n }}\n />\n <ListItemText>{label}</ListItemText>\n </MenuItem>","Icon = ChangeColumnIcon","{\n columns,\n labels,\n icon: Icon = ChangeColumnIcon,\n iconProps,\n dragHandleIcon,\n}: ChangeColumnProps","{ ...DEFAULT_CHANGE_COLUMN_LABELS, ...labels }","(s) => s.columnOrder","useMemo(() => {\n const masterIds = columns.map((c) => c.id)\n if (!columnOrder || columnOrder.length === 0) return masterIds\n // Set lookup so membership tests stay O(1) regardless of column count.\n const masterIdSet = new Set(masterIds)\n const seen = new Set<string>()\n const out: string[] = []\n for (const cid of columnOrder) {\n if (masterIdSet.has(cid) && !seen.has(cid)) {\n out.push(cid)\n seen.add(cid)\n }\n }\n for (const cid of masterIds) {\n if (!seen.has(cid)) out.push(cid)\n }\n return out\n }, [columnOrder, columns])","(c) => c.id","cid","new Map(columns.map((c) => [c.id, c]))","(c) => [c.id, c]","out","c","useMemo(() => {\n const byId = new Map(columns.map((c) => [c.id, c]))\n // Single pass instead of map().filter() — skips unknown ids inline.\n const out: ChangeColumnItem[] = []\n for (const cid of orderedIds) {\n const c = byId.get(cid)\n if (c != null) out.push(c)\n }\n return out\n }, [orderedIds, columns])","{\n coordinateGetter: sortableKeyboardCoordinates,\n }","(e: React.MouseEvent<HTMLElement>) => {\n e.stopPropagation()\n setAnchorEl(e.currentTarget)\n }","useCallback((e: React.MouseEvent<HTMLElement>) => {\n e.stopPropagation()\n setAnchorEl(e.currentTarget)\n }, [])","() => setAnchorEl(null)","useCallback(() => setAnchorEl(null), [])","(event: DragEndEvent) => {\n const { active, over } = event\n if (!over || active.id === over.id) return\n const oldIndex = orderedIds.indexOf(String(active.id))\n const newIndex = orderedIds.indexOf(String(over.id))\n if (oldIndex === -1 || newIndex === -1) return\n const next = arrayMove([...orderedIds], oldIndex, newIndex)\n getWidgetStore(id).setState({\n columnOrder: next,\n } as Partial<ChangeColumnWidgetState>)\n }","useCallback(\n (event: DragEndEvent) => {\n const { active, over } = event\n if (!over || active.id === over.id) return\n const oldIndex = orderedIds.indexOf(String(active.id))\n const newIndex = orderedIds.indexOf(String(over.id))\n if (oldIndex === -1 || newIndex === -1) return\n const next = arrayMove([...orderedIds], oldIndex, newIndex)\n getWidgetStore(id).setState({\n columnOrder: next,\n } as Partial<ChangeColumnWidgetState>)\n },\n [id, orderedIds],\n )","{ ...styles.toggle, ...(isOpen && styles.toggleActive) }","isOpen && styles.toggleActive","<Icon fontSize='small' {...iconProps} />","<IconButton\n size='small'\n aria-label={_labels.trigger}\n aria-pressed={isOpen}\n aria-haspopup='true'\n aria-controls={isOpen ? 'change-column-menu' : undefined}\n aria-expanded={isOpen ? 'true' : undefined}\n onClick={handleOpen}\n className={isOpen ? 'active' : undefined}\n sx={{ ...styles.toggle, ...(isOpen && styles.toggleActive) }}\n >\n <Icon fontSize='small' {...iconProps} />\n </IconButton>","trigger","isOpen ? 'true' : undefined","isOpen ? 'active' : undefined","isOpen ? 'change-column-menu' : undefined","<Tooltip title={_labels.trigger}>\n <IconButton\n size='small'\n aria-label={_labels.trigger}\n aria-pressed={isOpen}\n aria-haspopup='true'\n aria-controls={isOpen ? 'change-column-menu' : undefined}\n aria-expanded={isOpen ? 'true' : undefined}\n onClick={handleOpen}\n className={isOpen ? 'active' : undefined}\n sx={{ ...styles.toggle, ...(isOpen && styles.toggleActive) }}\n >\n <Icon fontSize='small' {...iconProps} />\n </IconButton>\n </Tooltip>","{ vertical: 'bottom', horizontal: 'right' }","{ vertical: 'top', horizontal: 'right' }","{ paper: { sx: styles.menuPaper } }","<ListSubheader disableSticky role='presentation' sx={styles.header}>\n {_labels.title}\n </ListSubheader>","title","orderedColumns.map((column) => (\n <SortableColumnItem\n key={column.id}\n id={column.id}\n label={column.label}\n dragHandleIcon={dragHandleIcon}\n />\n ))","<SortableContext\n items={orderedIds}\n strategy={verticalListSortingStrategy}\n >\n {orderedColumns.map((column) => (\n <SortableColumnItem\n key={column.id}\n id={column.id}\n label={column.label}\n dragHandleIcon={dragHandleIcon}\n />\n ))}\n </SortableContext>","<Menu\n id='change-column-menu'\n anchorEl={anchorEl}\n open={isOpen}\n onClose={handleClose}\n anchorOrigin={{ vertical: 'bottom', horizontal: 'right' }}\n transformOrigin={{ vertical: 'top', horizontal: 'right' }}\n slotProps={{ paper: { sx: styles.menuPaper } }}\n >\n <ListSubheader disableSticky role='presentation' sx={styles.header}>\n {_labels.title}\n </ListSubheader>\n <SortableContext\n items={orderedIds}\n strategy={verticalListSortingStrategy}\n >\n {orderedColumns.map((column) => (\n <SortableColumnItem\n key={column.id}\n id={column.id}\n label={column.label}\n dragHandleIcon={dragHandleIcon}\n />\n ))}\n </SortableContext>\n </Menu>","<DndContext\n sensors={sensors}\n collisionDetection={closestCenter}\n onDragEnd={handleDragEnd}\n autoScroll={false}\n >\n <Menu\n id='change-column-menu'\n anchorEl={anchorEl}\n open={isOpen}\n onClose={handleClose}\n anchorOrigin={{ vertical: 'bottom', horizontal: 'right' }}\n transformOrigin={{ vertical: 'top', horizontal: 'right' }}\n slotProps={{ paper: { sx: styles.menuPaper } }}\n >\n <ListSubheader disableSticky role='presentation' sx={styles.header}>\n {_labels.title}\n </ListSubheader>\n <SortableContext\n items={orderedIds}\n strategy={verticalListSortingStrategy}\n >\n {orderedColumns.map((column) => (\n <SortableColumnItem\n key={column.id}\n id={column.id}\n label={column.label}\n dragHandleIcon={dragHandleIcon}\n />\n ))}\n </SortableContext>\n </Menu>\n </DndContext>","<>\n <Tooltip title={_labels.trigger}>\n <IconButton\n size='small'\n aria-label={_labels.trigger}\n aria-pressed={isOpen}\n aria-haspopup='true'\n aria-controls={isOpen ? 'change-column-menu' : undefined}\n aria-expanded={isOpen ? 'true' : undefined}\n onClick={handleOpen}\n className={isOpen ? 'active' : undefined}\n sx={{ ...styles.toggle, ...(isOpen && styles.toggleActive) }}\n >\n <Icon fontSize='small' {...iconProps} />\n </IconButton>\n </Tooltip>\n <DndContext\n sensors={sensors}\n collisionDetection={closestCenter}\n onDragEnd={handleDragEnd}\n autoScroll={false}\n >\n <Menu\n id='change-column-menu'\n anchorEl={anchorEl}\n open={isOpen}\n onClose={handleClose}\n anchorOrigin={{ vertical: 'bottom', horizontal: 'right' }}\n transformOrigin={{ vertical: 'top', horizontal: 'right' }}\n slotProps={{ paper: { sx: styles.menuPaper } }}\n >\n <ListSubheader disableSticky role='presentation' sx={styles.header}>\n {_labels.title}\n </ListSubheader>\n <SortableContext\n items={orderedIds}\n strategy={verticalListSortingStrategy}\n >\n {orderedColumns.map((column) => (\n <SortableColumnItem\n key={column.id}\n id={column.id}\n label={column.label}\n dragHandleIcon={dragHandleIcon}\n />\n ))}\n </SortableContext>\n </Menu>\n </DndContext>\n </>"],"sources":["../src/widgets/actions/searcher/filter.ts","../src/widgets/actions/searcher/labels.ts","../src/widgets/actions/searcher/style.ts","../src/widgets/actions/searcher/searcher-toggle.tsx","../src/widgets/actions/searcher/searcher.tsx","../src/widgets/actions/stack-toggle/transforms.ts","../src/widgets/actions/stack-toggle/labels.ts","../src/widgets/actions/stack-toggle/style.ts","../src/widgets/actions/stack-toggle/stack-toggle.tsx","../src/widgets/actions/show-all/labels.ts","../src/widgets/actions/show-all/style.ts","../src/widgets/actions/show-all/show-all.tsx","../src/widgets/actions/brush-toggle/transforms.ts","../src/widgets/actions/brush-toggle/labels.ts","../src/widgets/actions/brush-toggle/style.ts","../src/widgets/actions/brush-toggle/brush-toggle.tsx","../src/widgets/actions/relative-data/transforms.ts","../src/widgets/actions/relative-data/labels.ts","../src/widgets/actions/relative-data/style.ts","../src/widgets/actions/relative-data/relative-data.tsx","../src/widgets/actions/fullscreen/labels.ts","../src/widgets/actions/fullscreen/style.ts","../src/widgets/actions/fullscreen/fullscreen.tsx","../src/widgets/actions/lock-selection/transforms.ts","../src/widgets/actions/lock-selection/labels.ts","../src/widgets/actions/lock-selection/style.ts","../src/widgets/actions/lock-selection/lock-selection.tsx","../src/widgets/actions/change-column/change-column-icon.tsx","../src/widgets/actions/change-column/labels.ts","../src/widgets/actions/change-column/style.ts","../src/widgets/actions/change-column/sortable-column-item.tsx","../src/widgets/actions/change-column/change-column.tsx"],"sourcesContent":["/**\n * Filters a 2D series of `{name, ...}` records by case-insensitive substring on\n * the `name` field. Keeps the dataset shape (one inner array per series).\n * Used by the Searcher action's data transform.\n */\nexport function filterBySearchText(input: unknown, search: string): unknown {\n if (!search) return input\n const needle = search.toLowerCase()\n if (!Array.isArray(input)) return input\n return input.map((series: unknown): unknown => {\n if (!Array.isArray(series)) return series\n return series.filter((item: unknown) => {\n if (item == null) return false\n if (typeof item === 'object' && 'name' in item) {\n const rawName = (item as { name: unknown }).name\n const name = rawName == null ? '' : stringifyPrimitive(rawName)\n return name.toLowerCase().includes(needle)\n }\n return stringifyPrimitive(item).toLowerCase().includes(needle)\n })\n })\n}\n\nfunction stringifyPrimitive(v: unknown): string {\n if (typeof v === 'string') return v\n if (typeof v === 'number' || typeof v === 'boolean') return String(v)\n return ''\n}\n","export interface SearcherLabels {\n toggle: string\n placeholder: string\n clearAriaLabel: string\n noResults: string\n}\n\nexport const DEFAULT_SEARCHER_LABELS: SearcherLabels = {\n toggle: 'Search',\n placeholder: 'Search…',\n clearAriaLabel: 'Clear search',\n noResults: 'No matches.',\n}\n","import type { SxProps, Theme } from '@mui/material'\n\nexport const styles = {\n toggle: {\n p: 0.5,\n '& .MuiSvgIcon-root': { fontSize: 20 },\n },\n toggleActive: {\n background: (theme: Theme) => theme.palette.primary.relatedLight,\n },\n input: {\n width: '100%',\n mb: 1,\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { useCallback, type ComponentType } from 'react'\nimport { IconButton, type SvgIconProps } from '@mui/material'\nimport { Search as SearchIcon } from '@mui/icons-material'\nimport { Tooltip } from '../../../components'\nimport {\n getWidgetStore,\n useSingleTransform,\n useWidget,\n useWidgetId,\n} from '../../stores'\nimport { filterBySearchText } from './filter'\nimport { DEFAULT_SEARCHER_LABELS, type SearcherLabels } from './labels'\nimport { styles } from './style'\n\nconst SEARCHER_DESCRIPTOR = {\n id: 'searcher',\n type: 'data' as const,\n order: 20,\n disables: ['lock-selection'],\n}\n\nexport interface SearcherToggleProps {\n labels?: Partial<SearcherLabels>\n icon?: ComponentType<SvgIconProps>\n iconProps?: SvgIconProps\n /**\n * Whether the searcher transform is enabled on first mount. Defaults\n * to `false` so the toggle renders un-pressed and the\n * `filterBySearchText` transform stays dormant until the user clicks\n * it. Set to `true` for search-first widgets where the input is the\n * primary affordance.\n */\n initialEnabled?: boolean\n}\n\nexport function SearcherToggle({\n labels,\n icon: Icon = SearchIcon,\n iconProps,\n initialEnabled = false,\n}: SearcherToggleProps) {\n const id = useWidgetId()\n const resolved = { ...DEFAULT_SEARCHER_LABELS, ...labels }\n const text = useWidget(\n id,\n (s) => (s.transformStates.searcher?.searchText as string | undefined) ?? '',\n )\n\n // The transform fn closes over `text`. Memoize via useCallback so identity\n // only changes when text changes, allowing useTransform to re-register.\n const fn = useCallback(\n (data: unknown) => filterBySearchText(data, text),\n [text],\n )\n\n const { enabled, toggle } = useSingleTransform(id, SEARCHER_DESCRIPTOR, fn, {\n initialEnabled,\n })\n\n return (\n <Tooltip title={resolved.toggle}>\n <IconButton\n size='small'\n aria-label={resolved.toggle}\n aria-pressed={enabled}\n onClick={toggle}\n sx={{ ...styles.toggle, ...(enabled && styles.toggleActive) }}\n >\n <Icon fontSize='small' {...iconProps} />\n </IconButton>\n </Tooltip>\n )\n}\n\n/**\n * Imperatively writes the search text into the widget store. Used by the\n * Searcher input to update text inside transformStates without going through\n * a re-rendered React subscription.\n */\nexport function setSearcherText(widgetId: string, value: string): void {\n getWidgetStore(widgetId).setState((s) => ({\n transformStates: {\n ...s.transformStates,\n searcher: {\n enabled: s.transformStates.searcher?.enabled ?? false,\n ...s.transformStates.searcher,\n searchText: value,\n },\n },\n }))\n}\n","import { useCallback, useMemo, useRef, useState } from 'react'\nimport { IconButton, InputAdornment, TextField } from '@mui/material'\nimport { Search as SearchIcon } from '@mui/icons-material'\nimport { Clear as ClearIcon } from '@mui/icons-material'\nimport { debounce } from '@carto/ps-utils'\nimport { getWidgetStore, useWidget, useWidgetId } from '../../stores'\nimport { setSearcherText } from './searcher-toggle'\nimport { DEFAULT_SEARCHER_LABELS, type SearcherLabels } from './labels'\nimport { styles } from './style'\n\nexport interface SearcherProps {\n labels?: Partial<SearcherLabels>\n /** Debounce delay before the input value is written to the widget store. */\n debounceMs?: number\n}\n\nconst DEFAULT_DEBOUNCE = 300\n\n/**\n * Renders only when the matching `<SearcherToggle />` is enabled — drives the\n * `transformStates['searcher'].searchText` field via a debounced setter.\n */\nexport function Searcher({\n labels,\n debounceMs = DEFAULT_DEBOUNCE,\n}: SearcherProps) {\n const id = useWidgetId()\n const resolved = { ...DEFAULT_SEARCHER_LABELS, ...labels }\n const enabled = useWidget(\n id,\n (s) => s.transformStates.searcher?.enabled ?? false,\n )\n\n const inputRef = useRef<HTMLInputElement | null>(null)\n\n // Hydrate from the store so re-toggling the input preserves any prior text.\n const [local, setLocal] = useState<string>(\n () =>\n (getWidgetStore(id).getState().transformStates.searcher?.searchText as\n string | undefined) ?? '',\n )\n\n const debouncedWrite = useMemo(\n () =>\n debounce(\n (value: unknown) => setSearcherText(id, value as string),\n debounceMs,\n ),\n [id, debounceMs],\n )\n\n const handleSearchTextChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const value = e.target.value\n setLocal(value)\n debouncedWrite(value)\n },\n [debouncedWrite],\n )\n\n const handleClear = useCallback(() => {\n setLocal('')\n setSearcherText(id, '')\n // Re-arm the debounced timer with '' so any pending stale write resolves\n // to the cleared value rather than re-applying the previous text.\n debouncedWrite('')\n inputRef.current?.focus()\n }, [id, debouncedWrite])\n\n if (!enabled) return null\n\n return (\n <TextField\n inputRef={inputRef}\n size='small'\n fullWidth\n variant='filled'\n placeholder={resolved.placeholder}\n value={local}\n onChange={handleSearchTextChange}\n // The Searcher only mounts when the user explicitly toggles the\n // SearcherToggle action — focusing the input on mount matches user\n // intent, so the jsx-a11y/no-autofocus warning is the false-positive\n // case (the rule targets unsolicited autofocus that disorients\n // screen readers).\n // eslint-disable-next-line\n autoFocus\n aria-label={resolved.placeholder}\n sx={styles.input}\n slotProps={{\n input: {\n startAdornment: (\n <InputAdornment position='start'>\n <SearchIcon fontSize='small' />\n </InputAdornment>\n ),\n endAdornment: local ? (\n <InputAdornment position='end'>\n <IconButton\n size='small'\n edge='end'\n aria-label={resolved.clearAriaLabel}\n onClick={handleClear}\n >\n <ClearIcon fontSize='small' />\n </IconButton>\n </InputAdornment>\n ) : null,\n },\n }}\n />\n )\n}\n","/**\n * Stack-mode config transform: marks every series with `stack: 'total'` so\n * ECharts stacks them vertically (bar) or by value (line). Module-level\n * constant so identity is stable across renders — no `useCallback` needed.\n *\n * Widgets that bake series into options at build time get marked in place.\n * Widgets that build series at data-fusion time (`bar`, `histogram`,\n * `timeseries`) have no `series` array yet at config-transform time, so we\n * also emit a single-entry **broadcast template** (`[{ stack: 'total' }]`).\n * Their option factories merge that template into every series they emit\n * at fusion time, so the `stack` mark survives end-to-end.\n */\nexport const addStack = (option: unknown): unknown => {\n if (option == null || typeof option !== 'object') return option\n const cfg = option as Record<string, unknown>\n const existing = Array.isArray(cfg.series) ? cfg.series : []\n const series =\n existing.length === 0\n ? [{ stack: 'total' }]\n : existing.map((s: unknown): unknown => {\n if (s == null || typeof s !== 'object') return s\n return { ...s, stack: 'total' }\n })\n return { ...cfg, series }\n}\n","export interface StackToggleLabels {\n on: string\n off: string\n}\n\nexport const DEFAULT_STACK_TOGGLE_LABELS: StackToggleLabels = {\n on: 'Unstack series',\n off: 'Stack series',\n}\n","import type { SxProps, Theme } from '@mui/material'\n\nexport const styles = {\n toggle: {\n p: 0.5,\n '& .MuiSvgIcon-root': { fontSize: 20 },\n },\n toggleActive: {\n background: (theme: Theme) => theme.palette.primary.relatedLight,\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { type ComponentType } from 'react'\nimport { IconButton, type SvgIconProps } from '@mui/material'\nimport { StackedBarChart as StackedBarChartIcon } from '@mui/icons-material'\nimport { Tooltip } from '../../../components'\nimport { useSingleTransform, useWidgetId } from '../../stores'\nimport { addStack } from './transforms'\nimport { DEFAULT_STACK_TOGGLE_LABELS, type StackToggleLabels } from './labels'\nimport { styles } from './style'\n\nconst STACK_DESCRIPTOR = {\n id: 'stack-toggle',\n type: 'config' as const,\n order: 30,\n}\n\nexport interface StackToggleProps {\n initialEnabled?: boolean\n labels?: Partial<StackToggleLabels>\n icon?: ComponentType<SvgIconProps>\n iconProps?: SvgIconProps\n}\n\nexport function StackToggle({\n initialEnabled = false,\n labels,\n icon: Icon = StackedBarChartIcon,\n iconProps,\n}: StackToggleProps) {\n const id = useWidgetId()\n const _labels = { ...DEFAULT_STACK_TOGGLE_LABELS, ...labels }\n const { enabled, toggle } = useSingleTransform(\n id,\n STACK_DESCRIPTOR,\n addStack,\n {\n initialEnabled,\n },\n )\n const tooltip = enabled ? _labels.on : _labels.off\n\n return (\n <Tooltip title={tooltip}>\n <IconButton\n size='small'\n aria-label={tooltip}\n aria-pressed={enabled}\n onClick={toggle}\n sx={{ ...styles.toggle, ...(enabled && styles.toggleActive) }}\n >\n <Icon fontSize='small' {...iconProps} />\n </IconButton>\n </Tooltip>\n )\n}\n","export interface ShowAllLabels {\n /** Tooltip + aria-label for the collapse (✕) button shown while expanded. */\n toggle: string\n}\n\nexport const DEFAULT_SHOW_ALL_LABELS: ShowAllLabels = {\n toggle: 'Show less',\n}\n","import type { SxProps, Theme } from '@mui/material'\n\nexport const styles = {\n toggle: {\n p: 0.5,\n '& .MuiSvgIcon-root': { fontSize: 20 },\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { type ComponentType } from 'react'\nimport { IconButton, type SvgIconProps } from '@mui/material'\nimport { Close as CloseIcon } from '@mui/icons-material'\nimport { Tooltip } from '../../../components'\nimport { getWidgetStore, useWidgetId } from '../../stores'\nimport { DEFAULT_SHOW_ALL_LABELS, type ShowAllLabels } from './labels'\nimport { styles } from './style'\n\n/**\n * The `show-all` flag is a pure UI signal (no data/config transform): the\n * Category overflow row writes it `true` via {@link setShowAll}, the\n * composer reads it with `useTransformEnabled(id, SHOW_ALL_ID)` to drop the\n * row cap, and this button writes it back `false` to collapse. Stored under\n * `transformStates` so `useTransformEnabled` can observe it like any other\n * action flag — but it never registers a pipeline transform, so toggling it\n * never re-runs the data pipeline.\n */\nexport const SHOW_ALL_ID = 'show-all'\n\nexport interface ShowAllToggleProps {\n labels?: Partial<ShowAllLabels>\n icon?: ComponentType<SvgIconProps>\n iconProps?: SvgIconProps\n}\n\n/**\n * Collapse (✕) affordance shown while a widget is expanded into its\n * \"show all\" state. Clicking it clears the `show-all` flag, returning the\n * widget to its capped view. Mount it conditionally (only while the flag is\n * set) so it doesn't occupy a `Widget.Toolbox` visibility-budget slot when\n * the widget is collapsed.\n */\nexport function ShowAllToggle({\n labels,\n icon: Icon = CloseIcon,\n iconProps,\n}: ShowAllToggleProps) {\n const id = useWidgetId()\n const _labels = { ...DEFAULT_SHOW_ALL_LABELS, ...labels }\n\n return (\n <Tooltip title={_labels.toggle}>\n <IconButton\n size='small'\n aria-label={_labels.toggle}\n aria-pressed\n onClick={() => setShowAll(id, false)}\n sx={styles.toggle}\n >\n <Icon fontSize='small' {...iconProps} />\n </IconButton>\n </Tooltip>\n )\n}\n\n/**\n * Imperatively writes the `show-all` flag into the widget store. Mirrors\n * {@link setSearcherText} — used by the Category overflow row (to expand)\n * and the {@link ShowAllToggle} button (to collapse) without routing through\n * a re-rendered subscription.\n */\nexport function setShowAll(widgetId: string, value: boolean): void {\n getWidgetStore(widgetId).setState((s) => ({\n transformStates: {\n ...s.transformStates,\n [SHOW_ALL_ID]: {\n ...s.transformStates[SHOW_ALL_ID],\n enabled: value,\n },\n },\n }))\n}\n","/**\n * Brush config transform: enables ECharts' brush component on the option\n * object. Module-level constant — identity stable across renders.\n *\n * Pairs with `replaceMergeKeys: ['brush']` so the pipeline replaces (not\n * merges) the brush config on every config-pipeline run. v1 needed a\n * mousemove re-dispatch hack to keep the brush state across data updates;\n * v2 keeps brush state continuous via `notMerge: false` + dynamic\n * replaceMerge in the EchartUI layer (D6) — no hack required.\n */\nexport const addBrush = (option: unknown): unknown => {\n if (option == null || typeof option !== 'object') return option\n const cfg = option as Record<string, unknown>\n return {\n ...cfg,\n brush: {\n toolbox: ['rect', 'clear'],\n xAxisIndex: 'all',\n brushLink: 'all',\n outOfBrush: { colorAlpha: 0.15 },\n },\n toolbox: {\n ...((cfg.toolbox as object | undefined) ?? {}),\n show: false,\n feature: {\n ...((cfg.toolbox as { feature?: object } | undefined)?.feature ?? {}),\n brush: { type: ['rect', 'clear'] },\n },\n },\n }\n}\n","export interface BrushToggleLabels {\n on: string\n off: string\n}\n\nexport const DEFAULT_BRUSH_TOGGLE_LABELS: BrushToggleLabels = {\n on: 'Disable brush selection',\n off: 'Enable brush selection',\n}\n","import type { SxProps, Theme } from '@mui/material'\n\nexport const styles = {\n toggle: {\n p: 0.5,\n '& .MuiSvgIcon-root': { fontSize: 20 },\n },\n toggleActive: {\n background: (theme: Theme) => theme.palette.primary.relatedLight,\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { useEffect, type ComponentType } from 'react'\nimport { IconButton, type SvgIconProps } from '@mui/material'\nimport { HighlightAlt as HighlightAltIcon } from '@mui/icons-material'\nimport { Tooltip } from '../../../components'\nimport {\n useEchartInstance,\n useSingleTransform,\n useWidgetId,\n} from '../../stores'\nimport { addBrush } from './transforms'\nimport { DEFAULT_BRUSH_TOGGLE_LABELS, type BrushToggleLabels } from './labels'\nimport { styles } from './style'\n\nconst BRUSH_DESCRIPTOR = {\n id: 'brush-toggle',\n type: 'config' as const,\n order: 25,\n}\n\nexport interface BrushToggleProps {\n initialEnabled?: boolean\n /**\n * ECharts brush type. `'lineX'` (default) selects a range on the\n * x-axis — appropriate for bar / histogram / timeseries. `'rect'`\n * selects a 2-D rectangle — use for scatterplot. Other ECharts\n * brush types (`'lineY'`, `'polygon'`) are also accepted.\n */\n brushType?: 'lineX' | 'lineY' | 'rect' | 'polygon'\n /**\n * `'multiple'` (default) lets the user draw additional brushes on\n * top of existing ones. `'single'` replaces the previous brush on\n * each new draw.\n */\n brushMode?: 'multiple' | 'single'\n /**\n * Optional view of the consumer-owned selection. When provided and\n * the array is empty (`[]`), any brush rectangles currently drawn on\n * the chart are wiped — keeps the UI in sync when the parent clears\n * the selection externally (e.g. via `Widget.SelectionSummary`'s\n * `onClear`). Pass the same array that drives `useChartSelection` /\n * the option factory's `selection` input.\n *\n * Leave `undefined` to opt out — the sync effect becomes a no-op.\n */\n selection?: readonly unknown[] | null\n labels?: Partial<BrushToggleLabels>\n icon?: ComponentType<SvgIconProps>\n iconProps?: SvgIconProps\n}\n\n/**\n * Toggle ECharts' brush selection mode. Two-part wiring:\n *\n * 1. The config transform (`addBrush`) installs the `brush`\n * component on the option so brushed items get the\n * `outOfBrush` dim treatment.\n * 2. ECharts only enters \"brush cursor\" mode when something\n * dispatches `takeGlobalCursor({ key: 'brush', ... })`. This\n * component drives that dispatch via {@link useEchartInstance},\n * reacting when the chart instance becomes available (the\n * `BrushToggle` mounts before `Widget.Echart` in tree order, so\n * on first mount the chart isn't ready yet).\n *\n * 3. ECharts clears the global cursor on every `setOption`, so we\n * re-dispatch on each `'finished'` event — required for\n * `brushMode: 'multiple'` to keep working across selection-driven\n * re-renders, RelativeData toggles, etc.\n *\n * Selection events (`brushSelected` / `brushEnd`) flow through the\n * existing `useChartSelection` wiring at the consumer level — no extra\n * plumbing here.\n */\nexport function BrushToggle({\n initialEnabled = false,\n brushType = 'lineX',\n brushMode = 'multiple',\n selection,\n labels,\n icon: Icon = HighlightAltIcon,\n iconProps,\n}: BrushToggleProps) {\n const id = useWidgetId()\n const _labels = { ...DEFAULT_BRUSH_TOGGLE_LABELS, ...labels }\n const { enabled, toggle } = useSingleTransform(\n id,\n BRUSH_DESCRIPTOR,\n addBrush,\n { initialEnabled },\n )\n\n // Reactive read of the live instance — the effect below re-runs when\n // the chart arrives, departs, or re-inits, instead of polling.\n const chart = useEchartInstance(id)\n\n useEffect(() => {\n if (!chart) return undefined\n if (!enabled) {\n // Disabled: exit brush cursor and wipe any drawn rectangles.\n chart.dispatchAction({ type: 'takeGlobalCursor' })\n chart.dispatchAction({ type: 'brush', areas: [] })\n return undefined\n }\n\n const enterBrush = (): void => {\n chart.dispatchAction({\n type: 'takeGlobalCursor',\n key: 'brush',\n brushOption: { brushType, brushMode },\n })\n }\n\n // Every `setOption` clears the global cursor. Re-dispatch after\n // each chart render so `brushMode: 'multiple'` stays usable across\n // selection-driven re-renders, RelativeData toggles, etc.\n const onFinished = (): void => enterBrush()\n chart.on('finished', onFinished)\n enterBrush()\n\n return () => {\n chart.off('finished', onFinished)\n }\n }, [chart, enabled, brushType, brushMode])\n\n // Sync the drawn rectangles with the external selection. When the\n // parent flips `selection` to `[]` (e.g. SelectionSummary's \"Clear\"\n // button), wipe the brush areas so the chart UI matches the data.\n // Dispatching with an empty `areas` array when nothing is drawn is a\n // safe no-op on ECharts, so no extra \"previous value\" bookkeeping is\n // needed. Kept as a separate effect so a parent selection change\n // doesn't tear down / re-attach the `'finished'` listener above.\n useEffect(() => {\n if (!chart || !enabled) return\n if (selection?.length === 0) {\n chart.dispatchAction({ type: 'brush', areas: [] })\n }\n }, [chart, enabled, selection])\n\n const tooltip = enabled ? _labels.on : _labels.off\n\n return (\n <Tooltip title={tooltip}>\n <IconButton\n size='small'\n aria-label={tooltip}\n aria-pressed={enabled}\n onClick={toggle}\n className={enabled ? 'active' : undefined}\n sx={{ ...styles.toggle, ...(enabled && styles.toggleActive) }}\n >\n <Icon fontSize='small' {...iconProps} />\n </IconButton>\n </Tooltip>\n )\n}\n","/**\n * Default data-side transform for `RelativeData`: rewrite each\n * `{ name, value }` datum's `value` to its share of the series total\n * expressed as 0–100 (matches v1's range). The companion percent\n * formatter divides by 100 so it can call `Intl.NumberFormat` with\n * `style: 'percent'`.\n *\n * Used by widgets whose series are arrays of `{ name, value }`\n * objects — bar, pie, timeseries, category. Widgets with a different\n * data shape pass their own transform via\n * `<RelativeData transform={...} />`; see `widgets/histogram` and\n * `widgets/scatterplot` for in-tree examples.\n *\n * The denominator is the sum of |value| across the series so mixed-sign\n * series (e.g. cashflow with inflows + outflows) produce sane signed\n * shares-of-magnitude. A series whose total magnitude is zero (all-zero\n * or empty input) is returned unchanged so a stalled or empty data set\n * doesn't show misleading 0% values. Series whose shape doesn't match\n * the named-value pattern fall through untouched.\n */\n\ninterface NamedValue {\n name: unknown\n value: number\n [k: string]: unknown\n}\n\nfunction isNamedValueArray(v: unknown): v is NamedValue[] {\n if (!Array.isArray(v)) return false\n return v.every(\n (item) =>\n item != null &&\n typeof item === 'object' &&\n 'value' in item &&\n typeof (item as { value: unknown }).value === 'number',\n )\n}\n\nexport const toRelativeData = (input: unknown): unknown => {\n if (!Array.isArray(input)) return input\n return input.map((series: unknown): unknown => {\n if (!isNamedValueArray(series)) return series\n const total = series.reduce((acc, d) => acc + Math.abs(d.value), 0)\n if (total <= 0) return series\n return series.map((d) => ({ ...d, value: (d.value / total) * 100 }))\n })\n}\n\n/**\n * Build a percent formatter using `Intl.NumberFormat`. The returned function\n * expects values in the 0–100 range (output of {@link toRelativeData}) and\n * divides by 100 internally before calling `style: 'percent'`.\n *\n * Locale: passed straight to `Intl.NumberFormat`. Falls back to the runtime\n * default when omitted.\n */\nexport function createPercentFormatter(\n locale?: string,\n): (value: number) => string {\n const fmt = new Intl.NumberFormat(locale, {\n style: 'percent',\n minimumFractionDigits: 0,\n maximumFractionDigits: 2,\n })\n return (value: number) => {\n if (typeof value !== 'number' || !Number.isFinite(value))\n return String(value)\n return fmt.format(value / 100)\n }\n}\n","export interface RelativeDataLabels {\n on: string\n off: string\n}\n\nexport const DEFAULT_RELATIVE_DATA_LABELS: RelativeDataLabels = {\n on: 'Show absolute values',\n off: 'Show relative values',\n}\n","import type { SxProps, Theme } from '@mui/material'\n\nexport const styles = {\n toggle: {\n p: 0.5,\n '& .MuiSvgIcon-root': { fontSize: 20 },\n },\n toggleActive: {\n background: (theme: Theme) => theme.palette.primary.relatedLight,\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { useEffect, useMemo, type ComponentType } from 'react'\nimport { IconButton, type SvgIconProps } from '@mui/material'\nimport { Percent as PercentIcon } from '@mui/icons-material'\nimport { Tooltip } from '../../../components'\nimport {\n getWidgetStore,\n useSingleTransform,\n useWidget,\n useWidgetId,\n} from '../../stores'\nimport { createPercentFormatter, toRelativeData } from './transforms'\nimport { DEFAULT_RELATIVE_DATA_LABELS, type RelativeDataLabels } from './labels'\nimport { styles } from './style'\n\nconst DATA_DESCRIPTOR = {\n id: 'relative-data',\n type: 'data' as const,\n order: 15,\n}\n\nexport interface RelativeDataProps {\n initialEnabled?: boolean\n /**\n * BCP-47 locale tag forwarded to `Intl.NumberFormat`. Defaults to the\n * runtime locale.\n */\n locale?: string\n labels?: Partial<RelativeDataLabels>\n icon?: ComponentType<SvgIconProps>\n iconProps?: SvgIconProps\n /**\n * Data-side transform that rewrites the widget's series into their\n * relative (0–100) form. Defaults to {@link toRelativeData}, which\n * handles the canonical `{ name, value }[]` shape (bar / pie /\n * timeseries / category). Widgets with a different data shape pass\n * their own — `toRelativeHistogramData` for histogram's `number[]`,\n * `toRelativeScatterplotData` for scatter's `[x, y][]`.\n *\n * Should be a stable top-level reference; inline `(data) => ...`\n * literals re-register the transform every render.\n */\n transform?: (data: unknown) => unknown\n}\n\n/**\n * Toggle between absolute and relative (percentage) values.\n *\n * - **Data side**: a single data transform ({@link toRelativeData}) registered\n * through `useSingleTransform`. When disabled, the pipeline skips it and the\n * derived `data` reverts to `rawData` automatically.\n * - **Formatter side**: an effect writes directly to `state.formatter`. When\n * enabled it installs the Intl-based percent formatter; when disabled it\n * reads `state.rawFormatter` (the consumer-supplied original, always live)\n * and writes it back to `formatter`. No \"original\" snapshot is captured —\n * `rawFormatter` is the original.\n */\nexport function RelativeData({\n initialEnabled = false,\n locale,\n labels,\n icon: Icon = PercentIcon,\n iconProps,\n transform,\n}: RelativeDataProps) {\n const id = useWidgetId()\n const _labels = { ...DEFAULT_RELATIVE_DATA_LABELS, ...labels }\n\n const { enabled, toggle } = useSingleTransform(\n id,\n DATA_DESCRIPTOR,\n transform ?? toRelativeData,\n { initialEnabled },\n )\n\n const percentFormatter = useMemo(\n () => createPercentFormatter(locale),\n [locale],\n )\n\n // Subscribe to rawFormatter so the effect re-runs and re-applies after the\n // consumer's formatter prop changes (Provider syncs the new prop to both\n // rawFormatter and formatter — re-applying restores the percent override\n // when relative is on, and tracks the new rawFormatter when off).\n const rawFormatter = useWidget(id, (s) => s.rawFormatter)\n\n useEffect(() => {\n getWidgetStore(id).setState({\n formatter: enabled ? percentFormatter : rawFormatter,\n })\n }, [id, enabled, percentFormatter, rawFormatter])\n\n const tooltip = enabled ? _labels.on : _labels.off\n\n return (\n <Tooltip title={tooltip}>\n <IconButton\n size='small'\n aria-label={tooltip}\n aria-pressed={enabled}\n onClick={toggle}\n sx={{ ...styles.toggle, ...(enabled && styles.toggleActive) }}\n >\n <Icon fontSize='small' {...iconProps} />\n </IconButton>\n </Tooltip>\n )\n}\n","export interface FullScreenLabels {\n open: string\n close: string\n}\n\nexport const DEFAULT_FULLSCREEN_LABELS: FullScreenLabels = {\n open: 'Open in full screen',\n close: 'Exit full screen',\n}\n","import type { SxProps, Theme } from '@mui/material'\n\nexport const styles = {\n // Inline shell where the portaled body lives when fullscreen is closed.\n // Real flex-column box (not `display: contents`) so that:\n // 1. when the body is moved into the modal, we can pin a `min-height`\n // to keep the widget card from collapsing — the inline shell is\n // empty for that interval, and a layout-less wrapper would make\n // the card squish a frame before the modal covers it (visible\n // blink).\n // 2. nested `flex: 1` (e.g. Widget.State's CaptureBox) still grows —\n // this shell preserves the column-flex inheritance it would have\n // had directly under `Widget.Content`.\n // `gap: 1` mirrors `Widget.Content`'s gap so the body's siblings\n // (Subheader / capture box / note) keep their spacing.\n inlineSlot: {\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n minHeight: 0,\n gap: 1,\n },\n trigger: {\n p: 0.5,\n '& .MuiSvgIcon-root': { fontSize: 20 },\n },\n triggerActive: {\n background: (theme: Theme) => theme.palette.primary.relatedLight,\n },\n // Sized by its content, between a floor and the viewport. The floor is\n // what makes this safe: every widget body in the library is `width: 100%`\n // (they're built to fill their card) and an ECharts canvas has no\n // intrinsic size at all, so asking the content how big it wants to be\n // gets no answer — without a floor the modal collapses to a few hundred\n // pixels. Content bigger than the floor grows, up to the viewport cap.\n //\n // Floor and cap are both viewport units so the modal scales with the\n // device: a px floor would be wider than the screen on a phone.\n //\n // Only applies from `sm` up — below that the dialog goes edge-to-edge and\n // sizes itself (see `fullScreen` in fullscreen.tsx).\n dialogPaper: {\n width: 'auto',\n height: 'auto',\n minWidth: '70vw',\n minHeight: '70vh',\n maxWidth: '90vw',\n maxHeight: '90vh',\n },\n dialogTitle: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n gap: 1,\n py: 3,\n pr: 3,\n pb: 2,\n },\n // Header buttons + close icon. Mirrors `Widget.Actions`' row so the modal\n // header reads like the wrapper's summary row — minus the hover-fade,\n // which makes no sense once the widget owns the whole screen.\n dialogActions: {\n display: 'flex',\n alignItems: 'center',\n gap: 0.5,\n flexShrink: 0,\n },\n titleText: {\n minWidth: 0,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n },\n dialogContent: {\n display: 'flex',\n flexDirection: 'column',\n gap: 1,\n py: 3,\n px: 2.5,\n overflow: 'auto',\n // Lets the flex children grow into the dialog's height (and shrink below\n // their content size) instead of being floored by it — without this the\n // chart can't use the space the modal gives it.\n minHeight: 0,\n },\n} satisfies Record<string, SxProps<Theme>>\n","import {\n useCallback,\n useLayoutEffect,\n useState,\n type ComponentType,\n type ReactNode,\n} from 'react'\nimport { createPortal } from 'react-dom'\nimport {\n Box,\n Dialog,\n DialogContent,\n DialogTitle,\n IconButton,\n Typography,\n useMediaQuery,\n useTheme,\n type SvgIconProps,\n type CSSObject,\n type SxProps,\n type Theme,\n} from '@mui/material'\nimport { Fullscreen as FullscreenIcon } from '@mui/icons-material'\nimport { FullscreenExit as FullscreenExitIcon } from '@mui/icons-material'\nimport { Close as CloseIcon } from '@mui/icons-material'\nimport { Tooltip } from '../../../components'\nimport { getWidgetStore, useWidget, useWidgetId } from '../../stores'\nimport { DEFAULT_FULLSCREEN_LABELS, type FullScreenLabels } from './labels'\nimport type { FullScreenWidgetState } from './types'\nimport { styles } from './style'\n\nexport interface FullScreenTriggerProps {\n labels?: Partial<FullScreenLabels>\n enterIcon?: ComponentType<SvgIconProps>\n exitIcon?: ComponentType<SvgIconProps>\n iconProps?: SvgIconProps\n}\n\nexport interface FullScreenSlotProps {\n /**\n * Render-prop body. Receives the live `isFullScreen` flag so the consumer\n * can branch per-mode props (e.g., `Widget.Toolbox visibleCount`) without\n * duplicating the JSX.\n */\n children: (isFullScreen: boolean) => ReactNode\n /** Header text rendered above the body when the modal is open. */\n title?: ReactNode\n /**\n * Buttons rendered in the modal header, to the left of the close icon —\n * the fullscreen counterpart of `<Widget.Actions>`, which lives in the\n * wrapper's summary row and is covered by the dialog. Pass the same\n * elements you compose there (typically `<Widget.Download>`); the\n * fullscreen trigger is intentionally not among them, since the close\n * icon already exits.\n */\n actions?: ReactNode\n /**\n * Per-widget override merged over the default `90vw x 90vh` dialog paper.\n * Charts want the default (their canvas grows to fill it); content-sized\n * widgets (Range, Markdown) pass their own width / `height: 'auto'` so the\n * modal doesn't leave a large empty box around them.\n *\n * Shallow-merged over the default, same as `Widget.Actions`' `sx`: pass a\n * plain style object, not the array or theme-callback form.\n */\n paperSx?: SxProps<Theme>\n labels?: Partial<FullScreenLabels>\n closeIcon?: ComponentType<SvgIconProps>\n iconProps?: SvgIconProps\n}\n\n/**\n * Toggle button placed inside `<Widget.Actions>`. Reads / writes\n * {@link FullScreenWidgetState.isFullScreen} on the per-widget store. The\n * matching modal is rendered by {@link FullScreenSlot} (typically inside\n * `<Widget.Content>`).\n */\nfunction FullScreenTrigger({\n labels,\n enterIcon: EnterIcon = FullscreenIcon,\n exitIcon: ExitIcon = FullscreenExitIcon,\n iconProps,\n}: FullScreenTriggerProps) {\n const id = useWidgetId()\n const _labels = { ...DEFAULT_FULLSCREEN_LABELS, ...labels }\n const open = useWidget<boolean, FullScreenWidgetState>(\n id,\n (s) => s.isFullScreen ?? false,\n )\n\n const handleToggle = useCallback(() => {\n getWidgetStore(id).setState({\n isFullScreen: !open,\n } as Partial<FullScreenWidgetState>)\n }, [id, open])\n\n const triggerLabel = open ? _labels.close : _labels.open\n const TriggerIcon = open ? ExitIcon : EnterIcon\n\n return (\n <Tooltip title={triggerLabel}>\n <IconButton\n size='small'\n aria-label={triggerLabel}\n aria-pressed={open}\n onClick={handleToggle}\n className={open ? 'active' : undefined}\n sx={{ ...styles.trigger, ...(open && styles.triggerActive) }}\n >\n <TriggerIcon fontSize='small' {...iconProps} />\n </IconButton>\n </Tooltip>\n )\n}\n\n/**\n * Body wrapper. Renders its render-prop children once, via a single\n * `createPortal` call whose container is a stable `<div>` we hold as a ref.\n * That div is moved imperatively between an inline placeholder and the\n * `<DialogContent>` of an MUI `<Dialog keepMounted>`. Because both the\n * React parent (the portal call site) AND the portal container are\n * identical across the toggle, the subtree keeps its fiber identity and\n * ECharts (or any other heavy child) stays mounted while only its DOM\n * parent changes.\n */\nfunction FullScreenSlot({\n children,\n title,\n actions,\n paperSx,\n labels,\n closeIcon: CloseSvg = CloseIcon,\n iconProps,\n}: FullScreenSlotProps) {\n const id = useWidgetId()\n const _labels = { ...DEFAULT_FULLSCREEN_LABELS, ...labels }\n const open = useWidget<boolean, FullScreenWidgetState>(\n id,\n (s) => s.isFullScreen ?? false,\n )\n // Below `sm` the dialog goes edge-to-edge (MUI's own answer for phones).\n // A paper sized as a fraction of a 390px viewport is narrower than the\n // card the widget sits in, and forcing it wider just eats the dialog's\n // margins — on a screen that small, fullscreen should mean fullscreen.\n const theme = useTheme()\n const fullBleed = useMediaQuery(theme.breakpoints.down('sm'))\n const [inlineEl, setInlineEl] = useState<HTMLElement | null>(null)\n const [dialogEl, setDialogEl] = useState<HTMLElement | null>(null)\n // Stable, never-changing portal container created once per slot. Held in\n // state (not a ref) so the React Compiler is happy reading it during\n // render — it's immutable from React's perspective, only its DOM parent\n // changes via `appendChild`. Switching `createPortal`'s `container`\n // argument makes React unmount and remount the children, defeating the\n // single-mount goal; keeping the container identical and moving the div\n // imperatively avoids that.\n const [portalDiv] = useState<HTMLDivElement | null>(() => {\n if (typeof document === 'undefined') return null\n const div = document.createElement('div')\n // `display: contents` keeps the wrapper transparent in flow so it\n // doesn't introduce a stray block when nested inside the inline slot.\n div.style.display = 'contents'\n return div\n })\n\n const handleClose = useCallback(() => {\n getWidgetStore(id).setState({\n isFullScreen: false,\n } as Partial<FullScreenWidgetState>)\n }, [id])\n\n // Reparent the portal div into the active host whenever `open` (or either\n // host) changes. `useLayoutEffect` runs synchronously after commit (after\n // refs have been written), so the dialog ref is already live when we read\n // it.\n //\n // Anti-blink: pin a `min-height` on the inline shell that's always live —\n // not just while fullscreen is open. We re-measure whenever the body is\n // inline (open=false) so the lock tracks data-driven height changes\n // (Formula adding rows, Table growing, ECharts re-init…) and survives\n // every fullscreen toggle. Briefly clearing minHeight before the measure\n // lets the lock shrink as well as grow; both operations are synchronous\n // within useLayoutEffect, so the browser never paints the intermediate\n // \"no lock\" frame.\n useLayoutEffect(() => {\n if (!portalDiv || !inlineEl) return\n const host = open ? dialogEl : inlineEl\n if (host && portalDiv.parentNode !== host) {\n host.appendChild(portalDiv)\n }\n if (!open) refreshInlineHeightLock(inlineEl)\n }, [open, inlineEl, dialogEl, portalDiv])\n\n const titleId = `widget-fullscreen-title-${id}`\n const rendered = children(open)\n\n return (\n <>\n <Box ref={setInlineEl} sx={styles.inlineSlot} />\n {portalDiv ? createPortal(rendered, portalDiv) : null}\n <Dialog\n open={open}\n onClose={handleClose}\n fullScreen={fullBleed}\n // Edge-to-edge owns the sizing; the floor and cap would fight it.\n slotProps={\n fullBleed ? undefined : { paper: { sx: resolvePaperSx(paperSx) } }\n }\n aria-labelledby={titleId}\n // Deliberately no z-index override. Raising the dialog above the\n // tooltip layer also raises it above everything its own body opens —\n // MUI portals menus and tooltips to `document.body`, so a Download\n // menu (`zIndex.modal`, 1300) or a Tooltip (1500) ends up painted\n // under a dialog at 1501 and its items can't be clicked. At the\n // default modal layer the menu portals after the dialog and wins on\n // DOM order, and the tooltip wins on z-index.\n //\n // This used to sit at `tooltip + 1` to cover a Toolbox popper left\n // open when fullscreen opened. That's the Toolbox's own job and it\n // already does it: `visibleCount` flips to `undefined` in fullscreen,\n // overflow disappears and the popper unmounts. A consumer who keeps a\n // numeric `visibleCount` in fullscreen keeps its popper above the\n // dialog — which is the correct layer for a popover opened from\n // inside it anyway.\n >\n <DialogTitle id={titleId} component='div' sx={styles.dialogTitle}>\n <Typography\n variant='subtitle1'\n component='span'\n sx={styles.titleText}\n >\n {title}\n </Typography>\n <Box sx={styles.dialogActions}>\n {actions}\n <Tooltip title={_labels.close}>\n <IconButton\n size='small'\n aria-label={_labels.close}\n onClick={handleClose}\n >\n <CloseSvg fontSize='small' {...iconProps} />\n </IconButton>\n </Tooltip>\n </Box>\n </DialogTitle>\n <DialogContent ref={setDialogEl} sx={styles.dialogContent} />\n </Dialog>\n </>\n )\n}\n\n/**\n * Merge a caller's `paperSx` over the default paper.\n *\n * An explicit `width` / `height` also clears the default's floor on that\n * axis: `minWidth: 70vw` is 1008px on a 1440px screen, so a caller asking\n * for `width: 960` would silently get 1008 and the escape hatch wouldn't\n * escape. The viewport cap stays — a size larger than the screen helps\n * nobody — and a caller who wants their own floor or cap can still set\n * `minWidth` / `maxWidth` directly, since their values are spread last.\n */\nfunction resolvePaperSx(paperSx: SxProps<Theme> | undefined): SxProps<Theme> {\n // Plain-object form only, as the prop documents — the array and\n // theme-callback forms of `SxProps` wouldn't survive a shallow merge.\n const plain = (paperSx ?? {}) as CSSObject\n return {\n ...styles.dialogPaper,\n ...(plain.width !== undefined && { minWidth: 0 }),\n ...(plain.height !== undefined && { minHeight: 0 }),\n ...plain,\n }\n}\n\n/**\n * Briefly clear the inline shell's `min-height`, measure its natural\n * height, then re-pin. Lives outside the component so the React Compiler\n * doesn't see the DOM mutation as an attempt to modify a `useState` value\n * — `el` here is just a parameter, not a tracked store value.\n */\nfunction refreshInlineHeightLock(el: HTMLElement): void {\n el.style.minHeight = ''\n const h = el.getBoundingClientRect().height\n if (h > 0) el.style.minHeight = `${h}px`\n}\n\n/**\n * Namespace export. Consumers compose with:\n *\n * ```tsx\n * <Widget.Actions>\n * <Widget.FullScreen.Trigger />\n * </Widget.Actions>\n * <Widget.Content>\n * <Widget.FullScreen.Slot title={title} actions={<Widget.Download items={items} />}>\n * {(isFullScreen) => <Body visibleCount={isFullScreen ? undefined : 2} />}\n * </Widget.FullScreen.Slot>\n * </Widget.Content>\n * ```\n */\nexport const FullScreen = {\n Trigger: FullScreenTrigger,\n Slot: FullScreenSlot,\n}\n","/**\n * Filters a 2D series of `{name, ...}` records, keeping only items whose\n * `name` is in the locked set. Multi-series shape is preserved (one inner\n * array per series). Used by the LockSelection action's data transform.\n */\nexport function filterByLockedItems(\n input: unknown,\n lockedItems: readonly (string | number)[],\n): unknown {\n if (lockedItems.length === 0) return input\n if (!Array.isArray(input)) return input\n const set = new Set<string | number>(lockedItems)\n return input.map((series: unknown): unknown => {\n if (!Array.isArray(series)) return series\n return series.filter((item: unknown) => {\n if (item == null) return false\n if (typeof item === 'object' && 'name' in item) {\n const name = (item as { name: unknown }).name\n if (typeof name === 'string' || typeof name === 'number') {\n return set.has(name)\n }\n return false\n }\n return false\n })\n })\n}\n","export interface LockSelectionLabels {\n lock: string\n unlock: string\n disabled: string\n}\n\nexport const DEFAULT_LOCK_SELECTION_LABELS: LockSelectionLabels = {\n lock: 'Lock selection',\n unlock: 'Unlock selection',\n disabled: 'Select rows to lock',\n}\n","import type { SxProps, Theme } from '@mui/material'\n\nexport const styles = {\n toggle: {\n p: 0.5,\n '& .MuiSvgIcon-root': { fontSize: 20 },\n },\n toggleActive: {\n background: (theme: Theme) => theme.palette.primary.relatedLight,\n },\n} satisfies Record<string, SxProps<Theme>>\n","import {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n type ComponentType,\n} from 'react'\nimport { IconButton, type SvgIconProps } from '@mui/material'\nimport { Lock as LockIcon } from '@mui/icons-material'\nimport { LockOpen as LockOpenIcon } from '@mui/icons-material'\nimport { Tooltip } from '../../../components'\nimport { useTransform, useWidgetId } from '../../stores'\nimport type { TransformPair } from '../../stores'\nimport { filterByLockedItems } from './transforms'\nimport {\n DEFAULT_LOCK_SELECTION_LABELS,\n type LockSelectionLabels,\n} from './labels'\nimport { styles } from './style'\n\nconst LOCK_SELECTION_DESCRIPTOR = {\n id: 'lock-selection',\n type: 'data' as const,\n order: 30,\n}\n\nexport type LockSelectionKey = string | number\n\nexport interface LockSelectionProps<\n K extends LockSelectionKey = LockSelectionKey,\n> {\n /**\n * Currently-selected items (destination-owned). On lock, this set is\n * snapshotted into `lockedItems` via `onLockChange`.\n */\n selection: readonly K[]\n /**\n * Currently-locked items (destination-owned). When non-empty, the widget's\n * data is filtered to these items via the registered transform.\n */\n lockedItems: readonly K[]\n /**\n * Fires when the user toggles the lock. The destination is responsible for\n * persisting the new locked set (and re-feeding it via `lockedItems`).\n */\n onLockChange: (next: readonly K[]) => void\n labels?: Partial<LockSelectionLabels>\n /** Lock icon (default: `LockIcon`). */\n lockIcon?: ComponentType<SvgIconProps>\n /** Unlock icon (default: `LockOpenIcon`). */\n unlockIcon?: ComponentType<SvgIconProps>\n iconProps?: SvgIconProps\n /**\n * Data transform applied while locked. Defaults to {@link filterByLockedItems}\n * (keeps only `{name, ...}` items whose `name` is in `lockedItems`, across a\n * `X[][]` series shape — matches Bar/Pie/Category/Timeseries data). Widgets\n * whose data shape or selection identity differs (bin index, composite\n * point key, flat rows) pass their own — e.g. Histogram's\n * `filterHistogramByLockedBins`, Scatterplot's\n * `filterScatterplotByLockedPoints`, Table's `filterTableByLockedRows`.\n */\n filterFn?: (\n data: unknown,\n lockedItems: readonly K[],\n filterKey?: string | number,\n ) => unknown\n /**\n * Configuration the filter needs beyond the locked set — Table's\n * `keyColumn`, say. Handed to `filterFn` as its third argument, so the\n * filter can go by reference:\n * `filterFn={filterTableByLockedRows} filterKey={keyColumn}`.\n *\n * Pass it rather than capturing it: `filterFn`'s identity is not a\n * pipeline dependency (see {@link useMemoPair}), so a fresh closure over a\n * new key is picked up while nothing re-runs.\n */\n filterKey?: string | number\n}\n\n/**\n * Action that pins the current selection so the widget's data filters down\n * to those items even as the user changes selections. Selection and lock\n * state are destination-owned; this component is a controlled UI + a data\n * transform registered against the widget's pipeline.\n *\n * The trigger is disabled when there is nothing to lock and nothing locked.\n */\nexport function LockSelection<K extends LockSelectionKey = LockSelectionKey>({\n selection,\n lockedItems,\n onLockChange,\n labels,\n lockIcon: LockSvg = LockIcon,\n unlockIcon: UnlockSvg = LockOpenIcon,\n iconProps,\n filterFn = filterByLockedItems,\n filterKey,\n}: LockSelectionProps<K>) {\n const id = useWidgetId()\n const _labels = { ...DEFAULT_LOCK_SELECTION_LABELS, ...labels }\n const isLocked = lockedItems.length > 0\n const canToggle = isLocked || selection.length > 0\n\n // Pair memoized on lockedItems identity — useTransform re-registers the fn\n // (which closes over the current locked set) whenever the destination feeds\n // a new array. setEnabled drives the middleware-level `enabled` flag.\n const pairs = useMemoPair(lockedItems, filterFn, filterKey)\n const { enabled, setEnabled } = useTransform(id, pairs, {\n initialEnabled: isLocked,\n })\n\n // Keep middleware `enabled` in sync with destination-owned `isLocked`. The\n // pipeline only short-circuits the transform when enabled === false, so\n // toggling here is what makes lock/unlock actually take effect.\n useEffect(() => {\n if (enabled !== isLocked) setEnabled(isLocked)\n }, [enabled, isLocked, setEnabled])\n\n const handleToggle = useCallback(() => {\n if (isLocked) {\n onLockChange([])\n } else {\n onLockChange([...selection])\n }\n }, [isLocked, onLockChange, selection])\n\n const tooltip = !canToggle\n ? _labels.disabled\n : isLocked\n ? _labels.unlock\n : _labels.lock\n const Icon = isLocked ? UnlockSvg : LockSvg\n\n return (\n <Tooltip title={tooltip}>\n <span>\n <IconButton\n size='small'\n aria-label={tooltip}\n aria-pressed={isLocked}\n disabled={!canToggle}\n onClick={handleToggle}\n sx={{ ...styles.toggle, ...(isLocked && styles.toggleActive) }}\n >\n <Icon fontSize='small' {...iconProps} />\n </IconButton>\n </span>\n </Tooltip>\n )\n}\n\n/**\n * Builds a stable `[{ descriptor, fn }]` pair where `fn` closes over the\n * latest `lockedItems` and reads `filterFn` from a ref kept fresh via\n * `useEffect` (never mutated during render — that would break the compiler's\n * memoization guarantees). `filterFn` is deliberately NOT a `useCallback`\n * dep: callers may pass an inline closure, which has a new identity every\n * render, and depending on it would rebuild the transform pair (and\n * everything downstream of it) every render instead of only when\n * `lockedItems` actually changes. `fn` itself is invoked later by the data\n * pipeline, not during this component's render, so reading a ref there is\n * safe.\n *\n * The cost of that ref is that captured config is invisible to the pipeline,\n * which is what {@link LockSelectionProps.filterKey} is for.\n */\nfunction useMemoPair<K extends LockSelectionKey>(\n lockedItems: readonly K[],\n filterFn: (\n data: unknown,\n lockedItems: readonly K[],\n filterKey?: string | number,\n ) => unknown,\n filterKey: string | number | undefined,\n): readonly TransformPair[] {\n const filterFnRef = useRef(filterFn)\n useEffect(() => {\n filterFnRef.current = filterFn\n })\n // Forwarded, not just declared as a dependency: the React Compiler infers\n // deps from the body and drops any it never uses (even `void filterKey`,\n // eliminated first), so declaring it alone would change nothing.\n const fn = useCallback(\n (data: unknown) => filterFnRef.current(data, lockedItems, filterKey),\n [lockedItems, filterKey],\n )\n return useMemo(() => [{ descriptor: LOCK_SELECTION_DESCRIPTOR, fn }], [fn])\n}\n","import { SvgIcon, type SvgIconProps } from '@mui/material'\n\nexport function ChangeColumnIcon(props: SvgIconProps) {\n return (\n <SvgIcon viewBox='0 0 18 18' {...props}>\n <path\n fill='currentColor'\n fillRule='evenodd'\n d='M14.25 2.25H3.75c-.825 0-1.5.675-1.5 1.5v10.5c0 .825.675 1.5 1.5 1.5h10.5c.825 0 1.5-.675 1.5-1.5V3.75c0-.825-.675-1.5-1.5-1.5m-3.75 12h-3V3.75h3zM3.75 3.75H6v10.5H3.75zM12 14.25V3.75h2.25v10.5z'\n clipRule='evenodd'\n />\n </SvgIcon>\n )\n}\n","export interface ChangeColumnLabels {\n trigger: string\n title?: string\n reset: string\n}\n\nexport const DEFAULT_CHANGE_COLUMN_LABELS: ChangeColumnLabels = {\n trigger: 'Change column order',\n title: 'Column reorder',\n reset: 'Reset to default',\n}\n","import type { SxProps, Theme } from '@mui/material'\n\nexport const styles = {\n toggle: {\n p: 0.5,\n '& .MuiSvgIcon-root': { fontSize: 20 },\n },\n toggleActive: {\n background: (theme: Theme) => theme.palette.primary.relatedLight,\n },\n menuPaper: {\n overflow: 'hidden',\n },\n header: {\n color: 'text.secondary',\n backgroundColor: 'transparent',\n typography: 'caption',\n px: 2,\n py: 0.75,\n },\n item: {\n position: 'relative',\n cursor: 'grab',\n px: 2,\n touchAction: 'none',\n '&:hover .change-column-drag-handle': {\n opacity: 1,\n },\n '&:focus-visible': {\n outline: '2px solid',\n outlineColor: 'primary.main',\n outlineOffset: -2,\n },\n '&:focus-visible .change-column-drag-handle': {\n opacity: 1,\n },\n },\n itemDragging: {\n opacity: 0.5,\n cursor: 'grabbing',\n },\n dragHandle: {\n position: 'absolute',\n left: 0,\n top: '50%',\n transform: 'translateY(-50%)',\n color: 'text.secondary',\n fontSize: 18,\n opacity: 0,\n transition: 'opacity 0.1s',\n '@media (hover: none)': {\n opacity: 1,\n },\n },\n dragHandleVisible: {\n opacity: 1,\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { useSortable } from '@dnd-kit/sortable'\nimport { CSS } from '@dnd-kit/utilities'\nimport { ListItemText, MenuItem } from '@mui/material'\nimport { DragIndicator as DragIndicatorIcon } from '@mui/icons-material'\nimport type { ComponentType, ReactNode } from 'react'\nimport type { SvgIconProps } from '@mui/material'\nimport { styles } from './style'\n\nexport interface SortableColumnItemProps {\n id: string\n label: ReactNode\n dragHandleIcon?: ComponentType<SvgIconProps>\n}\n\n/**\n * Draggable menu item used inside ChangeColumn's `<DndContext>`. Wraps a\n * MUI `<MenuItem>` so it inherits keyboard / theming behavior, and exposes\n * the dnd-kit listeners on the whole row so the user can grab anywhere on\n * the row to reorder.\n */\nexport function SortableColumnItem({\n id,\n label,\n dragHandleIcon: HandleIcon = DragIndicatorIcon,\n}: SortableColumnItemProps) {\n const {\n attributes,\n listeners,\n setNodeRef,\n transform,\n transition,\n isDragging,\n } = useSortable({ id })\n\n const transformStyle = {\n transform: CSS.Transform.toString(\n transform ? { ...transform, x: 0 } : null,\n ),\n transition,\n }\n\n return (\n <MenuItem\n ref={setNodeRef}\n style={transformStyle}\n {...attributes}\n {...listeners}\n disableGutters\n role='menuitem'\n tabIndex={0}\n sx={{ ...styles.item, ...(isDragging && styles.itemDragging) }}\n >\n <HandleIcon\n className='change-column-drag-handle'\n sx={{\n ...styles.dragHandle,\n ...(isDragging && styles.dragHandleVisible),\n }}\n />\n <ListItemText>{label}</ListItemText>\n </MenuItem>\n )\n}\n","import { useCallback, useMemo, useState, type ComponentType } from 'react'\nimport {\n DndContext,\n KeyboardSensor,\n PointerSensor,\n closestCenter,\n useSensor,\n useSensors,\n type DragEndEvent,\n} from '@dnd-kit/core'\nimport {\n SortableContext,\n arrayMove,\n sortableKeyboardCoordinates,\n verticalListSortingStrategy,\n} from '@dnd-kit/sortable'\nimport {\n IconButton,\n ListSubheader,\n Menu,\n type SvgIconProps,\n} from '@mui/material'\nimport { Tooltip } from '../../../components'\nimport { getWidgetStore, useWidget, useWidgetId } from '../../stores'\nimport { ChangeColumnIcon } from './change-column-icon'\nimport { DEFAULT_CHANGE_COLUMN_LABELS, type ChangeColumnLabels } from './labels'\nimport { SortableColumnItem } from './sortable-column-item'\nimport { styles } from './style'\nimport type { ChangeColumnWidgetState } from './types'\nimport type { ReactNode } from 'react'\n\nexport interface ChangeColumnItem {\n id: string\n label: ReactNode\n}\n\nexport interface ChangeColumnProps {\n /**\n * Master list of columns (id + label) in their default order. The current\n * effective order is derived by combining this list with the widget's\n * `columnOrder` extension state.\n */\n columns: readonly ChangeColumnItem[]\n labels?: Partial<ChangeColumnLabels>\n icon?: ComponentType<SvgIconProps>\n iconProps?: SvgIconProps\n dragHandleIcon?: ComponentType<SvgIconProps>\n}\n\n/**\n * Action that lets users reorder columns via drag-and-drop. The new order is\n * persisted on the widget store as `columnOrder` (an array of ids) on the\n * {@link ChangeColumnWidgetState} extension. `<Table>` (and other column-aware\n * bridges) merge that order with their own `columns` prop via\n * `resolveColumns()` from the table primitives.\n *\n * Returns `null` when there are fewer than two columns to reorder.\n */\nexport function ChangeColumn({\n columns,\n labels,\n icon: Icon = ChangeColumnIcon,\n iconProps,\n dragHandleIcon,\n}: ChangeColumnProps) {\n const id = useWidgetId()\n const _labels = { ...DEFAULT_CHANGE_COLUMN_LABELS, ...labels }\n const [anchorEl, setAnchorEl] = useState<HTMLElement | null>(null)\n\n const columnOrder = useWidget<\n readonly string[] | undefined,\n ChangeColumnWidgetState\n >(id, (s) => s.columnOrder)\n\n const orderedIds = useMemo(() => {\n const masterIds = columns.map((c) => c.id)\n if (!columnOrder || columnOrder.length === 0) return masterIds\n // Set lookup so membership tests stay O(1) regardless of column count.\n const masterIdSet = new Set(masterIds)\n const seen = new Set<string>()\n const out: string[] = []\n for (const cid of columnOrder) {\n if (masterIdSet.has(cid) && !seen.has(cid)) {\n out.push(cid)\n seen.add(cid)\n }\n }\n for (const cid of masterIds) {\n if (!seen.has(cid)) out.push(cid)\n }\n return out\n }, [columnOrder, columns])\n\n const orderedColumns = useMemo(() => {\n const byId = new Map(columns.map((c) => [c.id, c]))\n // Single pass instead of map().filter() — skips unknown ids inline.\n const out: ChangeColumnItem[] = []\n for (const cid of orderedIds) {\n const c = byId.get(cid)\n if (c != null) out.push(c)\n }\n return out\n }, [orderedIds, columns])\n\n const sensors = useSensors(\n useSensor(PointerSensor),\n useSensor(KeyboardSensor, {\n coordinateGetter: sortableKeyboardCoordinates,\n }),\n )\n\n const handleOpen = useCallback((e: React.MouseEvent<HTMLElement>) => {\n e.stopPropagation()\n setAnchorEl(e.currentTarget)\n }, [])\n const handleClose = useCallback(() => setAnchorEl(null), [])\n\n const handleDragEnd = useCallback(\n (event: DragEndEvent) => {\n const { active, over } = event\n if (!over || active.id === over.id) return\n const oldIndex = orderedIds.indexOf(String(active.id))\n const newIndex = orderedIds.indexOf(String(over.id))\n if (oldIndex === -1 || newIndex === -1) return\n const next = arrayMove([...orderedIds], oldIndex, newIndex)\n getWidgetStore(id).setState({\n columnOrder: next,\n } as Partial<ChangeColumnWidgetState>)\n },\n [id, orderedIds],\n )\n\n if (columns.length < 2) return null\n\n const isOpen = Boolean(anchorEl)\n\n return (\n <>\n <Tooltip title={_labels.trigger}>\n <IconButton\n size='small'\n aria-label={_labels.trigger}\n aria-pressed={isOpen}\n aria-haspopup='true'\n aria-controls={isOpen ? 'change-column-menu' : undefined}\n aria-expanded={isOpen ? 'true' : undefined}\n onClick={handleOpen}\n className={isOpen ? 'active' : undefined}\n sx={{ ...styles.toggle, ...(isOpen && styles.toggleActive) }}\n >\n <Icon fontSize='small' {...iconProps} />\n </IconButton>\n </Tooltip>\n <DndContext\n sensors={sensors}\n collisionDetection={closestCenter}\n onDragEnd={handleDragEnd}\n autoScroll={false}\n >\n <Menu\n id='change-column-menu'\n anchorEl={anchorEl}\n open={isOpen}\n onClose={handleClose}\n anchorOrigin={{ vertical: 'bottom', horizontal: 'right' }}\n transformOrigin={{ vertical: 'top', horizontal: 'right' }}\n slotProps={{ paper: { sx: styles.menuPaper } }}\n >\n <ListSubheader disableSticky role='presentation' sx={styles.header}>\n {_labels.title}\n </ListSubheader>\n <SortableContext\n items={orderedIds}\n strategy={verticalListSortingStrategy}\n >\n {orderedColumns.map((column) => (\n <SortableColumnItem\n key={column.id}\n id={column.id}\n label={column.label}\n dragHandleIcon={dragHandleIcon}\n />\n ))}\n </SortableContext>\n </Menu>\n </DndContext>\n </>\n )\n}\n"],"mappings":"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"}