@carto/ps-react-ui 5.3.0 → 6.1.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 (1161) hide show
  1. package/dist/actions-BWlS5tpP.js +1150 -0
  2. package/dist/actions-BWlS5tpP.js.map +1 -0
  3. package/dist/category-alzjKzvQ.js +839 -0
  4. package/dist/category-alzjKzvQ.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-DGgFOaXj.js → download-B4sykOFm.js} +33 -23
  11. package/dist/download-B4sykOFm.js.map +1 -0
  12. package/dist/{echart-CwzbPElc.js → echart-CV8F50gn.js} +9 -9
  13. package/dist/echart-CV8F50gn.js.map +1 -0
  14. package/dist/formula-DJS-JLpk.js +276 -0
  15. package/dist/formula-DJS-JLpk.js.map +1 -0
  16. package/dist/legend.js +263 -258
  17. package/dist/legend.js.map +1 -1
  18. package/dist/{markdown-oo9mnJun.js → markdown-Bn2nKCbn.js} +13 -19
  19. package/dist/markdown-Bn2nKCbn.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-BpU2zBmq.js} +8 -8
  25. package/dist/range-BpU2zBmq.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-CgCTKPQD.js → spread-CQwFIwuz.js} +12 -18
  29. package/dist/spread-CQwFIwuz.js.map +1 -0
  30. package/dist/{stores-tiFePP0A.js → stores-DcBOZlU3.js} +40 -34
  31. package/dist/stores-DcBOZlU3.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-lb5momun.js → table-DEdW_fDj.js} +17 -23
  36. package/dist/table-DEdW_fDj.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/index.d.ts +1 -0
  69. package/dist/types/{widgets-v2 → widgets}/actions/download/png-item.d.ts +1 -1
  70. package/dist/types/widgets/actions/download/types.d.ts +41 -16
  71. package/dist/types/widgets/actions/download/widget-download.d.ts +26 -0
  72. package/dist/types/widgets/actions/fullscreen/fullscreen.d.ts +80 -10
  73. package/dist/types/widgets/actions/fullscreen/types.d.ts +13 -20
  74. package/dist/types/widgets/actions/index.d.ts +10 -20
  75. package/dist/types/widgets/actions/lock-selection/lock-selection.d.ts +54 -16
  76. package/dist/types/widgets/actions/relative-data/relative-data.d.ts +36 -21
  77. package/dist/types/{widgets-v2 → widgets}/actions/relative-data/transforms.d.ts +2 -2
  78. package/dist/types/widgets/actions/searcher/searcher-toggle.d.ts +24 -16
  79. package/dist/types/widgets/actions/searcher/searcher.d.ts +9 -19
  80. package/dist/types/widgets/actions/stack-toggle/stack-toggle.d.ts +10 -17
  81. package/dist/types/widgets/actions/zoom-toggle/style.d.ts +7 -8
  82. package/dist/types/widgets/actions/zoom-toggle/zoom-toggle.d.ts +31 -22
  83. package/dist/types/widgets/bar/download.d.ts +10 -0
  84. package/dist/types/widgets/bar/index.d.ts +3 -2
  85. package/dist/types/widgets/bar/skeleton.d.ts +5 -0
  86. package/dist/types/widgets/bar/types.d.ts +46 -9
  87. package/dist/types/widgets/category/category-ui.d.ts +94 -3
  88. package/dist/types/{widgets-v2 → widgets}/category/components/category-bar-stacked.d.ts +2 -1
  89. package/dist/types/widgets/category/components/category-bar.d.ts +18 -4
  90. package/dist/types/widgets/category/components/category-legend.d.ts +30 -4
  91. package/dist/types/widgets/category/components/category-row-multi.d.ts +27 -10
  92. package/dist/types/widgets/category/components/category-row-other.d.ts +19 -2
  93. package/dist/types/widgets/category/components/category-row-single.d.ts +23 -9
  94. package/dist/types/{widgets-v2 → widgets}/category/components/category-row-stacked.d.ts +2 -1
  95. package/dist/types/widgets/category/download.d.ts +11 -0
  96. package/dist/types/widgets/category/helpers.d.ts +10 -0
  97. package/dist/types/widgets/category/index.d.ts +10 -14
  98. package/dist/types/widgets/category/skeleton.d.ts +11 -1
  99. package/dist/types/widgets/category/style.d.ts +155 -83
  100. package/dist/types/widgets/category/types.d.ts +49 -29
  101. package/dist/types/widgets/echart/echart-ui.d.ts +44 -9
  102. package/dist/types/widgets/echart/echart.d.ts +80 -5
  103. package/dist/types/widgets/echart/index.d.ts +4 -5
  104. package/dist/types/widgets/echart/shared-resize-observer.d.ts +2 -9
  105. package/dist/types/widgets/formula/download.d.ts +10 -0
  106. package/dist/types/widgets/formula/formula-ui.d.ts +18 -3
  107. package/dist/types/widgets/formula/index.d.ts +11 -11
  108. package/dist/types/{widgets-v2 → widgets}/formula/series.d.ts +2 -1
  109. package/dist/types/widgets/formula/skeleton.d.ts +4 -1
  110. package/dist/types/widgets/formula/style.d.ts +20 -12
  111. package/dist/types/widgets/formula/types.d.ts +41 -39
  112. package/dist/types/{widgets-v2 → widgets}/formula/value.d.ts +2 -1
  113. package/dist/types/widgets/histogram/download.d.ts +12 -0
  114. package/dist/types/widgets/histogram/index.d.ts +5 -4
  115. package/dist/types/widgets/histogram/skeleton.d.ts +9 -1
  116. package/dist/types/widgets/histogram/types.d.ts +60 -12
  117. package/dist/types/{widgets-v2 → widgets}/index.d.ts +2 -2
  118. package/dist/types/widgets/markdown/download.d.ts +10 -0
  119. package/dist/types/widgets/markdown/index.d.ts +5 -4
  120. package/dist/types/widgets/markdown/markdown-ui.d.ts +10 -7
  121. package/dist/types/widgets/markdown/markdown.d.ts +4 -3
  122. package/dist/types/widgets/markdown/skeleton.d.ts +4 -1
  123. package/dist/types/widgets/markdown/style.d.ts +61 -2
  124. package/dist/types/widgets/markdown/types.d.ts +2 -16
  125. package/dist/types/widgets/note/style.d.ts +14 -16
  126. package/dist/types/widgets/pie/download.d.ts +12 -0
  127. package/dist/types/widgets/pie/index.d.ts +4 -3
  128. package/dist/types/widgets/pie/skeleton.d.ts +13 -1
  129. package/dist/types/widgets/pie/types.d.ts +57 -9
  130. package/dist/types/widgets/range/index.d.ts +4 -6
  131. package/dist/types/widgets/range/range-ui.d.ts +25 -3
  132. package/dist/types/widgets/range/skeleton.d.ts +9 -1
  133. package/dist/types/widgets/range/style.d.ts +40 -2
  134. package/dist/types/widgets/range/types.d.ts +26 -22
  135. package/dist/types/widgets/scatterplot/download.d.ts +11 -0
  136. package/dist/types/widgets/scatterplot/index.d.ts +5 -3
  137. package/dist/types/widgets/scatterplot/skeleton.d.ts +12 -1
  138. package/dist/types/widgets/scatterplot/types.d.ts +54 -9
  139. package/dist/types/widgets/selection-summary/selection-summary.d.ts +26 -10
  140. package/dist/types/widgets/selection-summary/style.d.ts +32 -3
  141. package/dist/types/widgets/spread/download.d.ts +9 -0
  142. package/dist/types/widgets/spread/index.d.ts +7 -9
  143. package/dist/types/widgets/spread/skeleton.d.ts +9 -1
  144. package/dist/types/widgets/spread/spread-ui.d.ts +16 -3
  145. package/dist/types/widgets/spread/types.d.ts +20 -35
  146. package/dist/types/widgets/stores/index.d.ts +8 -3
  147. package/dist/types/widgets/stores/types.d.ts +45 -172
  148. package/dist/types/{widgets-v2 → widgets}/stores/widget-store-registry.d.ts +14 -0
  149. package/dist/types/widgets/subheader/style.d.ts +5 -14
  150. package/dist/types/widgets/subheader/subheader.d.ts +9 -11
  151. package/dist/types/widgets/table/download.d.ts +12 -0
  152. package/dist/types/widgets/table/helpers.d.ts +28 -34
  153. package/dist/types/widgets/table/index.d.ts +8 -17
  154. package/dist/types/widgets/table/skeleton.d.ts +17 -5
  155. package/dist/types/widgets/table/style.d.ts +21 -14
  156. package/dist/types/widgets/table/table-ui.d.ts +41 -29
  157. package/dist/types/widgets/table/types.d.ts +34 -182
  158. package/dist/types/widgets/timeseries/download.d.ts +12 -0
  159. package/dist/types/widgets/timeseries/index.d.ts +4 -2
  160. package/dist/types/widgets/timeseries/skeleton.d.ts +7 -0
  161. package/dist/types/widgets/timeseries/types.d.ts +60 -9
  162. package/dist/types/{widgets-v2 → widgets}/types.d.ts +7 -6
  163. package/dist/types/widgets/utils/index.d.ts +3 -7
  164. package/dist/types/widgets/wrapper/index.d.ts +4 -6
  165. package/dist/types/{widgets-v2 → widgets}/wrapper/style.d.ts +2 -31
  166. package/dist/types/{widgets-v2 → widgets}/wrapper/widget-actions.d.ts +2 -2
  167. package/dist/types/{widgets-v2 → widgets}/wrapper/widget-wrapper.d.ts +2 -2
  168. package/dist/{utils-Dr6gf3vD.js → utils-C-eWwOhE.js} +5 -5
  169. package/dist/utils-C-eWwOhE.js.map +1 -0
  170. package/dist/widgets/actions.js +4 -2
  171. package/dist/widgets/bar.js +196 -132
  172. package/dist/widgets/bar.js.map +1 -1
  173. package/dist/widgets/category.js +2 -450
  174. package/dist/widgets/echart.js +2 -3
  175. package/dist/widgets/formula.js +2 -3
  176. package/dist/widgets/histogram.js +257 -160
  177. package/dist/widgets/histogram.js.map +1 -1
  178. package/dist/widgets/markdown.js +3 -148
  179. package/dist/widgets/pie.js +311 -197
  180. package/dist/widgets/pie.js.map +1 -1
  181. package/dist/widgets/range.js +2 -233
  182. package/dist/widgets/scatterplot.js +294 -196
  183. package/dist/widgets/scatterplot.js.map +1 -1
  184. package/dist/widgets/spread.js +2 -158
  185. package/dist/widgets/stores.js +2 -3
  186. package/dist/widgets/table.js +2 -599
  187. package/dist/widgets/timeseries.js +244 -136
  188. package/dist/widgets/timeseries.js.map +1 -1
  189. package/dist/widgets/utils.js +2 -18
  190. package/dist/widgets.js +911 -0
  191. package/dist/widgets.js.map +1 -0
  192. package/dist/{zoom-toggle-IsF8BnAp.js → zoom-toggle-MmLjMTEw.js} +5 -5
  193. package/dist/zoom-toggle-MmLjMTEw.js.map +1 -0
  194. package/package.json +43 -129
  195. package/src/chat/bubbles/chat-agent-message-markdown.tsx +1 -1
  196. package/src/chat/bubbles/chat-error-message.tsx +9 -3
  197. package/src/chat/bubbles/chat-suggestion-button.tsx +8 -3
  198. package/src/chat/containers/chat-footer.tsx +6 -2
  199. package/src/chat/containers/chat-starter.tsx +6 -4
  200. package/src/chat/feedback/chat-tool-full-view-dialog.tsx +3 -1
  201. package/src/chat/feedback/chat-tool-group.test.tsx +1 -1
  202. package/src/chat/feedback/chat-tool-group.tsx +40 -9
  203. package/src/chat/feedback/chat-tool-trace.tsx +55 -19
  204. package/src/chat/types.ts +5 -2
  205. package/src/components/basemaps/header.tsx +6 -1
  206. package/src/components/index.ts +2 -3
  207. package/src/components/lasso-tool/geometry-toolbar.tsx +1 -1
  208. package/src/components/lasso-tool/lasso-tool-inline.tsx +12 -4
  209. package/src/components/lasso-tool/lasso-tool.tsx +26 -15
  210. package/src/components/lasso-tool/layer-filters.tsx +36 -11
  211. package/src/components/lasso-tool/options-sections.test.tsx +13 -2
  212. package/src/components/lasso-tool/options-sections.tsx +17 -7
  213. package/src/components/lasso-tool/toolbar/connected.tsx +1 -1
  214. package/src/components/lasso-tool/toolbar/context.tsx +1 -1
  215. package/src/components/measurement-tools/measurement-tools.tsx +28 -13
  216. package/src/components/no-data-alert/no-data-alert.tsx +12 -2
  217. package/src/components/responsive-drawer/responsive-drawer.tsx +0 -1
  218. package/src/components/types.ts +17 -0
  219. package/src/components/zoom-controls/zoom-controls.tsx +3 -1
  220. package/src/legend/components/legend-actions/legend-actions.tsx +2 -2
  221. package/src/legend/components/legend-category/legend-category-ui.tsx +7 -3
  222. package/src/legend/components/legend-config-select/legend-config-select.tsx +6 -2
  223. package/src/legend/components/legend-group/legend-group.tsx +6 -2
  224. package/src/legend/components/legend-group/styles.ts +1 -1
  225. package/src/legend/components/legend-icon/legend-icon-ui.tsx +7 -3
  226. package/src/legend/components/legend-opacity/legend-opacity.tsx +9 -3
  227. package/src/legend/components/legend-proportion/legend-proportion-ui.tsx +19 -3
  228. package/src/legend/components/legend-ramp/legend-ramp-ui.tsx +31 -7
  229. package/src/legend/components/legend-row/legend-row.tsx +2 -2
  230. package/src/legend/components/legend-row/styles.ts +1 -1
  231. package/src/legend/components/legend-sortable/legend-sortable.tsx +7 -3
  232. package/src/legend/components/legend-swatch/legend-swatch.tsx +2 -1
  233. package/src/legend/components/legend-visible-layers/legend-visible-layers.tsx +18 -9
  234. package/src/legend/index.ts +1 -1
  235. package/src/legend/provider/legend-provider.tsx +2 -2
  236. package/src/legend/stores/legend-store-registry.ts +1 -1
  237. package/src/migration/v4/classes.ts +56 -0
  238. package/src/migration/v4/icons.ts +56 -0
  239. package/src/migration/v4/index.ts +17 -0
  240. package/src/migration/v4/migration.test.ts +772 -0
  241. package/src/migration/v4/rules.ts +444 -0
  242. package/src/migration/v4/transform.ts +92 -0
  243. package/src/migration/v4/transforms/helpers.ts +369 -0
  244. package/src/migration/v4/transforms/meridian-5.ts +163 -0
  245. package/src/migration/v4/transforms/ps-react-ui.ts +99 -0
  246. package/src/migration/v4/transforms/v5-v6.ts +161 -0
  247. package/src/migration/v4/transforms/v6-v7.ts +342 -0
  248. package/src/migration/v4/transforms/v7-v9-dom.ts +403 -0
  249. package/src/migration/v4/transforms/v7-v9-props.ts +529 -0
  250. package/src/migration/v4/widgets-v1.ts +199 -0
  251. package/src/{widgets-v2 → widgets}/PERFORMANCE.md +5 -5
  252. package/src/widgets/actions/brush-toggle/brush-toggle.test.tsx +144 -172
  253. package/src/widgets/actions/brush-toggle/brush-toggle.tsx +129 -108
  254. package/src/widgets/actions/brush-toggle/style.ts +5 -40
  255. package/src/widgets/actions/change-column/change-column-icon.tsx +14 -10
  256. package/src/widgets/actions/change-column/change-column.test.tsx +57 -288
  257. package/src/widgets/actions/change-column/change-column.tsx +116 -145
  258. package/src/widgets/actions/change-column/sortable-column-item.tsx +29 -17
  259. package/src/widgets/actions/change-column/types.ts +9 -18
  260. package/src/widgets/actions/download/download.test.tsx +290 -289
  261. package/src/widgets/actions/download/download.tsx +103 -89
  262. package/src/widgets/actions/download/exports.test.tsx +157 -247
  263. package/src/{widgets-v2 → widgets}/actions/download/exports.ts +1 -1
  264. package/src/{widgets-v2 → widgets}/actions/download/index.ts +1 -0
  265. package/src/{widgets-v2 → widgets}/actions/download/png-item.tsx +2 -2
  266. package/src/widgets/actions/download/types.ts +40 -15
  267. package/src/widgets/actions/download/widget-download.test.ts +30 -0
  268. package/src/widgets/actions/download/widget-download.ts +41 -0
  269. package/src/widgets/actions/fullscreen/fullscreen.test.tsx +162 -221
  270. package/src/widgets/actions/fullscreen/fullscreen.tsx +383 -76
  271. package/src/widgets/actions/fullscreen/types.ts +14 -31
  272. package/src/widgets/actions/index.ts +93 -68
  273. package/src/widgets/actions/lock-selection/lock-selection.test.tsx +259 -156
  274. package/src/widgets/actions/lock-selection/lock-selection.tsx +162 -102
  275. package/src/widgets/actions/relative-data/relative-data.test.tsx +65 -536
  276. package/src/widgets/actions/relative-data/relative-data.tsx +82 -163
  277. package/src/{widgets-v2 → widgets}/actions/relative-data/transforms.ts +2 -2
  278. package/src/widgets/actions/searcher/searcher-toggle.tsx +82 -55
  279. package/src/widgets/actions/searcher/searcher.tsx +96 -169
  280. package/src/widgets/actions/stack-toggle/stack-toggle.test.tsx +49 -402
  281. package/src/widgets/actions/stack-toggle/stack-toggle.tsx +39 -114
  282. package/src/widgets/actions/zoom-toggle/style.ts +5 -8
  283. package/src/widgets/actions/zoom-toggle/zoom-toggle.test.tsx +88 -303
  284. package/src/widgets/actions/zoom-toggle/zoom-toggle.tsx +87 -199
  285. package/src/widgets/bar/download.tsx +36 -0
  286. package/src/widgets/bar/index.ts +6 -5
  287. package/src/{widgets-v2 → widgets}/bar/options.ts +1 -1
  288. package/src/widgets/bar/skeleton.tsx +61 -52
  289. package/src/widgets/bar/types.ts +46 -11
  290. package/src/widgets/category/category-ui.test.tsx +846 -317
  291. package/src/widgets/category/category-ui.tsx +456 -127
  292. package/src/{widgets-v2 → widgets}/category/category.tsx +4 -4
  293. package/src/{widgets-v2 → widgets}/category/components/category-bar-stacked.tsx +2 -1
  294. package/src/widgets/category/components/category-bar.tsx +31 -12
  295. package/src/{widgets-v2 → widgets}/category/components/category-legend.test.tsx +7 -3
  296. package/src/widgets/category/components/category-legend.tsx +67 -18
  297. package/src/widgets/category/components/category-row-multi.tsx +66 -36
  298. package/src/widgets/category/components/category-row-other.tsx +63 -5
  299. package/src/widgets/category/components/category-row-single.tsx +48 -25
  300. package/src/{widgets-v2 → widgets}/category/components/category-row-stacked.tsx +2 -1
  301. package/src/widgets/category/download.ts +37 -0
  302. package/src/widgets/category/helpers.test.ts +17 -0
  303. package/src/widgets/category/helpers.ts +16 -0
  304. package/src/widgets/category/index.ts +25 -22
  305. package/src/widgets/category/skeleton.tsx +60 -10
  306. package/src/widgets/category/style.ts +267 -72
  307. package/src/widgets/category/types.ts +52 -32
  308. package/src/widgets/echart/echart-ui.test.tsx +250 -446
  309. package/src/widgets/echart/echart-ui.tsx +210 -52
  310. package/src/widgets/echart/echart.test.tsx +203 -518
  311. package/src/widgets/echart/echart.tsx +195 -52
  312. package/src/widgets/echart/index.ts +21 -15
  313. package/src/widgets/echart/shared-resize-observer.ts +30 -19
  314. package/src/{widgets-v2 → widgets}/echart/style.ts +3 -3
  315. package/src/{widgets-v2 → widgets}/formula/download.tsx +8 -29
  316. package/src/widgets/formula/formula-ui.test.tsx +68 -376
  317. package/src/widgets/formula/formula-ui.tsx +58 -22
  318. package/src/widgets/formula/index.ts +14 -21
  319. package/src/{widgets-v2 → widgets}/formula/note.tsx +8 -2
  320. package/src/{widgets-v2 → widgets}/formula/series.tsx +8 -25
  321. package/src/widgets/formula/skeleton.tsx +21 -4
  322. package/src/widgets/formula/style.ts +20 -12
  323. package/src/widgets/formula/types.ts +44 -45
  324. package/src/{widgets-v2 → widgets}/formula/value.tsx +2 -1
  325. package/src/{widgets-v2 → widgets}/histogram/download.ts +11 -25
  326. package/src/widgets/histogram/index.ts +10 -10
  327. package/src/{widgets-v2 → widgets}/histogram/options.ts +1 -1
  328. package/src/widgets/histogram/skeleton.tsx +63 -45
  329. package/src/widgets/histogram/types.ts +59 -18
  330. package/src/{widgets-v2 → widgets}/index.ts +3 -3
  331. package/src/{widgets-v2 → widgets}/markdown/download.tsx +9 -25
  332. package/src/widgets/markdown/index.ts +5 -13
  333. package/src/widgets/markdown/markdown-ui.test.tsx +53 -319
  334. package/src/widgets/markdown/markdown-ui.tsx +43 -47
  335. package/src/widgets/markdown/markdown.tsx +12 -15
  336. package/src/widgets/markdown/skeleton.tsx +26 -6
  337. package/src/widgets/markdown/style.ts +48 -23
  338. package/src/widgets/markdown/types.ts +2 -26
  339. package/src/widgets/note/style.ts +14 -17
  340. package/src/{widgets-v2 → widgets}/note/widget-note.tsx +15 -2
  341. package/src/{widgets-v2 → widgets}/pie/download.ts +10 -24
  342. package/src/widgets/pie/index.ts +7 -5
  343. package/src/{widgets-v2 → widgets}/pie/options.ts +1 -1
  344. package/src/widgets/pie/skeleton.tsx +84 -60
  345. package/src/widgets/pie/types.ts +57 -11
  346. package/src/widgets/range/index.ts +4 -16
  347. package/src/widgets/range/range-ui.test.tsx +115 -182
  348. package/src/widgets/range/range-ui.tsx +274 -8
  349. package/src/widgets/range/skeleton.tsx +41 -8
  350. package/src/widgets/range/style.ts +16 -12
  351. package/src/widgets/range/types.ts +26 -28
  352. package/src/widgets/scatterplot/download.ts +37 -0
  353. package/src/widgets/scatterplot/index.ts +11 -5
  354. package/src/{widgets-v2 → widgets}/scatterplot/options.ts +1 -1
  355. package/src/widgets/scatterplot/skeleton.tsx +76 -51
  356. package/src/widgets/scatterplot/types.ts +54 -12
  357. package/src/widgets/selection-summary/selection-summary.tsx +64 -39
  358. package/src/widgets/selection-summary/style.ts +30 -2
  359. package/src/widgets/spread/download.ts +41 -0
  360. package/src/widgets/spread/index.ts +11 -23
  361. package/src/widgets/spread/skeleton.tsx +32 -4
  362. package/src/widgets/spread/spread-ui.test.tsx +98 -358
  363. package/src/widgets/spread/spread-ui.tsx +44 -24
  364. package/src/widgets/spread/types.ts +21 -41
  365. package/src/{widgets-v2 → widgets}/state/widget-state.tsx +13 -3
  366. package/src/widgets/stores/index.ts +48 -10
  367. package/src/{widgets-v2 → widgets}/stores/transforms.ts +1 -1
  368. package/src/widgets/stores/types.ts +42 -181
  369. package/src/{widgets-v2 → widgets}/stores/use-transform.ts +1 -1
  370. package/src/{widgets-v2 → widgets}/stores/widget-store-registry.test.ts +25 -0
  371. package/src/{widgets-v2 → widgets}/stores/widget-store-registry.ts +24 -2
  372. package/src/widgets/subheader/style.ts +5 -13
  373. package/src/widgets/subheader/subheader.test.tsx +22 -37
  374. package/src/widgets/subheader/subheader.tsx +11 -30
  375. package/src/widgets/table/download.ts +29 -0
  376. package/src/widgets/table/helpers.test.ts +197 -208
  377. package/src/widgets/table/helpers.ts +108 -84
  378. package/src/widgets/table/index.ts +23 -54
  379. package/src/widgets/table/skeleton.tsx +38 -21
  380. package/src/widgets/table/style.ts +23 -14
  381. package/src/widgets/table/table-ui.tsx +348 -44
  382. package/src/widgets/table/types.ts +37 -205
  383. package/src/{widgets-v2 → widgets}/test-utils.ts +1 -1
  384. package/src/{widgets-v2 → widgets}/timeseries/download.ts +14 -28
  385. package/src/widgets/timeseries/index.ts +8 -5
  386. package/src/{widgets-v2 → widgets}/timeseries/options.ts +1 -1
  387. package/src/widgets/timeseries/skeleton.tsx +67 -46
  388. package/src/widgets/timeseries/types.ts +60 -12
  389. package/src/{widgets-v2 → widgets}/types.ts +8 -6
  390. package/src/widgets/utils/index.ts +3 -26
  391. package/src/widgets/wrapper/index.ts +14 -16
  392. package/src/{widgets-v2 → widgets}/wrapper/style.ts +2 -38
  393. package/src/{widgets-v2 → widgets}/wrapper/widget-actions.tsx +2 -2
  394. package/src/{widgets-v2 → widgets}/wrapper/widget-wrapper.test.tsx +2 -32
  395. package/src/{widgets-v2 → widgets}/wrapper/widget-wrapper.tsx +36 -58
  396. package/dist/actions-CGJD6q0t.js +0 -1318
  397. package/dist/actions-CGJD6q0t.js.map +0 -1
  398. package/dist/actions-Dhlz_adK.js +0 -1167
  399. package/dist/actions-Dhlz_adK.js.map +0 -1
  400. package/dist/category-D01ruG-l.js +0 -842
  401. package/dist/category-D01ruG-l.js.map +0 -1
  402. package/dist/chart-config-B_fdIcD3.js.map +0 -1
  403. package/dist/cjs-CBrZjPCj.js +0 -75
  404. package/dist/cjs-CBrZjPCj.js.map +0 -1
  405. package/dist/components-FED-ArwH.js.map +0 -1
  406. package/dist/copy-button-TTlZONkX.js +0 -34
  407. package/dist/copy-button-TTlZONkX.js.map +0 -1
  408. package/dist/csv-modifiers-D6HGC24b.js +0 -26
  409. package/dist/csv-modifiers-D6HGC24b.js.map +0 -1
  410. package/dist/download-DGgFOaXj.js.map +0 -1
  411. package/dist/echart-BkaV3V5G.js +0 -133
  412. package/dist/echart-BkaV3V5G.js.map +0 -1
  413. package/dist/echart-CwzbPElc.js.map +0 -1
  414. package/dist/formatter-wVO81tYk.js +0 -6
  415. package/dist/formatter-wVO81tYk.js.map +0 -1
  416. package/dist/formula-BIxJr1P3.js +0 -285
  417. package/dist/formula-BIxJr1P3.js.map +0 -1
  418. package/dist/formula-YfZmmuYX.js +0 -190
  419. package/dist/formula-YfZmmuYX.js.map +0 -1
  420. package/dist/hooks-zf5gKZYq.js +0 -22
  421. package/dist/hooks-zf5gKZYq.js.map +0 -1
  422. package/dist/markdown-content-BWUqwx9F.js.map +0 -1
  423. package/dist/markdown-oo9mnJun.js.map +0 -1
  424. package/dist/range-BCMAl5xf.js.map +0 -1
  425. package/dist/row-CvVGBuy_.js +0 -35
  426. package/dist/row-CvVGBuy_.js.map +0 -1
  427. package/dist/shared-resize-observer-BEiP2rQt.js +0 -157
  428. package/dist/shared-resize-observer-BEiP2rQt.js.map +0 -1
  429. package/dist/smart-tooltip-CwGHCqab.js +0 -34
  430. package/dist/smart-tooltip-CwGHCqab.js.map +0 -1
  431. package/dist/spread-CgCTKPQD.js.map +0 -1
  432. package/dist/stores-tiFePP0A.js.map +0 -1
  433. package/dist/styles-Y-qGBELO.js +0 -13
  434. package/dist/styles-Y-qGBELO.js.map +0 -1
  435. package/dist/table-lb5momun.js.map +0 -1
  436. package/dist/tooltip-DJUGNZxY.js +0 -23
  437. package/dist/tooltip-DJUGNZxY.js.map +0 -1
  438. package/dist/types/components/list-data/list-data-skeleton.d.ts +0 -5
  439. package/dist/types/components/list-data/list-data.d.ts +0 -19
  440. package/dist/types/components/list-data/styles.d.ts +0 -34
  441. package/dist/types/components/list-data/types.d.ts +0 -23
  442. package/dist/types/hooks/index.d.ts +0 -1
  443. package/dist/types/hooks/use-skeleton.d.ts +0 -1
  444. package/dist/types/hooks/use-widget-ref.d.ts +0 -21
  445. package/dist/types/widgets/actions/brush-toggle/brush-overlay.d.ts +0 -24
  446. package/dist/types/widgets/actions/brush-toggle/hit-test.d.ts +0 -19
  447. package/dist/types/widgets/actions/brush-toggle/types.d.ts +0 -73
  448. package/dist/types/widgets/actions/fullscreen/styles.d.ts +0 -16
  449. package/dist/types/widgets/actions/lock-selection/types.d.ts +0 -38
  450. package/dist/types/widgets/actions/relative-data/types.d.ts +0 -29
  451. package/dist/types/widgets/actions/relative-data/utils.d.ts +0 -9
  452. package/dist/types/widgets/actions/searcher/types.d.ts +0 -64
  453. package/dist/types/widgets/actions/shared/styles.d.ts +0 -11
  454. package/dist/types/widgets/actions/stack-toggle/grouped-bar-chart-icon.d.ts +0 -1
  455. package/dist/types/widgets/actions/stack-toggle/types.d.ts +0 -25
  456. package/dist/types/widgets/actions/zoom-toggle/types.d.ts +0 -41
  457. package/dist/types/widgets/bar/config.d.ts +0 -9
  458. package/dist/types/widgets/bar/style.d.ts +0 -37
  459. package/dist/types/widgets/category/config.d.ts +0 -20
  460. package/dist/types/widgets/echart/const.d.ts +0 -1
  461. package/dist/types/widgets/echart/options.d.ts +0 -9
  462. package/dist/types/widgets/echart/types.d.ts +0 -38
  463. package/dist/types/widgets/echart/utils.d.ts +0 -128
  464. package/dist/types/widgets/error/error.d.ts +0 -12
  465. package/dist/types/widgets/error/index.d.ts +0 -2
  466. package/dist/types/widgets/error/types.d.ts +0 -20
  467. package/dist/types/widgets/formula/components/item.d.ts +0 -5
  468. package/dist/types/widgets/formula/components/prefix.d.ts +0 -5
  469. package/dist/types/widgets/formula/components/row.d.ts +0 -5
  470. package/dist/types/widgets/formula/components/series.d.ts +0 -5
  471. package/dist/types/widgets/formula/components/suffix.d.ts +0 -5
  472. package/dist/types/widgets/formula/components/value.d.ts +0 -5
  473. package/dist/types/widgets/formula/config.d.ts +0 -15
  474. package/dist/types/widgets/formula/serializer.d.ts +0 -16
  475. package/dist/types/widgets/histogram/config.d.ts +0 -21
  476. package/dist/types/widgets/histogram/style.d.ts +0 -15
  477. package/dist/types/widgets/loader/index.d.ts +0 -3
  478. package/dist/types/widgets/loader/loader.d.ts +0 -24
  479. package/dist/types/widgets/loader/types.d.ts +0 -9
  480. package/dist/types/widgets/loader/utils.d.ts +0 -35
  481. package/dist/types/widgets/markdown/config.d.ts +0 -14
  482. package/dist/types/widgets/no-data/index.d.ts +0 -2
  483. package/dist/types/widgets/no-data/no-data.d.ts +0 -36
  484. package/dist/types/widgets/no-data/style.d.ts +0 -6
  485. package/dist/types/widgets/no-data/types.d.ts +0 -71
  486. package/dist/types/widgets/note/index.d.ts +0 -2
  487. package/dist/types/widgets/note/note.d.ts +0 -12
  488. package/dist/types/widgets/note/types.d.ts +0 -8
  489. package/dist/types/widgets/pie/config.d.ts +0 -9
  490. package/dist/types/widgets/pie/style.d.ts +0 -15
  491. package/dist/types/widgets/range/components/range-item.d.ts +0 -5
  492. package/dist/types/widgets/range/config.d.ts +0 -7
  493. package/dist/types/widgets/range/serializer.d.ts +0 -16
  494. package/dist/types/widgets/scatterplot/config.d.ts +0 -9
  495. package/dist/types/widgets/scatterplot/style.d.ts +0 -24
  496. package/dist/types/widgets/selection-summary/index.d.ts +0 -2
  497. package/dist/types/widgets/selection-summary/types.d.ts +0 -13
  498. package/dist/types/widgets/skeleton-loader/index.d.ts +0 -2
  499. package/dist/types/widgets/skeleton-loader/skeleton-loader.d.ts +0 -12
  500. package/dist/types/widgets/skeleton-loader/types.d.ts +0 -7
  501. package/dist/types/widgets/spread/components/max-value.d.ts +0 -5
  502. package/dist/types/widgets/spread/components/min-value.d.ts +0 -5
  503. package/dist/types/widgets/spread/components/separator.d.ts +0 -5
  504. package/dist/types/widgets/spread/config.d.ts +0 -16
  505. package/dist/types/widgets/spread/style.d.ts +0 -21
  506. package/dist/types/widgets/stores/use-widget-selector.d.ts +0 -35
  507. package/dist/types/widgets/stores/widget-store.d.ts +0 -60
  508. package/dist/types/widgets/subheader/index.d.ts +0 -2
  509. package/dist/types/widgets/subheader/types.d.ts +0 -10
  510. package/dist/types/widgets/table/components/cell-header.d.ts +0 -5
  511. package/dist/types/widgets/table/components/cell.d.ts +0 -18
  512. package/dist/types/widgets/table/components/pagination-actions.d.ts +0 -5
  513. package/dist/types/widgets/table/components/pagination.d.ts +0 -5
  514. package/dist/types/widgets/table/components/row.d.ts +0 -5
  515. package/dist/types/widgets/table/config.d.ts +0 -21
  516. package/dist/types/widgets/table/hooks/use-pagination.d.ts +0 -41
  517. package/dist/types/widgets/table/hooks/use-selection.d.ts +0 -39
  518. package/dist/types/widgets/table/hooks/use-sort.d.ts +0 -30
  519. package/dist/types/widgets/table/serializer.d.ts +0 -16
  520. package/dist/types/widgets/timeseries/config.d.ts +0 -9
  521. package/dist/types/widgets/timeseries/style.d.ts +0 -38
  522. package/dist/types/widgets/toolbar-actions/index.d.ts +0 -2
  523. package/dist/types/widgets/toolbar-actions/styles.d.ts +0 -37
  524. package/dist/types/widgets/toolbar-actions/toolbar-actions.d.ts +0 -17
  525. package/dist/types/widgets/toolbar-actions/types.d.ts +0 -52
  526. package/dist/types/widgets/utils/chart-config/config-factory.d.ts +0 -38
  527. package/dist/types/widgets/utils/chart-config/csv-modifiers.d.ts +0 -19
  528. package/dist/types/widgets/utils/chart-config/download-config.d.ts +0 -3
  529. package/dist/types/widgets/utils/chart-config/index.d.ts +0 -9
  530. package/dist/types/widgets/utils/formatter.d.ts +0 -2
  531. package/dist/types/widgets/utils/skeleton/index.d.ts +0 -4
  532. package/dist/types/widgets/utils/skeleton/styles.d.ts +0 -19
  533. package/dist/types/widgets/wrapper/components/actions.d.ts +0 -5
  534. package/dist/types/widgets/wrapper/components/options.d.ts +0 -5
  535. package/dist/types/widgets/wrapper/components/title.d.ts +0 -9
  536. package/dist/types/widgets/wrapper/styles.d.ts +0 -89
  537. package/dist/types/widgets/wrapper/types.d.ts +0 -37
  538. package/dist/types/widgets/wrapper/wrapper-ui.d.ts +0 -16
  539. package/dist/types/widgets/wrapper/wrapper.d.ts +0 -16
  540. package/dist/types/widgets-v2/actions/brush-toggle/brush-toggle.d.ts +0 -56
  541. package/dist/types/widgets-v2/actions/change-column/change-column-icon.d.ts +0 -2
  542. package/dist/types/widgets-v2/actions/change-column/change-column.d.ts +0 -29
  543. package/dist/types/widgets-v2/actions/change-column/sortable-column-item.d.ts +0 -14
  544. package/dist/types/widgets-v2/actions/change-column/types.d.ts +0 -10
  545. package/dist/types/widgets-v2/actions/download/download.d.ts +0 -18
  546. package/dist/types/widgets-v2/actions/download/exports.d.ts +0 -37
  547. package/dist/types/widgets-v2/actions/download/types.d.ts +0 -46
  548. package/dist/types/widgets-v2/actions/fullscreen/fullscreen.d.ts +0 -85
  549. package/dist/types/widgets-v2/actions/fullscreen/types.d.ts +0 -14
  550. package/dist/types/widgets-v2/actions/index.d.ts +0 -10
  551. package/dist/types/widgets-v2/actions/lock-selection/lock-selection.d.ts +0 -57
  552. package/dist/types/widgets-v2/actions/relative-data/relative-data.d.ts +0 -39
  553. package/dist/types/widgets-v2/actions/searcher/searcher-toggle.d.ts +0 -23
  554. package/dist/types/widgets-v2/actions/searcher/searcher.d.ts +0 -11
  555. package/dist/types/widgets-v2/actions/stack-toggle/stack-toggle.d.ts +0 -10
  556. package/dist/types/widgets-v2/actions/stack-toggle/style.d.ts +0 -12
  557. package/dist/types/widgets-v2/actions/zoom-toggle/style.d.ts +0 -12
  558. package/dist/types/widgets-v2/actions/zoom-toggle/zoom-toggle.d.ts +0 -35
  559. package/dist/types/widgets-v2/bar/download.d.ts +0 -24
  560. package/dist/types/widgets-v2/bar/index.d.ts +0 -4
  561. package/dist/types/widgets-v2/bar/skeleton.d.ts +0 -6
  562. package/dist/types/widgets-v2/bar/types.d.ts +0 -46
  563. package/dist/types/widgets-v2/category/category-ui.d.ts +0 -96
  564. package/dist/types/widgets-v2/category/components/category-bar.d.ts +0 -23
  565. package/dist/types/widgets-v2/category/components/category-legend.d.ts +0 -34
  566. package/dist/types/widgets-v2/category/components/category-row-multi.d.ts +0 -31
  567. package/dist/types/widgets-v2/category/components/category-row-other.d.ts +0 -26
  568. package/dist/types/widgets-v2/category/components/category-row-single.d.ts +0 -28
  569. package/dist/types/widgets-v2/category/download.d.ts +0 -16
  570. package/dist/types/widgets-v2/category/index.d.ts +0 -10
  571. package/dist/types/widgets-v2/category/skeleton.d.ts +0 -11
  572. package/dist/types/widgets-v2/category/style.d.ts +0 -193
  573. package/dist/types/widgets-v2/category/types.d.ts +0 -55
  574. package/dist/types/widgets-v2/echart/echart-ui.d.ts +0 -44
  575. package/dist/types/widgets-v2/echart/echart.d.ts +0 -83
  576. package/dist/types/widgets-v2/echart/index.d.ts +0 -4
  577. package/dist/types/widgets-v2/echart/shared-resize-observer.d.ts +0 -5
  578. package/dist/types/widgets-v2/formula/download.d.ts +0 -20
  579. package/dist/types/widgets-v2/formula/formula-ui.d.ts +0 -20
  580. package/dist/types/widgets-v2/formula/index.d.ts +0 -11
  581. package/dist/types/widgets-v2/formula/skeleton.d.ts +0 -4
  582. package/dist/types/widgets-v2/formula/style.d.ts +0 -29
  583. package/dist/types/widgets-v2/formula/types.d.ts +0 -43
  584. package/dist/types/widgets-v2/histogram/download.d.ts +0 -17
  585. package/dist/types/widgets-v2/histogram/index.d.ts +0 -5
  586. package/dist/types/widgets-v2/histogram/skeleton.d.ts +0 -9
  587. package/dist/types/widgets-v2/histogram/types.d.ts +0 -60
  588. package/dist/types/widgets-v2/markdown/download.d.ts +0 -16
  589. package/dist/types/widgets-v2/markdown/index.d.ts +0 -6
  590. package/dist/types/widgets-v2/markdown/markdown-ui.d.ts +0 -12
  591. package/dist/types/widgets-v2/markdown/markdown.d.ts +0 -6
  592. package/dist/types/widgets-v2/markdown/skeleton.d.ts +0 -4
  593. package/dist/types/widgets-v2/markdown/style.d.ts +0 -61
  594. package/dist/types/widgets-v2/markdown/types.d.ts +0 -4
  595. package/dist/types/widgets-v2/note/style.d.ts +0 -26
  596. package/dist/types/widgets-v2/pie/download.d.ts +0 -17
  597. package/dist/types/widgets-v2/pie/index.d.ts +0 -4
  598. package/dist/types/widgets-v2/pie/skeleton.d.ts +0 -13
  599. package/dist/types/widgets-v2/pie/types.d.ts +0 -57
  600. package/dist/types/widgets-v2/range/index.d.ts +0 -4
  601. package/dist/types/widgets-v2/range/range-ui.d.ts +0 -27
  602. package/dist/types/widgets-v2/range/skeleton.d.ts +0 -9
  603. package/dist/types/widgets-v2/range/style.d.ts +0 -40
  604. package/dist/types/widgets-v2/range/types.d.ts +0 -37
  605. package/dist/types/widgets-v2/scatterplot/download.d.ts +0 -16
  606. package/dist/types/widgets-v2/scatterplot/index.d.ts +0 -5
  607. package/dist/types/widgets-v2/scatterplot/skeleton.d.ts +0 -12
  608. package/dist/types/widgets-v2/scatterplot/types.d.ts +0 -54
  609. package/dist/types/widgets-v2/selection-summary/selection-summary.d.ts +0 -29
  610. package/dist/types/widgets-v2/selection-summary/style.d.ts +0 -38
  611. package/dist/types/widgets-v2/spread/download.d.ts +0 -15
  612. package/dist/types/widgets-v2/spread/index.d.ts +0 -7
  613. package/dist/types/widgets-v2/spread/skeleton.d.ts +0 -9
  614. package/dist/types/widgets-v2/spread/spread-ui.d.ts +0 -18
  615. package/dist/types/widgets-v2/spread/types.d.ts +0 -25
  616. package/dist/types/widgets-v2/stores/index.d.ts +0 -8
  617. package/dist/types/widgets-v2/stores/types.d.ts +0 -55
  618. package/dist/types/widgets-v2/subheader/style.d.ts +0 -10
  619. package/dist/types/widgets-v2/subheader/subheader.d.ts +0 -11
  620. package/dist/types/widgets-v2/table/download.d.ts +0 -18
  621. package/dist/types/widgets-v2/table/helpers.d.ts +0 -32
  622. package/dist/types/widgets-v2/table/index.d.ts +0 -8
  623. package/dist/types/widgets-v2/table/skeleton.d.ts +0 -22
  624. package/dist/types/widgets-v2/table/style.d.ts +0 -40
  625. package/dist/types/widgets-v2/table/table-ui.d.ts +0 -44
  626. package/dist/types/widgets-v2/table/types.d.ts +0 -48
  627. package/dist/types/widgets-v2/timeseries/download.d.ts +0 -17
  628. package/dist/types/widgets-v2/timeseries/index.d.ts +0 -5
  629. package/dist/types/widgets-v2/timeseries/skeleton.d.ts +0 -8
  630. package/dist/types/widgets-v2/timeseries/types.d.ts +0 -60
  631. package/dist/types/widgets-v2/utils/index.d.ts +0 -3
  632. package/dist/types/widgets-v2/wrapper/index.d.ts +0 -4
  633. package/dist/use-widget-selector-VSPhfhNm.js +0 -12
  634. package/dist/use-widget-selector-VSPhfhNm.js.map +0 -1
  635. package/dist/utils-Dr6gf3vD.js.map +0 -1
  636. package/dist/widget-store-BFPKYm4R.js +0 -187
  637. package/dist/widget-store-BFPKYm4R.js.map +0 -1
  638. package/dist/widgets/category.js.map +0 -1
  639. package/dist/widgets/error.js +0 -30
  640. package/dist/widgets/error.js.map +0 -1
  641. package/dist/widgets/loader.js +0 -66
  642. package/dist/widgets/loader.js.map +0 -1
  643. package/dist/widgets/markdown.js.map +0 -1
  644. package/dist/widgets/no-data.js +0 -55
  645. package/dist/widgets/no-data.js.map +0 -1
  646. package/dist/widgets/note.js +0 -127
  647. package/dist/widgets/note.js.map +0 -1
  648. package/dist/widgets/range.js.map +0 -1
  649. package/dist/widgets/selection-summary.js +0 -41
  650. package/dist/widgets/selection-summary.js.map +0 -1
  651. package/dist/widgets/skeleton-loader.js +0 -24
  652. package/dist/widgets/skeleton-loader.js.map +0 -1
  653. package/dist/widgets/spread.js.map +0 -1
  654. package/dist/widgets/subheader.js +0 -51
  655. package/dist/widgets/subheader.js.map +0 -1
  656. package/dist/widgets/table.js.map +0 -1
  657. package/dist/widgets/toolbar-actions.js +0 -145
  658. package/dist/widgets/toolbar-actions.js.map +0 -1
  659. package/dist/widgets/utils.js.map +0 -1
  660. package/dist/widgets/wrapper.js +0 -273
  661. package/dist/widgets/wrapper.js.map +0 -1
  662. package/dist/widgets-v2/actions.js +0 -4
  663. package/dist/widgets-v2/bar.js +0 -260
  664. package/dist/widgets-v2/bar.js.map +0 -1
  665. package/dist/widgets-v2/category.js +0 -2
  666. package/dist/widgets-v2/echart.js +0 -2
  667. package/dist/widgets-v2/formula.js +0 -2
  668. package/dist/widgets-v2/histogram.js +0 -297
  669. package/dist/widgets-v2/histogram.js.map +0 -1
  670. package/dist/widgets-v2/markdown.js +0 -3
  671. package/dist/widgets-v2/pie.js +0 -373
  672. package/dist/widgets-v2/pie.js.map +0 -1
  673. package/dist/widgets-v2/range.js +0 -2
  674. package/dist/widgets-v2/scatterplot.js +0 -330
  675. package/dist/widgets-v2/scatterplot.js.map +0 -1
  676. package/dist/widgets-v2/spread.js +0 -2
  677. package/dist/widgets-v2/stores.js +0 -2
  678. package/dist/widgets-v2/table.js +0 -2
  679. package/dist/widgets-v2/timeseries.js +0 -294
  680. package/dist/widgets-v2/timeseries.js.map +0 -1
  681. package/dist/widgets-v2/utils.js +0 -2
  682. package/dist/widgets-v2.js +0 -952
  683. package/dist/widgets-v2.js.map +0 -1
  684. package/dist/zoom-toggle-IsF8BnAp.js.map +0 -1
  685. package/src/components/list-data/list-data-skeleton.test.tsx +0 -10
  686. package/src/components/list-data/list-data-skeleton.tsx +0 -40
  687. package/src/components/list-data/list-data.test.tsx +0 -167
  688. package/src/components/list-data/list-data.tsx +0 -124
  689. package/src/components/list-data/styles.ts +0 -37
  690. package/src/components/list-data/types.ts +0 -25
  691. package/src/hooks/index.ts +0 -1
  692. package/src/hooks/use-skeleton.test.tsx +0 -32
  693. package/src/hooks/use-skeleton.ts +0 -19
  694. package/src/hooks/use-widget-ref.ts +0 -34
  695. package/src/widgets/README.md +0 -277
  696. package/src/widgets/actions/brush-toggle/brush-overlay.test.tsx +0 -465
  697. package/src/widgets/actions/brush-toggle/brush-overlay.tsx +0 -408
  698. package/src/widgets/actions/brush-toggle/hit-test.test.ts +0 -65
  699. package/src/widgets/actions/brush-toggle/hit-test.ts +0 -45
  700. package/src/widgets/actions/brush-toggle/types.ts +0 -78
  701. package/src/widgets/actions/change-column/change-column-dnd.test.tsx +0 -193
  702. package/src/widgets/actions/change-column/sortable-column-item.test.tsx +0 -124
  703. package/src/widgets/actions/download/exports.tsx +0 -118
  704. package/src/widgets/actions/fullscreen/styles.ts +0 -17
  705. package/src/widgets/actions/lock-selection/types.ts +0 -43
  706. package/src/widgets/actions/relative-data/types.ts +0 -33
  707. package/src/widgets/actions/relative-data/utils.test.ts +0 -223
  708. package/src/widgets/actions/relative-data/utils.ts +0 -58
  709. package/src/widgets/actions/searcher/searcher-toggle.test.tsx +0 -354
  710. package/src/widgets/actions/searcher/types.ts +0 -72
  711. package/src/widgets/actions/shared/styles.ts +0 -12
  712. package/src/widgets/actions/stack-toggle/grouped-bar-chart-icon.tsx +0 -14
  713. package/src/widgets/actions/stack-toggle/types.ts +0 -29
  714. package/src/widgets/actions/zoom-toggle/types.ts +0 -44
  715. package/src/widgets/bar/config.ts +0 -140
  716. package/src/widgets/bar/style.ts +0 -33
  717. package/src/widgets/category/components/category-rows.test.tsx +0 -213
  718. package/src/widgets/category/config.ts +0 -86
  719. package/src/widgets/echart/const.ts +0 -1
  720. package/src/widgets/echart/options.ts +0 -57
  721. package/src/widgets/echart/types.ts +0 -45
  722. package/src/widgets/echart/utils.test.ts +0 -277
  723. package/src/widgets/echart/utils.ts +0 -244
  724. package/src/widgets/error/error.test.tsx +0 -331
  725. package/src/widgets/error/error.tsx +0 -51
  726. package/src/widgets/error/index.ts +0 -2
  727. package/src/widgets/error/types.ts +0 -24
  728. package/src/widgets/formula/components/item.test.tsx +0 -249
  729. package/src/widgets/formula/components/item.tsx +0 -21
  730. package/src/widgets/formula/components/prefix.test.tsx +0 -341
  731. package/src/widgets/formula/components/prefix.tsx +0 -19
  732. package/src/widgets/formula/components/row.test.tsx +0 -364
  733. package/src/widgets/formula/components/row.tsx +0 -24
  734. package/src/widgets/formula/components/series.tsx +0 -35
  735. package/src/widgets/formula/components/suffix.test.tsx +0 -383
  736. package/src/widgets/formula/components/suffix.tsx +0 -29
  737. package/src/widgets/formula/components/value.test.tsx +0 -329
  738. package/src/widgets/formula/components/value.tsx +0 -24
  739. package/src/widgets/formula/config.test.ts +0 -37
  740. package/src/widgets/formula/config.ts +0 -38
  741. package/src/widgets/formula/serializer.test.tsx +0 -144
  742. package/src/widgets/formula/serializer.ts +0 -28
  743. package/src/widgets/histogram/config.ts +0 -230
  744. package/src/widgets/histogram/style.ts +0 -8
  745. package/src/widgets/loader/index.ts +0 -4
  746. package/src/widgets/loader/loader.tsx +0 -92
  747. package/src/widgets/loader/types.ts +0 -13
  748. package/src/widgets/loader/utils.test.ts +0 -112
  749. package/src/widgets/loader/utils.ts +0 -57
  750. package/src/widgets/markdown/config.ts +0 -28
  751. package/src/widgets/no-data/index.ts +0 -2
  752. package/src/widgets/no-data/no-data.test.tsx +0 -497
  753. package/src/widgets/no-data/no-data.tsx +0 -112
  754. package/src/widgets/no-data/style.ts +0 -18
  755. package/src/widgets/no-data/types.ts +0 -76
  756. package/src/widgets/note/index.ts +0 -2
  757. package/src/widgets/note/note.test.tsx +0 -391
  758. package/src/widgets/note/note.tsx +0 -124
  759. package/src/widgets/note/types.ts +0 -9
  760. package/src/widgets/pie/config.ts +0 -245
  761. package/src/widgets/pie/style.ts +0 -8
  762. package/src/widgets/range/components/range-item.test.tsx +0 -243
  763. package/src/widgets/range/components/range-item.tsx +0 -214
  764. package/src/widgets/range/config.ts +0 -10
  765. package/src/widgets/range/serializer.test.ts +0 -70
  766. package/src/widgets/range/serializer.ts +0 -27
  767. package/src/widgets/scatterplot/config.ts +0 -136
  768. package/src/widgets/scatterplot/style.ts +0 -21
  769. package/src/widgets/selection-summary/index.ts +0 -6
  770. package/src/widgets/selection-summary/types.ts +0 -14
  771. package/src/widgets/skeleton-loader/index.ts +0 -2
  772. package/src/widgets/skeleton-loader/skeleton-loader.test.tsx +0 -139
  773. package/src/widgets/skeleton-loader/skeleton-loader.tsx +0 -35
  774. package/src/widgets/skeleton-loader/types.ts +0 -8
  775. package/src/widgets/spread/components/max-value.tsx +0 -29
  776. package/src/widgets/spread/components/min-value.tsx +0 -29
  777. package/src/widgets/spread/components/separator.tsx +0 -9
  778. package/src/widgets/spread/config.ts +0 -39
  779. package/src/widgets/spread/style.ts +0 -22
  780. package/src/widgets/stores/use-widget-selector.ts +0 -47
  781. package/src/widgets/stores/widget-store-branches.test.ts +0 -275
  782. package/src/widgets/stores/widget-store-performance.test.ts +0 -750
  783. package/src/widgets/stores/widget-store.test.ts +0 -942
  784. package/src/widgets/stores/widget-store.ts +0 -484
  785. package/src/widgets/subheader/index.ts +0 -3
  786. package/src/widgets/subheader/types.ts +0 -11
  787. package/src/widgets/table/components/cell-header.tsx +0 -58
  788. package/src/widgets/table/components/cell.tsx +0 -82
  789. package/src/widgets/table/components/pagination-actions.tsx +0 -67
  790. package/src/widgets/table/components/pagination.tsx +0 -41
  791. package/src/widgets/table/components/row.tsx +0 -65
  792. package/src/widgets/table/config.test.ts +0 -65
  793. package/src/widgets/table/config.ts +0 -75
  794. package/src/widgets/table/hooks/use-pagination.test.ts +0 -294
  795. package/src/widgets/table/hooks/use-pagination.ts +0 -148
  796. package/src/widgets/table/hooks/use-selection.test.ts +0 -504
  797. package/src/widgets/table/hooks/use-selection.ts +0 -194
  798. package/src/widgets/table/hooks/use-sort.test.ts +0 -296
  799. package/src/widgets/table/hooks/use-sort.ts +0 -131
  800. package/src/widgets/table/serializer.ts +0 -54
  801. package/src/widgets/timeseries/config.ts +0 -136
  802. package/src/widgets/timeseries/style.ts +0 -36
  803. package/src/widgets/toolbar-actions/index.ts +0 -6
  804. package/src/widgets/toolbar-actions/styles.ts +0 -38
  805. package/src/widgets/toolbar-actions/toolbar-actions.test.tsx +0 -691
  806. package/src/widgets/toolbar-actions/toolbar-actions.tsx +0 -145
  807. package/src/widgets/toolbar-actions/types.ts +0 -60
  808. package/src/widgets/utils/chart-config/config-factory.ts +0 -67
  809. package/src/widgets/utils/chart-config/csv-modifiers.ts +0 -56
  810. package/src/widgets/utils/chart-config/download-config.ts +0 -22
  811. package/src/widgets/utils/chart-config/index.ts +0 -29
  812. package/src/widgets/utils/formatter.ts +0 -2
  813. package/src/widgets/utils/skeleton/index.ts +0 -5
  814. package/src/widgets/utils/skeleton/styles.ts +0 -20
  815. package/src/widgets/wrapper/components/actions.test.tsx +0 -105
  816. package/src/widgets/wrapper/components/actions.tsx +0 -35
  817. package/src/widgets/wrapper/components/options.test.tsx +0 -331
  818. package/src/widgets/wrapper/components/options.tsx +0 -81
  819. package/src/widgets/wrapper/components/title.test.tsx +0 -126
  820. package/src/widgets/wrapper/components/title.tsx +0 -35
  821. package/src/widgets/wrapper/styles.ts +0 -98
  822. package/src/widgets/wrapper/types.ts +0 -55
  823. package/src/widgets/wrapper/wrapper-ui.test.tsx +0 -232
  824. package/src/widgets/wrapper/wrapper-ui.tsx +0 -72
  825. package/src/widgets/wrapper/wrapper.test.tsx +0 -365
  826. package/src/widgets/wrapper/wrapper.tsx +0 -60
  827. package/src/widgets-v2/actions/brush-toggle/brush-toggle.test.tsx +0 -180
  828. package/src/widgets-v2/actions/brush-toggle/brush-toggle.tsx +0 -154
  829. package/src/widgets-v2/actions/change-column/change-column-icon.tsx +0 -14
  830. package/src/widgets-v2/actions/change-column/change-column.test.tsx +0 -59
  831. package/src/widgets-v2/actions/change-column/change-column.tsx +0 -189
  832. package/src/widgets-v2/actions/change-column/sortable-column-item.tsx +0 -63
  833. package/src/widgets-v2/actions/change-column/types.ts +0 -11
  834. package/src/widgets-v2/actions/download/download.test.tsx +0 -327
  835. package/src/widgets-v2/actions/download/download.tsx +0 -146
  836. package/src/widgets-v2/actions/download/exports.test.tsx +0 -198
  837. package/src/widgets-v2/actions/download/types.ts +0 -46
  838. package/src/widgets-v2/actions/fullscreen/fullscreen.test.tsx +0 -210
  839. package/src/widgets-v2/actions/fullscreen/fullscreen.tsx +0 -416
  840. package/src/widgets-v2/actions/fullscreen/types.ts +0 -15
  841. package/src/widgets-v2/actions/index.ts +0 -96
  842. package/src/widgets-v2/actions/lock-selection/lock-selection.test.tsx +0 -301
  843. package/src/widgets-v2/actions/lock-selection/lock-selection.tsx +0 -188
  844. package/src/widgets-v2/actions/relative-data/relative-data.test.tsx +0 -71
  845. package/src/widgets-v2/actions/relative-data/relative-data.tsx +0 -107
  846. package/src/widgets-v2/actions/searcher/searcher-toggle.tsx +0 -96
  847. package/src/widgets-v2/actions/searcher/searcher.tsx +0 -127
  848. package/src/widgets-v2/actions/stack-toggle/stack-toggle.test.tsx +0 -61
  849. package/src/widgets-v2/actions/stack-toggle/stack-toggle.tsx +0 -54
  850. package/src/widgets-v2/actions/stack-toggle/style.ts +0 -11
  851. package/src/widgets-v2/actions/zoom-toggle/style.ts +0 -11
  852. package/src/widgets-v2/actions/zoom-toggle/zoom-toggle.test.tsx +0 -107
  853. package/src/widgets-v2/actions/zoom-toggle/zoom-toggle.tsx +0 -106
  854. package/src/widgets-v2/bar/download.tsx +0 -61
  855. package/src/widgets-v2/bar/index.ts +0 -10
  856. package/src/widgets-v2/bar/skeleton.tsx +0 -69
  857. package/src/widgets-v2/bar/types.ts +0 -51
  858. package/src/widgets-v2/category/category-ui.test.tsx +0 -909
  859. package/src/widgets-v2/category/category-ui.tsx +0 -490
  860. package/src/widgets-v2/category/components/category-bar.tsx +0 -49
  861. package/src/widgets-v2/category/components/category-legend.tsx +0 -82
  862. package/src/widgets-v2/category/components/category-row-multi.tsx +0 -86
  863. package/src/widgets-v2/category/components/category-row-other.tsx +0 -84
  864. package/src/widgets-v2/category/components/category-row-single.tsx +0 -76
  865. package/src/widgets-v2/category/download.ts +0 -51
  866. package/src/widgets-v2/category/index.ts +0 -32
  867. package/src/widgets-v2/category/skeleton.tsx +0 -74
  868. package/src/widgets-v2/category/style.ts +0 -329
  869. package/src/widgets-v2/category/types.ts +0 -61
  870. package/src/widgets-v2/echart/echart-ui.test.tsx +0 -330
  871. package/src/widgets-v2/echart/echart-ui.tsx +0 -236
  872. package/src/widgets-v2/echart/echart.test.tsx +0 -229
  873. package/src/widgets-v2/echart/echart.tsx +0 -209
  874. package/src/widgets-v2/echart/index.ts +0 -22
  875. package/src/widgets-v2/echart/shared-resize-observer.ts +0 -56
  876. package/src/widgets-v2/formula/formula-ui.test.tsx +0 -91
  877. package/src/widgets-v2/formula/formula-ui.tsx +0 -66
  878. package/src/widgets-v2/formula/index.ts +0 -17
  879. package/src/widgets-v2/formula/skeleton.tsx +0 -27
  880. package/src/widgets-v2/formula/style.ts +0 -31
  881. package/src/widgets-v2/formula/types.ts +0 -48
  882. package/src/widgets-v2/histogram/index.ts +0 -13
  883. package/src/widgets-v2/histogram/skeleton.tsx +0 -70
  884. package/src/widgets-v2/histogram/types.ts +0 -64
  885. package/src/widgets-v2/markdown/index.ts +0 -6
  886. package/src/widgets-v2/markdown/markdown-ui.test.tsx +0 -75
  887. package/src/widgets-v2/markdown/markdown-ui.tsx +0 -55
  888. package/src/widgets-v2/markdown/markdown.tsx +0 -17
  889. package/src/widgets-v2/markdown/skeleton.tsx +0 -32
  890. package/src/widgets-v2/markdown/style.ts +0 -53
  891. package/src/widgets-v2/markdown/types.ts +0 -4
  892. package/src/widgets-v2/note/style.ts +0 -26
  893. package/src/widgets-v2/pie/index.ts +0 -10
  894. package/src/widgets-v2/pie/skeleton.tsx +0 -94
  895. package/src/widgets-v2/pie/types.ts +0 -62
  896. package/src/widgets-v2/range/index.ts +0 -4
  897. package/src/widgets-v2/range/range-ui.test.tsx +0 -136
  898. package/src/widgets-v2/range/range-ui.tsx +0 -278
  899. package/src/widgets-v2/range/skeleton.tsx +0 -47
  900. package/src/widgets-v2/range/style.ts +0 -41
  901. package/src/widgets-v2/range/types.ts +0 -37
  902. package/src/widgets-v2/scatterplot/download.ts +0 -51
  903. package/src/widgets-v2/scatterplot/index.ts +0 -14
  904. package/src/widgets-v2/scatterplot/skeleton.tsx +0 -84
  905. package/src/widgets-v2/scatterplot/types.ts +0 -59
  906. package/src/widgets-v2/selection-summary/selection-summary.tsx +0 -82
  907. package/src/widgets-v2/selection-summary/style.ts +0 -38
  908. package/src/widgets-v2/spread/download.ts +0 -56
  909. package/src/widgets-v2/spread/index.ts +0 -11
  910. package/src/widgets-v2/spread/skeleton.tsx +0 -38
  911. package/src/widgets-v2/spread/spread-ui.test.tsx +0 -108
  912. package/src/widgets-v2/spread/spread-ui.tsx +0 -52
  913. package/src/widgets-v2/spread/types.ts +0 -27
  914. package/src/widgets-v2/stores/index.ts +0 -49
  915. package/src/widgets-v2/stores/types.ts +0 -64
  916. package/src/widgets-v2/subheader/style.ts +0 -12
  917. package/src/widgets-v2/subheader/subheader.test.tsx +0 -30
  918. package/src/widgets-v2/subheader/subheader.tsx +0 -16
  919. package/src/widgets-v2/table/download.ts +0 -44
  920. package/src/widgets-v2/table/helpers.test.ts +0 -233
  921. package/src/widgets-v2/table/helpers.ts +0 -131
  922. package/src/widgets-v2/table/index.ts +0 -24
  923. package/src/widgets-v2/table/skeleton.tsx +0 -65
  924. package/src/widgets-v2/table/style.ts +0 -43
  925. package/src/widgets-v2/table/table-ui.tsx +0 -364
  926. package/src/widgets-v2/table/types.ts +0 -55
  927. package/src/widgets-v2/timeseries/index.ts +0 -11
  928. package/src/widgets-v2/timeseries/skeleton.tsx +0 -76
  929. package/src/widgets-v2/timeseries/types.ts +0 -65
  930. package/src/widgets-v2/utils/index.ts +0 -3
  931. package/src/widgets-v2/wrapper/index.ts +0 -14
  932. /package/dist/types/{widgets-v2 → widgets}/actions/brush-toggle/index.d.ts +0 -0
  933. /package/dist/types/{widgets-v2 → widgets}/actions/brush-toggle/labels.d.ts +0 -0
  934. /package/dist/types/{widgets-v2 → widgets}/actions/brush-toggle/transforms.d.ts +0 -0
  935. /package/dist/types/{widgets-v2 → widgets}/actions/change-column/index.d.ts +0 -0
  936. /package/dist/types/{widgets-v2 → widgets}/actions/change-column/labels.d.ts +0 -0
  937. /package/dist/types/{widgets-v2 → widgets}/actions/change-column/style.d.ts +0 -0
  938. /package/dist/types/{widgets-v2 → widgets}/actions/download/constants.d.ts +0 -0
  939. /package/dist/types/{widgets-v2 → widgets}/actions/download/csv-item.d.ts +0 -0
  940. /package/dist/types/{widgets-v2 → widgets}/actions/download/icons.d.ts +0 -0
  941. /package/dist/types/{widgets-v2 → widgets}/actions/download/labels.d.ts +0 -0
  942. /package/dist/types/{widgets-v2 → widgets}/actions/download/style.d.ts +0 -0
  943. /package/dist/types/{widgets-v2 → widgets}/actions/fullscreen/index.d.ts +0 -0
  944. /package/dist/types/{widgets-v2 → widgets}/actions/fullscreen/labels.d.ts +0 -0
  945. /package/dist/types/{widgets-v2 → widgets}/actions/fullscreen/style.d.ts +0 -0
  946. /package/dist/types/{widgets-v2 → widgets}/actions/lock-selection/index.d.ts +0 -0
  947. /package/dist/types/{widgets-v2 → widgets}/actions/lock-selection/labels.d.ts +0 -0
  948. /package/dist/types/{widgets-v2/actions/brush-toggle → widgets/actions/lock-selection}/style.d.ts +0 -0
  949. /package/dist/types/{widgets-v2 → widgets}/actions/lock-selection/transforms.d.ts +0 -0
  950. /package/dist/types/{widgets-v2 → widgets}/actions/relative-data/index.d.ts +0 -0
  951. /package/dist/types/{widgets-v2 → widgets}/actions/relative-data/labels.d.ts +0 -0
  952. /package/dist/types/{widgets-v2/actions/lock-selection → widgets/actions/relative-data}/style.d.ts +0 -0
  953. /package/dist/types/{widgets-v2 → widgets}/actions/searcher/filter.d.ts +0 -0
  954. /package/dist/types/{widgets-v2 → widgets}/actions/searcher/index.d.ts +0 -0
  955. /package/dist/types/{widgets-v2 → widgets}/actions/searcher/labels.d.ts +0 -0
  956. /package/dist/types/{widgets-v2 → widgets}/actions/searcher/style.d.ts +0 -0
  957. /package/dist/types/{widgets-v2 → widgets}/actions/show-all/index.d.ts +0 -0
  958. /package/dist/types/{widgets-v2 → widgets}/actions/show-all/labels.d.ts +0 -0
  959. /package/dist/types/{widgets-v2 → widgets}/actions/show-all/show-all.d.ts +0 -0
  960. /package/dist/types/{widgets-v2 → widgets}/actions/show-all/style.d.ts +0 -0
  961. /package/dist/types/{widgets-v2 → widgets}/actions/stack-toggle/index.d.ts +0 -0
  962. /package/dist/types/{widgets-v2 → widgets}/actions/stack-toggle/labels.d.ts +0 -0
  963. /package/dist/types/{widgets-v2/actions/relative-data → widgets/actions/stack-toggle}/style.d.ts +0 -0
  964. /package/dist/types/{widgets-v2 → widgets}/actions/stack-toggle/transforms.d.ts +0 -0
  965. /package/dist/types/{widgets-v2 → widgets}/actions/zoom-toggle/index.d.ts +0 -0
  966. /package/dist/types/{widgets-v2 → widgets}/actions/zoom-toggle/labels.d.ts +0 -0
  967. /package/dist/types/{widgets-v2 → widgets}/actions/zoom-toggle/transforms.d.ts +0 -0
  968. /package/dist/types/{widgets-v2 → widgets}/bar/options.d.ts +0 -0
  969. /package/dist/types/{widgets-v2 → widgets}/category/category.d.ts +0 -0
  970. /package/dist/types/{widgets-v2 → widgets}/echart/edge-label-clamp.d.ts +0 -0
  971. /package/dist/types/{widgets-v2 → widgets}/echart/style.d.ts +0 -0
  972. /package/dist/types/{widgets-v2 → widgets}/echart/use-chart-selection.d.ts +0 -0
  973. /package/dist/types/{widgets-v2 → widgets}/formula/delta.d.ts +0 -0
  974. /package/dist/types/{widgets-v2 → widgets}/formula/formula.d.ts +0 -0
  975. /package/dist/types/{widgets-v2 → widgets}/formula/note.d.ts +0 -0
  976. /package/dist/types/{widgets-v2 → widgets}/formula/prefix.d.ts +0 -0
  977. /package/dist/types/{widgets-v2 → widgets}/formula/suffix.d.ts +0 -0
  978. /package/dist/types/{widgets-v2 → widgets}/histogram/options.d.ts +0 -0
  979. /package/dist/types/{widgets-v2 → widgets}/histogram/transforms.d.ts +0 -0
  980. /package/dist/types/{widgets-v2 → widgets}/markdown/markdown-content.d.ts +0 -0
  981. /package/dist/types/{widgets-v2 → widgets}/note/labels.d.ts +0 -0
  982. /package/dist/types/{widgets-v2 → widgets}/note/widget-note.d.ts +0 -0
  983. /package/dist/types/{widgets-v2 → widgets}/pie/options.d.ts +0 -0
  984. /package/dist/types/{widgets-v2 → widgets}/provider/widget-provider.d.ts +0 -0
  985. /package/dist/types/{widgets-v2 → widgets}/range/range.d.ts +0 -0
  986. /package/dist/types/{widgets-v2 → widgets}/scatterplot/options.d.ts +0 -0
  987. /package/dist/types/{widgets-v2 → widgets}/scatterplot/transforms.d.ts +0 -0
  988. /package/dist/types/{widgets-v2 → widgets}/selection-summary/labels.d.ts +0 -0
  989. /package/dist/types/{widgets-v2 → widgets}/spread/band.d.ts +0 -0
  990. /package/dist/types/{widgets-v2 → widgets}/spread/separator.d.ts +0 -0
  991. /package/dist/types/{widgets-v2 → widgets}/spread/spread.d.ts +0 -0
  992. /package/dist/types/{widgets-v2 → widgets}/state/labels.d.ts +0 -0
  993. /package/dist/types/{widgets-v2 → widgets}/state/style.d.ts +0 -0
  994. /package/dist/types/{widgets-v2 → widgets}/state/widget-state.d.ts +0 -0
  995. /package/dist/types/{widgets-v2 → widgets}/stores/pipeline-middleware.d.ts +0 -0
  996. /package/dist/types/{widgets-v2 → widgets}/stores/transforms.d.ts +0 -0
  997. /package/dist/types/{widgets-v2 → widgets}/stores/use-echart-instance.d.ts +0 -0
  998. /package/dist/types/{widgets-v2 → widgets}/stores/use-transform-enabled.d.ts +0 -0
  999. /package/dist/types/{widgets-v2 → widgets}/stores/use-transform.d.ts +0 -0
  1000. /package/dist/types/{widgets-v2 → widgets}/stores/widget-context.d.ts +0 -0
  1001. /package/dist/types/{widgets-v2 → widgets}/table/labels.d.ts +0 -0
  1002. /package/dist/types/{widgets-v2 → widgets}/table/table.d.ts +0 -0
  1003. /package/dist/types/{widgets-v2 → widgets}/table/transforms.d.ts +0 -0
  1004. /package/dist/types/{widgets-v2 → widgets}/timeseries/options.d.ts +0 -0
  1005. /package/dist/types/{widgets-v2 → widgets}/timeseries/transforms.d.ts +0 -0
  1006. /package/dist/types/{widgets-v2 → widgets}/toolbox/labels.d.ts +0 -0
  1007. /package/dist/types/{widgets-v2 → widgets}/toolbox/style.d.ts +0 -0
  1008. /package/dist/types/{widgets-v2 → widgets}/toolbox/toolbox.d.ts +0 -0
  1009. /package/dist/types/{widgets-v2 → widgets}/utils/data-zoom-layout.d.ts +0 -0
  1010. /package/dist/types/{widgets-v2 → widgets}/utils/merge-options.d.ts +0 -0
  1011. /package/dist/types/widgets/utils/{chart-config/option-builders.d.ts → option-builders.d.ts} +0 -0
  1012. /package/dist/types/{widgets-v2 → widgets}/utils/resolve-theme-color.d.ts +0 -0
  1013. /package/dist/types/{widgets-v2 → widgets}/wrapper/labels.d.ts +0 -0
  1014. /package/dist/types/{widgets-v2 → widgets}/wrapper/widget-content.d.ts +0 -0
  1015. /package/src/{widgets-v2 → widgets}/actions/brush-toggle/index.ts +0 -0
  1016. /package/src/{widgets-v2 → widgets}/actions/brush-toggle/labels.ts +0 -0
  1017. /package/src/{widgets-v2 → widgets}/actions/brush-toggle/transforms.test.ts +0 -0
  1018. /package/src/{widgets-v2 → widgets}/actions/brush-toggle/transforms.ts +0 -0
  1019. /package/src/{widgets-v2 → widgets}/actions/change-column/index.ts +0 -0
  1020. /package/src/{widgets-v2 → widgets}/actions/change-column/labels.ts +0 -0
  1021. /package/src/{widgets-v2 → widgets}/actions/change-column/style.ts +0 -0
  1022. /package/src/{widgets-v2 → widgets}/actions/download/constants.ts +0 -0
  1023. /package/src/{widgets-v2 → widgets}/actions/download/csv-item.test.tsx +0 -0
  1024. /package/src/{widgets-v2 → widgets}/actions/download/csv-item.tsx +0 -0
  1025. /package/src/{widgets-v2 → widgets}/actions/download/icons.tsx +0 -0
  1026. /package/src/{widgets-v2 → widgets}/actions/download/labels.ts +0 -0
  1027. /package/src/{widgets-v2 → widgets}/actions/download/png-item.test.tsx +0 -0
  1028. /package/src/{widgets-v2 → widgets}/actions/download/style.ts +0 -0
  1029. /package/src/{widgets-v2 → widgets}/actions/fullscreen/fullscreen-store.test.tsx +0 -0
  1030. /package/src/{widgets-v2 → widgets}/actions/fullscreen/index.ts +0 -0
  1031. /package/src/{widgets-v2 → widgets}/actions/fullscreen/labels.ts +0 -0
  1032. /package/src/{widgets-v2 → widgets}/actions/fullscreen/style.ts +0 -0
  1033. /package/src/{widgets-v2 → widgets}/actions/lock-selection/index.ts +0 -0
  1034. /package/src/{widgets-v2 → widgets}/actions/lock-selection/labels.ts +0 -0
  1035. /package/src/{widgets-v2/actions/brush-toggle → widgets/actions/lock-selection}/style.ts +0 -0
  1036. /package/src/{widgets-v2 → widgets}/actions/lock-selection/transforms.ts +0 -0
  1037. /package/src/{widgets-v2 → widgets}/actions/relative-data/index.ts +0 -0
  1038. /package/src/{widgets-v2 → widgets}/actions/relative-data/labels.ts +0 -0
  1039. /package/src/{widgets-v2/actions/lock-selection → widgets/actions/relative-data}/style.ts +0 -0
  1040. /package/src/{widgets-v2 → widgets}/actions/relative-data/transforms.test.ts +0 -0
  1041. /package/src/{widgets-v2 → widgets}/actions/searcher/filter.test.ts +0 -0
  1042. /package/src/{widgets-v2 → widgets}/actions/searcher/filter.ts +0 -0
  1043. /package/src/{widgets-v2 → widgets}/actions/searcher/index.ts +0 -0
  1044. /package/src/{widgets-v2 → widgets}/actions/searcher/labels.ts +0 -0
  1045. /package/src/{widgets-v2 → widgets}/actions/searcher/searcher.test.tsx +0 -0
  1046. /package/src/{widgets-v2 → widgets}/actions/searcher/style.ts +0 -0
  1047. /package/src/{widgets-v2 → widgets}/actions/show-all/index.ts +0 -0
  1048. /package/src/{widgets-v2 → widgets}/actions/show-all/labels.ts +0 -0
  1049. /package/src/{widgets-v2 → widgets}/actions/show-all/show-all.test.tsx +0 -0
  1050. /package/src/{widgets-v2 → widgets}/actions/show-all/show-all.tsx +0 -0
  1051. /package/src/{widgets-v2 → widgets}/actions/show-all/style.ts +0 -0
  1052. /package/src/{widgets-v2 → widgets}/actions/stack-toggle/index.ts +0 -0
  1053. /package/src/{widgets-v2 → widgets}/actions/stack-toggle/labels.ts +0 -0
  1054. /package/src/{widgets-v2/actions/relative-data → widgets/actions/stack-toggle}/style.ts +0 -0
  1055. /package/src/{widgets-v2 → widgets}/actions/stack-toggle/transforms.test.ts +0 -0
  1056. /package/src/{widgets-v2 → widgets}/actions/stack-toggle/transforms.ts +0 -0
  1057. /package/src/{widgets-v2 → widgets}/actions/zoom-toggle/index.ts +0 -0
  1058. /package/src/{widgets-v2 → widgets}/actions/zoom-toggle/labels.ts +0 -0
  1059. /package/src/{widgets-v2 → widgets}/actions/zoom-toggle/transforms.test.ts +0 -0
  1060. /package/src/{widgets-v2 → widgets}/actions/zoom-toggle/transforms.ts +0 -0
  1061. /package/src/{widgets-v2 → widgets}/bar/download.test.tsx +0 -0
  1062. /package/src/{widgets-v2 → widgets}/bar/options.test.ts +0 -0
  1063. /package/src/{widgets-v2 → widgets}/bar/skeleton.test.tsx +0 -0
  1064. /package/src/{widgets-v2 → widgets}/category/category.relative-data.test.tsx +0 -0
  1065. /package/src/{widgets-v2 → widgets}/category/category.stack-toggle.test.tsx +0 -0
  1066. /package/src/{widgets-v2 → widgets}/category/category.test.tsx +0 -0
  1067. /package/src/{widgets-v2 → widgets}/category/components/category-bar-stacked.test.tsx +0 -0
  1068. /package/src/{widgets-v2 → widgets}/category/components/category-bar.test.tsx +0 -0
  1069. /package/src/{widgets-v2 → widgets}/category/components/category-row-other.test.tsx +0 -0
  1070. /package/src/{widgets-v2 → widgets}/category/components/category-row-stacked.test.tsx +0 -0
  1071. /package/src/{widgets-v2 → widgets}/category/download.test.ts +0 -0
  1072. /package/src/{widgets-v2 → widgets}/category/skeleton.test.tsx +0 -0
  1073. /package/src/{widgets-v2 → widgets}/echart/edge-label-clamp.test.ts +0 -0
  1074. /package/src/{widgets-v2 → widgets}/echart/edge-label-clamp.ts +0 -0
  1075. /package/src/{widgets-v2 → widgets}/echart/shared-resize-observer.test.ts +0 -0
  1076. /package/src/{widgets-v2 → widgets}/echart/use-chart-selection.test.tsx +0 -0
  1077. /package/src/{widgets-v2 → widgets}/echart/use-chart-selection.ts +0 -0
  1078. /package/src/{widgets-v2 → widgets}/formula/delta.tsx +0 -0
  1079. /package/src/{widgets-v2 → widgets}/formula/download.test.tsx +0 -0
  1080. /package/src/{widgets-v2 → widgets}/formula/formula.test.tsx +0 -0
  1081. /package/src/{widgets-v2 → widgets}/formula/formula.tsx +0 -0
  1082. /package/src/{widgets-v2 → widgets}/formula/prefix.tsx +0 -0
  1083. /package/src/{widgets-v2 → widgets}/formula/skeleton.test.tsx +0 -0
  1084. /package/src/{widgets-v2 → widgets}/formula/subcomponents.test.tsx +0 -0
  1085. /package/src/{widgets-v2 → widgets}/formula/suffix.tsx +0 -0
  1086. /package/src/{widgets-v2 → widgets}/histogram/download.test.ts +0 -0
  1087. /package/src/{widgets-v2 → widgets}/histogram/options.test.ts +0 -0
  1088. /package/src/{widgets-v2 → widgets}/histogram/skeleton.test.tsx +0 -0
  1089. /package/src/{widgets-v2 → widgets}/histogram/transforms.test.ts +0 -0
  1090. /package/src/{widgets-v2 → widgets}/histogram/transforms.ts +0 -0
  1091. /package/src/{widgets-v2 → widgets}/markdown/download.test.ts +0 -0
  1092. /package/src/{widgets-v2 → widgets}/markdown/markdown-content.test.tsx +0 -0
  1093. /package/src/{widgets-v2 → widgets}/markdown/markdown-content.tsx +0 -0
  1094. /package/src/{widgets-v2 → widgets}/markdown/markdown.test.tsx +0 -0
  1095. /package/src/{widgets-v2 → widgets}/markdown/skeleton.test.tsx +0 -0
  1096. /package/src/{widgets-v2 → widgets}/note/labels.ts +0 -0
  1097. /package/src/{widgets-v2 → widgets}/note/widget-note.test.tsx +0 -0
  1098. /package/src/{widgets-v2 → widgets}/pie/download.test.ts +0 -0
  1099. /package/src/{widgets-v2 → widgets}/pie/options.test.ts +0 -0
  1100. /package/src/{widgets-v2 → widgets}/pie/skeleton.test.tsx +0 -0
  1101. /package/src/{widgets-v2 → widgets}/provider/widget-provider.test.tsx +0 -0
  1102. /package/src/{widgets-v2 → widgets}/provider/widget-provider.tsx +0 -0
  1103. /package/src/{widgets-v2 → widgets}/range/range.test.tsx +0 -0
  1104. /package/src/{widgets-v2 → widgets}/range/range.tsx +0 -0
  1105. /package/src/{widgets-v2 → widgets}/range/skeleton.test.tsx +0 -0
  1106. /package/src/{widgets-v2 → widgets}/scatterplot/download.test.ts +0 -0
  1107. /package/src/{widgets-v2 → widgets}/scatterplot/options.test.ts +0 -0
  1108. /package/src/{widgets-v2 → widgets}/scatterplot/skeleton.test.tsx +0 -0
  1109. /package/src/{widgets-v2 → widgets}/scatterplot/transforms.test.ts +0 -0
  1110. /package/src/{widgets-v2 → widgets}/scatterplot/transforms.ts +0 -0
  1111. /package/src/{widgets-v2 → widgets}/selection-summary/labels.ts +0 -0
  1112. /package/src/{widgets-v2 → widgets}/selection-summary/selection-summary.test.tsx +0 -0
  1113. /package/src/{widgets-v2 → widgets}/spread/band.test.ts +0 -0
  1114. /package/src/{widgets-v2 → widgets}/spread/band.ts +0 -0
  1115. /package/src/{widgets-v2 → widgets}/spread/download.test.ts +0 -0
  1116. /package/src/{widgets-v2 → widgets}/spread/separator.tsx +0 -0
  1117. /package/src/{widgets-v2 → widgets}/spread/skeleton.test.tsx +0 -0
  1118. /package/src/{widgets-v2 → widgets}/spread/spread.test.tsx +0 -0
  1119. /package/src/{widgets-v2 → widgets}/spread/spread.tsx +0 -0
  1120. /package/src/{widgets-v2 → widgets}/state/labels.test.ts +0 -0
  1121. /package/src/{widgets-v2 → widgets}/state/labels.ts +0 -0
  1122. /package/src/{widgets-v2 → widgets}/state/style.ts +0 -0
  1123. /package/src/{widgets-v2 → widgets}/state/widget-state.test.tsx +0 -0
  1124. /package/src/{widgets-v2 → widgets}/stores/pipeline-middleware.test.ts +0 -0
  1125. /package/src/{widgets-v2 → widgets}/stores/pipeline-middleware.ts +0 -0
  1126. /package/src/{widgets-v2 → widgets}/stores/transforms.test.ts +0 -0
  1127. /package/src/{widgets-v2 → widgets}/stores/use-echart-instance.test.tsx +0 -0
  1128. /package/src/{widgets-v2 → widgets}/stores/use-echart-instance.ts +0 -0
  1129. /package/src/{widgets-v2 → widgets}/stores/use-transform-enabled.test.tsx +0 -0
  1130. /package/src/{widgets-v2 → widgets}/stores/use-transform-enabled.ts +0 -0
  1131. /package/src/{widgets-v2 → widgets}/stores/use-transform.test.tsx +0 -0
  1132. /package/src/{widgets-v2 → widgets}/stores/widget-context.test.tsx +0 -0
  1133. /package/src/{widgets-v2 → widgets}/stores/widget-context.ts +0 -0
  1134. /package/src/{widgets-v2 → widgets}/table/download.test.ts +0 -0
  1135. /package/src/{widgets-v2 → widgets}/table/labels.tsx +0 -0
  1136. /package/src/{widgets-v2 → widgets}/table/skeleton.test.tsx +0 -0
  1137. /package/src/{widgets-v2 → widgets}/table/table-ui.test.tsx +0 -0
  1138. /package/src/{widgets-v2 → widgets}/table/table.test.tsx +0 -0
  1139. /package/src/{widgets-v2 → widgets}/table/table.tsx +0 -0
  1140. /package/src/{widgets-v2 → widgets}/table/transforms.test.ts +0 -0
  1141. /package/src/{widgets-v2 → widgets}/table/transforms.ts +0 -0
  1142. /package/src/{widgets-v2 → widgets}/timeseries/download.test.ts +0 -0
  1143. /package/src/{widgets-v2 → widgets}/timeseries/options.test.ts +0 -0
  1144. /package/src/{widgets-v2 → widgets}/timeseries/skeleton.test.tsx +0 -0
  1145. /package/src/{widgets-v2 → widgets}/timeseries/transforms.test.ts +0 -0
  1146. /package/src/{widgets-v2 → widgets}/timeseries/transforms.ts +0 -0
  1147. /package/src/{widgets-v2 → widgets}/toolbox/labels.ts +0 -0
  1148. /package/src/{widgets-v2 → widgets}/toolbox/style.ts +0 -0
  1149. /package/src/{widgets-v2 → widgets}/toolbox/toolbox.test.tsx +0 -0
  1150. /package/src/{widgets-v2 → widgets}/toolbox/toolbox.tsx +0 -0
  1151. /package/src/{widgets-v2 → widgets}/utils/data-zoom-layout.ts +0 -0
  1152. /package/src/{widgets-v2 → widgets}/utils/merge-options.test.ts +0 -0
  1153. /package/src/{widgets-v2 → widgets}/utils/merge-options.ts +0 -0
  1154. /package/src/widgets/utils/{chart-config/option-builders.test.ts → option-builders.test.ts} +0 -0
  1155. /package/src/widgets/utils/{chart-config/option-builders.ts → option-builders.ts} +0 -0
  1156. /package/src/{widgets-v2 → widgets}/utils/resolve-theme-color.test.ts +0 -0
  1157. /package/src/{widgets-v2 → widgets}/utils/resolve-theme-color.ts +0 -0
  1158. /package/src/{widgets-v2 → widgets}/wrapper/labels.ts +0 -0
  1159. /package/src/{widgets-v2 → widgets}/wrapper/widget-actions.test.tsx +0 -0
  1160. /package/src/{widgets-v2 → widgets}/wrapper/widget-content.test.tsx +0 -0
  1161. /package/src/{widgets-v2 → widgets}/wrapper/widget-content.tsx +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"markdown-oo9mnJun.js","names":["{ content }: MarkdownUIProps","<Box sx={styles.root}>\n <MarkdownContent\n content={content}\n components={components}\n allowHtml\n allowImages\n />\n </Box>","(s) => {\n const data = s.data as MarkdownWidgetData | undefined\n return data?.content ?? ''\n }","<MarkdownUI content={content} />","{ lines = 5 }: MarkdownSkeletonProps","lines = 5","<Box sx={styles.root}>\n {Array.from({ length: lines }).map((_, i) => (\n <Skeleton\n key={`line-${i}`}\n variant='rectangular'\n sx={styles.line(widths[i % widths.length] ?? '85%')}\n />\n ))}\n </Box>"],"sources":["../src/widgets-v2/markdown/style.ts","../src/widgets-v2/markdown/markdown-ui.tsx","../src/widgets-v2/markdown/markdown.tsx","../src/widgets-v2/markdown/skeleton.tsx","../src/widgets-v2/markdown/download.tsx"],"sourcesContent":["import type { SxProps, Theme } from '@mui/material'\n\nexport const styles = {\n root: {\n color: 'text.primary',\n '& a': { color: 'primary.main' },\n '& code': {\n bgcolor: 'action.hover',\n px: 0.5,\n borderRadius: 0.5,\n fontFamily: 'monospace',\n fontSize: '0.875em',\n },\n '& pre': {\n bgcolor: 'action.hover',\n p: 1.5,\n borderRadius: 1,\n overflowX: 'auto',\n },\n '& blockquote': {\n borderLeft: '3px solid',\n borderColor: 'divider',\n pl: 1.5,\n ml: 0,\n color: 'text.secondary',\n fontStyle: 'italic',\n },\n '& ul, & ol': { pl: 3, my: 1 },\n '& li': { my: 0.25 },\n '& hr': {\n border: 'none',\n borderTop: '1px solid',\n borderColor: 'divider',\n my: 1.5,\n },\n '& table': { borderCollapse: 'collapse', width: '100%' },\n '& th, & td': {\n border: '1px solid',\n borderColor: 'divider',\n px: 1,\n py: 0.5,\n textAlign: 'left',\n },\n },\n paragraph: {\n my: 1,\n },\n heading: {\n mt: 2,\n mb: 1,\n fontWeight: 600,\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { Box, Typography, type TypographyProps } from '@mui/material'\nimport type { Components } from 'react-markdown'\nimport { MarkdownContent } from './markdown-content'\nimport { styles } from './style'\n\nexport interface MarkdownUIProps {\n content: string\n}\n\n/** MUI-styled element mapping for `react-markdown`. */\nconst components: Components = {\n h1: (props) => mdHeading(props, 'h4'),\n h2: (props) => mdHeading(props, 'h5'),\n h3: (props) => mdHeading(props, 'h6'),\n h4: (props) => mdHeading(props, 'subtitle1'),\n h5: (props) => mdHeading(props, 'subtitle2'),\n h6: (props) => mdHeading(props, 'subtitle2'),\n p: ({ children }) => (\n <Typography variant='body2' component='p' sx={styles.paragraph}>\n {children}\n </Typography>\n ),\n}\n\nfunction mdHeading(\n props: { children?: React.ReactNode },\n variant: TypographyProps['variant'],\n) {\n return (\n <Typography variant={variant} component='div' sx={styles.heading}>\n {props.children}\n </Typography>\n )\n}\n\n/**\n * Pure presentational component for the Markdown widget. Delegates the\n * `react-markdown` engine to {@link MarkdownContent} and supplies a\n * document-style MUI element mapping (body2 paragraphs, real heading\n * typography). Opts INTO raw HTML and inline images — the Markdown widget is\n * the one slot in the library where authors can ship rich content. Caption\n * slots like `Note` keep the conservative defaults.\n */\nexport function MarkdownUI({ content }: MarkdownUIProps) {\n return (\n <Box sx={styles.root}>\n <MarkdownContent\n content={content}\n components={components}\n allowHtml\n allowImages\n />\n </Box>\n )\n}\n","import { useWidgetId, useWidget } from '../stores'\nimport { MarkdownUI } from './markdown-ui'\nimport type { MarkdownWidgetData } from './types'\n\n/**\n * Stateful Markdown bridge — reads `data.content` (post-pipeline) from the\n * per-widget store and forwards it to the pure {@link MarkdownUI}. Sits\n * inside `<Widget.Provider>`.\n */\nexport function Markdown() {\n const id = useWidgetId()\n const content = useWidget(id, (s) => {\n const data = s.data as MarkdownWidgetData | undefined\n return data?.content ?? ''\n })\n return <MarkdownUI content={content} />\n}\n","import { Box, Skeleton } from '@mui/material'\nimport type { SxProps, Theme } from '@mui/material'\n\nconst styles = {\n root: {\n display: 'flex',\n flexDirection: 'column',\n gap: 1,\n py: 1,\n },\n line: (width: string): SxProps<Theme> => ({ width, height: 18 }),\n} as const\n\nexport interface MarkdownSkeletonProps {\n lines?: number\n}\n\nexport function MarkdownSkeleton({ lines = 5 }: MarkdownSkeletonProps) {\n // Vary widths to mimic prose.\n const widths = ['100%', '95%', '90%', '85%', '70%']\n return (\n <Box sx={styles.root}>\n {Array.from({ length: lines }).map((_, i) => (\n <Skeleton\n key={`line-${i}`}\n variant='rectangular'\n sx={styles.line(widths[i % widths.length] ?? '85%')}\n />\n ))}\n </Box>\n )\n}\n","import {\n DOWNLOAD_ITEM_IDS,\n MarkdownIcon,\n buildPngDownloadItem,\n toCsvString,\n triggerLinkDownload,\n type DownloadContext,\n type DownloadItem,\n} from '../actions/download'\nimport type { MarkdownWidgetData } from './types'\n\n/**\n * Download menu items for the Markdown widget. Always includes a `.md`\n * item that saves the markdown source verbatim. When `getCaptureEl` is\n * supplied, prepends a PNG item that rasterises the captured element via\n * `html2canvas`.\n */\nexport function createMarkdownDownloadConfig(args: {\n filename: string\n getData: (ctx: DownloadContext) => MarkdownWidgetData\n getCaptureEl?: (ctx: DownloadContext) => HTMLElement | null\n pngPixelRatio?: number\n pngBackgroundColor?: string | null\n}): DownloadItem[] {\n const items: DownloadItem[] = []\n if (args.getCaptureEl) {\n items.push(\n buildPngDownloadItem({\n filename: args.filename,\n getCaptureEl: args.getCaptureEl,\n pixelRatio: args.pngPixelRatio,\n backgroundColor: args.pngBackgroundColor,\n }),\n )\n }\n items.push({\n id: DOWNLOAD_ITEM_IDS.markdown,\n label: 'Markdown',\n icon: <MarkdownIcon fontSize='small' />,\n resolve: (ctx) => {\n const data = args.getData(ctx)\n const blob = new Blob([data.content ?? ''], {\n type: 'text/markdown;charset=utf-8;',\n })\n const url = URL.createObjectURL(blob)\n return Promise.resolve({\n url,\n filename: `${args.filename}.md`,\n revoke: () => URL.revokeObjectURL(url),\n })\n },\n })\n return items\n}\n\n// Re-export pure helpers consumers may want when building a custom Download item.\nexport { toCsvString, triggerLinkDownload }\n"],"mappings":";;;;;;;AAEA,IAAa,IAAS;CACpB,MAAM;EACJ,OAAO;EACP,OAAO,EAAE,OAAO,eAAe;EAC/B,UAAU;GACR,SAAS;GACT,IAAI;GACJ,cAAc;GACd,YAAY;GACZ,UAAU;EACZ;EACA,SAAS;GACP,SAAS;GACT,GAAG;GACH,cAAc;GACd,WAAW;EACb;EACA,gBAAgB;GACd,YAAY;GACZ,aAAa;GACb,IAAI;GACJ,IAAI;GACJ,OAAO;GACP,WAAW;EACb;EACA,cAAc;GAAE,IAAI;GAAG,IAAI;EAAE;EAC7B,QAAQ,EAAE,IAAI,IAAK;EACnB,QAAQ;GACN,QAAQ;GACR,WAAW;GACX,aAAa;GACb,IAAI;EACN;EACA,WAAW;GAAE,gBAAgB;GAAY,OAAO;EAAO;EACvD,cAAc;GACZ,QAAQ;GACR,aAAa;GACb,IAAI;GACJ,IAAI;GACJ,WAAW;EACb;CACF;CACA,WAAW,EACT,IAAI,EACN;CACA,SAAS;EACP,IAAI;EACJ,IAAI;EACJ,YAAY;CACd;AACF,GC1CM,IAAyB;CAC7B,KAAK,MAAU,EAAU,GAAO,IAAI;CACpC,KAAK,MAAU,EAAU,GAAO,IAAI;CACpC,KAAK,MAAU,EAAU,GAAO,IAAI;CACpC,KAAK,MAAU,EAAU,GAAO,WAAW;CAC3C,KAAK,MAAU,EAAU,GAAO,WAAW;CAC3C,KAAK,MAAU,EAAU,GAAO,WAAW;CAC3C,IAAI,EAAE,kBACJ,kBAAC,GAAD;EAAY,SAAQ;EAAQ,WAAU;EAAI,IAAI,EAAO;EAClD;CACS,CAAA;AAEhB;AAEA,SAAS,EACP,GACA,GACA;CACA,OACE,kBAAC,GAAD;EAAqB;EAAS,WAAU;EAAM,IAAI,EAAO;EACtD,UAAA,EAAM;CACG,CAAA;AAEhB;AAUA,SAAgB,EAAA,GAAyC;eAA9B,EAAE,eAAFA,GAEvBC;CADF,OAGe,EAAA,OAAA,gBAFb,IAAA,kBAAC,GAAD;EAAK,IAAI,EAAO;EACd,UAAA,kBAAC,GAAD;GACW;GACG;GACZ,WAAA;GACA,aAAA;EACD,CAAA;CACE,CAAA,GALQ,EAAA,KAAA,cAFbA;AASJ;;;AC7CA,SAAgB,IAAW;eACnB,IAAK,EAAY,GACjB,IAAU,EAAU,GAAIC,CAG7B,GACMC;CAAP,OAA4B,EAAA,OAAA,gBAArB,IAAA,kBAAC,GAAD,EAAqB,WAAU,CAAA,GAAV,EAAA,KAAA,cAArBA;AACT;AALgC,SAAA,EAAC,GAAM;CAEnC,OADa,EAAE,MACF,WAAW;AAC1B;;;ACXF,IAAM,IAAS;CACb,MAAM;EACJ,SAAS;EACT,eAAe;EACf,KAAK;EACL,IAAI;CACN;CACA,OAAO,OAAmC;EAAE;EAAO,QAAQ;CAAG;AAChE;AAMA,SAAgB,EAAA,GAAuD;eAAtC,EAAE,OAAA,MAAFC,GAAE,IAAA,MAAA,KAAA,IAAQ,IAARC,GAI/BC;CACwB,IAAA,EAAA,OAAA,GAAA;EAH1B,IAAM,IAAS;GAAC;GAAQ;GAAO;GAAO;GAAO;EAAK;EAEhD,IAAA,kBAAC,GAAD;GAAK,IAAI,EAAO;GACb,UAAA,MAAM,KAAK,EAAE,QAAQ,EAAM,CAAC,CAAC,CAAC,KAAK,GAAG,MACrC,kBAAC,GAAD;IAEE,SAAQ;IACR,IAAI,EAAO,KAAK,EAAO,IAAI,EAAO,WAAW,KAAK;GACnD,GAHM,QAAQ,GAGd,CACF;EACE,CAAA,GAPmB,EAAA,KAAA;;CAF1B,OACEA;AAUJ;;;ACdA,SAAgB,EAA6B,GAM1B;CACjB,IAAM,IAAwB,CAAC;CA4B/B,OA3BI,EAAK,gBACP,EAAM,KACJ,EAAqB;EACnB,UAAU,EAAK;EACf,cAAc,EAAK;EACnB,YAAY,EAAK;EACjB,iBAAiB,EAAK;CACxB,CAAC,CACH,GAEF,EAAM,KAAK;EACT,IAAI,EAAkB;EACtB,OAAO;EACP,MAAM,kBAAC,GAAD,EAAc,UAAS,QAAS,CAAA;EACtC,UAAU,MAAQ;GAChB,IAAM,IAAO,EAAK,QAAQ,CAAG,GACvB,IAAO,IAAI,KAAK,CAAC,EAAK,WAAW,EAAE,GAAG,EAC1C,MAAM,+BACR,CAAC,GACK,IAAM,IAAI,gBAAgB,CAAI;GACpC,OAAO,QAAQ,QAAQ;IACrB;IACA,UAAU,GAAG,EAAK,SAAS;IAC3B,cAAc,IAAI,gBAAgB,CAAG;GACvC,CAAC;EACH;CACF,CAAC,GACM;AACT"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"range-BCMAl5xf.js","names":["{\n items,\n onChange,\n onChangeCommitted,\n formatter,\n}: RangeUIProps","(n: number) => String(n)","items.map((item, i) => (\n // Composite of the row's track bounds — stable across reorders for\n // any realistic widget configuration. Falls back to a literal +\n // index when bounds collide (degenerate same-min-same-max rows).\n <RangeRow\n key={`range-${item.min}-${item.max}-${i}`}\n index={i}\n item={item}\n fmt={fmt}\n onChange={onChange}\n onChangeCommitted={onChangeCommitted}\n />\n ))","(item, i) => (\n // Composite of the row's track bounds — stable across reorders for\n // any realistic widget configuration. Falls back to a literal +\n // index when bounds collide (degenerate same-min-same-max rows).\n <RangeRow\n key={`range-${item.min}-${item.max}-${i}`}\n index={i}\n item={item}\n fmt={fmt}\n onChange={onChange}\n onChangeCommitted={onChangeCommitted}\n />\n )","<Box sx={styles.root}>\n {items.map((item, i) => (\n // Composite of the row's track bounds — stable across reorders for\n // any realistic widget configuration. Falls back to a literal +\n // index when bounds collide (degenerate same-min-same-max rows).\n <RangeRow\n key={`range-${item.min}-${item.max}-${i}`}\n index={i}\n item={item}\n fmt={fmt}\n onChange={onChange}\n onChangeCommitted={onChangeCommitted}\n />\n ))}\n </Box>","{\n index,\n item,\n fmt,\n onChange,\n onChangeCommitted,\n}: RangeRowProps","item.value ?? [item.min, item.max]","max","min","value","(next: readonly [number, number]): readonly [number, number] => {\n const [lowRaw, highRaw] = next\n const low = Math.min(Math.max(lowRaw, item.min), item.max)\n const high = Math.min(Math.max(highRaw, item.min), item.max)\n return low <= high ? [low, high] : [high, low]\n }","useCallback(\n (next: readonly [number, number]): readonly [number, number] => {\n const [lowRaw, highRaw] = next\n const low = Math.min(Math.max(lowRaw, item.min), item.max)\n const high = Math.min(Math.max(highRaw, item.min), item.max)\n return low <= high ? [low, high] : [high, low]\n },\n [item.min, item.max],\n )","(next: readonly [number, number]) => {\n onChange?.(index, normalize(next))\n }","next","useCallback(\n (next: readonly [number, number]) => {\n onChange?.(index, normalize(next))\n },\n [index, normalize, onChange],\n )","(next: readonly [number, number]) => {\n onChangeCommitted?.(index, normalize(next))\n }","useCallback(\n (next: readonly [number, number]) => {\n onChangeCommitted?.(index, normalize(next))\n },\n [index, normalize, onChangeCommitted],\n )","(next: readonly [number, number]) => {\n const value = normalize(next)\n onChange?.(index, value)\n onChangeCommitted?.(index, value)\n }","useCallback(\n (next: readonly [number, number]) => {\n const value = normalize(next)\n onChange?.(index, value)\n onChangeCommitted?.(index, value)\n },\n [index, normalize, onChange, onChangeCommitted],\n )","(_: Event, raw: number | number[]) => {\n if (!Array.isArray(raw)) return\n // Hoist defaults out of the destructure: react-compiler can't safely\n // reorder MemberExpression defaults inside an array pattern.\n const low = raw[0] ?? item.min\n const high = raw[1] ?? item.max\n commit([low, high])\n }","low","high","(\n _: Event | React.SyntheticEvent,\n raw: number | number[],\n ) => {\n if (!Array.isArray(raw)) return\n const low = raw[0] ?? item.min\n const high = raw[1] ?? item.max\n commitFinal([low, high])\n }","raw","item.color ? { color: item.color } : null","color","{\n ...styles.slider,\n ...(item.color ? { color: item.color } : null),\n }","[...current]","resolveMarks(item.marks)","marks","<Box sx={styles.sliderContainer}>\n <Slider\n sx={{\n ...styles.slider,\n ...(item.color ? { color: item.color } : null),\n }}\n value={[...current]}\n min={item.min}\n max={item.max}\n step={item.step ?? 1}\n marks={resolveMarks(item.marks)}\n disabled={item.disabled}\n valueLabelDisplay='auto'\n valueLabelFormat={fmt}\n onChange={handleSlider}\n onChangeCommitted={handleSliderCommitted}\n />\n </Box>","disabled","item.step ?? 1","item.min","item.max","<BoundInput\n // Bumping the key on a fresh external value resets the local\n // editing state — matches v1's RangeItem behaviour.\n key={`min-${current[0]}`}\n name='min'\n value={current[0]}\n item={item}\n fmt={fmt}\n editing={editing}\n setEditing={setEditing}\n commit={commitText}\n current={current}\n ariaLabel='Minimum value'\n />","current[0]","`min-${current[0]}`","<BoundInput\n key={`max-${current[1]}`}\n name='max'\n value={current[1]}\n item={item}\n fmt={fmt}\n editing={editing}\n setEditing={setEditing}\n commit={commitText}\n current={current}\n ariaLabel='Maximum value'\n />","current[1]","`max-${current[1]}`","<Box sx={styles.inputsRow}>\n {/* Text-input commits (blur / Enter) are final, but also notify\n `onChange` — see `commitText` — so consumers that only wired\n `onChange` still update on a typed value. */}\n <BoundInput\n // Bumping the key on a fresh external value resets the local\n // editing state — matches v1's RangeItem behaviour.\n key={`min-${current[0]}`}\n name='min'\n value={current[0]}\n item={item}\n fmt={fmt}\n editing={editing}\n setEditing={setEditing}\n commit={commitText}\n current={current}\n ariaLabel='Minimum value'\n />\n <BoundInput\n key={`max-${current[1]}`}\n name='max'\n value={current[1]}\n item={item}\n fmt={fmt}\n editing={editing}\n setEditing={setEditing}\n commit={commitText}\n current={current}\n ariaLabel='Maximum value'\n />\n </Box>","item.note ? (\n <Typography variant='caption' sx={styles.note}>\n {item.note}\n </Typography>\n ) : null","note","<Box sx={styles.item}>\n <Box sx={styles.sliderContainer}>\n <Slider\n sx={{\n ...styles.slider,\n ...(item.color ? { color: item.color } : null),\n }}\n value={[...current]}\n min={item.min}\n max={item.max}\n step={item.step ?? 1}\n marks={resolveMarks(item.marks)}\n disabled={item.disabled}\n valueLabelDisplay='auto'\n valueLabelFormat={fmt}\n onChange={handleSlider}\n onChangeCommitted={handleSliderCommitted}\n />\n </Box>\n <Box sx={styles.inputsRow}>\n {/* Text-input commits (blur / Enter) are final, but also notify\n `onChange` — see `commitText` — so consumers that only wired\n `onChange` still update on a typed value. */}\n <BoundInput\n // Bumping the key on a fresh external value resets the local\n // editing state — matches v1's RangeItem behaviour.\n key={`min-${current[0]}`}\n name='min'\n value={current[0]}\n item={item}\n fmt={fmt}\n editing={editing}\n setEditing={setEditing}\n commit={commitText}\n current={current}\n ariaLabel='Minimum value'\n />\n <BoundInput\n key={`max-${current[1]}`}\n name='max'\n value={current[1]}\n item={item}\n fmt={fmt}\n editing={editing}\n setEditing={setEditing}\n commit={commitText}\n current={current}\n ariaLabel='Maximum value'\n />\n </Box>\n {item.note ? (\n <Typography variant='caption' sx={styles.note}>\n {item.note}\n </Typography>\n ) : null}\n </Box>","{\n name,\n value,\n item,\n fmt,\n editing,\n setEditing,\n commit,\n current,\n ariaLabel,\n}: BoundInputProps","() => {\n setEditing(name)\n }","e","editing === name ? raw : fmt(Number(raw))","(e) => setRaw(e.target.value)","{ 'aria-label': ariaLabel }","<TextField\n name={name}\n value={display}\n onChange={(e) => setRaw(e.target.value)}\n onFocus={beginEditing}\n onBlur={finishEditingAndCommit}\n onKeyDown={commitOnEnter}\n disabled={item.disabled}\n size='small'\n sx={styles.input}\n inputProps={{ 'aria-label': ariaLabel }}\n />","{ onChange, onChangeCommitted }: RangeProps","<RangeUI\n items={slice.data}\n formatter={slice.formatter}\n onChange={onChange}\n onChangeCommitted={onChangeCommitted}\n />","data","formatter","{ count = 1 }: RangeSkeletonProps","count = 1","<Box sx={styles.root}>\n {Array.from({ length: count }).map((_, i) => (\n <Box key={`item-${i}`} sx={styles.item}>\n <Skeleton variant='rectangular' sx={styles.track} />\n <Box sx={styles.inputsRow}>\n <Skeleton variant='rectangular' sx={styles.input} />\n <Skeleton variant='rectangular' sx={styles.input} />\n </Box>\n </Box>\n ))}\n </Box>","(_, i) => (\n <Box key={`item-${i}`} sx={styles.item}>\n <Skeleton variant='rectangular' sx={styles.track} />\n <Box sx={styles.inputsRow}>\n <Skeleton variant='rectangular' sx={styles.input} />\n <Skeleton variant='rectangular' sx={styles.input} />\n </Box>\n </Box>\n )"],"sources":["../src/widgets-v2/range/style.ts","../src/widgets-v2/range/range-ui.tsx","../src/widgets-v2/range/range.tsx","../src/widgets-v2/range/skeleton.tsx"],"sourcesContent":["import type { SxProps, Theme } from '@mui/material'\n\nexport const styles = {\n root: {\n display: 'flex',\n flexDirection: 'column',\n gap: 3,\n py: 1,\n },\n item: {\n display: 'flex',\n flexDirection: 'column',\n gap: 1.5,\n },\n sliderContainer: {\n display: 'flex',\n flexDirection: 'column',\n gap: 1,\n px: 1,\n },\n slider: {\n width: '100%',\n '&.Mui-disabled': {\n color: (theme: Theme) => theme.palette.text.disabled,\n },\n },\n inputsRow: {\n display: 'flex',\n gap: 2,\n alignItems: 'center',\n },\n input: {\n flex: 1,\n '& .MuiInputBase-input': {\n textAlign: 'center',\n },\n },\n note: {\n color: 'text.secondary',\n },\n} satisfies Record<string, SxProps<Theme>>\n","import {\n useCallback,\n useState,\n type FocusEvent,\n type KeyboardEvent,\n} from 'react'\nimport { Box, Slider, TextField, Typography } from '@mui/material'\nimport type { RangeDataItem, RangeItemValue } from './types'\nimport { styles } from './style'\n\nexport interface RangeUIProps {\n items: readonly RangeDataItem[]\n /**\n * Fires on every pointer tick while a thumb is being dragged (mirrors\n * MUI `<Slider>`'s `onChange`). Use this to update local UI state —\n * not to persist expensive operations like remote queries.\n */\n onChange?: (index: number, value: RangeItemValue) => void\n /**\n * Fires once when the user *releases* a slider thumb after dragging,\n * after an arrow-key adjustment commits, or when the text inputs\n * blur / Enter. Mirrors MUI `<Slider>`'s `onChangeCommitted`. Use\n * this for side-effects you want to throttle to \"drag end\" — e.g.\n * writing the value to a source filter that triggers refetches.\n */\n onChangeCommitted?: (index: number, value: RangeItemValue) => void\n /** Number formatter for the slider tooltip and the text input display. */\n formatter?: (value: number) => string\n}\n\ntype Bound = 'min' | 'max'\n\n/**\n * Pure presentational component for the Range widget. Renders one MUI Slider\n * per item with editable min/max text inputs below — matching the Range v1\n * UX. Each item is always a two-thumb range; supply `value` to seed the\n * starting selection, otherwise it defaults to `[min, max]`.\n */\nexport function RangeUI({\n items,\n onChange,\n onChangeCommitted,\n formatter,\n}: RangeUIProps) {\n const fmt = formatter ?? ((n: number) => String(n))\n return (\n <Box sx={styles.root}>\n {items.map((item, i) => (\n // Composite of the row's track bounds — stable across reorders for\n // any realistic widget configuration. Falls back to a literal +\n // index when bounds collide (degenerate same-min-same-max rows).\n <RangeRow\n key={`range-${item.min}-${item.max}-${i}`}\n index={i}\n item={item}\n fmt={fmt}\n onChange={onChange}\n onChangeCommitted={onChangeCommitted}\n />\n ))}\n </Box>\n )\n}\n\ninterface RangeRowProps {\n index: number\n item: RangeDataItem\n fmt: (n: number) => string\n onChange?: (index: number, value: RangeItemValue) => void\n onChangeCommitted?: (index: number, value: RangeItemValue) => void\n}\n\nfunction RangeRow({\n index,\n item,\n fmt,\n onChange,\n onChangeCommitted,\n}: RangeRowProps) {\n const current: readonly [number, number] = item.value ?? [item.min, item.max]\n const [editing, setEditing] = useState<'' | Bound>('')\n\n // Clamp inside [min, max] and keep `low <= high`. Pulled out so both the\n // live `onChange` path and the commit path share the same normalization.\n const normalize = useCallback(\n (next: readonly [number, number]): readonly [number, number] => {\n const [lowRaw, highRaw] = next\n const low = Math.min(Math.max(lowRaw, item.min), item.max)\n const high = Math.min(Math.max(highRaw, item.min), item.max)\n return low <= high ? [low, high] : [high, low]\n },\n [item.min, item.max],\n )\n\n const commit = useCallback(\n (next: readonly [number, number]) => {\n onChange?.(index, normalize(next))\n },\n [index, normalize, onChange],\n )\n\n const commitFinal = useCallback(\n (next: readonly [number, number]) => {\n onChangeCommitted?.(index, normalize(next))\n },\n [index, normalize, onChangeCommitted],\n )\n\n // A text-input commit (blur / Enter) is both a value change AND a final\n // commit, so it fires `onChange` *and* `onChangeCommitted`. Firing both\n // keeps the widget responsive for consumers that only wired `onChange`\n // (the pre-`onChangeCommitted` API) — without it, typing a value and\n // pressing Enter would silently no-op for them.\n const commitText = useCallback(\n (next: readonly [number, number]) => {\n const value = normalize(next)\n onChange?.(index, value)\n onChangeCommitted?.(index, value)\n },\n [index, normalize, onChange, onChangeCommitted],\n )\n\n const handleSlider = (_: Event, raw: number | number[]) => {\n if (!Array.isArray(raw)) return\n // Hoist defaults out of the destructure: react-compiler can't safely\n // reorder MemberExpression defaults inside an array pattern.\n const low = raw[0] ?? item.min\n const high = raw[1] ?? item.max\n commit([low, high])\n }\n\n const handleSliderCommitted = (\n _: Event | React.SyntheticEvent,\n raw: number | number[],\n ) => {\n if (!Array.isArray(raw)) return\n const low = raw[0] ?? item.min\n const high = raw[1] ?? item.max\n commitFinal([low, high])\n }\n\n return (\n <Box sx={styles.item}>\n <Box sx={styles.sliderContainer}>\n <Slider\n sx={{\n ...styles.slider,\n ...(item.color ? { color: item.color } : null),\n }}\n value={[...current]}\n min={item.min}\n max={item.max}\n step={item.step ?? 1}\n marks={resolveMarks(item.marks)}\n disabled={item.disabled}\n valueLabelDisplay='auto'\n valueLabelFormat={fmt}\n onChange={handleSlider}\n onChangeCommitted={handleSliderCommitted}\n />\n </Box>\n <Box sx={styles.inputsRow}>\n {/* Text-input commits (blur / Enter) are final, but also notify\n `onChange` — see `commitText` — so consumers that only wired\n `onChange` still update on a typed value. */}\n <BoundInput\n // Bumping the key on a fresh external value resets the local\n // editing state — matches v1's RangeItem behaviour.\n key={`min-${current[0]}`}\n name='min'\n value={current[0]}\n item={item}\n fmt={fmt}\n editing={editing}\n setEditing={setEditing}\n commit={commitText}\n current={current}\n ariaLabel='Minimum value'\n />\n <BoundInput\n key={`max-${current[1]}`}\n name='max'\n value={current[1]}\n item={item}\n fmt={fmt}\n editing={editing}\n setEditing={setEditing}\n commit={commitText}\n current={current}\n ariaLabel='Maximum value'\n />\n </Box>\n {item.note ? (\n <Typography variant='caption' sx={styles.note}>\n {item.note}\n </Typography>\n ) : null}\n </Box>\n )\n}\n\ninterface BoundInputProps {\n name: Bound\n value: number\n item: RangeDataItem\n fmt: (n: number) => string\n editing: '' | Bound\n setEditing: (next: '' | Bound) => void\n /**\n * Called when the user commits a new value (blur / Enter). Text input\n * edits never produce intermediate \"live\" values, so the consumer\n * only needs one callback — the row wires this to `commitFinal`.\n */\n commit: (next: readonly [number, number]) => void\n current: readonly [number, number]\n ariaLabel: string\n}\n\nfunction BoundInput({\n name,\n value,\n item,\n fmt,\n editing,\n setEditing,\n commit,\n current,\n ariaLabel,\n}: BoundInputProps) {\n const [raw, setRaw] = useState<string>(String(value))\n\n const beginEditing = () => {\n setEditing(name)\n }\n const finishEditingAndCommit = (e: FocusEvent<HTMLInputElement>) => {\n setEditing('')\n commitFromText(e.target.value)\n }\n const commitOnEnter = (e: KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Enter') {\n commitFromText((e.target as HTMLInputElement).value)\n ;(e.target as HTMLInputElement).blur()\n }\n }\n\n function commitFromText(input: string) {\n const parsed = parseFloat(input)\n const safe = Number.isFinite(parsed) ? parsed : value\n const next: readonly [number, number] =\n name === 'min' ? [safe, current[1]] : [current[0], safe]\n commit(next)\n }\n\n const display = editing === name ? raw : fmt(Number(raw))\n\n return (\n <TextField\n name={name}\n value={display}\n onChange={(e) => setRaw(e.target.value)}\n onFocus={beginEditing}\n onBlur={finishEditingAndCommit}\n onKeyDown={commitOnEnter}\n disabled={item.disabled}\n size='small'\n sx={styles.input}\n inputProps={{ 'aria-label': ariaLabel }}\n />\n )\n}\n\nfunction resolveMarks(\n marks: RangeDataItem['marks'],\n): boolean | { value: number; label?: string }[] | undefined {\n if (marks == null) return undefined\n if (typeof marks === 'boolean') return marks\n return [...marks]\n}\n","import { useWidgetId, useWidgetShallow } from '../stores'\nimport { RangeUI } from './range-ui'\nimport type { RangeItemValue, RangeWidgetData } from './types'\n\ninterface RangeSlice {\n data: RangeWidgetData\n formatter?: (value: number) => string\n}\n\nconst rangeSelector = (s: {\n data: unknown\n formatter?: (value: number) => string\n}): RangeSlice => ({\n data: (s.data ?? []) as RangeWidgetData,\n formatter: s.formatter,\n})\n\nexport interface RangeProps {\n /**\n * Fires on every pointer tick while a thumb is being dragged. Use this\n * for cheap UI updates (local state, optimistic display).\n */\n onChange?: (index: number, value: RangeItemValue) => void\n /**\n * Fires once when the user *releases* a slider thumb (or when the text\n * inputs blur / Enter, or when an arrow-key adjustment settles). Use\n * this for expensive side-effects you want throttled to drag end —\n * e.g. writing the value to a source filter that refetches widgets.\n */\n onChangeCommitted?: (index: number, value: RangeItemValue) => void\n}\n\n/**\n * Stateful Range bridge — reads `data` (post-pipeline) and `formatter` from\n * the per-widget store and forwards them to the pure {@link RangeUI}. Per\n * the destination-owned principle, value changes flow back through\n * `onChange` (per-tick) and `onChangeCommitted` (drag end) — the consumer\n * is expected to update the data prop on `<Provider>`. Use `disabled` on\n * individual `RangeDataItem`s to disable specific rows.\n */\nexport function Range({ onChange, onChangeCommitted }: RangeProps) {\n const id = useWidgetId()\n const slice = useWidgetShallow(id, rangeSelector)\n return (\n <RangeUI\n items={slice.data}\n formatter={slice.formatter}\n onChange={onChange}\n onChangeCommitted={onChangeCommitted}\n />\n )\n}\n","import { Box, Skeleton } from '@mui/material'\nimport type { SxProps, Theme } from '@mui/material'\n\nconst styles = {\n root: {\n display: 'flex',\n flexDirection: 'column',\n gap: 3,\n py: 1,\n },\n item: {\n display: 'flex',\n flexDirection: 'column',\n gap: 1.5,\n },\n track: { height: 32 },\n inputsRow: {\n display: 'flex',\n gap: 2,\n },\n input: { flex: 1, height: 40 },\n} satisfies Record<string, SxProps<Theme>>\n\nexport interface RangeSkeletonProps {\n count?: number\n}\n\n/**\n * Loading placeholder for the Range widget. Renders `count` rows, each\n * matching the slider-then-inputs layout of {@link RangeUI} so the layout\n * doesn't jump when data resolves.\n */\nexport function RangeSkeleton({ count = 1 }: RangeSkeletonProps) {\n return (\n <Box sx={styles.root}>\n {Array.from({ length: count }).map((_, i) => (\n <Box key={`item-${i}`} sx={styles.item}>\n <Skeleton variant='rectangular' sx={styles.track} />\n <Box sx={styles.inputsRow}>\n <Skeleton variant='rectangular' sx={styles.input} />\n <Skeleton variant='rectangular' sx={styles.input} />\n </Box>\n </Box>\n ))}\n </Box>\n )\n}\n"],"mappings":"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"}
@@ -1,35 +0,0 @@
1
- import { t as e } from "./use-widget-selector-VSPhfhNm.js";
2
- import { c as t } from "react/compiler-runtime";
3
- import { Box as n } from "@mui/material";
4
- import { jsx as r } from "react/jsx-runtime";
5
- //#region src/widgets/formula/style.ts
6
- var i = {
7
- root: {
8
- display: "flex",
9
- flexDirection: "column",
10
- gap: (e) => e.spacing(2)
11
- },
12
- item: { "&[data-disabled=\"true\"]": { color: (e) => e.palette.text.disabled } },
13
- row: {
14
- display: "flex",
15
- alignItems: "center",
16
- gap: (e) => e.spacing(1),
17
- "& + &": { marginTop: (e) => e.spacing(1) }
18
- }
19
- };
20
- //#endregion
21
- //#region src/widgets/formula/components/row.tsx
22
- function a(a) {
23
- let s = t(3), c = e(a.id, o), l;
24
- return s[0] !== c || s[1] !== a ? (l = c?.map((e, t) => /* @__PURE__ */ r(n, {
25
- sx: i.row,
26
- children: typeof a.children == "function" ? a.children({ index: t }) : a.children
27
- }, `row-${t}`)), s[0] = c, s[1] = a, s[2] = l) : l = s[2], l;
28
- }
29
- function o(e) {
30
- return e?.data;
31
- }
32
- //#endregion
33
- export { i as n, a as t };
34
-
35
- //# sourceMappingURL=row-CvVGBuy_.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"row-CvVGBuy_.js","names":["(w) => (w as FormulaWidgetState | undefined)?.data","data?.map((_, index) => {\n return (\n <Box sx={styles.row} key={`row-${index}`}>\n {typeof props.children === 'function'\n ? props.children({ index })\n : props.children}\n </Box>\n )\n })","props.children","data?.map"],"sources":["../src/widgets/formula/style.ts","../src/widgets/formula/components/row.tsx"],"sourcesContent":["import type { SxProps, Theme } from '@mui/material'\n\nexport const styles = {\n root: {\n display: 'flex',\n flexDirection: 'column',\n gap: (theme: Theme) => theme.spacing(2),\n },\n item: {\n '&[data-disabled=\"true\"]': {\n color: (theme: Theme) => theme.palette.text.disabled,\n },\n },\n row: {\n display: 'flex',\n alignItems: 'center',\n gap: (theme: Theme) => theme.spacing(1),\n\n '& + &': {\n marginTop: (theme: Theme) => theme.spacing(1),\n },\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { Box } from '@mui/material'\nimport { styles } from '../style'\nimport type { FormulaWidgetState, RowProps } from '../types'\nimport { useWidgetSelector } from '../../stores/use-widget-selector'\n\n/**\n * Iterates over the widget's data items and renders a row for each one using render props.\n */\nexport function Row(props: RowProps) {\n const data = useWidgetSelector(\n props.id,\n (w) => (w as FormulaWidgetState | undefined)?.data,\n )\n\n return data?.map((_, index) => {\n return (\n <Box sx={styles.row} key={`row-${index}`}>\n {typeof props.children === 'function'\n ? props.children({ index })\n : props.children}\n </Box>\n )\n })\n}\n"],"mappings":";;;;;AAEA,IAAa,IAAS;CACpB,MAAM;EACJ,SAAS;EACT,eAAe;EACf,MAAM,MAAiB,EAAM,QAAQ,CAAC;CACxC;CACA,MAAM,EACJ,6BAA2B,EACzB,QAAQ,MAAiB,EAAM,QAAQ,KAAK,SAC9C,EACF;CACA,KAAK;EACH,SAAS;EACT,YAAY;EACZ,MAAM,MAAiB,EAAM,QAAQ,CAAC;EAEtC,SAAS,EACP,YAAY,MAAiB,EAAM,QAAQ,CAAC,EAC9C;CACF;AACF;;;ACdA,SAAgB,EAAI,GAAiB;eAC7B,IAAO,EACX,EAAM,IACNA,CACF,GAEOC;CAAP,OAGcC,EAAAA,OAAAA,KAAAA,EAAAA,OAAAA,KAHP,IAAA,GAAM,KAAK,GAAG,MAEjB,kBAAC,GAAD;EAAK,IAAI,EAAO;EACb,UAAA,OAAO,EAAM,YAAa,aACvB,EAAM,SAAS,EAAE,SAAM,CAAC,IACxB,EAAM;CACP,GAJqB,OAAO,GAI5B,CAER,GARMC,EAAAA,KAAAA,GAGOD,EAAAA,KAAAA,yBAHPD;AAST;AAZI,SAAA,EAAC,GAAA;CAAO,OAAA,GAAsC"}
@@ -1,157 +0,0 @@
1
- import { r as e } from "./rolldown-runtime-B0aSnxlc.js";
2
- import { t } from "./cjs-CBrZjPCj.js";
3
- //#region src/widgets/echart/const.ts
4
- var n = /* @__PURE__ */ e(t(), 1), r = "stacked";
5
- //#endregion
6
- //#region src/widgets/echart/utils.ts
7
- function i(e, t, r) {
8
- return (0, n.default)(e ?? {}, t ?? {}, { customMerge: (e) => {
9
- let t = r?.(e);
10
- if (t) return t;
11
- if (e === "color") return (e, t) => t;
12
- if (e === "axisLabel") return (e, t) => {
13
- let n = {
14
- ...e,
15
- ...t
16
- };
17
- if (typeof e?.formatter == "function" && typeof t?.formatter == "function") {
18
- let r = e.formatter, i = t.formatter;
19
- n.formatter = (e) => r(e) === "" ? "" : i(e);
20
- }
21
- return n;
22
- };
23
- if (e === "series") return (e, t) => {
24
- let r = Math.max(e?.length ?? 0, t?.length ?? 0);
25
- return Array.from({ length: r }, (r, i) => {
26
- let a = e?.[i] ?? {}, o = t?.[i] ?? {};
27
- return (0, n.default)(a, o);
28
- });
29
- };
30
- } });
31
- }
32
- function a({ start: e, end: t } = {
33
- start: 0,
34
- end: 100
35
- }, { inside: n = !0, xSlider: r = !0, ySlider: i = !1, showSliders: a = !0, xAxisLabelFormatter: s, bottomOffset: c = 0 } = {}, l) {
36
- let u = l ? o(l) : {};
37
- return { dataZoom: [
38
- n && {
39
- throttle: 0,
40
- type: "inside",
41
- xAxisIndex: r ? [0] : [],
42
- yAxisIndex: i ? [0] : [],
43
- show: !0,
44
- zoomLock: !1,
45
- start: e,
46
- end: t
47
- },
48
- n && i && {
49
- throttle: 0,
50
- type: "inside",
51
- show: !0,
52
- zoomLock: !1,
53
- start: e,
54
- end: t,
55
- orientation: "vertical"
56
- },
57
- r && {
58
- throttle: 0,
59
- type: "slider",
60
- xAxisIndex: [0],
61
- bottom: c,
62
- height: parseInt(l?.spacing?.(4) ?? "32"),
63
- show: a,
64
- zoomLock: !1,
65
- start: e,
66
- end: t,
67
- labelFormatter: s,
68
- showDetail: !1,
69
- ...u,
70
- brushSelect: !1,
71
- moveHandleSize: 8,
72
- handleSize: "100%",
73
- handleIcon: "image://data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOSIgaGVpZ2h0PSIzNiIgdmlld0JveD0iMCAwIDkgMzYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHg9IjAuNSIgeT0iLTAuNSIgd2lkdGg9IjgiIGhlaWdodD0iMTgiIHJ4PSI0IiB0cmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAtMSAwIDI3KSIgZmlsbD0id2hpdGUiIHN0cm9rZT0iIzM1OEJFNyIvPgo8cmVjdCB3aWR0aD0iMyIgaGVpZ2h0PSIyIiByeD0iMSIgdHJhbnNmb3JtPSJtYXRyaXgoMSAwIDAgLTEgMyAyMykiIGZpbGw9IiMzNThCRTciLz4KPHJlY3Qgd2lkdGg9IjMiIGhlaWdodD0iMiIgcng9IjEiIHRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIC0xIDMgMTkpIiBmaWxsPSIjMzU4QkU3Ii8+CjxyZWN0IHdpZHRoPSIzIiBoZWlnaHQ9IjIiIHJ4PSIxIiB0cmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAtMSAzIDE1KSIgZmlsbD0iIzM1OEJFNyIvPgo8L3N2Zz4="
74
- },
75
- i && {
76
- throttle: 0,
77
- type: "slider",
78
- left: parseInt(l?.spacing?.(6) ?? "48"),
79
- width: parseInt(l?.spacing?.(4) ?? "32"),
80
- yAxisIndex: [0],
81
- show: a,
82
- zoomLock: !1,
83
- start: e,
84
- end: t,
85
- ...u,
86
- brushSelect: !1,
87
- moveHandleSize: 8,
88
- handleSize: "100%",
89
- handleIcon: "image://data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzYiIGhlaWdodD0iOSIgdmlld0JveD0iMCAwIDM2IDkiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHg9IjAuNSIgeT0iMC41IiB3aWR0aD0iOCIgaGVpZ2h0PSIxOCIgcng9IjQiIHRyYW5zZm9ybT0icm90YXRlKC05MCAwLjUgMC41KSIgZmlsbD0id2hpdGUiIHN0cm9rZT0iIzM1OEJFNyIvPgo8cmVjdCB3aWR0aD0iMyIgaGVpZ2h0PSIyIiByeD0iMSIgdHJhbnNmb3JtPSJyb3RhdGUoLTkwIDEzIDYpIiBmaWxsPSIjMzU4QkU3Ii8+CjxyZWN0IHdpZHRoPSIzIiBoZWlnaHQ9IjIiIHJ4PSIxIiB0cmFuc2Zvcm09InJvdGF0ZSgtOTAgMTcgNikiIGZpbGw9IiMzNThCRTciLz4KPHJlY3Qgd2lkdGg9IjMiIGhlaWdodD0iMiIgcng9IjEiIHRyYW5zZm9ybT0icm90YXRlKC05MCAyMSA2KSIgZmlsbD0iIzM1OEJFNyIvPgo8L3N2Zz4="
90
- }
91
- ].filter((e) => !!e) };
92
- }
93
- function o(e) {
94
- return {
95
- fillerColor: "rgba(53, 139, 231, 0.25)",
96
- borderColor: "rgba(53, 139, 231, 0.3)",
97
- borderWidth: .5,
98
- backgroundColor: "transparent",
99
- borderRadius: 4,
100
- dataBackground: {
101
- lineStyle: { opacity: 0 },
102
- areaStyle: {
103
- opacity: 1,
104
- color: e.palette.secondary.main
105
- }
106
- },
107
- selectedDataBackground: {
108
- lineStyle: { opacity: 0 },
109
- areaStyle: {
110
- opacity: 1,
111
- color: e.palette.secondary.main
112
- }
113
- },
114
- handleStyle: {
115
- color: e.palette.common.white,
116
- borderColor: "rgba(3, 111, 226, 0.08)",
117
- borderWidth: 1,
118
- shadowBlur: 3,
119
- shadowColor: "rgba(0, 0, 0, 0.1)",
120
- shadowOffsetX: 0,
121
- shadowOffsetY: 1
122
- },
123
- textStyle: {
124
- color: e.palette.black[60],
125
- fontSize: parseInt(e.typography.overlineDelicate.fontSize),
126
- fontFamily: e.typography.overlineDelicate.fontFamily
127
- }
128
- };
129
- }
130
- function s({ brushType: e = "lineX", brushMode: t = "single", xAxisIndex: n = 0 } = {}) {
131
- return { brush: {
132
- toolbox: ["lineX", "clear"],
133
- brushType: e,
134
- brushMode: t,
135
- xAxisIndex: n
136
- } };
137
- }
138
- function c(e = r) {
139
- return { stack: e };
140
- }
141
- //#endregion
142
- //#region src/widgets/echart/shared-resize-observer.ts
143
- var l = /* @__PURE__ */ new Map(), u = null;
144
- function d() {
145
- return u ??= new ResizeObserver((e) => {
146
- for (let t of e) l.get(t.target)?.();
147
- }), u;
148
- }
149
- function f(e, t) {
150
- return l.set(e, t), d().observe(e), () => {
151
- l.delete(e), d().unobserve(e);
152
- };
153
- }
154
- //#endregion
155
- export { i as a, a as i, s as n, r as o, c as r, f as t };
156
-
157
- //# sourceMappingURL=shared-resize-observer-BEiP2rQt.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"shared-resize-observer-BEiP2rQt.js","names":[],"sources":["../src/widgets/echart/const.ts","../src/widgets/echart/utils.ts","../src/widgets/echart/shared-resize-observer.ts"],"sourcesContent":["export const DEFAULT_STACK_GROUP = 'stacked'\n","import deepmerge from 'deepmerge'\nimport type { EchartOptionsProps } from './types'\nimport type { Theme } from '@mui/material'\nimport { DEFAULT_STACK_GROUP } from './const'\n\n/**\n * Deep-merges two ECharts option objects with smart handling for `color`, `axisLabel`, and `series` keys.\n *\n * @param optionA - Base ECharts options.\n * @param optionB - Override ECharts options to merge on top.\n * @param customMergeFn - Optional function returning a custom merge strategy per key.\n * @returns The merged ECharts options object.\n *\n * @remarks\n * - `color` arrays are replaced entirely (not concatenated).\n * - `axisLabel` formatters are composed so the base formatter can suppress values by returning `''`.\n * - `series` arrays are merged element-by-element rather than concatenated.\n *\n * @example\n * ```tsx\n * const option = mergeEchartWidgetConfig(props.option, {\n * series: [{ barWidth: '60%', itemStyle: { borderRadius: [4, 4, 0, 0] } }],\n * tooltip: { trigger: 'axis' },\n * })\n * ```\n */\nexport function mergeEchartWidgetConfig<T extends EchartOptionsProps>(\n optionA: T | undefined,\n optionB: T | undefined,\n customMergeFn?: (\n key: string,\n ) => ((a: unknown, b: unknown) => unknown) | undefined,\n): T {\n return deepmerge(optionA ?? {}, optionB ?? {}, {\n customMerge: (key) => {\n const externalMerge = customMergeFn?.(key)\n if (externalMerge) return externalMerge\n\n if (key === 'color') {\n return (_, b: T['color']) => b\n }\n if (key === 'axisLabel') {\n return (\n a: Record<string, unknown> | undefined,\n b: Record<string, unknown> | undefined,\n ) => {\n const merged = { ...a, ...b }\n if (\n typeof a?.formatter === 'function' &&\n typeof b?.formatter === 'function'\n ) {\n const baseFormatter = a.formatter as (value: unknown) => unknown\n const customFormatter = b.formatter as (value: unknown) => unknown\n merged.formatter = (value: unknown) => {\n const baseResult = baseFormatter(value)\n if (baseResult === '') return ''\n return customFormatter(value)\n }\n }\n return merged\n }\n }\n if (key === 'series') {\n return (a: T['series'][], b: T['series'][]) => {\n const maxLength = Math.max(a?.length ?? 0, b?.length ?? 0)\n return Array.from({ length: maxLength }, (_, index) => {\n const aItem = a?.[index] ?? {}\n const bItem = b?.[index] ?? {}\n return deepmerge(aItem, bItem as object)\n })\n }\n }\n },\n }) as T\n}\n\n/**\n * Generates ECharts `dataZoom` configuration for interactive zoom and pan on chart axes.\n *\n * @param range - Initial visible range as `{ start, end }` percentages (0-100). Defaults to full range.\n * @param options - Zoom behavior options including axis sliders, inside zoom, and formatter.\n * @param theme - Optional MUI theme for styled slider handles and backgrounds.\n * @returns An object containing the `dataZoom` array configuration.\n */\nexport function getEChartZoomConfig(\n { start, end }: { start: number; end: number } = { start: 0, end: 100 },\n {\n inside = true,\n xSlider = true,\n ySlider = false,\n showSliders = true,\n xAxisLabelFormatter,\n bottomOffset = 0,\n } = {} as {\n inside?: boolean\n xSlider?: boolean\n ySlider?: boolean\n showSliders?: boolean\n xAxisLabelFormatter?: (value: number) => string\n bottomOffset?: number\n },\n theme?: Theme,\n) {\n const zoom = true\n const sliderStyles = theme ? getEChartZoomSliderStyles(theme) : {}\n\n return {\n dataZoom: [\n inside && {\n throttle: 0,\n type: 'inside',\n xAxisIndex: xSlider ? [0] : [],\n yAxisIndex: ySlider ? [0] : [],\n show: zoom,\n zoomLock: !zoom,\n start,\n end,\n },\n inside &&\n ySlider && {\n throttle: 0,\n type: 'inside',\n show: zoom,\n zoomLock: !zoom,\n start,\n end,\n orientation: 'vertical',\n },\n xSlider && {\n throttle: 0,\n type: 'slider',\n xAxisIndex: [0],\n bottom: bottomOffset,\n height: parseInt(theme?.spacing?.(4) ?? '32'),\n show: zoom && showSliders,\n zoomLock: !zoom,\n start,\n end,\n labelFormatter: xAxisLabelFormatter,\n showDetail: false,\n ...sliderStyles,\n brushSelect: false,\n moveHandleSize: 8,\n handleSize: '100%',\n handleIcon:\n 'image://data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOSIgaGVpZ2h0PSIzNiIgdmlld0JveD0iMCAwIDkgMzYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHg9IjAuNSIgeT0iLTAuNSIgd2lkdGg9IjgiIGhlaWdodD0iMTgiIHJ4PSI0IiB0cmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAtMSAwIDI3KSIgZmlsbD0id2hpdGUiIHN0cm9rZT0iIzM1OEJFNyIvPgo8cmVjdCB3aWR0aD0iMyIgaGVpZ2h0PSIyIiByeD0iMSIgdHJhbnNmb3JtPSJtYXRyaXgoMSAwIDAgLTEgMyAyMykiIGZpbGw9IiMzNThCRTciLz4KPHJlY3Qgd2lkdGg9IjMiIGhlaWdodD0iMiIgcng9IjEiIHRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIC0xIDMgMTkpIiBmaWxsPSIjMzU4QkU3Ii8+CjxyZWN0IHdpZHRoPSIzIiBoZWlnaHQ9IjIiIHJ4PSIxIiB0cmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAtMSAzIDE1KSIgZmlsbD0iIzM1OEJFNyIvPgo8L3N2Zz4=',\n },\n ySlider && {\n throttle: 0,\n type: 'slider',\n left: parseInt(theme?.spacing?.(6) ?? '48'),\n width: parseInt(theme?.spacing?.(4) ?? '32'),\n yAxisIndex: [0],\n show: zoom && showSliders,\n zoomLock: !zoom,\n start,\n end,\n ...sliderStyles,\n brushSelect: false,\n moveHandleSize: 8,\n handleSize: '100%',\n handleIcon:\n 'image://data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzYiIGhlaWdodD0iOSIgdmlld0JveD0iMCAwIDM2IDkiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHg9IjAuNSIgeT0iMC41IiB3aWR0aD0iOCIgaGVpZ2h0PSIxOCIgcng9IjQiIHRyYW5zZm9ybT0icm90YXRlKC05MCAwLjUgMC41KSIgZmlsbD0id2hpdGUiIHN0cm9rZT0iIzM1OEJFNyIvPgo8cmVjdCB3aWR0aD0iMyIgaGVpZ2h0PSIyIiByeD0iMSIgdHJhbnNmb3JtPSJyb3RhdGUoLTkwIDEzIDYpIiBmaWxsPSIjMzU4QkU3Ii8+CjxyZWN0IHdpZHRoPSIzIiBoZWlnaHQ9IjIiIHJ4PSIxIiB0cmFuc2Zvcm09InJvdGF0ZSgtOTAgMTcgNikiIGZpbGw9IiMzNThCRTciLz4KPHJlY3Qgd2lkdGg9IjMiIGhlaWdodD0iMiIgcng9IjEiIHRyYW5zZm9ybT0icm90YXRlKC05MCAyMSA2KSIgZmlsbD0iIzM1OEJFNyIvPgo8L3N2Zz4=',\n },\n ].filter((d) => !!d),\n }\n}\n\nfunction getEChartZoomSliderStyles(theme: Theme) {\n return {\n fillerColor: 'rgba(53, 139, 231, 0.25)',\n borderColor: 'rgba(53, 139, 231, 0.3)',\n borderWidth: 0.5,\n backgroundColor: 'transparent',\n borderRadius: 4,\n dataBackground: {\n lineStyle: {\n opacity: 0,\n },\n areaStyle: {\n opacity: 1,\n color: theme.palette.secondary.main,\n },\n },\n selectedDataBackground: {\n lineStyle: {\n opacity: 0,\n },\n areaStyle: {\n opacity: 1,\n color: theme.palette.secondary.main,\n },\n },\n handleStyle: {\n color: theme.palette.common.white,\n borderColor: 'rgba(3, 111, 226, 0.08)',\n borderWidth: 1,\n shadowBlur: 3,\n shadowColor: 'rgba(0, 0, 0, 0.1)',\n shadowOffsetX: 0,\n shadowOffsetY: 1,\n },\n textStyle: {\n color: theme.palette.black[60],\n fontSize: parseInt(theme.typography.overlineDelicate.fontSize as string),\n fontFamily: theme.typography.overlineDelicate.fontFamily,\n },\n } as const\n}\n\n/**\n * Generates ECharts `brush` configuration for interactive data selection on charts.\n *\n * @param options - Brush options including type, mode, and target axis index.\n * @returns An object containing the `brush` configuration.\n */\nexport function getEChartBrushConfig(\n { brushType = 'lineX', brushMode = 'single', xAxisIndex = 0 } = {} as {\n brushType?: string\n brushMode?: string\n xAxisIndex?: number\n throttleType?: string\n throttleDelay?: number\n },\n) {\n return {\n brush: {\n toolbox: ['lineX', 'clear'],\n brushType,\n brushMode,\n xAxisIndex,\n },\n }\n}\n\n/**\n * Returns an ECharts `stack` configuration to group series into a stacked layout.\n *\n * @param stackGroup - The stack group identifier. Defaults to the library's default group.\n * @returns An object with the `stack` property set to the group name.\n */\nexport function getEChartStackConfig(stackGroup: string = DEFAULT_STACK_GROUP) {\n return { stack: stackGroup }\n}\n","/**\n * Shared ResizeObserver singleton for all ECharts instances.\n *\n * Instead of creating 100+ individual ResizeObserver instances (one per chart),\n * this module provides a single shared observer that efficiently handles resize\n * callbacks for all registered elements.\n */\n\ntype ResizeCallback = () => void\n\nconst callbacks = new Map<Element, ResizeCallback>()\n\nlet observer: ResizeObserver | null = null\n\nfunction getObserver(): ResizeObserver {\n observer ??= new ResizeObserver((entries) => {\n for (const entry of entries) {\n const callback = callbacks.get(entry.target)\n callback?.()\n }\n })\n return observer\n}\n\nexport function observeResize(\n element: Element,\n callback: ResizeCallback,\n): () => void {\n callbacks.set(element, callback)\n getObserver().observe(element)\n\n return () => {\n callbacks.delete(element)\n getObserver().unobserve(element)\n }\n}\n\n/** Reset the shared observer (for testing only). */\nexport function resetSharedResizeObserver(): void {\n if (observer) {\n observer.disconnect()\n observer = null\n }\n callbacks.clear()\n}\n"],"mappings":"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"}
@@ -1,34 +0,0 @@
1
- import { t as e } from "./tooltip-DJUGNZxY.js";
2
- import { c as t } from "react/compiler-runtime";
3
- import { useLayoutEffect as n, useRef as r, useState as i } from "react";
4
- import { jsx as a } from "react/jsx-runtime";
5
- //#region src/components/smart-tooltip/smart-tooltip.tsx
6
- var o = [];
7
- function s(s) {
8
- let c = t(13), { title: l, dependencies: u, timeout: d, TooltipProps: f, children: p } = s, m = u === void 0 ? o : u, h = d === void 0 ? 500 : d, g = r(null), [_, v] = i(!1), y;
9
- c[0] === m ? y = c[1] : (y = JSON.stringify(m), c[0] = m, c[1] = y);
10
- let b = y, x;
11
- c[2] === h ? x = c[3] : (x = () => {
12
- let e = () => {
13
- let e = g.current;
14
- e && v(e.scrollWidth > e.clientWidth || e.scrollHeight > e.clientHeight);
15
- }, t = setTimeout(e, h), n = g.current, r = n && typeof ResizeObserver < "u" ? new ResizeObserver(e) : null;
16
- return n && r?.observe(n), () => {
17
- clearTimeout(t), r?.disconnect();
18
- };
19
- }, c[2] = h, c[3] = x);
20
- let S;
21
- c[4] !== b || c[5] !== h ? (S = [b, h], c[4] = b, c[5] = h, c[6] = S) : S = c[6], n(x, S);
22
- let C = _ && l, w;
23
- c[7] === p ? w = c[8] : (w = p({ ref: g }), c[7] = p, c[8] = w);
24
- let T;
25
- return c[9] !== f || c[10] !== C || c[11] !== w ? (T = /* @__PURE__ */ a(e, {
26
- title: C,
27
- ...f,
28
- children: w
29
- }), c[9] = f, c[10] = C, c[11] = w, c[12] = T) : T = c[12], T;
30
- }
31
- //#endregion
32
- export { s as t };
33
-
34
- //# sourceMappingURL=smart-tooltip-CwGHCqab.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"smart-tooltip-CwGHCqab.js","names":["{\n title,\n dependencies = EMPTY_DEPENDENCIES,\n timeout = 500,\n TooltipProps,\n children,\n}: {\n title: string | undefined\n dependencies?: unknown[]\n timeout?: number\n children: (props: { ref: Ref<T> }) => JSX.Element\n TooltipProps?: Partial<TooltipProps>\n}","dependencies = EMPTY_DEPENDENCIES","timeout = 500","JSON.stringify(dependencies)","() => {\n const checkOverflow = () => {\n const el = ref.current\n if (!el) return\n setIsOverflowing(\n el.scrollWidth > el.clientWidth || el.scrollHeight > el.clientHeight,\n )\n }\n\n // Initial measure after layout settles (fonts, flex collapse, …).\n const timerId = setTimeout(checkOverflow, timeout)\n // Re-measure when the element is resized (e.g. legend title reflows as\n // hover-faded actions collapse/expand).\n const el = ref.current\n const resizeObserver =\n el && typeof ResizeObserver !== 'undefined'\n ? new ResizeObserver(checkOverflow)\n : null\n if (el) resizeObserver?.observe(el)\n\n return () => {\n clearTimeout(timerId)\n resizeObserver?.disconnect()\n }\n }","el","[dependenciesKey, timeout]","children({ ref })","<Tooltip title={isOverflowing && title} {...TooltipProps}>\n {children({ ref })}\n </Tooltip>","isOverflowing && title"],"sources":["../src/components/smart-tooltip/smart-tooltip.tsx"],"sourcesContent":["import type { TooltipProps } from '@mui/material'\nimport { useLayoutEffect, useRef, useState, type JSX, type Ref } from 'react'\nimport { Tooltip } from '../tooltip/tooltip'\n\nconst EMPTY_DEPENDENCIES: unknown[] = []\n\n/**\n * An intelligent tooltip wrapper that automatically detects text overflow and displays a tooltip only when content is truncated.\n *\n * @remarks\n * Uses a render prop pattern. The child function receives a `ref` that must be attached to the element being monitored for overflow. Use the `dependencies` array to trigger re-evaluation when content or container size changes.\n *\n * @example\n * ```tsx\n * <SmartTooltip title=\"This is a long text that might get truncated\">\n * {({ ref }) => (\n * <Typography ref={ref} noWrap sx={{ overflow: 'hidden', textOverflow: 'ellipsis' }}>\n * This is a long text that might get truncated\n * </Typography>\n * )}\n * </SmartTooltip>\n * ```\n */\nexport function SmartTooltip<T extends HTMLElement>({\n title,\n dependencies = EMPTY_DEPENDENCIES,\n timeout = 500,\n TooltipProps,\n children,\n}: {\n title: string | undefined\n dependencies?: unknown[]\n timeout?: number\n children: (props: { ref: Ref<T> }) => JSX.Element\n TooltipProps?: Partial<TooltipProps>\n}) {\n const ref = useRef<T>(null)\n const [isOverflowing, setIsOverflowing] = useState(false)\n // Call sites pass a fresh `dependencies={[…]}` literal each render; key by\n // value so the effect does not churn ResizeObserver on referential churn.\n const dependenciesKey = JSON.stringify(dependencies)\n\n useLayoutEffect(() => {\n const checkOverflow = () => {\n const el = ref.current\n if (!el) return\n setIsOverflowing(\n el.scrollWidth > el.clientWidth || el.scrollHeight > el.clientHeight,\n )\n }\n\n // Initial measure after layout settles (fonts, flex collapse, …).\n const timerId = setTimeout(checkOverflow, timeout)\n // Re-measure when the element is resized (e.g. legend title reflows as\n // hover-faded actions collapse/expand).\n const el = ref.current\n const resizeObserver =\n el && typeof ResizeObserver !== 'undefined'\n ? new ResizeObserver(checkOverflow)\n : null\n if (el) resizeObserver?.observe(el)\n\n return () => {\n clearTimeout(timerId)\n resizeObserver?.disconnect()\n }\n }, [dependenciesKey, timeout])\n\n return (\n <Tooltip title={isOverflowing && title} {...TooltipProps}>\n {children({ ref })}\n </Tooltip>\n )\n}\n"],"mappings":";;;;;AAIA,IAAM,IAAgC,CAAC;AAmBvC,SAAgB,EAAA,GAYb;gBAZiD,EAClD,UACA,cAAA,GACA,SAAA,GACA,iBACA,gBALkDA,GAElD,IAAA,MAAA,KAAA,IAAe,IAAfC,GACA,IAAA,MAAA,KAAA,IAAU,MAAVC,GAUM,IAAM,EAAU,IAAI,GACpB,CAAC,GAAe,KAAoB,EAAS,EAAK,GAGhCC;CAAe,AAAA,EAAA,OAAA,gBAAf,IAAA,KAAK,UAAU,CAAY,GAAZ,EAAA,KAAA;CAAvC,IAAM,IAAkBA,GAERC;CAU4B,AAAA,EAAA,OAAA,gBAV5B,UAAM;EACpB,IAAM,UAAsB;GAC1B,IAAM,IAAK,EAAI;GACV,KACL,EACE,EAAG,cAAc,EAAG,eAAe,EAAG,eAAe,EAAG,YAC1D;EACF,GAGM,IAAU,WAAW,GAAe,CAAO,GAG3CC,IAAK,EAAI,SACT,IACJA,KAAM,OAAO,iBAAmB,MAC5B,IAAI,eAAe,CAAa,IAChC;EAGN,OAFIA,KAAI,GAAgB,QAAQA,CAAE,SAErB;GAEX,AADA,aAAa,CAAO,GACpB,GAAgB,WAAW;EAC7B;CACF,GAd4C,EAAA,KAAA;CAczCC,IAAAA;CAxBH,AAwBI,EAAA,OAAA,KAAA,EAAA,OAAiB,KAAlB,IAAA,CAAC,GAAiB,CAAO,GAAxB,EAAA,KAAA,GAAiB,EAAA,KAAA,yBAxBrB,EAAgBF,GAwBbE,CAA0B;CAGX,IAAA,IAAA,KAAiB,GAC9BC;0BAAS,IAAA,EAAA,EAAE,OAAI,CAAC,GAAhB,EAAA,KAAA;CADHC,IAAAA;CADF,OAC8C,EAAA,OAAA,KAAA,EAAA,QAA5BC,KAAAA,EAAAA,QACbF,KADH,IAAA,kBAAC,GAAD;EAAS,OAAOE;EAAwB,GAAI;EACzCF,UAAAA;CACM,CAAA,GAFmC,EAAA,KAAA,GAA5BE,EAAAA,MAAAA,GACbF,EAAAA,MAAAA,2BADHC;AAIJ"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"spread-CgCTKPQD.js","names":["<Value color='inherit'>-</Value>","{ items, formatter, ref }: SpreadUIProps","(n: number) => String(n)","items.map((item, i) => (\n // Composite of series name + min/max bounds for stability across\n // reorders; falls back to the index when bounds happen to collide.\n <Box\n key={`spread-${item.series?.name ?? ''}-${item.min}-${item.max}-${i}`}\n sx={styles.row}\n >\n {item.series ? (\n <Series name={item.series.name} color={item.series.color} />\n ) : null}\n <Box sx={styles.body}>\n <Box sx={styles.valueRow}>\n {item.prefix ? <Prefix>{item.prefix}</Prefix> : null}\n <Value color={item.color}>{fmt(item.min)}</Value>\n <Separator />\n <Value color={item.color}>{fmt(item.max)}</Value>\n {item.suffix ? <Suffix>{item.suffix}</Suffix> : null}\n </Box>\n {item.note ? <Note>{item.note}</Note> : null}\n </Box>\n </Box>\n ))","(item, i) => (\n // Composite of series name + min/max bounds for stability across\n // reorders; falls back to the index when bounds happen to collide.\n <Box\n key={`spread-${item.series?.name ?? ''}-${item.min}-${item.max}-${i}`}\n sx={styles.row}\n >\n {item.series ? (\n <Series name={item.series.name} color={item.series.color} />\n ) : null}\n <Box sx={styles.body}>\n <Box sx={styles.valueRow}>\n {item.prefix ? <Prefix>{item.prefix}</Prefix> : null}\n <Value color={item.color}>{fmt(item.min)}</Value>\n <Separator />\n <Value color={item.color}>{fmt(item.max)}</Value>\n {item.suffix ? <Suffix>{item.suffix}</Suffix> : null}\n </Box>\n {item.note ? <Note>{item.note}</Note> : null}\n </Box>\n </Box>\n )","<Box ref={ref} sx={styles.root}>\n {items.map((item, i) => (\n // Composite of series name + min/max bounds for stability across\n // reorders; falls back to the index when bounds happen to collide.\n <Box\n key={`spread-${item.series?.name ?? ''}-${item.min}-${item.max}-${i}`}\n sx={styles.row}\n >\n {item.series ? (\n <Series name={item.series.name} color={item.series.color} />\n ) : null}\n <Box sx={styles.body}>\n <Box sx={styles.valueRow}>\n {item.prefix ? <Prefix>{item.prefix}</Prefix> : null}\n <Value color={item.color}>{fmt(item.min)}</Value>\n <Separator />\n <Value color={item.color}>{fmt(item.max)}</Value>\n {item.suffix ? <Suffix>{item.suffix}</Suffix> : null}\n </Box>\n {item.note ? <Note>{item.note}</Note> : null}\n </Box>\n </Box>\n ))}\n </Box>","<SpreadUI items={slice.data} formatter={slice.formatter} />","data","formatter","{ count = 1 }: SpreadSkeletonProps","count = 1","<Box sx={styles.root}>\n {Array.from({ length: count }).map((_, i) => (\n <Box key={`row-${i}`} sx={styles.row}>\n <Skeleton variant='rectangular' sx={styles.block} />\n </Box>\n ))}\n </Box>","(_, i) => (\n <Box key={`row-${i}`} sx={styles.row}>\n <Skeleton variant='rectangular' sx={styles.block} />\n </Box>\n )"],"sources":["../src/widgets-v2/spread/separator.tsx","../src/widgets-v2/spread/spread-ui.tsx","../src/widgets-v2/spread/spread.tsx","../src/widgets-v2/spread/skeleton.tsx","../src/widgets-v2/spread/download.ts","../src/widgets-v2/spread/band.ts"],"sourcesContent":["import { Value } from '../formula'\n\n/**\n * Em-dash separator placed between a Spread row's `min` and `max` values.\n * Built from the Formula {@link Value} primitive so typography (h5/600,\n * baseline alignment) matches the numbers around it. Renders with\n * `text.secondary` so it visually recedes between the two bounds.\n */\nexport function Separator() {\n return <Value color='inherit'>-</Value>\n}\n","import { Box } from '@mui/material'\nimport type { Ref } from 'react'\nimport { Note, Prefix, Series, Suffix, Value } from '../formula'\nimport { styles } from '../formula/style'\nimport { Separator } from './separator'\nimport type { SpreadDataItem } from './types'\n\nexport interface SpreadUIProps {\n items: readonly SpreadDataItem[]\n /** Number formatter — applied to each item's `min` and `max`. */\n formatter?: (value: number) => string\n /** Forwarded to the root `<Box>` so consumers can capture the DOM (PNG export). */\n ref?: Ref<HTMLDivElement>\n}\n\n/**\n * Pure presentational component for the Spread widget. Each item renders as\n * a row containing (in order): optional `Series` avatar, a body with\n * `[prefix] min — max [suffix]` plus optional `Note`. Reuses the Formula\n * primitives ({@link Series}, {@link Prefix}, {@link Value}, {@link Suffix},\n * {@link Note}) and the Formula row styles so Spread and Formula stay\n * visually aligned when used together.\n */\nexport function SpreadUI({ items, formatter, ref }: SpreadUIProps) {\n const fmt = formatter ?? ((n: number) => String(n))\n return (\n <Box ref={ref} sx={styles.root}>\n {items.map((item, i) => (\n // Composite of series name + min/max bounds for stability across\n // reorders; falls back to the index when bounds happen to collide.\n <Box\n key={`spread-${item.series?.name ?? ''}-${item.min}-${item.max}-${i}`}\n sx={styles.row}\n >\n {item.series ? (\n <Series name={item.series.name} color={item.series.color} />\n ) : null}\n <Box sx={styles.body}>\n <Box sx={styles.valueRow}>\n {item.prefix ? <Prefix>{item.prefix}</Prefix> : null}\n <Value color={item.color}>{fmt(item.min)}</Value>\n <Separator />\n <Value color={item.color}>{fmt(item.max)}</Value>\n {item.suffix ? <Suffix>{item.suffix}</Suffix> : null}\n </Box>\n {item.note ? <Note>{item.note}</Note> : null}\n </Box>\n </Box>\n ))}\n </Box>\n )\n}\n","import { useWidgetId, useWidgetShallow } from '../stores'\nimport { SpreadUI } from './spread-ui'\nimport type { SpreadWidgetData } from './types'\n\ninterface SpreadSlice {\n data: SpreadWidgetData\n formatter?: (value: number) => string\n}\n\n// Stable empty-data sentinel — keeps the slice's `data` reference stable\n// when the underlying store value is null/undefined so the shallow-equality\n// gate in `useWidgetShallow` doesn't re-render every commit.\nconst EMPTY_DATA: SpreadWidgetData = Object.freeze([]) as SpreadWidgetData\n\nconst spreadSelector = (s: {\n data: unknown\n formatter?: (value: number) => string\n}): SpreadSlice => ({\n data: (s.data ?? EMPTY_DATA) as SpreadWidgetData,\n formatter: s.formatter,\n})\n\n/**\n * Stateful Spread bridge — reads `data` (post-pipeline) and `formatter` from\n * the per-widget store and forwards them to the pure {@link SpreadUI}.\n */\nexport function Spread() {\n const id = useWidgetId()\n const slice = useWidgetShallow(id, spreadSelector)\n return <SpreadUI items={slice.data} formatter={slice.formatter} />\n}\n","import { Box, Skeleton } from '@mui/material'\nimport type { SxProps, Theme } from '@mui/material'\n\nconst styles = {\n root: {\n display: 'flex',\n flexDirection: 'column',\n gap: 2,\n py: 1,\n },\n row: {\n display: 'flex',\n alignItems: 'center',\n gap: 1.5,\n },\n block: { width: 200, height: 32 },\n} satisfies Record<string, SxProps<Theme>>\n\nexport interface SpreadSkeletonProps {\n count?: number\n}\n\n/**\n * Loading placeholder for the Spread widget. Renders `count` rows, each\n * sized for the `min — max` pair so the layout doesn't jump once data\n * resolves. Mirrors the row-per-item structure of {@link SpreadUI}.\n */\nexport function SpreadSkeleton({ count = 1 }: SpreadSkeletonProps) {\n return (\n <Box sx={styles.root}>\n {Array.from({ length: count }).map((_, i) => (\n <Box key={`row-${i}`} sx={styles.row}>\n <Skeleton variant='rectangular' sx={styles.block} />\n </Box>\n ))}\n </Box>\n )\n}\n","import {\n buildCsvDownloadItem,\n buildPngDownloadItem,\n type DownloadContext,\n type DownloadItem,\n} from '../actions/download'\nimport type { SpreadWidgetData } from './types'\n\n/**\n * Download menu items for the Spread widget. Always includes a CSV item\n * with `series, prefix, min, max, suffix, note` columns (one row per\n * entry). When `getCaptureEl` is supplied, prepends a PNG item that\n * rasterises the captured element via `html2canvas`.\n */\nexport function createSpreadDownloadConfig(args: {\n filename: string\n getData: (ctx: DownloadContext) => SpreadWidgetData\n getCaptureEl?: (ctx: DownloadContext) => HTMLElement | null\n pngPixelRatio?: number\n pngBackgroundColor?: string | null\n}): DownloadItem[] {\n const items: DownloadItem[] = []\n if (args.getCaptureEl) {\n items.push(\n buildPngDownloadItem({\n filename: args.filename,\n getCaptureEl: args.getCaptureEl,\n pixelRatio: args.pngPixelRatio,\n backgroundColor: args.pngBackgroundColor,\n }),\n )\n }\n items.push(\n buildCsvDownloadItem({\n filename: args.filename,\n getRows: (ctx) => {\n const data = args.getData(ctx)\n const rows: unknown[][] = [\n ['series', 'prefix', 'min', 'max', 'suffix', 'note'],\n ]\n for (const item of data) {\n rows.push([\n item.series?.name ?? '',\n item.prefix ?? '',\n item.min,\n item.max,\n item.suffix ?? '',\n item.note ?? '',\n ])\n }\n return rows\n },\n }),\n )\n return items\n}\n","/**\n * How a `spread` amount is applied to a centre value.\n *\n * - `percentage` — `spread` is a whole-number percentage of the centre\n * value, so `5` means +/-5%.\n * - `absolute` — `spread` is a raw offset in the value's own units.\n */\nexport type SpreadVariant = 'percentage' | 'absolute'\n\nexport interface GetSpreadBandOptions {\n /** The centre value the band is drawn around. */\n value: number\n /** Half-width of the band, read according to `variant`. */\n spread: number\n /** Defaults to `percentage`. */\n variant?: SpreadVariant\n}\n\n/**\n * Derives the `min` / `max` band around a centre value, for feeding a\n * {@link SpreadDataItem} from a single aggregated number (a prediction, a\n * target) plus a tolerance — rather than from a real column range.\n *\n * `spread` is read as a percentage by default, which is what a tolerance\n * almost always is: an absolute offset is meaningless without knowing the\n * value's magnitude, and gets visually lost on large values (+/-5 on a\n * prediction of 204,113 renders as a range indistinguishable from a single\n * number).\n *\n * @example\n * getSpreadBand({ value: 1000, spread: 5 })\n * // -> { min: 950, max: 1050 }\n * getSpreadBand({ value: 1000, spread: 5, variant: 'absolute' })\n * // -> { min: 995, max: 1005 }\n */\nexport function getSpreadBand({\n value,\n spread,\n variant = 'percentage',\n}: GetSpreadBandOptions): { min: number; max: number } {\n const offset = variant === 'absolute' ? spread : (spread / 100) * value\n // Keep `min <= max`: a percentage of a negative centre value (or a negative\n // `spread`) yields a negative offset, which would invert the band.\n const width = Math.abs(offset)\n\n return { min: value - width, max: value + width }\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"stores-tiFePP0A.js","names":["getWidgetStore(id)","(cb) => subscribeEchartInstance(id, cb)","() => getEchartInstance(id)","getWidgetStore(id)","(s) => s.transformStates[primaryId]?.enabled","() => {\n if (typeof persisted === 'boolean') return\n store.setState((s: WidgetState) => ({\n transformStates: {\n ...s.transformStates,\n [primaryId]: {\n ...s.transformStates[primaryId],\n enabled: initialEnabled,\n },\n },\n }))\n }","[store, primaryId, persisted, initialEnabled]","s","(next) => {\n store.setState((s: WidgetState) => {\n const current = s.transformStates[primaryId]?.enabled ?? initialEnabled\n const value =\n typeof next === 'function'\n ? (next as (v: boolean) => boolean)(current)\n : next\n if (value === current) return {}\n return {\n transformStates: {\n ...s.transformStates,\n [primaryId]: {\n ...s.transformStates[primaryId],\n enabled: value,\n },\n },\n }\n })\n }","useCallback<Dispatch<SetStateAction<boolean>>>(\n (next) => {\n store.setState((s: WidgetState) => {\n const current = s.transformStates[primaryId]?.enabled ?? initialEnabled\n const value =\n typeof next === 'function'\n ? (next as (v: boolean) => boolean)(current)\n : next\n if (value === current) return {}\n return {\n transformStates: {\n ...s.transformStates,\n [primaryId]: {\n ...s.transformStates[primaryId],\n enabled: value,\n },\n },\n }\n })\n },\n [store, primaryId, initialEnabled],\n )","[]","() => {\n const next: Registration[] = []\n for (const { descriptor, fn } of pairs) {\n const key: RegistrationKey =\n descriptor.type === 'data' ? 'dataTransforms' : 'configTransforms'\n const transform: Transform = { ...descriptor, fn, enabled }\n store.setState(\n (s: WidgetState) =>\n ({\n [key]: upsertTransform(s[key], transform),\n }) as Partial<WidgetState>,\n )\n next.push({ key, id: descriptor.id })\n }\n registeredRef.current = next\n }","[store, pairs, enabled]","next","() => {\n return () => {\n for (const { key, id: descriptorId } of registeredRef.current) {\n store.setState(\n (s: WidgetState) =>\n ({\n [key]: removeTransform(s[key], descriptorId),\n }) as Partial<WidgetState>,\n )\n }\n registeredRef.current = []\n }\n }","[store]","key","() => setEnabled((v) => !v)","(v) => !v","useCallback(() => setEnabled((v) => !v), [setEnabled])","{ enabled, setEnabled, toggle }","[{ descriptor, fn }]","useMemo<readonly TransformPair[]>(\n () => [{ descriptor, fn }],\n [descriptor, fn],\n )","(s: WidgetState) => s.transformStates?.[transformId]?.enabled === true"],"sources":["../src/widgets-v2/stores/transforms.ts","../src/widgets-v2/stores/pipeline-middleware.ts","../src/widgets-v2/stores/widget-context.ts","../src/widgets-v2/stores/widget-store-registry.ts","../src/widgets-v2/stores/use-echart-instance.ts","../src/widgets-v2/stores/use-transform.ts","../src/widgets-v2/stores/use-transform-enabled.ts"],"sourcesContent":["import type { Transform } from './types'\n\nexport function applyTransforms(\n input: unknown,\n transforms: readonly Transform[],\n onError?: (id: string, error: Error) => void,\n): unknown {\n const disabledIds = new Set<string>()\n for (const t of transforms) {\n if (t.enabled && t.disables?.length) {\n for (const id of t.disables) disabledIds.add(id)\n }\n }\n let acc: unknown = input\n for (const t of transforms) {\n if (!t.enabled) continue\n if (disabledIds.has(t.id)) continue\n try {\n acc = t.fn(acc)\n } catch (e) {\n const err = e instanceof Error ? e : new Error(String(e))\n // eslint-disable-next-line no-console\n console.warn(`[widgets-v2] Transform \"${t.id}\" failed:`, err)\n onError?.(t.id, err)\n }\n }\n return acc\n}\n\nexport function upsertTransform(\n transforms: readonly Transform[],\n next: Transform,\n): readonly Transform[] {\n const existing = transforms.find((t) => t.id === next.id)\n if (\n existing?.order === next.order &&\n existing?.enabled === next.enabled &&\n existing?.fn === next.fn &&\n existing?.type === next.type &&\n sameStringArray(existing?.disables, next.disables) &&\n sameStringArray(existing?.replaceMergeKeys, next.replaceMergeKeys)\n ) {\n return transforms\n }\n const filtered = transforms.filter((t) => t.id !== next.id)\n const idx = filtered.findIndex((t) => t.order > next.order)\n const out = filtered.slice()\n out.splice(idx === -1 ? out.length : idx, 0, next)\n return out\n}\n\nexport function removeTransform(\n transforms: readonly Transform[],\n id: string,\n): readonly Transform[] {\n if (!transforms.some((t) => t.id === id)) return transforms\n return transforms.filter((t) => t.id !== id)\n}\n\nfunction sameStringArray(\n a?: readonly string[],\n b?: readonly string[],\n): boolean {\n if (a === b) return true\n if (!a) return !b?.length\n if (!b) return !a.length\n if (a.length !== b.length) return false\n for (let i = 0; i < a.length; i++) if (a[i] !== b[i]) return false\n return true\n}\n","import type { StateCreator, StoreApi, StoreMutatorIdentifier } from 'zustand'\nimport type { Transform, WidgetState } from './types'\nimport { applyTransforms } from './transforms'\n\ntype PipelineMiddleware = <\n T extends WidgetState,\n Mps extends [StoreMutatorIdentifier, unknown][] = [],\n Mcs extends [StoreMutatorIdentifier, unknown][] = [],\n>(\n config: StateCreator<T, Mps, Mcs>,\n) => StateCreator<T, Mps, Mcs>\n\ntype SetFn<T> = StoreApi<T>['setState']\n\n// Per-store flag: true iff the current `state.error` was authored by the\n// pipeline (a transform threw) rather than by the consumer (Provider's\n// `error` prop or a direct setState). Lets the middleware clear stale\n// pipeline errors on a subsequent clean run without clobbering errors a\n// consumer set out-of-band.\nconst pipelineOwnedError = new WeakSet<StoreApi<WidgetState>>()\n\nexport const pipelineMiddleware: PipelineMiddleware = ((config) =>\n (set, get, api) => {\n const origSetState = api.setState as SetFn<WidgetState>\n const typedApi = api as StoreApi<WidgetState>\n\n const wrap = (delegate: SetFn<WidgetState>): SetFn<WidgetState> =>\n ((partial, replace) => {\n const current = (api.getState as () => WidgetState)()\n const incoming =\n typeof partial === 'function'\n ? (partial as (s: WidgetState) => Partial<WidgetState>)(current)\n : (partial as Partial<WidgetState>)\n\n const has = (key: keyof WidgetState) =>\n Object.prototype.hasOwnProperty.call(incoming, key)\n\n const rawDataChanged =\n has('rawData') && !Object.is(incoming.rawData, current.rawData)\n const dataXfChanged =\n has('dataTransforms') &&\n incoming.dataTransforms !== current.dataTransforms\n\n if (!rawDataChanged && !dataXfChanged) {\n // Consumer-authored writes that don't trigger the pipeline. If the\n // consumer is explicitly touching `error`, the next pipeline run is\n // no longer responsible for it — drop the pipeline-owned marker.\n if (has('error')) pipelineOwnedError.delete(typedApi)\n return delegate(incoming, replace as false)\n }\n\n const augmented: Partial<WidgetState> = { ...incoming }\n let firstError: unknown = undefined\n const onError = (_id: string, err: Error) => {\n if (firstError === undefined) firstError = err\n }\n\n const nextRaw = rawDataChanged ? incoming.rawData : current.rawData\n const nextXf: readonly Transform[] = dataXfChanged\n ? incoming.dataTransforms!\n : current.dataTransforms\n augmented.data = applyTransforms(nextRaw, nextXf, onError)\n\n // Reconcile `error` based on who authored the previous value:\n // - pipeline throw → stamp the new error, mark pipeline-owned.\n // - clean run AND previous error was pipeline-owned → clear it.\n // - clean run AND previous error was consumer-set → leave it.\n // Consumer-authored `error` in `incoming` also wins over the marker\n // (and resets the marker via the early-return branch above).\n if (firstError !== undefined) {\n augmented.error = firstError\n pipelineOwnedError.add(typedApi)\n } else if (pipelineOwnedError.has(typedApi) && !has('error')) {\n augmented.error = undefined\n pipelineOwnedError.delete(typedApi)\n } else if (has('error')) {\n // Consumer set error in the same call that ran the pipeline — honor\n // their write and surrender ownership.\n pipelineOwnedError.delete(typedApi)\n }\n\n return delegate(augmented, replace as false)\n }) as SetFn<WidgetState>\n\n // Wrap both the public setState (used by store.setState() callers) and\n // the inner set passed into the state creator (used by actions inside config).\n api.setState = wrap(origSetState) as typeof api.setState\n const wrappedInnerSet = wrap(set as SetFn<WidgetState>)\n\n return config(wrappedInnerSet as typeof set, get, api)\n }) as PipelineMiddleware\n","import { createContext, useContext } from 'react'\n\nexport const WidgetContext = createContext<string | null>(null)\n\nexport function useWidgetId(): string {\n const id = useContext(WidgetContext)\n if (id == null) {\n throw new Error(\n 'useWidgetId() must be called inside <Widget.Provider>. ' +\n 'If you are calling from outside the Provider tree, use the hooks ' +\n '(useWidget, useWidgetShallow, useTransform) directly with an explicit id.',\n )\n }\n return id\n}\n","import type { ECharts } from 'echarts'\nimport { useStore, type StoreApi } from 'zustand'\nimport { createStore } from 'zustand/vanilla'\nimport { devtools } from 'zustand/middleware'\nimport { useShallow } from 'zustand/react/shallow'\nimport { isDev } from '@carto/ps-utils'\nimport { pipelineMiddleware } from './pipeline-middleware'\nimport type { WidgetInit, WidgetState, WidgetStoreApi } from './types'\n\nconst widgetStores = new Map<string, WidgetStoreApi>()\n\nconst widgetMountCounts = new Map<string, number>()\nconst warnedDuplicates = new Set<string>()\n\n// Per-widget capture-element registry. Held outside the reactive store so\n// publishing the element doesn't trigger any consumer re-renders — these\n// handles are read imperatively by per-widget download configs at click time\n// only. `Widget.State` writes its success-path content wrapper here on mount\n// (auto-cleared on unmount via callback ref), and `create*DownloadConfig`\n// looks it up to feed `html2canvas` for PNG export.\nconst captureEls = new Map<string, HTMLElement>()\n\n// Per-widget live ECharts instance registry. Same imperative-only contract\n// as `captureEls`: published by the `Widget.Echart` bridge on mount /\n// dispose, read at click time by actions that need to dispatch on the live\n// chart (e.g. `ZoomToggle`'s disable handler issuing\n// `setOption({}, { replaceMerge: ['dataZoom'] })` to clear the slider).\n// Held outside the reactive store so publishing never triggers consumer\n// re-renders.\nconst echartInstances = new Map<string, ECharts>()\n\n// Per-id subscribers notified whenever `setEchartInstance` writes a new\n// value. Powers `useEchartInstance(id)` (a `useSyncExternalStore` wrapper)\n// so actions like `BrushToggle` can react when the chart becomes available\n// — required for lifecycle effects that need the instance on mount but\n// arrive in the tree before the `Widget.Echart` bridge has run its init\n// `useEffect`.\ntype EchartInstanceListener = (chart: ECharts | null) => void\nconst echartInstanceSubscribers = new Map<string, Set<EchartInstanceListener>>()\n\nexport function getWidgetStore(id: string): WidgetStoreApi {\n const store = widgetStores.get(id)\n if (!store) throw new Error(`[widgets-v2] Widget store \"${id}\" not found.`)\n return store\n}\n\nexport function hasWidgetStore(id: string): boolean {\n return widgetStores.has(id)\n}\n\nexport function deleteWidgetStore(id: string): void {\n widgetStores.delete(id)\n}\n\nexport function resetWidgetStore(id: string): void {\n const store = widgetStores.get(id)\n if (store) store.setState({ transformStates: {} })\n}\n\nexport function clearAllWidgetStores(): void {\n widgetStores.clear()\n widgetMountCounts.clear()\n warnedDuplicates.clear()\n captureEls.clear()\n echartInstances.clear()\n echartInstanceSubscribers.clear()\n}\n\n/**\n * Register or clear the capture element for a widget. Pass `null` to clear.\n * Called by `Widget.State` via a callback ref on its success-path content\n * wrapper. The element is read by per-widget download configs at click time\n * to feed `html2canvas` for PNG export.\n */\nexport function setCaptureEl(id: string, el: HTMLElement | null): void {\n if (el == null) captureEls.delete(id)\n else captureEls.set(id, el)\n}\n\n/**\n * Read the currently registered capture element for a widget. Returns `null`\n * when no `Widget.State` is on its success path (loading / error / empty)\n * or when the widget hasn't mounted.\n */\nexport function getCaptureEl(id: string): HTMLElement | null {\n return captureEls.get(id) ?? null\n}\n\n/** @internal — exposed for tests and debugging only. */\nexport function clearAllCaptureEls(): void {\n captureEls.clear()\n}\n\n/**\n * Register or clear the live ECharts instance for a widget. Pass `null`\n * to clear. Called by the `Widget.Echart` bridge on mount / dispose.\n * Read by actions (e.g. `ZoomToggle`'s disable handler) that need to\n * dispatch on the live chart without going through the pipeline.\n *\n * Notifies subscribers registered via {@link subscribeEchartInstance}\n * after the map mutation, so reactive consumers (the\n * `useEchartInstance` hook) re-render with the new value.\n */\nexport function setEchartInstance(id: string, chart: ECharts | null): void {\n if (chart == null) echartInstances.delete(id)\n else echartInstances.set(id, chart)\n echartInstanceSubscribers.get(id)?.forEach((fn) => fn(chart))\n}\n\n/**\n * Read the currently registered ECharts instance for a widget. Returns\n * `null` when no `Widget.Echart` is mounted, or before the bridge has\n * created the instance.\n */\nexport function getEchartInstance(id: string): ECharts | null {\n return echartInstances.get(id) ?? null\n}\n\n/**\n * Subscribe to changes of the registered ECharts instance for a widget.\n * The listener is called *after* every {@link setEchartInstance} (with\n * the new chart, or `null` when cleared). Returns an unsubscribe\n * function. Used by the `useEchartInstance` hook to drive React effects\n * that need to react to instance arrival / departure (e.g.\n * `BrushToggle`'s `'finished'` re-dispatch loop).\n */\nexport function subscribeEchartInstance(\n id: string,\n listener: EchartInstanceListener,\n): () => void {\n let listeners = echartInstanceSubscribers.get(id)\n if (!listeners) {\n listeners = new Set()\n echartInstanceSubscribers.set(id, listeners)\n }\n listeners.add(listener)\n return () => {\n const set = echartInstanceSubscribers.get(id)\n if (!set) return\n set.delete(listener)\n if (set.size === 0) echartInstanceSubscribers.delete(id)\n }\n}\n\n/** @internal — exposed for tests and debugging only. */\nexport function clearAllEchartInstances(): void {\n echartInstances.clear()\n echartInstanceSubscribers.clear()\n}\n\n/** @internal — exposed for tests and debugging only. */\nexport function __debugListWidgetStores(): string[] {\n return Array.from(widgetStores.keys())\n}\n\n/**\n * Insert or replace a store entry in the registry without refcounting or\n * duplicate-id detection. Used by Provider's lazy `useState` init so the\n * store is reachable from `useWidget(id)` calls in children that render\n * before the Provider's mount effect runs. Refcounting and dev warns happen\n * in {@link registerWidgetStore} during the mount effect.\n *\n * @internal\n */\nexport function setWidgetStoreEntry(id: string, store: WidgetStoreApi): void {\n widgetStores.set(id, store)\n}\n\n/** @internal — used by Provider; not part of the public API. */\nexport function createWidgetStore(\n id: string,\n init: WidgetInit,\n): WidgetStoreApi {\n const builder = pipelineMiddleware<WidgetState>(() => ({\n rawData: init.data,\n data: init.data,\n dataTransforms: [],\n configTransforms: [],\n transformStates: {},\n isLoading: init.isLoading ?? false,\n isFetching: init.isFetching ?? false,\n error: init.error,\n rawFormatter: init.formatter,\n formatter: init.formatter,\n labelFormatter: init.labelFormatter,\n }))\n\n const store = createStore<WidgetState>()(\n devtools(builder, { name: `widget-${id}`, enabled: isDev() }),\n ) as unknown as WidgetStoreApi\n\n return store\n}\n\n/** @internal — registers a Provider mount and tracks/warns on duplicate ids in dev. */\nexport function registerWidgetStore(id: string, store: WidgetStoreApi): void {\n widgetStores.set(id, store)\n const count = (widgetMountCounts.get(id) ?? 0) + 1\n widgetMountCounts.set(id, count)\n if (count > 1 && isDev() && !warnedDuplicates.has(id)) {\n // eslint-disable-next-line no-console\n console.warn(\n `[widgets-v2] Duplicate <Widget.Provider id=\"${id}\"> detected. ` +\n `Multiple providers sharing an id will race on prop sync and corrupt the store. ` +\n `Use unique ids per widget instance.`,\n )\n warnedDuplicates.add(id)\n }\n}\n\n/** @internal — Provider unmount counterpart; on last unmount removes the refcount entry. */\nexport function unregisterWidgetStore(\n id: string,\n options: { keepAlive: boolean },\n): void {\n const count = (widgetMountCounts.get(id) ?? 1) - 1\n if (count <= 0) {\n widgetMountCounts.delete(id)\n if (!options.keepAlive) widgetStores.delete(id)\n } else {\n widgetMountCounts.set(id, count)\n }\n}\n\nexport function useWidget<T, S extends WidgetState = WidgetState>(\n id: string,\n selector: (state: S) => T,\n): T {\n const store = getWidgetStore(id) as unknown as StoreApi<S>\n return useStore(store, selector)\n}\n\nexport function useWidgetShallow<T, S extends WidgetState = WidgetState>(\n id: string,\n selector: (state: S) => T,\n): T {\n const store = getWidgetStore(id) as unknown as StoreApi<S>\n return useStore(store, useShallow(selector))\n}\n","import { useSyncExternalStore } from 'react'\nimport type { ECharts } from 'echarts'\nimport {\n getEchartInstance,\n subscribeEchartInstance,\n} from './widget-store-registry'\n\nconst SSR_SNAPSHOT = (): ECharts | null => null\n\n/**\n * Reactive read of the live ECharts instance for a widget. Returns\n * `null` before the `Widget.Echart` bridge has mounted (or after it's\n * disposed); the consumer re-renders when the instance arrives /\n * departs / changes.\n *\n * Wraps {@link subscribeEchartInstance} via `useSyncExternalStore`, so\n * actions can use it inside an effect's deps array to react to chart\n * lifecycle events without polling. Required for actions like\n * `BrushToggle` whose effect needs to dispatch `takeGlobalCursor` the\n * moment the chart exists, then re-dispatch on every `'finished'`\n * event.\n */\nexport function useEchartInstance(id: string): ECharts | null {\n return useSyncExternalStore(\n (cb) => subscribeEchartInstance(id, cb),\n () => getEchartInstance(id),\n SSR_SNAPSHOT,\n )\n}\n","import {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n type Dispatch,\n type SetStateAction,\n} from 'react'\nimport { useStore } from 'zustand'\nimport { getWidgetStore } from './widget-store-registry'\nimport { removeTransform, upsertTransform } from './transforms'\nimport type {\n Transform,\n TransformDescriptor,\n TransformFn,\n TransformPair,\n WidgetState,\n} from './types'\n\nexport interface UseTransformOptions {\n initialEnabled?: boolean\n}\n\nexport interface TransformControls {\n enabled: boolean\n setEnabled: Dispatch<SetStateAction<boolean>>\n toggle: () => void\n}\n\ntype RegistrationKey = 'dataTransforms' | 'configTransforms'\n\ninterface Registration {\n key: RegistrationKey\n id: string\n}\n\nexport function useTransform(\n id: string,\n pairs: readonly TransformPair[],\n options?: UseTransformOptions,\n): TransformControls {\n if (pairs.length === 0) {\n throw new Error('[widgets-v2] useTransform requires at least one pair.')\n }\n\n const store = getWidgetStore(id)\n const primaryId = pairs[0]!.descriptor.id\n const initialEnabled = options?.initialEnabled ?? true\n\n // Read `enabled` reactively from the store. Multiple mounts of the same\n // descriptor (e.g., Toolbox renders ZoomToggle both in the inline preview\n // and inside its overflow Paper) stay in sync because they share the\n // `transformStates[primaryId].enabled` slot.\n const persisted = useStore(\n store,\n (s) => s.transformStates[primaryId]?.enabled,\n )\n const enabled = typeof persisted === 'boolean' ? persisted : initialEnabled\n\n // Seed the store's `transformStates[primaryId].enabled` on first mount so\n // subsequent reads (and a rehydration after `keepAlive` remounts) have a\n // canonical value to read from. Idempotent: skip when already set.\n useEffect(() => {\n if (typeof persisted === 'boolean') return\n store.setState((s: WidgetState) => ({\n transformStates: {\n ...s.transformStates,\n [primaryId]: {\n ...s.transformStates[primaryId],\n enabled: initialEnabled,\n },\n },\n }))\n }, [store, primaryId, persisted, initialEnabled])\n\n const setEnabled = useCallback<Dispatch<SetStateAction<boolean>>>(\n (next) => {\n store.setState((s: WidgetState) => {\n const current = s.transformStates[primaryId]?.enabled ?? initialEnabled\n const value =\n typeof next === 'function'\n ? (next as (v: boolean) => boolean)(current)\n : next\n if (value === current) return {}\n return {\n transformStates: {\n ...s.transformStates,\n [primaryId]: {\n ...s.transformStates[primaryId],\n enabled: value,\n },\n },\n }\n })\n },\n [store, primaryId, initialEnabled],\n )\n\n // Track the latest registrations so the unmount cleanup knows what to remove.\n // Updated inside the register effect (post-render), never during render.\n const registeredRef = useRef<Registration[]>([])\n\n // Register / re-register when `pairs` reference or `enabled` changes.\n // upsertTransform is identity-stable: re-registering with an unchanged\n // descriptor + fn returns the same array reference, and the middleware\n // bypasses the pipeline for unchanged refs. Consumers should memoize\n // `pairs` (useSingleTransform does this internally; multi-pair consumers\n // should wrap the pairs array in useMemo).\n useEffect(() => {\n const next: Registration[] = []\n for (const { descriptor, fn } of pairs) {\n const key: RegistrationKey =\n descriptor.type === 'data' ? 'dataTransforms' : 'configTransforms'\n const transform: Transform = { ...descriptor, fn, enabled }\n store.setState(\n (s: WidgetState) =>\n ({\n [key]: upsertTransform(s[key], transform),\n }) as Partial<WidgetState>,\n )\n next.push({ key, id: descriptor.id })\n }\n registeredRef.current = next\n }, [store, pairs, enabled])\n\n // Unmount cleanup — remove every currently-registered descriptor. Reads from\n // the ref so we always remove the latest registrations, not a stale snapshot.\n useEffect(() => {\n return () => {\n for (const { key, id: descriptorId } of registeredRef.current) {\n store.setState(\n (s: WidgetState) =>\n ({\n [key]: removeTransform(s[key], descriptorId),\n }) as Partial<WidgetState>,\n )\n }\n registeredRef.current = []\n }\n }, [store])\n\n const toggle = useCallback(() => setEnabled((v) => !v), [setEnabled])\n\n return { enabled, setEnabled, toggle }\n}\n\nexport function useSingleTransform(\n id: string,\n descriptor: TransformDescriptor,\n fn: TransformFn,\n options?: UseTransformOptions,\n): TransformControls {\n const pairs = useMemo<readonly TransformPair[]>(\n () => [{ descriptor, fn }],\n [descriptor, fn],\n )\n return useTransform(id, pairs, options)\n}\n","import { useWidgetShallow } from './widget-store-registry'\nimport type { WidgetState } from './types'\n\n/**\n * Reactive read of a single transform's `enabled` flag from the\n * per-widget store. Returns `false` if the transform hasn't been\n * registered yet (i.e., the action component hasn't mounted) — safe\n * default for \"the feature is off\".\n *\n * Used by widget composers that want to react to an action's on/off\n * cycle without having the widget primitive import the action. For\n * example, the `CategoryWidget` storybook composer wires the\n * SearcherToggle's open state into `<Widget.Category searcherOpen=…>`\n * so the library primitive stays renderer-agnostic.\n *\n * Magic-string `transformId` is intentional — it lives at the composer\n * layer where the action is already imported by JSX, so the string\n * appears alongside the same name in the toolbox.\n */\nexport function useTransformEnabled(id: string, transformId: string): boolean {\n return useWidgetShallow(\n id,\n (s: WidgetState) => s.transformStates?.[transformId]?.enabled === true,\n )\n}\n"],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- //#region src/widgets/utils/skeleton/styles.ts
2
- var e = { graph: { container: {
3
- display: "flex",
4
- alignItems: "center",
5
- justifyContent: "space-between",
6
- flexDirection: "column",
7
- gap: ({ spacing: e }) => e(1),
8
- height: ({ spacing: e }) => e(38)
9
- } } };
10
- //#endregion
11
- export { e as t };
12
-
13
- //# sourceMappingURL=styles-Y-qGBELO.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"styles-Y-qGBELO.js","names":[],"sources":["../src/widgets/utils/skeleton/styles.ts"],"sourcesContent":["import type { Theme } from '@mui/material'\n\n/**\n * Base skeleton styles shared across all chart widgets\n */\nexport const baseSkeletonStyles = {\n graph: {\n /**\n * Common container style for chart widget skeletons\n */\n container: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n flexDirection: 'column',\n gap: ({ spacing }: Theme) => spacing(1),\n height: ({ spacing }: Theme) => spacing(38),\n },\n },\n} as const\n"],"mappings":";AAKA,IAAa,IAAqB,EAChC,OAAO,EAIL,WAAW;CACT,SAAS;CACT,YAAY;CACZ,gBAAgB;CAChB,eAAe;CACf,MAAM,EAAE,iBAAqB,EAAQ,CAAC;CACtC,SAAS,EAAE,iBAAqB,EAAQ,EAAE;AAC5C,EACF,EACF"}