@carto/ps-react-ui 4.19.0 → 4.20.1

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 (416) hide show
  1. package/dist/actions-DKX98LlI.js +1318 -0
  2. package/dist/actions-DKX98LlI.js.map +1 -0
  3. package/dist/actions-Dy9JVr7F.js +1004 -0
  4. package/dist/actions-Dy9JVr7F.js.map +1 -0
  5. package/dist/category-DHZscHaS.js +826 -0
  6. package/dist/category-DHZscHaS.js.map +1 -0
  7. package/dist/chart-config-BGt7wkK7.js +108 -0
  8. package/dist/chart-config-BGt7wkK7.js.map +1 -0
  9. package/dist/chat.js +1589 -1711
  10. package/dist/chat.js.map +1 -1
  11. package/dist/cjs-CBrZjPCj.js +75 -0
  12. package/dist/cjs-CBrZjPCj.js.map +1 -0
  13. package/dist/components-DDt4mOQn.js +2403 -0
  14. package/dist/components-DDt4mOQn.js.map +1 -0
  15. package/dist/components.js +5 -1841
  16. package/dist/copy-button-DaQqWVu0.js +25 -0
  17. package/dist/copy-button-DaQqWVu0.js.map +1 -0
  18. package/dist/csv-modifiers-D6HGC24b.js +26 -0
  19. package/dist/csv-modifiers-D6HGC24b.js.map +1 -0
  20. package/dist/download-BT6qBamM.js +232 -0
  21. package/dist/download-BT6qBamM.js.map +1 -0
  22. package/dist/echart-BkaV3V5G.js +133 -0
  23. package/dist/echart-BkaV3V5G.js.map +1 -0
  24. package/dist/echart-DSz2Tu0z.js +250 -0
  25. package/dist/echart-DSz2Tu0z.js.map +1 -0
  26. package/dist/formatter-wVO81tYk.js +6 -0
  27. package/dist/formatter-wVO81tYk.js.map +1 -0
  28. package/dist/formula-Bk9CBzm2.js +190 -0
  29. package/dist/formula-Bk9CBzm2.js.map +1 -0
  30. package/dist/formula-Dsru_p-g.js +285 -0
  31. package/dist/formula-Dsru_p-g.js.map +1 -0
  32. package/dist/hooks-zf5gKZYq.js +22 -0
  33. package/dist/hooks-zf5gKZYq.js.map +1 -0
  34. package/dist/legend/stores.js +2 -24
  35. package/dist/legend.js +2274 -2323
  36. package/dist/legend.js.map +1 -1
  37. package/dist/markdown-DnSJMPjQ.js +165 -0
  38. package/dist/markdown-DnSJMPjQ.js.map +1 -0
  39. package/dist/markdown-content-BzKoX3eu.js +8764 -0
  40. package/dist/markdown-content-BzKoX3eu.js.map +1 -0
  41. package/dist/range-BPWVrAsY.js +277 -0
  42. package/dist/range-BPWVrAsY.js.map +1 -0
  43. package/dist/rolldown-runtime-B0aSnxlc.js +20 -0
  44. package/dist/row-CvVGBuy_.js +35 -0
  45. package/dist/row-CvVGBuy_.js.map +1 -0
  46. package/dist/shared-resize-observer-BEiP2rQt.js +157 -0
  47. package/dist/shared-resize-observer-BEiP2rQt.js.map +1 -0
  48. package/dist/smart-tooltip-CwGHCqab.js +34 -0
  49. package/dist/smart-tooltip-CwGHCqab.js.map +1 -0
  50. package/dist/spread-Dy8pshpN.js +149 -0
  51. package/dist/spread-Dy8pshpN.js.map +1 -0
  52. package/dist/stores-B81-IU1G.js +374 -0
  53. package/dist/stores-B81-IU1G.js.map +1 -0
  54. package/dist/stores-BVFMfgyo.js +248 -0
  55. package/dist/stores-BVFMfgyo.js.map +1 -0
  56. package/dist/styles-Y-qGBELO.js +13 -0
  57. package/dist/styles-Y-qGBELO.js.map +1 -0
  58. package/dist/table-BfTG6rrs.js +439 -0
  59. package/dist/table-BfTG6rrs.js.map +1 -0
  60. package/dist/tooltip-DJUGNZxY.js +23 -0
  61. package/dist/tooltip-DJUGNZxY.js.map +1 -0
  62. package/dist/types/chat/bubbles/chat-agent-message-markdown.d.ts +1 -1
  63. package/dist/types/chat/bubbles/chat-error-message.d.ts +1 -1
  64. package/dist/types/chat/bubbles/chat-suggestion-button.d.ts +1 -1
  65. package/dist/types/chat/bubbles/chat-user-message.d.ts +1 -1
  66. package/dist/types/chat/containers/chat-footer.d.ts +1 -1
  67. package/dist/types/chat/containers/chat-header.d.ts +1 -1
  68. package/dist/types/chat/containers/chat-starter.d.ts +1 -1
  69. package/dist/types/chat/feedback/chat-loader.d.ts +1 -1
  70. package/dist/types/chat/feedback/chat-rating-action.d.ts +1 -1
  71. package/dist/types/chat/feedback/chat-thinking.d.ts +1 -1
  72. package/dist/types/chat/feedback/chat-tool-code-area.d.ts +1 -1
  73. package/dist/types/chat/feedback/chat-tool-full-view-dialog.d.ts +1 -1
  74. package/dist/types/chat/feedback/chat-tool-group.d.ts +1 -1
  75. package/dist/types/chat/feedback/chat-tool-trace.d.ts +2 -2
  76. package/dist/types/components/basemaps/group-wrapper.d.ts +1 -1
  77. package/dist/types/components/basemaps/group.d.ts +1 -1
  78. package/dist/types/components/basemaps/header.d.ts +1 -1
  79. package/dist/types/components/copy-button/copy-button.d.ts +1 -1
  80. package/dist/types/components/lasso-tool/chip.d.ts +1 -1
  81. package/dist/types/components/lasso-tool/icons.d.ts +7 -7
  82. package/dist/types/components/lasso-tool/lasso-tool.d.ts +4 -4
  83. package/dist/types/components/lasso-tool/message.d.ts +1 -1
  84. package/dist/types/components/list-data/list-data-skeleton.d.ts +1 -1
  85. package/dist/types/components/measurement-tools/icons.d.ts +3 -3
  86. package/dist/types/components/no-data-alert/no-data-alert.d.ts +1 -1
  87. package/dist/types/components/responsive-drawer/responsive-drawer.d.ts +1 -1
  88. package/dist/types/components/smart-tooltip/smart-tooltip.d.ts +1 -1
  89. package/dist/types/components/tooltip/tooltip.d.ts +1 -1
  90. package/dist/types/hooks/use-widget-ref.d.ts +2 -1
  91. package/dist/types/legend/components/legend-actions/legend-actions.d.ts +1 -1
  92. package/dist/types/legend/components/legend-category/legend-category-ui.d.ts +1 -1
  93. package/dist/types/legend/components/legend-config-select/legend-config-select.d.ts +1 -1
  94. package/dist/types/legend/components/legend-group/legend-group.d.ts +1 -1
  95. package/dist/types/legend/components/legend-group-menu/legend-group-menu-items.d.ts +4 -4
  96. package/dist/types/legend/components/legend-group-menu/legend-group-menu.d.ts +1 -1
  97. package/dist/types/legend/components/legend-icon/legend-icon-ui.d.ts +1 -1
  98. package/dist/types/legend/components/legend-item/legend-item-ui.d.ts +1 -1
  99. package/dist/types/legend/components/legend-item/legend-item.d.ts +1 -1
  100. package/dist/types/legend/components/legend-opacity/legend-opacity.d.ts +2 -2
  101. package/dist/types/legend/components/legend-overflow-menu/legend-overflow-menu.d.ts +1 -1
  102. package/dist/types/legend/components/legend-panel-menu/legend-panel-menu.d.ts +1 -1
  103. package/dist/types/legend/components/legend-proportion/legend-proportion-ui.d.ts +1 -1
  104. package/dist/types/legend/components/legend-ramp/legend-ramp-ui.d.ts +1 -1
  105. package/dist/types/legend/components/legend-row/legend-row.d.ts +1 -1
  106. package/dist/types/legend/components/legend-row-menu/legend-row-menu-items.d.ts +2 -2
  107. package/dist/types/legend/components/legend-row-menu/legend-row-menu.d.ts +1 -1
  108. package/dist/types/legend/components/legend-row-menu/legend-zoom-to.d.ts +1 -1
  109. package/dist/types/legend/components/legend-sortable/legend-sortable.d.ts +1 -1
  110. package/dist/types/legend/components/legend-swatch/legend-swatch.d.ts +1 -1
  111. package/dist/types/legend/components/legend-visibility-toggle/legend-visibility-toggle.d.ts +1 -1
  112. package/dist/types/legend/components/legend-visible-layers/legend-visible-layers.d.ts +1 -1
  113. package/dist/types/legend/index.d.ts +2 -2
  114. package/dist/types/legend/provider/legend-provider.d.ts +1 -1
  115. package/dist/types/widgets/actions/brush-toggle/brush-toggle.d.ts +1 -1
  116. package/dist/types/widgets/actions/change-column/change-column-icon.d.ts +1 -1
  117. package/dist/types/widgets/actions/change-column/change-column.d.ts +1 -1
  118. package/dist/types/widgets/actions/change-column/sortable-column-item.d.ts +1 -1
  119. package/dist/types/widgets/actions/download/download.d.ts +1 -1
  120. package/dist/types/widgets/actions/fullscreen/fullscreen.d.ts +1 -1
  121. package/dist/types/widgets/actions/lock-selection/lock-selection.d.ts +1 -1
  122. package/dist/types/widgets/actions/relative-data/relative-data.d.ts +1 -1
  123. package/dist/types/widgets/actions/searcher/searcher-toggle.d.ts +1 -1
  124. package/dist/types/widgets/actions/searcher/searcher.d.ts +1 -1
  125. package/dist/types/widgets/actions/stack-toggle/grouped-bar-chart-icon.d.ts +1 -1
  126. package/dist/types/widgets/actions/stack-toggle/stack-toggle.d.ts +1 -1
  127. package/dist/types/widgets/actions/zoom-toggle/zoom-toggle.d.ts +1 -1
  128. package/dist/types/widgets/bar/skeleton.d.ts +1 -1
  129. package/dist/types/widgets/category/category-ui.d.ts +1 -1
  130. package/dist/types/widgets/category/components/category-bar.d.ts +1 -1
  131. package/dist/types/widgets/category/components/category-legend.d.ts +1 -1
  132. package/dist/types/widgets/category/components/category-row-multi.d.ts +1 -1
  133. package/dist/types/widgets/category/components/category-row-other.d.ts +1 -1
  134. package/dist/types/widgets/category/components/category-row-single.d.ts +1 -1
  135. package/dist/types/widgets/category/skeleton.d.ts +1 -1
  136. package/dist/types/widgets/echart/echart-ui.d.ts +1 -1
  137. package/dist/types/widgets/echart/echart.d.ts +1 -1
  138. package/dist/types/widgets/error/error.d.ts +1 -1
  139. package/dist/types/widgets/formula/components/item.d.ts +1 -1
  140. package/dist/types/widgets/formula/components/prefix.d.ts +1 -1
  141. package/dist/types/widgets/formula/components/row.d.ts +1 -1
  142. package/dist/types/widgets/formula/components/series.d.ts +1 -1
  143. package/dist/types/widgets/formula/components/suffix.d.ts +1 -1
  144. package/dist/types/widgets/formula/components/value.d.ts +1 -1
  145. package/dist/types/widgets/formula/formula-ui.d.ts +1 -1
  146. package/dist/types/widgets/formula/skeleton.d.ts +1 -1
  147. package/dist/types/widgets/histogram/skeleton.d.ts +1 -1
  148. package/dist/types/widgets/markdown/markdown-ui.d.ts +1 -1
  149. package/dist/types/widgets/markdown/markdown.d.ts +1 -1
  150. package/dist/types/widgets/markdown/skeleton.d.ts +1 -1
  151. package/dist/types/widgets/no-data/no-data.d.ts +1 -1
  152. package/dist/types/widgets/note/note.d.ts +1 -1
  153. package/dist/types/widgets/pie/skeleton.d.ts +1 -1
  154. package/dist/types/widgets/range/components/range-item.d.ts +1 -1
  155. package/dist/types/widgets/range/range-ui.d.ts +1 -1
  156. package/dist/types/widgets/range/skeleton.d.ts +1 -1
  157. package/dist/types/widgets/scatterplot/skeleton.d.ts +1 -1
  158. package/dist/types/widgets/selection-summary/selection-summary.d.ts +1 -1
  159. package/dist/types/widgets/skeleton-loader/skeleton-loader.d.ts +1 -1
  160. package/dist/types/widgets/spread/components/max-value.d.ts +1 -1
  161. package/dist/types/widgets/spread/components/min-value.d.ts +1 -1
  162. package/dist/types/widgets/spread/components/separator.d.ts +1 -1
  163. package/dist/types/widgets/spread/skeleton.d.ts +1 -1
  164. package/dist/types/widgets/spread/spread-ui.d.ts +1 -1
  165. package/dist/types/widgets/subheader/subheader.d.ts +1 -1
  166. package/dist/types/widgets/table/components/cell-header.d.ts +1 -1
  167. package/dist/types/widgets/table/components/cell.d.ts +1 -1
  168. package/dist/types/widgets/table/components/pagination-actions.d.ts +1 -1
  169. package/dist/types/widgets/table/components/pagination.d.ts +1 -1
  170. package/dist/types/widgets/table/components/row.d.ts +1 -1
  171. package/dist/types/widgets/table/skeleton.d.ts +1 -1
  172. package/dist/types/widgets/table/table-ui.d.ts +2 -2
  173. package/dist/types/widgets/timeseries/skeleton.d.ts +1 -1
  174. package/dist/types/widgets/wrapper/components/actions.d.ts +1 -1
  175. package/dist/types/widgets/wrapper/components/options.d.ts +1 -1
  176. package/dist/types/widgets/wrapper/components/title.d.ts +1 -1
  177. package/dist/types/widgets/wrapper/wrapper-ui.d.ts +1 -1
  178. package/dist/types/widgets/wrapper/wrapper.d.ts +1 -1
  179. package/dist/types/widgets-v2/actions/brush-toggle/brush-toggle.d.ts +1 -1
  180. package/dist/types/widgets-v2/actions/change-column/change-column-icon.d.ts +1 -1
  181. package/dist/types/widgets-v2/actions/change-column/change-column.d.ts +1 -1
  182. package/dist/types/widgets-v2/actions/change-column/sortable-column-item.d.ts +1 -1
  183. package/dist/types/widgets-v2/actions/download/download.d.ts +1 -1
  184. package/dist/types/widgets-v2/actions/download/icons.d.ts +3 -3
  185. package/dist/types/widgets-v2/actions/fullscreen/fullscreen.d.ts +2 -2
  186. package/dist/types/widgets-v2/actions/lock-selection/lock-selection.d.ts +1 -1
  187. package/dist/types/widgets-v2/actions/relative-data/relative-data.d.ts +1 -1
  188. package/dist/types/widgets-v2/actions/searcher/searcher-toggle.d.ts +1 -1
  189. package/dist/types/widgets-v2/actions/searcher/searcher.d.ts +1 -1
  190. package/dist/types/widgets-v2/actions/show-all/show-all.d.ts +1 -1
  191. package/dist/types/widgets-v2/actions/stack-toggle/stack-toggle.d.ts +1 -1
  192. package/dist/types/widgets-v2/actions/zoom-toggle/zoom-toggle.d.ts +1 -1
  193. package/dist/types/widgets-v2/bar/skeleton.d.ts +1 -1
  194. package/dist/types/widgets-v2/category/category-ui.d.ts +1 -1
  195. package/dist/types/widgets-v2/category/category.d.ts +1 -1
  196. package/dist/types/widgets-v2/category/components/category-bar-stacked.d.ts +1 -1
  197. package/dist/types/widgets-v2/category/components/category-bar.d.ts +1 -1
  198. package/dist/types/widgets-v2/category/components/category-legend.d.ts +1 -1
  199. package/dist/types/widgets-v2/category/components/category-row-multi.d.ts +1 -1
  200. package/dist/types/widgets-v2/category/components/category-row-other.d.ts +1 -1
  201. package/dist/types/widgets-v2/category/components/category-row-single.d.ts +1 -1
  202. package/dist/types/widgets-v2/category/components/category-row-stacked.d.ts +1 -1
  203. package/dist/types/widgets-v2/category/skeleton.d.ts +1 -1
  204. package/dist/types/widgets-v2/echart/echart-ui.d.ts +1 -1
  205. package/dist/types/widgets-v2/echart/echart.d.ts +1 -1
  206. package/dist/types/widgets-v2/formula/delta.d.ts +1 -1
  207. package/dist/types/widgets-v2/formula/formula-ui.d.ts +1 -1
  208. package/dist/types/widgets-v2/formula/formula.d.ts +1 -1
  209. package/dist/types/widgets-v2/formula/note.d.ts +1 -1
  210. package/dist/types/widgets-v2/formula/prefix.d.ts +1 -1
  211. package/dist/types/widgets-v2/formula/series.d.ts +1 -1
  212. package/dist/types/widgets-v2/formula/skeleton.d.ts +1 -1
  213. package/dist/types/widgets-v2/formula/suffix.d.ts +1 -1
  214. package/dist/types/widgets-v2/formula/value.d.ts +1 -1
  215. package/dist/types/widgets-v2/histogram/skeleton.d.ts +1 -1
  216. package/dist/types/widgets-v2/index.d.ts +5 -5
  217. package/dist/types/widgets-v2/markdown/markdown-content.d.ts +1 -1
  218. package/dist/types/widgets-v2/markdown/markdown-ui.d.ts +1 -1
  219. package/dist/types/widgets-v2/markdown/markdown.d.ts +1 -1
  220. package/dist/types/widgets-v2/markdown/skeleton.d.ts +1 -1
  221. package/dist/types/widgets-v2/note/widget-note.d.ts +2 -2
  222. package/dist/types/widgets-v2/pie/skeleton.d.ts +1 -1
  223. package/dist/types/widgets-v2/provider/widget-provider.d.ts +1 -1
  224. package/dist/types/widgets-v2/range/range-ui.d.ts +1 -1
  225. package/dist/types/widgets-v2/range/range.d.ts +1 -1
  226. package/dist/types/widgets-v2/range/skeleton.d.ts +1 -1
  227. package/dist/types/widgets-v2/scatterplot/skeleton.d.ts +1 -1
  228. package/dist/types/widgets-v2/selection-summary/selection-summary.d.ts +1 -1
  229. package/dist/types/widgets-v2/spread/band.d.ts +37 -0
  230. package/dist/types/widgets-v2/spread/band.test.d.ts +1 -0
  231. package/dist/types/widgets-v2/spread/index.d.ts +1 -0
  232. package/dist/types/widgets-v2/spread/separator.d.ts +1 -1
  233. package/dist/types/widgets-v2/spread/skeleton.d.ts +1 -1
  234. package/dist/types/widgets-v2/spread/spread-ui.d.ts +1 -1
  235. package/dist/types/widgets-v2/spread/spread.d.ts +1 -1
  236. package/dist/types/widgets-v2/state/widget-state.d.ts +1 -1
  237. package/dist/types/widgets-v2/subheader/subheader.d.ts +1 -1
  238. package/dist/types/widgets-v2/table/skeleton.d.ts +1 -1
  239. package/dist/types/widgets-v2/table/table-ui.d.ts +1 -1
  240. package/dist/types/widgets-v2/table/table.d.ts +1 -1
  241. package/dist/types/widgets-v2/timeseries/skeleton.d.ts +1 -1
  242. package/dist/types/widgets-v2/toolbox/toolbox.d.ts +1 -1
  243. package/dist/types/widgets-v2/wrapper/widget-actions.d.ts +2 -2
  244. package/dist/types/widgets-v2/wrapper/widget-content.d.ts +2 -2
  245. package/dist/types/widgets-v2/wrapper/widget-wrapper.d.ts +1 -1
  246. package/dist/use-widget-selector-VSPhfhNm.js +12 -0
  247. package/dist/{use-widget-selector-DFl2hW0R.js.map → use-widget-selector-VSPhfhNm.js.map} +1 -1
  248. package/dist/utils-DtvTjjMq.js +58 -0
  249. package/dist/utils-DtvTjjMq.js.map +1 -0
  250. package/dist/widget-store-BFPKYm4R.js +187 -0
  251. package/dist/widget-store-BFPKYm4R.js.map +1 -0
  252. package/dist/widgets/actions.js +2 -1317
  253. package/dist/widgets/bar.js +183 -175
  254. package/dist/widgets/bar.js.map +1 -1
  255. package/dist/widgets/category.js +429 -434
  256. package/dist/widgets/category.js.map +1 -1
  257. package/dist/widgets/echart.js +3 -120
  258. package/dist/widgets/error.js +28 -38
  259. package/dist/widgets/error.js.map +1 -1
  260. package/dist/widgets/formula.js +3 -123
  261. package/dist/widgets/histogram.js +183 -202
  262. package/dist/widgets/histogram.js.map +1 -1
  263. package/dist/widgets/loader.js +63 -61
  264. package/dist/widgets/loader.js.map +1 -1
  265. package/dist/widgets/markdown.js +141 -123
  266. package/dist/widgets/markdown.js.map +1 -1
  267. package/dist/widgets/no-data.js +52 -58
  268. package/dist/widgets/no-data.js.map +1 -1
  269. package/dist/widgets/note.js +125 -122
  270. package/dist/widgets/note.js.map +1 -1
  271. package/dist/widgets/pie.js +245 -259
  272. package/dist/widgets/pie.js.map +1 -1
  273. package/dist/widgets/range.js +225 -204
  274. package/dist/widgets/range.js.map +1 -1
  275. package/dist/widgets/scatterplot.js +220 -215
  276. package/dist/widgets/scatterplot.js.map +1 -1
  277. package/dist/widgets/selection-summary.js +39 -38
  278. package/dist/widgets/selection-summary.js.map +1 -1
  279. package/dist/widgets/skeleton-loader.js +22 -23
  280. package/dist/widgets/skeleton-loader.js.map +1 -1
  281. package/dist/widgets/spread.js +150 -156
  282. package/dist/widgets/spread.js.map +1 -1
  283. package/dist/widgets/stores.js +3 -8
  284. package/dist/widgets/subheader.js +49 -50
  285. package/dist/widgets/subheader.js.map +1 -1
  286. package/dist/widgets/table.js +576 -644
  287. package/dist/widgets/table.js.map +1 -1
  288. package/dist/widgets/timeseries.js +175 -170
  289. package/dist/widgets/timeseries.js.map +1 -1
  290. package/dist/widgets/toolbar-actions.js +140 -145
  291. package/dist/widgets/toolbar-actions.js.map +1 -1
  292. package/dist/widgets/utils.js +17 -33
  293. package/dist/widgets/utils.js.map +1 -1
  294. package/dist/widgets/wrapper.js +265 -276
  295. package/dist/widgets/wrapper.js.map +1 -1
  296. package/dist/widgets-v2/actions.js +4 -51
  297. package/dist/widgets-v2/bar.js +253 -307
  298. package/dist/widgets-v2/bar.js.map +1 -1
  299. package/dist/widgets-v2/category.js +2 -98
  300. package/dist/widgets-v2/echart.js +2 -57
  301. package/dist/widgets-v2/formula.js +2 -68
  302. package/dist/widgets-v2/histogram.js +285 -350
  303. package/dist/widgets-v2/histogram.js.map +1 -1
  304. package/dist/widgets-v2/markdown.js +3 -69
  305. package/dist/widgets-v2/pie.js +363 -461
  306. package/dist/widgets-v2/pie.js.map +1 -1
  307. package/dist/widgets-v2/range.js +2 -52
  308. package/dist/widgets-v2/scatterplot.js +316 -391
  309. package/dist/widgets-v2/scatterplot.js.map +1 -1
  310. package/dist/widgets-v2/spread.js +2 -66
  311. package/dist/widgets-v2/stores.js +2 -42
  312. package/dist/widgets-v2/table.js +2 -78
  313. package/dist/widgets-v2/timeseries.js +285 -340
  314. package/dist/widgets-v2/timeseries.js.map +1 -1
  315. package/dist/widgets-v2/utils.js +2 -8
  316. package/dist/widgets-v2.js +955 -951
  317. package/dist/widgets-v2.js.map +1 -1
  318. package/dist/zoom-toggle-CA0ifG23.js +164 -0
  319. package/dist/zoom-toggle-CA0ifG23.js.map +1 -0
  320. package/package.json +4 -4
  321. package/src/hooks/use-widget-ref.ts +1 -0
  322. package/src/widgets-v2/index.ts +6 -1
  323. package/src/widgets-v2/spread/band.test.ts +46 -0
  324. package/src/widgets-v2/spread/band.ts +47 -0
  325. package/src/widgets-v2/spread/index.ts +1 -0
  326. package/dist/category-Ct2BzADB.js +0 -753
  327. package/dist/category-Ct2BzADB.js.map +0 -1
  328. package/dist/change-column-Fu1DCYQ3.js +0 -1186
  329. package/dist/change-column-Fu1DCYQ3.js.map +0 -1
  330. package/dist/cjs-D4KH3azB.js +0 -85
  331. package/dist/cjs-D4KH3azB.js.map +0 -1
  332. package/dist/components.js.map +0 -1
  333. package/dist/copy-button-DGL1tyli.js +0 -26
  334. package/dist/copy-button-DGL1tyli.js.map +0 -1
  335. package/dist/csv-item-hH_Gt7ur.js +0 -32
  336. package/dist/csv-item-hH_Gt7ur.js.map +0 -1
  337. package/dist/data-zoom-layout-D_FYdnap.js +0 -28
  338. package/dist/data-zoom-layout-D_FYdnap.js.map +0 -1
  339. package/dist/download-config-OKlLLSW_.js +0 -58
  340. package/dist/download-config-OKlLLSW_.js.map +0 -1
  341. package/dist/echart-B10dhEaM.js +0 -262
  342. package/dist/echart-B10dhEaM.js.map +0 -1
  343. package/dist/exports-Cr43OCul.js +0 -51
  344. package/dist/exports-Cr43OCul.js.map +0 -1
  345. package/dist/exports-Cx-f6m6U.js +0 -63
  346. package/dist/exports-Cx-f6m6U.js.map +0 -1
  347. package/dist/formatter-B9Bxn1k7.js +0 -6
  348. package/dist/formatter-B9Bxn1k7.js.map +0 -1
  349. package/dist/formula-DuC0NQLH.js +0 -79
  350. package/dist/formula-DuC0NQLH.js.map +0 -1
  351. package/dist/lasso-tool-YLFRgb-S.js +0 -582
  352. package/dist/lasso-tool-YLFRgb-S.js.map +0 -1
  353. package/dist/legend/stores.js.map +0 -1
  354. package/dist/legend-store-registry-p1tSwJXH.js +0 -472
  355. package/dist/legend-store-registry-p1tSwJXH.js.map +0 -1
  356. package/dist/markdown-DdqANCiN.js +0 -102
  357. package/dist/markdown-DdqANCiN.js.map +0 -1
  358. package/dist/markdown-content-Dk2DSgbf.js +0 -10287
  359. package/dist/markdown-content-Dk2DSgbf.js.map +0 -1
  360. package/dist/option-builders-DPeoyQaM.js +0 -130
  361. package/dist/option-builders-DPeoyQaM.js.map +0 -1
  362. package/dist/options-CthfUJDz.js +0 -46
  363. package/dist/options-CthfUJDz.js.map +0 -1
  364. package/dist/png-item-9dNbB37T.js +0 -57
  365. package/dist/png-item-9dNbB37T.js.map +0 -1
  366. package/dist/range-l4fNHLEg.js +0 -213
  367. package/dist/range-l4fNHLEg.js.map +0 -1
  368. package/dist/resolve-theme-color-BdojIw0K.js +0 -47
  369. package/dist/resolve-theme-color-BdojIw0K.js.map +0 -1
  370. package/dist/row-DZSP99LW.js +0 -34
  371. package/dist/row-DZSP99LW.js.map +0 -1
  372. package/dist/series-DLNHDWs0.js +0 -90
  373. package/dist/series-DLNHDWs0.js.map +0 -1
  374. package/dist/shared-resize-observer-98b1SK1e.js +0 -17
  375. package/dist/shared-resize-observer-98b1SK1e.js.map +0 -1
  376. package/dist/smart-tooltip-DFV6GD8R.js +0 -40
  377. package/dist/smart-tooltip-DFV6GD8R.js.map +0 -1
  378. package/dist/spread-4MYPOntd.js +0 -66
  379. package/dist/spread-4MYPOntd.js.map +0 -1
  380. package/dist/style-DVnT6HC1.js +0 -131
  381. package/dist/style-DVnT6HC1.js.map +0 -1
  382. package/dist/styles-cohnxh9F.js +0 -23
  383. package/dist/styles-cohnxh9F.js.map +0 -1
  384. package/dist/table-CTcLOycx.js +0 -383
  385. package/dist/table-CTcLOycx.js.map +0 -1
  386. package/dist/tooltip-BDnrRKrp.js +0 -25
  387. package/dist/tooltip-BDnrRKrp.js.map +0 -1
  388. package/dist/transforms-Cdx4fkU5.js +0 -106
  389. package/dist/transforms-Cdx4fkU5.js.map +0 -1
  390. package/dist/use-transform-DXPN3nY7.js +0 -110
  391. package/dist/use-transform-DXPN3nY7.js.map +0 -1
  392. package/dist/use-widget-ref-Ddr_SlJJ.js +0 -22
  393. package/dist/use-widget-ref-Ddr_SlJJ.js.map +0 -1
  394. package/dist/use-widget-selector-DFl2hW0R.js +0 -12
  395. package/dist/utils-BOhInag6.js +0 -170
  396. package/dist/utils-BOhInag6.js.map +0 -1
  397. package/dist/widget-context-DTGO0Yta.js +0 -13
  398. package/dist/widget-context-DTGO0Yta.js.map +0 -1
  399. package/dist/widget-store-Bw5zRUGg.js +0 -261
  400. package/dist/widget-store-Bw5zRUGg.js.map +0 -1
  401. package/dist/widget-store-registry-_W4Z4xp-.js +0 -178
  402. package/dist/widget-store-registry-_W4Z4xp-.js.map +0 -1
  403. package/dist/widgets/actions.js.map +0 -1
  404. package/dist/widgets/echart.js.map +0 -1
  405. package/dist/widgets/formula.js.map +0 -1
  406. package/dist/widgets/stores.js.map +0 -1
  407. package/dist/widgets-v2/actions.js.map +0 -1
  408. package/dist/widgets-v2/category.js.map +0 -1
  409. package/dist/widgets-v2/echart.js.map +0 -1
  410. package/dist/widgets-v2/formula.js.map +0 -1
  411. package/dist/widgets-v2/markdown.js.map +0 -1
  412. package/dist/widgets-v2/range.js.map +0 -1
  413. package/dist/widgets-v2/spread.js.map +0 -1
  414. package/dist/widgets-v2/stores.js.map +0 -1
  415. package/dist/widgets-v2/table.js.map +0 -1
  416. package/dist/widgets-v2/utils.js.map +0 -1
package/dist/legend.js CHANGED
@@ -1,2331 +1,2282 @@
1
- import { jsx as d, jsxs as M, Fragment as he } from "react/jsx-runtime";
2
- import { c as T } from "react/compiler-runtime";
3
- import { createContext as me, useContext as be, useState as J, useLayoutEffect as Pe, Children as ut, isValidElement as pt, useEffect as ft, useRef as De, useId as ht } from "react";
4
- import { L as gt, h as yt, g as X, a as mt, m as bt, r as vt, u as xt, n as N, o as Z, p as j, b as $e, i as re, f as Lt, e as Ee, s as Ae, j as ve, l as He } from "./legend-store-registry-p1tSwJXH.js";
5
- import { Box as A, IconButton as xe, Typography as E, Collapse as Re, createSvgIcon as wt, Menu as Oe, CircularProgress as Ve, MenuItem as q, Divider as St, Slider as Ct, InputAdornment as It, OutlinedInput as kt, ButtonBase as $t } from "@mui/material";
6
- import { DragIndicator as Ot, ExpandMore as We, VisibilityOffOutlined as _t, VisibilityOutlined as Be, MoreVert as Gt, ChecklistOutlined as Pt, Close as At, ArrowDropDown as Mt, ErrorOutline as zt } from "@mui/icons-material";
7
- import { useSortable as Tt, SortableContext as Ne, verticalListSortingStrategy as Fe } from "@dnd-kit/sortable";
8
- import { S as Ue } from "./smart-tooltip-DFV6GD8R.js";
9
- import { CSS as Dt } from "@dnd-kit/utilities";
10
- import { T as ie } from "./tooltip-BDnrRKrp.js";
11
- import "zustand";
12
- import "zustand/vanilla";
13
- import "zustand/middleware";
14
- import "zustand/react/shallow";
15
- import { useSensors as Et, useSensor as Me, PointerSensor as Ht, KeyboardSensor as Rt, DndContext as Vt, closestCenter as Wt, DragOverlay as Bt } from "@dnd-kit/core";
16
- const ge = {
17
- expandLayer: "Expand layer",
18
- collapseLayer: "Collapse layer",
19
- hideLayer: "Hide layer",
20
- showLayer: "Show layer",
21
- layerOptions: "Layer options",
22
- zoomTo: "Zoom to layer",
23
- loading: "Loading…",
24
- showOnlyLayer: "Show only this layer",
25
- showAllLayers: "Show all layers",
26
- hideGroup: "Hide group",
27
- showGroup: "Show group",
28
- expandGroup: "Expand group",
29
- collapseGroup: "Collapse group",
30
- groupOptions: "Group options",
31
- showOnlyGroup: "Show only this group",
32
- showAllGroups: "Show all groups",
33
- collapseAllGroups: "Collapse all groups",
34
- expandAllGroups: "Expand all groups",
35
- zoomToGroup: "Zoom to group",
36
- panelOptions: "Legend options",
37
- enabledLayers: "Enabled layers",
38
- toggleEnabledLayers: "Quickly toggle enabled layers",
39
- moreOptions: "More options",
40
- reorder: "Reorder",
41
- opacity: "Opacity",
42
- attribute: "Attribute",
43
- close: "Close",
44
- radiusRangeBy: "Radius range by",
45
- colorBasedOn: "Color based on",
46
- colorGradient: "Color gradient",
47
- maxPrefix: "MAX: ",
48
- minPrefix: "MIN: "
49
- }, je = me({
50
- labels: ge
51
- });
52
- function W() {
53
- return be(je);
54
- }
55
- function Nt(t) {
56
- const e = T(24), {
57
- id: o,
58
- layers: r,
59
- groups: l,
60
- labels: i,
61
- keepAlive: n,
62
- children: a
63
- } = t, s = n === void 0 ? !0 : n;
64
- let c;
65
- e[0] !== l || e[1] !== o || e[2] !== r ? (c = () => {
66
- if (yt(o))
67
- return X(o);
68
- const C = mt(o, {
69
- layers: r,
70
- groups: l
71
- });
72
- return bt(o, C), C;
73
- }, e[0] = l, e[1] = o, e[2] = r, e[3] = c) : c = e[3];
74
- const [p] = J(c);
75
- let f, u;
76
- e[4] !== o || e[5] !== s || e[6] !== p ? (f = () => (vt(o, p), () => {
77
- xt(o, {
78
- keepAlive: s
79
- });
80
- }), u = [o, p, s], e[4] = o, e[5] = s, e[6] = p, e[7] = f, e[8] = u) : (f = e[7], u = e[8]), Pe(f, u);
81
- let y, h;
82
- e[9] !== l || e[10] !== r || e[11] !== p ? (y = () => {
83
- p.getState()._sync(r, l ?? []);
84
- }, h = [p, r, l], e[9] = l, e[10] = r, e[11] = p, e[12] = y, e[13] = h) : (y = e[12], h = e[13]), Pe(y, h);
85
- let g;
86
- e[14] !== i ? (g = i ? {
87
- ...ge,
88
- ...i
89
- } : ge, e[14] = i, e[15] = g) : g = e[15];
90
- let x;
91
- e[16] !== g ? (x = {
92
- labels: g
93
- }, e[16] = g, e[17] = x) : x = e[17];
94
- const b = x;
95
- let S;
96
- e[18] !== a || e[19] !== b ? (S = /* @__PURE__ */ d(je.Provider, { value: b, children: a }), e[18] = a, e[19] = b, e[20] = S) : S = e[20];
97
- let L;
98
- return e[21] !== o || e[22] !== S ? (L = /* @__PURE__ */ d(gt.Provider, { value: o, children: S }), e[21] = o, e[22] = S, e[23] = L) : L = e[23], L;
99
- }
100
- function Ze(t) {
101
- return (e) => {
102
- (e.key === "Enter" || e.key === " ") && (e.preventDefault(), t());
103
- };
104
- }
105
- const Ke = me(null);
106
- function Q() {
107
- return be(Ke);
108
- }
109
- const Xe = me(null);
110
- function ue() {
111
- return be(Xe);
112
- }
113
- const qe = me(null);
114
- function Qe() {
115
- return be(qe);
116
- }
117
- const Ft = {
118
- fadeGroup: {
119
- display: "flex",
120
- alignItems: "center",
121
- gap: 0.25
122
- }
123
- };
124
- function Ye(t) {
125
- const e = T(3), {
126
- children: o
127
- } = t, l = Q() !== null ? "PsLegend-rowFade" : "PsLegend-groupFade";
128
- let i;
129
- return e[0] !== o || e[1] !== l ? (i = /* @__PURE__ */ d(A, { className: l, sx: Ft.fadeGroup, children: o }), e[0] = o, e[1] = l, e[2] = i) : i = e[2], i;
130
- }
131
- function Je(t) {
132
- const e = [], o = [];
133
- for (const r of ut.toArray(t))
134
- Ut(r, Ye) ? e.push(r) : o.push(r);
135
- return {
136
- actions: e,
137
- body: o
138
- };
139
- }
140
- function Ut(t, e) {
141
- return pt(t) && t.type === e;
142
- }
143
- const et = me(!1);
144
- function tt() {
145
- return be(et);
146
- }
147
- const Se = (t, e) => `${t}:${e}`;
148
- function de(t) {
149
- const e = t.indexOf(":");
150
- if (e === -1) return null;
151
- const o = t.slice(0, e);
152
- return o !== "group" && o !== "layer" ? null : {
153
- kind: o,
154
- id: t.slice(e + 1)
155
- };
156
- }
157
- const we = 48, Y = {
158
- group: {
159
- display: "flex",
160
- flexDirection: "column",
161
- "& + &": {
162
- borderTop: "1px solid",
163
- borderColor: "divider"
164
- }
165
- },
166
- // The original stays in place, dimmed, while its overlay clone is dragged.
167
- groupDragging: {
168
- opacity: 0.4
169
- },
170
- // Figma: 48px tall, 16px left inset (matches the row's own left inset),
171
- // 8px gap to the label, actions right-aligned with ~8px edge inset (the
172
- // small icon-button padding brings the glyphs to the design's 16px optical
173
- // inset), hairline divider below. Sticky: pins to the top of the panel's
174
- // scroll container.
175
- header: {
176
- display: "flex",
177
- alignItems: "center",
178
- gap: 1,
179
- padding: ({
180
- spacing: t
181
- }) => t(1.5, 2, 1.5, 2),
182
- minHeight: we,
183
- borderBottom: "1px solid",
184
- borderColor: "divider",
185
- position: "sticky",
186
- top: 0,
187
- // Above the sticky row headers (2), which in turn sit above MUI's
188
- // z-index-1 form internals in row content.
189
- zIndex: 3,
190
- // Distinct from the row header / panel body (both `background.paper`) so
191
- // the group header visually separates from the rest.
192
- backgroundColor: "background.default",
193
- // Hover-fade group actions (widgets-v2 Wrapper parity). Scoped to the
194
- // header itself (not the group root) so hovering a member row's body
195
- // below never lights up the group's own actions/handle — only hovering
196
- // the header (title/handle/actions) does. A control carrying `.active`
197
- // (hidden group) stays visible. Touch devices always show them. The
198
- // collapse chevron sits outside the fade group. Each non-active child
199
- // also collapses to zero width on its own (not just the whole actions
200
- // slot) so a sibling's `.active` pin (e.g. the eye on a mixed-visibility
201
- // group) doesn't leave a same-sized invisible hole where the still-faded
202
- // menu would've been.
203
- "& .PsLegend-groupFade > *": {
204
- opacity: 1,
205
- transition: ({
206
- transitions: t
207
- }) => t.create(["opacity", "width"], {
208
- duration: t.duration.standard,
209
- easing: t.easing.easeInOut
210
- }),
211
- "@media (hover: hover)": {
212
- opacity: 0
213
- },
214
- "&.active": {
215
- opacity: 1
216
- }
217
- },
218
- // Faded actions don't reserve flex space on fine-pointer devices — the
219
- // label grows to the trailing edge. Hover/focus-within restores the slot
220
- // so the label reflows with the buttons; a dirty `.active` child keeps
221
- // the slot open even outside hover.
222
- "@media (hover: hover)": {
223
- "& .PsLegend-groupFade > *:not(.active)": {
224
- width: 0,
225
- minWidth: 0,
226
- // border-box IconButtons keep their padding inside `width` — zero it
227
- // too, otherwise the fixed 2px+2px padding survives as a tiny but
228
- // needless residual gap.
229
- padding: 0,
230
- overflow: "hidden",
231
- pointerEvents: "none"
232
- },
233
- "& .PsLegend-groupActions:not(:has(.active))": {
234
- width: 0,
235
- minWidth: 0,
236
- overflow: "hidden",
237
- // Cancel the header gap so nothing is left behind the label.
238
- marginInlineStart: ({
239
- spacing: t
240
- }) => `calc(-1 * ${t(1)})`,
241
- pointerEvents: "none"
242
- }
243
- },
244
- "&:hover .PsLegend-groupFade > *, &:focus-within .PsLegend-groupFade > *": {
245
- opacity: 1,
246
- width: "auto",
247
- minWidth: 0,
248
- padding: "2px",
249
- overflow: "visible",
250
- pointerEvents: "auto"
251
- },
252
- "&:hover .PsLegend-groupActions, &:focus-within .PsLegend-groupActions": {
253
- width: "auto",
254
- minWidth: 0,
255
- overflow: "visible",
256
- marginInlineStart: 0,
257
- pointerEvents: "auto"
258
- },
259
- // Drag handle (Legend.Sortable): absolutely positioned (no reserved flex
260
- // slot, so it never shifts the title/icon); the button inside fades in
261
- // on hover/focus and is always visible on touch devices.
262
- "& .PsLegend-dragHandle-group > *": {
263
- opacity: 0,
264
- transition: ({
265
- transitions: t
266
- }) => t.create("opacity", {
267
- duration: t.duration.standard,
268
- easing: t.easing.easeInOut
269
- }),
270
- "@media (hover: none)": {
271
- opacity: 1
272
- }
273
- },
274
- "&:hover .PsLegend-dragHandle-group > *, &:focus-within .PsLegend-dragHandle-group > *": {
275
- opacity: 1
276
- }
277
- },
278
- // Accordion click target: everything in the header but the actions box.
279
- // Non-native button (role='button'), so it carries its own focus ring.
280
- titleArea: {
281
- flex: 1,
282
- minWidth: 0,
283
- display: "flex",
284
- alignItems: "center",
285
- gap: 1,
286
- cursor: "pointer",
287
- userSelect: "none",
288
- "&:focus-visible": {
289
- outline: "2px solid",
290
- outlineColor: "primary.main",
291
- outlineOffset: -2
292
- }
293
- },
294
- groupIcon: {
295
- display: "flex",
296
- color: "text.secondary"
297
- },
298
- // No `flex:1` here — the label sizes to its own text (shrinking to
299
- // ellipsis when too long) so the chevron sits right after it, instead of
300
- // being dragged to the trailing edge of `titleArea` (which keeps its own
301
- // `flex:1` to fill the header up to the actions).
302
- label: {
303
- minWidth: 0,
304
- overflow: "hidden",
305
- textOverflow: "ellipsis",
306
- whiteSpace: "nowrap"
307
- },
308
- // Informative collapse indicator beside the title (the whole title area is
309
- // the button). Points down when expanded, right when collapsed. Touch
310
- // devices don't get it — the title row is the affordance there.
311
- chevron: {
312
- fontSize: 16,
313
- color: "text.secondary",
314
- flexShrink: 0,
315
- transition: ({
316
- transitions: t
317
- }) => t.create("transform", {
318
- duration: t.duration.shorter
319
- }),
320
- "@media (hover: none)": {
321
- display: "none"
322
- }
323
- },
324
- chevronCollapsed: {
325
- transform: "rotate(-90deg)"
326
- },
327
- // Icon buttons match the row header's 24×24 (2px padding + 20px icon).
328
- actions: {
329
- display: "flex",
330
- alignItems: "center",
331
- gap: 0.25,
332
- flexShrink: 0,
333
- "& .MuiIconButton-root": {
334
- padding: "2px"
335
- }
336
- }
337
- }, le = {
338
- // Absolute handle, flush against the header's top-left corner — no flex
339
- // slot; sticky header is the containing block.
340
- handleSlot: {
341
- position: "absolute",
342
- zIndex: 1,
343
- display: "flex",
344
- alignItems: "center",
345
- justifyContent: "center",
346
- left: 0,
347
- top: 0
348
- },
349
- // Both headers center their title on the same 24px band from the header's
350
- // top edge (group: 48px header, `alignItems:'center'`; row: 12px top
351
- // padding + 24px `titleLine`, `alignItems:'flex-start'`) — so `height:48`
352
- // centers the icon on the title in both cases, even though the row's own
353
- // header is only 32px tall (a 32px-tall slot would center at 16px, 8px
354
- // short of the title).
355
- handleSlotLayer: {
356
- height: we
357
- },
358
- handleSlotGroup: {
359
- height: we
360
- },
361
- handle: {
362
- padding: "2px",
363
- cursor: "grab",
364
- touchAction: "none",
365
- color: "text.secondary",
366
- "& .MuiSvgIcon-root": {
367
- fontSize: 18
368
- },
369
- "&:active": {
370
- cursor: "grabbing"
371
- },
372
- "&:hover": {
373
- backgroundColor: "transparent"
374
- }
375
- },
376
- overlay: {
377
- display: "flex",
378
- alignItems: "center",
379
- gap: 1,
380
- padding: ({
381
- spacing: t
382
- }) => t(1, 1.5),
383
- backgroundColor: "background.paper",
384
- borderRadius: 1,
385
- boxShadow: 4,
386
- height: "auto",
387
- maxWidth: "100%",
388
- overflow: "hidden"
389
- },
390
- overlayIcon: {
391
- display: "flex",
392
- color: "text.secondary"
393
- },
394
- overlayLabel: {
395
- minWidth: 0,
396
- overflow: "hidden",
397
- textOverflow: "ellipsis",
398
- whiteSpace: "nowrap"
399
- }
1
+ import { t as e } from "./tooltip-DJUGNZxY.js";
2
+ import { t } from "./smart-tooltip-CwGHCqab.js";
3
+ import { a as n, b as r, c as i, d as a, f as o, g as s, h as c, i as l, l as u, m as d, n as f, o as p, p as m, s as h, u as g, v as _, y as v } from "./stores-B81-IU1G.js";
4
+ import { c as y } from "react/compiler-runtime";
5
+ import { Children as b, createContext as x, isValidElement as S, useContext as C, useEffect as w, useId as T, useLayoutEffect as E, useRef as D, useState as O } from "react";
6
+ import { Box as k, ButtonBase as A, CircularProgress as j, Collapse as M, Divider as N, IconButton as P, InputAdornment as F, Menu as I, MenuItem as L, OutlinedInput as R, Slider as ee, Typography as z, createSvgIcon as te } from "@mui/material";
7
+ import { Fragment as B, jsx as V, jsxs as H } from "react/jsx-runtime";
8
+ import { ArrowDropDown as U, ChecklistOutlined as W, Close as ne, DragIndicator as G, ErrorOutline as re, ExpandMore as ie, MoreVert as ae, VisibilityOffOutlined as oe, VisibilityOutlined as se } from "@mui/icons-material";
9
+ import { SortableContext as ce, useSortable as le, verticalListSortingStrategy as ue } from "@dnd-kit/sortable";
10
+ import { CSS as de } from "@dnd-kit/utilities";
11
+ import { DndContext as fe, DragOverlay as pe, KeyboardSensor as me, PointerSensor as he, closestCenter as ge, useSensor as _e, useSensors as ve } from "@dnd-kit/core";
12
+ //#region src/legend/provider/labels.ts
13
+ var ye = {
14
+ expandLayer: "Expand layer",
15
+ collapseLayer: "Collapse layer",
16
+ hideLayer: "Hide layer",
17
+ showLayer: "Show layer",
18
+ layerOptions: "Layer options",
19
+ zoomTo: "Zoom to layer",
20
+ loading: "Loading…",
21
+ showOnlyLayer: "Show only this layer",
22
+ showAllLayers: "Show all layers",
23
+ hideGroup: "Hide group",
24
+ showGroup: "Show group",
25
+ expandGroup: "Expand group",
26
+ collapseGroup: "Collapse group",
27
+ groupOptions: "Group options",
28
+ showOnlyGroup: "Show only this group",
29
+ showAllGroups: "Show all groups",
30
+ collapseAllGroups: "Collapse all groups",
31
+ expandAllGroups: "Expand all groups",
32
+ zoomToGroup: "Zoom to group",
33
+ panelOptions: "Legend options",
34
+ enabledLayers: "Enabled layers",
35
+ toggleEnabledLayers: "Quickly toggle enabled layers",
36
+ moreOptions: "More options",
37
+ reorder: "Reorder",
38
+ opacity: "Opacity",
39
+ attribute: "Attribute",
40
+ close: "Close",
41
+ radiusRangeBy: "Radius range by",
42
+ colorBasedOn: "Color based on",
43
+ colorGradient: "Color gradient",
44
+ maxPrefix: "MAX: ",
45
+ minPrefix: "MIN: "
46
+ }, be = x({ labels: ye });
47
+ function K() {
48
+ return C(be);
49
+ }
50
+ //#endregion
51
+ //#region src/legend/provider/legend-provider.tsx
52
+ function xe(e) {
53
+ let t = y(24), { id: r, layers: a, groups: o, labels: s, keepAlive: c, children: u } = e, d = c === void 0 || c, m;
54
+ t[0] !== o || t[1] !== r || t[2] !== a ? (m = () => {
55
+ if (n(r)) return l(r);
56
+ let e = f(r, {
57
+ layers: a,
58
+ groups: o
59
+ });
60
+ return h(r, e), e;
61
+ }, t[0] = o, t[1] = r, t[2] = a, t[3] = m) : m = t[3];
62
+ let [g] = O(m), _, b;
63
+ t[4] !== r || t[5] !== d || t[6] !== g ? (_ = () => (p(r, g), () => {
64
+ i(r, { keepAlive: d });
65
+ }), b = [
66
+ r,
67
+ g,
68
+ d
69
+ ], t[4] = r, t[5] = d, t[6] = g, t[7] = _, t[8] = b) : (_ = t[7], b = t[8]), E(_, b);
70
+ let x, S;
71
+ t[9] !== o || t[10] !== a || t[11] !== g ? (x = () => {
72
+ g.getState()._sync(a, o ?? []);
73
+ }, S = [
74
+ g,
75
+ a,
76
+ o
77
+ ], t[9] = o, t[10] = a, t[11] = g, t[12] = x, t[13] = S) : (x = t[12], S = t[13]), E(x, S);
78
+ let C;
79
+ t[14] === s ? C = t[15] : (C = s ? {
80
+ ...ye,
81
+ ...s
82
+ } : ye, t[14] = s, t[15] = C);
83
+ let w;
84
+ t[16] === C ? w = t[17] : (w = { labels: C }, t[16] = C, t[17] = w);
85
+ let T = w, D;
86
+ t[18] !== u || t[19] !== T ? (D = /* @__PURE__ */ V(be.Provider, {
87
+ value: T,
88
+ children: u
89
+ }), t[18] = u, t[19] = T, t[20] = D) : D = t[20];
90
+ let k;
91
+ return t[21] !== r || t[22] !== D ? (k = /* @__PURE__ */ V(v.Provider, {
92
+ value: r,
93
+ children: D
94
+ }), t[21] = r, t[22] = D, t[23] = k) : k = t[23], k;
95
+ }
96
+ //#endregion
97
+ //#region src/legend/components/a11y.ts
98
+ function Se(e) {
99
+ return (t) => {
100
+ (t.key === "Enter" || t.key === " ") && (t.preventDefault(), e());
101
+ };
102
+ }
103
+ //#endregion
104
+ //#region src/legend/components/contexts.ts
105
+ var Ce = x(null);
106
+ function q() {
107
+ return C(Ce);
108
+ }
109
+ var we = x(null);
110
+ function Te() {
111
+ return C(we);
112
+ }
113
+ var Ee = x(null);
114
+ function De() {
115
+ return C(Ee);
116
+ }
117
+ //#endregion
118
+ //#region src/legend/components/legend-actions/styles.ts
119
+ var Oe = { fadeGroup: {
120
+ display: "flex",
121
+ alignItems: "center",
122
+ gap: .25
123
+ } };
124
+ //#endregion
125
+ //#region src/legend/components/legend-actions/legend-actions.tsx
126
+ function ke(e) {
127
+ let t = y(3), { children: n } = e, r = q() === null ? "PsLegend-groupFade" : "PsLegend-rowFade", i;
128
+ return t[0] !== n || t[1] !== r ? (i = /* @__PURE__ */ V(k, {
129
+ className: r,
130
+ sx: Oe.fadeGroup,
131
+ children: n
132
+ }), t[0] = n, t[1] = r, t[2] = i) : i = t[2], i;
133
+ }
134
+ function Ae(e) {
135
+ let t = [], n = [];
136
+ for (let r of b.toArray(e)) je(r, ke) ? t.push(r) : n.push(r);
137
+ return {
138
+ actions: t,
139
+ body: n
140
+ };
141
+ }
142
+ function je(e, t) {
143
+ return S(e) && e.type === t;
144
+ }
145
+ //#endregion
146
+ //#region src/legend/components/legend-sortable/contexts.ts
147
+ var Me = x(!1);
148
+ function Ne() {
149
+ return C(Me);
150
+ }
151
+ //#endregion
152
+ //#region src/legend/components/legend-sortable/sortable-ids.ts
153
+ var Pe = (e, t) => `${e}:${t}`;
154
+ function Fe(e) {
155
+ let t = e.indexOf(":");
156
+ if (t === -1) return null;
157
+ let n = e.slice(0, t);
158
+ return n !== "group" && n !== "layer" ? null : {
159
+ kind: n,
160
+ id: e.slice(t + 1)
161
+ };
162
+ }
163
+ var J = {
164
+ group: {
165
+ display: "flex",
166
+ flexDirection: "column",
167
+ "& + &": {
168
+ borderTop: "1px solid",
169
+ borderColor: "divider"
170
+ }
171
+ },
172
+ groupDragging: { opacity: .4 },
173
+ header: {
174
+ display: "flex",
175
+ alignItems: "center",
176
+ gap: 1,
177
+ padding: ({ spacing: e }) => e(1.5, 2, 1.5, 2),
178
+ minHeight: 48,
179
+ borderBottom: "1px solid",
180
+ borderColor: "divider",
181
+ position: "sticky",
182
+ top: 0,
183
+ zIndex: 3,
184
+ backgroundColor: "background.default",
185
+ "& .PsLegend-groupFade > *": {
186
+ opacity: 1,
187
+ transition: ({ transitions: e }) => e.create(["opacity", "width"], {
188
+ duration: e.duration.standard,
189
+ easing: e.easing.easeInOut
190
+ }),
191
+ "@media (hover: hover)": { opacity: 0 },
192
+ "&.active": { opacity: 1 }
193
+ },
194
+ "@media (hover: hover)": {
195
+ "& .PsLegend-groupFade > *:not(.active)": {
196
+ width: 0,
197
+ minWidth: 0,
198
+ padding: 0,
199
+ overflow: "hidden",
200
+ pointerEvents: "none"
201
+ },
202
+ "& .PsLegend-groupActions:not(:has(.active))": {
203
+ width: 0,
204
+ minWidth: 0,
205
+ overflow: "hidden",
206
+ marginInlineStart: ({ spacing: e }) => `calc(-1 * ${e(1)})`,
207
+ pointerEvents: "none"
208
+ }
209
+ },
210
+ "&:hover .PsLegend-groupFade > *, &:focus-within .PsLegend-groupFade > *": {
211
+ opacity: 1,
212
+ width: "auto",
213
+ minWidth: 0,
214
+ padding: "2px",
215
+ overflow: "visible",
216
+ pointerEvents: "auto"
217
+ },
218
+ "&:hover .PsLegend-groupActions, &:focus-within .PsLegend-groupActions": {
219
+ width: "auto",
220
+ minWidth: 0,
221
+ overflow: "visible",
222
+ marginInlineStart: 0,
223
+ pointerEvents: "auto"
224
+ },
225
+ "& .PsLegend-dragHandle-group > *": {
226
+ opacity: 0,
227
+ transition: ({ transitions: e }) => e.create("opacity", {
228
+ duration: e.duration.standard,
229
+ easing: e.easing.easeInOut
230
+ }),
231
+ "@media (hover: none)": { opacity: 1 }
232
+ },
233
+ "&:hover .PsLegend-dragHandle-group > *, &:focus-within .PsLegend-dragHandle-group > *": { opacity: 1 }
234
+ },
235
+ titleArea: {
236
+ flex: 1,
237
+ minWidth: 0,
238
+ display: "flex",
239
+ alignItems: "center",
240
+ gap: 1,
241
+ cursor: "pointer",
242
+ userSelect: "none",
243
+ "&:focus-visible": {
244
+ outline: "2px solid",
245
+ outlineColor: "primary.main",
246
+ outlineOffset: -2
247
+ }
248
+ },
249
+ groupIcon: {
250
+ display: "flex",
251
+ color: "text.secondary"
252
+ },
253
+ label: {
254
+ minWidth: 0,
255
+ overflow: "hidden",
256
+ textOverflow: "ellipsis",
257
+ whiteSpace: "nowrap"
258
+ },
259
+ chevron: {
260
+ fontSize: 16,
261
+ color: "text.secondary",
262
+ flexShrink: 0,
263
+ transition: ({ transitions: e }) => e.create("transform", { duration: e.duration.shorter }),
264
+ "@media (hover: none)": { display: "none" }
265
+ },
266
+ chevronCollapsed: { transform: "rotate(-90deg)" },
267
+ actions: {
268
+ display: "flex",
269
+ alignItems: "center",
270
+ gap: .25,
271
+ flexShrink: 0,
272
+ "& .MuiIconButton-root": { padding: "2px" }
273
+ }
274
+ }, Ie = {
275
+ handleSlot: {
276
+ position: "absolute",
277
+ zIndex: 1,
278
+ display: "flex",
279
+ alignItems: "center",
280
+ justifyContent: "center",
281
+ left: 0,
282
+ top: 0
283
+ },
284
+ handleSlotLayer: { height: 48 },
285
+ handleSlotGroup: { height: 48 },
286
+ handle: {
287
+ padding: "2px",
288
+ cursor: "grab",
289
+ touchAction: "none",
290
+ color: "text.secondary",
291
+ "& .MuiSvgIcon-root": { fontSize: 18 },
292
+ "&:active": { cursor: "grabbing" },
293
+ "&:hover": { backgroundColor: "transparent" }
294
+ },
295
+ overlay: {
296
+ display: "flex",
297
+ alignItems: "center",
298
+ gap: 1,
299
+ padding: ({ spacing: e }) => e(1, 1.5),
300
+ backgroundColor: "background.paper",
301
+ borderRadius: 1,
302
+ boxShadow: 4,
303
+ height: "auto",
304
+ maxWidth: "100%",
305
+ overflow: "hidden"
306
+ },
307
+ overlayIcon: {
308
+ display: "flex",
309
+ color: "text.secondary"
310
+ },
311
+ overlayLabel: {
312
+ minWidth: 0,
313
+ overflow: "hidden",
314
+ textOverflow: "ellipsis",
315
+ whiteSpace: "nowrap"
316
+ }
400
317
  };
401
- function ot(t) {
402
- const e = T(31), {
403
- kind: o,
404
- id: r,
405
- render: l
406
- } = t, {
407
- labels: i
408
- } = W();
409
- let n;
410
- e[0] !== r || e[1] !== o ? (n = Se(o, r), e[0] = r, e[1] = o, e[2] = n) : n = e[2];
411
- let a;
412
- e[3] !== n ? (a = {
413
- id: n
414
- }, e[3] = n, e[4] = a) : a = e[4];
415
- const {
416
- attributes: s,
417
- listeners: c,
418
- setNodeRef: p,
419
- setActivatorNodeRef: f,
420
- transform: u,
421
- transition: y,
422
- isDragging: h
423
- } = Tt(a);
424
- let g;
425
- if (e[5] !== s || e[6] !== h || e[7] !== o || e[8] !== i.reorder || e[9] !== c || e[10] !== l || e[11] !== f || e[12] !== p || e[13] !== u || e[14] !== y) {
426
- const x = {
427
- transform: Dt.Transform.toString(u ? {
428
- ...u,
429
- x: 0
430
- } : null),
431
- transition: y
432
- }, b = `PsLegend-dragHandle-${o}`, S = o === "group" ? le.handleSlotGroup : le.handleSlotLayer;
433
- let L;
434
- e[16] !== S ? (L = [le.handleSlot, S], e[16] = S, e[17] = L) : L = e[17];
435
- let C;
436
- e[18] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (C = /* @__PURE__ */ d(Ot, {}), e[18] = C) : C = e[18];
437
- let v;
438
- e[19] !== s || e[20] !== i.reorder || e[21] !== c || e[22] !== f ? (v = /* @__PURE__ */ d(xe, { ref: f, size: "xsmall", "aria-label": i.reorder, ...s, ...c, sx: le.handle, children: C }), e[19] = s, e[20] = i.reorder, e[21] = c, e[22] = f, e[23] = v) : v = e[23];
439
- let I;
440
- e[24] !== i.reorder || e[25] !== v ? (I = /* @__PURE__ */ d(ie, { title: i.reorder, children: v }), e[24] = i.reorder, e[25] = v, e[26] = I) : I = e[26];
441
- let w;
442
- e[27] !== b || e[28] !== L || e[29] !== I ? (w = /* @__PURE__ */ d(A, { component: "span", className: b, sx: L, children: I }), e[27] = b, e[28] = L, e[29] = I, e[30] = w) : w = e[30], g = l({
443
- rootRef: p,
444
- rootStyle: x,
445
- dragging: h,
446
- handle: w
447
- }), e[5] = s, e[6] = h, e[7] = o, e[8] = i.reorder, e[9] = c, e[10] = l, e[11] = f, e[12] = p, e[13] = u, e[14] = y, e[15] = g;
448
- } else
449
- g = e[15];
450
- return g;
451
- }
452
- function jt(t) {
453
- const e = T(27), {
454
- groupId: o,
455
- children: r
456
- } = t, l = N();
457
- let i;
458
- e[0] !== o ? (i = (v) => v.groups[o], e[0] = o, e[1] = i) : i = e[1];
459
- const n = Z(l, i), a = Z(l, Kt);
460
- let s;
461
- e[2] !== o ? (s = (v) => $e(v, o) === "hidden", e[2] = o, e[3] = s) : s = e[3];
462
- const c = j(l, s), p = tt();
463
- let f;
464
- e[4] !== o ? (f = (v) => re(v, o).map(Zt), e[4] = o, e[5] = f) : f = e[5];
465
- const u = Z(l, f);
466
- if (!n)
467
- return null;
468
- let y;
469
- e[6] !== r ? (y = Je(r), e[6] = r, e[7] = y) : y = e[7];
470
- const {
471
- actions: h,
472
- body: g
473
- } = y;
474
- let x;
475
- e[8] !== n.collapsed || e[9] !== o || e[10] !== a ? (x = () => a(o, !n.collapsed), e[8] = n.collapsed, e[9] = o, e[10] = a, e[11] = x) : x = e[11];
476
- const b = x;
477
- let S;
478
- e[12] !== h || e[13] !== g || e[14] !== n.collapsed || e[15] !== n.icon || e[16] !== n.label || e[17] !== o || e[18] !== c || e[19] !== u || e[20] !== p || e[21] !== b ? (S = (v) => /* @__PURE__ */ d(Xe.Provider, { value: o, children: /* @__PURE__ */ M(A, { ref: v?.rootRef, style: v?.rootStyle, sx: [Y.group, v?.dragging === !0 && Y.groupDragging], children: [
479
- /* @__PURE__ */ M(A, { sx: Y.header, children: [
480
- v?.handle,
481
- /* @__PURE__ */ M(A, { sx: Y.titleArea, role: "button", tabIndex: 0, "aria-expanded": !n.collapsed, onClick: b, onKeyDown: Ze(b), children: [
482
- n.icon != null && /* @__PURE__ */ d(A, { sx: Y.groupIcon, children: n.icon }),
483
- /* @__PURE__ */ d(Ue, { title: n.label, dependencies: [n.label], children: (I) => {
484
- const {
485
- ref: w
486
- } = I;
487
- return /* @__PURE__ */ d(E, { ref: w, variant: "button", fontWeight: "bold", color: c ? "text.disabled" : "text.primary", sx: Y.label, children: n.label });
488
- } }),
489
- /* @__PURE__ */ d(We, { sx: [Y.chevron, n.collapsed && Y.chevronCollapsed] })
490
- ] }),
491
- /* @__PURE__ */ d(A, { className: "PsLegend-groupActions", sx: Y.actions, children: h })
492
- ] }),
493
- /* @__PURE__ */ d(Re, { in: !n.collapsed, children: p ? /* @__PURE__ */ d(Ne, { items: u, strategy: Fe, children: g }) : g })
494
- ] }) }), e[12] = h, e[13] = g, e[14] = n.collapsed, e[15] = n.icon, e[16] = n.label, e[17] = o, e[18] = c, e[19] = u, e[20] = p, e[21] = b, e[22] = S) : S = e[22];
495
- const L = S;
496
- let C;
497
- return e[23] !== o || e[24] !== L || e[25] !== p ? (C = p ? /* @__PURE__ */ d(ot, { kind: "group", id: o, render: L }) : L(), e[23] = o, e[24] = L, e[25] = p, e[26] = C) : C = e[26], C;
498
- }
499
- function Zt(t) {
500
- return Se("layer", t.id);
501
- }
502
- function Kt(t) {
503
- return t.setGroupCollapsed;
504
- }
505
- const F = {
506
- // Padding lives on header/content/footer (not the root) so the sticky
507
- // header is opaque and full-bleed while pinned.
508
- row: {
509
- display: "flex",
510
- flexDirection: "column",
511
- position: "relative",
512
- "& + &": {
513
- borderTop: "1px solid",
514
- borderColor: "divider"
515
- },
516
- // Hover-fade actions (widgets-v2 Wrapper parity). Direct children of
517
- // `.PsLegend-rowFade` are hidden on fine-pointer devices and fade in when
518
- // the row is hovered or holds focus; a control carrying `.active` (dirty
519
- // state — hidden layer, open menu, opacity ≠ 1) stays visible. Coarse-
520
- // pointer (touch) devices always show them. Each non-active child also
521
- // collapses to zero width on its own (not just the whole actions slot
522
- // see `PsLegend-rowActions` below) so a sibling's `.active` pin (e.g. the
523
- // eye while hidden) doesn't leave a same-sized invisible hole where the
524
- // still-faded ⋮ menu would've been; the title grows into that space. The
525
- // collapse chevron sits outside the fade group and never fades.
526
- "& .PsLegend-rowFade > *": {
527
- opacity: 1,
528
- transition: ({
529
- transitions: t
530
- }) => t.create(["opacity", "width"], {
531
- duration: t.duration.standard,
532
- easing: t.easing.easeInOut
533
- }),
534
- "@media (hover: hover)": {
535
- opacity: 0
536
- },
537
- "&.active": {
538
- opacity: 1
539
- }
540
- },
541
- // Faded actions don't reserve flex space on fine-pointer devices — the
542
- // title grows to the trailing edge. Hover/focus-within restores the slot
543
- // so the title reflows with the buttons; a dirty `.active` child keeps
544
- // the slot open even outside hover.
545
- "@media (hover: hover)": {
546
- "& .PsLegend-rowFade > *:not(.active)": {
547
- width: 0,
548
- minWidth: 0,
549
- // border-box IconButtons keep their padding inside `width` — zero it
550
- // too, otherwise the fixed 2px+2px padding survives as a tiny but
551
- // needless residual gap.
552
- padding: 0,
553
- overflow: "hidden",
554
- pointerEvents: "none"
555
- },
556
- "& .PsLegend-rowActions:not(:has(.active))": {
557
- width: 0,
558
- minWidth: 0,
559
- overflow: "hidden",
560
- // Cancel the header gap so nothing is left behind the title.
561
- marginInlineStart: ({
562
- spacing: t
563
- }) => `calc(-1 * ${t(0.5)})`,
564
- pointerEvents: "none"
565
- }
566
- },
567
- "&:hover .PsLegend-rowFade > *, &:focus-within .PsLegend-rowFade > *": {
568
- opacity: 1,
569
- width: "auto",
570
- minWidth: 0,
571
- padding: "2px",
572
- overflow: "visible",
573
- pointerEvents: "auto"
574
- },
575
- "&:hover .PsLegend-rowActions, &:focus-within .PsLegend-rowActions": {
576
- width: "auto",
577
- minWidth: 0,
578
- overflow: "visible",
579
- marginInlineStart: 0,
580
- pointerEvents: "auto"
581
- },
582
- // Hovering anywhere in the row also reveals the category/icon values
583
- // (the renderers keep their own list-scoped rule for standalone usage).
584
- "&:hover .PsLegend-value, &:focus-within .PsLegend-value": {
585
- opacity: 1
586
- },
587
- // Drag handle (Legend.Sortable): absolutely positioned (no reserved flex
588
- // slot, so it never shifts the title/icon); the button inside fades in
589
- // on hover/focus and is always visible on touch devices.
590
- "& .PsLegend-dragHandle-layer > *": {
591
- opacity: 0,
592
- transition: ({
593
- transitions: t
594
- }) => t.create("opacity", {
595
- duration: t.duration.standard,
596
- easing: t.easing.easeInOut
597
- }),
598
- "@media (hover: none)": {
599
- opacity: 1
600
- }
601
- },
602
- "&:hover .PsLegend-dragHandle-layer > *, &:focus-within .PsLegend-dragHandle-layer > *": {
603
- opacity: 1
604
- }
605
- },
606
- // The original stays in place, dimmed, while its overlay clone is dragged.
607
- rowDragging: {
608
- opacity: 0.4
609
- },
610
- // Figma `_Legend header`: 16px top/left inset (title glyphs start at
611
- // y≈17, x=16 in the 68px-tall header), actions share the title's vertical
612
- // band (subtitle flows below them) — hence `flex-start` with the title
613
- // optically centered against the 30px icon-button row. Sticky: pins inside
614
- // the panel's scroll container; `top` is applied inline per row (0, or the
615
- // group-header height for grouped rows). Grouped rows get an extra 20px
616
- // left inset (36px total) so member layers read as nested under the group
617
- // and line up with the group's own icon+label text start.
618
- header: {
619
- display: "flex",
620
- alignItems: "flex-start",
621
- gap: 0.5,
622
- minHeight: 32,
623
- padding: ({
624
- spacing: t
625
- }) => t(1.5, 2, 1.5, 2),
626
- position: "sticky",
627
- // Above MUI's z-index-1 form internals (e.g. InputLabel) in row content,
628
- // below the group header (3).
629
- zIndex: 2,
630
- backgroundColor: "background.paper"
631
- },
632
- headerGrouped: {
633
- paddingLeft: 4.5
634
- },
635
- titleBox: {
636
- flex: 1,
637
- minWidth: 0,
638
- display: "flex",
639
- flexDirection: "column"
640
- },
641
- // Accordion click target (whole title block + spare space). Non-native
642
- // button, so it carries its own focus ring.
643
- titleBoxInteractive: {
644
- cursor: "pointer",
645
- userSelect: "none",
646
- "&:focus-visible": {
647
- outline: "2px solid",
648
- outlineColor: "primary.main",
649
- outlineOffset: -2
650
- }
651
- },
652
- // The title line and the actions box share the same 24px band, centered,
653
- // so the title and the action icons stay aligned under the header's
654
- // `flex-start` — no padding magic. The subtitle flows below.
655
- titleLine: {
656
- minHeight: 24,
657
- display: "flex",
658
- alignItems: "center",
659
- gap: 0.5
660
- },
661
- // No `flex:1` here — the title sizes to its own text (shrinking to
662
- // ellipsis when too long) so the chevron sits right after it, instead of
663
- // being dragged to the trailing edge of `titleLine` (which spans the full
664
- // width of `titleBox`, itself `flex:1` to fill the header up to actions).
665
- title: {
666
- minWidth: 0,
667
- overflow: "hidden",
668
- textOverflow: "ellipsis",
669
- whiteSpace: "nowrap"
670
- },
671
- // Informative collapse indicator beside the title (the title area is the
672
- // button). Points down when expanded, right when collapsed; not shown on
673
- // touch devices — there the title row itself is the affordance.
674
- chevron: {
675
- fontSize: 16,
676
- color: "text.secondary",
677
- flexShrink: 0,
678
- transition: ({
679
- transitions: t
680
- }) => t.create("transform", {
681
- duration: t.duration.shorter
682
- }),
683
- "@media (hover: none)": {
684
- display: "none"
685
- }
686
- },
687
- chevronCollapsed: {
688
- transform: "rotate(-90deg)"
689
- },
690
- // Same 24px band as the title line, so both sides of the header stay
691
- // aligned even when the composed actions are shorter (or fade out).
692
- // Icon buttons (actions + collapse chevron) are squeezed to 24×24:
693
- // 2px padding around the 20px small icon.
694
- actions: {
695
- minHeight: 24,
696
- display: "flex",
697
- alignItems: "center",
698
- gap: 0.25,
699
- flexShrink: 0,
700
- "& .MuiIconButton-root": {
701
- padding: "2px"
702
- }
703
- },
704
- // Figma rhythm: ~16px from the subtitle to the select (8px header bottom
705
- // padding + 4px here + line leading), 8px between body blocks, 8px bottom
706
- // inset before the next row's divider.
707
- content: {
708
- display: "flex",
709
- flexDirection: "column",
710
- gap: 1,
711
- padding: ({
712
- spacing: t
713
- }) => t(0.5, 2, 1, 2)
714
- },
715
- contentGrouped: {
716
- paddingLeft: 4.5
717
- },
718
- // ~16px above the note (content's 8px bottom inset + 8px here), per design.
719
- footer: {
720
- padding: ({
721
- spacing: t
722
- }) => t(1, 2, 1, 2)
723
- },
724
- footerGrouped: {
725
- paddingLeft: 4.5
726
- },
727
- dimmed: {
728
- opacity: 0.5
729
- }
318
+ //#endregion
319
+ //#region src/legend/components/legend-sortable/sortable-entity.tsx
320
+ function Le(t) {
321
+ let n = y(31), { kind: r, id: i, render: a } = t, { labels: o } = K(), s;
322
+ n[0] !== i || n[1] !== r ? (s = Pe(r, i), n[0] = i, n[1] = r, n[2] = s) : s = n[2];
323
+ let c;
324
+ n[3] === s ? c = n[4] : (c = { id: s }, n[3] = s, n[4] = c);
325
+ let { attributes: l, listeners: u, setNodeRef: d, setActivatorNodeRef: f, transform: p, transition: m, isDragging: h } = le(c), g;
326
+ if (n[5] !== l || n[6] !== h || n[7] !== r || n[8] !== o.reorder || n[9] !== u || n[10] !== a || n[11] !== f || n[12] !== d || n[13] !== p || n[14] !== m) {
327
+ let t = {
328
+ transform: de.Transform.toString(p ? {
329
+ ...p,
330
+ x: 0
331
+ } : null),
332
+ transition: m
333
+ }, i = `PsLegend-dragHandle-${r}`, s = r === "group" ? Ie.handleSlotGroup : Ie.handleSlotLayer, c;
334
+ n[16] === s ? c = n[17] : (c = [Ie.handleSlot, s], n[16] = s, n[17] = c);
335
+ let _;
336
+ n[18] === Symbol.for("react.memo_cache_sentinel") ? (_ = /* @__PURE__ */ V(G, {}), n[18] = _) : _ = n[18];
337
+ let v;
338
+ n[19] !== l || n[20] !== o.reorder || n[21] !== u || n[22] !== f ? (v = /* @__PURE__ */ V(P, {
339
+ ref: f,
340
+ size: "xsmall",
341
+ "aria-label": o.reorder,
342
+ ...l,
343
+ ...u,
344
+ sx: Ie.handle,
345
+ children: _
346
+ }), n[19] = l, n[20] = o.reorder, n[21] = u, n[22] = f, n[23] = v) : v = n[23];
347
+ let y;
348
+ n[24] !== o.reorder || n[25] !== v ? (y = /* @__PURE__ */ V(e, {
349
+ title: o.reorder,
350
+ children: v
351
+ }), n[24] = o.reorder, n[25] = v, n[26] = y) : y = n[26];
352
+ let b;
353
+ n[27] !== i || n[28] !== c || n[29] !== y ? (b = /* @__PURE__ */ V(k, {
354
+ component: "span",
355
+ className: i,
356
+ sx: c,
357
+ children: y
358
+ }), n[27] = i, n[28] = c, n[29] = y, n[30] = b) : b = n[30], g = a({
359
+ rootRef: d,
360
+ rootStyle: t,
361
+ dragging: h,
362
+ handle: b
363
+ }), n[5] = l, n[6] = h, n[7] = r, n[8] = o.reorder, n[9] = u, n[10] = a, n[11] = f, n[12] = d, n[13] = p, n[14] = m, n[15] = g;
364
+ } else g = n[15];
365
+ return g;
366
+ }
367
+ //#endregion
368
+ //#region src/legend/components/legend-group/legend-group.tsx
369
+ function Re(e) {
370
+ let n = y(27), { groupId: i, children: a } = e, s = r(), l;
371
+ n[0] === i ? l = n[1] : (l = (e) => e.groups[i], n[0] = i, n[1] = l);
372
+ let d = u(s, l), f = u(s, Be), p;
373
+ n[2] === i ? p = n[3] : (p = (e) => o(e, i) === "hidden", n[2] = i, n[3] = p);
374
+ let m = g(s, p), h = Ne(), _;
375
+ n[4] === i ? _ = n[5] : (_ = (e) => c(e, i).map(ze), n[4] = i, n[5] = _);
376
+ let v = u(s, _);
377
+ if (!d) return null;
378
+ let b;
379
+ n[6] === a ? b = n[7] : (b = Ae(a), n[6] = a, n[7] = b);
380
+ let { actions: x, body: S } = b, C;
381
+ n[8] !== d.collapsed || n[9] !== i || n[10] !== f ? (C = () => f(i, !d.collapsed), n[8] = d.collapsed, n[9] = i, n[10] = f, n[11] = C) : C = n[11];
382
+ let w = C, T;
383
+ n[12] !== x || n[13] !== S || n[14] !== d.collapsed || n[15] !== d.icon || n[16] !== d.label || n[17] !== i || n[18] !== m || n[19] !== v || n[20] !== h || n[21] !== w ? (T = (e) => /* @__PURE__ */ V(we.Provider, {
384
+ value: i,
385
+ children: /* @__PURE__ */ H(k, {
386
+ ref: e?.rootRef,
387
+ style: e?.rootStyle,
388
+ sx: [J.group, e?.dragging === !0 && J.groupDragging],
389
+ children: [/* @__PURE__ */ H(k, {
390
+ sx: J.header,
391
+ children: [
392
+ e?.handle,
393
+ /* @__PURE__ */ H(k, {
394
+ sx: J.titleArea,
395
+ role: "button",
396
+ tabIndex: 0,
397
+ "aria-expanded": !d.collapsed,
398
+ onClick: w,
399
+ onKeyDown: Se(w),
400
+ children: [
401
+ d.icon != null && /* @__PURE__ */ V(k, {
402
+ sx: J.groupIcon,
403
+ children: d.icon
404
+ }),
405
+ /* @__PURE__ */ V(t, {
406
+ title: d.label,
407
+ dependencies: [d.label],
408
+ children: (e) => {
409
+ let { ref: t } = e;
410
+ return /* @__PURE__ */ V(z, {
411
+ ref: t,
412
+ variant: "button",
413
+ fontWeight: "bold",
414
+ color: m ? "text.disabled" : "text.primary",
415
+ sx: J.label,
416
+ children: d.label
417
+ });
418
+ }
419
+ }),
420
+ /* @__PURE__ */ V(ie, { sx: [J.chevron, d.collapsed && J.chevronCollapsed] })
421
+ ]
422
+ }),
423
+ /* @__PURE__ */ V(k, {
424
+ className: "PsLegend-groupActions",
425
+ sx: J.actions,
426
+ children: x
427
+ })
428
+ ]
429
+ }), /* @__PURE__ */ V(M, {
430
+ in: !d.collapsed,
431
+ children: h ? /* @__PURE__ */ V(ce, {
432
+ items: v,
433
+ strategy: ue,
434
+ children: S
435
+ }) : S
436
+ })]
437
+ })
438
+ }), n[12] = x, n[13] = S, n[14] = d.collapsed, n[15] = d.icon, n[16] = d.label, n[17] = i, n[18] = m, n[19] = v, n[20] = h, n[21] = w, n[22] = T) : T = n[22];
439
+ let E = T, D;
440
+ return n[23] !== i || n[24] !== E || n[25] !== h ? (D = h ? /* @__PURE__ */ V(Le, {
441
+ kind: "group",
442
+ id: i,
443
+ render: E
444
+ }) : E(), n[23] = i, n[24] = E, n[25] = h, n[26] = D) : D = n[26], D;
445
+ }
446
+ function ze(e) {
447
+ return Pe("layer", e.id);
448
+ }
449
+ function Be(e) {
450
+ return e.setGroupCollapsed;
451
+ }
452
+ //#endregion
453
+ //#region src/legend/components/legend-row/styles.ts
454
+ var Y = {
455
+ row: {
456
+ display: "flex",
457
+ flexDirection: "column",
458
+ position: "relative",
459
+ "& + &": {
460
+ borderTop: "1px solid",
461
+ borderColor: "divider"
462
+ },
463
+ "& .PsLegend-rowFade > *": {
464
+ opacity: 1,
465
+ transition: ({ transitions: e }) => e.create(["opacity", "width"], {
466
+ duration: e.duration.standard,
467
+ easing: e.easing.easeInOut
468
+ }),
469
+ "@media (hover: hover)": { opacity: 0 },
470
+ "&.active": { opacity: 1 }
471
+ },
472
+ "@media (hover: hover)": {
473
+ "& .PsLegend-rowFade > *:not(.active)": {
474
+ width: 0,
475
+ minWidth: 0,
476
+ padding: 0,
477
+ overflow: "hidden",
478
+ pointerEvents: "none"
479
+ },
480
+ "& .PsLegend-rowActions:not(:has(.active))": {
481
+ width: 0,
482
+ minWidth: 0,
483
+ overflow: "hidden",
484
+ marginInlineStart: ({ spacing: e }) => `calc(-1 * ${e(.5)})`,
485
+ pointerEvents: "none"
486
+ }
487
+ },
488
+ "&:hover .PsLegend-rowFade > *, &:focus-within .PsLegend-rowFade > *": {
489
+ opacity: 1,
490
+ width: "auto",
491
+ minWidth: 0,
492
+ padding: "2px",
493
+ overflow: "visible",
494
+ pointerEvents: "auto"
495
+ },
496
+ "&:hover .PsLegend-rowActions, &:focus-within .PsLegend-rowActions": {
497
+ width: "auto",
498
+ minWidth: 0,
499
+ overflow: "visible",
500
+ marginInlineStart: 0,
501
+ pointerEvents: "auto"
502
+ },
503
+ "&:hover .PsLegend-value, &:focus-within .PsLegend-value": { opacity: 1 },
504
+ "& .PsLegend-dragHandle-layer > *": {
505
+ opacity: 0,
506
+ transition: ({ transitions: e }) => e.create("opacity", {
507
+ duration: e.duration.standard,
508
+ easing: e.easing.easeInOut
509
+ }),
510
+ "@media (hover: none)": { opacity: 1 }
511
+ },
512
+ "&:hover .PsLegend-dragHandle-layer > *, &:focus-within .PsLegend-dragHandle-layer > *": { opacity: 1 }
513
+ },
514
+ rowDragging: { opacity: .4 },
515
+ header: {
516
+ display: "flex",
517
+ alignItems: "flex-start",
518
+ gap: .5,
519
+ minHeight: 32,
520
+ padding: ({ spacing: e }) => e(1.5, 2, 1.5, 2),
521
+ position: "sticky",
522
+ zIndex: 2,
523
+ backgroundColor: "background.paper"
524
+ },
525
+ headerGrouped: { paddingLeft: 4.5 },
526
+ titleBox: {
527
+ flex: 1,
528
+ minWidth: 0,
529
+ display: "flex",
530
+ flexDirection: "column"
531
+ },
532
+ titleBoxInteractive: {
533
+ cursor: "pointer",
534
+ userSelect: "none",
535
+ "&:focus-visible": {
536
+ outline: "2px solid",
537
+ outlineColor: "primary.main",
538
+ outlineOffset: -2
539
+ }
540
+ },
541
+ titleLine: {
542
+ minHeight: 24,
543
+ display: "flex",
544
+ alignItems: "center",
545
+ gap: .5
546
+ },
547
+ title: {
548
+ minWidth: 0,
549
+ overflow: "hidden",
550
+ textOverflow: "ellipsis",
551
+ whiteSpace: "nowrap"
552
+ },
553
+ chevron: {
554
+ fontSize: 16,
555
+ color: "text.secondary",
556
+ flexShrink: 0,
557
+ transition: ({ transitions: e }) => e.create("transform", { duration: e.duration.shorter }),
558
+ "@media (hover: none)": { display: "none" }
559
+ },
560
+ chevronCollapsed: { transform: "rotate(-90deg)" },
561
+ actions: {
562
+ minHeight: 24,
563
+ display: "flex",
564
+ alignItems: "center",
565
+ gap: .25,
566
+ flexShrink: 0,
567
+ "& .MuiIconButton-root": { padding: "2px" }
568
+ },
569
+ content: {
570
+ display: "flex",
571
+ flexDirection: "column",
572
+ gap: 1,
573
+ padding: ({ spacing: e }) => e(.5, 2, 1, 2)
574
+ },
575
+ contentGrouped: { paddingLeft: 4.5 },
576
+ footer: { padding: ({ spacing: e }) => e(1, 2, 1, 2) },
577
+ footerGrouped: { paddingLeft: 4.5 },
578
+ dimmed: { opacity: .5 }
730
579
  };
731
- function Xt(t) {
732
- const e = T(31), {
733
- layerId: o,
734
- children: r
735
- } = t, l = N();
736
- let i;
737
- e[0] !== o ? (i = (m) => m.layers[o], e[0] = o, e[1] = i) : i = e[1];
738
- const n = Z(l, i), a = Z(l, qt);
739
- let s;
740
- e[2] !== o ? (s = (m) => Lt(m, o), e[2] = o, e[3] = s) : s = e[3];
741
- const c = j(l, s), p = ue() !== null, f = tt(), [u, y] = J(!1), h = n?.visible ?? !0, g = u && h;
742
- let x;
743
- e[4] !== o || e[5] !== g ? (x = {
744
- layerId: o,
745
- opacityOpen: g,
746
- setOpacityOpen: y
747
- }, e[4] = o, e[5] = g, e[6] = x) : x = e[6];
748
- const b = x;
749
- if (!n)
750
- return null;
751
- let S;
752
- e[7] !== r ? (S = Je(r), e[7] = r, e[8] = S) : S = e[8];
753
- const {
754
- actions: L,
755
- body: C
756
- } = S, v = !n.visible || n.collapsed, I = p ? we : 0, w = n.visible && c;
757
- let O;
758
- e[9] !== n.collapsed || e[10] !== o || e[11] !== a ? (O = () => a(o, !n.collapsed), e[9] = n.collapsed, e[10] = o, e[11] = a, e[12] = O) : O = e[12];
759
- const k = O;
760
- let $;
761
- e[13] !== L || e[14] !== C || e[15] !== w || e[16] !== v || e[17] !== p || e[18] !== n.collapsed || e[19] !== n.helperText || e[20] !== n.name || e[21] !== n.subtitle || e[22] !== n.visible || e[23] !== b || e[24] !== I || e[25] !== k ? ($ = (m) => /* @__PURE__ */ d(Ke.Provider, { value: b, children: /* @__PURE__ */ M(A, { ref: m?.rootRef, style: m?.rootStyle, sx: [F.row, m?.dragging === !0 && F.rowDragging], children: [
762
- /* @__PURE__ */ M(A, { sx: [F.header, p && F.headerGrouped], style: {
763
- top: I
764
- }, children: [
765
- m?.handle,
766
- /* @__PURE__ */ M(A, { sx: [F.titleBox, w && F.titleBoxInteractive], ...w && {
767
- role: "button",
768
- tabIndex: 0,
769
- "aria-expanded": !n.collapsed,
770
- onClick: k,
771
- onKeyDown: Ze(k)
772
- }, children: [
773
- /* @__PURE__ */ M(A, { sx: F.titleLine, children: [
774
- /* @__PURE__ */ d(Ue, { title: n.name, dependencies: [n.name], children: (P) => {
775
- const {
776
- ref: z
777
- } = P;
778
- return /* @__PURE__ */ d(E, { ref: z, variant: "button", color: n.visible ? "text.primary" : "text.disabled", sx: F.title, children: n.name });
779
- } }),
780
- w && /* @__PURE__ */ d(We, { sx: [F.chevron, n.collapsed && F.chevronCollapsed] })
781
- ] }),
782
- n.subtitle && !v && /* @__PURE__ */ d(E, { variant: "caption", color: "text.secondary", children: n.subtitle })
783
- ] }),
784
- /* @__PURE__ */ d(A, { className: "PsLegend-rowActions", sx: F.actions, children: L })
785
- ] }),
786
- /* @__PURE__ */ M(Re, { in: !v, children: [
787
- /* @__PURE__ */ d(A, { sx: [F.content, p && F.contentGrouped, !n.visible && F.dimmed], children: C }),
788
- n.helperText && /* @__PURE__ */ d(A, { sx: [F.footer, p && F.footerGrouped], children: typeof n.helperText == "string" ? /* @__PURE__ */ d(E, { variant: "caption", color: "text.secondary", children: n.helperText }) : n.helperText })
789
- ] })
790
- ] }) }), e[13] = L, e[14] = C, e[15] = w, e[16] = v, e[17] = p, e[18] = n.collapsed, e[19] = n.helperText, e[20] = n.name, e[21] = n.subtitle, e[22] = n.visible, e[23] = b, e[24] = I, e[25] = k, e[26] = $) : $ = e[26];
791
- const _ = $;
792
- let G;
793
- return e[27] !== o || e[28] !== _ || e[29] !== f ? (G = f ? /* @__PURE__ */ d(ot, { kind: "layer", id: o, render: _ }) : _(), e[27] = o, e[28] = _, e[29] = f, e[30] = G) : G = e[30], G;
794
- }
795
- function qt(t) {
796
- return t.setCollapsed;
797
- }
798
- const Qt = wt(/* @__PURE__ */ M("g", { transform: "translate(12 12) scale(1.33333) translate(-184 -24)", children: [
799
- /* @__PURE__ */ d("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M184.901 29.5794L185.217 29.5415C185.803 29.4604 186.372 29.3216 186.918 29.1319L187 29.1007L187 29.1033L187.208 29.0255L187.536 28.8904C187.722 28.8088 187.906 28.721 188.086 28.6272L188.366 28.4747C188.381 28.4663 188.395 28.4578 188.41 28.4493C188.418 28.4451 188.425 28.4408 188.432 28.4365C188.455 28.4234 188.478 28.4102 188.5 28.3969C188.551 28.3668 188.601 28.3362 188.652 28.3052L188.912 28.1374C189.598 27.6788 190.217 27.1271 190.75 26.5002L190.751 26.4954C190.989 26.2164 191.21 25.9226 191.413 25.6152C191.488 25.5007 191.561 25.3843 191.631 25.2662L191.757 25.0445L191.878 24.8189L192.021 24.5306L192.15 24.2443L192.25 24C190.98 20.7776 187.885 18.4747 184.239 18.3782L184 18.375L183.716 18.3795L183.637 18.3823L183.373 18.3967L183.103 18.4198L182.838 18.4506L182.666 18.4749L182.426 18.5146C182.19 18.557 181.957 18.6087 181.728 18.6684L181.55 18.7175L181.271 18.8039L182.508 20.04L182.801 19.9854C183.194 19.9182 183.592 19.875 184 19.875C186.842 19.875 189.378 21.4725 190.615 24C190.172 24.915 189.55 25.7025 188.807 26.34L188.811 26.3446C188.71 26.4323 188.606 26.5172 188.5 26.5991C188.455 26.6337 188.41 26.6679 188.364 26.7015C188.108 26.8897 187.84 27.0611 187.562 27.2145C187.088 27.4755 186.585 27.6844 186.058 27.836L186.062 27.84L185.778 27.9125C185.707 27.9293 185.635 27.9452 185.563 27.9602C185.297 28.0173 185.025 28.06 184.75 28.0876V28.0866C184.503 28.1118 184.253 28.125 184 28.125C181.158 28.125 178.622 26.5275 177.385 24C177.91 22.9275 178.675 22.0425 179.582 21.3525L180.895 22.665L180.826 22.844C180.697 23.2065 180.625 23.595 180.625 24C180.625 25.86 182.14 27.375 184 27.375C184.258 27.375 184.509 27.3459 184.75 27.2915C185.462 27.129 186.09 26.7397 186.553 26.2048L179.79 19.4389C179.339 19.6833 178.912 19.9656 178.512 20.2817L178.517 20.2875L178.271 20.4884C177.704 20.9671 177.197 21.516 176.766 22.1227C176.404 22.6333 176.095 23.1838 175.845 23.7662L175.75 24C177.048 27.2925 180.25 29.625 184 29.625L184.285 29.6205L184.492 29.6116L184.628 29.6025L184.901 29.5794ZM182.133 23.9025L184.09 25.86L184.045 25.8703L184 25.875C182.965 25.875 182.125 25.035 182.125 24L182.133 23.9025Z" }),
800
- /* @__PURE__ */ d("path", { d: "M187.368 23.9925C187.375 22.1325 185.86 20.625 184 20.625C183.722 20.625 183.46 20.6625 183.198 20.73L184.75 22.2825L184.889 22.3507C185.252 22.5477 185.543 22.8625 185.71 23.2425L187.263 24.795L187.304 24.6011C187.342 24.4045 187.368 24.2006 187.368 23.9925Z" })
801
- ] }), "VisibilityIndeterminate"), Yt = {
802
- visible: Be,
803
- hidden: _t,
804
- mixed: Qt
580
+ //#endregion
581
+ //#region src/legend/components/legend-row/legend-row.tsx
582
+ function Ve(e) {
583
+ let n = y(31), { layerId: i, children: a } = e, o = r(), s;
584
+ n[0] === i ? s = n[1] : (s = (e) => e.layers[i], n[0] = i, n[1] = s);
585
+ let c = u(o, s), l = u(o, He), f;
586
+ n[2] === i ? f = n[3] : (f = (e) => d(e, i), n[2] = i, n[3] = f);
587
+ let p = g(o, f), m = Te() !== null, h = Ne(), [_, v] = O(!1), b = c?.visible ?? !0, x = _ && b, S;
588
+ n[4] !== i || n[5] !== x ? (S = {
589
+ layerId: i,
590
+ opacityOpen: x,
591
+ setOpacityOpen: v
592
+ }, n[4] = i, n[5] = x, n[6] = S) : S = n[6];
593
+ let C = S;
594
+ if (!c) return null;
595
+ let w;
596
+ n[7] === a ? w = n[8] : (w = Ae(a), n[7] = a, n[8] = w);
597
+ let { actions: T, body: E } = w, D = !c.visible || c.collapsed, A = m ? 48 : 0, j = c.visible && p, N;
598
+ n[9] !== c.collapsed || n[10] !== i || n[11] !== l ? (N = () => l(i, !c.collapsed), n[9] = c.collapsed, n[10] = i, n[11] = l, n[12] = N) : N = n[12];
599
+ let P = N, F;
600
+ n[13] !== T || n[14] !== E || n[15] !== j || n[16] !== D || n[17] !== m || n[18] !== c.collapsed || n[19] !== c.helperText || n[20] !== c.name || n[21] !== c.subtitle || n[22] !== c.visible || n[23] !== C || n[24] !== A || n[25] !== P ? (F = (e) => /* @__PURE__ */ V(Ce.Provider, {
601
+ value: C,
602
+ children: /* @__PURE__ */ H(k, {
603
+ ref: e?.rootRef,
604
+ style: e?.rootStyle,
605
+ sx: [Y.row, e?.dragging === !0 && Y.rowDragging],
606
+ children: [/* @__PURE__ */ H(k, {
607
+ sx: [Y.header, m && Y.headerGrouped],
608
+ style: { top: A },
609
+ children: [
610
+ e?.handle,
611
+ /* @__PURE__ */ H(k, {
612
+ sx: [Y.titleBox, j && Y.titleBoxInteractive],
613
+ ...j && {
614
+ role: "button",
615
+ tabIndex: 0,
616
+ "aria-expanded": !c.collapsed,
617
+ onClick: P,
618
+ onKeyDown: Se(P)
619
+ },
620
+ children: [/* @__PURE__ */ H(k, {
621
+ sx: Y.titleLine,
622
+ children: [/* @__PURE__ */ V(t, {
623
+ title: c.name,
624
+ dependencies: [c.name],
625
+ children: (e) => {
626
+ let { ref: t } = e;
627
+ return /* @__PURE__ */ V(z, {
628
+ ref: t,
629
+ variant: "button",
630
+ color: c.visible ? "text.primary" : "text.disabled",
631
+ sx: Y.title,
632
+ children: c.name
633
+ });
634
+ }
635
+ }), j && /* @__PURE__ */ V(ie, { sx: [Y.chevron, c.collapsed && Y.chevronCollapsed] })]
636
+ }), c.subtitle && !D && /* @__PURE__ */ V(z, {
637
+ variant: "caption",
638
+ color: "text.secondary",
639
+ children: c.subtitle
640
+ })]
641
+ }),
642
+ /* @__PURE__ */ V(k, {
643
+ className: "PsLegend-rowActions",
644
+ sx: Y.actions,
645
+ children: T
646
+ })
647
+ ]
648
+ }), /* @__PURE__ */ H(M, {
649
+ in: !D,
650
+ children: [/* @__PURE__ */ V(k, {
651
+ sx: [
652
+ Y.content,
653
+ m && Y.contentGrouped,
654
+ !c.visible && Y.dimmed
655
+ ],
656
+ children: E
657
+ }), c.helperText && /* @__PURE__ */ V(k, {
658
+ sx: [Y.footer, m && Y.footerGrouped],
659
+ children: typeof c.helperText == "string" ? /* @__PURE__ */ V(z, {
660
+ variant: "caption",
661
+ color: "text.secondary",
662
+ children: c.helperText
663
+ }) : c.helperText
664
+ })]
665
+ })]
666
+ })
667
+ }), n[13] = T, n[14] = E, n[15] = j, n[16] = D, n[17] = m, n[18] = c.collapsed, n[19] = c.helperText, n[20] = c.name, n[21] = c.subtitle, n[22] = c.visible, n[23] = C, n[24] = A, n[25] = P, n[26] = F) : F = n[26];
668
+ let I = F, L;
669
+ return n[27] !== i || n[28] !== I || n[29] !== h ? (L = h ? /* @__PURE__ */ V(Le, {
670
+ kind: "layer",
671
+ id: i,
672
+ render: I
673
+ }) : I(), n[27] = i, n[28] = I, n[29] = h, n[30] = L) : L = n[30], L;
674
+ }
675
+ function He(e) {
676
+ return e.setCollapsed;
677
+ }
678
+ //#endregion
679
+ //#region src/legend/components/icons.tsx
680
+ var Ue = te(/* @__PURE__ */ H("g", {
681
+ transform: "translate(12 12) scale(1.33333) translate(-184 -24)",
682
+ children: [/* @__PURE__ */ V("path", {
683
+ fillRule: "evenodd",
684
+ clipRule: "evenodd",
685
+ d: "M184.901 29.5794L185.217 29.5415C185.803 29.4604 186.372 29.3216 186.918 29.1319L187 29.1007L187 29.1033L187.208 29.0255L187.536 28.8904C187.722 28.8088 187.906 28.721 188.086 28.6272L188.366 28.4747C188.381 28.4663 188.395 28.4578 188.41 28.4493C188.418 28.4451 188.425 28.4408 188.432 28.4365C188.455 28.4234 188.478 28.4102 188.5 28.3969C188.551 28.3668 188.601 28.3362 188.652 28.3052L188.912 28.1374C189.598 27.6788 190.217 27.1271 190.75 26.5002L190.751 26.4954C190.989 26.2164 191.21 25.9226 191.413 25.6152C191.488 25.5007 191.561 25.3843 191.631 25.2662L191.757 25.0445L191.878 24.8189L192.021 24.5306L192.15 24.2443L192.25 24C190.98 20.7776 187.885 18.4747 184.239 18.3782L184 18.375L183.716 18.3795L183.637 18.3823L183.373 18.3967L183.103 18.4198L182.838 18.4506L182.666 18.4749L182.426 18.5146C182.19 18.557 181.957 18.6087 181.728 18.6684L181.55 18.7175L181.271 18.8039L182.508 20.04L182.801 19.9854C183.194 19.9182 183.592 19.875 184 19.875C186.842 19.875 189.378 21.4725 190.615 24C190.172 24.915 189.55 25.7025 188.807 26.34L188.811 26.3446C188.71 26.4323 188.606 26.5172 188.5 26.5991C188.455 26.6337 188.41 26.6679 188.364 26.7015C188.108 26.8897 187.84 27.0611 187.562 27.2145C187.088 27.4755 186.585 27.6844 186.058 27.836L186.062 27.84L185.778 27.9125C185.707 27.9293 185.635 27.9452 185.563 27.9602C185.297 28.0173 185.025 28.06 184.75 28.0876V28.0866C184.503 28.1118 184.253 28.125 184 28.125C181.158 28.125 178.622 26.5275 177.385 24C177.91 22.9275 178.675 22.0425 179.582 21.3525L180.895 22.665L180.826 22.844C180.697 23.2065 180.625 23.595 180.625 24C180.625 25.86 182.14 27.375 184 27.375C184.258 27.375 184.509 27.3459 184.75 27.2915C185.462 27.129 186.09 26.7397 186.553 26.2048L179.79 19.4389C179.339 19.6833 178.912 19.9656 178.512 20.2817L178.517 20.2875L178.271 20.4884C177.704 20.9671 177.197 21.516 176.766 22.1227C176.404 22.6333 176.095 23.1838 175.845 23.7662L175.75 24C177.048 27.2925 180.25 29.625 184 29.625L184.285 29.6205L184.492 29.6116L184.628 29.6025L184.901 29.5794ZM182.133 23.9025L184.09 25.86L184.045 25.8703L184 25.875C182.965 25.875 182.125 25.035 182.125 24L182.133 23.9025Z"
686
+ }), /* @__PURE__ */ V("path", { d: "M187.368 23.9925C187.375 22.1325 185.86 20.625 184 20.625C183.722 20.625 183.46 20.6625 183.198 20.73L184.75 22.2825L184.889 22.3507C185.252 22.5477 185.543 22.8625 185.71 23.2425L187.263 24.795L187.304 24.6011C187.342 24.4045 187.368 24.2006 187.368 23.9925Z" })]
687
+ }), "VisibilityIndeterminate"), We = {
688
+ visible: se,
689
+ hidden: oe,
690
+ mixed: Ue
805
691
  };
806
- function Jt(t) {
807
- const e = T(36), {
808
- visibility: o,
809
- onToggle: r,
810
- labels: l
811
- } = t, i = N(), n = Q(), a = ue(), {
812
- labels: s
813
- } = W(), c = o !== void 0 && r !== void 0;
814
- let p;
815
- e[0] !== c || e[1] !== n ? (p = (m) => !c && n ? m.layers[n.layerId]?.visible ?? !0 : !0, e[0] = c, e[1] = n, e[2] = p) : p = e[2];
816
- const f = j(i, p);
817
- let u;
818
- e[3] !== c || e[4] !== a || e[5] !== n ? (u = (m) => !c && !n && a ? $e(m, a) : "visible", e[3] = c, e[4] = a, e[5] = n, e[6] = u) : u = e[6];
819
- const y = Z(i, u), h = j(i, to), g = j(i, eo);
820
- let x, b;
821
- e[7] !== c || e[8] !== a || e[9] !== n ? (x = () => {
822
- !c && !n && !a && console.warn("Legend.VisibilityToggle needs `visibility`/`onToggle` props or a Legend.Row / Legend.Group context.");
823
- }, b = [c, n, a], e[7] = c, e[8] = a, e[9] = n, e[10] = x, e[11] = b) : (x = e[10], b = e[11]), ft(x, b);
824
- let S, L, C = l;
825
- if (c) {
826
- S = o;
827
- let m;
828
- e[12] !== r || e[13] !== o ? (m = () => r(o === "hidden"), e[12] = r, e[13] = o, e[14] = m) : m = e[14], L = m;
829
- } else if (n) {
830
- S = f ? "visible" : "hidden";
831
- let m;
832
- e[15] !== f || e[16] !== n || e[17] !== h ? (m = () => h(n.layerId, !f), e[15] = f, e[16] = n, e[17] = h, e[18] = m) : m = e[18], L = m;
833
- } else if (a) {
834
- S = y;
835
- let m;
836
- e[19] !== a || e[20] !== y || e[21] !== g ? (m = () => g(a, y === "hidden"), e[19] = a, e[20] = y, e[21] = g, e[22] = m) : m = e[22], L = m;
837
- let P;
838
- e[23] !== s || e[24] !== l ? (P = l ?? {
839
- hideLayer: s.hideGroup,
840
- showLayer: s.showGroup
841
- }, e[23] = s, e[24] = l, e[25] = P) : P = e[25], C = P;
842
- } else
843
- return null;
844
- const {
845
- hideLayer: v,
846
- showLayer: I
847
- } = C ?? s, w = Yt[S], O = S === "hidden" ? I : v, k = S === "visible" ? void 0 : "active";
848
- let $;
849
- e[26] !== w ? ($ = /* @__PURE__ */ d(w, { fontSize: "small" }), e[26] = w, e[27] = $) : $ = e[27];
850
- let _;
851
- e[28] !== L || e[29] !== O || e[30] !== k || e[31] !== $ ? (_ = /* @__PURE__ */ d(xe, { size: "small", className: k, onClick: L, "aria-label": O, children: $ }), e[28] = L, e[29] = O, e[30] = k, e[31] = $, e[32] = _) : _ = e[32];
852
- let G;
853
- return e[33] !== O || e[34] !== _ ? (G = /* @__PURE__ */ d(ie, { title: O, children: _ }), e[33] = O, e[34] = _, e[35] = G) : G = e[35], G;
854
- }
855
- function eo(t) {
856
- return t.setGroupVisibility;
857
- }
858
- function to(t) {
859
- return t.setVisibility;
860
- }
861
- function _e(t) {
862
- const e = T(23), {
863
- children: o,
864
- gate: r,
865
- ariaLabel: l,
866
- active: i
867
- } = t, n = r === void 0 ? !0 : r, a = i === void 0 ? !1 : i, [s, c] = J(null), [p, f] = J(!1), u = De(!1), y = !!s, {
868
- labels: h
869
- } = W();
870
- let g;
871
- e[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (g = () => c(null), e[0] = g) : g = e[0];
872
- const x = g;
873
- let b;
874
- e[1] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (b = (V) => {
875
- u.current = V, f(V);
876
- }, e[1] = b) : b = e[1];
877
- const S = b;
878
- let L;
879
- e[2] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (L = () => u.current, e[2] = L) : L = e[2];
880
- const C = L;
881
- let v;
882
- e[3] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (v = () => {
883
- u.current || x();
884
- }, e[3] = v) : v = e[3];
885
- const I = v;
886
- let w;
887
- e[4] !== p ? (w = {
888
- busy: p,
889
- isBusy: C,
890
- setBusy: S,
891
- close: x
892
- }, e[4] = p, e[5] = w) : w = e[5];
893
- const O = w;
894
- if (!n || !o)
895
- return null;
896
- let k;
897
- e[6] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (k = (V) => {
898
- V.stopPropagation(), c(V.currentTarget);
899
- }, e[6] = k) : k = e[6];
900
- const $ = k, _ = y || p || a ? "active" : void 0;
901
- let G;
902
- e[7] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (G = /* @__PURE__ */ d(Gt, { fontSize: "small" }), e[7] = G) : G = e[7];
903
- let m;
904
- e[8] !== l || e[9] !== y || e[10] !== _ ? (m = /* @__PURE__ */ d(xe, { size: "small", className: _, onClick: $, "aria-label": l, "aria-haspopup": "menu", "aria-expanded": y, children: G }), e[8] = l, e[9] = y, e[10] = _, e[11] = m) : m = e[11];
905
- let P;
906
- e[12] !== h.moreOptions || e[13] !== m ? (P = /* @__PURE__ */ d(ie, { title: h.moreOptions, children: m }), e[12] = h.moreOptions, e[13] = m, e[14] = P) : P = e[14];
907
- let z;
908
- e[15] !== s || e[16] !== o || e[17] !== y ? (z = /* @__PURE__ */ d(Oe, { anchorEl: s, open: y, onClose: I, onClick: I, children: o }), e[15] = s, e[16] = o, e[17] = y, e[18] = z) : z = e[18];
909
- let D;
910
- return e[19] !== O || e[20] !== P || e[21] !== z ? (D = /* @__PURE__ */ M(qe.Provider, { value: O, children: [
911
- P,
912
- z
913
- ] }), e[19] = O, e[20] = P, e[21] = z, e[22] = D) : D = e[22], D;
914
- }
915
- function oo(t) {
916
- const e = T(5), {
917
- children: o
918
- } = t, r = Q(), {
919
- labels: l
920
- } = W(), i = !!r, n = r?.opacityOpen ?? !1;
921
- let a;
922
- return e[0] !== o || e[1] !== l.layerOptions || e[2] !== i || e[3] !== n ? (a = /* @__PURE__ */ d(_e, { gate: i, ariaLabel: l.layerOptions, active: n, children: o }), e[0] = o, e[1] = l.layerOptions, e[2] = i, e[3] = n, e[4] = a) : a = e[4], a;
923
- }
924
- async function nt(t, e) {
925
- if (!t.isBusy()) {
926
- t.setBusy(!0);
927
- try {
928
- await e();
929
- } finally {
930
- t.setBusy(!1), t.close();
931
- }
932
- }
933
- }
934
- function no(t) {
935
- const e = T(13), {
936
- onZoomTo: o
937
- } = t, r = N(), l = Q(), i = Qe();
938
- let n;
939
- e[0] !== l ? (n = (g) => l ? g.layers[l.layerId]?.visible ?? !1 : !1, e[0] = l, e[1] = n) : n = e[1];
940
- const a = j(r, n), {
941
- labels: s
942
- } = W();
943
- if (!l || !a)
944
- return null;
945
- const c = i?.busy ?? !1;
946
- let p;
947
- e[2] !== i || e[3] !== o || e[4] !== l ? (p = (g) => {
948
- g.stopPropagation(), i && nt(i, () => o(l.layerId));
949
- }, e[2] = i, e[3] = o, e[4] = l, e[5] = p) : p = e[5];
950
- const f = p;
951
- let u;
952
- e[6] !== c ? (u = c && /* @__PURE__ */ d(Ve, { size: 16, sx: {
953
- mr: 1
954
- } }), e[6] = c, e[7] = u) : u = e[7];
955
- const y = c ? s.loading : s.zoomTo;
956
- let h;
957
- return e[8] !== c || e[9] !== f || e[10] !== u || e[11] !== y ? (h = /* @__PURE__ */ M(q, { disabled: c, onClick: f, children: [
958
- u,
959
- y
960
- ] }), e[8] = c, e[9] = f, e[10] = u, e[11] = y, e[12] = h) : h = e[12], h;
961
- }
962
- function lo() {
963
- const t = T(6), e = N(), o = Q(), {
964
- labels: r
965
- } = W();
966
- if (!o)
967
- return null;
968
- let l;
969
- t[0] !== e || t[1] !== o.layerId ? (l = () => {
970
- const a = X(e).getState(), s = a.layers[o.layerId];
971
- if (s)
972
- for (const c of re(a, s.groupId))
973
- a.setVisibility(c.id, c.id === o.layerId);
974
- }, t[0] = e, t[1] = o.layerId, t[2] = l) : l = t[2];
975
- const i = l;
976
- let n;
977
- return t[3] !== r.showOnlyLayer || t[4] !== i ? (n = /* @__PURE__ */ d(q, { onClick: i, children: r.showOnlyLayer }), t[3] = r.showOnlyLayer, t[4] = i, t[5] = n) : n = t[5], n;
978
- }
979
- function io() {
980
- const t = T(6), e = N(), o = ue(), r = Q(), {
981
- labels: l
982
- } = W();
983
- if (o === null && !r)
984
- return null;
985
- let i;
986
- t[0] !== o || t[1] !== e ? (i = () => {
987
- const s = X(e).getState();
988
- if (o !== null)
989
- s.setGroupVisibility(o, !0);
990
- else
991
- for (const c of re(s, void 0))
992
- s.setVisibility(c.id, !0);
993
- }, t[0] = o, t[1] = e, t[2] = i) : i = t[2];
994
- const n = i;
995
- let a;
996
- return t[3] !== l.showAllLayers || t[4] !== n ? (a = /* @__PURE__ */ d(q, { onClick: n, children: l.showAllLayers }), t[3] = l.showAllLayers, t[4] = n, t[5] = a) : a = t[5], a;
997
- }
998
- function ro(t) {
999
- const e = T(4), {
1000
- children: o
1001
- } = t, r = ue(), {
1002
- labels: l
1003
- } = W(), i = r !== null;
1004
- let n;
1005
- return e[0] !== o || e[1] !== l.groupOptions || e[2] !== i ? (n = /* @__PURE__ */ d(_e, { gate: i, ariaLabel: l.groupOptions, children: o }), e[0] = o, e[1] = l.groupOptions, e[2] = i, e[3] = n) : n = e[3], n;
1006
- }
1007
- function so() {
1008
- const t = T(6), e = N(), o = ue(), {
1009
- labels: r
1010
- } = W();
1011
- if (o === null)
1012
- return null;
1013
- let l;
1014
- t[0] !== o || t[1] !== e ? (l = () => {
1015
- const a = X(e).getState();
1016
- for (const s of ve(a))
1017
- a.setGroupVisibility(s.id, s.id === o);
1018
- for (const s of re(a, void 0))
1019
- a.setVisibility(s.id, !1);
1020
- }, t[0] = o, t[1] = e, t[2] = l) : l = t[2];
1021
- const i = l;
1022
- let n;
1023
- return t[3] !== r.showOnlyGroup || t[4] !== i ? (n = /* @__PURE__ */ d(q, { onClick: i, children: r.showOnlyGroup }), t[3] = r.showOnlyGroup, t[4] = i, t[5] = n) : n = t[5], n;
1024
- }
1025
- function ao() {
1026
- const t = T(5), e = N(), o = j(e, Ee), {
1027
- labels: r
1028
- } = W();
1029
- if (!o)
1030
- return null;
1031
- let l;
1032
- t[0] !== e ? (l = () => {
1033
- const a = X(e).getState();
1034
- for (const s of ve(a))
1035
- a.setGroupVisibility(s.id, !0);
1036
- for (const s of re(a, void 0))
1037
- a.setVisibility(s.id, !0);
1038
- }, t[0] = e, t[1] = l) : l = t[1];
1039
- const i = l;
1040
- let n;
1041
- return t[2] !== r.showAllGroups || t[3] !== i ? (n = /* @__PURE__ */ d(q, { onClick: i, children: r.showAllGroups }), t[2] = r.showAllGroups, t[3] = i, t[4] = n) : n = t[4], n;
1042
- }
1043
- function co() {
1044
- const t = T(5), e = N(), o = j(e, Ee), r = j(e, Ae), {
1045
- labels: l
1046
- } = W();
1047
- if (!o)
1048
- return null;
1049
- let i;
1050
- t[0] !== e ? (i = () => {
1051
- const c = X(e).getState(), p = Ae(c);
1052
- for (const f of ve(c))
1053
- c.setGroupCollapsed(f.id, !p);
1054
- }, t[0] = e, t[1] = i) : i = t[1];
1055
- const n = i, a = r ? l.expandAllGroups : l.collapseAllGroups;
1056
- let s;
1057
- return t[2] !== a || t[3] !== n ? (s = /* @__PURE__ */ d(q, { onClick: n, children: a }), t[2] = a, t[3] = n, t[4] = s) : s = t[4], s;
1058
- }
1059
- function uo(t) {
1060
- const e = T(13), {
1061
- onZoomTo: o
1062
- } = t, r = N(), l = ue(), i = Qe();
1063
- let n;
1064
- e[0] !== l ? (n = (g) => l !== null && $e(g, l) === "hidden", e[0] = l, e[1] = n) : n = e[1];
1065
- const a = j(r, n), {
1066
- labels: s
1067
- } = W();
1068
- if (l === null || a)
1069
- return null;
1070
- const c = i?.busy ?? !1;
1071
- let p;
1072
- e[2] !== l || e[3] !== i || e[4] !== o ? (p = (g) => {
1073
- g.stopPropagation(), i && nt(i, () => o(l));
1074
- }, e[2] = l, e[3] = i, e[4] = o, e[5] = p) : p = e[5];
1075
- const f = p;
1076
- let u;
1077
- e[6] !== c ? (u = c && /* @__PURE__ */ d(Ve, { size: 16, sx: {
1078
- mr: 1
1079
- } }), e[6] = c, e[7] = u) : u = e[7];
1080
- const y = c ? s.loading : s.zoomToGroup;
1081
- let h;
1082
- return e[8] !== c || e[9] !== f || e[10] !== u || e[11] !== y ? (h = /* @__PURE__ */ M(q, { disabled: c, onClick: f, children: [
1083
- u,
1084
- y
1085
- ] }), e[8] = c, e[9] = f, e[10] = u, e[11] = y, e[12] = h) : h = e[12], h;
1086
- }
1087
- function po(t) {
1088
- const e = T(3), {
1089
- children: o
1090
- } = t, {
1091
- labels: r
1092
- } = W();
1093
- let l;
1094
- return e[0] !== o || e[1] !== r.panelOptions ? (l = /* @__PURE__ */ d(_e, { ariaLabel: r.panelOptions, children: o }), e[0] = o, e[1] = r.panelOptions, e[2] = l) : l = e[2], l;
1095
- }
1096
- const ee = {
1097
- // Tooltip wrapper around the (possibly disabled) trigger button. A plain
1098
- // inline span would be sized by the line box and end up taller than the
1099
- // button inside.
1100
- triggerWrap: {
1101
- display: "inline-flex"
1102
- },
1103
- paper: {
1104
- width: 240,
1105
- maxHeight: 320,
1106
- // List padding is disabled (flush sticky header); keep a small bottom
1107
- // inset so the last 32px item doesn't touch the paper edge.
1108
- paddingBottom: 0.5
1109
- },
1110
- stickyHeader: {
1111
- position: "sticky",
1112
- top: 0,
1113
- zIndex: 1,
1114
- backgroundColor: "background.paper",
1115
- padding: 1,
1116
- marginBlockEnd: 1,
1117
- lineHeight: "16px",
1118
- borderBottom: "1px solid",
1119
- borderColor: "divider"
1120
- },
1121
- groupCaption: {
1122
- display: "block",
1123
- padding: ({
1124
- spacing: t
1125
- }) => t(0.5, 1.5)
1126
- },
1127
- // The whole item is the hide action (keyboard-friendly); the eye is its
1128
- // visual affordance.
1129
- item: {
1130
- minHeight: 32,
1131
- display: "flex",
1132
- alignItems: "center",
1133
- justifyContent: "space-between",
1134
- gap: 1,
1135
- padding: ({
1136
- spacing: t
1137
- }) => t(0, 1, 0, 1.5)
1138
- },
1139
- itemName: {
1140
- minWidth: 0,
1141
- overflow: "hidden",
1142
- textOverflow: "ellipsis",
1143
- whiteSpace: "nowrap"
1144
- },
1145
- // Design's 18px glyph — decorative (the item itself is the action).
1146
- eye: {
1147
- fontSize: 18,
1148
- color: "action.active",
1149
- flexShrink: 0
1150
- },
1151
- divider: {
1152
- marginY: 1
1153
- }
1154
- };
1155
- function fo(t, e) {
1156
- return He(X(t).getState());
1157
- }
1158
- function ho() {
1159
- const t = T(33), e = N(), [o, r] = J(null);
1160
- j(e, mo);
1161
- const l = fo(e), i = Z(e, yo), {
1162
- labels: n
1163
- } = W(), a = l.reduce(go, 0), s = !!o && a > 0;
1164
- let c;
1165
- t[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (c = (G) => r(G.currentTarget), t[0] = c) : c = t[0];
1166
- const p = c;
1167
- let f;
1168
- t[1] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (f = () => r(null), t[1] = f) : f = t[1];
1169
- const u = f, y = s ? "active" : void 0, h = a === 0;
1170
- let g;
1171
- t[2] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (g = /* @__PURE__ */ d(Pt, { fontSize: "small" }), t[2] = g) : g = t[2];
1172
- let x;
1173
- t[3] !== n.enabledLayers || t[4] !== s || t[5] !== y || t[6] !== h ? (x = /* @__PURE__ */ d(A, { component: "span", sx: ee.triggerWrap, children: /* @__PURE__ */ d(xe, { size: "small", className: y, disabled: h, onClick: p, "aria-label": n.enabledLayers, "aria-haspopup": "menu", "aria-expanded": s, children: g }) }), t[3] = n.enabledLayers, t[4] = s, t[5] = y, t[6] = h, t[7] = x) : x = t[7];
1174
- let b;
1175
- t[8] !== n.toggleEnabledLayers || t[9] !== x ? (b = /* @__PURE__ */ d(ie, { title: n.toggleEnabledLayers, children: x }), t[8] = n.toggleEnabledLayers, t[9] = x, t[10] = b) : b = t[10];
1176
- const S = Oe;
1177
- let L;
1178
- t[11] !== u ? (L = {
1179
- onExited: u
1180
- }, t[11] = u, t[12] = L) : L = t[12];
1181
- let C, v;
1182
- t[13] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (C = {
1183
- disablePadding: !0
1184
- }, v = {
1185
- paper: {
1186
- sx: ee.paper
1187
- }
1188
- }, t[13] = C, t[14] = v) : (C = t[13], v = t[14]);
1189
- const I = `${n.enabledLayers} (${a})`;
1190
- let w;
1191
- t[15] !== I ? (w = /* @__PURE__ */ d(E, { component: "div", variant: "caption", color: "text.primary", sx: ee.stickyHeader, children: I }), t[15] = I, t[16] = w) : w = t[16];
1192
- let O;
1193
- t[17] !== n.hideLayer || t[18] !== i ? (O = (G, m) => [m > 0 ? /* @__PURE__ */ d(St, { sx: ee.divider }, `divider-${G.group?.id ?? "ungrouped"}`) : null, G.group ? /* @__PURE__ */ d(E, { variant: "caption", fontWeight: "medium", color: "text.secondary", sx: ee.groupCaption, children: G.group.label }, `caption-${G.group.id}`) : null, ...G.layers.map((P) => /* @__PURE__ */ M(q, { disableRipple: !0, sx: ee.item, onClick: () => i(P.id, !1), children: [
1194
- /* @__PURE__ */ d(E, { variant: "body2", sx: ee.itemName, children: P.name }),
1195
- /* @__PURE__ */ d(ie, { title: n.hideLayer, children: /* @__PURE__ */ d(Be, { sx: ee.eye }) })
1196
- ] }, P.id))], t[17] = n.hideLayer, t[18] = i, t[19] = O) : O = t[19];
1197
- const k = l.flatMap(O);
1198
- let $;
1199
- t[20] !== S || t[21] !== o || t[22] !== u || t[23] !== s || t[24] !== w || t[25] !== k || t[26] !== L || t[27] !== C || t[28] !== v ? ($ = /* @__PURE__ */ M(S, { anchorEl: o, open: s, onClose: u, TransitionProps: L, MenuListProps: C, slotProps: v, children: [
1200
- w,
1201
- k
1202
- ] }), t[20] = S, t[21] = o, t[22] = u, t[23] = s, t[24] = w, t[25] = k, t[26] = L, t[27] = C, t[28] = v, t[29] = $) : $ = t[29];
1203
- let _;
1204
- return t[30] !== $ || t[31] !== b ? (_ = /* @__PURE__ */ M(he, { children: [
1205
- b,
1206
- $
1207
- ] }), t[30] = $, t[31] = b, t[32] = _) : _ = t[32], _;
1208
- }
1209
- function go(t, e) {
1210
- return t + e.layers.length;
1211
- }
1212
- function yo(t) {
1213
- return t.setVisibility;
1214
- }
1215
- function mo(t) {
1216
- return He(t).map(bo).join("|");
1217
- }
1218
- function bo(t) {
1219
- const {
1220
- group: e,
1221
- layers: o
1222
- } = t;
1223
- return `${e?.id ?? ""}${e?.label ?? ""}:${o.map(vo).join(",")}`;
1224
- }
1225
- function vo(t) {
1226
- return `${t.id}${t.name}`;
1227
- }
1228
- function xo(t) {
1229
- const e = T(27), {
1230
- children: o
1231
- } = t, r = N(), [l, i] = J(null), n = De(void 0), a = Z(r, Lo);
1232
- let s;
1233
- e[0] !== r ? (s = (k, $) => {
1234
- const _ = de(k), G = de($);
1235
- return !_ || G?.kind !== _.kind ? !1 : _.kind === "layer" ? X(r).getState().layers[G.id]?.groupId === n.current : !0;
1236
- }, e[0] = r, e[1] = s) : s = e[1];
1237
- const c = s;
1238
- let p;
1239
- e[2] !== c ? (p = (k, $) => {
1240
- const {
1241
- context: _
1242
- } = $, {
1243
- active: G,
1244
- collisionRect: m,
1245
- droppableRects: P,
1246
- droppableContainers: z
1247
- } = _;
1248
- if (!G || !m || k.code !== "ArrowDown" && k.code !== "ArrowUp")
1249
- return;
1250
- k.preventDefault();
1251
- const D = k.code === "ArrowDown", B = z.getEnabled().filter((R) => R.id !== G.id && c(String(G.id), String(R.id))).flatMap((R) => {
1252
- const H = P.get(R.id);
1253
- return H ? [H] : [];
1254
- }).filter((R) => D ? R.top > m.top : R.top < m.top).sort((R, H) => D ? R.top - H.top : H.top - R.top)[0];
1255
- return B ? {
1256
- x: B.left,
1257
- y: B.top
1258
- } : void 0;
1259
- }, e[2] = c, e[3] = p) : p = e[3];
1260
- const f = p;
1261
- let u;
1262
- e[4] !== f ? (u = {
1263
- coordinateGetter: f
1264
- }, e[4] = f, e[5] = u) : u = e[5];
1265
- const y = Et(Me(Ht), Me(Rt, u));
1266
- let h;
1267
- e[6] !== c ? (h = (k) => {
1268
- const $ = k.droppableContainers.filter((_) => c(String(k.active.id), String(_.id)));
1269
- return Wt({
1270
- ...k,
1271
- droppableContainers: $
1272
- });
1273
- }, e[6] = c, e[7] = h) : h = e[7];
1274
- const g = h;
1275
- let x;
1276
- e[8] !== r ? (x = (k) => {
1277
- const $ = String(k.active.id);
1278
- i($);
1279
- const _ = de($);
1280
- n.current = _?.kind === "layer" ? X(r).getState().layers[_.id]?.groupId : void 0;
1281
- }, e[8] = r, e[9] = x) : x = e[9];
1282
- const b = x;
1283
- let S;
1284
- e[10] !== r ? (S = (k) => {
1285
- i(null);
1286
- const {
1287
- active: $,
1288
- over: _
1289
- } = k;
1290
- if (!_ || $.id === _.id)
1291
- return;
1292
- const G = de(String($.id)), m = de(String(_.id));
1293
- if (!G || G.kind !== m?.kind)
1294
- return;
1295
- const P = X(r).getState();
1296
- if (G.kind === "group") {
1297
- const R = ve(P).findIndex((H) => H.id === m.id);
1298
- R !== -1 && P.moveGroup(G.id, R);
1299
- return;
1300
- }
1301
- const z = P.layers[G.id], D = P.layers[m.id];
1302
- if (!z || !D || z.groupId !== D.groupId)
1303
- return;
1304
- const B = re(P, z.groupId).findIndex((R) => R.id === m.id);
1305
- B !== -1 && P.moveLayer(G.id, B);
1306
- }, e[10] = r, e[11] = S) : S = e[11];
1307
- const L = S;
1308
- let C;
1309
- e[12] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (C = () => i(null), e[12] = C) : C = e[12];
1310
- let v;
1311
- e[13] !== o || e[14] !== a ? (v = /* @__PURE__ */ d(Ne, { items: a, strategy: Fe, children: o }), e[13] = o, e[14] = a, e[15] = v) : v = e[15];
1312
- let I;
1313
- e[16] !== l ? (I = l && /* @__PURE__ */ d(Co, { activeId: l }), e[16] = l, e[17] = I) : I = e[17];
1314
- let w;
1315
- e[18] !== I ? (w = /* @__PURE__ */ d(Bt, { children: I }), e[18] = I, e[19] = w) : w = e[19];
1316
- let O;
1317
- return e[20] !== g || e[21] !== L || e[22] !== b || e[23] !== y || e[24] !== w || e[25] !== v ? (O = /* @__PURE__ */ d(et.Provider, { value: !0, children: /* @__PURE__ */ M(Vt, { sensors: y, collisionDetection: g, onDragStart: b, onDragEnd: L, onDragCancel: C, children: [
1318
- v,
1319
- w
1320
- ] }) }), e[20] = g, e[21] = L, e[22] = b, e[23] = y, e[24] = w, e[25] = v, e[26] = O) : O = e[26], O;
1321
- }
1322
- function Lo(t) {
1323
- return [...ve(t).map(So), ...re(t, void 0).map(wo)];
1324
- }
1325
- function wo(t) {
1326
- return Se("layer", t.id);
1327
- }
1328
- function So(t) {
1329
- return Se("group", t.id);
1330
- }
1331
- function Co(t) {
1332
- const e = T(15), {
1333
- activeId: o
1334
- } = t, r = N();
1335
- let l;
1336
- e[0] !== o ? (l = de(o), e[0] = o, e[1] = l) : l = e[1];
1337
- const i = l;
1338
- let n;
1339
- e[2] !== i ? (n = (h) => i ? i.kind === "group" ? h.groups[i.id]?.label : h.layers[i.id]?.name : void 0, e[2] = i, e[3] = n) : n = e[3];
1340
- const a = j(r, n);
1341
- let s;
1342
- e[4] !== i ? (s = (h) => i?.kind === "group" ? h.groups[i.id]?.icon : void 0, e[4] = i, e[5] = s) : s = e[5];
1343
- const c = j(r, s);
1344
- if (!i || a === void 0)
1345
- return null;
1346
- let p;
1347
- e[6] !== c || e[7] !== i.kind ? (p = i.kind === "group" && c != null && /* @__PURE__ */ d(A, { sx: le.overlayIcon, children: c }), e[6] = c, e[7] = i.kind, e[8] = p) : p = e[8];
1348
- const f = i.kind === "group" ? "bold" : void 0;
1349
- let u;
1350
- e[9] !== a || e[10] !== f ? (u = /* @__PURE__ */ d(E, { variant: "button", fontWeight: f, color: "text.primary", sx: le.overlayLabel, children: a }), e[9] = a, e[10] = f, e[11] = u) : u = e[11];
1351
- let y;
1352
- return e[12] !== p || e[13] !== u ? (y = /* @__PURE__ */ M(A, { sx: le.overlay, children: [
1353
- p,
1354
- u
1355
- ] }), e[12] = p, e[13] = u, e[14] = y) : y = e[14], y;
1356
- }
1357
- const pe = {
1358
- // Figma "Legend Opacity": a soft rounded bar between the row header and the
1359
- // body — caption label + ✕ on the first line, slider + % input below.
1360
- inline: {
1361
- display: "flex",
1362
- flexDirection: "column",
1363
- gap: 0.5,
1364
- borderRadius: 1
1365
- },
1366
- inlineHeader: {
1367
- display: "flex",
1368
- alignItems: "center",
1369
- justifyContent: "space-between"
1370
- },
1371
- inlineControls: {
1372
- display: "flex",
1373
- alignItems: "center",
1374
- gap: 1.5
1375
- },
1376
- slider: {
1377
- flex: 1
1378
- },
1379
- // Wide enough for "100 %" — the value must never ellipsize.
1380
- input: {
1381
- width: 72,
1382
- flexShrink: 0,
1383
- "& input": {
1384
- textAlign: "right"
1385
- }
1386
- }
1387
- }, ze = (t) => Math.min(100, Math.max(0, Math.round(t)));
1388
- function Io() {
1389
- const t = T(10), e = N(), o = Q();
1390
- let r;
1391
- t[0] !== o ? (r = (p) => o ? p.layers[o.layerId] : void 0, t[0] = o, t[1] = r) : r = t[1];
1392
- const l = Z(e, r), i = Z(e, ko), {
1393
- labels: n
1394
- } = W();
1395
- if (!o || !l?.visible || !l.opacityControl)
1396
- return null;
1397
- let a;
1398
- t[2] !== l || t[3] !== o || t[4] !== i ? (a = () => {
1399
- const p = !o.opacityOpen;
1400
- o.setOpacityOpen(p), p && l.collapsed && i(o.layerId, !1);
1401
- }, t[2] = l, t[3] = o, t[4] = i, t[5] = a) : a = t[5];
1402
- const s = a;
1403
- let c;
1404
- return t[6] !== n.opacity || t[7] !== o.opacityOpen || t[8] !== s ? (c = /* @__PURE__ */ d(q, { selected: o.opacityOpen, onClick: s, children: n.opacity }), t[6] = n.opacity, t[7] = o.opacityOpen, t[8] = s, t[9] = c) : c = t[9], c;
1405
- }
1406
- function ko(t) {
1407
- return t.setCollapsed;
1408
- }
1409
- function $o() {
1410
- const t = T(47), e = N(), o = Q(), r = o?.layerId;
1411
- let l;
1412
- t[0] !== r ? (l = (H) => r ? H.layers[r]?.opacity ?? 1 : 1, t[0] = r, t[1] = l) : l = t[1];
1413
- const i = j(e, l), n = j(e, _o), {
1414
- labels: a
1415
- } = W(), [s, c] = J(null), [p, f] = J(null);
1416
- if (!o || !r || !o.opacityOpen)
1417
- return null;
1418
- let u;
1419
- t[2] !== s || t[3] !== i ? (u = s ?? ze(i * 100), t[2] = s, t[3] = i, t[4] = u) : u = t[4];
1420
- const y = u;
1421
- let h;
1422
- t[5] !== r || t[6] !== n ? (h = (H) => {
1423
- const U = ze(H);
1424
- return n(r, U / 100), U;
1425
- }, t[5] = r, t[6] = n, t[7] = h) : h = t[7];
1426
- const g = h;
1427
- let x;
1428
- t[8] !== g ? (x = (H) => {
1429
- if (f(H), H.trim() === "")
1430
- return;
1431
- const U = Number(H);
1432
- if (!Number.isFinite(U))
1433
- return;
1434
- const se = g(U);
1435
- se !== U && f(String(se));
1436
- }, t[8] = g, t[9] = x) : x = t[9];
1437
- const b = x;
1438
- let S;
1439
- t[10] !== o ? (S = () => {
1440
- o.setOpacityOpen(!1), f(null), c(null);
1441
- }, t[10] = o, t[11] = S) : S = t[11];
1442
- const L = S;
1443
- let C;
1444
- t[12] !== a.opacity ? (C = /* @__PURE__ */ d(E, { variant: "caption", fontWeight: "medium", color: "text.primary", children: a.opacity }), t[12] = a.opacity, t[13] = C) : C = t[13];
1445
- let v;
1446
- t[14] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (v = /* @__PURE__ */ d(At, { fontSize: "small" }), t[14] = v) : v = t[14];
1447
- let I;
1448
- t[15] !== L || t[16] !== a.close ? (I = /* @__PURE__ */ d(xe, { size: "small", onClick: L, "aria-label": a.close, children: v }), t[15] = L, t[16] = a.close, t[17] = I) : I = t[17];
1449
- let w;
1450
- t[18] !== a.close || t[19] !== I ? (w = /* @__PURE__ */ d(ie, { title: a.close, children: I }), t[18] = a.close, t[19] = I, t[20] = w) : w = t[20];
1451
- let O;
1452
- t[21] !== C || t[22] !== w ? (O = /* @__PURE__ */ M(A, { sx: pe.inlineHeader, children: [
1453
- C,
1454
- w
1455
- ] }), t[21] = C, t[22] = w, t[23] = O) : O = t[23];
1456
- let k;
1457
- t[24] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (k = (H, U) => {
1458
- c(U), f(null);
1459
- }, t[24] = k) : k = t[24];
1460
- let $;
1461
- t[25] !== g ? ($ = (H, U) => {
1462
- g(U), c(null);
1463
- }, t[25] = g, t[26] = $) : $ = t[26];
1464
- let _;
1465
- t[27] !== a.opacity || t[28] !== y || t[29] !== $ ? (_ = /* @__PURE__ */ d(Ct, { size: "small", min: 0, max: 100, step: 1, value: y, onChange: k, onChangeCommitted: $, "aria-label": a.opacity, sx: pe.slider }), t[27] = a.opacity, t[28] = y, t[29] = $, t[30] = _) : _ = t[30];
1466
- const G = p ?? String(y);
1467
- let m;
1468
- t[31] !== b ? (m = (H) => b(H.target.value), t[31] = b, t[32] = m) : m = t[32];
1469
- let P;
1470
- t[33] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (P = () => f(null), t[33] = P) : P = t[33];
1471
- let z;
1472
- t[34] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (z = /* @__PURE__ */ d(It, { position: "end", children: "%" }), t[34] = z) : z = t[34];
1473
- let D;
1474
- t[35] !== a.opacity ? (D = {
1475
- inputMode: "numeric",
1476
- "aria-label": a.opacity
1477
- }, t[35] = a.opacity, t[36] = D) : D = t[36];
1478
- let V;
1479
- t[37] !== G || t[38] !== m || t[39] !== D ? (V = /* @__PURE__ */ d(kt, { size: "small", value: G, onChange: m, onBlur: P, onKeyDown: Oo, endAdornment: z, inputProps: D, sx: pe.input }), t[37] = G, t[38] = m, t[39] = D, t[40] = V) : V = t[40];
1480
- let B;
1481
- t[41] !== _ || t[42] !== V ? (B = /* @__PURE__ */ M(A, { sx: pe.inlineControls, children: [
1482
- _,
1483
- V
1484
- ] }), t[41] = _, t[42] = V, t[43] = B) : B = t[43];
1485
- let R;
1486
- return t[44] !== B || t[45] !== O ? (R = /* @__PURE__ */ M(A, { sx: pe.inline, children: [
1487
- O,
1488
- B
1489
- ] }), t[44] = B, t[45] = O, t[46] = R) : R = t[46], R;
1490
- }
1491
- function Oo(t) {
1492
- t.key === "Enter" && t.target.blur();
1493
- }
1494
- function _o(t) {
1495
- return t.setOpacity;
1496
- }
1497
- const Go = {
1498
- Item: Io,
1499
- Inline: $o
1500
- }, ne = {
1501
- // Outlined-input look-alike trigger (the design's select has no floating
1502
- // label — just the value + chevron in a 32px bordered field).
1503
- trigger: {
1504
- width: "100%",
1505
- minHeight: 32,
1506
- display: "flex",
1507
- alignItems: "center",
1508
- justifyContent: "space-between",
1509
- gap: 1,
1510
- padding: ({
1511
- spacing: t
1512
- }) => t(0, 1.5),
1513
- border: "1px solid",
1514
- borderColor: "divider",
1515
- borderRadius: 1,
1516
- backgroundColor: "background.paper",
1517
- color: "text.primary",
1518
- "&:hover": {
1519
- borderColor: "text.primary"
1520
- }
1521
- },
1522
- value: {
1523
- minWidth: 0,
1524
- overflow: "hidden",
1525
- textOverflow: "ellipsis",
1526
- whiteSpace: "nowrap"
1527
- },
1528
- chevron: {
1529
- flexShrink: 0,
1530
- color: "action.active",
1531
- transition: ({
1532
- transitions: t
1533
- }) => t.create("transform")
1534
- },
1535
- chevronOpen: {
1536
- transform: "rotate(180deg)"
1537
- },
1538
- sectionTitle: {
1539
- padding: ({
1540
- spacing: t
1541
- }) => t(1, 2, 0.5, 2),
1542
- lineHeight: 1.5
1543
- },
1544
- // Figma: the active option reads as primary-colored text, no background.
1545
- option: {
1546
- "&.Mui-selected, &.Mui-selected:hover": {
1547
- backgroundColor: "transparent",
1548
- color: "primary.main"
1549
- }
1550
- }
1551
- };
1552
- function Po() {
1553
- const t = T(34), e = N(), r = Q()?.layerId;
1554
- let l;
1555
- t[0] !== r ? (l = (O) => r ? O.layers[r]?.sections : void 0, t[0] = r, t[1] = l) : l = t[1];
1556
- const i = Z(e, l), n = Z(e, Ao), {
1557
- labels: a
1558
- } = W(), [s, c] = J(null), p = !!s;
1559
- if (!r || !i || i.length === 0)
1560
- return null;
1561
- const f = i[0].active, u = i.length > 1;
1562
- let y;
1563
- t[2] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (y = (O) => c(O.currentTarget), t[2] = y) : y = t[2];
1564
- let h;
1565
- t[3] !== f ? (h = /* @__PURE__ */ d(E, { variant: "body2", sx: ne.value, children: f }), t[3] = f, t[4] = h) : h = t[4];
1566
- let g;
1567
- t[5] !== p ? (g = p ? {
1568
- ...ne.chevron,
1569
- ...ne.chevronOpen
1570
- } : ne.chevron, t[5] = p, t[6] = g) : g = t[6];
1571
- let x;
1572
- t[7] !== g ? (x = /* @__PURE__ */ d(Mt, { fontSize: "small", sx: g }), t[7] = g, t[8] = x) : x = t[8];
1573
- let b;
1574
- t[9] !== a.attribute || t[10] !== p || t[11] !== h || t[12] !== x ? (b = /* @__PURE__ */ M($t, { sx: ne.trigger, onClick: y, "aria-label": a.attribute, "aria-haspopup": "listbox", "aria-expanded": p, children: [
1575
- h,
1576
- x
1577
- ] }), t[9] = a.attribute, t[10] = p, t[11] = h, t[12] = x, t[13] = b) : b = t[13];
1578
- let S;
1579
- t[14] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (S = () => c(null), t[14] = S) : S = t[14];
1580
- const L = s?.clientWidth;
1581
- let C;
1582
- t[15] !== L ? (C = {
1583
- paper: {
1584
- sx: {
1585
- width: L
1586
- }
1587
- }
1588
- }, t[15] = L, t[16] = C) : C = t[16];
1589
- let v;
1590
- if (t[17] !== r || t[18] !== i || t[19] !== n || t[20] !== u) {
1591
- let O;
1592
- t[22] !== r || t[23] !== n || t[24] !== u ? (O = (k) => [u && k.title ? /* @__PURE__ */ d(E, { variant: "overline", color: "text.secondary", component: "li", sx: ne.sectionTitle, children: k.title }, `${k.id}-title`) : null, ...k.options.map(($) => /* @__PURE__ */ d(q, { selected: $ === k.active, sx: ne.option, onClick: () => {
1593
- n(r, k.id, $), c(null);
1594
- }, children: $ }, `${k.id}-${$}`))], t[22] = r, t[23] = n, t[24] = u, t[25] = O) : O = t[25], v = i.map(O), t[17] = r, t[18] = i, t[19] = n, t[20] = u, t[21] = v;
1595
- } else
1596
- v = t[21];
1597
- let I;
1598
- t[26] !== s || t[27] !== p || t[28] !== C || t[29] !== v ? (I = /* @__PURE__ */ d(Oe, { anchorEl: s, open: p, onClose: S, slotProps: C, children: v }), t[26] = s, t[27] = p, t[28] = C, t[29] = v, t[30] = I) : I = t[30];
1599
- let w;
1600
- return t[31] !== I || t[32] !== b ? (w = /* @__PURE__ */ M(he, { children: [
1601
- b,
1602
- I
1603
- ] }), t[31] = I, t[32] = b, t[33] = w) : w = t[33], w;
1604
- }
1605
- function Ao(t) {
1606
- return t.setSectionValue;
1607
- }
1608
- const te = {
1609
- list: {
1610
- display: "flex",
1611
- flexDirection: "column",
1612
- gap: 0.5,
1613
- // Values are hidden until the legend content is hovered (or keyboard-
1614
- // focused). On hover-incapable (touch) devices they're always visible —
1615
- // tap-:hover is unreliable on non-interactive elements.
1616
- "&:hover .PsLegend-value, &:focus-within .PsLegend-value": {
1617
- opacity: 1
1618
- },
1619
- "@media (hover: none)": {
1620
- "& .PsLegend-value": {
1621
- opacity: 1
1622
- }
1623
- }
1624
- },
1625
- item: {
1626
- display: "flex",
1627
- alignItems: "center",
1628
- gap: 1
1629
- },
1630
- // Fixed-width gutter so labels stay column-aligned regardless of swatch
1631
- // shape or per-item size; the swatch is centered within it.
1632
- gutter: {
1633
- flexShrink: 0,
1634
- display: "flex",
1635
- alignItems: "center",
1636
- justifyContent: "center"
1637
- },
1638
- label: {
1639
- flex: 1,
1640
- minWidth: 0,
1641
- overflow: "hidden",
1642
- textOverflow: "ellipsis",
1643
- whiteSpace: "nowrap"
1644
- },
1645
- value: {
1646
- flexShrink: 0,
1647
- opacity: 0,
1648
- transition: "opacity 120ms"
1649
- },
1650
- // ─── Horizontal orientation modifiers (spread over the vertical base) ───
1651
- // Items flow left-to-right and wrap; each is a compact swatch+label pair.
1652
- listHorizontal: {
1653
- flexDirection: "row",
1654
- flexWrap: "wrap",
1655
- columnGap: 2,
1656
- rowGap: 0.5
1657
- },
1658
- // No fixed gutter — the swatch sits at its natural size next to the label.
1659
- itemHorizontal: {
1660
- gap: 0.5
1661
- },
1662
- // Each chip sizes to its content (no flex-grow / ellipsis).
1663
- labelHorizontal: {
1664
- flex: "0 0 auto",
1665
- overflow: "visible",
1666
- textOverflow: "clip"
1667
- }
1668
- }, Ge = 12, ye = 1.5, lt = 2, Mo = 1;
1669
- function zo(t) {
1670
- switch (t) {
1671
- case "dashed":
1672
- return {
1673
- dash: "3 2"
1674
- };
1675
- case "dotted":
1676
- return {
1677
- dash: `0.1 ${ye * 2}`,
1678
- round: !0
1679
- };
1680
- // `dash-dot` is line-only and `corners` is handled separately: both
1681
- // degrade to a solid border here.
1682
- default:
1683
- return {};
1684
- }
1685
- }
1686
- function To(t) {
1687
- switch (t) {
1688
- case "dashed":
1689
- return {
1690
- dash: "4 3"
1691
- };
1692
- case "dotted":
1693
- return {
1694
- dash: `0.1 ${lt * 2}`,
1695
- round: !0
1696
- };
1697
- case "dash-dot":
1698
- return {
1699
- dash: "5 2 0.1 2",
1700
- round: !0
1701
- };
1702
- // `corners` is square-only → solid line.
1703
- default:
1704
- return {};
1705
- }
1706
- }
1707
- function Do(t, e) {
1708
- const o = (r) => /* @__PURE__ */ d("path", { d: r, stroke: e, strokeWidth: 1.2, fill: "none" });
1709
- switch (t) {
1710
- case "horizontal":
1711
- return {
1712
- size: 4,
1713
- content: o("M0 2 H4")
1714
- };
1715
- case "vertical":
1716
- return {
1717
- size: 4,
1718
- content: o("M2 0 V4")
1719
- };
1720
- case "diagonal":
1721
- return {
1722
- size: 4,
1723
- content: o("M0 4 L4 0 M-1 1 L1 -1 M3 5 L5 3")
1724
- };
1725
- case "diagonal-alt":
1726
- return {
1727
- size: 4,
1728
- content: o("M0 0 L4 4 M-1 3 L1 5 M3 -1 L5 1")
1729
- };
1730
- case "cross":
1731
- return {
1732
- size: 4,
1733
- content: o("M0 4 L4 0 M-1 1 L1 -1 M3 5 L5 3 M0 0 L4 4 M-1 3 L1 5 M3 -1 L5 1")
1734
- };
1735
- case "dots":
1736
- return {
1737
- size: 4,
1738
- content: /* @__PURE__ */ d("circle", { cx: 2, cy: 2, r: 0.9, fill: e })
1739
- };
1740
- case "grid":
1741
- return {
1742
- size: 3,
1743
- content: /* @__PURE__ */ d("circle", { cx: 1.5, cy: 1.5, r: 0.7, fill: e })
1744
- };
1745
- default:
1746
- return null;
1747
- }
1748
- }
1749
- function it(t) {
1750
- const e = T(46), {
1751
- shape: o,
1752
- color: r,
1753
- isStrokeColor: l,
1754
- fillPattern: i,
1755
- strokeStyle: n,
1756
- size: a
1757
- } = t, s = o === void 0 ? "circle" : o, c = l === void 0 ? !1 : l, p = i === void 0 ? "solid" : i, f = n === void 0 ? "solid" : n, u = a === void 0 ? Ge : a, y = ht();
1758
- if (s === "line") {
1759
- let V;
1760
- e[0] !== f ? (V = To(f), e[0] = f, e[1] = V) : V = e[1];
1761
- const {
1762
- dash: B,
1763
- round: R
1764
- } = V, H = `0 0 ${u} ${u}`;
1765
- let U;
1766
- e[2] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (U = {
1767
- display: "block",
1768
- overflow: "visible"
1769
- }, e[2] = U) : U = e[2];
1770
- const se = u / 2, Ce = u / 2, Ie = R ? "round" : "butt";
1771
- let ae;
1772
- e[3] !== r || e[4] !== B || e[5] !== u || e[6] !== Ce || e[7] !== Ie || e[8] !== se ? (ae = /* @__PURE__ */ d("line", { x1: 0, y1: se, x2: u, y2: Ce, stroke: r, strokeWidth: lt, strokeDasharray: B, strokeLinecap: Ie }), e[3] = r, e[4] = B, e[5] = u, e[6] = Ce, e[7] = Ie, e[8] = se, e[9] = ae) : ae = e[9];
1773
- let Le;
1774
- return e[10] !== u || e[11] !== ae || e[12] !== H ? (Le = /* @__PURE__ */ d("svg", { width: u, height: u, viewBox: H, "aria-hidden": !0, "data-shape": "line", style: U, children: ae }), e[10] = u, e[11] = ae, e[12] = H, e[13] = Le) : Le = e[13], Le;
1775
- }
1776
- const h = c ? ye / 2 : 0, g = !c && p !== "solid";
1777
- let x;
1778
- e[14] !== r || e[15] !== p || e[16] !== g ? (x = g ? Do(p, r) : null, e[14] = r, e[15] = p, e[16] = g, e[17] = x) : x = e[17];
1779
- const b = x, S = c && f === "corners" && s === "square";
1780
- let L;
1781
- e[18] !== c || e[19] !== f ? (L = c ? zo(f) : {
1782
- dash: void 0,
1783
- round: !1
1784
- }, e[18] = c, e[19] = f, e[20] = L) : L = e[20];
1785
- const {
1786
- dash: C,
1787
- round: v
1788
- } = L, I = c ? ye : Mo, w = c ? C : void 0, O = v ? "round" : "butt";
1789
- let k;
1790
- e[21] !== r || e[22] !== O || e[23] !== I || e[24] !== w ? (k = {
1791
- stroke: r,
1792
- strokeWidth: I,
1793
- strokeDasharray: w,
1794
- strokeLinecap: O
1795
- }, e[21] = r, e[22] = O, e[23] = I, e[24] = w, e[25] = k) : k = e[25];
1796
- const $ = k, _ = c ? "none" : g ? `url(#${y})` : r, G = `0 0 ${u} ${u}`;
1797
- let m;
1798
- e[26] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (m = {
1799
- display: "block"
1800
- }, e[26] = m) : m = e[26];
1801
- let P;
1802
- e[27] !== y || e[28] !== b ? (P = b && /* @__PURE__ */ d("defs", { children: /* @__PURE__ */ d("pattern", { id: y, patternUnits: "userSpaceOnUse", width: b.size, height: b.size, children: b.content }) }), e[27] = y, e[28] = b, e[29] = P) : P = e[29];
1803
- let z;
1804
- e[30] !== r || e[31] !== $ || e[32] !== _ || e[33] !== h || e[34] !== S || e[35] !== c || e[36] !== s || e[37] !== u || e[38] !== g ? (z = S ? /* @__PURE__ */ d(Eo, { size: u, color: r }) : s === "circle" ? /* @__PURE__ */ d("circle", { cx: u / 2, cy: u / 2, r: u / 2 - h, fill: _, ...$, stroke: c || g ? r : "none" }) : /* @__PURE__ */ d("rect", { x: h, y: h, width: u - h * 2, height: u - h * 2, fill: _, ...$, stroke: c || g ? r : "none" }), e[30] = r, e[31] = $, e[32] = _, e[33] = h, e[34] = S, e[35] = c, e[36] = s, e[37] = u, e[38] = g, e[39] = z) : z = e[39];
1805
- let D;
1806
- return e[40] !== s || e[41] !== u || e[42] !== G || e[43] !== P || e[44] !== z ? (D = /* @__PURE__ */ M("svg", { width: u, height: u, viewBox: G, "aria-hidden": !0, "data-shape": s, style: m, children: [
1807
- P,
1808
- z
1809
- ] }), e[40] = s, e[41] = u, e[42] = G, e[43] = P, e[44] = z, e[45] = D) : D = e[45], D;
1810
- }
1811
- function Eo(t) {
1812
- const e = T(19), {
1813
- size: o,
1814
- color: r
1815
- } = t, l = Math.max(2, o * 0.3), i = ye / 2, n = o - i;
1816
- let a;
1817
- e[0] !== r ? (a = {
1818
- stroke: r,
1819
- strokeWidth: ye,
1820
- fill: "none"
1821
- }, e[0] = r, e[1] = a) : a = e[1];
1822
- const s = a, c = `M${i} ${i + l} V${i} H${i + l}`;
1823
- let p;
1824
- e[2] !== s || e[3] !== c ? (p = /* @__PURE__ */ d("path", { d: c, ...s }), e[2] = s, e[3] = c, e[4] = p) : p = e[4];
1825
- const f = `M${n - l} ${i} H${n} V${i + l}`;
1826
- let u;
1827
- e[5] !== s || e[6] !== f ? (u = /* @__PURE__ */ d("path", { d: f, ...s }), e[5] = s, e[6] = f, e[7] = u) : u = e[7];
1828
- const y = `M${n} ${n - l} V${n} H${n - l}`;
1829
- let h;
1830
- e[8] !== s || e[9] !== y ? (h = /* @__PURE__ */ d("path", { d: y, ...s }), e[8] = s, e[9] = y, e[10] = h) : h = e[10];
1831
- const g = `M${i + l} ${n} H${i} V${n - l}`;
1832
- let x;
1833
- e[11] !== s || e[12] !== g ? (x = /* @__PURE__ */ d("path", { d: g, ...s }), e[11] = s, e[12] = g, e[13] = x) : x = e[13];
1834
- let b;
1835
- return e[14] !== p || e[15] !== u || e[16] !== h || e[17] !== x ? (b = /* @__PURE__ */ M(he, { children: [
1836
- p,
1837
- u,
1838
- h,
1839
- x
1840
- ] }), e[14] = p, e[15] = u, e[16] = h, e[17] = x, e[18] = b) : b = e[18], b;
1841
- }
1842
- const Ho = 16;
1843
- function rt(t) {
1844
- const e = T(23), {
1845
- data: o
1846
- } = t, {
1847
- items: r,
1848
- shape: l,
1849
- isStrokeColor: i,
1850
- fillPattern: n,
1851
- strokeStyle: a,
1852
- orientation: s
1853
- } = o, c = l === void 0 ? "circle" : l, p = i === void 0 ? !1 : i, f = n === void 0 ? "solid" : n, u = a === void 0 ? "solid" : a, y = s === void 0 ? "vertical" : s, h = y === "horizontal";
1854
- let g;
1855
- e[0] !== r ? (g = r.reduce(Ro, 0), e[0] = r, e[1] = g) : g = e[1];
1856
- const b = Math.max(Ho, g), S = h ? te.listHorizontal : null;
1857
- let L;
1858
- e[2] !== S ? (L = {
1859
- ...te.list,
1860
- ...S
1861
- }, e[2] = S, e[3] = L) : L = e[3];
1862
- let C;
1863
- if (e[4] !== f || e[5] !== b || e[6] !== h || e[7] !== p || e[8] !== r || e[9] !== c || e[10] !== u) {
1864
- let I;
1865
- e[12] !== f || e[13] !== b || e[14] !== h || e[15] !== p || e[16] !== c || e[17] !== u ? (I = (w, O) => /* @__PURE__ */ M(A, { sx: {
1866
- ...te.item,
1867
- ...h ? te.itemHorizontal : null
1868
- }, children: [
1869
- /* @__PURE__ */ d(A, { sx: {
1870
- ...te.gutter,
1871
- width: h ? void 0 : b
1872
- }, children: /* @__PURE__ */ d(it, { shape: w.shape ?? c, color: w.color, isStrokeColor: w.isStrokeColor ?? p, fillPattern: w.fillPattern ?? f, strokeStyle: w.strokeStyle ?? u, size: w.size ?? Ge }) }),
1873
- /* @__PURE__ */ d(E, { variant: "caption", color: "text.primary", sx: {
1874
- ...te.label,
1875
- ...h ? te.labelHorizontal : null
1876
- }, children: w.label }),
1877
- w.value != null && /* @__PURE__ */ d(E, { className: "PsLegend-value", variant: "caption", color: "text.secondary", sx: te.value, children: w.value })
1878
- ] }, `${w.label}-${O}`), e[12] = f, e[13] = b, e[14] = h, e[15] = p, e[16] = c, e[17] = u, e[18] = I) : I = e[18], C = r.map(I), e[4] = f, e[5] = b, e[6] = h, e[7] = p, e[8] = r, e[9] = c, e[10] = u, e[11] = C;
1879
- } else
1880
- C = e[11];
1881
- let v;
1882
- return e[19] !== y || e[20] !== L || e[21] !== C ? (v = /* @__PURE__ */ d(A, { "data-orientation": y, sx: L, children: C }), e[19] = y, e[20] = L, e[21] = C, e[22] = v) : v = e[22], v;
1883
- }
1884
- function Ro(t, e) {
1885
- return Math.max(t, e.size ?? Ge);
1886
- }
1887
- const K = {
1888
- container: {
1889
- display: "flex",
1890
- flexDirection: "column",
1891
- gap: 0.5
1892
- },
1893
- attribute: {
1894
- display: "flex",
1895
- flexDirection: "column"
1896
- },
1897
- // Inline error shown when a discrete ramp's stop count is incoherent.
1898
- error: {
1899
- display: "flex",
1900
- alignItems: "center",
1901
- gap: 0.5,
1902
- color: "error.main"
1903
- },
1904
- // Positioning context for the avg marker; the inner bar keeps its rounded
1905
- // clip while the line is free to overflow vertically.
1906
- barWrap: {
1907
- position: "relative"
1908
- },
1909
- bar: {
1910
- height: 8,
1911
- borderRadius: "2px",
1912
- overflow: "hidden",
1913
- display: "flex"
1914
- },
1915
- avgLine: {
1916
- position: "absolute",
1917
- top: -2,
1918
- bottom: -2,
1919
- width: 0,
1920
- borderLeft: "1.5px dashed",
1921
- borderColor: "text.primary",
1922
- transform: "translateX(-50%)"
1923
- },
1924
- step: {
1925
- flex: 1,
1926
- height: "100%"
1927
- },
1928
- labels: {
1929
- display: "flex",
1930
- justifyContent: "space-between",
1931
- gap: 1
1932
- },
1933
- // Boundary mode: labels absolutely positioned so each centers on the line
1934
- // between adjacent color steps. The outer two clamp inside the bar's width
1935
- // (first left-aligned, last right-aligned) so nothing overflows the row.
1936
- // `left`/`transform` are applied inline per label in the renderer.
1937
- boundaryLabels: {
1938
- position: "relative",
1939
- height: 16
1940
- },
1941
- boundaryLabel: {
1942
- position: "absolute",
1943
- top: 0,
1944
- whiteSpace: "nowrap"
1945
- }
692
+ function Ge(t) {
693
+ let n = y(36), { visibility: i, onToggle: a, labels: s } = t, c = r(), l = q(), d = Te(), { labels: f } = K(), p = i !== void 0 && a !== void 0, m;
694
+ n[0] !== p || n[1] !== l ? (m = (e) => !p && l ? e.layers[l.layerId]?.visible ?? !0 : !0, n[0] = p, n[1] = l, n[2] = m) : m = n[2];
695
+ let h = g(c, m), _;
696
+ n[3] !== p || n[4] !== d || n[5] !== l ? (_ = (e) => !p && !l && d ? o(e, d) : "visible", n[3] = p, n[4] = d, n[5] = l, n[6] = _) : _ = n[6];
697
+ let v = u(c, _), b = g(c, qe), x = g(c, Ke), S, C;
698
+ n[7] !== p || n[8] !== d || n[9] !== l ? (S = () => {
699
+ !p && !l && !d && console.warn("Legend.VisibilityToggle needs `visibility`/`onToggle` props or a Legend.Row / Legend.Group context.");
700
+ }, C = [
701
+ p,
702
+ l,
703
+ d
704
+ ], n[7] = p, n[8] = d, n[9] = l, n[10] = S, n[11] = C) : (S = n[10], C = n[11]), w(S, C);
705
+ let T, E, D = s;
706
+ if (p) {
707
+ T = i;
708
+ let e;
709
+ n[12] !== a || n[13] !== i ? (e = () => a(i === "hidden"), n[12] = a, n[13] = i, n[14] = e) : e = n[14], E = e;
710
+ } else if (l) {
711
+ T = h ? "visible" : "hidden";
712
+ let e;
713
+ n[15] !== h || n[16] !== l || n[17] !== b ? (e = () => b(l.layerId, !h), n[15] = h, n[16] = l, n[17] = b, n[18] = e) : e = n[18], E = e;
714
+ } else if (d) {
715
+ T = v;
716
+ let e;
717
+ n[19] !== d || n[20] !== v || n[21] !== x ? (e = () => x(d, v === "hidden"), n[19] = d, n[20] = v, n[21] = x, n[22] = e) : e = n[22], E = e;
718
+ let t;
719
+ n[23] !== f || n[24] !== s ? (t = s ?? {
720
+ hideLayer: f.hideGroup,
721
+ showLayer: f.showGroup
722
+ }, n[23] = f, n[24] = s, n[25] = t) : t = n[25], D = t;
723
+ } else return null;
724
+ let { hideLayer: O, showLayer: k } = D ?? f, A = We[T], j = T === "hidden" ? k : O, M = T === "visible" ? void 0 : "active", N;
725
+ n[26] === A ? N = n[27] : (N = /* @__PURE__ */ V(A, { fontSize: "small" }), n[26] = A, n[27] = N);
726
+ let F;
727
+ n[28] !== E || n[29] !== j || n[30] !== M || n[31] !== N ? (F = /* @__PURE__ */ V(P, {
728
+ size: "small",
729
+ className: M,
730
+ onClick: E,
731
+ "aria-label": j,
732
+ children: N
733
+ }), n[28] = E, n[29] = j, n[30] = M, n[31] = N, n[32] = F) : F = n[32];
734
+ let I;
735
+ return n[33] !== j || n[34] !== F ? (I = /* @__PURE__ */ V(e, {
736
+ title: j,
737
+ children: F
738
+ }), n[33] = j, n[34] = F, n[35] = I) : I = n[35], I;
739
+ }
740
+ function Ke(e) {
741
+ return e.setGroupVisibility;
742
+ }
743
+ function qe(e) {
744
+ return e.setVisibility;
745
+ }
746
+ //#endregion
747
+ //#region src/legend/components/legend-overflow-menu/legend-overflow-menu.tsx
748
+ function Je(t) {
749
+ let n = y(23), { children: r, gate: i, ariaLabel: a, active: o } = t, s = i === void 0 || i, c = o !== void 0 && o, [l, u] = O(null), [d, f] = O(!1), p = D(!1), m = !!l, { labels: h } = K(), g;
750
+ n[0] === Symbol.for("react.memo_cache_sentinel") ? (g = () => u(null), n[0] = g) : g = n[0];
751
+ let _ = g, v;
752
+ n[1] === Symbol.for("react.memo_cache_sentinel") ? (v = (e) => {
753
+ p.current = e, f(e);
754
+ }, n[1] = v) : v = n[1];
755
+ let b = v, x;
756
+ n[2] === Symbol.for("react.memo_cache_sentinel") ? (x = () => p.current, n[2] = x) : x = n[2];
757
+ let S = x, C;
758
+ n[3] === Symbol.for("react.memo_cache_sentinel") ? (C = () => {
759
+ p.current || _();
760
+ }, n[3] = C) : C = n[3];
761
+ let w = C, T;
762
+ n[4] === d ? T = n[5] : (T = {
763
+ busy: d,
764
+ isBusy: S,
765
+ setBusy: b,
766
+ close: _
767
+ }, n[4] = d, n[5] = T);
768
+ let E = T;
769
+ if (!s || !r) return null;
770
+ let k;
771
+ n[6] === Symbol.for("react.memo_cache_sentinel") ? (k = (e) => {
772
+ e.stopPropagation(), u(e.currentTarget);
773
+ }, n[6] = k) : k = n[6];
774
+ let A = k, j = m || d || c ? "active" : void 0, M;
775
+ n[7] === Symbol.for("react.memo_cache_sentinel") ? (M = /* @__PURE__ */ V(ae, { fontSize: "small" }), n[7] = M) : M = n[7];
776
+ let N;
777
+ n[8] !== a || n[9] !== m || n[10] !== j ? (N = /* @__PURE__ */ V(P, {
778
+ size: "small",
779
+ className: j,
780
+ onClick: A,
781
+ "aria-label": a,
782
+ "aria-haspopup": "menu",
783
+ "aria-expanded": m,
784
+ children: M
785
+ }), n[8] = a, n[9] = m, n[10] = j, n[11] = N) : N = n[11];
786
+ let F;
787
+ n[12] !== h.moreOptions || n[13] !== N ? (F = /* @__PURE__ */ V(e, {
788
+ title: h.moreOptions,
789
+ children: N
790
+ }), n[12] = h.moreOptions, n[13] = N, n[14] = F) : F = n[14];
791
+ let L;
792
+ n[15] !== l || n[16] !== r || n[17] !== m ? (L = /* @__PURE__ */ V(I, {
793
+ anchorEl: l,
794
+ open: m,
795
+ onClose: w,
796
+ onClick: w,
797
+ children: r
798
+ }), n[15] = l, n[16] = r, n[17] = m, n[18] = L) : L = n[18];
799
+ let R;
800
+ return n[19] !== E || n[20] !== F || n[21] !== L ? (R = /* @__PURE__ */ H(Ee.Provider, {
801
+ value: E,
802
+ children: [F, L]
803
+ }), n[19] = E, n[20] = F, n[21] = L, n[22] = R) : R = n[22], R;
804
+ }
805
+ //#endregion
806
+ //#region src/legend/components/legend-row-menu/legend-row-menu.tsx
807
+ function Ye(e) {
808
+ let t = y(5), { children: n } = e, r = q(), { labels: i } = K(), a = !!r, o = r?.opacityOpen ?? !1, s;
809
+ return t[0] !== n || t[1] !== i.layerOptions || t[2] !== a || t[3] !== o ? (s = /* @__PURE__ */ V(Je, {
810
+ gate: a,
811
+ ariaLabel: i.layerOptions,
812
+ active: o,
813
+ children: n
814
+ }), t[0] = n, t[1] = i.layerOptions, t[2] = a, t[3] = o, t[4] = s) : s = t[4], s;
815
+ }
816
+ //#endregion
817
+ //#region src/legend/components/run-async-menu-action.ts
818
+ async function Xe(e, t) {
819
+ if (!e.isBusy()) {
820
+ e.setBusy(!0);
821
+ try {
822
+ await t();
823
+ } finally {
824
+ e.setBusy(!1), e.close();
825
+ }
826
+ }
827
+ }
828
+ //#endregion
829
+ //#region src/legend/components/legend-row-menu/legend-zoom-to.tsx
830
+ function Ze(e) {
831
+ let t = y(13), { onZoomTo: n } = e, i = r(), a = q(), o = De(), s;
832
+ t[0] === a ? s = t[1] : (s = (e) => a ? e.layers[a.layerId]?.visible ?? !1 : !1, t[0] = a, t[1] = s);
833
+ let c = g(i, s), { labels: l } = K();
834
+ if (!a || !c) return null;
835
+ let u = o?.busy ?? !1, d;
836
+ t[2] !== o || t[3] !== n || t[4] !== a ? (d = (e) => {
837
+ e.stopPropagation(), o && Xe(o, () => n(a.layerId));
838
+ }, t[2] = o, t[3] = n, t[4] = a, t[5] = d) : d = t[5];
839
+ let f = d, p;
840
+ t[6] === u ? p = t[7] : (p = u && /* @__PURE__ */ V(j, {
841
+ size: 16,
842
+ sx: { mr: 1 }
843
+ }), t[6] = u, t[7] = p);
844
+ let m = u ? l.loading : l.zoomTo, h;
845
+ return t[8] !== u || t[9] !== f || t[10] !== p || t[11] !== m ? (h = /* @__PURE__ */ H(L, {
846
+ disabled: u,
847
+ onClick: f,
848
+ children: [p, m]
849
+ }), t[8] = u, t[9] = f, t[10] = p, t[11] = m, t[12] = h) : h = t[12], h;
850
+ }
851
+ //#endregion
852
+ //#region src/legend/components/legend-row-menu/legend-row-menu-items.tsx
853
+ function Qe() {
854
+ let e = y(6), t = r(), n = q(), { labels: i } = K();
855
+ if (!n) return null;
856
+ let a;
857
+ e[0] !== t || e[1] !== n.layerId ? (a = () => {
858
+ let e = l(t).getState(), r = e.layers[n.layerId];
859
+ if (r) for (let t of c(e, r.groupId)) e.setVisibility(t.id, t.id === n.layerId);
860
+ }, e[0] = t, e[1] = n.layerId, e[2] = a) : a = e[2];
861
+ let o = a, s;
862
+ return e[3] !== i.showOnlyLayer || e[4] !== o ? (s = /* @__PURE__ */ V(L, {
863
+ onClick: o,
864
+ children: i.showOnlyLayer
865
+ }), e[3] = i.showOnlyLayer, e[4] = o, e[5] = s) : s = e[5], s;
866
+ }
867
+ function $e() {
868
+ let e = y(6), t = r(), n = Te(), i = q(), { labels: a } = K();
869
+ if (n === null && !i) return null;
870
+ let o;
871
+ e[0] !== n || e[1] !== t ? (o = () => {
872
+ let e = l(t).getState();
873
+ if (n !== null) e.setGroupVisibility(n, !0);
874
+ else for (let t of c(e, void 0)) e.setVisibility(t.id, !0);
875
+ }, e[0] = n, e[1] = t, e[2] = o) : o = e[2];
876
+ let s = o, u;
877
+ return e[3] !== a.showAllLayers || e[4] !== s ? (u = /* @__PURE__ */ V(L, {
878
+ onClick: s,
879
+ children: a.showAllLayers
880
+ }), e[3] = a.showAllLayers, e[4] = s, e[5] = u) : u = e[5], u;
881
+ }
882
+ //#endregion
883
+ //#region src/legend/components/legend-group-menu/legend-group-menu.tsx
884
+ function et(e) {
885
+ let t = y(4), { children: n } = e, r = Te(), { labels: i } = K(), a = r !== null, o;
886
+ return t[0] !== n || t[1] !== i.groupOptions || t[2] !== a ? (o = /* @__PURE__ */ V(Je, {
887
+ gate: a,
888
+ ariaLabel: i.groupOptions,
889
+ children: n
890
+ }), t[0] = n, t[1] = i.groupOptions, t[2] = a, t[3] = o) : o = t[3], o;
891
+ }
892
+ //#endregion
893
+ //#region src/legend/components/legend-group-menu/legend-group-menu-items.tsx
894
+ function tt() {
895
+ let e = y(6), t = r(), n = Te(), { labels: i } = K();
896
+ if (n === null) return null;
897
+ let a;
898
+ e[0] !== n || e[1] !== t ? (a = () => {
899
+ let e = l(t).getState();
900
+ for (let t of s(e)) e.setGroupVisibility(t.id, t.id === n);
901
+ for (let t of c(e, void 0)) e.setVisibility(t.id, !1);
902
+ }, e[0] = n, e[1] = t, e[2] = a) : a = e[2];
903
+ let o = a, u;
904
+ return e[3] !== i.showOnlyGroup || e[4] !== o ? (u = /* @__PURE__ */ V(L, {
905
+ onClick: o,
906
+ children: i.showOnlyGroup
907
+ }), e[3] = i.showOnlyGroup, e[4] = o, e[5] = u) : u = e[5], u;
908
+ }
909
+ function nt() {
910
+ let e = y(5), t = r(), n = g(t, m), { labels: i } = K();
911
+ if (!n) return null;
912
+ let a;
913
+ e[0] === t ? a = e[1] : (a = () => {
914
+ let e = l(t).getState();
915
+ for (let t of s(e)) e.setGroupVisibility(t.id, !0);
916
+ for (let t of c(e, void 0)) e.setVisibility(t.id, !0);
917
+ }, e[0] = t, e[1] = a);
918
+ let o = a, u;
919
+ return e[2] !== i.showAllGroups || e[3] !== o ? (u = /* @__PURE__ */ V(L, {
920
+ onClick: o,
921
+ children: i.showAllGroups
922
+ }), e[2] = i.showAllGroups, e[3] = o, e[4] = u) : u = e[4], u;
923
+ }
924
+ function rt() {
925
+ let e = y(5), t = r(), n = g(t, m), i = g(t, a), { labels: o } = K();
926
+ if (!n) return null;
927
+ let c;
928
+ e[0] === t ? c = e[1] : (c = () => {
929
+ let e = l(t).getState(), n = a(e);
930
+ for (let t of s(e)) e.setGroupCollapsed(t.id, !n);
931
+ }, e[0] = t, e[1] = c);
932
+ let u = c, d = i ? o.expandAllGroups : o.collapseAllGroups, f;
933
+ return e[2] !== d || e[3] !== u ? (f = /* @__PURE__ */ V(L, {
934
+ onClick: u,
935
+ children: d
936
+ }), e[2] = d, e[3] = u, e[4] = f) : f = e[4], f;
937
+ }
938
+ function it(e) {
939
+ let t = y(13), { onZoomTo: n } = e, i = r(), a = Te(), s = De(), c;
940
+ t[0] === a ? c = t[1] : (c = (e) => a !== null && o(e, a) === "hidden", t[0] = a, t[1] = c);
941
+ let l = g(i, c), { labels: u } = K();
942
+ if (a === null || l) return null;
943
+ let d = s?.busy ?? !1, f;
944
+ t[2] !== a || t[3] !== s || t[4] !== n ? (f = (e) => {
945
+ e.stopPropagation(), s && Xe(s, () => n(a));
946
+ }, t[2] = a, t[3] = s, t[4] = n, t[5] = f) : f = t[5];
947
+ let p = f, m;
948
+ t[6] === d ? m = t[7] : (m = d && /* @__PURE__ */ V(j, {
949
+ size: 16,
950
+ sx: { mr: 1 }
951
+ }), t[6] = d, t[7] = m);
952
+ let h = d ? u.loading : u.zoomToGroup, _;
953
+ return t[8] !== d || t[9] !== p || t[10] !== m || t[11] !== h ? (_ = /* @__PURE__ */ H(L, {
954
+ disabled: d,
955
+ onClick: p,
956
+ children: [m, h]
957
+ }), t[8] = d, t[9] = p, t[10] = m, t[11] = h, t[12] = _) : _ = t[12], _;
958
+ }
959
+ //#endregion
960
+ //#region src/legend/components/legend-panel-menu/legend-panel-menu.tsx
961
+ function at(e) {
962
+ let t = y(3), { children: n } = e, { labels: r } = K(), i;
963
+ return t[0] !== n || t[1] !== r.panelOptions ? (i = /* @__PURE__ */ V(Je, {
964
+ ariaLabel: r.panelOptions,
965
+ children: n
966
+ }), t[0] = n, t[1] = r.panelOptions, t[2] = i) : i = t[2], i;
967
+ }
968
+ //#endregion
969
+ //#region src/legend/components/legend-visible-layers/styles.ts
970
+ var X = {
971
+ triggerWrap: { display: "inline-flex" },
972
+ paper: {
973
+ width: 240,
974
+ maxHeight: 320,
975
+ paddingBottom: .5
976
+ },
977
+ stickyHeader: {
978
+ position: "sticky",
979
+ top: 0,
980
+ zIndex: 1,
981
+ backgroundColor: "background.paper",
982
+ padding: 1,
983
+ marginBlockEnd: 1,
984
+ lineHeight: "16px",
985
+ borderBottom: "1px solid",
986
+ borderColor: "divider"
987
+ },
988
+ groupCaption: {
989
+ display: "block",
990
+ padding: ({ spacing: e }) => e(.5, 1.5)
991
+ },
992
+ item: {
993
+ minHeight: 32,
994
+ display: "flex",
995
+ alignItems: "center",
996
+ justifyContent: "space-between",
997
+ gap: 1,
998
+ padding: ({ spacing: e }) => e(0, 1, 0, 1.5)
999
+ },
1000
+ itemName: {
1001
+ minWidth: 0,
1002
+ overflow: "hidden",
1003
+ textOverflow: "ellipsis",
1004
+ whiteSpace: "nowrap"
1005
+ },
1006
+ eye: {
1007
+ fontSize: 18,
1008
+ color: "action.active",
1009
+ flexShrink: 0
1010
+ },
1011
+ divider: { marginY: 1 }
1946
1012
  };
1947
- function Vo(t) {
1948
- const {
1949
- avg: e,
1950
- stops: o
1951
- } = t;
1952
- if (e == null || o.length < 2) return null;
1953
- const r = o[0].value, l = o[o.length - 1].value;
1954
- if (r === l) return null;
1955
- const i = (e - r) / (l - r) * 100;
1956
- return Math.min(100, Math.max(0, i));
1957
- }
1958
- function st(t) {
1959
- const e = T(40), {
1960
- data: o,
1961
- labels: r
1962
- } = t, l = r === void 0 ? ge : r, {
1963
- colors: i,
1964
- stops: n,
1965
- isContinuous: a,
1966
- attribute: s,
1967
- formatValue: c
1968
- } = o, p = c === void 0 ? String : c;
1969
- let f;
1970
- e[0] !== o ? (f = Vo(o), e[0] = o, e[1] = f) : f = e[1];
1971
- const u = f, y = n[0], h = n[n.length - 1];
1972
- let g;
1973
- e[2] !== i ? (g = i.join(", "), e[2] = i, e[3] = g) : g = e[3];
1974
- const x = `linear-gradient(90deg, ${g})`, b = !a && n.length === i.length + 1, S = !a && !b;
1975
- let L;
1976
- e[4] !== n ? (L = (m) => `${n[m]?.label ?? ""} – ${n[m + 1]?.label ?? ""}`, e[4] = n, e[5] = L) : L = e[5];
1977
- const C = L;
1978
- let v;
1979
- e[6] !== s || e[7] !== l ? (v = s && /* @__PURE__ */ M(A, { sx: K.attribute, children: [
1980
- /* @__PURE__ */ d(E, { variant: "overline", color: "text.secondary", children: l.colorBasedOn }),
1981
- /* @__PURE__ */ d(E, { variant: "caption", color: "text.primary", children: s })
1982
- ] }), e[6] = s, e[7] = l, e[8] = v) : v = e[8];
1983
- const I = v;
1984
- if (S) {
1985
- let m;
1986
- e[9] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (m = /* @__PURE__ */ d(zt, { fontSize: "small" }), e[9] = m) : m = e[9];
1987
- const P = `Discrete ramp needs ${i.length + 1} stops (one per color boundary) but got ${n.length}.`;
1988
- let z;
1989
- e[10] !== P ? (z = /* @__PURE__ */ M(A, { sx: K.error, children: [
1990
- m,
1991
- /* @__PURE__ */ d(E, { variant: "caption", color: "error", children: P })
1992
- ] }), e[10] = P, e[11] = z) : z = e[11];
1993
- let D;
1994
- return e[12] !== I || e[13] !== z ? (D = /* @__PURE__ */ M(A, { sx: K.container, children: [
1995
- I,
1996
- z
1997
- ] }), e[12] = I, e[13] = z, e[14] = D) : D = e[14], D;
1998
- }
1999
- let w;
2000
- e[15] !== i || e[16] !== x || e[17] !== a || e[18] !== l || e[19] !== C ? (w = a ? /* @__PURE__ */ d(A, { role: "img", "aria-label": l.colorGradient, sx: {
2001
- width: "100%",
2002
- height: "100%",
2003
- background: x
2004
- } }) : i.map((m, P) => /* @__PURE__ */ d(A, { role: "img", "aria-label": C(P), sx: {
2005
- ...K.step,
2006
- backgroundColor: m
2007
- } }, P)), e[15] = i, e[16] = x, e[17] = a, e[18] = l, e[19] = C, e[20] = w) : w = e[20];
2008
- let O;
2009
- e[21] !== w ? (O = /* @__PURE__ */ d(A, { sx: K.bar, children: w }), e[21] = w, e[22] = O) : O = e[22];
2010
- let k;
2011
- e[23] !== u || e[24] !== o.avg || e[25] !== p ? (k = u != null && o.avg != null && /* @__PURE__ */ d(ie, { title: p(o.avg), placement: "top", arrow: !0, children: /* @__PURE__ */ d(A, { sx: K.avgLine, style: {
2012
- left: `${u}%`
2013
- } }) }), e[23] = u, e[24] = o.avg, e[25] = p, e[26] = k) : k = e[26];
2014
- let $;
2015
- e[27] !== O || e[28] !== k ? ($ = /* @__PURE__ */ M(A, { sx: K.barWrap, children: [
2016
- O,
2017
- k
2018
- ] }), e[27] = O, e[28] = k, e[29] = $) : $ = e[29];
2019
- let _;
2020
- e[30] !== i.length || e[31] !== y?.label || e[32] !== b || e[33] !== h?.label || e[34] !== n ? (_ = b ? /* @__PURE__ */ d(A, { sx: K.boundaryLabels, children: n.map((m, P) => {
2021
- const z = P === n.length - 1, D = P === 0 ? void 0 : z ? "translateX(-100%)" : "translateX(-50%)";
2022
- return /* @__PURE__ */ d(E, { variant: "overline", color: "text.secondary", sx: K.boundaryLabel, style: {
2023
- left: `${P / i.length * 100}%`,
2024
- transform: D
2025
- }, children: m.label }, `${m.label}-${P}`);
2026
- }) }) : /* @__PURE__ */ M(A, { sx: K.labels, children: [
2027
- /* @__PURE__ */ d(E, { variant: "overline", color: "text.secondary", children: y?.label }),
2028
- /* @__PURE__ */ d(E, { variant: "overline", color: "text.secondary", children: h?.label })
2029
- ] }), e[30] = i.length, e[31] = y?.label, e[32] = b, e[33] = h?.label, e[34] = n, e[35] = _) : _ = e[35];
2030
- let G;
2031
- return e[36] !== I || e[37] !== $ || e[38] !== _ ? (G = /* @__PURE__ */ M(A, { sx: K.container, children: [
2032
- I,
2033
- $,
2034
- _
2035
- ] }), e[36] = I, e[37] = $, e[38] = _, e[39] = G) : G = e[39], G;
2036
- }
2037
- const ce = {
2038
- root: {
2039
- display: "flex",
2040
- flexDirection: "column",
2041
- gap: 1
2042
- },
2043
- attribute: {
2044
- display: "flex",
2045
- flexDirection: "column"
2046
- },
2047
- body: {
2048
- display: "flex",
2049
- alignItems: "flex-end",
2050
- gap: 2,
2051
- paddingTop: 0.5
2052
- },
2053
- circles: {
2054
- position: "relative",
2055
- flexShrink: 0
2056
- },
2057
- // All circles share the bottom and right edges (anchored bottom-right), so
2058
- // they nest along the diagonal — largest fanning up-left, smallest in the
2059
- // bottom-right. Every circle has the SAME opaque fill, so overlaps don't
2060
- // compound (uniform colour) while the borders still read as nested rings.
2061
- circle: {
2062
- position: "absolute",
2063
- right: 0,
2064
- bottom: 0,
2065
- borderRadius: "50%",
2066
- backgroundColor: "grey.50",
2067
- border: "1px solid",
2068
- borderColor: "grey.100",
2069
- boxSizing: "border-box"
2070
- },
2071
- labels: {
2072
- flex: 1,
2073
- display: "flex",
2074
- flexDirection: "column",
2075
- justifyContent: "space-between"
2076
- }
2077
- }, fe = 72, Wo = 0.3, Te = 2, ke = 4;
2078
- function Bo(t) {
2079
- const e = (t.stops ?? []).filter((i) => Number.isFinite(i));
2080
- if (e.length >= Te)
2081
- return e.sort((i, n) => n - i).slice(0, ke);
2082
- const {
2083
- min: o,
2084
- max: r
2085
- } = t;
2086
- if (o === r) return [r];
2087
- const l = Math.min(ke, Math.max(Te, t.steps ?? ke));
2088
- return Array.from({
2089
- length: l
2090
- }, (i, n) => r - (r - o) * n / (l - 1));
2091
- }
2092
- function No(t, e) {
2093
- if (e <= 1) return fe;
2094
- const o = 1 - (1 - Wo) * (t / (e - 1));
2095
- return fe * o;
2096
- }
2097
- function at(t) {
2098
- const e = T(40), {
2099
- data: o,
2100
- labels: r
2101
- } = t, l = r === void 0 ? ge : r, {
2102
- attribute: i,
2103
- formatValue: n
2104
- } = o, a = n === void 0 ? String : n;
2105
- let s, c, p, f, u, y, h, g, x;
2106
- if (e[0] !== i || e[1] !== o || e[2] !== a || e[3] !== l) {
2107
- const C = Bo(o), v = C.length;
2108
- let I;
2109
- e[13] !== a || e[14] !== l || e[15] !== v ? (I = (_, G) => {
2110
- const m = a(_);
2111
- return v <= 1 ? m : G === 0 ? /* @__PURE__ */ M(he, { children: [
2112
- l.maxPrefix,
2113
- m
2114
- ] }) : G === v - 1 ? /* @__PURE__ */ M(he, { children: [
2115
- l.minPrefix,
2116
- m
2117
- ] }) : m;
2118
- }, e[13] = a, e[14] = l, e[15] = v, e[16] = I) : I = e[16];
2119
- const w = I;
2120
- p = A, g = ce.root, e[17] !== i || e[18] !== l ? (x = i && /* @__PURE__ */ M(A, { sx: ce.attribute, children: [
2121
- /* @__PURE__ */ d(E, { variant: "overline", color: "text.secondary", children: l.radiusRangeBy }),
2122
- /* @__PURE__ */ d(E, { variant: "caption", color: "text.primary", children: i })
2123
- ] }), e[17] = i, e[18] = l, e[19] = x) : x = e[19], c = A, y = ce.body;
2124
- let O;
2125
- e[20] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (O = {
2126
- ...ce.circles,
2127
- width: fe,
2128
- height: fe
2129
- }, e[20] = O) : O = e[20];
2130
- let k;
2131
- e[21] !== v ? (k = (_, G) => {
2132
- const m = No(G, v);
2133
- return /* @__PURE__ */ d(A, { "aria-hidden": !0, sx: {
2134
- ...ce.circle,
2135
- width: m,
2136
- height: m
2137
- } }, G);
2138
- }, e[21] = v, e[22] = k) : k = e[22], h = /* @__PURE__ */ d(A, { sx: O, children: C.map(k) }), s = A, e[23] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (f = {
2139
- ...ce.labels,
2140
- height: fe
2141
- }, e[23] = f) : f = e[23];
2142
- let $;
2143
- e[24] !== w ? ($ = (_, G) => /* @__PURE__ */ d(E, { variant: "caption", color: "text.secondary", children: w(_, G) }, G), e[24] = w, e[25] = $) : $ = e[25], u = C.map($), e[0] = i, e[1] = o, e[2] = a, e[3] = l, e[4] = s, e[5] = c, e[6] = p, e[7] = f, e[8] = u, e[9] = y, e[10] = h, e[11] = g, e[12] = x;
2144
- } else
2145
- s = e[4], c = e[5], p = e[6], f = e[7], u = e[8], y = e[9], h = e[10], g = e[11], x = e[12];
2146
- let b;
2147
- e[26] !== s || e[27] !== f || e[28] !== u ? (b = /* @__PURE__ */ d(s, { sx: f, children: u }), e[26] = s, e[27] = f, e[28] = u, e[29] = b) : b = e[29];
2148
- let S;
2149
- e[30] !== c || e[31] !== y || e[32] !== h || e[33] !== b ? (S = /* @__PURE__ */ M(c, { sx: y, children: [
2150
- h,
2151
- b
2152
- ] }), e[30] = c, e[31] = y, e[32] = h, e[33] = b, e[34] = S) : S = e[34];
2153
- let L;
2154
- return e[35] !== p || e[36] !== S || e[37] !== g || e[38] !== x ? (L = /* @__PURE__ */ M(p, { sx: g, children: [
2155
- x,
2156
- S
2157
- ] }), e[35] = p, e[36] = S, e[37] = g, e[38] = x, e[39] = L) : L = e[39], L;
2158
- }
2159
- const oe = {
2160
- list: {
2161
- display: "flex",
2162
- flexDirection: "column",
2163
- gap: 0.5,
2164
- // Values are hidden until the legend content is hovered (or keyboard-
2165
- // focused). On hover-incapable (touch) devices they're always visible —
2166
- // tap-:hover is unreliable on non-interactive elements.
2167
- "&:hover .PsLegend-value, &:focus-within .PsLegend-value": {
2168
- opacity: 1
2169
- },
2170
- "@media (hover: none)": {
2171
- "& .PsLegend-value": {
2172
- opacity: 1
2173
- }
2174
- }
2175
- },
2176
- item: {
2177
- display: "flex",
2178
- alignItems: "center",
2179
- gap: 1
2180
- },
2181
- icon: {
2182
- flexShrink: 0,
2183
- width: 16,
2184
- height: 16,
2185
- objectFit: "contain"
2186
- },
2187
- label: {
2188
- flex: 1,
2189
- minWidth: 0,
2190
- overflow: "hidden",
2191
- textOverflow: "ellipsis",
2192
- whiteSpace: "nowrap"
2193
- },
2194
- value: {
2195
- flexShrink: 0,
2196
- opacity: 0,
2197
- transition: "opacity 120ms"
2198
- },
2199
- // ─── Horizontal orientation modifiers (spread over the vertical base) ───
2200
- listHorizontal: {
2201
- flexDirection: "row",
2202
- flexWrap: "wrap",
2203
- columnGap: 2,
2204
- rowGap: 0.5
2205
- },
2206
- itemHorizontal: {
2207
- gap: 0.5
2208
- },
2209
- labelHorizontal: {
2210
- flex: "0 0 auto",
2211
- overflow: "visible",
2212
- textOverflow: "clip"
2213
- }
1013
+ //#endregion
1014
+ //#region src/legend/components/legend-visible-layers/legend-visible-layers.tsx
1015
+ function ot(e, t) {
1016
+ return _(l(e).getState());
1017
+ }
1018
+ function st() {
1019
+ let t = y(33), n = r(), [i, a] = O(null), o = ot(n, g(n, ut)), s = u(n, lt), { labels: c } = K(), l = o.reduce(ct, 0), d = !!i && l > 0, f;
1020
+ t[0] === Symbol.for("react.memo_cache_sentinel") ? (f = (e) => a(e.currentTarget), t[0] = f) : f = t[0];
1021
+ let p = f, m;
1022
+ t[1] === Symbol.for("react.memo_cache_sentinel") ? (m = () => a(null), t[1] = m) : m = t[1];
1023
+ let h = m, _ = d ? "active" : void 0, v = l === 0, b;
1024
+ t[2] === Symbol.for("react.memo_cache_sentinel") ? (b = /* @__PURE__ */ V(W, { fontSize: "small" }), t[2] = b) : b = t[2];
1025
+ let x;
1026
+ t[3] !== c.enabledLayers || t[4] !== d || t[5] !== _ || t[6] !== v ? (x = /* @__PURE__ */ V(k, {
1027
+ component: "span",
1028
+ sx: X.triggerWrap,
1029
+ children: /* @__PURE__ */ V(P, {
1030
+ size: "small",
1031
+ className: _,
1032
+ disabled: v,
1033
+ onClick: p,
1034
+ "aria-label": c.enabledLayers,
1035
+ "aria-haspopup": "menu",
1036
+ "aria-expanded": d,
1037
+ children: b
1038
+ })
1039
+ }), t[3] = c.enabledLayers, t[4] = d, t[5] = _, t[6] = v, t[7] = x) : x = t[7];
1040
+ let S;
1041
+ t[8] !== c.toggleEnabledLayers || t[9] !== x ? (S = /* @__PURE__ */ V(e, {
1042
+ title: c.toggleEnabledLayers,
1043
+ children: x
1044
+ }), t[8] = c.toggleEnabledLayers, t[9] = x, t[10] = S) : S = t[10];
1045
+ let C = I, w;
1046
+ t[11] === h ? w = t[12] : (w = { onExited: h }, t[11] = h, t[12] = w);
1047
+ let T, E;
1048
+ t[13] === Symbol.for("react.memo_cache_sentinel") ? (T = { disablePadding: !0 }, E = { paper: { sx: X.paper } }, t[13] = T, t[14] = E) : (T = t[13], E = t[14]);
1049
+ let D = `${c.enabledLayers} (${l})`, A;
1050
+ t[15] === D ? A = t[16] : (A = /* @__PURE__ */ V(z, {
1051
+ component: "div",
1052
+ variant: "caption",
1053
+ color: "text.primary",
1054
+ sx: X.stickyHeader,
1055
+ children: D
1056
+ }), t[15] = D, t[16] = A);
1057
+ let j;
1058
+ t[17] !== c.hideLayer || t[18] !== s ? (j = (t, n) => [
1059
+ n > 0 ? /* @__PURE__ */ V(N, { sx: X.divider }, `divider-${t.group?.id ?? "ungrouped"}`) : null,
1060
+ t.group ? /* @__PURE__ */ V(z, {
1061
+ variant: "caption",
1062
+ fontWeight: "medium",
1063
+ color: "text.secondary",
1064
+ sx: X.groupCaption,
1065
+ children: t.group.label
1066
+ }, `caption-${t.group.id}`) : null,
1067
+ ...t.layers.map((t) => /* @__PURE__ */ H(L, {
1068
+ disableRipple: !0,
1069
+ sx: X.item,
1070
+ onClick: () => s(t.id, !1),
1071
+ children: [/* @__PURE__ */ V(z, {
1072
+ variant: "body2",
1073
+ sx: X.itemName,
1074
+ children: t.name
1075
+ }), /* @__PURE__ */ V(e, {
1076
+ title: c.hideLayer,
1077
+ children: /* @__PURE__ */ V(se, { sx: X.eye })
1078
+ })]
1079
+ }, t.id))
1080
+ ], t[17] = c.hideLayer, t[18] = s, t[19] = j) : j = t[19];
1081
+ let M = o.flatMap(j), F;
1082
+ t[20] !== C || t[21] !== i || t[22] !== h || t[23] !== d || t[24] !== A || t[25] !== M || t[26] !== w || t[27] !== T || t[28] !== E ? (F = /* @__PURE__ */ H(C, {
1083
+ anchorEl: i,
1084
+ open: d,
1085
+ onClose: h,
1086
+ TransitionProps: w,
1087
+ MenuListProps: T,
1088
+ slotProps: E,
1089
+ children: [A, M]
1090
+ }), t[20] = C, t[21] = i, t[22] = h, t[23] = d, t[24] = A, t[25] = M, t[26] = w, t[27] = T, t[28] = E, t[29] = F) : F = t[29];
1091
+ let R;
1092
+ return t[30] !== F || t[31] !== S ? (R = /* @__PURE__ */ H(B, { children: [S, F] }), t[30] = F, t[31] = S, t[32] = R) : R = t[32], R;
1093
+ }
1094
+ function ct(e, t) {
1095
+ return e + t.layers.length;
1096
+ }
1097
+ function lt(e) {
1098
+ return e.setVisibility;
1099
+ }
1100
+ function ut(e) {
1101
+ return _(e).map(dt).join("|");
1102
+ }
1103
+ function dt(e) {
1104
+ let { group: t, layers: n } = e;
1105
+ return `${t?.id ?? ""}\x1f${t?.label ?? ""}:${n.map(ft).join(",")}`;
1106
+ }
1107
+ function ft(e) {
1108
+ return `${e.id}\x1f${e.name}`;
1109
+ }
1110
+ //#endregion
1111
+ //#region src/legend/components/legend-sortable/legend-sortable.tsx
1112
+ function pt(e) {
1113
+ let t = y(27), { children: n } = e, i = r(), [a, o] = O(null), d = D(void 0), f = u(i, mt), p;
1114
+ t[0] === i ? p = t[1] : (p = (e, t) => {
1115
+ let n = Fe(e), r = Fe(t);
1116
+ return !n || r?.kind !== n.kind ? !1 : n.kind !== "layer" || l(i).getState().layers[r.id]?.groupId === d.current;
1117
+ }, t[0] = i, t[1] = p);
1118
+ let m = p, h;
1119
+ t[2] === m ? h = t[3] : (h = (e, t) => {
1120
+ let { context: n } = t, { active: r, collisionRect: i, droppableRects: a, droppableContainers: o } = n;
1121
+ if (!r || !i || e.code !== "ArrowDown" && e.code !== "ArrowUp") return;
1122
+ e.preventDefault();
1123
+ let s = e.code === "ArrowDown", c = o.getEnabled().filter((e) => e.id !== r.id && m(String(r.id), String(e.id))).flatMap((e) => {
1124
+ let t = a.get(e.id);
1125
+ return t ? [t] : [];
1126
+ }).filter((e) => s ? e.top > i.top : e.top < i.top).sort((e, t) => s ? e.top - t.top : t.top - e.top)[0];
1127
+ return c ? {
1128
+ x: c.left,
1129
+ y: c.top
1130
+ } : void 0;
1131
+ }, t[2] = m, t[3] = h);
1132
+ let g = h, _;
1133
+ t[4] === g ? _ = t[5] : (_ = { coordinateGetter: g }, t[4] = g, t[5] = _);
1134
+ let v = ve(_e(he), _e(me, _)), b;
1135
+ t[6] === m ? b = t[7] : (b = (e) => {
1136
+ let t = e.droppableContainers.filter((t) => m(String(e.active.id), String(t.id)));
1137
+ return ge({
1138
+ ...e,
1139
+ droppableContainers: t
1140
+ });
1141
+ }, t[6] = m, t[7] = b);
1142
+ let x = b, S;
1143
+ t[8] === i ? S = t[9] : (S = (e) => {
1144
+ let t = String(e.active.id);
1145
+ o(t);
1146
+ let n = Fe(t);
1147
+ d.current = n?.kind === "layer" ? l(i).getState().layers[n.id]?.groupId : void 0;
1148
+ }, t[8] = i, t[9] = S);
1149
+ let C = S, w;
1150
+ t[10] === i ? w = t[11] : (w = (e) => {
1151
+ o(null);
1152
+ let { active: t, over: n } = e;
1153
+ if (!n || t.id === n.id) return;
1154
+ let r = Fe(String(t.id)), a = Fe(String(n.id));
1155
+ if (!r || r.kind !== a?.kind) return;
1156
+ let u = l(i).getState();
1157
+ if (r.kind === "group") {
1158
+ let e = s(u).findIndex((e) => e.id === a.id);
1159
+ e !== -1 && u.moveGroup(r.id, e);
1160
+ return;
1161
+ }
1162
+ let d = u.layers[r.id], f = u.layers[a.id];
1163
+ if (!d || !f || d.groupId !== f.groupId) return;
1164
+ let p = c(u, d.groupId).findIndex((e) => e.id === a.id);
1165
+ p !== -1 && u.moveLayer(r.id, p);
1166
+ }, t[10] = i, t[11] = w);
1167
+ let T = w, E;
1168
+ t[12] === Symbol.for("react.memo_cache_sentinel") ? (E = () => o(null), t[12] = E) : E = t[12];
1169
+ let k;
1170
+ t[13] !== n || t[14] !== f ? (k = /* @__PURE__ */ V(ce, {
1171
+ items: f,
1172
+ strategy: ue,
1173
+ children: n
1174
+ }), t[13] = n, t[14] = f, t[15] = k) : k = t[15];
1175
+ let A;
1176
+ t[16] === a ? A = t[17] : (A = a && /* @__PURE__ */ V(_t, { activeId: a }), t[16] = a, t[17] = A);
1177
+ let j;
1178
+ t[18] === A ? j = t[19] : (j = /* @__PURE__ */ V(pe, { children: A }), t[18] = A, t[19] = j);
1179
+ let M;
1180
+ return t[20] !== x || t[21] !== T || t[22] !== C || t[23] !== v || t[24] !== j || t[25] !== k ? (M = /* @__PURE__ */ V(Me.Provider, {
1181
+ value: !0,
1182
+ children: /* @__PURE__ */ H(fe, {
1183
+ sensors: v,
1184
+ collisionDetection: x,
1185
+ onDragStart: C,
1186
+ onDragEnd: T,
1187
+ onDragCancel: E,
1188
+ children: [k, j]
1189
+ })
1190
+ }), t[20] = x, t[21] = T, t[22] = C, t[23] = v, t[24] = j, t[25] = k, t[26] = M) : M = t[26], M;
1191
+ }
1192
+ function mt(e) {
1193
+ return [...s(e).map(gt), ...c(e, void 0).map(ht)];
1194
+ }
1195
+ function ht(e) {
1196
+ return Pe("layer", e.id);
1197
+ }
1198
+ function gt(e) {
1199
+ return Pe("group", e.id);
1200
+ }
1201
+ function _t(e) {
1202
+ let t = y(15), { activeId: n } = e, i = r(), a;
1203
+ t[0] === n ? a = t[1] : (a = Fe(n), t[0] = n, t[1] = a);
1204
+ let o = a, s;
1205
+ t[2] === o ? s = t[3] : (s = (e) => o ? o.kind === "group" ? e.groups[o.id]?.label : e.layers[o.id]?.name : void 0, t[2] = o, t[3] = s);
1206
+ let c = g(i, s), l;
1207
+ t[4] === o ? l = t[5] : (l = (e) => o?.kind === "group" ? e.groups[o.id]?.icon : void 0, t[4] = o, t[5] = l);
1208
+ let u = g(i, l);
1209
+ if (!o || c === void 0) return null;
1210
+ let d;
1211
+ t[6] !== u || t[7] !== o.kind ? (d = o.kind === "group" && u != null && /* @__PURE__ */ V(k, {
1212
+ sx: Ie.overlayIcon,
1213
+ children: u
1214
+ }), t[6] = u, t[7] = o.kind, t[8] = d) : d = t[8];
1215
+ let f = o.kind === "group" ? "bold" : void 0, p;
1216
+ t[9] !== c || t[10] !== f ? (p = /* @__PURE__ */ V(z, {
1217
+ variant: "button",
1218
+ fontWeight: f,
1219
+ color: "text.primary",
1220
+ sx: Ie.overlayLabel,
1221
+ children: c
1222
+ }), t[9] = c, t[10] = f, t[11] = p) : p = t[11];
1223
+ let m;
1224
+ return t[12] !== d || t[13] !== p ? (m = /* @__PURE__ */ H(k, {
1225
+ sx: Ie.overlay,
1226
+ children: [d, p]
1227
+ }), t[12] = d, t[13] = p, t[14] = m) : m = t[14], m;
1228
+ }
1229
+ //#endregion
1230
+ //#region src/legend/components/legend-opacity/styles.ts
1231
+ var vt = {
1232
+ inline: {
1233
+ display: "flex",
1234
+ flexDirection: "column",
1235
+ gap: .5,
1236
+ borderRadius: 1
1237
+ },
1238
+ inlineHeader: {
1239
+ display: "flex",
1240
+ alignItems: "center",
1241
+ justifyContent: "space-between"
1242
+ },
1243
+ inlineControls: {
1244
+ display: "flex",
1245
+ alignItems: "center",
1246
+ gap: 1.5
1247
+ },
1248
+ slider: { flex: 1 },
1249
+ input: {
1250
+ width: 72,
1251
+ flexShrink: 0,
1252
+ "& input": { textAlign: "right" }
1253
+ }
1254
+ }, yt = (e) => Math.min(100, Math.max(0, Math.round(e)));
1255
+ function bt() {
1256
+ let e = y(10), t = r(), n = q(), i;
1257
+ e[0] === n ? i = e[1] : (i = (e) => n ? e.layers[n.layerId] : void 0, e[0] = n, e[1] = i);
1258
+ let a = u(t, i), o = u(t, xt), { labels: s } = K();
1259
+ if (!n || !a?.visible || !a.opacityControl) return null;
1260
+ let c;
1261
+ e[2] !== a || e[3] !== n || e[4] !== o ? (c = () => {
1262
+ let e = !n.opacityOpen;
1263
+ n.setOpacityOpen(e), e && a.collapsed && o(n.layerId, !1);
1264
+ }, e[2] = a, e[3] = n, e[4] = o, e[5] = c) : c = e[5];
1265
+ let l = c, d;
1266
+ return e[6] !== s.opacity || e[7] !== n.opacityOpen || e[8] !== l ? (d = /* @__PURE__ */ V(L, {
1267
+ selected: n.opacityOpen,
1268
+ onClick: l,
1269
+ children: s.opacity
1270
+ }), e[6] = s.opacity, e[7] = n.opacityOpen, e[8] = l, e[9] = d) : d = e[9], d;
1271
+ }
1272
+ function xt(e) {
1273
+ return e.setCollapsed;
1274
+ }
1275
+ function St() {
1276
+ let t = y(47), n = r(), i = q(), a = i?.layerId, o;
1277
+ t[0] === a ? o = t[1] : (o = (e) => a ? e.layers[a]?.opacity ?? 1 : 1, t[0] = a, t[1] = o);
1278
+ let s = g(n, o), c = g(n, wt), { labels: l } = K(), [u, d] = O(null), [f, p] = O(null);
1279
+ if (!i || !a || !i.opacityOpen) return null;
1280
+ let m;
1281
+ t[2] !== u || t[3] !== s ? (m = u ?? yt(s * 100), t[2] = u, t[3] = s, t[4] = m) : m = t[4];
1282
+ let h = m, _;
1283
+ t[5] !== a || t[6] !== c ? (_ = (e) => {
1284
+ let t = yt(e);
1285
+ return c(a, t / 100), t;
1286
+ }, t[5] = a, t[6] = c, t[7] = _) : _ = t[7];
1287
+ let v = _, b;
1288
+ t[8] === v ? b = t[9] : (b = (e) => {
1289
+ if (p(e), e.trim() === "") return;
1290
+ let t = Number(e);
1291
+ if (!Number.isFinite(t)) return;
1292
+ let n = v(t);
1293
+ n !== t && p(String(n));
1294
+ }, t[8] = v, t[9] = b);
1295
+ let x = b, S;
1296
+ t[10] === i ? S = t[11] : (S = () => {
1297
+ i.setOpacityOpen(!1), p(null), d(null);
1298
+ }, t[10] = i, t[11] = S);
1299
+ let C = S, w;
1300
+ t[12] === l.opacity ? w = t[13] : (w = /* @__PURE__ */ V(z, {
1301
+ variant: "caption",
1302
+ fontWeight: "medium",
1303
+ color: "text.primary",
1304
+ children: l.opacity
1305
+ }), t[12] = l.opacity, t[13] = w);
1306
+ let T;
1307
+ t[14] === Symbol.for("react.memo_cache_sentinel") ? (T = /* @__PURE__ */ V(ne, { fontSize: "small" }), t[14] = T) : T = t[14];
1308
+ let E;
1309
+ t[15] !== C || t[16] !== l.close ? (E = /* @__PURE__ */ V(P, {
1310
+ size: "small",
1311
+ onClick: C,
1312
+ "aria-label": l.close,
1313
+ children: T
1314
+ }), t[15] = C, t[16] = l.close, t[17] = E) : E = t[17];
1315
+ let D;
1316
+ t[18] !== l.close || t[19] !== E ? (D = /* @__PURE__ */ V(e, {
1317
+ title: l.close,
1318
+ children: E
1319
+ }), t[18] = l.close, t[19] = E, t[20] = D) : D = t[20];
1320
+ let A;
1321
+ t[21] !== w || t[22] !== D ? (A = /* @__PURE__ */ H(k, {
1322
+ sx: vt.inlineHeader,
1323
+ children: [w, D]
1324
+ }), t[21] = w, t[22] = D, t[23] = A) : A = t[23];
1325
+ let j;
1326
+ t[24] === Symbol.for("react.memo_cache_sentinel") ? (j = (e, t) => {
1327
+ d(t), p(null);
1328
+ }, t[24] = j) : j = t[24];
1329
+ let M;
1330
+ t[25] === v ? M = t[26] : (M = (e, t) => {
1331
+ v(t), d(null);
1332
+ }, t[25] = v, t[26] = M);
1333
+ let N;
1334
+ t[27] !== l.opacity || t[28] !== h || t[29] !== M ? (N = /* @__PURE__ */ V(ee, {
1335
+ size: "small",
1336
+ min: 0,
1337
+ max: 100,
1338
+ step: 1,
1339
+ value: h,
1340
+ onChange: j,
1341
+ onChangeCommitted: M,
1342
+ "aria-label": l.opacity,
1343
+ sx: vt.slider
1344
+ }), t[27] = l.opacity, t[28] = h, t[29] = M, t[30] = N) : N = t[30];
1345
+ let I = f ?? String(h), L;
1346
+ t[31] === x ? L = t[32] : (L = (e) => x(e.target.value), t[31] = x, t[32] = L);
1347
+ let te;
1348
+ t[33] === Symbol.for("react.memo_cache_sentinel") ? (te = () => p(null), t[33] = te) : te = t[33];
1349
+ let B;
1350
+ t[34] === Symbol.for("react.memo_cache_sentinel") ? (B = /* @__PURE__ */ V(F, {
1351
+ position: "end",
1352
+ children: "%"
1353
+ }), t[34] = B) : B = t[34];
1354
+ let U;
1355
+ t[35] === l.opacity ? U = t[36] : (U = {
1356
+ inputMode: "numeric",
1357
+ "aria-label": l.opacity
1358
+ }, t[35] = l.opacity, t[36] = U);
1359
+ let W;
1360
+ t[37] !== I || t[38] !== L || t[39] !== U ? (W = /* @__PURE__ */ V(R, {
1361
+ size: "small",
1362
+ value: I,
1363
+ onChange: L,
1364
+ onBlur: te,
1365
+ onKeyDown: Ct,
1366
+ endAdornment: B,
1367
+ inputProps: U,
1368
+ sx: vt.input
1369
+ }), t[37] = I, t[38] = L, t[39] = U, t[40] = W) : W = t[40];
1370
+ let G;
1371
+ t[41] !== N || t[42] !== W ? (G = /* @__PURE__ */ H(k, {
1372
+ sx: vt.inlineControls,
1373
+ children: [N, W]
1374
+ }), t[41] = N, t[42] = W, t[43] = G) : G = t[43];
1375
+ let re;
1376
+ return t[44] !== G || t[45] !== A ? (re = /* @__PURE__ */ H(k, {
1377
+ sx: vt.inline,
1378
+ children: [A, G]
1379
+ }), t[44] = G, t[45] = A, t[46] = re) : re = t[46], re;
1380
+ }
1381
+ function Ct(e) {
1382
+ e.key === "Enter" && e.target.blur();
1383
+ }
1384
+ function wt(e) {
1385
+ return e.setOpacity;
1386
+ }
1387
+ var Tt = {
1388
+ Item: bt,
1389
+ Inline: St
1390
+ }, Et = {
1391
+ trigger: {
1392
+ width: "100%",
1393
+ minHeight: 32,
1394
+ display: "flex",
1395
+ alignItems: "center",
1396
+ justifyContent: "space-between",
1397
+ gap: 1,
1398
+ padding: ({ spacing: e }) => e(0, 1.5),
1399
+ border: "1px solid",
1400
+ borderColor: "divider",
1401
+ borderRadius: 1,
1402
+ backgroundColor: "background.paper",
1403
+ color: "text.primary",
1404
+ "&:hover": { borderColor: "text.primary" }
1405
+ },
1406
+ value: {
1407
+ minWidth: 0,
1408
+ overflow: "hidden",
1409
+ textOverflow: "ellipsis",
1410
+ whiteSpace: "nowrap"
1411
+ },
1412
+ chevron: {
1413
+ flexShrink: 0,
1414
+ color: "action.active",
1415
+ transition: ({ transitions: e }) => e.create("transform")
1416
+ },
1417
+ chevronOpen: { transform: "rotate(180deg)" },
1418
+ sectionTitle: {
1419
+ padding: ({ spacing: e }) => e(1, 2, .5, 2),
1420
+ lineHeight: 1.5
1421
+ },
1422
+ option: { "&.Mui-selected, &.Mui-selected:hover": {
1423
+ backgroundColor: "transparent",
1424
+ color: "primary.main"
1425
+ } }
2214
1426
  };
2215
- function ct(t) {
2216
- const e = T(11), {
2217
- data: o
2218
- } = t, r = o.orientation ?? "vertical", l = r === "horizontal", i = l ? oe.listHorizontal : null;
2219
- let n;
2220
- e[0] !== i ? (n = {
2221
- ...oe.list,
2222
- ...i
2223
- }, e[0] = i, e[1] = n) : n = e[1];
2224
- let a;
2225
- if (e[2] !== o.items || e[3] !== l) {
2226
- let c;
2227
- e[5] !== l ? (c = (p, f) => /* @__PURE__ */ M(A, { sx: {
2228
- ...oe.item,
2229
- ...l ? oe.itemHorizontal : null
2230
- }, children: [
2231
- /* @__PURE__ */ d(A, { component: "img", src: p.icon, alt: "", sx: oe.icon }),
2232
- /* @__PURE__ */ d(E, { variant: "caption", color: "text.primary", sx: {
2233
- ...oe.label,
2234
- ...l ? oe.labelHorizontal : null
2235
- }, children: p.label }),
2236
- p.value != null && /* @__PURE__ */ d(E, { className: "PsLegend-value", variant: "caption", color: "text.secondary", sx: oe.value, children: p.value })
2237
- ] }, `${p.label}-${f}`), e[5] = l, e[6] = c) : c = e[6], a = o.items.map(c), e[2] = o.items, e[3] = l, e[4] = a;
2238
- } else
2239
- a = e[4];
2240
- let s;
2241
- return e[7] !== r || e[8] !== n || e[9] !== a ? (s = /* @__PURE__ */ d(A, { "data-orientation": r, sx: n, children: a }), e[7] = r, e[8] = n, e[9] = a, e[10] = s) : s = e[10], s;
2242
- }
2243
- function dt(t) {
2244
- const e = T(10), {
2245
- data: o,
2246
- labels: r
2247
- } = t;
2248
- switch (o.type) {
2249
- case "category": {
2250
- let l;
2251
- return e[0] !== o ? (l = /* @__PURE__ */ d(rt, { data: o }), e[0] = o, e[1] = l) : l = e[1], l;
2252
- }
2253
- case "ramp": {
2254
- let l;
2255
- return e[2] !== o || e[3] !== r ? (l = /* @__PURE__ */ d(st, { data: o, labels: r }), e[2] = o, e[3] = r, e[4] = l) : l = e[4], l;
2256
- }
2257
- case "proportion": {
2258
- let l;
2259
- return e[5] !== o || e[6] !== r ? (l = /* @__PURE__ */ d(at, { data: o, labels: r }), e[5] = o, e[6] = r, e[7] = l) : l = e[7], l;
2260
- }
2261
- case "icon": {
2262
- let l;
2263
- return e[8] !== o ? (l = /* @__PURE__ */ d(ct, { data: o }), e[8] = o, e[9] = l) : l = e[9], l;
2264
- }
2265
- default:
2266
- return o;
2267
- }
2268
- }
2269
- const Fo = {
2270
- // Figma: stacked variable sections sit ~16px apart (wider than the row
2271
- // content's 8px block gap).
2272
- stack: {
2273
- display: "flex",
2274
- flexDirection: "column",
2275
- gap: 2
2276
- }
1427
+ //#endregion
1428
+ //#region src/legend/components/legend-config-select/legend-config-select.tsx
1429
+ function Dt() {
1430
+ let e = y(34), t = r(), n = q()?.layerId, i;
1431
+ e[0] === n ? i = e[1] : (i = (e) => n ? e.layers[n]?.sections : void 0, e[0] = n, e[1] = i);
1432
+ let a = u(t, i), o = u(t, Ot), { labels: s } = K(), [c, l] = O(null), d = !!c;
1433
+ if (!n || !a || a.length === 0) return null;
1434
+ let f = a[0].active, p = a.length > 1, m;
1435
+ e[2] === Symbol.for("react.memo_cache_sentinel") ? (m = (e) => l(e.currentTarget), e[2] = m) : m = e[2];
1436
+ let h;
1437
+ e[3] === f ? h = e[4] : (h = /* @__PURE__ */ V(z, {
1438
+ variant: "body2",
1439
+ sx: Et.value,
1440
+ children: f
1441
+ }), e[3] = f, e[4] = h);
1442
+ let g;
1443
+ e[5] === d ? g = e[6] : (g = d ? {
1444
+ ...Et.chevron,
1445
+ ...Et.chevronOpen
1446
+ } : Et.chevron, e[5] = d, e[6] = g);
1447
+ let _;
1448
+ e[7] === g ? _ = e[8] : (_ = /* @__PURE__ */ V(U, {
1449
+ fontSize: "small",
1450
+ sx: g
1451
+ }), e[7] = g, e[8] = _);
1452
+ let v;
1453
+ e[9] !== s.attribute || e[10] !== d || e[11] !== h || e[12] !== _ ? (v = /* @__PURE__ */ H(A, {
1454
+ sx: Et.trigger,
1455
+ onClick: m,
1456
+ "aria-label": s.attribute,
1457
+ "aria-haspopup": "listbox",
1458
+ "aria-expanded": d,
1459
+ children: [h, _]
1460
+ }), e[9] = s.attribute, e[10] = d, e[11] = h, e[12] = _, e[13] = v) : v = e[13];
1461
+ let b;
1462
+ e[14] === Symbol.for("react.memo_cache_sentinel") ? (b = () => l(null), e[14] = b) : b = e[14];
1463
+ let x = c?.clientWidth, S;
1464
+ e[15] === x ? S = e[16] : (S = { paper: { sx: { width: x } } }, e[15] = x, e[16] = S);
1465
+ let C;
1466
+ if (e[17] !== n || e[18] !== a || e[19] !== o || e[20] !== p) {
1467
+ let t;
1468
+ e[22] !== n || e[23] !== o || e[24] !== p ? (t = (e) => [p && e.title ? /* @__PURE__ */ V(z, {
1469
+ variant: "overline",
1470
+ color: "text.secondary",
1471
+ component: "li",
1472
+ sx: Et.sectionTitle,
1473
+ children: e.title
1474
+ }, `${e.id}-title`) : null, ...e.options.map((t) => /* @__PURE__ */ V(L, {
1475
+ selected: t === e.active,
1476
+ sx: Et.option,
1477
+ onClick: () => {
1478
+ o(n, e.id, t), l(null);
1479
+ },
1480
+ children: t
1481
+ }, `${e.id}-${t}`))], e[22] = n, e[23] = o, e[24] = p, e[25] = t) : t = e[25], C = a.map(t), e[17] = n, e[18] = a, e[19] = o, e[20] = p, e[21] = C;
1482
+ } else C = e[21];
1483
+ let w;
1484
+ e[26] !== c || e[27] !== d || e[28] !== S || e[29] !== C ? (w = /* @__PURE__ */ V(I, {
1485
+ anchorEl: c,
1486
+ open: d,
1487
+ onClose: b,
1488
+ slotProps: S,
1489
+ children: C
1490
+ }), e[26] = c, e[27] = d, e[28] = S, e[29] = C, e[30] = w) : w = e[30];
1491
+ let T;
1492
+ return e[31] !== w || e[32] !== v ? (T = /* @__PURE__ */ H(B, { children: [v, w] }), e[31] = w, e[32] = v, e[33] = T) : T = e[33], T;
1493
+ }
1494
+ function Ot(e) {
1495
+ return e.setSectionValue;
1496
+ }
1497
+ //#endregion
1498
+ //#region src/legend/components/legend-category/styles.ts
1499
+ var Z = {
1500
+ list: {
1501
+ display: "flex",
1502
+ flexDirection: "column",
1503
+ gap: .5,
1504
+ "&:hover .PsLegend-value, &:focus-within .PsLegend-value": { opacity: 1 },
1505
+ "@media (hover: none)": { "& .PsLegend-value": { opacity: 1 } }
1506
+ },
1507
+ item: {
1508
+ display: "flex",
1509
+ alignItems: "center",
1510
+ gap: 1
1511
+ },
1512
+ gutter: {
1513
+ flexShrink: 0,
1514
+ display: "flex",
1515
+ alignItems: "center",
1516
+ justifyContent: "center"
1517
+ },
1518
+ label: {
1519
+ flex: 1,
1520
+ minWidth: 0,
1521
+ overflow: "hidden",
1522
+ textOverflow: "ellipsis",
1523
+ whiteSpace: "nowrap"
1524
+ },
1525
+ value: {
1526
+ flexShrink: 0,
1527
+ opacity: 0,
1528
+ transition: "opacity 120ms"
1529
+ },
1530
+ listHorizontal: {
1531
+ flexDirection: "row",
1532
+ flexWrap: "wrap",
1533
+ columnGap: 2,
1534
+ rowGap: .5
1535
+ },
1536
+ itemHorizontal: { gap: .5 },
1537
+ labelHorizontal: {
1538
+ flex: "0 0 auto",
1539
+ overflow: "visible",
1540
+ textOverflow: "clip"
1541
+ }
1542
+ }, kt = 1.5, At = 2, jt = 1;
1543
+ function Mt(e) {
1544
+ switch (e) {
1545
+ case "dashed": return { dash: "3 2" };
1546
+ case "dotted": return {
1547
+ dash: `0.1 ${kt * 2}`,
1548
+ round: !0
1549
+ };
1550
+ default: return {};
1551
+ }
1552
+ }
1553
+ function Nt(e) {
1554
+ switch (e) {
1555
+ case "dashed": return { dash: "4 3" };
1556
+ case "dotted": return {
1557
+ dash: "0.1 4",
1558
+ round: !0
1559
+ };
1560
+ case "dash-dot": return {
1561
+ dash: "5 2 0.1 2",
1562
+ round: !0
1563
+ };
1564
+ default: return {};
1565
+ }
1566
+ }
1567
+ function Pt(e, t) {
1568
+ let n = (e) => /* @__PURE__ */ V("path", {
1569
+ d: e,
1570
+ stroke: t,
1571
+ strokeWidth: 1.2,
1572
+ fill: "none"
1573
+ });
1574
+ switch (e) {
1575
+ case "horizontal": return {
1576
+ size: 4,
1577
+ content: n("M0 2 H4")
1578
+ };
1579
+ case "vertical": return {
1580
+ size: 4,
1581
+ content: n("M2 0 V4")
1582
+ };
1583
+ case "diagonal": return {
1584
+ size: 4,
1585
+ content: n("M0 4 L4 0 M-1 1 L1 -1 M3 5 L5 3")
1586
+ };
1587
+ case "diagonal-alt": return {
1588
+ size: 4,
1589
+ content: n("M0 0 L4 4 M-1 3 L1 5 M3 -1 L5 1")
1590
+ };
1591
+ case "cross": return {
1592
+ size: 4,
1593
+ content: n("M0 4 L4 0 M-1 1 L1 -1 M3 5 L5 3 M0 0 L4 4 M-1 3 L1 5 M3 -1 L5 1")
1594
+ };
1595
+ case "dots": return {
1596
+ size: 4,
1597
+ content: /* @__PURE__ */ V("circle", {
1598
+ cx: 2,
1599
+ cy: 2,
1600
+ r: .9,
1601
+ fill: t
1602
+ })
1603
+ };
1604
+ case "grid": return {
1605
+ size: 3,
1606
+ content: /* @__PURE__ */ V("circle", {
1607
+ cx: 1.5,
1608
+ cy: 1.5,
1609
+ r: .7,
1610
+ fill: t
1611
+ })
1612
+ };
1613
+ default: return null;
1614
+ }
1615
+ }
1616
+ function Ft(e) {
1617
+ let t = y(46), { shape: n, color: r, isStrokeColor: i, fillPattern: a, strokeStyle: o, size: s } = e, c = n === void 0 ? "circle" : n, l = i !== void 0 && i, u = a === void 0 ? "solid" : a, d = o === void 0 ? "solid" : o, f = s === void 0 ? 12 : s, p = T();
1618
+ if (c === "line") {
1619
+ let e;
1620
+ t[0] === d ? e = t[1] : (e = Nt(d), t[0] = d, t[1] = e);
1621
+ let { dash: n, round: i } = e, a = `0 0 ${f} ${f}`, o;
1622
+ t[2] === Symbol.for("react.memo_cache_sentinel") ? (o = {
1623
+ display: "block",
1624
+ overflow: "visible"
1625
+ }, t[2] = o) : o = t[2];
1626
+ let s = f / 2, c = f / 2, l = i ? "round" : "butt", u;
1627
+ t[3] !== r || t[4] !== n || t[5] !== f || t[6] !== c || t[7] !== l || t[8] !== s ? (u = /* @__PURE__ */ V("line", {
1628
+ x1: 0,
1629
+ y1: s,
1630
+ x2: f,
1631
+ y2: c,
1632
+ stroke: r,
1633
+ strokeWidth: At,
1634
+ strokeDasharray: n,
1635
+ strokeLinecap: l
1636
+ }), t[3] = r, t[4] = n, t[5] = f, t[6] = c, t[7] = l, t[8] = s, t[9] = u) : u = t[9];
1637
+ let p;
1638
+ return t[10] !== f || t[11] !== u || t[12] !== a ? (p = /* @__PURE__ */ V("svg", {
1639
+ width: f,
1640
+ height: f,
1641
+ viewBox: a,
1642
+ "aria-hidden": !0,
1643
+ "data-shape": "line",
1644
+ style: o,
1645
+ children: u
1646
+ }), t[10] = f, t[11] = u, t[12] = a, t[13] = p) : p = t[13], p;
1647
+ }
1648
+ let m = l ? kt / 2 : 0, h = !l && u !== "solid", g;
1649
+ t[14] !== r || t[15] !== u || t[16] !== h ? (g = h ? Pt(u, r) : null, t[14] = r, t[15] = u, t[16] = h, t[17] = g) : g = t[17];
1650
+ let _ = g, v = l && d === "corners" && c === "square", b;
1651
+ t[18] !== l || t[19] !== d ? (b = l ? Mt(d) : {
1652
+ dash: void 0,
1653
+ round: !1
1654
+ }, t[18] = l, t[19] = d, t[20] = b) : b = t[20];
1655
+ let { dash: x, round: S } = b, C = l ? kt : jt, w = l ? x : void 0, E = S ? "round" : "butt", D;
1656
+ t[21] !== r || t[22] !== E || t[23] !== C || t[24] !== w ? (D = {
1657
+ stroke: r,
1658
+ strokeWidth: C,
1659
+ strokeDasharray: w,
1660
+ strokeLinecap: E
1661
+ }, t[21] = r, t[22] = E, t[23] = C, t[24] = w, t[25] = D) : D = t[25];
1662
+ let O = D, k = l ? "none" : h ? `url(#${p})` : r, A = `0 0 ${f} ${f}`, j;
1663
+ t[26] === Symbol.for("react.memo_cache_sentinel") ? (j = { display: "block" }, t[26] = j) : j = t[26];
1664
+ let M;
1665
+ t[27] !== p || t[28] !== _ ? (M = _ && /* @__PURE__ */ V("defs", { children: /* @__PURE__ */ V("pattern", {
1666
+ id: p,
1667
+ patternUnits: "userSpaceOnUse",
1668
+ width: _.size,
1669
+ height: _.size,
1670
+ children: _.content
1671
+ }) }), t[27] = p, t[28] = _, t[29] = M) : M = t[29];
1672
+ let N;
1673
+ t[30] !== r || t[31] !== O || t[32] !== k || t[33] !== m || t[34] !== v || t[35] !== l || t[36] !== c || t[37] !== f || t[38] !== h ? (N = v ? /* @__PURE__ */ V(It, {
1674
+ size: f,
1675
+ color: r
1676
+ }) : c === "circle" ? /* @__PURE__ */ V("circle", {
1677
+ cx: f / 2,
1678
+ cy: f / 2,
1679
+ r: f / 2 - m,
1680
+ fill: k,
1681
+ ...O,
1682
+ stroke: l || h ? r : "none"
1683
+ }) : /* @__PURE__ */ V("rect", {
1684
+ x: m,
1685
+ y: m,
1686
+ width: f - m * 2,
1687
+ height: f - m * 2,
1688
+ fill: k,
1689
+ ...O,
1690
+ stroke: l || h ? r : "none"
1691
+ }), t[30] = r, t[31] = O, t[32] = k, t[33] = m, t[34] = v, t[35] = l, t[36] = c, t[37] = f, t[38] = h, t[39] = N) : N = t[39];
1692
+ let P;
1693
+ return t[40] !== c || t[41] !== f || t[42] !== A || t[43] !== M || t[44] !== N ? (P = /* @__PURE__ */ H("svg", {
1694
+ width: f,
1695
+ height: f,
1696
+ viewBox: A,
1697
+ "aria-hidden": !0,
1698
+ "data-shape": c,
1699
+ style: j,
1700
+ children: [M, N]
1701
+ }), t[40] = c, t[41] = f, t[42] = A, t[43] = M, t[44] = N, t[45] = P) : P = t[45], P;
1702
+ }
1703
+ function It(e) {
1704
+ let t = y(19), { size: n, color: r } = e, i = Math.max(2, n * .3), a = kt / 2, o = n - a, s;
1705
+ t[0] === r ? s = t[1] : (s = {
1706
+ stroke: r,
1707
+ strokeWidth: kt,
1708
+ fill: "none"
1709
+ }, t[0] = r, t[1] = s);
1710
+ let c = s, l = `M${a} ${a + i} V${a} H${a + i}`, u;
1711
+ t[2] !== c || t[3] !== l ? (u = /* @__PURE__ */ V("path", {
1712
+ d: l,
1713
+ ...c
1714
+ }), t[2] = c, t[3] = l, t[4] = u) : u = t[4];
1715
+ let d = `M${o - i} ${a} H${o} V${a + i}`, f;
1716
+ t[5] !== c || t[6] !== d ? (f = /* @__PURE__ */ V("path", {
1717
+ d,
1718
+ ...c
1719
+ }), t[5] = c, t[6] = d, t[7] = f) : f = t[7];
1720
+ let p = `M${o} ${o - i} V${o} H${o - i}`, m;
1721
+ t[8] !== c || t[9] !== p ? (m = /* @__PURE__ */ V("path", {
1722
+ d: p,
1723
+ ...c
1724
+ }), t[8] = c, t[9] = p, t[10] = m) : m = t[10];
1725
+ let h = `M${a + i} ${o} H${a} V${o - i}`, g;
1726
+ t[11] !== c || t[12] !== h ? (g = /* @__PURE__ */ V("path", {
1727
+ d: h,
1728
+ ...c
1729
+ }), t[11] = c, t[12] = h, t[13] = g) : g = t[13];
1730
+ let _;
1731
+ return t[14] !== u || t[15] !== f || t[16] !== m || t[17] !== g ? (_ = /* @__PURE__ */ H(B, { children: [
1732
+ u,
1733
+ f,
1734
+ m,
1735
+ g
1736
+ ] }), t[14] = u, t[15] = f, t[16] = m, t[17] = g, t[18] = _) : _ = t[18], _;
1737
+ }
1738
+ //#endregion
1739
+ //#region src/legend/components/legend-category/legend-category-ui.tsx
1740
+ var Lt = 16;
1741
+ function Rt(e) {
1742
+ let t = y(23), { data: n } = e, { items: r, shape: i, isStrokeColor: a, fillPattern: o, strokeStyle: s, orientation: c } = n, l = i === void 0 ? "circle" : i, u = a !== void 0 && a, d = o === void 0 ? "solid" : o, f = s === void 0 ? "solid" : s, p = c === void 0 ? "vertical" : c, m = p === "horizontal", h;
1743
+ t[0] === r ? h = t[1] : (h = r.reduce(zt, 0), t[0] = r, t[1] = h);
1744
+ let g = Math.max(Lt, h), _ = m ? Z.listHorizontal : null, v;
1745
+ t[2] === _ ? v = t[3] : (v = {
1746
+ ...Z.list,
1747
+ ..._
1748
+ }, t[2] = _, t[3] = v);
1749
+ let b;
1750
+ if (t[4] !== d || t[5] !== g || t[6] !== m || t[7] !== u || t[8] !== r || t[9] !== l || t[10] !== f) {
1751
+ let e;
1752
+ t[12] !== d || t[13] !== g || t[14] !== m || t[15] !== u || t[16] !== l || t[17] !== f ? (e = (e, t) => /* @__PURE__ */ H(k, {
1753
+ sx: {
1754
+ ...Z.item,
1755
+ ...m ? Z.itemHorizontal : null
1756
+ },
1757
+ children: [
1758
+ /* @__PURE__ */ V(k, {
1759
+ sx: {
1760
+ ...Z.gutter,
1761
+ width: m ? void 0 : g
1762
+ },
1763
+ children: /* @__PURE__ */ V(Ft, {
1764
+ shape: e.shape ?? l,
1765
+ color: e.color,
1766
+ isStrokeColor: e.isStrokeColor ?? u,
1767
+ fillPattern: e.fillPattern ?? d,
1768
+ strokeStyle: e.strokeStyle ?? f,
1769
+ size: e.size ?? 12
1770
+ })
1771
+ }),
1772
+ /* @__PURE__ */ V(z, {
1773
+ variant: "caption",
1774
+ color: "text.primary",
1775
+ sx: {
1776
+ ...Z.label,
1777
+ ...m ? Z.labelHorizontal : null
1778
+ },
1779
+ children: e.label
1780
+ }),
1781
+ e.value != null && /* @__PURE__ */ V(z, {
1782
+ className: "PsLegend-value",
1783
+ variant: "caption",
1784
+ color: "text.secondary",
1785
+ sx: Z.value,
1786
+ children: e.value
1787
+ })
1788
+ ]
1789
+ }, `${e.label}-${t}`), t[12] = d, t[13] = g, t[14] = m, t[15] = u, t[16] = l, t[17] = f, t[18] = e) : e = t[18], b = r.map(e), t[4] = d, t[5] = g, t[6] = m, t[7] = u, t[8] = r, t[9] = l, t[10] = f, t[11] = b;
1790
+ } else b = t[11];
1791
+ let x;
1792
+ return t[19] !== p || t[20] !== v || t[21] !== b ? (x = /* @__PURE__ */ V(k, {
1793
+ "data-orientation": p,
1794
+ sx: v,
1795
+ children: b
1796
+ }), t[19] = p, t[20] = v, t[21] = b, t[22] = x) : x = t[22], x;
1797
+ }
1798
+ function zt(e, t) {
1799
+ return Math.max(e, t.size ?? 12);
1800
+ }
1801
+ //#endregion
1802
+ //#region src/legend/components/legend-ramp/styles.ts
1803
+ var Q = {
1804
+ container: {
1805
+ display: "flex",
1806
+ flexDirection: "column",
1807
+ gap: .5
1808
+ },
1809
+ attribute: {
1810
+ display: "flex",
1811
+ flexDirection: "column"
1812
+ },
1813
+ error: {
1814
+ display: "flex",
1815
+ alignItems: "center",
1816
+ gap: .5,
1817
+ color: "error.main"
1818
+ },
1819
+ barWrap: { position: "relative" },
1820
+ bar: {
1821
+ height: 8,
1822
+ borderRadius: "2px",
1823
+ overflow: "hidden",
1824
+ display: "flex"
1825
+ },
1826
+ avgLine: {
1827
+ position: "absolute",
1828
+ top: -2,
1829
+ bottom: -2,
1830
+ width: 0,
1831
+ borderLeft: "1.5px dashed",
1832
+ borderColor: "text.primary",
1833
+ transform: "translateX(-50%)"
1834
+ },
1835
+ step: {
1836
+ flex: 1,
1837
+ height: "100%"
1838
+ },
1839
+ labels: {
1840
+ display: "flex",
1841
+ justifyContent: "space-between",
1842
+ gap: 1
1843
+ },
1844
+ boundaryLabels: {
1845
+ position: "relative",
1846
+ height: 16
1847
+ },
1848
+ boundaryLabel: {
1849
+ position: "absolute",
1850
+ top: 0,
1851
+ whiteSpace: "nowrap"
1852
+ }
2277
1853
  };
2278
- function Uo() {
2279
- const t = T(9), e = N(), o = Q();
2280
- let r;
2281
- t[0] !== o ? (r = (s) => o ? s.layers[o.layerId]?.variables : void 0, t[0] = o, t[1] = r) : r = t[1];
2282
- const l = Z(e, r), {
2283
- labels: i
2284
- } = W();
2285
- if (!l || l.length === 0)
2286
- return null;
2287
- let n;
2288
- if (t[2] !== i || t[3] !== l) {
2289
- let s;
2290
- t[5] !== i ? (s = (c, p) => /* @__PURE__ */ d(dt, { data: c, labels: i }, p), t[5] = i, t[6] = s) : s = t[6], n = l.map(s), t[2] = i, t[3] = l, t[4] = n;
2291
- } else
2292
- n = t[4];
2293
- let a;
2294
- return t[7] !== n ? (a = /* @__PURE__ */ d(A, { sx: Fo.stack, children: n }), t[7] = n, t[8] = a) : a = t[8], a;
2295
- }
2296
- const an = {
2297
- // Composition shell
2298
- Provider: Nt,
2299
- Group: jt,
2300
- Row: Xt,
2301
- Actions: Ye,
2302
- Sortable: xo,
2303
- // Store-connected actions & controls (context-driven)
2304
- VisibilityToggle: Jt,
2305
- RowMenu: oo,
2306
- ZoomTo: no,
2307
- ShowOnlyLayer: lo,
2308
- ShowAllLayers: io,
2309
- GroupMenu: ro,
2310
- ShowOnlyGroup: so,
2311
- ShowAllGroups: ao,
2312
- CollapseAllGroups: co,
2313
- ZoomToGroup: uo,
2314
- PanelMenu: po,
2315
- VisibleLayers: ho,
2316
- Opacity: Go,
2317
- ConfigSelect: Po,
2318
- Item: Uo,
2319
- // Pure UI
2320
- ItemUI: dt,
2321
- Swatch: it,
2322
- CategoryUI: rt,
2323
- RampUI: st,
2324
- ProportionUI: at,
2325
- IconUI: ct
1854
+ //#endregion
1855
+ //#region src/legend/components/legend-ramp/legend-ramp-ui.tsx
1856
+ function Bt(e) {
1857
+ let { avg: t, stops: n } = e;
1858
+ if (t == null || n.length < 2) return null;
1859
+ let r = n[0].value, i = n[n.length - 1].value;
1860
+ if (r === i) return null;
1861
+ let a = (t - r) / (i - r) * 100;
1862
+ return Math.min(100, Math.max(0, a));
1863
+ }
1864
+ function Vt(t) {
1865
+ let n = y(40), { data: r, labels: i } = t, a = i === void 0 ? ye : i, { colors: o, stops: s, isContinuous: c, attribute: l, formatValue: u } = r, d = u === void 0 ? String : u, f;
1866
+ n[0] === r ? f = n[1] : (f = Bt(r), n[0] = r, n[1] = f);
1867
+ let p = f, m = s[0], h = s[s.length - 1], g;
1868
+ n[2] === o ? g = n[3] : (g = o.join(", "), n[2] = o, n[3] = g);
1869
+ let _ = `linear-gradient(90deg, ${g})`, v = !c && s.length === o.length + 1, b = !c && !v, x;
1870
+ n[4] === s ? x = n[5] : (x = (e) => `${s[e]?.label ?? ""} ${s[e + 1]?.label ?? ""}`, n[4] = s, n[5] = x);
1871
+ let S = x, C;
1872
+ n[6] !== l || n[7] !== a ? (C = l && /* @__PURE__ */ H(k, {
1873
+ sx: Q.attribute,
1874
+ children: [/* @__PURE__ */ V(z, {
1875
+ variant: "overline",
1876
+ color: "text.secondary",
1877
+ children: a.colorBasedOn
1878
+ }), /* @__PURE__ */ V(z, {
1879
+ variant: "caption",
1880
+ color: "text.primary",
1881
+ children: l
1882
+ })]
1883
+ }), n[6] = l, n[7] = a, n[8] = C) : C = n[8];
1884
+ let w = C;
1885
+ if (b) {
1886
+ let e;
1887
+ n[9] === Symbol.for("react.memo_cache_sentinel") ? (e = /* @__PURE__ */ V(re, { fontSize: "small" }), n[9] = e) : e = n[9];
1888
+ let t = `Discrete ramp needs ${o.length + 1} stops (one per color boundary) but got ${s.length}.`, r;
1889
+ n[10] === t ? r = n[11] : (r = /* @__PURE__ */ H(k, {
1890
+ sx: Q.error,
1891
+ children: [e, /* @__PURE__ */ V(z, {
1892
+ variant: "caption",
1893
+ color: "error",
1894
+ children: t
1895
+ })]
1896
+ }), n[10] = t, n[11] = r);
1897
+ let i;
1898
+ return n[12] !== w || n[13] !== r ? (i = /* @__PURE__ */ H(k, {
1899
+ sx: Q.container,
1900
+ children: [w, r]
1901
+ }), n[12] = w, n[13] = r, n[14] = i) : i = n[14], i;
1902
+ }
1903
+ let T;
1904
+ n[15] !== o || n[16] !== _ || n[17] !== c || n[18] !== a || n[19] !== S ? (T = c ? /* @__PURE__ */ V(k, {
1905
+ role: "img",
1906
+ "aria-label": a.colorGradient,
1907
+ sx: {
1908
+ width: "100%",
1909
+ height: "100%",
1910
+ background: _
1911
+ }
1912
+ }) : o.map((e, t) => /* @__PURE__ */ V(k, {
1913
+ role: "img",
1914
+ "aria-label": S(t),
1915
+ sx: {
1916
+ ...Q.step,
1917
+ backgroundColor: e
1918
+ }
1919
+ }, t)), n[15] = o, n[16] = _, n[17] = c, n[18] = a, n[19] = S, n[20] = T) : T = n[20];
1920
+ let E;
1921
+ n[21] === T ? E = n[22] : (E = /* @__PURE__ */ V(k, {
1922
+ sx: Q.bar,
1923
+ children: T
1924
+ }), n[21] = T, n[22] = E);
1925
+ let D;
1926
+ n[23] !== p || n[24] !== r.avg || n[25] !== d ? (D = p != null && r.avg != null && /* @__PURE__ */ V(e, {
1927
+ title: d(r.avg),
1928
+ placement: "top",
1929
+ arrow: !0,
1930
+ children: /* @__PURE__ */ V(k, {
1931
+ sx: Q.avgLine,
1932
+ style: { left: `${p}%` }
1933
+ })
1934
+ }), n[23] = p, n[24] = r.avg, n[25] = d, n[26] = D) : D = n[26];
1935
+ let O;
1936
+ n[27] !== E || n[28] !== D ? (O = /* @__PURE__ */ H(k, {
1937
+ sx: Q.barWrap,
1938
+ children: [E, D]
1939
+ }), n[27] = E, n[28] = D, n[29] = O) : O = n[29];
1940
+ let A;
1941
+ n[30] !== o.length || n[31] !== m?.label || n[32] !== v || n[33] !== h?.label || n[34] !== s ? (A = v ? /* @__PURE__ */ V(k, {
1942
+ sx: Q.boundaryLabels,
1943
+ children: s.map((e, t) => {
1944
+ let n = t === s.length - 1, r = t === 0 ? void 0 : n ? "translateX(-100%)" : "translateX(-50%)";
1945
+ return /* @__PURE__ */ V(z, {
1946
+ variant: "overline",
1947
+ color: "text.secondary",
1948
+ sx: Q.boundaryLabel,
1949
+ style: {
1950
+ left: `${t / o.length * 100}%`,
1951
+ transform: r
1952
+ },
1953
+ children: e.label
1954
+ }, `${e.label}-${t}`);
1955
+ })
1956
+ }) : /* @__PURE__ */ H(k, {
1957
+ sx: Q.labels,
1958
+ children: [/* @__PURE__ */ V(z, {
1959
+ variant: "overline",
1960
+ color: "text.secondary",
1961
+ children: m?.label
1962
+ }), /* @__PURE__ */ V(z, {
1963
+ variant: "overline",
1964
+ color: "text.secondary",
1965
+ children: h?.label
1966
+ })]
1967
+ }), n[30] = o.length, n[31] = m?.label, n[32] = v, n[33] = h?.label, n[34] = s, n[35] = A) : A = n[35];
1968
+ let j;
1969
+ return n[36] !== w || n[37] !== O || n[38] !== A ? (j = /* @__PURE__ */ H(k, {
1970
+ sx: Q.container,
1971
+ children: [
1972
+ w,
1973
+ O,
1974
+ A
1975
+ ]
1976
+ }), n[36] = w, n[37] = O, n[38] = A, n[39] = j) : j = n[39], j;
1977
+ }
1978
+ //#endregion
1979
+ //#region src/legend/components/legend-proportion/styles.ts
1980
+ var Ht = {
1981
+ root: {
1982
+ display: "flex",
1983
+ flexDirection: "column",
1984
+ gap: 1
1985
+ },
1986
+ attribute: {
1987
+ display: "flex",
1988
+ flexDirection: "column"
1989
+ },
1990
+ body: {
1991
+ display: "flex",
1992
+ alignItems: "flex-end",
1993
+ gap: 2,
1994
+ paddingTop: .5
1995
+ },
1996
+ circles: {
1997
+ position: "relative",
1998
+ flexShrink: 0
1999
+ },
2000
+ circle: {
2001
+ position: "absolute",
2002
+ right: 0,
2003
+ bottom: 0,
2004
+ borderRadius: "50%",
2005
+ backgroundColor: "grey.50",
2006
+ border: "1px solid",
2007
+ borderColor: "grey.100",
2008
+ boxSizing: "border-box"
2009
+ },
2010
+ labels: {
2011
+ flex: 1,
2012
+ display: "flex",
2013
+ flexDirection: "column",
2014
+ justifyContent: "space-between"
2015
+ }
2016
+ }, Ut = 72, Wt = 2, Gt = 4;
2017
+ function Kt(e) {
2018
+ let t = (e.stops ?? []).filter((e) => Number.isFinite(e));
2019
+ if (t.length >= Wt) return t.sort((e, t) => t - e).slice(0, Gt);
2020
+ let { min: n, max: r } = e;
2021
+ if (n === r) return [r];
2022
+ let i = Math.min(Gt, Math.max(Wt, e.steps ?? Gt));
2023
+ return Array.from({ length: i }, (e, t) => r - (r - n) * t / (i - 1));
2024
+ }
2025
+ function qt(e, t) {
2026
+ return t <= 1 ? Ut : Ut * (1 - .7 * (e / (t - 1)));
2027
+ }
2028
+ function Jt(e) {
2029
+ let t = y(40), { data: n, labels: r } = e, i = r === void 0 ? ye : r, { attribute: a, formatValue: o } = n, s = o === void 0 ? String : o, c, l, u, d, f, p, m, h, g;
2030
+ if (t[0] !== a || t[1] !== n || t[2] !== s || t[3] !== i) {
2031
+ let e = Kt(n), r = e.length, o;
2032
+ t[13] !== s || t[14] !== i || t[15] !== r ? (o = (e, t) => {
2033
+ let n = s(e);
2034
+ return r <= 1 ? n : t === 0 ? /* @__PURE__ */ H(B, { children: [i.maxPrefix, n] }) : t === r - 1 ? /* @__PURE__ */ H(B, { children: [i.minPrefix, n] }) : n;
2035
+ }, t[13] = s, t[14] = i, t[15] = r, t[16] = o) : o = t[16];
2036
+ let _ = o;
2037
+ u = k, h = Ht.root, t[17] !== a || t[18] !== i ? (g = a && /* @__PURE__ */ H(k, {
2038
+ sx: Ht.attribute,
2039
+ children: [/* @__PURE__ */ V(z, {
2040
+ variant: "overline",
2041
+ color: "text.secondary",
2042
+ children: i.radiusRangeBy
2043
+ }), /* @__PURE__ */ V(z, {
2044
+ variant: "caption",
2045
+ color: "text.primary",
2046
+ children: a
2047
+ })]
2048
+ }), t[17] = a, t[18] = i, t[19] = g) : g = t[19], l = k, p = Ht.body;
2049
+ let v;
2050
+ t[20] === Symbol.for("react.memo_cache_sentinel") ? (v = {
2051
+ ...Ht.circles,
2052
+ width: Ut,
2053
+ height: Ut
2054
+ }, t[20] = v) : v = t[20];
2055
+ let y;
2056
+ t[21] === r ? y = t[22] : (y = (e, t) => {
2057
+ let n = qt(t, r);
2058
+ return /* @__PURE__ */ V(k, {
2059
+ "aria-hidden": !0,
2060
+ sx: {
2061
+ ...Ht.circle,
2062
+ width: n,
2063
+ height: n
2064
+ }
2065
+ }, t);
2066
+ }, t[21] = r, t[22] = y), m = /* @__PURE__ */ V(k, {
2067
+ sx: v,
2068
+ children: e.map(y)
2069
+ }), c = k, t[23] === Symbol.for("react.memo_cache_sentinel") ? (d = {
2070
+ ...Ht.labels,
2071
+ height: Ut
2072
+ }, t[23] = d) : d = t[23];
2073
+ let b;
2074
+ t[24] === _ ? b = t[25] : (b = (e, t) => /* @__PURE__ */ V(z, {
2075
+ variant: "caption",
2076
+ color: "text.secondary",
2077
+ children: _(e, t)
2078
+ }, t), t[24] = _, t[25] = b), f = e.map(b), t[0] = a, t[1] = n, t[2] = s, t[3] = i, t[4] = c, t[5] = l, t[6] = u, t[7] = d, t[8] = f, t[9] = p, t[10] = m, t[11] = h, t[12] = g;
2079
+ } else c = t[4], l = t[5], u = t[6], d = t[7], f = t[8], p = t[9], m = t[10], h = t[11], g = t[12];
2080
+ let _;
2081
+ t[26] !== c || t[27] !== d || t[28] !== f ? (_ = /* @__PURE__ */ V(c, {
2082
+ sx: d,
2083
+ children: f
2084
+ }), t[26] = c, t[27] = d, t[28] = f, t[29] = _) : _ = t[29];
2085
+ let v;
2086
+ t[30] !== l || t[31] !== p || t[32] !== m || t[33] !== _ ? (v = /* @__PURE__ */ H(l, {
2087
+ sx: p,
2088
+ children: [m, _]
2089
+ }), t[30] = l, t[31] = p, t[32] = m, t[33] = _, t[34] = v) : v = t[34];
2090
+ let b;
2091
+ return t[35] !== u || t[36] !== v || t[37] !== h || t[38] !== g ? (b = /* @__PURE__ */ H(u, {
2092
+ sx: h,
2093
+ children: [g, v]
2094
+ }), t[35] = u, t[36] = v, t[37] = h, t[38] = g, t[39] = b) : b = t[39], b;
2095
+ }
2096
+ //#endregion
2097
+ //#region src/legend/components/legend-icon/styles.ts
2098
+ var $ = {
2099
+ list: {
2100
+ display: "flex",
2101
+ flexDirection: "column",
2102
+ gap: .5,
2103
+ "&:hover .PsLegend-value, &:focus-within .PsLegend-value": { opacity: 1 },
2104
+ "@media (hover: none)": { "& .PsLegend-value": { opacity: 1 } }
2105
+ },
2106
+ item: {
2107
+ display: "flex",
2108
+ alignItems: "center",
2109
+ gap: 1
2110
+ },
2111
+ icon: {
2112
+ flexShrink: 0,
2113
+ width: 16,
2114
+ height: 16,
2115
+ objectFit: "contain"
2116
+ },
2117
+ label: {
2118
+ flex: 1,
2119
+ minWidth: 0,
2120
+ overflow: "hidden",
2121
+ textOverflow: "ellipsis",
2122
+ whiteSpace: "nowrap"
2123
+ },
2124
+ value: {
2125
+ flexShrink: 0,
2126
+ opacity: 0,
2127
+ transition: "opacity 120ms"
2128
+ },
2129
+ listHorizontal: {
2130
+ flexDirection: "row",
2131
+ flexWrap: "wrap",
2132
+ columnGap: 2,
2133
+ rowGap: .5
2134
+ },
2135
+ itemHorizontal: { gap: .5 },
2136
+ labelHorizontal: {
2137
+ flex: "0 0 auto",
2138
+ overflow: "visible",
2139
+ textOverflow: "clip"
2140
+ }
2326
2141
  };
2327
- export {
2328
- ge as DEFAULT_LEGEND_LABELS,
2329
- an as Legend
2142
+ //#endregion
2143
+ //#region src/legend/components/legend-icon/legend-icon-ui.tsx
2144
+ function Yt(e) {
2145
+ let t = y(11), { data: n } = e, r = n.orientation ?? "vertical", i = r === "horizontal", a = i ? $.listHorizontal : null, o;
2146
+ t[0] === a ? o = t[1] : (o = {
2147
+ ...$.list,
2148
+ ...a
2149
+ }, t[0] = a, t[1] = o);
2150
+ let s;
2151
+ if (t[2] !== n.items || t[3] !== i) {
2152
+ let e;
2153
+ t[5] === i ? e = t[6] : (e = (e, t) => /* @__PURE__ */ H(k, {
2154
+ sx: {
2155
+ ...$.item,
2156
+ ...i ? $.itemHorizontal : null
2157
+ },
2158
+ children: [
2159
+ /* @__PURE__ */ V(k, {
2160
+ component: "img",
2161
+ src: e.icon,
2162
+ alt: "",
2163
+ sx: $.icon
2164
+ }),
2165
+ /* @__PURE__ */ V(z, {
2166
+ variant: "caption",
2167
+ color: "text.primary",
2168
+ sx: {
2169
+ ...$.label,
2170
+ ...i ? $.labelHorizontal : null
2171
+ },
2172
+ children: e.label
2173
+ }),
2174
+ e.value != null && /* @__PURE__ */ V(z, {
2175
+ className: "PsLegend-value",
2176
+ variant: "caption",
2177
+ color: "text.secondary",
2178
+ sx: $.value,
2179
+ children: e.value
2180
+ })
2181
+ ]
2182
+ }, `${e.label}-${t}`), t[5] = i, t[6] = e), s = n.items.map(e), t[2] = n.items, t[3] = i, t[4] = s;
2183
+ } else s = t[4];
2184
+ let c;
2185
+ return t[7] !== r || t[8] !== o || t[9] !== s ? (c = /* @__PURE__ */ V(k, {
2186
+ "data-orientation": r,
2187
+ sx: o,
2188
+ children: s
2189
+ }), t[7] = r, t[8] = o, t[9] = s, t[10] = c) : c = t[10], c;
2190
+ }
2191
+ //#endregion
2192
+ //#region src/legend/components/legend-item/legend-item-ui.tsx
2193
+ function Xt(e) {
2194
+ let t = y(10), { data: n, labels: r } = e;
2195
+ switch (n.type) {
2196
+ case "category": {
2197
+ let e;
2198
+ return t[0] === n ? e = t[1] : (e = /* @__PURE__ */ V(Rt, { data: n }), t[0] = n, t[1] = e), e;
2199
+ }
2200
+ case "ramp": {
2201
+ let e;
2202
+ return t[2] !== n || t[3] !== r ? (e = /* @__PURE__ */ V(Vt, {
2203
+ data: n,
2204
+ labels: r
2205
+ }), t[2] = n, t[3] = r, t[4] = e) : e = t[4], e;
2206
+ }
2207
+ case "proportion": {
2208
+ let e;
2209
+ return t[5] !== n || t[6] !== r ? (e = /* @__PURE__ */ V(Jt, {
2210
+ data: n,
2211
+ labels: r
2212
+ }), t[5] = n, t[6] = r, t[7] = e) : e = t[7], e;
2213
+ }
2214
+ case "icon": {
2215
+ let e;
2216
+ return t[8] === n ? e = t[9] : (e = /* @__PURE__ */ V(Yt, { data: n }), t[8] = n, t[9] = e), e;
2217
+ }
2218
+ default: return n;
2219
+ }
2220
+ }
2221
+ //#endregion
2222
+ //#region src/legend/components/legend-item/styles.ts
2223
+ var Zt = { stack: {
2224
+ display: "flex",
2225
+ flexDirection: "column",
2226
+ gap: 2
2227
+ } };
2228
+ //#endregion
2229
+ //#region src/legend/components/legend-item/legend-item.tsx
2230
+ function Qt() {
2231
+ let e = y(9), t = r(), n = q(), i;
2232
+ e[0] === n ? i = e[1] : (i = (e) => n ? e.layers[n.layerId]?.variables : void 0, e[0] = n, e[1] = i);
2233
+ let a = u(t, i), { labels: o } = K();
2234
+ if (!a || a.length === 0) return null;
2235
+ let s;
2236
+ if (e[2] !== o || e[3] !== a) {
2237
+ let t;
2238
+ e[5] === o ? t = e[6] : (t = (e, t) => /* @__PURE__ */ V(Xt, {
2239
+ data: e,
2240
+ labels: o
2241
+ }, t), e[5] = o, e[6] = t), s = a.map(t), e[2] = o, e[3] = a, e[4] = s;
2242
+ } else s = e[4];
2243
+ let c;
2244
+ return e[7] === s ? c = e[8] : (c = /* @__PURE__ */ V(k, {
2245
+ sx: Zt.stack,
2246
+ children: s
2247
+ }), e[7] = s, e[8] = c), c;
2248
+ }
2249
+ //#endregion
2250
+ //#region src/legend/index.ts
2251
+ var $t = {
2252
+ Provider: xe,
2253
+ Group: Re,
2254
+ Row: Ve,
2255
+ Actions: ke,
2256
+ Sortable: pt,
2257
+ VisibilityToggle: Ge,
2258
+ RowMenu: Ye,
2259
+ ZoomTo: Ze,
2260
+ ShowOnlyLayer: Qe,
2261
+ ShowAllLayers: $e,
2262
+ GroupMenu: et,
2263
+ ShowOnlyGroup: tt,
2264
+ ShowAllGroups: nt,
2265
+ CollapseAllGroups: rt,
2266
+ ZoomToGroup: it,
2267
+ PanelMenu: at,
2268
+ VisibleLayers: st,
2269
+ Opacity: Tt,
2270
+ ConfigSelect: Dt,
2271
+ Item: Qt,
2272
+ ItemUI: Xt,
2273
+ Swatch: Ft,
2274
+ CategoryUI: Rt,
2275
+ RampUI: Vt,
2276
+ ProportionUI: Jt,
2277
+ IconUI: Yt
2330
2278
  };
2331
- //# sourceMappingURL=legend.js.map
2279
+ //#endregion
2280
+ export { ye as DEFAULT_LEGEND_LABELS, $t as Legend };
2281
+
2282
+ //# sourceMappingURL=legend.js.map