@carto/ps-react-ui 5.1.0 → 6.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1136) hide show
  1. package/dist/{actions-BjPfCLG9.js → actions-KsX1xdDM.js} +28 -28
  2. package/dist/actions-KsX1xdDM.js.map +1 -0
  3. package/dist/category-CsdDqDzo.js +833 -0
  4. package/dist/category-CsdDqDzo.js.map +1 -0
  5. package/dist/chat.js +548 -526
  6. package/dist/chat.js.map +1 -1
  7. package/dist/{components-FED-ArwH.js → components-CTUpdQuj.js} +1526 -1782
  8. package/dist/components-CTUpdQuj.js.map +1 -0
  9. package/dist/components.js +4 -5
  10. package/dist/{download-DdaK3qgC.js → download-Vlzn2jzb.js} +12 -12
  11. package/dist/download-Vlzn2jzb.js.map +1 -0
  12. package/dist/{echart-CRihbmRv.js → echart-DjcbtKgi.js} +7 -7
  13. package/dist/echart-DjcbtKgi.js.map +1 -0
  14. package/dist/formula-CdHWtepq.js +282 -0
  15. package/dist/formula-CdHWtepq.js.map +1 -0
  16. package/dist/legend.js +261 -256
  17. package/dist/legend.js.map +1 -1
  18. package/dist/{markdown-2dfL6Cmb.js → markdown-CY-67NRE.js} +8 -8
  19. package/dist/markdown-CY-67NRE.js.map +1 -0
  20. package/dist/{markdown-content-BWUqwx9F.js → markdown-content-kYNLOX0T.js} +2 -2
  21. package/dist/markdown-content-kYNLOX0T.js.map +1 -0
  22. package/dist/{chart-config-B_fdIcD3.js → option-builders-DQivvvbb.js} +10 -56
  23. package/dist/option-builders-DQivvvbb.js.map +1 -0
  24. package/dist/{range-BCMAl5xf.js → range-DHQSsl2_.js} +8 -8
  25. package/dist/range-DHQSsl2_.js.map +1 -0
  26. package/dist/smart-tooltip-Dc_rHhyI.js +51 -0
  27. package/dist/smart-tooltip-Dc_rHhyI.js.map +1 -0
  28. package/dist/{spread-Ccpg9fi0.js → spread-DuM5oTI1.js} +10 -10
  29. package/dist/spread-DuM5oTI1.js.map +1 -0
  30. package/dist/{stores-tiFePP0A.js → stores-B8CHbgw-.js} +11 -11
  31. package/dist/stores-B8CHbgw-.js.map +1 -0
  32. package/dist/stores-mad-9yFn.js.map +1 -1
  33. package/dist/styles-BCEBm7xh.js +146 -0
  34. package/dist/styles-BCEBm7xh.js.map +1 -0
  35. package/dist/{table-Bx9Uj3U0.js → table-BE4uO9pp.js} +14 -14
  36. package/dist/table-BE4uO9pp.js.map +1 -0
  37. package/dist/types/chat/bubbles/chat-suggestion-button.d.ts +1 -1
  38. package/dist/types/chat/types.d.ts +5 -2
  39. package/dist/types/components/index.d.ts +1 -3
  40. package/dist/types/components/lasso-tool/geometry-toolbar.d.ts +1 -1
  41. package/dist/types/components/lasso-tool/toolbar/context.d.ts +1 -1
  42. package/dist/types/components/types.d.ts +15 -0
  43. package/dist/types/legend/components/legend-actions/legend-actions.d.ts +2 -2
  44. package/dist/types/legend/components/legend-swatch/legend-swatch.d.ts +2 -1
  45. package/dist/types/legend/index.d.ts +1 -1
  46. package/dist/types/legend/provider/legend-provider.d.ts +2 -2
  47. package/dist/types/migration/v4/classes.d.ts +16 -0
  48. package/dist/types/migration/v4/icons.d.ts +31 -0
  49. package/dist/types/migration/v4/index.d.ts +17 -0
  50. package/dist/types/migration/v4/rules.d.ts +42 -0
  51. package/dist/types/migration/v4/transform.d.ts +4 -0
  52. package/dist/types/migration/v4/transforms/helpers.d.ts +97 -0
  53. package/dist/types/migration/v4/transforms/meridian-5.d.ts +22 -0
  54. package/dist/types/migration/v4/transforms/ps-react-ui.d.ts +20 -0
  55. package/dist/types/migration/v4/transforms/v5-v6.d.ts +27 -0
  56. package/dist/types/migration/v4/transforms/v6-v7.d.ts +54 -0
  57. package/dist/types/migration/v4/transforms/v7-v9-dom.d.ts +63 -0
  58. package/dist/types/migration/v4/transforms/v7-v9-props.d.ts +64 -0
  59. package/dist/types/migration/v4/widgets-v1.d.ts +12 -0
  60. package/dist/types/widgets/actions/brush-toggle/brush-toggle.d.ts +51 -24
  61. package/dist/types/widgets/actions/brush-toggle/style.d.ts +7 -16
  62. package/dist/types/widgets/actions/change-column/change-column-icon.d.ts +2 -1
  63. package/dist/types/widgets/actions/change-column/change-column.d.ts +26 -17
  64. package/dist/types/widgets/actions/change-column/sortable-column-item.d.ts +10 -5
  65. package/dist/types/widgets/actions/change-column/types.d.ts +9 -18
  66. package/dist/types/widgets/actions/download/download.d.ts +18 -13
  67. package/dist/types/widgets/actions/download/exports.d.ts +33 -17
  68. package/dist/types/{widgets-v2 → widgets}/actions/download/png-item.d.ts +1 -1
  69. package/dist/types/widgets/actions/download/types.d.ts +30 -16
  70. package/dist/types/widgets/actions/fullscreen/fullscreen.d.ts +73 -10
  71. package/dist/types/widgets/actions/fullscreen/types.d.ts +13 -20
  72. package/dist/types/widgets/actions/index.d.ts +10 -20
  73. package/dist/types/widgets/actions/lock-selection/lock-selection.d.ts +54 -16
  74. package/dist/types/widgets/actions/relative-data/relative-data.d.ts +36 -21
  75. package/dist/types/{widgets-v2 → widgets}/actions/relative-data/transforms.d.ts +2 -2
  76. package/dist/types/widgets/actions/searcher/searcher-toggle.d.ts +21 -16
  77. package/dist/types/widgets/actions/searcher/searcher.d.ts +9 -19
  78. package/dist/types/widgets/actions/stack-toggle/stack-toggle.d.ts +10 -17
  79. package/dist/types/widgets/actions/zoom-toggle/style.d.ts +7 -8
  80. package/dist/types/widgets/actions/zoom-toggle/zoom-toggle.d.ts +31 -22
  81. package/dist/types/widgets/bar/index.d.ts +3 -2
  82. package/dist/types/widgets/bar/skeleton.d.ts +5 -0
  83. package/dist/types/widgets/bar/types.d.ts +46 -9
  84. package/dist/types/widgets/category/category-ui.d.ts +86 -3
  85. package/dist/types/{widgets-v2 → widgets}/category/components/category-bar-stacked.d.ts +2 -1
  86. package/dist/types/widgets/category/components/category-bar.d.ts +18 -4
  87. package/dist/types/widgets/category/components/category-legend.d.ts +30 -4
  88. package/dist/types/widgets/category/components/category-row-multi.d.ts +27 -10
  89. package/dist/types/widgets/category/components/category-row-other.d.ts +19 -2
  90. package/dist/types/widgets/category/components/category-row-single.d.ts +23 -9
  91. package/dist/types/{widgets-v2 → widgets}/category/components/category-row-stacked.d.ts +2 -1
  92. package/dist/types/widgets/category/index.d.ts +10 -14
  93. package/dist/types/widgets/category/skeleton.d.ts +11 -1
  94. package/dist/types/widgets/category/style.d.ts +155 -83
  95. package/dist/types/widgets/category/types.d.ts +49 -29
  96. package/dist/types/widgets/echart/echart-ui.d.ts +44 -9
  97. package/dist/types/widgets/echart/echart.d.ts +80 -5
  98. package/dist/types/widgets/echart/index.d.ts +4 -5
  99. package/dist/types/widgets/echart/shared-resize-observer.d.ts +2 -9
  100. package/dist/types/widgets/formula/formula-ui.d.ts +18 -3
  101. package/dist/types/widgets/formula/index.d.ts +11 -11
  102. package/dist/types/{widgets-v2 → widgets}/formula/series.d.ts +2 -1
  103. package/dist/types/widgets/formula/skeleton.d.ts +4 -1
  104. package/dist/types/widgets/formula/style.d.ts +20 -12
  105. package/dist/types/widgets/formula/types.d.ts +41 -39
  106. package/dist/types/{widgets-v2 → widgets}/formula/value.d.ts +2 -1
  107. package/dist/types/widgets/histogram/index.d.ts +5 -4
  108. package/dist/types/widgets/histogram/skeleton.d.ts +9 -1
  109. package/dist/types/widgets/histogram/types.d.ts +60 -12
  110. package/dist/types/{widgets-v2 → widgets}/index.d.ts +2 -2
  111. package/dist/types/widgets/markdown/index.d.ts +5 -4
  112. package/dist/types/widgets/markdown/markdown-ui.d.ts +10 -7
  113. package/dist/types/widgets/markdown/markdown.d.ts +4 -3
  114. package/dist/types/widgets/markdown/skeleton.d.ts +4 -1
  115. package/dist/types/widgets/markdown/style.d.ts +61 -2
  116. package/dist/types/widgets/markdown/types.d.ts +2 -16
  117. package/dist/types/widgets/note/style.d.ts +14 -16
  118. package/dist/types/widgets/pie/index.d.ts +4 -3
  119. package/dist/types/widgets/pie/skeleton.d.ts +13 -1
  120. package/dist/types/widgets/pie/types.d.ts +57 -9
  121. package/dist/types/widgets/range/index.d.ts +4 -6
  122. package/dist/types/widgets/range/range-ui.d.ts +25 -3
  123. package/dist/types/widgets/range/skeleton.d.ts +9 -1
  124. package/dist/types/widgets/range/style.d.ts +40 -2
  125. package/dist/types/widgets/range/types.d.ts +26 -22
  126. package/dist/types/widgets/scatterplot/index.d.ts +5 -3
  127. package/dist/types/widgets/scatterplot/skeleton.d.ts +12 -1
  128. package/dist/types/widgets/scatterplot/types.d.ts +54 -9
  129. package/dist/types/widgets/selection-summary/selection-summary.d.ts +26 -10
  130. package/dist/types/widgets/selection-summary/style.d.ts +32 -3
  131. package/dist/types/widgets/spread/index.d.ts +7 -9
  132. package/dist/types/widgets/spread/skeleton.d.ts +9 -1
  133. package/dist/types/widgets/spread/spread-ui.d.ts +16 -3
  134. package/dist/types/widgets/spread/types.d.ts +20 -35
  135. package/dist/types/widgets/stores/index.d.ts +8 -3
  136. package/dist/types/widgets/stores/types.d.ts +45 -172
  137. package/dist/types/widgets/subheader/style.d.ts +5 -14
  138. package/dist/types/widgets/subheader/subheader.d.ts +9 -11
  139. package/dist/types/widgets/table/helpers.d.ts +28 -34
  140. package/dist/types/widgets/table/index.d.ts +8 -17
  141. package/dist/types/widgets/table/skeleton.d.ts +17 -5
  142. package/dist/types/widgets/table/style.d.ts +21 -14
  143. package/dist/types/widgets/table/table-ui.d.ts +41 -29
  144. package/dist/types/widgets/table/types.d.ts +34 -182
  145. package/dist/types/widgets/timeseries/index.d.ts +4 -2
  146. package/dist/types/widgets/timeseries/skeleton.d.ts +7 -0
  147. package/dist/types/widgets/timeseries/types.d.ts +60 -9
  148. package/dist/types/{widgets-v2 → widgets}/types.d.ts +7 -6
  149. package/dist/types/widgets/utils/index.d.ts +3 -7
  150. package/dist/types/widgets/wrapper/index.d.ts +4 -6
  151. package/dist/{utils-Dr6gf3vD.js → utils-BStJWhZN.js} +5 -5
  152. package/dist/utils-BStJWhZN.js.map +1 -0
  153. package/dist/widgets/actions.js +4 -2
  154. package/dist/widgets/bar.js +202 -132
  155. package/dist/widgets/bar.js.map +1 -1
  156. package/dist/widgets/category.js +2 -450
  157. package/dist/widgets/echart.js +2 -3
  158. package/dist/widgets/formula.js +2 -3
  159. package/dist/widgets/histogram.js +263 -160
  160. package/dist/widgets/histogram.js.map +1 -1
  161. package/dist/widgets/markdown.js +3 -148
  162. package/dist/widgets/pie.js +317 -197
  163. package/dist/widgets/pie.js.map +1 -1
  164. package/dist/widgets/range.js +2 -233
  165. package/dist/widgets/scatterplot.js +300 -196
  166. package/dist/widgets/scatterplot.js.map +1 -1
  167. package/dist/widgets/spread.js +2 -158
  168. package/dist/widgets/stores.js +2 -3
  169. package/dist/widgets/table.js +2 -599
  170. package/dist/widgets/timeseries.js +250 -136
  171. package/dist/widgets/timeseries.js.map +1 -1
  172. package/dist/widgets/utils.js +2 -18
  173. package/dist/{widgets-v2.js → widgets.js} +63 -57
  174. package/dist/widgets.js.map +1 -0
  175. package/dist/{zoom-toggle-IsF8BnAp.js → zoom-toggle-D_VuA01l.js} +5 -5
  176. package/dist/zoom-toggle-D_VuA01l.js.map +1 -0
  177. package/package.json +45 -131
  178. package/src/chat/bubbles/chat-agent-message-markdown.tsx +1 -1
  179. package/src/chat/bubbles/chat-error-message.tsx +9 -3
  180. package/src/chat/bubbles/chat-suggestion-button.tsx +8 -3
  181. package/src/chat/containers/chat-footer.tsx +6 -2
  182. package/src/chat/containers/chat-starter.tsx +6 -4
  183. package/src/chat/feedback/chat-tool-full-view-dialog.tsx +3 -1
  184. package/src/chat/feedback/chat-tool-group.test.tsx +1 -1
  185. package/src/chat/feedback/chat-tool-group.tsx +40 -9
  186. package/src/chat/feedback/chat-tool-trace.tsx +55 -19
  187. package/src/chat/types.ts +5 -2
  188. package/src/components/basemaps/header.tsx +6 -1
  189. package/src/components/index.ts +2 -3
  190. package/src/components/lasso-tool/geometry-toolbar.tsx +1 -1
  191. package/src/components/lasso-tool/lasso-tool-inline.tsx +12 -4
  192. package/src/components/lasso-tool/lasso-tool.tsx +26 -15
  193. package/src/components/lasso-tool/layer-filters.tsx +36 -11
  194. package/src/components/lasso-tool/options-sections.test.tsx +13 -2
  195. package/src/components/lasso-tool/options-sections.tsx +17 -7
  196. package/src/components/lasso-tool/toolbar/connected.tsx +1 -1
  197. package/src/components/lasso-tool/toolbar/context.tsx +1 -1
  198. package/src/components/measurement-tools/measurement-tools.tsx +28 -13
  199. package/src/components/no-data-alert/no-data-alert.tsx +12 -2
  200. package/src/components/responsive-drawer/responsive-drawer.tsx +0 -1
  201. package/src/components/types.ts +17 -0
  202. package/src/components/zoom-controls/zoom-controls.tsx +3 -1
  203. package/src/legend/components/legend-actions/legend-actions.tsx +2 -2
  204. package/src/legend/components/legend-category/legend-category-ui.tsx +7 -3
  205. package/src/legend/components/legend-config-select/legend-config-select.tsx +6 -2
  206. package/src/legend/components/legend-group/legend-group.tsx +6 -2
  207. package/src/legend/components/legend-group/styles.ts +1 -1
  208. package/src/legend/components/legend-icon/legend-icon-ui.tsx +7 -3
  209. package/src/legend/components/legend-opacity/legend-opacity.tsx +9 -3
  210. package/src/legend/components/legend-proportion/legend-proportion-ui.tsx +19 -3
  211. package/src/legend/components/legend-ramp/legend-ramp-ui.tsx +31 -7
  212. package/src/legend/components/legend-row/legend-row.tsx +2 -2
  213. package/src/legend/components/legend-row/styles.ts +1 -1
  214. package/src/legend/components/legend-sortable/legend-sortable.tsx +7 -3
  215. package/src/legend/components/legend-swatch/legend-swatch.tsx +2 -1
  216. package/src/legend/components/legend-visible-layers/legend-visible-layers.tsx +18 -9
  217. package/src/legend/index.ts +1 -1
  218. package/src/legend/provider/legend-provider.tsx +2 -2
  219. package/src/legend/stores/legend-store-registry.ts +1 -1
  220. package/src/migration/v4/classes.ts +56 -0
  221. package/src/migration/v4/icons.ts +56 -0
  222. package/src/migration/v4/index.ts +17 -0
  223. package/src/migration/v4/migration.test.ts +772 -0
  224. package/src/migration/v4/rules.ts +444 -0
  225. package/src/migration/v4/transform.ts +92 -0
  226. package/src/migration/v4/transforms/helpers.ts +369 -0
  227. package/src/migration/v4/transforms/meridian-5.ts +163 -0
  228. package/src/migration/v4/transforms/ps-react-ui.ts +99 -0
  229. package/src/migration/v4/transforms/v5-v6.ts +161 -0
  230. package/src/migration/v4/transforms/v6-v7.ts +342 -0
  231. package/src/migration/v4/transforms/v7-v9-dom.ts +403 -0
  232. package/src/migration/v4/transforms/v7-v9-props.ts +529 -0
  233. package/src/migration/v4/widgets-v1.ts +199 -0
  234. package/src/{widgets-v2 → widgets}/PERFORMANCE.md +5 -5
  235. package/src/widgets/actions/brush-toggle/brush-toggle.test.tsx +144 -172
  236. package/src/widgets/actions/brush-toggle/brush-toggle.tsx +129 -108
  237. package/src/widgets/actions/brush-toggle/style.ts +5 -40
  238. package/src/widgets/actions/change-column/change-column-icon.tsx +14 -10
  239. package/src/widgets/actions/change-column/change-column.test.tsx +57 -288
  240. package/src/widgets/actions/change-column/change-column.tsx +116 -145
  241. package/src/widgets/actions/change-column/sortable-column-item.tsx +29 -17
  242. package/src/widgets/actions/change-column/types.ts +9 -18
  243. package/src/widgets/actions/download/download.test.tsx +290 -289
  244. package/src/widgets/actions/download/download.tsx +101 -89
  245. package/src/widgets/actions/download/exports.test.tsx +157 -247
  246. package/src/{widgets-v2 → widgets}/actions/download/exports.ts +1 -1
  247. package/src/{widgets-v2 → widgets}/actions/download/png-item.tsx +2 -2
  248. package/src/widgets/actions/download/types.ts +26 -15
  249. package/src/widgets/actions/fullscreen/fullscreen.test.tsx +164 -221
  250. package/src/widgets/actions/fullscreen/fullscreen.tsx +277 -72
  251. package/src/widgets/actions/fullscreen/types.ts +14 -31
  252. package/src/widgets/actions/index.ts +90 -68
  253. package/src/widgets/actions/lock-selection/lock-selection.test.tsx +259 -156
  254. package/src/widgets/actions/lock-selection/lock-selection.tsx +162 -102
  255. package/src/widgets/actions/relative-data/relative-data.test.tsx +65 -536
  256. package/src/widgets/actions/relative-data/relative-data.tsx +82 -163
  257. package/src/{widgets-v2 → widgets}/actions/relative-data/transforms.ts +2 -2
  258. package/src/widgets/actions/searcher/searcher-toggle.tsx +75 -56
  259. package/src/widgets/actions/searcher/searcher.tsx +85 -168
  260. package/src/widgets/actions/stack-toggle/stack-toggle.test.tsx +49 -402
  261. package/src/widgets/actions/stack-toggle/stack-toggle.tsx +39 -114
  262. package/src/widgets/actions/zoom-toggle/style.ts +5 -8
  263. package/src/widgets/actions/zoom-toggle/zoom-toggle.test.tsx +88 -303
  264. package/src/widgets/actions/zoom-toggle/zoom-toggle.tsx +87 -199
  265. package/src/widgets/bar/index.ts +6 -5
  266. package/src/{widgets-v2 → widgets}/bar/options.ts +1 -1
  267. package/src/widgets/bar/skeleton.tsx +61 -52
  268. package/src/widgets/bar/types.ts +46 -11
  269. package/src/widgets/category/category-ui.test.tsx +846 -317
  270. package/src/widgets/category/category-ui.tsx +444 -127
  271. package/src/{widgets-v2 → widgets}/category/components/category-bar-stacked.tsx +2 -1
  272. package/src/widgets/category/components/category-bar.tsx +31 -12
  273. package/src/{widgets-v2 → widgets}/category/components/category-legend.test.tsx +7 -3
  274. package/src/widgets/category/components/category-legend.tsx +68 -18
  275. package/src/widgets/category/components/category-row-multi.tsx +66 -36
  276. package/src/widgets/category/components/category-row-other.tsx +63 -5
  277. package/src/widgets/category/components/category-row-single.tsx +48 -25
  278. package/src/{widgets-v2 → widgets}/category/components/category-row-stacked.tsx +2 -1
  279. package/src/widgets/category/index.ts +25 -22
  280. package/src/widgets/category/skeleton.tsx +60 -10
  281. package/src/widgets/category/style.ts +267 -72
  282. package/src/widgets/category/types.ts +52 -32
  283. package/src/widgets/echart/echart-ui.test.tsx +250 -446
  284. package/src/widgets/echart/echart-ui.tsx +210 -52
  285. package/src/widgets/echart/echart.test.tsx +203 -518
  286. package/src/widgets/echart/echart.tsx +195 -52
  287. package/src/widgets/echart/index.ts +21 -15
  288. package/src/widgets/echart/shared-resize-observer.ts +30 -19
  289. package/src/widgets/formula/formula-ui.test.tsx +68 -376
  290. package/src/widgets/formula/formula-ui.tsx +58 -22
  291. package/src/widgets/formula/index.ts +14 -21
  292. package/src/{widgets-v2 → widgets}/formula/note.tsx +8 -2
  293. package/src/{widgets-v2 → widgets}/formula/series.tsx +8 -25
  294. package/src/widgets/formula/skeleton.tsx +21 -4
  295. package/src/widgets/formula/style.ts +20 -12
  296. package/src/widgets/formula/types.ts +44 -45
  297. package/src/{widgets-v2 → widgets}/formula/value.tsx +2 -1
  298. package/src/widgets/histogram/index.ts +10 -10
  299. package/src/{widgets-v2 → widgets}/histogram/options.ts +1 -1
  300. package/src/widgets/histogram/skeleton.tsx +63 -45
  301. package/src/widgets/histogram/types.ts +59 -18
  302. package/src/{widgets-v2 → widgets}/index.ts +3 -3
  303. package/src/widgets/markdown/index.ts +5 -13
  304. package/src/widgets/markdown/markdown-ui.test.tsx +53 -319
  305. package/src/widgets/markdown/markdown-ui.tsx +43 -47
  306. package/src/widgets/markdown/markdown.tsx +12 -15
  307. package/src/widgets/markdown/skeleton.tsx +26 -6
  308. package/src/widgets/markdown/style.ts +48 -23
  309. package/src/widgets/markdown/types.ts +2 -26
  310. package/src/widgets/note/style.ts +14 -17
  311. package/src/{widgets-v2 → widgets}/note/widget-note.tsx +15 -2
  312. package/src/widgets/pie/index.ts +7 -5
  313. package/src/{widgets-v2 → widgets}/pie/options.ts +1 -1
  314. package/src/widgets/pie/skeleton.tsx +84 -60
  315. package/src/widgets/pie/types.ts +57 -11
  316. package/src/widgets/range/index.ts +4 -16
  317. package/src/widgets/range/range-ui.test.tsx +115 -182
  318. package/src/widgets/range/range-ui.tsx +274 -8
  319. package/src/widgets/range/skeleton.tsx +41 -8
  320. package/src/widgets/range/style.ts +16 -12
  321. package/src/widgets/range/types.ts +26 -28
  322. package/src/widgets/scatterplot/index.ts +11 -5
  323. package/src/{widgets-v2 → widgets}/scatterplot/options.ts +1 -1
  324. package/src/widgets/scatterplot/skeleton.tsx +76 -51
  325. package/src/widgets/scatterplot/types.ts +54 -12
  326. package/src/widgets/selection-summary/selection-summary.tsx +64 -39
  327. package/src/widgets/selection-summary/style.ts +30 -2
  328. package/src/widgets/spread/index.ts +11 -23
  329. package/src/widgets/spread/skeleton.tsx +32 -4
  330. package/src/widgets/spread/spread-ui.test.tsx +98 -358
  331. package/src/widgets/spread/spread-ui.tsx +44 -24
  332. package/src/widgets/spread/types.ts +21 -41
  333. package/src/{widgets-v2 → widgets}/state/widget-state.tsx +13 -3
  334. package/src/widgets/stores/index.ts +46 -10
  335. package/src/{widgets-v2 → widgets}/stores/transforms.ts +1 -1
  336. package/src/widgets/stores/types.ts +42 -181
  337. package/src/{widgets-v2 → widgets}/stores/use-transform.ts +1 -1
  338. package/src/{widgets-v2 → widgets}/stores/widget-store-registry.ts +2 -2
  339. package/src/widgets/subheader/style.ts +5 -13
  340. package/src/widgets/subheader/subheader.test.tsx +22 -37
  341. package/src/widgets/subheader/subheader.tsx +11 -30
  342. package/src/widgets/table/helpers.test.ts +197 -208
  343. package/src/widgets/table/helpers.ts +108 -84
  344. package/src/widgets/table/index.ts +23 -54
  345. package/src/widgets/table/skeleton.tsx +38 -21
  346. package/src/widgets/table/style.ts +23 -14
  347. package/src/widgets/table/table-ui.tsx +348 -44
  348. package/src/widgets/table/types.ts +37 -205
  349. package/src/{widgets-v2 → widgets}/test-utils.ts +1 -1
  350. package/src/widgets/timeseries/index.ts +8 -5
  351. package/src/{widgets-v2 → widgets}/timeseries/options.ts +1 -1
  352. package/src/widgets/timeseries/skeleton.tsx +67 -46
  353. package/src/widgets/timeseries/types.ts +60 -12
  354. package/src/{widgets-v2 → widgets}/types.ts +8 -6
  355. package/src/widgets/utils/index.ts +3 -26
  356. package/src/widgets/wrapper/index.ts +14 -16
  357. package/src/{widgets-v2 → widgets}/wrapper/widget-wrapper.tsx +6 -2
  358. package/dist/actions-BjPfCLG9.js.map +0 -1
  359. package/dist/actions-CGJD6q0t.js +0 -1318
  360. package/dist/actions-CGJD6q0t.js.map +0 -1
  361. package/dist/category-DGUDabsi.js +0 -829
  362. package/dist/category-DGUDabsi.js.map +0 -1
  363. package/dist/chart-config-B_fdIcD3.js.map +0 -1
  364. package/dist/cjs-CBrZjPCj.js +0 -75
  365. package/dist/cjs-CBrZjPCj.js.map +0 -1
  366. package/dist/components-FED-ArwH.js.map +0 -1
  367. package/dist/copy-button-TTlZONkX.js +0 -34
  368. package/dist/copy-button-TTlZONkX.js.map +0 -1
  369. package/dist/csv-modifiers-D6HGC24b.js +0 -26
  370. package/dist/csv-modifiers-D6HGC24b.js.map +0 -1
  371. package/dist/download-DdaK3qgC.js.map +0 -1
  372. package/dist/echart-BkaV3V5G.js +0 -133
  373. package/dist/echart-BkaV3V5G.js.map +0 -1
  374. package/dist/echart-CRihbmRv.js.map +0 -1
  375. package/dist/formatter-wVO81tYk.js +0 -6
  376. package/dist/formatter-wVO81tYk.js.map +0 -1
  377. package/dist/formula-YfZmmuYX.js +0 -190
  378. package/dist/formula-YfZmmuYX.js.map +0 -1
  379. package/dist/formula-noJzQwKo.js +0 -285
  380. package/dist/formula-noJzQwKo.js.map +0 -1
  381. package/dist/hooks-zf5gKZYq.js +0 -22
  382. package/dist/hooks-zf5gKZYq.js.map +0 -1
  383. package/dist/markdown-2dfL6Cmb.js.map +0 -1
  384. package/dist/markdown-content-BWUqwx9F.js.map +0 -1
  385. package/dist/range-BCMAl5xf.js.map +0 -1
  386. package/dist/row-CvVGBuy_.js +0 -35
  387. package/dist/row-CvVGBuy_.js.map +0 -1
  388. package/dist/shared-resize-observer-BEiP2rQt.js +0 -157
  389. package/dist/shared-resize-observer-BEiP2rQt.js.map +0 -1
  390. package/dist/smart-tooltip-CwGHCqab.js +0 -34
  391. package/dist/smart-tooltip-CwGHCqab.js.map +0 -1
  392. package/dist/spread-Ccpg9fi0.js.map +0 -1
  393. package/dist/stores-tiFePP0A.js.map +0 -1
  394. package/dist/styles-Y-qGBELO.js +0 -13
  395. package/dist/styles-Y-qGBELO.js.map +0 -1
  396. package/dist/table-Bx9Uj3U0.js.map +0 -1
  397. package/dist/tooltip-DJUGNZxY.js +0 -23
  398. package/dist/tooltip-DJUGNZxY.js.map +0 -1
  399. package/dist/types/components/list-data/list-data-skeleton.d.ts +0 -5
  400. package/dist/types/components/list-data/list-data.d.ts +0 -19
  401. package/dist/types/components/list-data/styles.d.ts +0 -34
  402. package/dist/types/components/list-data/types.d.ts +0 -23
  403. package/dist/types/hooks/index.d.ts +0 -1
  404. package/dist/types/hooks/use-skeleton.d.ts +0 -1
  405. package/dist/types/hooks/use-widget-ref.d.ts +0 -21
  406. package/dist/types/widgets/actions/brush-toggle/brush-overlay.d.ts +0 -24
  407. package/dist/types/widgets/actions/brush-toggle/hit-test.d.ts +0 -19
  408. package/dist/types/widgets/actions/brush-toggle/types.d.ts +0 -73
  409. package/dist/types/widgets/actions/fullscreen/styles.d.ts +0 -16
  410. package/dist/types/widgets/actions/lock-selection/types.d.ts +0 -38
  411. package/dist/types/widgets/actions/relative-data/types.d.ts +0 -29
  412. package/dist/types/widgets/actions/relative-data/utils.d.ts +0 -9
  413. package/dist/types/widgets/actions/searcher/types.d.ts +0 -64
  414. package/dist/types/widgets/actions/shared/styles.d.ts +0 -11
  415. package/dist/types/widgets/actions/stack-toggle/grouped-bar-chart-icon.d.ts +0 -1
  416. package/dist/types/widgets/actions/stack-toggle/types.d.ts +0 -25
  417. package/dist/types/widgets/actions/zoom-toggle/types.d.ts +0 -41
  418. package/dist/types/widgets/bar/config.d.ts +0 -9
  419. package/dist/types/widgets/bar/style.d.ts +0 -37
  420. package/dist/types/widgets/category/config.d.ts +0 -20
  421. package/dist/types/widgets/echart/const.d.ts +0 -1
  422. package/dist/types/widgets/echart/options.d.ts +0 -9
  423. package/dist/types/widgets/echart/types.d.ts +0 -38
  424. package/dist/types/widgets/echart/utils.d.ts +0 -128
  425. package/dist/types/widgets/error/error.d.ts +0 -12
  426. package/dist/types/widgets/error/index.d.ts +0 -2
  427. package/dist/types/widgets/error/types.d.ts +0 -20
  428. package/dist/types/widgets/formula/components/item.d.ts +0 -5
  429. package/dist/types/widgets/formula/components/prefix.d.ts +0 -5
  430. package/dist/types/widgets/formula/components/row.d.ts +0 -5
  431. package/dist/types/widgets/formula/components/series.d.ts +0 -5
  432. package/dist/types/widgets/formula/components/suffix.d.ts +0 -5
  433. package/dist/types/widgets/formula/components/value.d.ts +0 -5
  434. package/dist/types/widgets/formula/config.d.ts +0 -15
  435. package/dist/types/widgets/formula/serializer.d.ts +0 -16
  436. package/dist/types/widgets/histogram/config.d.ts +0 -21
  437. package/dist/types/widgets/histogram/style.d.ts +0 -15
  438. package/dist/types/widgets/loader/index.d.ts +0 -3
  439. package/dist/types/widgets/loader/loader.d.ts +0 -24
  440. package/dist/types/widgets/loader/types.d.ts +0 -9
  441. package/dist/types/widgets/loader/utils.d.ts +0 -35
  442. package/dist/types/widgets/markdown/config.d.ts +0 -14
  443. package/dist/types/widgets/no-data/index.d.ts +0 -2
  444. package/dist/types/widgets/no-data/no-data.d.ts +0 -36
  445. package/dist/types/widgets/no-data/style.d.ts +0 -6
  446. package/dist/types/widgets/no-data/types.d.ts +0 -71
  447. package/dist/types/widgets/note/index.d.ts +0 -2
  448. package/dist/types/widgets/note/note.d.ts +0 -12
  449. package/dist/types/widgets/note/types.d.ts +0 -8
  450. package/dist/types/widgets/pie/config.d.ts +0 -9
  451. package/dist/types/widgets/pie/style.d.ts +0 -15
  452. package/dist/types/widgets/range/components/range-item.d.ts +0 -5
  453. package/dist/types/widgets/range/config.d.ts +0 -7
  454. package/dist/types/widgets/range/serializer.d.ts +0 -16
  455. package/dist/types/widgets/scatterplot/config.d.ts +0 -9
  456. package/dist/types/widgets/scatterplot/style.d.ts +0 -24
  457. package/dist/types/widgets/selection-summary/index.d.ts +0 -2
  458. package/dist/types/widgets/selection-summary/types.d.ts +0 -13
  459. package/dist/types/widgets/skeleton-loader/index.d.ts +0 -2
  460. package/dist/types/widgets/skeleton-loader/skeleton-loader.d.ts +0 -12
  461. package/dist/types/widgets/skeleton-loader/types.d.ts +0 -7
  462. package/dist/types/widgets/spread/components/max-value.d.ts +0 -5
  463. package/dist/types/widgets/spread/components/min-value.d.ts +0 -5
  464. package/dist/types/widgets/spread/components/separator.d.ts +0 -5
  465. package/dist/types/widgets/spread/config.d.ts +0 -16
  466. package/dist/types/widgets/spread/style.d.ts +0 -21
  467. package/dist/types/widgets/stores/use-widget-selector.d.ts +0 -35
  468. package/dist/types/widgets/stores/widget-store.d.ts +0 -60
  469. package/dist/types/widgets/subheader/index.d.ts +0 -2
  470. package/dist/types/widgets/subheader/types.d.ts +0 -10
  471. package/dist/types/widgets/table/components/cell-header.d.ts +0 -5
  472. package/dist/types/widgets/table/components/cell.d.ts +0 -18
  473. package/dist/types/widgets/table/components/pagination-actions.d.ts +0 -5
  474. package/dist/types/widgets/table/components/pagination.d.ts +0 -5
  475. package/dist/types/widgets/table/components/row.d.ts +0 -5
  476. package/dist/types/widgets/table/config.d.ts +0 -21
  477. package/dist/types/widgets/table/hooks/use-pagination.d.ts +0 -41
  478. package/dist/types/widgets/table/hooks/use-selection.d.ts +0 -39
  479. package/dist/types/widgets/table/hooks/use-sort.d.ts +0 -30
  480. package/dist/types/widgets/table/serializer.d.ts +0 -16
  481. package/dist/types/widgets/timeseries/config.d.ts +0 -9
  482. package/dist/types/widgets/timeseries/style.d.ts +0 -38
  483. package/dist/types/widgets/toolbar-actions/index.d.ts +0 -2
  484. package/dist/types/widgets/toolbar-actions/styles.d.ts +0 -37
  485. package/dist/types/widgets/toolbar-actions/toolbar-actions.d.ts +0 -17
  486. package/dist/types/widgets/toolbar-actions/types.d.ts +0 -52
  487. package/dist/types/widgets/utils/chart-config/config-factory.d.ts +0 -38
  488. package/dist/types/widgets/utils/chart-config/csv-modifiers.d.ts +0 -19
  489. package/dist/types/widgets/utils/chart-config/download-config.d.ts +0 -3
  490. package/dist/types/widgets/utils/chart-config/index.d.ts +0 -9
  491. package/dist/types/widgets/utils/formatter.d.ts +0 -2
  492. package/dist/types/widgets/utils/skeleton/index.d.ts +0 -4
  493. package/dist/types/widgets/utils/skeleton/styles.d.ts +0 -19
  494. package/dist/types/widgets/wrapper/components/actions.d.ts +0 -5
  495. package/dist/types/widgets/wrapper/components/options.d.ts +0 -5
  496. package/dist/types/widgets/wrapper/components/title.d.ts +0 -9
  497. package/dist/types/widgets/wrapper/styles.d.ts +0 -89
  498. package/dist/types/widgets/wrapper/types.d.ts +0 -37
  499. package/dist/types/widgets/wrapper/wrapper-ui.d.ts +0 -16
  500. package/dist/types/widgets/wrapper/wrapper.d.ts +0 -16
  501. package/dist/types/widgets-v2/actions/brush-toggle/brush-toggle.d.ts +0 -56
  502. package/dist/types/widgets-v2/actions/change-column/change-column-icon.d.ts +0 -2
  503. package/dist/types/widgets-v2/actions/change-column/change-column.d.ts +0 -29
  504. package/dist/types/widgets-v2/actions/change-column/sortable-column-item.d.ts +0 -14
  505. package/dist/types/widgets-v2/actions/change-column/types.d.ts +0 -10
  506. package/dist/types/widgets-v2/actions/download/download.d.ts +0 -18
  507. package/dist/types/widgets-v2/actions/download/exports.d.ts +0 -37
  508. package/dist/types/widgets-v2/actions/download/types.d.ts +0 -35
  509. package/dist/types/widgets-v2/actions/fullscreen/fullscreen.d.ts +0 -78
  510. package/dist/types/widgets-v2/actions/fullscreen/types.d.ts +0 -14
  511. package/dist/types/widgets-v2/actions/index.d.ts +0 -10
  512. package/dist/types/widgets-v2/actions/lock-selection/lock-selection.d.ts +0 -57
  513. package/dist/types/widgets-v2/actions/relative-data/relative-data.d.ts +0 -39
  514. package/dist/types/widgets-v2/actions/searcher/searcher-toggle.d.ts +0 -23
  515. package/dist/types/widgets-v2/actions/searcher/searcher.d.ts +0 -11
  516. package/dist/types/widgets-v2/actions/stack-toggle/stack-toggle.d.ts +0 -10
  517. package/dist/types/widgets-v2/actions/stack-toggle/style.d.ts +0 -12
  518. package/dist/types/widgets-v2/actions/zoom-toggle/style.d.ts +0 -12
  519. package/dist/types/widgets-v2/actions/zoom-toggle/zoom-toggle.d.ts +0 -35
  520. package/dist/types/widgets-v2/bar/index.d.ts +0 -4
  521. package/dist/types/widgets-v2/bar/skeleton.d.ts +0 -6
  522. package/dist/types/widgets-v2/bar/types.d.ts +0 -46
  523. package/dist/types/widgets-v2/category/category-ui.d.ts +0 -88
  524. package/dist/types/widgets-v2/category/components/category-bar.d.ts +0 -23
  525. package/dist/types/widgets-v2/category/components/category-legend.d.ts +0 -34
  526. package/dist/types/widgets-v2/category/components/category-row-multi.d.ts +0 -31
  527. package/dist/types/widgets-v2/category/components/category-row-other.d.ts +0 -26
  528. package/dist/types/widgets-v2/category/components/category-row-single.d.ts +0 -28
  529. package/dist/types/widgets-v2/category/index.d.ts +0 -10
  530. package/dist/types/widgets-v2/category/skeleton.d.ts +0 -11
  531. package/dist/types/widgets-v2/category/style.d.ts +0 -193
  532. package/dist/types/widgets-v2/category/types.d.ts +0 -55
  533. package/dist/types/widgets-v2/echart/echart-ui.d.ts +0 -44
  534. package/dist/types/widgets-v2/echart/echart.d.ts +0 -83
  535. package/dist/types/widgets-v2/echart/index.d.ts +0 -4
  536. package/dist/types/widgets-v2/echart/shared-resize-observer.d.ts +0 -5
  537. package/dist/types/widgets-v2/formula/formula-ui.d.ts +0 -20
  538. package/dist/types/widgets-v2/formula/index.d.ts +0 -11
  539. package/dist/types/widgets-v2/formula/skeleton.d.ts +0 -4
  540. package/dist/types/widgets-v2/formula/style.d.ts +0 -29
  541. package/dist/types/widgets-v2/formula/types.d.ts +0 -43
  542. package/dist/types/widgets-v2/histogram/index.d.ts +0 -5
  543. package/dist/types/widgets-v2/histogram/skeleton.d.ts +0 -9
  544. package/dist/types/widgets-v2/histogram/types.d.ts +0 -60
  545. package/dist/types/widgets-v2/markdown/index.d.ts +0 -6
  546. package/dist/types/widgets-v2/markdown/markdown-ui.d.ts +0 -12
  547. package/dist/types/widgets-v2/markdown/markdown.d.ts +0 -6
  548. package/dist/types/widgets-v2/markdown/skeleton.d.ts +0 -4
  549. package/dist/types/widgets-v2/markdown/style.d.ts +0 -61
  550. package/dist/types/widgets-v2/markdown/types.d.ts +0 -4
  551. package/dist/types/widgets-v2/note/style.d.ts +0 -26
  552. package/dist/types/widgets-v2/pie/index.d.ts +0 -4
  553. package/dist/types/widgets-v2/pie/skeleton.d.ts +0 -13
  554. package/dist/types/widgets-v2/pie/types.d.ts +0 -57
  555. package/dist/types/widgets-v2/range/index.d.ts +0 -4
  556. package/dist/types/widgets-v2/range/range-ui.d.ts +0 -27
  557. package/dist/types/widgets-v2/range/skeleton.d.ts +0 -9
  558. package/dist/types/widgets-v2/range/style.d.ts +0 -40
  559. package/dist/types/widgets-v2/range/types.d.ts +0 -37
  560. package/dist/types/widgets-v2/scatterplot/index.d.ts +0 -5
  561. package/dist/types/widgets-v2/scatterplot/skeleton.d.ts +0 -12
  562. package/dist/types/widgets-v2/scatterplot/types.d.ts +0 -54
  563. package/dist/types/widgets-v2/selection-summary/selection-summary.d.ts +0 -29
  564. package/dist/types/widgets-v2/selection-summary/style.d.ts +0 -38
  565. package/dist/types/widgets-v2/spread/index.d.ts +0 -7
  566. package/dist/types/widgets-v2/spread/skeleton.d.ts +0 -9
  567. package/dist/types/widgets-v2/spread/spread-ui.d.ts +0 -18
  568. package/dist/types/widgets-v2/spread/types.d.ts +0 -25
  569. package/dist/types/widgets-v2/stores/index.d.ts +0 -8
  570. package/dist/types/widgets-v2/stores/types.d.ts +0 -55
  571. package/dist/types/widgets-v2/subheader/style.d.ts +0 -10
  572. package/dist/types/widgets-v2/subheader/subheader.d.ts +0 -11
  573. package/dist/types/widgets-v2/table/helpers.d.ts +0 -32
  574. package/dist/types/widgets-v2/table/index.d.ts +0 -8
  575. package/dist/types/widgets-v2/table/skeleton.d.ts +0 -22
  576. package/dist/types/widgets-v2/table/style.d.ts +0 -40
  577. package/dist/types/widgets-v2/table/table-ui.d.ts +0 -44
  578. package/dist/types/widgets-v2/table/types.d.ts +0 -48
  579. package/dist/types/widgets-v2/timeseries/index.d.ts +0 -5
  580. package/dist/types/widgets-v2/timeseries/skeleton.d.ts +0 -8
  581. package/dist/types/widgets-v2/timeseries/types.d.ts +0 -60
  582. package/dist/types/widgets-v2/utils/index.d.ts +0 -3
  583. package/dist/types/widgets-v2/wrapper/index.d.ts +0 -4
  584. package/dist/use-widget-selector-VSPhfhNm.js +0 -12
  585. package/dist/use-widget-selector-VSPhfhNm.js.map +0 -1
  586. package/dist/utils-Dr6gf3vD.js.map +0 -1
  587. package/dist/widget-store-BFPKYm4R.js +0 -187
  588. package/dist/widget-store-BFPKYm4R.js.map +0 -1
  589. package/dist/widgets/category.js.map +0 -1
  590. package/dist/widgets/error.js +0 -30
  591. package/dist/widgets/error.js.map +0 -1
  592. package/dist/widgets/loader.js +0 -66
  593. package/dist/widgets/loader.js.map +0 -1
  594. package/dist/widgets/markdown.js.map +0 -1
  595. package/dist/widgets/no-data.js +0 -55
  596. package/dist/widgets/no-data.js.map +0 -1
  597. package/dist/widgets/note.js +0 -127
  598. package/dist/widgets/note.js.map +0 -1
  599. package/dist/widgets/range.js.map +0 -1
  600. package/dist/widgets/selection-summary.js +0 -41
  601. package/dist/widgets/selection-summary.js.map +0 -1
  602. package/dist/widgets/skeleton-loader.js +0 -24
  603. package/dist/widgets/skeleton-loader.js.map +0 -1
  604. package/dist/widgets/spread.js.map +0 -1
  605. package/dist/widgets/subheader.js +0 -51
  606. package/dist/widgets/subheader.js.map +0 -1
  607. package/dist/widgets/table.js.map +0 -1
  608. package/dist/widgets/toolbar-actions.js +0 -145
  609. package/dist/widgets/toolbar-actions.js.map +0 -1
  610. package/dist/widgets/utils.js.map +0 -1
  611. package/dist/widgets/wrapper.js +0 -273
  612. package/dist/widgets/wrapper.js.map +0 -1
  613. package/dist/widgets-v2/actions.js +0 -4
  614. package/dist/widgets-v2/bar.js +0 -260
  615. package/dist/widgets-v2/bar.js.map +0 -1
  616. package/dist/widgets-v2/category.js +0 -2
  617. package/dist/widgets-v2/echart.js +0 -2
  618. package/dist/widgets-v2/formula.js +0 -2
  619. package/dist/widgets-v2/histogram.js +0 -297
  620. package/dist/widgets-v2/histogram.js.map +0 -1
  621. package/dist/widgets-v2/markdown.js +0 -3
  622. package/dist/widgets-v2/pie.js +0 -373
  623. package/dist/widgets-v2/pie.js.map +0 -1
  624. package/dist/widgets-v2/range.js +0 -2
  625. package/dist/widgets-v2/scatterplot.js +0 -330
  626. package/dist/widgets-v2/scatterplot.js.map +0 -1
  627. package/dist/widgets-v2/spread.js +0 -2
  628. package/dist/widgets-v2/stores.js +0 -2
  629. package/dist/widgets-v2/table.js +0 -2
  630. package/dist/widgets-v2/timeseries.js +0 -294
  631. package/dist/widgets-v2/timeseries.js.map +0 -1
  632. package/dist/widgets-v2/utils.js +0 -2
  633. package/dist/widgets-v2.js.map +0 -1
  634. package/dist/zoom-toggle-IsF8BnAp.js.map +0 -1
  635. package/src/components/list-data/list-data-skeleton.test.tsx +0 -10
  636. package/src/components/list-data/list-data-skeleton.tsx +0 -40
  637. package/src/components/list-data/list-data.test.tsx +0 -167
  638. package/src/components/list-data/list-data.tsx +0 -124
  639. package/src/components/list-data/styles.ts +0 -37
  640. package/src/components/list-data/types.ts +0 -25
  641. package/src/hooks/index.ts +0 -1
  642. package/src/hooks/use-skeleton.test.tsx +0 -32
  643. package/src/hooks/use-skeleton.ts +0 -19
  644. package/src/hooks/use-widget-ref.ts +0 -34
  645. package/src/widgets/README.md +0 -277
  646. package/src/widgets/actions/brush-toggle/brush-overlay.test.tsx +0 -465
  647. package/src/widgets/actions/brush-toggle/brush-overlay.tsx +0 -408
  648. package/src/widgets/actions/brush-toggle/hit-test.test.ts +0 -65
  649. package/src/widgets/actions/brush-toggle/hit-test.ts +0 -45
  650. package/src/widgets/actions/brush-toggle/types.ts +0 -78
  651. package/src/widgets/actions/change-column/change-column-dnd.test.tsx +0 -193
  652. package/src/widgets/actions/change-column/sortable-column-item.test.tsx +0 -124
  653. package/src/widgets/actions/download/exports.tsx +0 -118
  654. package/src/widgets/actions/fullscreen/styles.ts +0 -17
  655. package/src/widgets/actions/lock-selection/types.ts +0 -43
  656. package/src/widgets/actions/relative-data/types.ts +0 -33
  657. package/src/widgets/actions/relative-data/utils.test.ts +0 -223
  658. package/src/widgets/actions/relative-data/utils.ts +0 -58
  659. package/src/widgets/actions/searcher/searcher-toggle.test.tsx +0 -354
  660. package/src/widgets/actions/searcher/types.ts +0 -72
  661. package/src/widgets/actions/shared/styles.ts +0 -12
  662. package/src/widgets/actions/stack-toggle/grouped-bar-chart-icon.tsx +0 -14
  663. package/src/widgets/actions/stack-toggle/types.ts +0 -29
  664. package/src/widgets/actions/zoom-toggle/types.ts +0 -44
  665. package/src/widgets/bar/config.ts +0 -140
  666. package/src/widgets/bar/style.ts +0 -33
  667. package/src/widgets/category/components/category-rows.test.tsx +0 -213
  668. package/src/widgets/category/config.ts +0 -86
  669. package/src/widgets/echart/const.ts +0 -1
  670. package/src/widgets/echart/options.ts +0 -57
  671. package/src/widgets/echart/types.ts +0 -45
  672. package/src/widgets/echart/utils.test.ts +0 -277
  673. package/src/widgets/echart/utils.ts +0 -244
  674. package/src/widgets/error/error.test.tsx +0 -331
  675. package/src/widgets/error/error.tsx +0 -51
  676. package/src/widgets/error/index.ts +0 -2
  677. package/src/widgets/error/types.ts +0 -24
  678. package/src/widgets/formula/components/item.test.tsx +0 -249
  679. package/src/widgets/formula/components/item.tsx +0 -21
  680. package/src/widgets/formula/components/prefix.test.tsx +0 -341
  681. package/src/widgets/formula/components/prefix.tsx +0 -19
  682. package/src/widgets/formula/components/row.test.tsx +0 -364
  683. package/src/widgets/formula/components/row.tsx +0 -24
  684. package/src/widgets/formula/components/series.tsx +0 -35
  685. package/src/widgets/formula/components/suffix.test.tsx +0 -383
  686. package/src/widgets/formula/components/suffix.tsx +0 -29
  687. package/src/widgets/formula/components/value.test.tsx +0 -329
  688. package/src/widgets/formula/components/value.tsx +0 -24
  689. package/src/widgets/formula/config.test.ts +0 -37
  690. package/src/widgets/formula/config.ts +0 -38
  691. package/src/widgets/formula/serializer.test.tsx +0 -144
  692. package/src/widgets/formula/serializer.ts +0 -28
  693. package/src/widgets/histogram/config.ts +0 -230
  694. package/src/widgets/histogram/style.ts +0 -8
  695. package/src/widgets/loader/index.ts +0 -4
  696. package/src/widgets/loader/loader.tsx +0 -92
  697. package/src/widgets/loader/types.ts +0 -13
  698. package/src/widgets/loader/utils.test.ts +0 -112
  699. package/src/widgets/loader/utils.ts +0 -57
  700. package/src/widgets/markdown/config.ts +0 -28
  701. package/src/widgets/no-data/index.ts +0 -2
  702. package/src/widgets/no-data/no-data.test.tsx +0 -497
  703. package/src/widgets/no-data/no-data.tsx +0 -112
  704. package/src/widgets/no-data/style.ts +0 -18
  705. package/src/widgets/no-data/types.ts +0 -76
  706. package/src/widgets/note/index.ts +0 -2
  707. package/src/widgets/note/note.test.tsx +0 -391
  708. package/src/widgets/note/note.tsx +0 -124
  709. package/src/widgets/note/types.ts +0 -9
  710. package/src/widgets/pie/config.ts +0 -245
  711. package/src/widgets/pie/style.ts +0 -8
  712. package/src/widgets/range/components/range-item.test.tsx +0 -243
  713. package/src/widgets/range/components/range-item.tsx +0 -214
  714. package/src/widgets/range/config.ts +0 -10
  715. package/src/widgets/range/serializer.test.ts +0 -70
  716. package/src/widgets/range/serializer.ts +0 -27
  717. package/src/widgets/scatterplot/config.ts +0 -136
  718. package/src/widgets/scatterplot/style.ts +0 -21
  719. package/src/widgets/selection-summary/index.ts +0 -6
  720. package/src/widgets/selection-summary/types.ts +0 -14
  721. package/src/widgets/skeleton-loader/index.ts +0 -2
  722. package/src/widgets/skeleton-loader/skeleton-loader.test.tsx +0 -139
  723. package/src/widgets/skeleton-loader/skeleton-loader.tsx +0 -35
  724. package/src/widgets/skeleton-loader/types.ts +0 -8
  725. package/src/widgets/spread/components/max-value.tsx +0 -29
  726. package/src/widgets/spread/components/min-value.tsx +0 -29
  727. package/src/widgets/spread/components/separator.tsx +0 -9
  728. package/src/widgets/spread/config.ts +0 -39
  729. package/src/widgets/spread/style.ts +0 -22
  730. package/src/widgets/stores/use-widget-selector.ts +0 -47
  731. package/src/widgets/stores/widget-store-branches.test.ts +0 -275
  732. package/src/widgets/stores/widget-store-performance.test.ts +0 -750
  733. package/src/widgets/stores/widget-store.test.ts +0 -942
  734. package/src/widgets/stores/widget-store.ts +0 -484
  735. package/src/widgets/subheader/index.ts +0 -3
  736. package/src/widgets/subheader/types.ts +0 -11
  737. package/src/widgets/table/components/cell-header.tsx +0 -58
  738. package/src/widgets/table/components/cell.tsx +0 -82
  739. package/src/widgets/table/components/pagination-actions.tsx +0 -67
  740. package/src/widgets/table/components/pagination.tsx +0 -41
  741. package/src/widgets/table/components/row.tsx +0 -65
  742. package/src/widgets/table/config.test.ts +0 -65
  743. package/src/widgets/table/config.ts +0 -75
  744. package/src/widgets/table/hooks/use-pagination.test.ts +0 -294
  745. package/src/widgets/table/hooks/use-pagination.ts +0 -148
  746. package/src/widgets/table/hooks/use-selection.test.ts +0 -504
  747. package/src/widgets/table/hooks/use-selection.ts +0 -194
  748. package/src/widgets/table/hooks/use-sort.test.ts +0 -296
  749. package/src/widgets/table/hooks/use-sort.ts +0 -131
  750. package/src/widgets/table/serializer.ts +0 -54
  751. package/src/widgets/timeseries/config.ts +0 -136
  752. package/src/widgets/timeseries/style.ts +0 -36
  753. package/src/widgets/toolbar-actions/index.ts +0 -6
  754. package/src/widgets/toolbar-actions/styles.ts +0 -38
  755. package/src/widgets/toolbar-actions/toolbar-actions.test.tsx +0 -691
  756. package/src/widgets/toolbar-actions/toolbar-actions.tsx +0 -145
  757. package/src/widgets/toolbar-actions/types.ts +0 -60
  758. package/src/widgets/utils/chart-config/config-factory.ts +0 -67
  759. package/src/widgets/utils/chart-config/csv-modifiers.ts +0 -56
  760. package/src/widgets/utils/chart-config/download-config.ts +0 -22
  761. package/src/widgets/utils/chart-config/index.ts +0 -29
  762. package/src/widgets/utils/formatter.ts +0 -2
  763. package/src/widgets/utils/skeleton/index.ts +0 -5
  764. package/src/widgets/utils/skeleton/styles.ts +0 -20
  765. package/src/widgets/wrapper/components/actions.test.tsx +0 -105
  766. package/src/widgets/wrapper/components/actions.tsx +0 -35
  767. package/src/widgets/wrapper/components/options.test.tsx +0 -331
  768. package/src/widgets/wrapper/components/options.tsx +0 -81
  769. package/src/widgets/wrapper/components/title.test.tsx +0 -126
  770. package/src/widgets/wrapper/components/title.tsx +0 -35
  771. package/src/widgets/wrapper/styles.ts +0 -98
  772. package/src/widgets/wrapper/types.ts +0 -55
  773. package/src/widgets/wrapper/wrapper-ui.test.tsx +0 -232
  774. package/src/widgets/wrapper/wrapper-ui.tsx +0 -72
  775. package/src/widgets/wrapper/wrapper.test.tsx +0 -365
  776. package/src/widgets/wrapper/wrapper.tsx +0 -60
  777. package/src/widgets-v2/actions/brush-toggle/brush-toggle.test.tsx +0 -180
  778. package/src/widgets-v2/actions/brush-toggle/brush-toggle.tsx +0 -154
  779. package/src/widgets-v2/actions/change-column/change-column-icon.tsx +0 -14
  780. package/src/widgets-v2/actions/change-column/change-column.test.tsx +0 -59
  781. package/src/widgets-v2/actions/change-column/change-column.tsx +0 -189
  782. package/src/widgets-v2/actions/change-column/sortable-column-item.tsx +0 -63
  783. package/src/widgets-v2/actions/change-column/types.ts +0 -11
  784. package/src/widgets-v2/actions/download/download.test.tsx +0 -327
  785. package/src/widgets-v2/actions/download/download.tsx +0 -144
  786. package/src/widgets-v2/actions/download/exports.test.tsx +0 -198
  787. package/src/widgets-v2/actions/download/types.ts +0 -32
  788. package/src/widgets-v2/actions/fullscreen/fullscreen.test.tsx +0 -212
  789. package/src/widgets-v2/actions/fullscreen/fullscreen.tsx +0 -301
  790. package/src/widgets-v2/actions/fullscreen/types.ts +0 -15
  791. package/src/widgets-v2/actions/index.ts +0 -95
  792. package/src/widgets-v2/actions/lock-selection/lock-selection.test.tsx +0 -301
  793. package/src/widgets-v2/actions/lock-selection/lock-selection.tsx +0 -188
  794. package/src/widgets-v2/actions/relative-data/relative-data.test.tsx +0 -71
  795. package/src/widgets-v2/actions/relative-data/relative-data.tsx +0 -107
  796. package/src/widgets-v2/actions/searcher/searcher-toggle.tsx +0 -91
  797. package/src/widgets-v2/actions/searcher/searcher.tsx +0 -111
  798. package/src/widgets-v2/actions/stack-toggle/stack-toggle.test.tsx +0 -61
  799. package/src/widgets-v2/actions/stack-toggle/stack-toggle.tsx +0 -54
  800. package/src/widgets-v2/actions/stack-toggle/style.ts +0 -11
  801. package/src/widgets-v2/actions/zoom-toggle/style.ts +0 -11
  802. package/src/widgets-v2/actions/zoom-toggle/zoom-toggle.test.tsx +0 -107
  803. package/src/widgets-v2/actions/zoom-toggle/zoom-toggle.tsx +0 -106
  804. package/src/widgets-v2/bar/index.ts +0 -10
  805. package/src/widgets-v2/bar/skeleton.tsx +0 -69
  806. package/src/widgets-v2/bar/types.ts +0 -51
  807. package/src/widgets-v2/category/category-ui.test.tsx +0 -909
  808. package/src/widgets-v2/category/category-ui.tsx +0 -479
  809. package/src/widgets-v2/category/components/category-bar.tsx +0 -49
  810. package/src/widgets-v2/category/components/category-legend.tsx +0 -82
  811. package/src/widgets-v2/category/components/category-row-multi.tsx +0 -86
  812. package/src/widgets-v2/category/components/category-row-other.tsx +0 -84
  813. package/src/widgets-v2/category/components/category-row-single.tsx +0 -76
  814. package/src/widgets-v2/category/index.ts +0 -32
  815. package/src/widgets-v2/category/skeleton.tsx +0 -74
  816. package/src/widgets-v2/category/style.ts +0 -329
  817. package/src/widgets-v2/category/types.ts +0 -61
  818. package/src/widgets-v2/echart/echart-ui.test.tsx +0 -330
  819. package/src/widgets-v2/echart/echart-ui.tsx +0 -236
  820. package/src/widgets-v2/echart/echart.test.tsx +0 -229
  821. package/src/widgets-v2/echart/echart.tsx +0 -209
  822. package/src/widgets-v2/echart/index.ts +0 -22
  823. package/src/widgets-v2/echart/shared-resize-observer.ts +0 -56
  824. package/src/widgets-v2/formula/formula-ui.test.tsx +0 -91
  825. package/src/widgets-v2/formula/formula-ui.tsx +0 -66
  826. package/src/widgets-v2/formula/index.ts +0 -17
  827. package/src/widgets-v2/formula/skeleton.tsx +0 -27
  828. package/src/widgets-v2/formula/style.ts +0 -31
  829. package/src/widgets-v2/formula/types.ts +0 -48
  830. package/src/widgets-v2/histogram/index.ts +0 -13
  831. package/src/widgets-v2/histogram/skeleton.tsx +0 -70
  832. package/src/widgets-v2/histogram/types.ts +0 -64
  833. package/src/widgets-v2/markdown/index.ts +0 -6
  834. package/src/widgets-v2/markdown/markdown-ui.test.tsx +0 -75
  835. package/src/widgets-v2/markdown/markdown-ui.tsx +0 -55
  836. package/src/widgets-v2/markdown/markdown.tsx +0 -17
  837. package/src/widgets-v2/markdown/skeleton.tsx +0 -32
  838. package/src/widgets-v2/markdown/style.ts +0 -53
  839. package/src/widgets-v2/markdown/types.ts +0 -4
  840. package/src/widgets-v2/note/style.ts +0 -26
  841. package/src/widgets-v2/pie/index.ts +0 -10
  842. package/src/widgets-v2/pie/skeleton.tsx +0 -94
  843. package/src/widgets-v2/pie/types.ts +0 -62
  844. package/src/widgets-v2/range/index.ts +0 -4
  845. package/src/widgets-v2/range/range-ui.test.tsx +0 -136
  846. package/src/widgets-v2/range/range-ui.tsx +0 -278
  847. package/src/widgets-v2/range/skeleton.tsx +0 -47
  848. package/src/widgets-v2/range/style.ts +0 -41
  849. package/src/widgets-v2/range/types.ts +0 -37
  850. package/src/widgets-v2/scatterplot/index.ts +0 -14
  851. package/src/widgets-v2/scatterplot/skeleton.tsx +0 -84
  852. package/src/widgets-v2/scatterplot/types.ts +0 -59
  853. package/src/widgets-v2/selection-summary/selection-summary.tsx +0 -82
  854. package/src/widgets-v2/selection-summary/style.ts +0 -38
  855. package/src/widgets-v2/spread/index.ts +0 -11
  856. package/src/widgets-v2/spread/skeleton.tsx +0 -38
  857. package/src/widgets-v2/spread/spread-ui.test.tsx +0 -108
  858. package/src/widgets-v2/spread/spread-ui.tsx +0 -52
  859. package/src/widgets-v2/spread/types.ts +0 -27
  860. package/src/widgets-v2/stores/index.ts +0 -49
  861. package/src/widgets-v2/stores/types.ts +0 -64
  862. package/src/widgets-v2/subheader/style.ts +0 -12
  863. package/src/widgets-v2/subheader/subheader.test.tsx +0 -30
  864. package/src/widgets-v2/subheader/subheader.tsx +0 -16
  865. package/src/widgets-v2/table/helpers.test.ts +0 -233
  866. package/src/widgets-v2/table/helpers.ts +0 -131
  867. package/src/widgets-v2/table/index.ts +0 -24
  868. package/src/widgets-v2/table/skeleton.tsx +0 -65
  869. package/src/widgets-v2/table/style.ts +0 -43
  870. package/src/widgets-v2/table/table-ui.tsx +0 -364
  871. package/src/widgets-v2/table/types.ts +0 -55
  872. package/src/widgets-v2/timeseries/index.ts +0 -11
  873. package/src/widgets-v2/timeseries/skeleton.tsx +0 -76
  874. package/src/widgets-v2/timeseries/types.ts +0 -65
  875. package/src/widgets-v2/utils/index.ts +0 -3
  876. package/src/widgets-v2/wrapper/index.ts +0 -14
  877. /package/dist/types/{widgets-v2 → widgets}/actions/brush-toggle/index.d.ts +0 -0
  878. /package/dist/types/{widgets-v2 → widgets}/actions/brush-toggle/labels.d.ts +0 -0
  879. /package/dist/types/{widgets-v2 → widgets}/actions/brush-toggle/transforms.d.ts +0 -0
  880. /package/dist/types/{widgets-v2 → widgets}/actions/change-column/index.d.ts +0 -0
  881. /package/dist/types/{widgets-v2 → widgets}/actions/change-column/labels.d.ts +0 -0
  882. /package/dist/types/{widgets-v2 → widgets}/actions/change-column/style.d.ts +0 -0
  883. /package/dist/types/{widgets-v2 → widgets}/actions/download/constants.d.ts +0 -0
  884. /package/dist/types/{widgets-v2 → widgets}/actions/download/csv-item.d.ts +0 -0
  885. /package/dist/types/{widgets-v2 → widgets}/actions/download/icons.d.ts +0 -0
  886. /package/dist/types/{widgets-v2 → widgets}/actions/download/index.d.ts +0 -0
  887. /package/dist/types/{widgets-v2 → widgets}/actions/download/labels.d.ts +0 -0
  888. /package/dist/types/{widgets-v2 → widgets}/actions/download/style.d.ts +0 -0
  889. /package/dist/types/{widgets-v2 → widgets}/actions/fullscreen/index.d.ts +0 -0
  890. /package/dist/types/{widgets-v2 → widgets}/actions/fullscreen/labels.d.ts +0 -0
  891. /package/dist/types/{widgets-v2 → widgets}/actions/fullscreen/style.d.ts +0 -0
  892. /package/dist/types/{widgets-v2 → widgets}/actions/lock-selection/index.d.ts +0 -0
  893. /package/dist/types/{widgets-v2 → widgets}/actions/lock-selection/labels.d.ts +0 -0
  894. /package/dist/types/{widgets-v2/actions/brush-toggle → widgets/actions/lock-selection}/style.d.ts +0 -0
  895. /package/dist/types/{widgets-v2 → widgets}/actions/lock-selection/transforms.d.ts +0 -0
  896. /package/dist/types/{widgets-v2 → widgets}/actions/relative-data/index.d.ts +0 -0
  897. /package/dist/types/{widgets-v2 → widgets}/actions/relative-data/labels.d.ts +0 -0
  898. /package/dist/types/{widgets-v2/actions/lock-selection → widgets/actions/relative-data}/style.d.ts +0 -0
  899. /package/dist/types/{widgets-v2 → widgets}/actions/searcher/filter.d.ts +0 -0
  900. /package/dist/types/{widgets-v2 → widgets}/actions/searcher/index.d.ts +0 -0
  901. /package/dist/types/{widgets-v2 → widgets}/actions/searcher/labels.d.ts +0 -0
  902. /package/dist/types/{widgets-v2 → widgets}/actions/searcher/style.d.ts +0 -0
  903. /package/dist/types/{widgets-v2 → widgets}/actions/show-all/index.d.ts +0 -0
  904. /package/dist/types/{widgets-v2 → widgets}/actions/show-all/labels.d.ts +0 -0
  905. /package/dist/types/{widgets-v2 → widgets}/actions/show-all/show-all.d.ts +0 -0
  906. /package/dist/types/{widgets-v2 → widgets}/actions/show-all/style.d.ts +0 -0
  907. /package/dist/types/{widgets-v2 → widgets}/actions/stack-toggle/index.d.ts +0 -0
  908. /package/dist/types/{widgets-v2 → widgets}/actions/stack-toggle/labels.d.ts +0 -0
  909. /package/dist/types/{widgets-v2/actions/relative-data → widgets/actions/stack-toggle}/style.d.ts +0 -0
  910. /package/dist/types/{widgets-v2 → widgets}/actions/stack-toggle/transforms.d.ts +0 -0
  911. /package/dist/types/{widgets-v2 → widgets}/actions/zoom-toggle/index.d.ts +0 -0
  912. /package/dist/types/{widgets-v2 → widgets}/actions/zoom-toggle/labels.d.ts +0 -0
  913. /package/dist/types/{widgets-v2 → widgets}/actions/zoom-toggle/transforms.d.ts +0 -0
  914. /package/dist/types/{widgets-v2 → widgets}/bar/download.d.ts +0 -0
  915. /package/dist/types/{widgets-v2 → widgets}/bar/options.d.ts +0 -0
  916. /package/dist/types/{widgets-v2 → widgets}/category/category.d.ts +0 -0
  917. /package/dist/types/{widgets-v2 → widgets}/category/download.d.ts +0 -0
  918. /package/dist/types/{widgets-v2 → widgets}/echart/edge-label-clamp.d.ts +0 -0
  919. /package/dist/types/{widgets-v2 → widgets}/echart/style.d.ts +0 -0
  920. /package/dist/types/{widgets-v2 → widgets}/echart/use-chart-selection.d.ts +0 -0
  921. /package/dist/types/{widgets-v2 → widgets}/formula/delta.d.ts +0 -0
  922. /package/dist/types/{widgets-v2 → widgets}/formula/download.d.ts +0 -0
  923. /package/dist/types/{widgets-v2 → widgets}/formula/formula.d.ts +0 -0
  924. /package/dist/types/{widgets-v2 → widgets}/formula/note.d.ts +0 -0
  925. /package/dist/types/{widgets-v2 → widgets}/formula/prefix.d.ts +0 -0
  926. /package/dist/types/{widgets-v2 → widgets}/formula/suffix.d.ts +0 -0
  927. /package/dist/types/{widgets-v2 → widgets}/histogram/download.d.ts +0 -0
  928. /package/dist/types/{widgets-v2 → widgets}/histogram/options.d.ts +0 -0
  929. /package/dist/types/{widgets-v2 → widgets}/histogram/transforms.d.ts +0 -0
  930. /package/dist/types/{widgets-v2 → widgets}/markdown/download.d.ts +0 -0
  931. /package/dist/types/{widgets-v2 → widgets}/markdown/markdown-content.d.ts +0 -0
  932. /package/dist/types/{widgets-v2 → widgets}/note/labels.d.ts +0 -0
  933. /package/dist/types/{widgets-v2 → widgets}/note/widget-note.d.ts +0 -0
  934. /package/dist/types/{widgets-v2 → widgets}/pie/download.d.ts +0 -0
  935. /package/dist/types/{widgets-v2 → widgets}/pie/options.d.ts +0 -0
  936. /package/dist/types/{widgets-v2 → widgets}/provider/widget-provider.d.ts +0 -0
  937. /package/dist/types/{widgets-v2 → widgets}/range/range.d.ts +0 -0
  938. /package/dist/types/{widgets-v2 → widgets}/scatterplot/download.d.ts +0 -0
  939. /package/dist/types/{widgets-v2 → widgets}/scatterplot/options.d.ts +0 -0
  940. /package/dist/types/{widgets-v2 → widgets}/scatterplot/transforms.d.ts +0 -0
  941. /package/dist/types/{widgets-v2 → widgets}/selection-summary/labels.d.ts +0 -0
  942. /package/dist/types/{widgets-v2 → widgets}/spread/band.d.ts +0 -0
  943. /package/dist/types/{widgets-v2 → widgets}/spread/download.d.ts +0 -0
  944. /package/dist/types/{widgets-v2 → widgets}/spread/separator.d.ts +0 -0
  945. /package/dist/types/{widgets-v2 → widgets}/spread/spread.d.ts +0 -0
  946. /package/dist/types/{widgets-v2 → widgets}/state/labels.d.ts +0 -0
  947. /package/dist/types/{widgets-v2 → widgets}/state/style.d.ts +0 -0
  948. /package/dist/types/{widgets-v2 → widgets}/state/widget-state.d.ts +0 -0
  949. /package/dist/types/{widgets-v2 → widgets}/stores/pipeline-middleware.d.ts +0 -0
  950. /package/dist/types/{widgets-v2 → widgets}/stores/transforms.d.ts +0 -0
  951. /package/dist/types/{widgets-v2 → widgets}/stores/use-echart-instance.d.ts +0 -0
  952. /package/dist/types/{widgets-v2 → widgets}/stores/use-transform-enabled.d.ts +0 -0
  953. /package/dist/types/{widgets-v2 → widgets}/stores/use-transform.d.ts +0 -0
  954. /package/dist/types/{widgets-v2 → widgets}/stores/widget-context.d.ts +0 -0
  955. /package/dist/types/{widgets-v2 → widgets}/stores/widget-store-registry.d.ts +0 -0
  956. /package/dist/types/{widgets-v2 → widgets}/table/download.d.ts +0 -0
  957. /package/dist/types/{widgets-v2 → widgets}/table/labels.d.ts +0 -0
  958. /package/dist/types/{widgets-v2 → widgets}/table/table.d.ts +0 -0
  959. /package/dist/types/{widgets-v2 → widgets}/table/transforms.d.ts +0 -0
  960. /package/dist/types/{widgets-v2 → widgets}/timeseries/download.d.ts +0 -0
  961. /package/dist/types/{widgets-v2 → widgets}/timeseries/options.d.ts +0 -0
  962. /package/dist/types/{widgets-v2 → widgets}/timeseries/transforms.d.ts +0 -0
  963. /package/dist/types/{widgets-v2 → widgets}/toolbox/labels.d.ts +0 -0
  964. /package/dist/types/{widgets-v2 → widgets}/toolbox/style.d.ts +0 -0
  965. /package/dist/types/{widgets-v2 → widgets}/toolbox/toolbox.d.ts +0 -0
  966. /package/dist/types/{widgets-v2 → widgets}/utils/data-zoom-layout.d.ts +0 -0
  967. /package/dist/types/{widgets-v2 → widgets}/utils/merge-options.d.ts +0 -0
  968. /package/dist/types/widgets/utils/{chart-config/option-builders.d.ts → option-builders.d.ts} +0 -0
  969. /package/dist/types/{widgets-v2 → widgets}/utils/resolve-theme-color.d.ts +0 -0
  970. /package/dist/types/{widgets-v2 → widgets}/wrapper/labels.d.ts +0 -0
  971. /package/dist/types/{widgets-v2 → widgets}/wrapper/style.d.ts +0 -0
  972. /package/dist/types/{widgets-v2 → widgets}/wrapper/widget-actions.d.ts +0 -0
  973. /package/dist/types/{widgets-v2 → widgets}/wrapper/widget-content.d.ts +0 -0
  974. /package/dist/types/{widgets-v2 → widgets}/wrapper/widget-wrapper.d.ts +0 -0
  975. /package/src/{widgets-v2 → widgets}/actions/brush-toggle/index.ts +0 -0
  976. /package/src/{widgets-v2 → widgets}/actions/brush-toggle/labels.ts +0 -0
  977. /package/src/{widgets-v2 → widgets}/actions/brush-toggle/transforms.test.ts +0 -0
  978. /package/src/{widgets-v2 → widgets}/actions/brush-toggle/transforms.ts +0 -0
  979. /package/src/{widgets-v2 → widgets}/actions/change-column/index.ts +0 -0
  980. /package/src/{widgets-v2 → widgets}/actions/change-column/labels.ts +0 -0
  981. /package/src/{widgets-v2 → widgets}/actions/change-column/style.ts +0 -0
  982. /package/src/{widgets-v2 → widgets}/actions/download/constants.ts +0 -0
  983. /package/src/{widgets-v2 → widgets}/actions/download/csv-item.test.tsx +0 -0
  984. /package/src/{widgets-v2 → widgets}/actions/download/csv-item.tsx +0 -0
  985. /package/src/{widgets-v2 → widgets}/actions/download/icons.tsx +0 -0
  986. /package/src/{widgets-v2 → widgets}/actions/download/index.ts +0 -0
  987. /package/src/{widgets-v2 → widgets}/actions/download/labels.ts +0 -0
  988. /package/src/{widgets-v2 → widgets}/actions/download/png-item.test.tsx +0 -0
  989. /package/src/{widgets-v2 → widgets}/actions/download/style.ts +0 -0
  990. /package/src/{widgets-v2 → widgets}/actions/fullscreen/index.ts +0 -0
  991. /package/src/{widgets-v2 → widgets}/actions/fullscreen/labels.ts +0 -0
  992. /package/src/{widgets-v2 → widgets}/actions/fullscreen/style.ts +0 -0
  993. /package/src/{widgets-v2 → widgets}/actions/lock-selection/index.ts +0 -0
  994. /package/src/{widgets-v2 → widgets}/actions/lock-selection/labels.ts +0 -0
  995. /package/src/{widgets-v2/actions/brush-toggle → widgets/actions/lock-selection}/style.ts +0 -0
  996. /package/src/{widgets-v2 → widgets}/actions/lock-selection/transforms.ts +0 -0
  997. /package/src/{widgets-v2 → widgets}/actions/relative-data/index.ts +0 -0
  998. /package/src/{widgets-v2 → widgets}/actions/relative-data/labels.ts +0 -0
  999. /package/src/{widgets-v2/actions/lock-selection → widgets/actions/relative-data}/style.ts +0 -0
  1000. /package/src/{widgets-v2 → widgets}/actions/relative-data/transforms.test.ts +0 -0
  1001. /package/src/{widgets-v2 → widgets}/actions/searcher/filter.ts +0 -0
  1002. /package/src/{widgets-v2 → widgets}/actions/searcher/index.ts +0 -0
  1003. /package/src/{widgets-v2 → widgets}/actions/searcher/labels.ts +0 -0
  1004. /package/src/{widgets-v2 → widgets}/actions/searcher/searcher.test.tsx +0 -0
  1005. /package/src/{widgets-v2 → widgets}/actions/searcher/style.ts +0 -0
  1006. /package/src/{widgets-v2 → widgets}/actions/show-all/index.ts +0 -0
  1007. /package/src/{widgets-v2 → widgets}/actions/show-all/labels.ts +0 -0
  1008. /package/src/{widgets-v2 → widgets}/actions/show-all/show-all.test.tsx +0 -0
  1009. /package/src/{widgets-v2 → widgets}/actions/show-all/show-all.tsx +0 -0
  1010. /package/src/{widgets-v2 → widgets}/actions/show-all/style.ts +0 -0
  1011. /package/src/{widgets-v2 → widgets}/actions/stack-toggle/index.ts +0 -0
  1012. /package/src/{widgets-v2 → widgets}/actions/stack-toggle/labels.ts +0 -0
  1013. /package/src/{widgets-v2/actions/relative-data → widgets/actions/stack-toggle}/style.ts +0 -0
  1014. /package/src/{widgets-v2 → widgets}/actions/stack-toggle/transforms.test.ts +0 -0
  1015. /package/src/{widgets-v2 → widgets}/actions/stack-toggle/transforms.ts +0 -0
  1016. /package/src/{widgets-v2 → widgets}/actions/zoom-toggle/index.ts +0 -0
  1017. /package/src/{widgets-v2 → widgets}/actions/zoom-toggle/labels.ts +0 -0
  1018. /package/src/{widgets-v2 → widgets}/actions/zoom-toggle/transforms.test.ts +0 -0
  1019. /package/src/{widgets-v2 → widgets}/actions/zoom-toggle/transforms.ts +0 -0
  1020. /package/src/{widgets-v2 → widgets}/bar/download.test.tsx +0 -0
  1021. /package/src/{widgets-v2 → widgets}/bar/download.tsx +0 -0
  1022. /package/src/{widgets-v2 → widgets}/bar/options.test.ts +0 -0
  1023. /package/src/{widgets-v2 → widgets}/bar/skeleton.test.tsx +0 -0
  1024. /package/src/{widgets-v2 → widgets}/category/category.relative-data.test.tsx +0 -0
  1025. /package/src/{widgets-v2 → widgets}/category/category.stack-toggle.test.tsx +0 -0
  1026. /package/src/{widgets-v2 → widgets}/category/category.test.tsx +0 -0
  1027. /package/src/{widgets-v2 → widgets}/category/category.tsx +0 -0
  1028. /package/src/{widgets-v2 → widgets}/category/components/category-bar-stacked.test.tsx +0 -0
  1029. /package/src/{widgets-v2 → widgets}/category/components/category-bar.test.tsx +0 -0
  1030. /package/src/{widgets-v2 → widgets}/category/components/category-row-other.test.tsx +0 -0
  1031. /package/src/{widgets-v2 → widgets}/category/components/category-row-stacked.test.tsx +0 -0
  1032. /package/src/{widgets-v2 → widgets}/category/download.test.ts +0 -0
  1033. /package/src/{widgets-v2 → widgets}/category/download.ts +0 -0
  1034. /package/src/{widgets-v2 → widgets}/category/skeleton.test.tsx +0 -0
  1035. /package/src/{widgets-v2 → widgets}/echart/edge-label-clamp.test.ts +0 -0
  1036. /package/src/{widgets-v2 → widgets}/echart/edge-label-clamp.ts +0 -0
  1037. /package/src/{widgets-v2 → widgets}/echart/shared-resize-observer.test.ts +0 -0
  1038. /package/src/{widgets-v2 → widgets}/echart/style.ts +0 -0
  1039. /package/src/{widgets-v2 → widgets}/echart/use-chart-selection.test.tsx +0 -0
  1040. /package/src/{widgets-v2 → widgets}/echart/use-chart-selection.ts +0 -0
  1041. /package/src/{widgets-v2 → widgets}/formula/delta.tsx +0 -0
  1042. /package/src/{widgets-v2 → widgets}/formula/download.test.tsx +0 -0
  1043. /package/src/{widgets-v2 → widgets}/formula/download.tsx +0 -0
  1044. /package/src/{widgets-v2 → widgets}/formula/formula.test.tsx +0 -0
  1045. /package/src/{widgets-v2 → widgets}/formula/formula.tsx +0 -0
  1046. /package/src/{widgets-v2 → widgets}/formula/prefix.tsx +0 -0
  1047. /package/src/{widgets-v2 → widgets}/formula/skeleton.test.tsx +0 -0
  1048. /package/src/{widgets-v2 → widgets}/formula/subcomponents.test.tsx +0 -0
  1049. /package/src/{widgets-v2 → widgets}/formula/suffix.tsx +0 -0
  1050. /package/src/{widgets-v2 → widgets}/histogram/download.test.ts +0 -0
  1051. /package/src/{widgets-v2 → widgets}/histogram/download.ts +0 -0
  1052. /package/src/{widgets-v2 → widgets}/histogram/options.test.ts +0 -0
  1053. /package/src/{widgets-v2 → widgets}/histogram/skeleton.test.tsx +0 -0
  1054. /package/src/{widgets-v2 → widgets}/histogram/transforms.test.ts +0 -0
  1055. /package/src/{widgets-v2 → widgets}/histogram/transforms.ts +0 -0
  1056. /package/src/{widgets-v2 → widgets}/markdown/download.test.ts +0 -0
  1057. /package/src/{widgets-v2 → widgets}/markdown/download.tsx +0 -0
  1058. /package/src/{widgets-v2 → widgets}/markdown/markdown-content.test.tsx +0 -0
  1059. /package/src/{widgets-v2 → widgets}/markdown/markdown-content.tsx +0 -0
  1060. /package/src/{widgets-v2 → widgets}/markdown/markdown.test.tsx +0 -0
  1061. /package/src/{widgets-v2 → widgets}/markdown/skeleton.test.tsx +0 -0
  1062. /package/src/{widgets-v2 → widgets}/note/labels.ts +0 -0
  1063. /package/src/{widgets-v2 → widgets}/note/widget-note.test.tsx +0 -0
  1064. /package/src/{widgets-v2 → widgets}/pie/download.test.ts +0 -0
  1065. /package/src/{widgets-v2 → widgets}/pie/download.ts +0 -0
  1066. /package/src/{widgets-v2 → widgets}/pie/options.test.ts +0 -0
  1067. /package/src/{widgets-v2 → widgets}/pie/skeleton.test.tsx +0 -0
  1068. /package/src/{widgets-v2 → widgets}/provider/widget-provider.test.tsx +0 -0
  1069. /package/src/{widgets-v2 → widgets}/provider/widget-provider.tsx +0 -0
  1070. /package/src/{widgets-v2 → widgets}/range/range.test.tsx +0 -0
  1071. /package/src/{widgets-v2 → widgets}/range/range.tsx +0 -0
  1072. /package/src/{widgets-v2 → widgets}/range/skeleton.test.tsx +0 -0
  1073. /package/src/{widgets-v2 → widgets}/scatterplot/download.test.ts +0 -0
  1074. /package/src/{widgets-v2 → widgets}/scatterplot/download.ts +0 -0
  1075. /package/src/{widgets-v2 → widgets}/scatterplot/options.test.ts +0 -0
  1076. /package/src/{widgets-v2 → widgets}/scatterplot/skeleton.test.tsx +0 -0
  1077. /package/src/{widgets-v2 → widgets}/scatterplot/transforms.test.ts +0 -0
  1078. /package/src/{widgets-v2 → widgets}/scatterplot/transforms.ts +0 -0
  1079. /package/src/{widgets-v2 → widgets}/selection-summary/labels.ts +0 -0
  1080. /package/src/{widgets-v2 → widgets}/selection-summary/selection-summary.test.tsx +0 -0
  1081. /package/src/{widgets-v2 → widgets}/spread/band.test.ts +0 -0
  1082. /package/src/{widgets-v2 → widgets}/spread/band.ts +0 -0
  1083. /package/src/{widgets-v2 → widgets}/spread/download.test.ts +0 -0
  1084. /package/src/{widgets-v2 → widgets}/spread/download.ts +0 -0
  1085. /package/src/{widgets-v2 → widgets}/spread/separator.tsx +0 -0
  1086. /package/src/{widgets-v2 → widgets}/spread/skeleton.test.tsx +0 -0
  1087. /package/src/{widgets-v2 → widgets}/spread/spread.test.tsx +0 -0
  1088. /package/src/{widgets-v2 → widgets}/spread/spread.tsx +0 -0
  1089. /package/src/{widgets-v2 → widgets}/state/labels.test.ts +0 -0
  1090. /package/src/{widgets-v2 → widgets}/state/labels.ts +0 -0
  1091. /package/src/{widgets-v2 → widgets}/state/style.ts +0 -0
  1092. /package/src/{widgets-v2 → widgets}/state/widget-state.test.tsx +0 -0
  1093. /package/src/{widgets-v2 → widgets}/stores/pipeline-middleware.test.ts +0 -0
  1094. /package/src/{widgets-v2 → widgets}/stores/pipeline-middleware.ts +0 -0
  1095. /package/src/{widgets-v2 → widgets}/stores/transforms.test.ts +0 -0
  1096. /package/src/{widgets-v2 → widgets}/stores/use-echart-instance.test.tsx +0 -0
  1097. /package/src/{widgets-v2 → widgets}/stores/use-echart-instance.ts +0 -0
  1098. /package/src/{widgets-v2 → widgets}/stores/use-transform-enabled.test.tsx +0 -0
  1099. /package/src/{widgets-v2 → widgets}/stores/use-transform-enabled.ts +0 -0
  1100. /package/src/{widgets-v2 → widgets}/stores/use-transform.test.tsx +0 -0
  1101. /package/src/{widgets-v2 → widgets}/stores/widget-context.test.tsx +0 -0
  1102. /package/src/{widgets-v2 → widgets}/stores/widget-context.ts +0 -0
  1103. /package/src/{widgets-v2 → widgets}/stores/widget-store-registry.test.ts +0 -0
  1104. /package/src/{widgets-v2 → widgets}/table/download.test.ts +0 -0
  1105. /package/src/{widgets-v2 → widgets}/table/download.ts +0 -0
  1106. /package/src/{widgets-v2 → widgets}/table/labels.tsx +0 -0
  1107. /package/src/{widgets-v2 → widgets}/table/skeleton.test.tsx +0 -0
  1108. /package/src/{widgets-v2 → widgets}/table/table-ui.test.tsx +0 -0
  1109. /package/src/{widgets-v2 → widgets}/table/table.test.tsx +0 -0
  1110. /package/src/{widgets-v2 → widgets}/table/table.tsx +0 -0
  1111. /package/src/{widgets-v2 → widgets}/table/transforms.test.ts +0 -0
  1112. /package/src/{widgets-v2 → widgets}/table/transforms.ts +0 -0
  1113. /package/src/{widgets-v2 → widgets}/timeseries/download.test.ts +0 -0
  1114. /package/src/{widgets-v2 → widgets}/timeseries/download.ts +0 -0
  1115. /package/src/{widgets-v2 → widgets}/timeseries/options.test.ts +0 -0
  1116. /package/src/{widgets-v2 → widgets}/timeseries/skeleton.test.tsx +0 -0
  1117. /package/src/{widgets-v2 → widgets}/timeseries/transforms.test.ts +0 -0
  1118. /package/src/{widgets-v2 → widgets}/timeseries/transforms.ts +0 -0
  1119. /package/src/{widgets-v2 → widgets}/toolbox/labels.ts +0 -0
  1120. /package/src/{widgets-v2 → widgets}/toolbox/style.ts +0 -0
  1121. /package/src/{widgets-v2 → widgets}/toolbox/toolbox.test.tsx +0 -0
  1122. /package/src/{widgets-v2 → widgets}/toolbox/toolbox.tsx +0 -0
  1123. /package/src/{widgets-v2 → widgets}/utils/data-zoom-layout.ts +0 -0
  1124. /package/src/{widgets-v2 → widgets}/utils/merge-options.test.ts +0 -0
  1125. /package/src/{widgets-v2 → widgets}/utils/merge-options.ts +0 -0
  1126. /package/src/widgets/utils/{chart-config/option-builders.test.ts → option-builders.test.ts} +0 -0
  1127. /package/src/widgets/utils/{chart-config/option-builders.ts → option-builders.ts} +0 -0
  1128. /package/src/{widgets-v2 → widgets}/utils/resolve-theme-color.test.ts +0 -0
  1129. /package/src/{widgets-v2 → widgets}/utils/resolve-theme-color.ts +0 -0
  1130. /package/src/{widgets-v2 → widgets}/wrapper/labels.ts +0 -0
  1131. /package/src/{widgets-v2 → widgets}/wrapper/style.ts +0 -0
  1132. /package/src/{widgets-v2 → widgets}/wrapper/widget-actions.test.tsx +0 -0
  1133. /package/src/{widgets-v2 → widgets}/wrapper/widget-actions.tsx +0 -0
  1134. /package/src/{widgets-v2 → widgets}/wrapper/widget-content.test.tsx +0 -0
  1135. /package/src/{widgets-v2 → widgets}/wrapper/widget-content.tsx +0 -0
  1136. /package/src/{widgets-v2 → widgets}/wrapper/widget-wrapper.test.tsx +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"stores-mad-9yFn.js","names":["getLegendStore(id)"],"sources":["../src/legend/stores/legend-context.ts","../src/legend/stores/selectors.ts","../src/legend/stores/legend-store-registry.ts"],"sourcesContent":["import { createContext, useContext } from 'react'\n\n/** @experimental This API is new and may change in a future release. */\nexport const LegendContext = createContext<string | null>(null)\n\n/** @experimental This API is new and may change in a future release. */\nexport function useLegendId(): string {\n const id = useContext(LegendContext)\n if (id == null) {\n throw new Error(\n 'useLegendId() must be called inside <Legend.Provider>. ' +\n 'If you are calling from outside the Provider tree, use the hooks ' +\n '(useLegendStore, useLegendShallow) directly with an explicit id.',\n )\n }\n return id\n}\n","import type { LegendGroup, LegendLayer, LegendState } from './types'\n\nconst byOrder = <T extends { order: number }>(a: T, b: T): number =>\n a.order - b.order\n\n/**\n * Groups sorted by `order`.\n *\n * @experimental This API is new and may change in a future release.\n */\nexport function selectOrderedGroups(state: LegendState): LegendGroup[] {\n return Object.values(state.groups).sort(byOrder)\n}\n\n/**\n * Layers belonging to `groupId` (pass `undefined` for ungrouped, top-level\n * layers), sorted by `order`.\n *\n * @experimental This API is new and may change in a future release.\n */\nexport function selectLayersByGroup(\n state: LegendState,\n groupId: string | undefined,\n): LegendLayer[] {\n return Object.values(state.layers)\n .filter((l) => l.groupId === groupId)\n .sort(byOrder)\n}\n\n/**\n * All layers sorted by `order`, regardless of group.\n *\n * @experimental This API is new and may change in a future release.\n */\nexport function selectOrderedLayers(state: LegendState): LegendLayer[] {\n return Object.values(state.layers).sort(byOrder)\n}\n\n/**\n * `true` when every group is collapsed (`false` with no groups) — drives the\n * \"Collapse all groups\" / \"Expand all groups\" menu label flip.\n *\n * @experimental This API is new and may change in a future release.\n */\nexport function selectAllGroupsCollapsed(state: LegendState): boolean {\n const groups = Object.values(state.groups)\n return groups.length > 0 && groups.every((g) => g.collapsed)\n}\n\n/**\n * Whether the legend has groups — gates panel-level group actions.\n *\n * @experimental This API is new and may change in a future release.\n */\nexport function selectHasGroups(state: LegendState): boolean {\n return Object.keys(state.groups).length > 0\n}\n\n/**\n * Visible layers grouped for the enabled-layers menu.\n *\n * @experimental This API is new and may change in a future release.\n */\nexport function selectVisibleLayersGrouped(\n state: LegendState,\n): { group?: LegendGroup; layers: LegendLayer[] }[] {\n const visible = (groupId: string | undefined) =>\n selectLayersByGroup(state, groupId).filter((l) => l.visible)\n const sections: { group?: LegendGroup; layers: LegendLayer[] }[] = []\n for (const group of selectOrderedGroups(state)) {\n const layers = visible(group.id)\n if (layers.length > 0) sections.push({ group, layers })\n }\n const ungrouped = visible(undefined)\n if (ungrouped.length > 0) sections.push({ layers: ungrouped })\n return sections\n}\n\n/**\n * Whether a layer has any collapsible body — something the row's `Collapse`\n * can actually fold. A layer with no variables, sections, or helper note\n * renders an empty body, so there is nothing to collapse. Gates the row's\n * title-area collapse affordance (chevron + click).\n *\n * @experimental This API is new and may change in a future release.\n */\nexport function selectLayerCollapsible(\n state: LegendState,\n layerId: string,\n): boolean {\n const layer = state.layers[layerId]\n if (!layer) return false\n return (\n layer.variables.length > 0 ||\n (layer.sections?.length ?? 0) > 0 ||\n // Truthiness matches the render condition — an empty-string note renders\n // no footer, so it must not enable the collapse affordance.\n Boolean(layer.helperText)\n )\n}\n\n/**\n * Tri-state visibility — derived for groups from their member layers, and the\n * state contract of a controlled `Legend.VisibilityToggle` for any custom\n * element kind.\n */\nexport type LegendVisibility = 'visible' | 'hidden' | 'mixed'\n\n/**\n * Tri-state group visibility: `'visible'` when every member layer is visible\n * (also for empty groups), `'hidden'` when none is, `'mixed'` otherwise.\n *\n * @experimental This API is new and may change in a future release.\n */\nexport function selectGroupVisibility(\n state: LegendState,\n groupId: string,\n): LegendVisibility {\n let anyVisible = false\n let anyHidden = false\n for (const layer of selectLayersByGroup(state, groupId)) {\n if (layer.visible) anyVisible = true\n else anyHidden = true\n }\n if (anyVisible && anyHidden) return 'mixed'\n return anyHidden ? 'hidden' : 'visible'\n}\n","import { isValidElement } from 'react'\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 type {\n LegendConfigSection,\n LegendGroup,\n LegendGroupInput,\n LegendInit,\n LegendLayer,\n LegendLayerInput,\n LegendState,\n LegendStoreApi,\n} from './types'\nimport { selectLayersByGroup, selectOrderedGroups } from './selectors'\n\n// Per-panel legend store registry. One store per `<Legend.Provider id>`.\n// Mirrors the widgets-v2 registry pattern (keyed Map + refcounted mounts),\n// without the chart-pipeline machinery.\nconst legendStores = new Map<string, LegendStoreApi>()\nconst legendMountCounts = new Map<string, number>()\nconst warnedDuplicates = new Set<string>()\n\nconst clamp01 = (n: number): number => Math.min(1, Math.max(0, n))\n\n// ─── Pure state helpers ─────────────────────────────────────────────────────\n\n/**\n * Visibility↔collapse coupling. Hiding snapshots the current collapsed state\n * and collapses; showing restores the snapshot (manual choices persist) and\n * defaults to expanded. Idempotent: returns `null` when `visible` is already\n * the requested value, so a double-hide can't overwrite the real snapshot.\n */\nfunction visibilityPatch(\n entity: {\n visible: boolean\n collapsed: boolean\n collapsedBeforeHide?: boolean\n },\n visible: boolean,\n): {\n visible: boolean\n collapsed: boolean\n collapsedBeforeHide: boolean | undefined\n} | null {\n if (entity.visible === visible) return null\n return visible\n ? // Showing: restore the pre-hide collapsed state (default expand).\n {\n visible,\n collapsed: entity.collapsedBeforeHide ?? false,\n collapsedBeforeHide: undefined,\n }\n : // Hiding: snapshot, then collapse.\n {\n visible,\n collapsed: true,\n collapsedBeforeHide: entity.collapsed,\n }\n}\n\n/**\n * Manual collapse. While hidden, the snapshot follows the manual choice so\n * the next show keeps it.\n */\nfunction collapsePatch(\n entity: { visible: boolean },\n collapsed: boolean,\n): { collapsed: boolean; collapsedBeforeHide?: boolean } {\n return entity.visible\n ? { collapsed }\n : { collapsed, collapsedBeforeHide: collapsed }\n}\n\n/**\n * Reorder one entity within its **ordered** bucket: splice it out, insert at\n * the clamped index, and return the dense `order` rewrites (only the entries\n * whose order actually changes). `null` when the position doesn't change or\n * the id isn't in the bucket. Powers `moveLayer` / `moveGroup`.\n */\nfunction movePatch<T extends { id: string; order: number }>(\n bucket: T[],\n id: string,\n toIndex: number,\n): Map<string, number> | null {\n const fromIndex = bucket.findIndex((e) => e.id === id)\n if (fromIndex === -1) return null\n const clamped = Math.max(0, Math.min(bucket.length - 1, toIndex))\n if (clamped === fromIndex) return null\n const next = [...bucket]\n const [moved] = next.splice(fromIndex, 1)\n next.splice(clamped, 0, moved!)\n const orders = new Map<string, number>()\n next.forEach((entity, index) => {\n if (entity.order !== index) orders.set(entity.id, index)\n })\n return orders.size > 0 ? orders : null\n}\n\nfunction updateLayer(\n state: LegendState,\n id: string,\n patch: Partial<LegendLayer>,\n): Partial<LegendState> {\n const layer = state.layers[id]\n if (!layer) return {}\n return { layers: { ...state.layers, [id]: { ...layer, ...patch } } }\n}\n\nfunction updateGroup(\n state: LegendState,\n id: string,\n patch: Partial<LegendGroup>,\n): Partial<LegendState> {\n const group = state.groups[id]\n if (!group) return {}\n return { groups: { ...state.groups, [id]: { ...group, ...patch } } }\n}\n\n/**\n * Merge incoming config-select sections while preserving the user's picked\n * `active` for any section id that still exists and whose pick is still among\n * the new `options` (the structure — ids, titles, options, order — always\n * follows the props). Returns the previous array when the merge lands on the\n * same content, so unchanged syncs keep entity identity (bail-out).\n */\nfunction mergeSections(\n prev: LegendConfigSection[] | undefined,\n next: LegendConfigSection[] | undefined,\n): LegendConfigSection[] | undefined {\n if (!next || !prev || prev === next) return next\n const merged = next.map((section) => {\n const prevSection = prev.find((p) => p.id === section.id)\n return prevSection &&\n prevSection.active !== section.active &&\n section.options.includes(prevSection.active)\n ? { ...section, active: prevSection.active }\n : section\n })\n const sameAsPrev =\n prev.length === merged.length &&\n merged.every((m, i) => {\n const p = prev[i]!\n return (\n p.id === m.id &&\n p.title === m.title &&\n p.options === m.options &&\n p.active === m.active\n )\n })\n return sameAsPrev ? prev : merged\n}\n\n/**\n * Same-type, same-key React elements with shallow-equal props count as\n * equal, so a ReactNode field (e.g. `LegendGroup.icon`) re-created inline on\n * every render (`icon={<MyIcon />}`) doesn't look \"changed\" on every sync. A\n * different `key` is treated as a real change, same as a different type.\n */\nfunction reactElementEqual(a: unknown, b: unknown): boolean {\n if (!isValidElement(a) || !isValidElement(b)) return false\n if (a.type !== b.type || a.key !== b.key) return false\n return shallowEqualEntity(\n a.props as Record<string, unknown>,\n b.props as Record<string, unknown>,\n )\n}\n\n/**\n * Shallow equality over the union of both objects' keys — `Object.is` per\n * value, except React elements, which fall back to {@link reactElementEqual}.\n */\nfunction shallowEqualEntity<T extends object>(a: T, b: T): boolean {\n const keys = new Set([...Object.keys(a), ...Object.keys(b)]) as Set<keyof T>\n for (const key of keys) {\n if (Object.is(a[key], b[key])) continue\n if (!reactElementEqual(a[key], b[key])) return false\n }\n return true\n}\n\n/**\n * Reassign `order` to dense indexes `0..n-1` within each sibling bucket,\n * sorted by current order with ties broken by input position. This is the\n * only boundary where external (possibly duplicated) orders enter, so the\n * stored orders stay dense and unique within each bucket.\n */\nfunction normalizeOrders<T extends { order: number }>(\n entries: { merged: T; index: number }[],\n bucketOf: (e: T) => string | undefined,\n): void {\n const buckets = new Map<string | undefined, { merged: T; index: number }[]>()\n for (const entry of entries) {\n const key = bucketOf(entry.merged)\n const bucket = buckets.get(key)\n if (bucket) bucket.push(entry)\n else buckets.set(key, [entry])\n }\n for (const bucket of buckets.values()) {\n bucket\n .sort((a, b) => a.merged.order - b.merged.order || a.index - b.index)\n .forEach((entry, i) => {\n entry.merged.order = i\n })\n }\n}\n\n/**\n * Seed/merge one layer: static fields follow the input; interactive state\n * (`visible`/`opacity`/`collapsed`/`order`/`collapsedBeforeHide` + section\n * actives) sticks to the store entry when present. Shared by `_sync` (per\n * entry) and the imperative `setLegendLayer`.\n */\nfunction mergeLayerEntity(\n prev: LegendLayer | undefined,\n input: LegendLayerInput,\n fallbackOrder: number,\n): LegendLayer {\n return {\n ...input,\n visible: prev?.visible ?? input.visible ?? true,\n opacity: prev?.opacity ?? input.opacity ?? 1,\n collapsed: prev?.collapsed ?? input.collapsed ?? false,\n collapsedBeforeHide: prev?.collapsedBeforeHide,\n sections: mergeSections(prev?.sections, input.sections),\n order: prev?.order ?? input.order ?? fallbackOrder,\n } as LegendLayer\n}\n\n/**\n * Group counterpart of {@link mergeLayerEntity}. A group with no `prev`\n * state (first sync) defaults collapsed when none of its member layers is\n * visible yet — `hasVisibleLayer` is ignored once the group exists so a\n * user's manual expand/collapse always sticks.\n *\n * Only the declarative sync passes a meaningful `hasVisibleLayer` — it sees\n * the whole batch. The imperative path passes `true`; see\n * {@link upsertGroupState}.\n */\nfunction mergeGroupEntity(\n prev: LegendGroup | undefined,\n input: LegendGroupInput,\n fallbackOrder: number,\n hasVisibleLayer: boolean,\n): LegendGroup {\n return {\n ...input,\n collapsed: prev?.collapsed ?? input.collapsed ?? !hasVisibleLayer,\n collapsedBeforeHide: prev?.collapsedBeforeHide,\n order: prev?.order ?? input.order ?? fallbackOrder,\n } as LegendGroup\n}\n\n/**\n * Merge incoming definitions while preserving interactive state of known\n * entities: static fields (name, subtitle, variables, attributes, …) follow\n * the props; `visible`/`opacity`/`collapsed`/`order` stick to what's in the\n * store. New entities are seeded; vanished ones are dropped. Sibling orders\n * are normalized to dense indexes.\n *\n * Unchanged entities keep their previous object identity (`variables`\n * compared by reference), and when nothing changed at all the sync is a\n * no-op (`{}`), so stable consumer props never produce a state update.\n */\nfunction syncState(\n state: LegendState,\n layerInputs: LegendLayerInput[],\n groupInputs: LegendGroupInput[],\n): Partial<LegendState> {\n const layerEntries = layerInputs.map((input, index) => ({\n index,\n merged: mergeLayerEntity(state.layers[input.id], input, index),\n }))\n normalizeOrders(layerEntries, (l) => l.groupId)\n\n const groupsWithVisibleLayer = new Set(\n layerEntries\n .filter(({ merged }) => merged.visible && merged.groupId != null)\n .map(({ merged }) => merged.groupId!),\n )\n const groupEntries = groupInputs.map((input, index) => ({\n index,\n merged: mergeGroupEntity(\n state.groups[input.id],\n input,\n index,\n groupsWithVisibleLayer.has(input.id),\n ),\n }))\n normalizeOrders(groupEntries, () => undefined)\n\n // Reference preservation: reuse the previous entity object when nothing\n // about it changed, so subscribers see stable identities.\n let layersChanged = layerEntries.length !== Object.keys(state.layers).length\n const layers: Record<string, LegendLayer> = {}\n for (const { merged } of layerEntries) {\n const prev = state.layers[merged.id]\n if (prev && shallowEqualEntity(prev, merged)) {\n layers[merged.id] = prev\n } else {\n layers[merged.id] = merged\n layersChanged = true\n }\n }\n\n let groupsChanged = groupEntries.length !== Object.keys(state.groups).length\n const groups: Record<string, LegendGroup> = {}\n for (const { merged } of groupEntries) {\n const prev = state.groups[merged.id]\n if (prev && shallowEqualEntity(prev, merged)) {\n groups[merged.id] = prev\n } else {\n groups[merged.id] = merged\n groupsChanged = true\n }\n }\n\n if (!layersChanged && !groupsChanged) return {}\n return {\n layers: layersChanged ? layers : state.layers,\n groups: groupsChanged ? groups : state.groups,\n }\n}\n\n/**\n * Rebuild a layer/group record from a candidate map, normalizing dense order\n * per bucket and preserving the previous object identity for entries that are\n * unchanged. Returns `null` when nothing changed (so callers can bail with\n * `{}`).\n */\nfunction rebuildRecord<\n T extends { id: string; order: number; groupId?: string },\n>(\n prev: Record<string, T>,\n next: Record<string, T>,\n bucketOf: (e: T) => string | undefined,\n): Record<string, T> | null {\n const entries = Object.values(next).map((e, index) => ({\n index,\n merged: { ...e },\n }))\n normalizeOrders(entries, bucketOf)\n let changed = entries.length !== Object.keys(prev).length\n const out: Record<string, T> = {}\n for (const { merged } of entries) {\n const before = prev[merged.id]\n if (before && shallowEqualEntity(before, merged)) {\n out[merged.id] = before\n } else {\n out[merged.id] = merged\n changed = true\n }\n }\n return changed ? out : null\n}\n\n/** Add or update a single layer (imperative `setLegendLayer`). */\nfunction upsertLayerState(\n state: LegendState,\n input: LegendLayerInput,\n): Partial<LegendState> {\n const siblingCount = Object.values(state.layers).filter(\n (l) => l.groupId === input.groupId && l.id !== input.id,\n ).length\n const merged = mergeLayerEntity(state.layers[input.id], input, siblingCount)\n const layers = rebuildRecord(\n state.layers,\n { ...state.layers, [input.id]: merged },\n (l) => l.groupId,\n )\n return layers ? { layers } : {}\n}\n\n/** Remove a single layer, re-densifying its sibling orders. */\nfunction removeLayerState(\n state: LegendState,\n id: string,\n): Partial<LegendState> {\n if (!state.layers[id]) return {}\n const next = { ...state.layers }\n delete next[id]\n const layers = rebuildRecord(state.layers, next, (l) => l.groupId)\n return layers ? { layers } : {}\n}\n\n/**\n * Add or update a single group (imperative `setLegendGroup`).\n *\n * This sees one group against whatever layers happen to be registered, and\n * group-before-layer is a legitimate order — so inferring \"nothing visible\"\n * from that partial view seeded `collapsed: true`, which then won every\n * later merge through `prev?.collapsed`. Default is expanded unless the\n * input says otherwise; the visibility-based default stays in\n * {@link syncState}, which knows the full batch.\n */\nfunction upsertGroupState(\n state: LegendState,\n input: LegendGroupInput,\n): Partial<LegendState> {\n const count = Object.values(state.groups).filter(\n (g) => g.id !== input.id,\n ).length\n const merged = mergeGroupEntity(\n state.groups[input.id],\n input,\n count,\n // Never infer collapsed from a partial view of the members.\n true,\n )\n const groups = rebuildRecord(\n state.groups,\n { ...state.groups, [input.id]: merged },\n () => undefined,\n )\n return groups ? { groups } : {}\n}\n\n/**\n * Remove a group; its member layers are un-grouped (`groupId` cleared) so they\n * survive as ungrouped rows. Re-densifies both group and layer orders.\n */\nfunction removeGroupState(\n state: LegendState,\n id: string,\n): Partial<LegendState> {\n if (!state.groups[id]) return {}\n const nextGroups = { ...state.groups }\n delete nextGroups[id]\n const groups = rebuildRecord(state.groups, nextGroups, () => undefined)\n\n const members = Object.values(state.layers).filter((l) => l.groupId === id)\n if (members.length === 0) return groups ? { groups } : {}\n\n const nextLayers = { ...state.layers }\n for (const member of members) {\n nextLayers[member.id] = { ...member, groupId: undefined }\n }\n const layers = rebuildRecord(state.layers, nextLayers, (l) => l.groupId)\n return {\n ...(groups ? { groups } : {}),\n ...(layers ? { layers } : {}),\n }\n}\n\n// ─── Store factory ────────────────────────────────────────────────────────────\n\n/**\n * @internal — used by Provider; not part of the public API.\n *\n * @experimental This API is new and may change in a future release.\n */\nexport function createLegendStore(\n id: string,\n init: LegendInit = {},\n): LegendStoreApi {\n // Seed through the same merge/normalize path as `_sync`, so a later sync\n // with identical input is a guaranteed no-op (stable identities).\n const seeded = syncState(\n { layers: {}, groups: {} } as LegendState,\n init.layers ?? [],\n init.groups ?? [],\n )\n\n return createStore<LegendState>()(\n devtools(\n (set) => ({\n layers: seeded.layers ?? {},\n groups: seeded.groups ?? {},\n\n setVisibility: (lid, visible) =>\n set(\n (s) => {\n const layer = s.layers[lid]\n const patch = layer && visibilityPatch(layer, visible)\n return patch ? updateLayer(s, lid, patch) : {}\n },\n false,\n 'setVisibility',\n ),\n setOpacity: (lid, opacity) =>\n set(\n (s) => updateLayer(s, lid, { opacity: clamp01(opacity) }),\n false,\n 'setOpacity',\n ),\n setCollapsed: (lid, collapsed) =>\n set(\n (s) => {\n const layer = s.layers[lid]\n return layer\n ? updateLayer(s, lid, collapsePatch(layer, collapsed))\n : {}\n },\n false,\n 'setCollapsed',\n ),\n setSectionValue: (lid, sectionId, value) =>\n set(\n (s) => {\n const layer = s.layers[lid]\n const section = layer?.sections?.find((x) => x.id === sectionId)\n if (\n !layer?.sections ||\n !section ||\n section.active === value ||\n !section.options.includes(value)\n ) {\n return {}\n }\n const sections = layer.sections.map((x) =>\n x.id === sectionId ? { ...x, active: value } : x,\n )\n return updateLayer(s, lid, { sections })\n },\n false,\n 'setSectionValue',\n ),\n\n moveLayer: (lid, toIndex) =>\n set(\n (s) => {\n const layer = s.layers[lid]\n if (!layer) return {}\n const bucket = selectLayersByGroup(s, layer.groupId)\n const orders = movePatch(bucket, lid, toIndex)\n if (!orders) return {}\n const layers = { ...s.layers }\n for (const [id, order] of orders) {\n layers[id] = { ...layers[id]!, order }\n }\n return { layers }\n },\n false,\n 'moveLayer',\n ),\n\n setGroupVisibility: (gid, visible) =>\n set(\n (s) => {\n const group = s.groups[gid]\n if (!group) return {}\n const members = Object.values(s.layers).filter(\n (l) => l.groupId === gid,\n )\n const anyVisible = members.some((l) => l.visible)\n // Idempotence on the derived state: hide needs a visible member,\n // show needs a fully-hidden group (mixed acts in both directions\n // except show-from-mixed still shows the hidden remainder).\n if (members.length === 0 || (!visible && !anyVisible)) return {}\n\n // Cascade: each member runs the standard visibility↔collapse\n // coupling, so per-layer collapse snapshots survive a group\n // hide/show; members already at the target are untouched.\n const layers = { ...s.layers }\n let layersChanged = false\n for (const member of members) {\n const patch = visibilityPatch(member, visible)\n if (patch) {\n layers[member.id] = { ...member, ...patch }\n layersChanged = true\n }\n }\n if (!layersChanged) return {}\n\n // Group-level collapse coupling, only on real derived\n // transitions: any-visible→hidden snapshots + collapses;\n // hidden→visible restores the snapshot.\n let groupPatch: Partial<LegendGroup> | null = null\n if (!visible && anyVisible) {\n groupPatch = {\n collapsed: true,\n collapsedBeforeHide: group.collapsed,\n }\n } else if (visible && !anyVisible) {\n groupPatch = {\n collapsed: group.collapsedBeforeHide ?? false,\n collapsedBeforeHide: undefined,\n }\n }\n return {\n layers,\n ...(groupPatch\n ? {\n groups: {\n ...s.groups,\n [gid]: { ...group, ...groupPatch },\n },\n }\n : {}),\n }\n },\n false,\n 'setGroupVisibility',\n ),\n setGroupCollapsed: (gid, collapsed) =>\n set(\n (s) => {\n const group = s.groups[gid]\n if (!group) return {}\n // Group visibility is derived from members; while the group is\n // hidden the snapshot follows the manual choice (layer parity).\n const members = Object.values(s.layers).filter(\n (l) => l.groupId === gid,\n )\n const hidden =\n members.length > 0 && members.every((l) => !l.visible)\n return updateGroup(\n s,\n gid,\n hidden\n ? { collapsed, collapsedBeforeHide: collapsed }\n : { collapsed },\n )\n },\n false,\n 'setGroupCollapsed',\n ),\n\n moveGroup: (gid, toIndex) =>\n set(\n (s) => {\n if (!s.groups[gid]) return {}\n const orders = movePatch(selectOrderedGroups(s), gid, toIndex)\n if (!orders) return {}\n const groups = { ...s.groups }\n for (const [id, order] of orders) {\n groups[id] = { ...groups[id]!, order }\n }\n return { groups }\n },\n false,\n 'moveGroup',\n ),\n\n setLegendLayer: (input) =>\n set((s) => upsertLayerState(s, input), false, 'setLegendLayer'),\n removeLegendLayer: (lid) =>\n set((s) => removeLayerState(s, lid), false, 'removeLegendLayer'),\n setLegendGroup: (input) =>\n set((s) => upsertGroupState(s, input), false, 'setLegendGroup'),\n removeLegendGroup: (gid) =>\n set((s) => removeGroupState(s, gid), false, 'removeLegendGroup'),\n\n _sync: (layerInputs, groupInputs) =>\n set((s) => syncState(s, layerInputs, groupInputs), false, '_sync'),\n }),\n { name: `legend-${id}`, enabled: isDev() },\n ),\n )\n}\n\n// ─── Registry ───────────────────────────────────────────────────────────────\n\n/** @experimental This API is new and may change in a future release. */\nexport function getLegendStore(id: string): LegendStoreApi {\n const store = legendStores.get(id)\n if (!store) throw new Error(`[legend] Legend store \"${id}\" not found.`)\n return store\n}\n\n/** @experimental This API is new and may change in a future release. */\nexport function hasLegendStore(id: string): boolean {\n return legendStores.has(id)\n}\n\n/** @experimental This API is new and may change in a future release. */\nexport function deleteLegendStore(id: string): void {\n legendStores.delete(id)\n}\n\n/** @experimental This API is new and may change in a future release. */\nexport function clearAllLegendStores(): void {\n legendStores.clear()\n legendMountCounts.clear()\n warnedDuplicates.clear()\n}\n\n/**\n * @internal — used by Provider's lazy init so children can resolve the store first render.\n *\n * @experimental This API is new and may change in a future release.\n */\nexport function setLegendStoreEntry(id: string, store: LegendStoreApi): void {\n legendStores.set(id, store)\n}\n\n/**\n * @internal — registers a Provider mount and warns on duplicate ids in dev.\n *\n * @experimental This API is new and may change in a future release.\n */\nexport function registerLegendStore(id: string, store: LegendStoreApi): void {\n legendStores.set(id, store)\n const count = (legendMountCounts.get(id) ?? 0) + 1\n legendMountCounts.set(id, count)\n if (count > 1 && isDev() && !warnedDuplicates.has(id)) {\n // eslint-disable-next-line no-console\n console.warn(\n `[legend] Duplicate <Legend.Provider id=\"${id}\"> detected. ` +\n `Multiple providers sharing an id will race on prop sync. ` +\n `Use unique ids per legend panel.`,\n )\n warnedDuplicates.add(id)\n }\n}\n\n/**\n * @internal — Provider unmount counterpart; removes the entry on last unmount.\n *\n * @experimental This API is new and may change in a future release.\n */\nexport function unregisterLegendStore(\n id: string,\n options: { keepAlive: boolean },\n): void {\n const count = (legendMountCounts.get(id) ?? 1) - 1\n if (count <= 0) {\n legendMountCounts.delete(id)\n if (!options.keepAlive) legendStores.delete(id)\n } else {\n legendMountCounts.set(id, count)\n }\n}\n\n// ─── Hooks ────────────────────────────────────────────────────────────────────\n\n/** @experimental This API is new and may change in a future release. */\nexport function useLegendStore<T>(\n id: string,\n selector: (state: LegendState) => T,\n): T {\n const store = getLegendStore(id) as unknown as StoreApi<LegendState>\n return useStore(store, selector)\n}\n\n/** @experimental This API is new and may change in a future release. */\nexport function useLegendShallow<T>(\n id: string,\n selector: (state: LegendState) => T,\n): T {\n const store = getLegendStore(id) as unknown as StoreApi<LegendState>\n return useStore(store, useShallow(selector))\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"stores-mad-9yFn.js","names":["getLegendStore(id)"],"sources":["../src/legend/stores/legend-context.ts","../src/legend/stores/selectors.ts","../src/legend/stores/legend-store-registry.ts"],"sourcesContent":["import { createContext, useContext } from 'react'\n\n/** @experimental This API is new and may change in a future release. */\nexport const LegendContext = createContext<string | null>(null)\n\n/** @experimental This API is new and may change in a future release. */\nexport function useLegendId(): string {\n const id = useContext(LegendContext)\n if (id == null) {\n throw new Error(\n 'useLegendId() must be called inside <Legend.Provider>. ' +\n 'If you are calling from outside the Provider tree, use the hooks ' +\n '(useLegendStore, useLegendShallow) directly with an explicit id.',\n )\n }\n return id\n}\n","import type { LegendGroup, LegendLayer, LegendState } from './types'\n\nconst byOrder = <T extends { order: number }>(a: T, b: T): number =>\n a.order - b.order\n\n/**\n * Groups sorted by `order`.\n *\n * @experimental This API is new and may change in a future release.\n */\nexport function selectOrderedGroups(state: LegendState): LegendGroup[] {\n return Object.values(state.groups).sort(byOrder)\n}\n\n/**\n * Layers belonging to `groupId` (pass `undefined` for ungrouped, top-level\n * layers), sorted by `order`.\n *\n * @experimental This API is new and may change in a future release.\n */\nexport function selectLayersByGroup(\n state: LegendState,\n groupId: string | undefined,\n): LegendLayer[] {\n return Object.values(state.layers)\n .filter((l) => l.groupId === groupId)\n .sort(byOrder)\n}\n\n/**\n * All layers sorted by `order`, regardless of group.\n *\n * @experimental This API is new and may change in a future release.\n */\nexport function selectOrderedLayers(state: LegendState): LegendLayer[] {\n return Object.values(state.layers).sort(byOrder)\n}\n\n/**\n * `true` when every group is collapsed (`false` with no groups) — drives the\n * \"Collapse all groups\" / \"Expand all groups\" menu label flip.\n *\n * @experimental This API is new and may change in a future release.\n */\nexport function selectAllGroupsCollapsed(state: LegendState): boolean {\n const groups = Object.values(state.groups)\n return groups.length > 0 && groups.every((g) => g.collapsed)\n}\n\n/**\n * Whether the legend has groups — gates panel-level group actions.\n *\n * @experimental This API is new and may change in a future release.\n */\nexport function selectHasGroups(state: LegendState): boolean {\n return Object.keys(state.groups).length > 0\n}\n\n/**\n * Visible layers grouped for the enabled-layers menu.\n *\n * @experimental This API is new and may change in a future release.\n */\nexport function selectVisibleLayersGrouped(\n state: LegendState,\n): { group?: LegendGroup; layers: LegendLayer[] }[] {\n const visible = (groupId: string | undefined) =>\n selectLayersByGroup(state, groupId).filter((l) => l.visible)\n const sections: { group?: LegendGroup; layers: LegendLayer[] }[] = []\n for (const group of selectOrderedGroups(state)) {\n const layers = visible(group.id)\n if (layers.length > 0) sections.push({ group, layers })\n }\n const ungrouped = visible(undefined)\n if (ungrouped.length > 0) sections.push({ layers: ungrouped })\n return sections\n}\n\n/**\n * Whether a layer has any collapsible body — something the row's `Collapse`\n * can actually fold. A layer with no variables, sections, or helper note\n * renders an empty body, so there is nothing to collapse. Gates the row's\n * title-area collapse affordance (chevron + click).\n *\n * @experimental This API is new and may change in a future release.\n */\nexport function selectLayerCollapsible(\n state: LegendState,\n layerId: string,\n): boolean {\n const layer = state.layers[layerId]\n if (!layer) return false\n return (\n layer.variables.length > 0 ||\n (layer.sections?.length ?? 0) > 0 ||\n // Truthiness matches the render condition — an empty-string note renders\n // no footer, so it must not enable the collapse affordance.\n Boolean(layer.helperText)\n )\n}\n\n/**\n * Tri-state visibility — derived for groups from their member layers, and the\n * state contract of a controlled `Legend.VisibilityToggle` for any custom\n * element kind.\n */\nexport type LegendVisibility = 'visible' | 'hidden' | 'mixed'\n\n/**\n * Tri-state group visibility: `'visible'` when every member layer is visible\n * (also for empty groups), `'hidden'` when none is, `'mixed'` otherwise.\n *\n * @experimental This API is new and may change in a future release.\n */\nexport function selectGroupVisibility(\n state: LegendState,\n groupId: string,\n): LegendVisibility {\n let anyVisible = false\n let anyHidden = false\n for (const layer of selectLayersByGroup(state, groupId)) {\n if (layer.visible) anyVisible = true\n else anyHidden = true\n }\n if (anyVisible && anyHidden) return 'mixed'\n return anyHidden ? 'hidden' : 'visible'\n}\n","import { isValidElement } from 'react'\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 type {\n LegendConfigSection,\n LegendGroup,\n LegendGroupInput,\n LegendInit,\n LegendLayer,\n LegendLayerInput,\n LegendState,\n LegendStoreApi,\n} from './types'\nimport { selectLayersByGroup, selectOrderedGroups } from './selectors'\n\n// Per-panel legend store registry. One store per `<Legend.Provider id>`.\n// Mirrors the widgets registry pattern (keyed Map + refcounted mounts),\n// without the chart-pipeline machinery.\nconst legendStores = new Map<string, LegendStoreApi>()\nconst legendMountCounts = new Map<string, number>()\nconst warnedDuplicates = new Set<string>()\n\nconst clamp01 = (n: number): number => Math.min(1, Math.max(0, n))\n\n// ─── Pure state helpers ─────────────────────────────────────────────────────\n\n/**\n * Visibility↔collapse coupling. Hiding snapshots the current collapsed state\n * and collapses; showing restores the snapshot (manual choices persist) and\n * defaults to expanded. Idempotent: returns `null` when `visible` is already\n * the requested value, so a double-hide can't overwrite the real snapshot.\n */\nfunction visibilityPatch(\n entity: {\n visible: boolean\n collapsed: boolean\n collapsedBeforeHide?: boolean\n },\n visible: boolean,\n): {\n visible: boolean\n collapsed: boolean\n collapsedBeforeHide: boolean | undefined\n} | null {\n if (entity.visible === visible) return null\n return visible\n ? // Showing: restore the pre-hide collapsed state (default expand).\n {\n visible,\n collapsed: entity.collapsedBeforeHide ?? false,\n collapsedBeforeHide: undefined,\n }\n : // Hiding: snapshot, then collapse.\n {\n visible,\n collapsed: true,\n collapsedBeforeHide: entity.collapsed,\n }\n}\n\n/**\n * Manual collapse. While hidden, the snapshot follows the manual choice so\n * the next show keeps it.\n */\nfunction collapsePatch(\n entity: { visible: boolean },\n collapsed: boolean,\n): { collapsed: boolean; collapsedBeforeHide?: boolean } {\n return entity.visible\n ? { collapsed }\n : { collapsed, collapsedBeforeHide: collapsed }\n}\n\n/**\n * Reorder one entity within its **ordered** bucket: splice it out, insert at\n * the clamped index, and return the dense `order` rewrites (only the entries\n * whose order actually changes). `null` when the position doesn't change or\n * the id isn't in the bucket. Powers `moveLayer` / `moveGroup`.\n */\nfunction movePatch<T extends { id: string; order: number }>(\n bucket: T[],\n id: string,\n toIndex: number,\n): Map<string, number> | null {\n const fromIndex = bucket.findIndex((e) => e.id === id)\n if (fromIndex === -1) return null\n const clamped = Math.max(0, Math.min(bucket.length - 1, toIndex))\n if (clamped === fromIndex) return null\n const next = [...bucket]\n const [moved] = next.splice(fromIndex, 1)\n next.splice(clamped, 0, moved!)\n const orders = new Map<string, number>()\n next.forEach((entity, index) => {\n if (entity.order !== index) orders.set(entity.id, index)\n })\n return orders.size > 0 ? orders : null\n}\n\nfunction updateLayer(\n state: LegendState,\n id: string,\n patch: Partial<LegendLayer>,\n): Partial<LegendState> {\n const layer = state.layers[id]\n if (!layer) return {}\n return { layers: { ...state.layers, [id]: { ...layer, ...patch } } }\n}\n\nfunction updateGroup(\n state: LegendState,\n id: string,\n patch: Partial<LegendGroup>,\n): Partial<LegendState> {\n const group = state.groups[id]\n if (!group) return {}\n return { groups: { ...state.groups, [id]: { ...group, ...patch } } }\n}\n\n/**\n * Merge incoming config-select sections while preserving the user's picked\n * `active` for any section id that still exists and whose pick is still among\n * the new `options` (the structure — ids, titles, options, order — always\n * follows the props). Returns the previous array when the merge lands on the\n * same content, so unchanged syncs keep entity identity (bail-out).\n */\nfunction mergeSections(\n prev: LegendConfigSection[] | undefined,\n next: LegendConfigSection[] | undefined,\n): LegendConfigSection[] | undefined {\n if (!next || !prev || prev === next) return next\n const merged = next.map((section) => {\n const prevSection = prev.find((p) => p.id === section.id)\n return prevSection &&\n prevSection.active !== section.active &&\n section.options.includes(prevSection.active)\n ? { ...section, active: prevSection.active }\n : section\n })\n const sameAsPrev =\n prev.length === merged.length &&\n merged.every((m, i) => {\n const p = prev[i]!\n return (\n p.id === m.id &&\n p.title === m.title &&\n p.options === m.options &&\n p.active === m.active\n )\n })\n return sameAsPrev ? prev : merged\n}\n\n/**\n * Same-type, same-key React elements with shallow-equal props count as\n * equal, so a ReactNode field (e.g. `LegendGroup.icon`) re-created inline on\n * every render (`icon={<MyIcon />}`) doesn't look \"changed\" on every sync. A\n * different `key` is treated as a real change, same as a different type.\n */\nfunction reactElementEqual(a: unknown, b: unknown): boolean {\n if (!isValidElement(a) || !isValidElement(b)) return false\n if (a.type !== b.type || a.key !== b.key) return false\n return shallowEqualEntity(\n a.props as Record<string, unknown>,\n b.props as Record<string, unknown>,\n )\n}\n\n/**\n * Shallow equality over the union of both objects' keys — `Object.is` per\n * value, except React elements, which fall back to {@link reactElementEqual}.\n */\nfunction shallowEqualEntity<T extends object>(a: T, b: T): boolean {\n const keys = new Set([...Object.keys(a), ...Object.keys(b)]) as Set<keyof T>\n for (const key of keys) {\n if (Object.is(a[key], b[key])) continue\n if (!reactElementEqual(a[key], b[key])) return false\n }\n return true\n}\n\n/**\n * Reassign `order` to dense indexes `0..n-1` within each sibling bucket,\n * sorted by current order with ties broken by input position. This is the\n * only boundary where external (possibly duplicated) orders enter, so the\n * stored orders stay dense and unique within each bucket.\n */\nfunction normalizeOrders<T extends { order: number }>(\n entries: { merged: T; index: number }[],\n bucketOf: (e: T) => string | undefined,\n): void {\n const buckets = new Map<string | undefined, { merged: T; index: number }[]>()\n for (const entry of entries) {\n const key = bucketOf(entry.merged)\n const bucket = buckets.get(key)\n if (bucket) bucket.push(entry)\n else buckets.set(key, [entry])\n }\n for (const bucket of buckets.values()) {\n bucket\n .sort((a, b) => a.merged.order - b.merged.order || a.index - b.index)\n .forEach((entry, i) => {\n entry.merged.order = i\n })\n }\n}\n\n/**\n * Seed/merge one layer: static fields follow the input; interactive state\n * (`visible`/`opacity`/`collapsed`/`order`/`collapsedBeforeHide` + section\n * actives) sticks to the store entry when present. Shared by `_sync` (per\n * entry) and the imperative `setLegendLayer`.\n */\nfunction mergeLayerEntity(\n prev: LegendLayer | undefined,\n input: LegendLayerInput,\n fallbackOrder: number,\n): LegendLayer {\n return {\n ...input,\n visible: prev?.visible ?? input.visible ?? true,\n opacity: prev?.opacity ?? input.opacity ?? 1,\n collapsed: prev?.collapsed ?? input.collapsed ?? false,\n collapsedBeforeHide: prev?.collapsedBeforeHide,\n sections: mergeSections(prev?.sections, input.sections),\n order: prev?.order ?? input.order ?? fallbackOrder,\n } as LegendLayer\n}\n\n/**\n * Group counterpart of {@link mergeLayerEntity}. A group with no `prev`\n * state (first sync) defaults collapsed when none of its member layers is\n * visible yet — `hasVisibleLayer` is ignored once the group exists so a\n * user's manual expand/collapse always sticks.\n *\n * Only the declarative sync passes a meaningful `hasVisibleLayer` — it sees\n * the whole batch. The imperative path passes `true`; see\n * {@link upsertGroupState}.\n */\nfunction mergeGroupEntity(\n prev: LegendGroup | undefined,\n input: LegendGroupInput,\n fallbackOrder: number,\n hasVisibleLayer: boolean,\n): LegendGroup {\n return {\n ...input,\n collapsed: prev?.collapsed ?? input.collapsed ?? !hasVisibleLayer,\n collapsedBeforeHide: prev?.collapsedBeforeHide,\n order: prev?.order ?? input.order ?? fallbackOrder,\n } as LegendGroup\n}\n\n/**\n * Merge incoming definitions while preserving interactive state of known\n * entities: static fields (name, subtitle, variables, attributes, …) follow\n * the props; `visible`/`opacity`/`collapsed`/`order` stick to what's in the\n * store. New entities are seeded; vanished ones are dropped. Sibling orders\n * are normalized to dense indexes.\n *\n * Unchanged entities keep their previous object identity (`variables`\n * compared by reference), and when nothing changed at all the sync is a\n * no-op (`{}`), so stable consumer props never produce a state update.\n */\nfunction syncState(\n state: LegendState,\n layerInputs: LegendLayerInput[],\n groupInputs: LegendGroupInput[],\n): Partial<LegendState> {\n const layerEntries = layerInputs.map((input, index) => ({\n index,\n merged: mergeLayerEntity(state.layers[input.id], input, index),\n }))\n normalizeOrders(layerEntries, (l) => l.groupId)\n\n const groupsWithVisibleLayer = new Set(\n layerEntries\n .filter(({ merged }) => merged.visible && merged.groupId != null)\n .map(({ merged }) => merged.groupId!),\n )\n const groupEntries = groupInputs.map((input, index) => ({\n index,\n merged: mergeGroupEntity(\n state.groups[input.id],\n input,\n index,\n groupsWithVisibleLayer.has(input.id),\n ),\n }))\n normalizeOrders(groupEntries, () => undefined)\n\n // Reference preservation: reuse the previous entity object when nothing\n // about it changed, so subscribers see stable identities.\n let layersChanged = layerEntries.length !== Object.keys(state.layers).length\n const layers: Record<string, LegendLayer> = {}\n for (const { merged } of layerEntries) {\n const prev = state.layers[merged.id]\n if (prev && shallowEqualEntity(prev, merged)) {\n layers[merged.id] = prev\n } else {\n layers[merged.id] = merged\n layersChanged = true\n }\n }\n\n let groupsChanged = groupEntries.length !== Object.keys(state.groups).length\n const groups: Record<string, LegendGroup> = {}\n for (const { merged } of groupEntries) {\n const prev = state.groups[merged.id]\n if (prev && shallowEqualEntity(prev, merged)) {\n groups[merged.id] = prev\n } else {\n groups[merged.id] = merged\n groupsChanged = true\n }\n }\n\n if (!layersChanged && !groupsChanged) return {}\n return {\n layers: layersChanged ? layers : state.layers,\n groups: groupsChanged ? groups : state.groups,\n }\n}\n\n/**\n * Rebuild a layer/group record from a candidate map, normalizing dense order\n * per bucket and preserving the previous object identity for entries that are\n * unchanged. Returns `null` when nothing changed (so callers can bail with\n * `{}`).\n */\nfunction rebuildRecord<\n T extends { id: string; order: number; groupId?: string },\n>(\n prev: Record<string, T>,\n next: Record<string, T>,\n bucketOf: (e: T) => string | undefined,\n): Record<string, T> | null {\n const entries = Object.values(next).map((e, index) => ({\n index,\n merged: { ...e },\n }))\n normalizeOrders(entries, bucketOf)\n let changed = entries.length !== Object.keys(prev).length\n const out: Record<string, T> = {}\n for (const { merged } of entries) {\n const before = prev[merged.id]\n if (before && shallowEqualEntity(before, merged)) {\n out[merged.id] = before\n } else {\n out[merged.id] = merged\n changed = true\n }\n }\n return changed ? out : null\n}\n\n/** Add or update a single layer (imperative `setLegendLayer`). */\nfunction upsertLayerState(\n state: LegendState,\n input: LegendLayerInput,\n): Partial<LegendState> {\n const siblingCount = Object.values(state.layers).filter(\n (l) => l.groupId === input.groupId && l.id !== input.id,\n ).length\n const merged = mergeLayerEntity(state.layers[input.id], input, siblingCount)\n const layers = rebuildRecord(\n state.layers,\n { ...state.layers, [input.id]: merged },\n (l) => l.groupId,\n )\n return layers ? { layers } : {}\n}\n\n/** Remove a single layer, re-densifying its sibling orders. */\nfunction removeLayerState(\n state: LegendState,\n id: string,\n): Partial<LegendState> {\n if (!state.layers[id]) return {}\n const next = { ...state.layers }\n delete next[id]\n const layers = rebuildRecord(state.layers, next, (l) => l.groupId)\n return layers ? { layers } : {}\n}\n\n/**\n * Add or update a single group (imperative `setLegendGroup`).\n *\n * This sees one group against whatever layers happen to be registered, and\n * group-before-layer is a legitimate order — so inferring \"nothing visible\"\n * from that partial view seeded `collapsed: true`, which then won every\n * later merge through `prev?.collapsed`. Default is expanded unless the\n * input says otherwise; the visibility-based default stays in\n * {@link syncState}, which knows the full batch.\n */\nfunction upsertGroupState(\n state: LegendState,\n input: LegendGroupInput,\n): Partial<LegendState> {\n const count = Object.values(state.groups).filter(\n (g) => g.id !== input.id,\n ).length\n const merged = mergeGroupEntity(\n state.groups[input.id],\n input,\n count,\n // Never infer collapsed from a partial view of the members.\n true,\n )\n const groups = rebuildRecord(\n state.groups,\n { ...state.groups, [input.id]: merged },\n () => undefined,\n )\n return groups ? { groups } : {}\n}\n\n/**\n * Remove a group; its member layers are un-grouped (`groupId` cleared) so they\n * survive as ungrouped rows. Re-densifies both group and layer orders.\n */\nfunction removeGroupState(\n state: LegendState,\n id: string,\n): Partial<LegendState> {\n if (!state.groups[id]) return {}\n const nextGroups = { ...state.groups }\n delete nextGroups[id]\n const groups = rebuildRecord(state.groups, nextGroups, () => undefined)\n\n const members = Object.values(state.layers).filter((l) => l.groupId === id)\n if (members.length === 0) return groups ? { groups } : {}\n\n const nextLayers = { ...state.layers }\n for (const member of members) {\n nextLayers[member.id] = { ...member, groupId: undefined }\n }\n const layers = rebuildRecord(state.layers, nextLayers, (l) => l.groupId)\n return {\n ...(groups ? { groups } : {}),\n ...(layers ? { layers } : {}),\n }\n}\n\n// ─── Store factory ────────────────────────────────────────────────────────────\n\n/**\n * @internal — used by Provider; not part of the public API.\n *\n * @experimental This API is new and may change in a future release.\n */\nexport function createLegendStore(\n id: string,\n init: LegendInit = {},\n): LegendStoreApi {\n // Seed through the same merge/normalize path as `_sync`, so a later sync\n // with identical input is a guaranteed no-op (stable identities).\n const seeded = syncState(\n { layers: {}, groups: {} } as LegendState,\n init.layers ?? [],\n init.groups ?? [],\n )\n\n return createStore<LegendState>()(\n devtools(\n (set) => ({\n layers: seeded.layers ?? {},\n groups: seeded.groups ?? {},\n\n setVisibility: (lid, visible) =>\n set(\n (s) => {\n const layer = s.layers[lid]\n const patch = layer && visibilityPatch(layer, visible)\n return patch ? updateLayer(s, lid, patch) : {}\n },\n false,\n 'setVisibility',\n ),\n setOpacity: (lid, opacity) =>\n set(\n (s) => updateLayer(s, lid, { opacity: clamp01(opacity) }),\n false,\n 'setOpacity',\n ),\n setCollapsed: (lid, collapsed) =>\n set(\n (s) => {\n const layer = s.layers[lid]\n return layer\n ? updateLayer(s, lid, collapsePatch(layer, collapsed))\n : {}\n },\n false,\n 'setCollapsed',\n ),\n setSectionValue: (lid, sectionId, value) =>\n set(\n (s) => {\n const layer = s.layers[lid]\n const section = layer?.sections?.find((x) => x.id === sectionId)\n if (\n !layer?.sections ||\n !section ||\n section.active === value ||\n !section.options.includes(value)\n ) {\n return {}\n }\n const sections = layer.sections.map((x) =>\n x.id === sectionId ? { ...x, active: value } : x,\n )\n return updateLayer(s, lid, { sections })\n },\n false,\n 'setSectionValue',\n ),\n\n moveLayer: (lid, toIndex) =>\n set(\n (s) => {\n const layer = s.layers[lid]\n if (!layer) return {}\n const bucket = selectLayersByGroup(s, layer.groupId)\n const orders = movePatch(bucket, lid, toIndex)\n if (!orders) return {}\n const layers = { ...s.layers }\n for (const [id, order] of orders) {\n layers[id] = { ...layers[id]!, order }\n }\n return { layers }\n },\n false,\n 'moveLayer',\n ),\n\n setGroupVisibility: (gid, visible) =>\n set(\n (s) => {\n const group = s.groups[gid]\n if (!group) return {}\n const members = Object.values(s.layers).filter(\n (l) => l.groupId === gid,\n )\n const anyVisible = members.some((l) => l.visible)\n // Idempotence on the derived state: hide needs a visible member,\n // show needs a fully-hidden group (mixed acts in both directions\n // except show-from-mixed still shows the hidden remainder).\n if (members.length === 0 || (!visible && !anyVisible)) return {}\n\n // Cascade: each member runs the standard visibility↔collapse\n // coupling, so per-layer collapse snapshots survive a group\n // hide/show; members already at the target are untouched.\n const layers = { ...s.layers }\n let layersChanged = false\n for (const member of members) {\n const patch = visibilityPatch(member, visible)\n if (patch) {\n layers[member.id] = { ...member, ...patch }\n layersChanged = true\n }\n }\n if (!layersChanged) return {}\n\n // Group-level collapse coupling, only on real derived\n // transitions: any-visible→hidden snapshots + collapses;\n // hidden→visible restores the snapshot.\n let groupPatch: Partial<LegendGroup> | null = null\n if (!visible && anyVisible) {\n groupPatch = {\n collapsed: true,\n collapsedBeforeHide: group.collapsed,\n }\n } else if (visible && !anyVisible) {\n groupPatch = {\n collapsed: group.collapsedBeforeHide ?? false,\n collapsedBeforeHide: undefined,\n }\n }\n return {\n layers,\n ...(groupPatch\n ? {\n groups: {\n ...s.groups,\n [gid]: { ...group, ...groupPatch },\n },\n }\n : {}),\n }\n },\n false,\n 'setGroupVisibility',\n ),\n setGroupCollapsed: (gid, collapsed) =>\n set(\n (s) => {\n const group = s.groups[gid]\n if (!group) return {}\n // Group visibility is derived from members; while the group is\n // hidden the snapshot follows the manual choice (layer parity).\n const members = Object.values(s.layers).filter(\n (l) => l.groupId === gid,\n )\n const hidden =\n members.length > 0 && members.every((l) => !l.visible)\n return updateGroup(\n s,\n gid,\n hidden\n ? { collapsed, collapsedBeforeHide: collapsed }\n : { collapsed },\n )\n },\n false,\n 'setGroupCollapsed',\n ),\n\n moveGroup: (gid, toIndex) =>\n set(\n (s) => {\n if (!s.groups[gid]) return {}\n const orders = movePatch(selectOrderedGroups(s), gid, toIndex)\n if (!orders) return {}\n const groups = { ...s.groups }\n for (const [id, order] of orders) {\n groups[id] = { ...groups[id]!, order }\n }\n return { groups }\n },\n false,\n 'moveGroup',\n ),\n\n setLegendLayer: (input) =>\n set((s) => upsertLayerState(s, input), false, 'setLegendLayer'),\n removeLegendLayer: (lid) =>\n set((s) => removeLayerState(s, lid), false, 'removeLegendLayer'),\n setLegendGroup: (input) =>\n set((s) => upsertGroupState(s, input), false, 'setLegendGroup'),\n removeLegendGroup: (gid) =>\n set((s) => removeGroupState(s, gid), false, 'removeLegendGroup'),\n\n _sync: (layerInputs, groupInputs) =>\n set((s) => syncState(s, layerInputs, groupInputs), false, '_sync'),\n }),\n { name: `legend-${id}`, enabled: isDev() },\n ),\n )\n}\n\n// ─── Registry ───────────────────────────────────────────────────────────────\n\n/** @experimental This API is new and may change in a future release. */\nexport function getLegendStore(id: string): LegendStoreApi {\n const store = legendStores.get(id)\n if (!store) throw new Error(`[legend] Legend store \"${id}\" not found.`)\n return store\n}\n\n/** @experimental This API is new and may change in a future release. */\nexport function hasLegendStore(id: string): boolean {\n return legendStores.has(id)\n}\n\n/** @experimental This API is new and may change in a future release. */\nexport function deleteLegendStore(id: string): void {\n legendStores.delete(id)\n}\n\n/** @experimental This API is new and may change in a future release. */\nexport function clearAllLegendStores(): void {\n legendStores.clear()\n legendMountCounts.clear()\n warnedDuplicates.clear()\n}\n\n/**\n * @internal — used by Provider's lazy init so children can resolve the store first render.\n *\n * @experimental This API is new and may change in a future release.\n */\nexport function setLegendStoreEntry(id: string, store: LegendStoreApi): void {\n legendStores.set(id, store)\n}\n\n/**\n * @internal — registers a Provider mount and warns on duplicate ids in dev.\n *\n * @experimental This API is new and may change in a future release.\n */\nexport function registerLegendStore(id: string, store: LegendStoreApi): void {\n legendStores.set(id, store)\n const count = (legendMountCounts.get(id) ?? 0) + 1\n legendMountCounts.set(id, count)\n if (count > 1 && isDev() && !warnedDuplicates.has(id)) {\n // eslint-disable-next-line no-console\n console.warn(\n `[legend] Duplicate <Legend.Provider id=\"${id}\"> detected. ` +\n `Multiple providers sharing an id will race on prop sync. ` +\n `Use unique ids per legend panel.`,\n )\n warnedDuplicates.add(id)\n }\n}\n\n/**\n * @internal — Provider unmount counterpart; removes the entry on last unmount.\n *\n * @experimental This API is new and may change in a future release.\n */\nexport function unregisterLegendStore(\n id: string,\n options: { keepAlive: boolean },\n): void {\n const count = (legendMountCounts.get(id) ?? 1) - 1\n if (count <= 0) {\n legendMountCounts.delete(id)\n if (!options.keepAlive) legendStores.delete(id)\n } else {\n legendMountCounts.set(id, count)\n }\n}\n\n// ─── Hooks ────────────────────────────────────────────────────────────────────\n\n/** @experimental This API is new and may change in a future release. */\nexport function useLegendStore<T>(\n id: string,\n selector: (state: LegendState) => T,\n): T {\n const store = getLegendStore(id) as unknown as StoreApi<LegendState>\n return useStore(store, selector)\n}\n\n/** @experimental This API is new and may change in a future release. */\nexport function useLegendShallow<T>(\n id: string,\n selector: (state: LegendState) => T,\n): T {\n const store = getLegendStore(id) as unknown as StoreApi<LegendState>\n return useStore(store, useShallow(selector))\n}\n"],"mappings":"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"}
@@ -0,0 +1,146 @@
1
+ import { c as e } from "react/compiler-runtime";
2
+ import { IconButton as t, alpha as n } from "@mui/material";
3
+ import { jsx as r } from "react/jsx-runtime";
4
+ import { ContentCopyOutlined as i } from "@mui/icons-material";
5
+ import { copy as a } from "@carto/ps-utils";
6
+ //#region src/components/copy-button/copy-button.tsx
7
+ function o(n) {
8
+ let o = e(17), s, c, l, u, d;
9
+ o[0] === n ? (s = o[1], c = o[2], l = o[3], u = o[4], d = o[5]) : ({copyText: c, onSuccess: u, onError: l, "aria-label": s, ...d} = n, o[0] = n, o[1] = s, o[2] = c, o[3] = l, o[4] = u, o[5] = d);
10
+ let f;
11
+ o[6] !== c || o[7] !== l || o[8] !== u ? (f = async function() {
12
+ try {
13
+ await a(c), u?.();
14
+ } catch (e) {
15
+ l?.(e);
16
+ }
17
+ }, o[6] = c, o[7] = l, o[8] = u, o[9] = f) : f = o[9];
18
+ let p = f, m;
19
+ o[10] === p ? m = o[11] : (m = () => void p(), o[10] = p, o[11] = m);
20
+ let h = s ?? "Copy", g;
21
+ o[12] === Symbol.for("react.memo_cache_sentinel") ? (g = /* @__PURE__ */ r(i, { fontSize: "small" }), o[12] = g) : g = o[12];
22
+ let _;
23
+ return o[13] !== d || o[14] !== m || o[15] !== h ? (_ = /* @__PURE__ */ r(t, {
24
+ size: "small",
25
+ onClick: m,
26
+ "aria-label": h,
27
+ ...d,
28
+ children: g
29
+ }), o[13] = d, o[14] = m, o[15] = h, o[16] = _) : _ = o[16], _;
30
+ }
31
+ //#endregion
32
+ //#region src/components/lasso-tool/styles.ts
33
+ function s(...e) {
34
+ return e.flat().filter((e) => !!e && e !== !0);
35
+ }
36
+ var c = "calc(100dvh - 96px)", l = {
37
+ container: {
38
+ display: "flex",
39
+ flexDirection: "row",
40
+ alignItems: "center",
41
+ justifyContent: "flex-start",
42
+ overflow: "hidden",
43
+ width: "fit-content",
44
+ "&.inline": {
45
+ flexDirection: "column",
46
+ alignItems: "flex-start",
47
+ gap: ({ spacing: e }) => e(1),
48
+ "& > * + *": {
49
+ borderTop: 1,
50
+ borderColor: "divider",
51
+ paddingTop: ({ spacing: e }) => e(1)
52
+ }
53
+ }
54
+ },
55
+ actions: { icon: {
56
+ width: ({ spacing: e }) => e(4),
57
+ height: ({ spacing: e }) => e(4),
58
+ borderRadius: 0,
59
+ ".MuiTouchRipple-ripple .MuiTouchRipple-child": { borderRadius: 0 }
60
+ } },
61
+ options: {
62
+ paper: { "&.MuiMenu-paper": { maxHeight: c } },
63
+ menu: {
64
+ "&.MuiMenu-list": { maxHeight: c },
65
+ paddingY: ({ spacing: e }) => e(1),
66
+ "&.inline": {
67
+ boxShadow: "none",
68
+ backgroundColor: "transparent",
69
+ borderRadius: ({ spacing: e }) => e(.5),
70
+ "& .MuiDivider-root": {
71
+ height: ({ spacing: e }) => e(4),
72
+ "&.MuiToggleButtonGroup-groupedHorizontal": { height: ({ spacing: e }) => e(4) },
73
+ "&.MuiToggleButtonGroup-groupedVertical": {
74
+ height: "auto",
75
+ width: ({ spacing: e }) => e(4),
76
+ margin: ({ spacing: e }) => `${e(.5, 0, 1)} !important`,
77
+ borderRadius: "0 !important"
78
+ }
79
+ },
80
+ "& .MuiToggleButton-sizeSmall": {
81
+ margin: 0,
82
+ "&.MuiToggleButtonGroup-grouped:not(.MuiDivider-root)": { margin: 0 },
83
+ "& + .MuiDivider-root.MuiToggleButtonGroup-groupedHorizontal": { height: ({ spacing: e }) => e(3) },
84
+ "& + .MuiDivider-root.MuiToggleButtonGroup-groupedVertical": {
85
+ height: "auto",
86
+ width: ({ spacing: e }) => e(3)
87
+ }
88
+ },
89
+ ".MuiToggleButtonGroup-grouped:not(.MuiDivider-root)": {
90
+ margin: 0,
91
+ "&:first-of-type": { marginLeft: 0 },
92
+ "&:not(:last-of-type)": { marginRight: ({ spacing: e }) => e(.5) }
93
+ },
94
+ "&.MuiToggleButtonGroup-horizontal:not(.MuiDivider-root)": { ".MuiToggleButtonGroup-grouped": { margin: ({ spacing: e }) => e(0, .5) } },
95
+ "&.MuiToggleButtonGroup-vertical:not(.MuiDivider-root)": { ".MuiToggleButtonGroup-grouped": {
96
+ margin: ({ spacing: e }) => e(0, 0, .5),
97
+ "&:not(:last-of-type)": { marginRight: 0 },
98
+ "&:last-of-type": { marginBottom: 0 }
99
+ } }
100
+ }
101
+ },
102
+ icon: {
103
+ borderRadius: 0,
104
+ width: ({ spacing: e }) => e(3)
105
+ },
106
+ title: {
107
+ paddingX: ({ spacing: e }) => e(2),
108
+ paddingBottom: ({ spacing: e }) => e(.5),
109
+ "&.inline": {
110
+ paddingX: 0,
111
+ paddingBottom: 0
112
+ }
113
+ },
114
+ icons: { color: ({ palette: e }) => e.text.primary },
115
+ tag: {
116
+ borderRadius: ({ spacing: e }) => e(.25),
117
+ border: "1px solid",
118
+ borderColor: ({ palette: e }) => e.primary.main,
119
+ paddingX: ({ spacing: e }) => e(.5),
120
+ color: ({ palette: e }) => e.primary.main,
121
+ backgroundColor: ({ palette: e }) => n(e.primary.main, .08)
122
+ },
123
+ more: { width: ({ spacing: e }) => e(4) }
124
+ },
125
+ chip: {
126
+ container: {
127
+ display: "flex",
128
+ flexDirection: "row",
129
+ alignItems: "center",
130
+ gap: ({ spacing: e }) => e(.5),
131
+ overflowX: "auto",
132
+ scrollbarWidth: "none",
133
+ paddingX: ({ spacing: e }) => e(1),
134
+ "&.inline": {
135
+ overflowX: "visible",
136
+ flexWrap: "wrap"
137
+ }
138
+ },
139
+ chip: { marginRight: ({ spacing: e }) => e(.5) },
140
+ disabled: { opacity: ({ palette: e }) => e.action.disabledOpacity }
141
+ }
142
+ };
143
+ //#endregion
144
+ export { l as n, o as r, s as t };
145
+
146
+ //# sourceMappingURL=styles-BCEBm7xh.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles-BCEBm7xh.js","names":["{\n copyText,\n onSuccess,\n onError,\n 'aria-label': ariaLabel,\n ...props\n}: CopyButtonProps","async function onCopy() {\n try {\n await copy(copyText)\n onSuccess?.()\n } catch (err) {\n onError?.(err as Error)\n }\n }","err","() => void onCopy()","<ContentCopyOutlined fontSize='small' />","<IconButton\n size='small'\n onClick={() => void onCopy()}\n aria-label={ariaLabel ?? 'Copy'}\n {...props}\n >\n <ContentCopyOutlined fontSize='small' />\n </IconButton>","ariaLabel ?? 'Copy'"],"sources":["../src/components/copy-button/copy-button.tsx","../src/components/lasso-tool/styles.ts"],"sourcesContent":["import { IconButton } from '@mui/material'\nimport { ContentCopyOutlined } from '@mui/icons-material'\nimport type { CopyButtonProps } from './types'\nimport { copy } from '@carto/ps-utils'\n\nexport function CopyButton({\n copyText,\n onSuccess,\n onError,\n 'aria-label': ariaLabel,\n ...props\n}: CopyButtonProps) {\n async function onCopy() {\n try {\n await copy(copyText)\n onSuccess?.()\n } catch (err) {\n onError?.(err as Error)\n }\n }\n return (\n <IconButton\n size='small'\n onClick={() => void onCopy()}\n aria-label={ariaLabel ?? 'Copy'}\n {...props}\n >\n <ContentCopyOutlined fontSize='small' />\n </IconButton>\n )\n}\n","import { alpha, type SxProps, type Theme } from '@mui/material'\n\ntype SxEntry = Exclude<\n NonNullable<SxProps<Theme>>,\n readonly unknown[] | boolean\n>\n\n/**\n * Merges a component's own `sx` with the caller's. Needed because `SxProps` is\n * not always an object — a function or an array is silently dropped by an\n * object spread — and MUI's array form rejects falsy entries.\n */\nexport function mergeSx(...values: (SxProps<Theme> | undefined)[]): SxEntry[] {\n return values\n .flat()\n .filter((entry): entry is SxEntry => !!entry && entry !== true)\n}\n\n/**\n * Ceiling for the options menu, replacing the design system's fixed 312px.\n * `dvh` so it follows the mobile address bar.\n *\n * The 96px gutter is MUI's own allowance, and it is not decorative: MUI's\n * Popover measures the paper mid-`Grow` (at scale 0.75), underestimates its\n * height and then fails to shift it up, so a taller ceiling overflows the\n * bottom of a short viewport and the last entries become unreachable — with a\n * 32px gutter, \"Layer filters\" landed off-screen on a 420px-tall window. This\n * leaves room for the anchor offset instead. The whole menu fits from a 511px\n * viewport up and scrolls below that.\n */\nconst MENU_MAX_HEIGHT = 'calc(100dvh - 96px)'\n\nexport const styles = {\n container: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'flex-start',\n overflow: 'hidden',\n width: 'fit-content',\n\n '&.inline': {\n flexDirection: 'column',\n alignItems: 'flex-start',\n gap: ({ spacing }) => spacing(1),\n // Horizontal separators between compound blocks. Blocks own no\n // `<Divider flexItem />` — omitting/reordering never orphans or doubles\n // rules. Vertical Dividers inside Modes/Actions stay in those blocks.\n '& > * + *': {\n borderTop: 1,\n borderColor: 'divider',\n paddingTop: ({ spacing }) => spacing(1),\n },\n },\n },\n actions: {\n icon: {\n width: ({ spacing }) => spacing(4),\n height: ({ spacing }) => spacing(4),\n borderRadius: 0,\n '.MuiTouchRipple-ripple .MuiTouchRipple-child': {\n borderRadius: 0,\n },\n },\n },\n options: {\n // The design system caps menus and their lists at 312px (\"defined by\n // design\"), but this menu is not a plain option list — interaction mode,\n // drawing tools, selection tools and layer filters add up to 415px, so the\n // last entries fell behind an unannounced scroll. Both the paper and the\n // list carry the cap, and the DS selectors are self-qualified (0,2,0), so\n // these have to be too.\n paper: { '&.MuiMenu-paper': { maxHeight: MENU_MAX_HEIGHT } },\n menu: {\n '&.MuiMenu-list': { maxHeight: MENU_MAX_HEIGHT },\n paddingY: ({ spacing }) => spacing(1),\n '&.inline': {\n boxShadow: 'none',\n backgroundColor: 'transparent',\n borderRadius: ({ spacing }) => spacing(0.5),\n\n '& .MuiDivider-root': {\n height: ({ spacing }) => spacing(4),\n\n '&.MuiToggleButtonGroup-groupedHorizontal': {\n height: ({ spacing }) => spacing(4),\n },\n '&.MuiToggleButtonGroup-groupedVertical': {\n height: 'auto',\n width: ({ spacing }) => spacing(4),\n margin: ({ spacing }) => `${spacing(0.5, 0, 1)} !important`,\n borderRadius: '0 !important',\n },\n },\n\n '& .MuiToggleButton-sizeSmall': {\n margin: 0,\n\n '&.MuiToggleButtonGroup-grouped:not(.MuiDivider-root)': {\n margin: 0,\n },\n '& + .MuiDivider-root.MuiToggleButtonGroup-groupedHorizontal': {\n height: ({ spacing }) => spacing(3),\n },\n '& + .MuiDivider-root.MuiToggleButtonGroup-groupedVertical': {\n height: 'auto',\n width: ({ spacing }) => spacing(3),\n },\n },\n\n '.MuiToggleButtonGroup-grouped:not(.MuiDivider-root)': {\n margin: 0,\n\n '&:first-of-type': {\n marginLeft: 0,\n },\n '&:not(:last-of-type)': {\n marginRight: ({ spacing }) => spacing(0.5),\n },\n },\n '&.MuiToggleButtonGroup-horizontal:not(.MuiDivider-root)': {\n '.MuiToggleButtonGroup-grouped': {\n margin: ({ spacing }) => spacing(0, 0.5),\n },\n },\n '&.MuiToggleButtonGroup-vertical:not(.MuiDivider-root)': {\n '.MuiToggleButtonGroup-grouped': {\n margin: ({ spacing }) => spacing(0, 0, 0.5),\n\n '&:not(:last-of-type)': {\n marginRight: 0,\n },\n '&:last-of-type': {\n marginBottom: 0,\n },\n },\n },\n },\n },\n icon: {\n borderRadius: 0,\n width: ({ spacing }) => spacing(3),\n },\n title: {\n paddingX: ({ spacing }) => spacing(2),\n paddingBottom: ({ spacing }) => spacing(0.5),\n\n '&.inline': {\n paddingX: 0,\n paddingBottom: 0,\n },\n },\n icons: {\n color: ({ palette }) => palette.text.primary,\n },\n tag: {\n borderRadius: ({ spacing }) => spacing(0.25),\n border: '1px solid',\n borderColor: ({ palette }) => palette.primary.main,\n paddingX: ({ spacing }) => spacing(0.5),\n color: ({ palette }) => palette.primary.main,\n backgroundColor: ({ palette }) => alpha(palette.primary.main, 0.08),\n },\n more: {\n width: ({ spacing }) => spacing(4),\n },\n },\n chip: {\n container: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n gap: ({ spacing }) => spacing(0.5),\n overflowX: 'auto',\n scrollbarWidth: 'none',\n paddingX: ({ spacing }) => spacing(1),\n\n '&.inline': {\n overflowX: 'visible',\n flexWrap: 'wrap',\n },\n },\n chip: {\n marginRight: ({ spacing }) => spacing(0.5),\n },\n disabled: {\n opacity: ({ palette }) => palette.action.disabledOpacity,\n },\n },\n} satisfies Record<string, SxProps<Theme>>\n"],"mappings":"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"}
@@ -1,10 +1,10 @@
1
- import { C as e, S as t, T as n, p as r } from "./stores-tiFePP0A.js";
2
- import { d as i, n as a, t as o } from "./download-DdaK3qgC.js";
1
+ import { C as e, S as t, T as n, p as r } from "./stores-B8CHbgw-.js";
2
+ import { d as i, n as a, t as o } from "./download-Vlzn2jzb.js";
3
3
  import { c as ee } from "react/compiler-runtime";
4
4
  import { Box as s, Checkbox as c, IconButton as l, Skeleton as u, Table as d, TableBody as f, TableCell as p, TableContainer as m, TableHead as h, TablePagination as g, TableRow as _, TableSortLabel as v } from "@mui/material";
5
5
  import { Fragment as y, jsx as b, jsxs as x } from "react/jsx-runtime";
6
6
  import { FirstPage as S, KeyboardArrowLeft as C, KeyboardArrowRight as w, LastPage as T } from "@mui/icons-material";
7
- //#region src/widgets-v2/table/labels.tsx
7
+ //#region src/widgets/table/labels.tsx
8
8
  var E = {
9
9
  fontWeight: 600,
10
10
  color: "text.primary"
@@ -55,7 +55,7 @@ var E = {
55
55
  }
56
56
  };
57
57
  //#endregion
58
- //#region src/widgets-v2/table/table-ui.tsx
58
+ //#region src/widgets/table/table-ui.tsx
59
59
  function j(e) {
60
60
  let t = ee(82), { columns: n, rows: r, total: i, page: a, pageSize: o, pageSizeOptions: l, sort: u, keyColumn: y, selection: S, selectable: C, onSortChange: w, onPageChange: T, onPageSizeChange: E, onSelectionChange: O, onRowClick: j, onRowHover: M, labels: N, emptyContent: P, size: F } = e, I = l === void 0 ? k : l, L = y === void 0 ? "id" : y, R = C !== void 0 && C;
61
61
  process.env.NODE_ENV !== "production" && r.some((e) => e[L] == null) && console.error(`<TableUI>: rows are missing the identity column \`${L}\`. Set the \`keyColumn\` prop to a column present on every row, or add the column to the data.`);
@@ -112,7 +112,7 @@ function j(e) {
112
112
  checked: G,
113
113
  indeterminate: de,
114
114
  onChange: me,
115
- inputProps: { "aria-label": B.selectAll }
115
+ slotProps: { input: { "aria-label": B.selectAll } }
116
116
  })
117
117
  }) : null, t[32] = B, t[33] = G, t[34] = me, t[35] = R, t[36] = de, t[37] = q) : q = t[37];
118
118
  let J;
@@ -160,7 +160,7 @@ function j(e) {
160
160
  onClick: (e) => {
161
161
  e.stopPropagation(), ge(r);
162
162
  },
163
- inputProps: { "aria-label": B.selectRow(r) }
163
+ slotProps: { input: { "aria-label": B.selectRow(r) } }
164
164
  })
165
165
  }) : null, n.map((t) => /* @__PURE__ */ b(p, {
166
166
  align: t.align,
@@ -194,8 +194,8 @@ function j(e) {
194
194
  let { from: t, to: n, count: r } = e;
195
195
  return B.paginationOf(t, n, r);
196
196
  },
197
- ActionsComponent: ae,
198
- sx: A.pagination
197
+ sx: A.pagination,
198
+ ActionsComponent: ae
199
199
  }) : null, t[69] = ae, t[70] = B, t[71] = T, t[72] = E, t[73] = a, t[74] = o, t[75] = I, t[76] = re, t[77] = i, t[78] = $) : $ = t[78];
200
200
  let _e;
201
201
  return t[79] !== Q || t[80] !== $ ? (_e = /* @__PURE__ */ x(s, {
@@ -245,7 +245,7 @@ function ne(e) {
245
245
  };
246
246
  }
247
247
  //#endregion
248
- //#region src/widgets-v2/table/helpers.ts
248
+ //#region src/widgets/table/helpers.ts
249
249
  function M(e, t, n) {
250
250
  if (e == null && t == null) return 0;
251
251
  if (e == null) return 1;
@@ -290,7 +290,7 @@ function z(e) {
290
290
  return e == null ? "" : typeof e == "string" ? e : typeof e == "number" || typeof e == "boolean" ? String(e) : Array.isArray(e) || typeof e == "object" ? JSON.stringify(e) : "";
291
291
  }
292
292
  //#endregion
293
- //#region src/widgets-v2/table/table.tsx
293
+ //#region src/widgets/table/table.tsx
294
294
  function B(i) {
295
295
  let a = ee(59), o, s, c, l, u, d, f, p, m, h, g, _, v;
296
296
  a[0] === i ? (o = a[1], s = a[2], c = a[3], l = a[4], u = a[5], d = a[6], f = a[7], p = a[8], m = a[9], h = a[10], g = a[11], _ = a[12], v = a[13]) : ({columns: o, visibleColumns: v, initialPageSize: h, selection: m, onSelectionChange: d, onRowClick: l, onRowHover: u, remote: g, total: p, onSortChange: f, onPageChange: s, onPageSizeChange: c, ..._} = i, a[0] = i, a[1] = o, a[2] = s, a[3] = c, a[4] = l, a[5] = u, a[6] = d, a[7] = f, a[8] = p, a[9] = m, a[10] = h, a[11] = g, a[12] = _, a[13] = v);
@@ -372,7 +372,7 @@ function re(e) {
372
372
  return e.data;
373
373
  }
374
374
  //#endregion
375
- //#region src/widgets-v2/table/skeleton.tsx
375
+ //#region src/widgets/table/skeleton.tsx
376
376
  function ie(e) {
377
377
  let t = ee(11), { rows: n, columns: r, size: i } = e, a = n === void 0 ? 5 : n, o = r === void 0 ? 4 : r, c;
378
378
  t[0] === o ? c = t[1] : (c = /* @__PURE__ */ b(h, { children: /* @__PURE__ */ b(_, { children: Array.from({ length: o }).map(ae) }) }), t[0] = o, t[1] = c);
@@ -410,7 +410,7 @@ function ae(e, t) {
410
410
  }, `head-${t}`);
411
411
  }
412
412
  //#endregion
413
- //#region src/widgets-v2/table/download.ts
413
+ //#region src/widgets/table/download.ts
414
414
  function V(e) {
415
415
  let t = [];
416
416
  return e.getCaptureEl && t.push(a({
@@ -424,7 +424,7 @@ function V(e) {
424
424
  })), t;
425
425
  }
426
426
  //#endregion
427
- //#region src/widgets-v2/table/transforms.ts
427
+ //#region src/widgets/table/transforms.ts
428
428
  function oe(e, t, n = "id") {
429
429
  if (t.length === 0 || !Array.isArray(e)) return e;
430
430
  let r = new Set(t);
@@ -437,4 +437,4 @@ function oe(e, t, n = "id") {
437
437
  //#endregion
438
438
  export { M as a, F as c, j as d, O as f, B as i, N as l, D as m, V as n, I as o, k as p, ie as r, P as s, oe as t, L as u };
439
439
 
440
- //# sourceMappingURL=table-Bx9Uj3U0.js.map
440
+ //# sourceMappingURL=table-BE4uO9pp.js.map